diff options
author | Toni Uhlig <matzeton@googlemail.com> | 2020-09-29 17:22:29 +0200 |
---|---|---|
committer | Toni Uhlig <matzeton@googlemail.com> | 2020-09-29 17:33:41 +0200 |
commit | f60e7a097d332a4ba9e4aaceca2d9a98ba115835 (patch) | |
tree | 63cc6f6ca53434df1db056ab9d6559171ec6a233 /nDPIsrvd.c | |
parent | a2bf7217228d4caacfefa4fcfe8d786fd3e9a905 (diff) |
nDPIsrvd: Improved UDS related code parts.
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
Diffstat (limited to 'nDPIsrvd.c')
-rw-r--r-- | nDPIsrvd.c | 74 |
1 files changed, 54 insertions, 20 deletions
diff --git a/nDPIsrvd.c b/nDPIsrvd.c index 7d5eb5062..7f825d8d5 100644 --- a/nDPIsrvd.c +++ b/nDPIsrvd.c @@ -26,7 +26,11 @@ struct io_buffer struct remote_desc { - enum { JSON_SOCK, SERV_SOCK } type; + enum + { + JSON_SOCK, + SERV_SOCK + } type; int fd; struct io_buffer buf; union { @@ -274,8 +278,10 @@ static int parse_options(int argc, char ** argv) } } size_t len = (delim != NULL ? (size_t)(delim - optarg) : strlen(optarg)) + 1; - snprintf(serv_listen_addr, (len < sizeof(serv_listen_addr) ? len : sizeof(serv_listen_addr)), - "%s", optarg); + snprintf(serv_listen_addr, + (len < sizeof(serv_listen_addr) ? len : sizeof(serv_listen_addr)), + "%s", + optarg); serv_type = SERV_LISTEN_TCP; break; } @@ -288,8 +294,10 @@ static int parse_options(int argc, char ** argv) } size_t len = strlen(optarg) + 1; - snprintf(serv_listen_path, (len < sizeof(serv_listen_path) ? len : sizeof(serv_listen_path)), - "%s", optarg); + snprintf(serv_listen_path, + (len < sizeof(serv_listen_path) ? len : sizeof(serv_listen_path)), + "%s", + optarg); serv_type = SERV_LISTEN_UNIX; break; } @@ -360,11 +368,15 @@ int main(int argc, char ** argv) return 1; } syslog(LOG_DAEMON, "collector listen on %s", json_sockpath); - switch (serv_type) { + switch (serv_type) + { case SERV_LISTEN_NONE: case SERV_LISTEN_TCP: - syslog(LOG_DAEMON, "distributor listen on %.*s:%u", (int)sizeof(serv_listen_addr), - serv_listen_addr, serv_listen_port); + syslog(LOG_DAEMON, + "distributor listen on %.*s:%u", + (int)sizeof(serv_listen_addr), + serv_listen_addr, + serv_listen_port); break; case SERV_LISTEN_UNIX: syslog(LOG_DAEMON, "distributor listen on %s", serv_listen_path); @@ -472,14 +484,26 @@ int main(int argc, char ** argv) ¤t->event_serv.peer_addr[0], sizeof(current->event_serv.peer_addr)) == NULL) { - syslog(LOG_DAEMON | LOG_ERR, "Error converting an internet address: %s", strerror(errno)); + if (errno == EAFNOSUPPORT) + { + syslog(LOG_DAEMON | LOG_ERR, "New distributor connection."); + } + else + { + syslog(LOG_DAEMON | LOG_ERR, + "Error converting an internet address: %s", + strerror(errno)); + } current->event_serv.peer_addr[0] = '\0'; } - syslog(LOG_DAEMON, - "New distributor connection from %.*s:%u", - (int)sizeof(current->event_serv.peer_addr), - current->event_serv.peer_addr, - ntohs(current->event_serv.peer.sin_port)); + else + { + syslog(LOG_DAEMON, + "New distributor connection from %.*s:%u", + (int)sizeof(current->event_serv.peer_addr), + current->event_serv.peer_addr, + ntohs(current->event_serv.peer.sin_port)); + } break; } @@ -644,12 +668,21 @@ int main(int argc, char ** argv) } if (bytes_written < 0 || errno != 0) { - syslog(LOG_DAEMON | LOG_ERR, - "Distributor connection to %.*s:%u closed, send failed: %s", - (int)sizeof(remotes.desc[i].event_serv.peer_addr), - remotes.desc[i].event_serv.peer_addr, - ntohs(remotes.desc[i].event_serv.peer.sin_port), - strerror(errno)); + if (remotes.desc[i].event_serv.peer_addr[0] == '\0') + { + syslog(LOG_DAEMON | LOG_ERR, + "Distributor connection closed, send failed: %s", + strerror(errno)); + } + else + { + syslog(LOG_DAEMON | LOG_ERR, + "Distributor connection to %.*s:%u closed, send failed: %s", + (int)sizeof(remotes.desc[i].event_serv.peer_addr), + remotes.desc[i].event_serv.peer_addr, + ntohs(remotes.desc[i].event_serv.peer.sin_port), + strerror(errno)); + } disconnect_client(epollfd, &remotes.desc[i]); continue; } @@ -701,6 +734,7 @@ int main(int argc, char ** argv) closelog(); unlink(json_sockpath); + unlink(serv_listen_path); return 0; } |