From: Nick Porter Date: Tue, 17 Oct 2023 10:11:59 +0000 (+0100) Subject: Add option to allow for non-socket listeners X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7d14b15bc49bb9c856981a1dc48d66916d09a2c7;p=thirdparty%2Ffreeradius-server.git Add option to allow for non-socket listeners --- diff --git a/src/lib/io/listen.h b/src/lib/io/listen.h index d8bd275a871..821362ff7bc 100644 --- a/src/lib/io/listen.h +++ b/src/lib/io/listen.h @@ -42,6 +42,7 @@ struct fr_listen { bool connected; //!< is this for a connected socket? bool track_duplicates; //!< do we track duplicate packets? bool no_write_callback; //!< sometimes we don't need to do writes + bool non_socket_listener; //!< special internal listener that does not use sockets. size_t default_message_size; //!< copied from app_io, but may be changed size_t num_messages; //!< for the message ring buffer diff --git a/src/lib/io/network.c b/src/lib/io/network.c index 529f731c7c9..9b4da2e304d 100644 --- a/src/lib/io/network.c +++ b/src/lib/io/network.c @@ -1320,7 +1320,7 @@ static int fr_network_listen_add_self(fr_network_t *nr, fr_listen_t *listen) * have a close, so look for both open and close to * determine what this is. */ - if (!listen->app_io->open && !listen->app_io->close) { + if (listen->non_socket_listener || (!listen->app_io->open && !listen->app_io->close)) { fr_assert(listen->app_io->event_list_set != NULL); fr_assert(!listen->app_io->read); fr_assert(!listen->app_io->write);