diff --git a/daemon/x52d_comm_internal.c b/daemon/x52d_comm_internal.c index 8b6c6ca..3d67c33 100644 --- a/daemon/x52d_comm_internal.c +++ b/daemon/x52d_comm_internal.c @@ -89,6 +89,22 @@ sock_failure: return -1; } +int x52d_listen_socket(struct sockaddr_un *local, int len, int sock_fd) +{ + /* Cleanup any existing socket */ + unlink(local->sun_path); + if (bind(sock_fd, (struct sockaddr *)local, (socklen_t)len) < 0) { + /* Failure binding socket */ + return -1; + } + + if (listen(sock_fd, X52D_MAX_CLIENTS) < 0) { + return -1; + } + + return 0; +} + void x52d_split_args(int *argc, char **argv, char *buffer, int buflen) { int i = 0; diff --git a/daemon/x52d_command.c b/daemon/x52d_command.c index 287608c..b4d2b59 100644 --- a/daemon/x52d_command.c +++ b/daemon/x52d_command.c @@ -412,7 +412,6 @@ int x52d_command_init(const char *sock_path) int sock_fd; int len; struct sockaddr_un local; - int flags; x52d_client_init(client_fd); @@ -431,33 +430,17 @@ int x52d_command_init(const char *sock_path) return -1; } - /* Mark the socket as non-blocking */ - flags = fcntl(sock_fd, F_GETFL); - if (flags < 0) { - PINELOG_ERROR(_("Error getting command socket flags: %s"), strerror(errno)); - goto sock_failure; - } - if (fcntl(sock_fd, F_SETFL, flags | O_NONBLOCK) < 0) { - PINELOG_ERROR(_("Error setting command socket flags: %s"), strerror(errno)); - goto sock_failure; - } - - /* Cleanup any existing socket */ - unlink(local.sun_path); - if (bind(sock_fd, (struct sockaddr *)&local, (socklen_t)len) < 0) { - /* Failure binding socket */ - PINELOG_ERROR(_("Error binding to command socket: %s"), strerror(errno)); - goto listen_failure; - } - - if (listen(sock_fd, X52D_MAX_CLIENTS) < 0) { - PINELOG_ERROR(_("Error listening on command socket: %s"), strerror(errno)); - goto listen_failure; - } - command_sock_fd = sock_fd; - if (command_sock_fd < 0) { - command_sock_fd = -1; + + /* Mark the socket as non-blocking */ + if (x52d_set_socket_nonblocking(sock_fd) < 0) { + PINELOG_ERROR(_("Error marking command socket as nonblocking: %s"), + strerror(errno)); + goto sock_failure; + } + + if (x52d_listen_socket(&local, len, sock_fd) < 0) { + PINELOG_ERROR(_("Error listening on command socket: %s"), strerror(errno)); goto listen_failure; } diff --git a/daemon/x52d_notify.c b/daemon/x52d_notify.c index b3e04bf..564e9b9 100644 --- a/daemon/x52d_notify.c +++ b/daemon/x52d_notify.c @@ -52,15 +52,7 @@ static int listen_notify(const char *notify_sock_path) return -1; } - /* Cleanup any existing socket */ - unlink(local.sun_path); - if (bind(sock_fd, (struct sockaddr *)&local, (socklen_t)len) < 0) { - /* Failure binding socket */ - PINELOG_ERROR(_("Error binding to notification socket: %s"), strerror(errno)); - goto listen_failure; - } - - if (listen(sock_fd, X52D_MAX_CLIENTS) < 0) { + if (x52d_listen_socket(&local, len, sock_fd) < 0) { PINELOG_ERROR(_("Error listening on notification socket: %s"), strerror(errno)); goto listen_failure; } diff --git a/daemon/x52dcomm-internal.h b/daemon/x52dcomm-internal.h index bce932f..a78d78c 100644 --- a/daemon/x52dcomm-internal.h +++ b/daemon/x52dcomm-internal.h @@ -20,6 +20,7 @@ int x52d_setup_command_sock(const char *sock_path, struct sockaddr_un *remote); const char *x52d_notify_sock_path(const char *sock_path); int x52d_setup_notify_sock(const char *sock_path, struct sockaddr_un *remote); int x52d_set_socket_nonblocking(int sock_fd); +int x52d_listen_socket(struct sockaddr_un *local, int len, int sock_fd); void x52d_split_args(int *argc, char **argv, char *buffer, int buflen); #endif // !defined X52DCOMM_INTERNAL_H diff --git a/po/libx52.pot b/po/libx52.pot index abb9306..94b4eaa 100644 --- a/po/libx52.pot +++ b/po/libx52.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: libx52 0.3.0\n" "Report-Msgid-Bugs-To: https://github.com/nirenjan/libx52/issues\n" -"POT-Creation-Date: 2022-12-25 22:03-0800\n" +"POT-Creation-Date: 2023-01-04 08:39-0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -691,36 +691,26 @@ msgstr "" msgid "Error %d during command loop: %s" msgstr "" -#: daemon/x52d_command.c:430 +#: daemon/x52d_command.c:429 #, c-format msgid "Error creating command socket: %s" msgstr "" #: daemon/x52d_command.c:437 #, c-format -msgid "Error getting command socket flags: %s" +msgid "Error marking command socket as nonblocking: %s" msgstr "" -#: daemon/x52d_command.c:441 -#, c-format -msgid "Error setting command socket flags: %s" -msgstr "" - -#: daemon/x52d_command.c:449 -#, c-format -msgid "Error binding to command socket: %s" -msgstr "" - -#: daemon/x52d_command.c:454 +#: daemon/x52d_command.c:443 #, c-format msgid "Error listening on command socket: %s" msgstr "" -#: daemon/x52d_command.c:464 +#: daemon/x52d_command.c:447 msgid "Starting command processing thread" msgstr "" -#: daemon/x52d_command.c:482 +#: daemon/x52d_command.c:465 msgid "Shutting down command processing thread" msgstr "" @@ -917,41 +907,36 @@ msgstr "" msgid "Error marking notification socket as nonblocking: %s" msgstr "" -#: daemon/x52d_notify.c:59 -#, c-format -msgid "Error binding to notification socket: %s" -msgstr "" - -#: daemon/x52d_notify.c:64 +#: daemon/x52d_notify.c:56 #, c-format msgid "Error listening on notification socket: %s" msgstr "" -#: daemon/x52d_notify.c:73 +#: daemon/x52d_notify.c:65 msgid "Error setting up notification socket" msgstr "" -#: daemon/x52d_notify.c:90 daemon/x52d_notify.c:106 +#: daemon/x52d_notify.c:82 daemon/x52d_notify.c:98 #, c-format msgid "Error %d reading from pipe: %s" msgstr "" -#: daemon/x52d_notify.c:148 +#: daemon/x52d_notify.c:140 #, c-format msgid "Error %d writing notification pipe: %s" msgstr "" -#: daemon/x52d_notify.c:193 +#: daemon/x52d_notify.c:185 #, c-format msgid "Error %d creating notification pipe: %s" msgstr "" -#: daemon/x52d_notify.c:202 +#: daemon/x52d_notify.c:194 #, c-format msgid "Error %d initializing notify thread: %s" msgstr "" -#: daemon/x52d_notify.c:208 +#: daemon/x52d_notify.c:200 #, c-format msgid "Error %d initializing notify listener: %s" msgstr "" diff --git a/po/xx_PL.po b/po/xx_PL.po index cf86bdf..09f9a7b 100644 --- a/po/xx_PL.po +++ b/po/xx_PL.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: libx52 0.2.3\n" "Report-Msgid-Bugs-To: https://github.com/nirenjan/libx52/issues\n" -"POT-Creation-Date: 2022-12-25 22:03-0800\n" -"PO-Revision-Date: 2022-09-22 21:23-0700\n" +"POT-Creation-Date: 2023-01-04 08:39-0800\n" +"PO-Revision-Date: 2023-01-04 08:40-0800\n" "Last-Translator: Nirenjan Krishnan \n" "Language-Team: Dummy Language for testing i18n\n" "Language: xx_PL\n" @@ -744,36 +744,26 @@ msgstr "" msgid "Error %d during command loop: %s" msgstr "Erroray %d uringday ommandcay ooplay: %s" -#: daemon/x52d_command.c:430 +#: daemon/x52d_command.c:429 #, c-format msgid "Error creating command socket: %s" msgstr "Erroray eatingcray ommandcay ocketsay: %s" #: daemon/x52d_command.c:437 #, c-format -msgid "Error getting command socket flags: %s" -msgstr "Erroray ettinggay ommandcay ocketsay agsflay: %s" +msgid "Error marking command socket as nonblocking: %s" +msgstr "Erroray arkingmay ommandcay ocketsay asay onblockingnay: %s" -#: daemon/x52d_command.c:441 -#, c-format -msgid "Error setting command socket flags: %s" -msgstr "Erroray ettingsay ommandcay ocketsay agsflay: %s" - -#: daemon/x52d_command.c:449 -#, c-format -msgid "Error binding to command socket: %s" -msgstr "Erroray indingbay otay ommandcay ocketsay: %s" - -#: daemon/x52d_command.c:454 +#: daemon/x52d_command.c:443 #, c-format msgid "Error listening on command socket: %s" msgstr "Erroray isteninglay onay ommandcay ocketsay: %s" -#: daemon/x52d_command.c:464 +#: daemon/x52d_command.c:447 msgid "Starting command processing thread" msgstr "Artingstay ommandcay ocessingpray eadthray" -#: daemon/x52d_command.c:482 +#: daemon/x52d_command.c:465 msgid "Shutting down command processing thread" msgstr "Uttingshay ownday ommandcay ocessingpray eadthray" @@ -970,41 +960,36 @@ msgstr "Erroray eatingcray otificationnay ocketsay: %s" msgid "Error marking notification socket as nonblocking: %s" msgstr "Erroray arkingmay otificationnay ocketsay asay onblockingnay: %s" -#: daemon/x52d_notify.c:59 -#, c-format -msgid "Error binding to notification socket: %s" -msgstr "Erroray indingbay otay otificationnay ocketsay: %s" - -#: daemon/x52d_notify.c:64 +#: daemon/x52d_notify.c:56 #, c-format msgid "Error listening on notification socket: %s" msgstr "Erroray isteninglay onay otificationnay ocketsay: %s" -#: daemon/x52d_notify.c:73 +#: daemon/x52d_notify.c:65 msgid "Error setting up notification socket" msgstr "Erroray ettingsay upay otificationnay ocketsay: %s" -#: daemon/x52d_notify.c:90 daemon/x52d_notify.c:106 +#: daemon/x52d_notify.c:82 daemon/x52d_notify.c:98 #, c-format msgid "Error %d reading from pipe: %s" msgstr "Erroray eadingray omfray ipepay %d: %s" -#: daemon/x52d_notify.c:148 +#: daemon/x52d_notify.c:140 #, c-format msgid "Error %d writing notification pipe: %s" msgstr "Erroray %d itingwray otificationnay ipepay: %s" -#: daemon/x52d_notify.c:193 +#: daemon/x52d_notify.c:185 #, c-format msgid "Error %d creating notification pipe: %s" msgstr "Erroray %d eatingcray otificationnay ipepay: %s" -#: daemon/x52d_notify.c:202 +#: daemon/x52d_notify.c:194 #, c-format msgid "Error %d initializing notify thread: %s" msgstr "Erroray %d initializingay otifynay eadthray: %s" -#: daemon/x52d_notify.c:208 +#: daemon/x52d_notify.c:200 #, c-format msgid "Error %d initializing notify listener: %s" msgstr "Erroray %d initializingay otifynay istenerlay: %s"