Skip to content

Commit

Permalink
Add support for auto-reloading available network interfaces on OS X a…
Browse files Browse the repository at this point in the history
…nd Linux
  • Loading branch information
haakonnessjoen committed Apr 22, 2024
1 parent d59e2fa commit dfa4489
Show file tree
Hide file tree
Showing 12 changed files with 377 additions and 114 deletions.
17 changes: 0 additions & 17 deletions autogen.sh
Expand Up @@ -16,21 +16,4 @@ autoreconf -i
automake --gnu --add-missing
autoconf

case "$OSTYPE" in
darwin*)
LDFLAGS=${LDFLAGS=-lintl}
export LDFLAGS
echo "MACOS"
;;
linux*)
echo "LINUX"
;;
bsd*)
echo "BSD"
;;
*)
echo "unknown: $OSTYPE"
;;
esac

./configure "$@"
36 changes: 34 additions & 2 deletions configure.ac
Expand Up @@ -22,8 +22,23 @@ if test "x$GMSGFMT" = "x:"; then
AC_MSG_ERROR([GNU gettext command line tools are required but not found.])
fi

AC_CHECK_HEADER([CoreFoundation/CoreFoundation.h],
[
have_corefoundation=true
AC_SUBST([COREFOUNDATION_LIBS], ["-framework CoreFoundation"])
], [have_corefoundation=false]
)
AM_CONDITIONAL(HAVE_COREFOUNDATION, $have_corefoundation)

AC_CHECK_HEADER([SystemConfiguration/SystemConfiguration.h],
[
have_systemconfiguration=true
AC_SUBST([SYSTEMCONFIGURATION_LIBS], ["-framework SystemConfiguration"])
], [have_systemconfiguration=false]
)
AM_CONDITIONAL(HAVE_SYSTEMCONFIGURATION, $have_systemconfiguration)

AC_CHECK_LIB([rt], [nanosleep])
AC_CHECK_LIB([intl], [nanosleep])

# Use pkg-config to check for libcrypto, if available
# Otherwise, fall back to AC_SEARCH_LIBS
Expand All @@ -49,7 +64,24 @@ AM_CONDITIONAL([INSTALL_CONFIG], [test x"$enable_config" != "xno" && test x"$ena
AM_CONDITIONAL([BUILD_MACTELNETD], [test x"$enable_mactelnetd" != "xno"])

# Checks for header files.
AC_CHECK_HEADERS([arpa/inet.h fcntl.h float.h libintl.h locale.h netinet/in.h paths.h stdlib.h string.h sys/ioctl.h sys/socket.h sys/time.h syslog.h termios.h unistd.h utmp.h utmpx.h])
AC_CHECK_HEADERS([arpa/inet.h fcntl.h sys/random.h float.h libintl.h locale.h linux/netlink.h netinet/in.h paths.h stdlib.h string.h sys/ioctl.h sys/socket.h sys/time.h syslog.h termios.h unistd.h utmp.h utmpx.h])

# Check if the target platform is macOS
case "$host_os" in
darwin*)
AC_CHECK_LIB([pthread], [pthread_create])

AC_CHECK_LIB([intl], [libintl_gettext])

if test "$ac_cv_lib_pthread_pthread_create" = "yes"; then
AC_SUBST([PTHREAD_LIBS], ["-lpthread"])
else
AC_MSG_ERROR([pthreads library not found])
fi
;;
*)
;;
esac

# Checks for typedefs, structures, and compiler characteristics.
AC_TYPE_PID_T
Expand Down
1 change: 1 addition & 0 deletions po/POTFILES.in
Expand Up @@ -6,3 +6,4 @@ src/mndp.c
src/autologin.c
src/interfaces.c
src/protocol.c
src/mtwei.c
118 changes: 80 additions & 38 deletions po/bg.po
Expand Up @@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: mactelnet\n"
"Report-Msgid-Bugs-To: haakon.nessjoen@gmail.com\n"
"POT-Creation-Date: 2024-04-08 01:24+0200\n"
"PO-Revision-Date: 2024-04-08 01:33+0200\n"
"POT-Creation-Date: 2024-04-22 19:22+0200\n"
"PO-Revision-Date: 2024-04-22 19:42+0200\n"
"Last-Translator: Chat GPT <chatgpt@lunatic.no>\n"
"Language-Team: Boian Bonev <bbonev@ipacct.com>\n"
"Language: bg\n"
Expand Down Expand Up @@ -177,7 +177,7 @@ msgstr "Парола: "
msgid "Connecting to %s..."
msgstr "Свързване към %s..."

#: src/mactelnet.c:762 src/mactelnetd.c:253 src/mactelnetd.c:1155
#: src/mactelnet.c:762 src/mactelnetd.c:258 src/mactelnetd.c:1155
#, c-format
msgid "Error binding to %s:%d, %s\n"
msgstr "Грешка при свързване от %s:%d, %s\n"
Expand All @@ -192,111 +192,116 @@ msgstr "Връзката не е осъществена.\n"
msgid "done\n"
msgstr "готово\n"

#: src/mactelnetd.c:255
#: src/mactelnet.c:782
#, c-format
msgid "Username too long\n"
msgstr "Потребителското име е твърде дълго\n"

#: src/mactelnetd.c:260
#, c-format
msgid "Error binding to %s:%d on %s\n"
msgstr "Грешка при свързване към %s:%d на %s\n"

#: src/mactelnetd.c:259
#: src/mactelnetd.c:264
#, c-format
msgid "Using %s to transmit packets from %s\n"
msgstr "Използване на %s за предаване на пакети от %s\n"

#: src/mactelnetd.c:464
#: src/mactelnetd.c:469
#, c-format
msgid "(%d) Invalid login by %s."
msgstr "(%d) Неправилен вход от %s."

#: src/mactelnetd.c:467
#: src/mactelnetd.c:472
msgid "Login failed, incorrect username or password\r\n"
msgstr "Неуспешен вход, невалиден потребител или парола\r\n"

#: src/mactelnetd.c:484
#: src/mactelnetd.c:489
msgid "Terminal error\r\n"
msgstr "Грешка в терминала\r\n"

#: src/mactelnetd.c:498 src/mactelnetd.c:506
#: src/mactelnetd.c:503 src/mactelnetd.c:511
#, c-format
msgid "(%d) Error allocating memory."
msgstr "(%d) Грешка при заделяне на памет."

#: src/mactelnetd.c:500 src/mactelnetd.c:508
#: src/mactelnetd.c:505 src/mactelnetd.c:513
msgid "System error, out of memory\r\n"
msgstr "Системна грешка, недостатъчно памет\r\n"

#: src/mactelnetd.c:513
#: src/mactelnetd.c:518
#, c-format
msgid "(%d) Login ok, but local user not accessible (%s)."
msgstr "(%d) Успешен вход, но локалният потребител не е достъпен (%s)."

#: src/mactelnetd.c:516
#: src/mactelnetd.c:521
msgid "Local user not accessible\r\n"
msgstr "Локалният потребител не е достъпен\r\n"

#: src/mactelnetd.c:527
#: src/mactelnetd.c:532
#, c-format
msgid "Error opening %s: %s"
msgstr "Грешка при отваряне %s: %s"

#: src/mactelnetd.c:529
#: src/mactelnetd.c:534
msgid "Error opening terminal\r\n"
msgstr "Грешка при отваряне на терминал\r\n"

#: src/mactelnetd.c:540
#: src/mactelnetd.c:545
#, c-format
msgid "(%d) User %s logged in."
msgstr "(%d) Потребител %s влезе."

#: src/mactelnetd.c:575
#: src/mactelnetd.c:580
#, c-format
msgid "(%d) Could not log in %s (%d:%d): setuid/setgid: %s"
msgstr "(%d) Неуспешен вход %s (%d:%d): setuid/setgid: %s"

#: src/mactelnetd.c:578
#: src/mactelnetd.c:583
msgid "Internal error\r\n"
msgstr "Вътрешна грешка\r\n"

#: src/mactelnetd.c:584
#: src/mactelnetd.c:589
#, c-format
msgid "(%d) User %s disconnected with "
msgstr "(%d) Потребител %s е изхвърлен с "

#: src/mactelnetd.c:710
#: src/mactelnetd.c:715
#, c-format
msgid "(%d) Invalid mtwei key by %s."
msgstr "(%d) Невалиден ключ mtwei от %s."

#: src/mactelnetd.c:733
#: src/mactelnetd.c:738
#, c-format
msgid "(%d) Unhandeled control packet type: %d, length: %d"
msgstr "(%d) Необработен тип на контролен пакет: %d, дължина: %d"

#: src/mactelnetd.c:737
#: src/mactelnetd.c:742
#, c-format
msgid "(%d) Unhandeled control packet type: %d, in state: %d, length: %d"
msgstr ""
"(%d) Необработен тип на контролен пакет: %d, в състояние: %d, дължина: %d"

#: src/mactelnetd.c:793
#: src/mactelnetd.c:798
#, c-format
msgid "(%d) New connection from %s."
msgstr "(%d) Нова връзка от %s."

#: src/mactelnetd.c:822 src/mactelnetd.c:1289
#: src/mactelnetd.c:827 src/mactelnetd.c:1311
#, c-format
msgid "(%d) Connection closed."
msgstr "(%d) Връзката е затворена."

#: src/mactelnetd.c:877
#: src/mactelnetd.c:882
#, c-format
msgid "(%d) Unhandeled packet type: %d"
msgstr "(%d) Необработваем пакет от тип: %d"

#: src/mactelnetd.c:952
#: src/mactelnetd.c:957
msgid "Was not able to send any MNDP packets"
msgstr "Не успях да изпратя нито един MNDP пакет"

#: src/mactelnetd.c:961
#: src/mactelnetd.c:966
msgid ""
"\r\n"
"\r\n"
Expand All @@ -306,18 +311,14 @@ msgstr ""
"\r\n"
"Демон процеса прекратява работата си.\r\n"

#: src/mactelnetd.c:963
#: src/mactelnetd.c:968
msgid "Daemon shutting down"
msgstr "Демон процеса прекратява работата си"

#: src/mactelnetd.c:996
#: src/mactelnetd.c:1001
msgid "SIGHUP: Reloading interfaces"
msgstr "SIGHUP: Презареждане на интерфейсите"

#: src/mactelnetd.c:1009
msgid "No devices found! Exiting.\n"
msgstr "Няма намерени устройства! Изход.\n"

#: src/mactelnetd.c:1022
#, c-format
msgid "(%d) Connection closed because interface %s is gone."
Expand Down Expand Up @@ -379,26 +380,30 @@ msgstr "MNDP: Грешка при свързване от %s:%d, %s\n"
msgid "Bound to %s:%d"
msgstr "Свързване от %s:%d"

#: src/mactelnetd.c:1210
#: src/mactelnetd.c:1216
msgid "Unable to find any valid network interfaces\n"
msgstr "Няма валидни мрежови интерфейси\n"

#: src/mactelnetd.c:1287
#: src/mactelnetd.c:1261 src/interfaces.c:282
msgid "Network change detected"
msgstr "Промяна в мрежата открита"

#: src/mactelnetd.c:1309
#, c-format
msgid "(%d) Connection to user %s closed."
msgstr "(%d) Връзката към потребител %s е прекъсната."

#: src/mactelnetd.c:1295
#: src/mactelnetd.c:1317
#, c-format
msgid "(%d) Waiting for ack\n"
msgstr "(%d) Изчакване на потвърждение\n"

#: src/mactelnetd.c:1311
#: src/mactelnetd.c:1333
#, c-format
msgid "(%d) Session timed out"
msgstr "(%d) Изтекло време за изчакване на сесията"

#: src/mactelnetd.c:1314
#: src/mactelnetd.c:1336
msgid "Timeout\r\n"
msgstr "Изтекло време за изчакване\r\n"

Expand Down Expand Up @@ -551,7 +556,17 @@ msgstr "Предупреждение на ред %d от %s: Непознат п
msgid "Error on line %d in %s: Value string too long.\n"
msgstr "Грешка на ред %d в %s: Твърде дълъг низ за стойност.\n"

#: src/interfaces.c:341
#: src/interfaces.c:84
#, c-format
msgid "Unable to allocate memory for interface\n"
msgstr "Неуспешно заделяне на памет за интерфейса\n"

#: src/interfaces.c:316
#, c-format
msgid "Error creating network watcher thread: %s\n"
msgstr "Грешка при създаване на нишка за наблюдение за мрежа: %s\n"

#: src/interfaces.c:448
#, c-format
msgid "packet size too large\n"
msgstr "размера на пакета е твърде голям\n"
Expand All @@ -568,6 +583,11 @@ msgid "mndp_add_attribute: ERROR, too large packet. Exceeds %d bytes\n"
msgstr ""
"mndp_add_attribute: Грешка, пакетът е твърде голям. Надхвърля %d байта\n"

#: src/protocol.c:330
#, c-format
msgid "%s: invalid data: %p + %u > %p + %d\n"
msgstr "%s: невалидни данни: %p + %u > %p + %d\n"

#: src/protocol.c:459
#, c-format
msgid "Unable to send broadcast packet: Router lookup will be slow\n"
Expand All @@ -590,6 +610,28 @@ msgstr "не е намерен\n"
msgid "found\n"
msgstr "намерен\n"

#: src/mtwei.c:57
#, c-format
msgid "FATAL ERROR: Function returned NULL at %s:%d: %s;\n"
msgstr "ФАТАЛНА ГРЕШКА: Функцията върна NULL на %s:%d: %s;\n"

#: src/mtwei.c:154
#, c-format
msgid "Cannot mix gamma into pubkey: %s\n"
msgstr "Не може да се смеси гама в обща ключ: %s\n"

#: src/mtwei.c:192
#, c-format
msgid "Cannot make a public key: %s\n"
msgstr "Не може да се направи общ ключ: %s\n"

#, fuzzy, c-format
#~ msgid "SIGHUP: Reloading interfaces\n"
#~ msgstr "SIGHUP: Презареждане на интерфейсите"

#~ msgid "No devices found! Exiting.\n"
#~ msgstr "Няма намерени устройства! Изход.\n"

#, c-format
#~ msgid "Listening on %s for %s\n"
#~ msgstr "Слуша на %s за %s\n"

0 comments on commit dfa4489

Please sign in to comment.