]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
if there's no error() callback, print out why the socket was closed
authorAlan T. DeKok <aland@freeradius.org>
Tue, 21 Feb 2023 19:37:27 +0000 (14:37 -0500)
committerAlan T. DeKok <aland@freeradius.org>
Tue, 21 Feb 2023 19:38:05 +0000 (14:38 -0500)
src/lib/io/network.c

index 9dd68038bde9de7730fa8ca2059a485ce1601fe9..0941b466192f5418cfa9a31ecced44b1506eb5f3 100644 (file)
@@ -1013,13 +1013,20 @@ static void fr_network_vnode_extend(UNUSED fr_event_list_t *el, int sockfd, int
  * @param[in] fd_errno         returned by kevent.
  * @param[in] ctx              the network socket context.
  */
-static void fr_network_error(UNUSED fr_event_list_t *el, UNUSED int sockfd, UNUSED int flags,
-                            UNUSED int fd_errno, void *ctx)
+static void fr_network_error(UNUSED fr_event_list_t *el, UNUSED int sockfd, int flags,
+                            int fd_errno, void *ctx)
 {
        fr_network_socket_t *s = ctx;
+       fr_network_t *nr = s->nr;
 
        if (s->listen->app_io->error) {
                s->listen->app_io->error(s->listen);
+
+       } else if (flags & EV_EOF) {
+               DEBUG2("Closing (EOF) socket %s", s->listen->name);
+
+       } else {
+               DEBUG2("Closing (error %s) socket %s", fr_syserror(fd_errno), s->listen->name);
        }
 
        fr_network_socket_dead(s->nr, s);