]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
more rename 'listen' to 'li', and fix const complaints
authorAlan T. DeKok <aland@freeradius.org>
Thu, 20 Sep 2018 17:03:45 +0000 (13:03 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Thu, 20 Sep 2018 17:06:02 +0000 (13:06 -0400)
src/lib/io/channel.h
src/lib/io/listen.h
src/lib/io/master.h
src/lib/io/network.c
src/lib/io/network.h
src/lib/io/schedule.c
src/lib/io/schedule.h
src/modules/proto_control/proto_control_unix.c
src/modules/proto_detail/proto_detail.h

index 83d999122e0d3fd94158ca2acdc72d3d5c90c687..801783c22b5e776b2e664ac6327d2a6e7c76c5f5 100644 (file)
@@ -113,7 +113,7 @@ typedef struct fr_channel_data_t {
                                                                //!< information, and other proto_* specific information
                                                                //!< that needs to be passed to the request.
 
-       fr_listen_t const *listen;                              //!< for tracking packet transport, etc.
+       fr_listen_t     *listen;                                //!< for tracking packet transport, etc.
 } fr_channel_data_t;
 
 #define PRIORITY_NOW    (1 << 16)
index 9a5c78fca54d4a8293a0dbe6ab5ded066facca60..67f551a954faf36a053053cbadddb80f33c9b881 100644 (file)
@@ -51,7 +51,7 @@ struct fr_async_t {
        fr_channel_t            *channel;
 
        void                    *packet_ctx;
-       fr_listen_t const       *listen;        //!< How we received this request,
+       fr_listen_t             *listen;        //!< How we received this request,
                                                //!< and how we'll send the reply.
        uint32_t                priority;
        bool                    detached;       //!< if detached, we don't send real replies
index e4a7887e323538ee1d59a487ad3a5d86687a76bf..a69a515daa95853e06e3166aa83aed36796c9af4 100644 (file)
@@ -116,7 +116,7 @@ typedef struct fr_io_instance_t {
        fr_heap_t                       *pending_clients;               //!< heap of pending clients
        fr_heap_t                       *alive_clients;                 //!< heap of active clients
 
-       fr_listen_t const               *listen;                        //!< The master IO path
+       fr_listen_t                     *listen;                        //!< The master IO path
        fr_listen_t                     *child;                         //!< The child IO path
        fr_schedule_t                   *sc;                            //!< the scheduler
 } fr_io_instance_t;
index ffc00059a8fac319851526782f9637987d93e5b1..0823f181df05ceeabc86cc98bdac6a761dd597d3 100644 (file)
@@ -80,7 +80,7 @@ typedef struct fr_network_socket_t {
        bool                    dead;                   //!< is it dead?
 
        size_t                  outstanding;            //!< number of outstanding packets sent to the worker
-       fr_listen_t const       *listen;                //!< I/O ctx and functions.
+       fr_listen_t             *listen;                //!< I/O ctx and functions.
 
        fr_message_set_t        *ms;                    //!< message buffers for this socket.
        fr_channel_data_t       *cd;                    //!< cached in case of allocation & read error
@@ -600,7 +600,7 @@ static void fr_network_error(UNUSED fr_event_list_t *el, UNUSED int sockfd, UNUS
 static void fr_network_write(UNUSED fr_event_list_t *el, UNUSED int sockfd, UNUSED int flags, void *ctx)
 {
        fr_network_socket_t *s = ctx;
-       fr_listen_t const *listen = s->listen;
+       fr_listen_t *li = s->listen;
        fr_network_t *nr = s->nr;
        fr_channel_data_t *cd;
 
@@ -623,10 +623,10 @@ static void fr_network_write(UNUSED fr_event_list_t *el, UNUSED int sockfd, UNUS
             cd = fr_heap_pop(s->waiting)) {
                int rcode;
 
-               rad_assert(listen == cd->listen);
+               rad_assert(li == cd->listen);
                rad_assert(cd->m.status == FR_MESSAGE_LOCALIZED);
 
-               rcode = listen->app_io->write(listen->app_io_instance, cd->packet_ctx,
+               rcode = li->app_io->write(li->app_io_instance, cd->packet_ctx,
                                              cd->reply.request_time,
                                              cd->m.data, cd->m.data_size, 0);
                if (rcode < 0) {
@@ -1167,17 +1167,17 @@ static void fr_network_post_event(UNUSED fr_event_list_t *el, UNUSED struct time
 
        while ((cd = fr_heap_pop(nr->replies)) != NULL) {
                ssize_t rcode;
-               fr_listen_t const *listen;
+               fr_listen_t *li;
                fr_message_t *lm;
                fr_network_socket_t my_socket, *s;
 
-               listen = cd->listen;
+               li = cd->listen;
 
                /*
                 *      @todo - cache this somewhere so we don't need
                 *      to do an rbtree lookup for every packet.
                 */
-               my_socket.listen = listen;
+               my_socket.listen = li;
                s = rbtree_finddata(nr->sockets, &my_socket);
 
                /*
@@ -1243,7 +1243,7 @@ static void fr_network_post_event(UNUSED fr_event_list_t *el, UNUSED struct time
                 *      The write function is responsible for ensuring
                 *      that NAKs are not written to the network.
                 */
-               rcode = listen->app_io->write(listen->app_io_instance, cd->packet_ctx,
+               rcode = li->app_io->write(li->app_io_instance, cd->packet_ctx,
                                              cd->reply.request_time,
                                              cd->m.data, cd->m.data_size, 0);
                if (rcode < 0) {
@@ -1286,7 +1286,7 @@ static void fr_network_post_event(UNUSED fr_event_list_t *el, UNUSED struct time
                        PERROR("Failed writing to socket %d", s->fd);
                error:
                        fr_message_done(&cd->m);
-                       if (listen->app_io->error) listen->app_io->error(listen->app_io_instance);
+                       if (li->app_io->error) li->app_io->error(li->app_io_instance);
 
                        fr_network_socket_dead(nr, s);
                        continue;
@@ -1364,29 +1364,29 @@ void fr_network_exit(fr_network_t *nr)
 /** Add a fr_listen_t to a network
  *
  * @param nr           the network
- * @param listen       Functions and context.
+ * @param li           the listener
  */
-int fr_network_listen_add(fr_network_t *nr, fr_listen_t const *listen)
+int fr_network_listen_add(fr_network_t *nr, fr_listen_t *li)
 {
        fr_ring_buffer_t *rb;
 
        rb = fr_network_rb_init();
        if (!rb) return -1;
 
-       return fr_control_message_send(nr->control, rb, FR_CONTROL_ID_SOCKET, &listen, sizeof(listen));
+       return fr_control_message_send(nr->control, rb, FR_CONTROL_ID_SOCKET, &li, sizeof(li));
 }
 
 
 /** Delete a socket from a network.  MUST be called only by the listener itself!.
  *
  * @param nr           the network
- * @param listen       Functions and context.
+ * @param li           the listener
  */
-int fr_network_socket_delete(fr_network_t *nr, fr_listen_t const *listen)
+int fr_network_socket_delete(fr_network_t *nr, fr_listen_t *li)
 {
        fr_network_socket_t *s, my_socket;
 
-       my_socket.listen = listen;
+       my_socket.listen = li;
        s = rbtree_finddata(nr->sockets, &my_socket);
        if (!s) {
                return -1;
@@ -1400,16 +1400,16 @@ int fr_network_socket_delete(fr_network_t *nr, fr_listen_t const *listen)
 /** Add a "watch directory" call to a network
  *
  * @param nr           the network
- * @param listen       Functions and context.
+ * @param li           the listener
  */
-int fr_network_directory_add(fr_network_t *nr, fr_listen_t const *listen)
+int fr_network_directory_add(fr_network_t *nr, fr_listen_t *li)
 {
        fr_ring_buffer_t *rb;
 
        rb = fr_network_rb_init();
        if (!rb) return -1;
 
-       return fr_control_message_send(nr->control, rb, FR_CONTROL_ID_DIRECTORY, &listen, sizeof(listen));
+       return fr_control_message_send(nr->control, rb, FR_CONTROL_ID_DIRECTORY, &li, sizeof(li));
 }
 
 /** Add a worker to a network
@@ -1433,16 +1433,16 @@ int fr_network_worker_add(fr_network_t *nr, fr_worker_t *worker)
 /** Signal the network to read from a listener
  *
  * @param nr the network
- * @param listen the listener to read from
+ * @param li the listener to read from
  */
-void fr_network_listen_read(fr_network_t *nr, fr_listen_t const *listen)
+void fr_network_listen_read(fr_network_t *nr, fr_listen_t *li)
 {
        fr_network_socket_t my_socket, *s;
 
        (void) talloc_get_type_abort(nr, fr_network_t);
-       (void) talloc_get_type_abort_const(listen, fr_listen_t);
+       (void) talloc_get_type_abort_const(li, fr_listen_t);
 
-       my_socket.listen = listen;
+       my_socket.listen = li;
        s = rbtree_finddata(nr->sockets, &my_socket);
        if (!s) return;
 
@@ -1455,7 +1455,7 @@ void fr_network_listen_read(fr_network_t *nr, fr_listen_t const *listen)
 /** Inject a packet for a listener
  *
  * @param nr           the network
- * @param listen       the listener where the packet is being injected
+ * @param li           the listener where the packet is being injected
  * @param packet       the packet to be injected
  * @param packet_len   the length of the packet
  * @param recv_time    when the packet was received.
@@ -1463,7 +1463,7 @@ void fr_network_listen_read(fr_network_t *nr, fr_listen_t const *listen)
  *     - <0 on error
  *     - 0 on success
  */
-int fr_network_listen_inject(fr_network_t *nr, fr_listen_t *listen, uint8_t const *packet, size_t packet_len, fr_time_t recv_time)
+int fr_network_listen_inject(fr_network_t *nr, fr_listen_t *li, uint8_t const *packet, size_t packet_len, fr_time_t recv_time)
 {
        fr_ring_buffer_t *rb;
        fr_network_inject_t my_inject;
@@ -1472,14 +1472,14 @@ int fr_network_listen_inject(fr_network_t *nr, fr_listen_t *listen, uint8_t cons
        if (!rb) return -1;
 
        (void) talloc_get_type_abort(nr, fr_network_t);
-       (void) talloc_get_type_abort(listen, fr_listen_t);
+       (void) talloc_get_type_abort(li, fr_listen_t);
 
        /*
         *      Can't inject to injection-less destinations.
         */
-       if (!listen->app_io->inject) return -1;
+       if (!li->app_io->inject) return -1;
 
-       my_inject.listen = listen;
+       my_inject.listen = li;
        my_inject.packet = talloc_memdup(NULL, packet, packet_len);
        my_inject.packet_len = packet_len;
        my_inject.recv_time = recv_time;
index 7328e5b3034b0e20dd3978592b2c56dab8a6525d..a19af45fe96415b73ed146948dbb46c908ed2585 100644 (file)
@@ -38,12 +38,12 @@ void fr_network_exit(fr_network_t *nr) CC_HINT(nonnull);
 int fr_network_destroy(fr_network_t *nr) CC_HINT(nonnull);
 void fr_network(fr_network_t *nr) CC_HINT(nonnull);
 
-int fr_network_listen_add(fr_network_t *nr, fr_listen_t const *io) CC_HINT(nonnull);
-int fr_network_socket_delete(fr_network_t *nr, fr_listen_t const *listen);
-int fr_network_directory_add(fr_network_t *nr, fr_listen_t const *listen) CC_HINT(nonnull);
+int fr_network_listen_add(fr_network_t *nr, fr_listen_t *li) CC_HINT(nonnull);
+int fr_network_socket_delete(fr_network_t *nr, fr_listen_t *li);
+int fr_network_directory_add(fr_network_t *nr, fr_listen_t *li) CC_HINT(nonnull);
 int fr_network_worker_add(fr_network_t *nr, fr_worker_t *worker) CC_HINT(nonnull);
-void fr_network_listen_read(fr_network_t *nr, fr_listen_t const *listen) CC_HINT(nonnull);
-int fr_network_listen_inject(fr_network_t *nr, fr_listen_t *listen, uint8_t const *packet, size_t packet_len, fr_time_t recv_time);
+void fr_network_listen_read(fr_network_t *nr, fr_listen_t *li) CC_HINT(nonnull);
+int fr_network_listen_inject(fr_network_t *nr, fr_listen_t *li, uint8_t const *packet, size_t packet_len, fr_time_t recv_time);
 int fr_network_stats(fr_network_t const *nr, int num, uint64_t *stats) CC_HINT(nonnull);
 extern fr_cmd_table_t cmd_network_table[];
 
index bb9d632129cee2853b34d0545df6dd4424e0bb87..12cef5e4b1cebc72edd83319acf4fd9256a4d0fd 100644 (file)
@@ -684,12 +684,12 @@ done:
 /** Add a fr_listen_t to a scheduler.
  *
  * @param[in] sc the scheduler
- * @param[in] io the ctx and callbacks for the transport.
+ * @param[in] li the ctx and callbacks for the transport.
  * @return
  *     - NULL on error
  *     - the fr_network_t that the socket was added to.
  */
-fr_network_t *fr_schedule_listen_add(fr_schedule_t *sc, fr_listen_t const *io)
+fr_network_t *fr_schedule_listen_add(fr_schedule_t *sc, fr_listen_t *li)
 {
        fr_network_t *nr;
 
@@ -701,7 +701,7 @@ fr_network_t *fr_schedule_listen_add(fr_schedule_t *sc, fr_listen_t const *io)
                nr = sc->sn->nr;
        }
 
-       if (fr_network_listen_add(nr, io) < 0) return NULL;
+       if (fr_network_listen_add(nr, li) < 0) return NULL;
 
        return nr;
 }
@@ -709,12 +709,12 @@ fr_network_t *fr_schedule_listen_add(fr_schedule_t *sc, fr_listen_t const *io)
 /** Add a directory NOTE_EXTEND to a scheduler.
  *
  * @param[in] sc the scheduler
- * @param[in] io the ctx and callbacks for the transport.
+ * @param[in] li the ctx and callbacks for the transport.
  * @return
  *     - NULL on error
  *     - the fr_network_t that the socket was added to.
  */
-fr_network_t *fr_schedule_directory_add(fr_schedule_t *sc, fr_listen_t const *io)
+fr_network_t *fr_schedule_directory_add(fr_schedule_t *sc, fr_listen_t *li)
 {
        fr_network_t *nr;
 
@@ -726,7 +726,7 @@ fr_network_t *fr_schedule_directory_add(fr_schedule_t *sc, fr_listen_t const *io
                nr = sc->sn->nr;
        }
 
-       if (fr_network_directory_add(nr, io) < 0) return NULL;
+       if (fr_network_directory_add(nr, li) < 0) return NULL;
 
        return nr;
 }
index 9fc92cd1e22cc50c5328ff7013708c9e2bc14246..fe9da4a6b1f3050b3f786cf535e953dc5dbe8206 100644 (file)
@@ -56,8 +56,8 @@ fr_schedule_t         *fr_schedule_create(TALLOC_CTX *ctx, fr_event_list_t *el, fr_log_
 /* schedulers are async, so there's no fr_schedule_run() */
 int                    fr_schedule_destroy(fr_schedule_t *sc);
 
-fr_network_t           *fr_schedule_listen_add(fr_schedule_t *sc, fr_listen_t const *io) CC_HINT(nonnull);
-fr_network_t           *fr_schedule_directory_add(fr_schedule_t *sc, fr_listen_t const *io) CC_HINT(nonnull);
+fr_network_t           *fr_schedule_listen_add(fr_schedule_t *sc, fr_listen_t *li) CC_HINT(nonnull);
+fr_network_t           *fr_schedule_directory_add(fr_schedule_t *sc, fr_listen_t *li) CC_HINT(nonnull);
 #ifdef __cplusplus
 }
 #endif
index f1284ea5bf77675f6d250617415c2ca1506ece23..803cc4290c94830893f658b65949f6400f28176f 100644 (file)
@@ -367,10 +367,6 @@ static int mod_close(fr_listen_t *li)
        close(inst->sockfd);
        inst->sockfd = -1;
 
-       if (inst->stdout) fclose(inst->stdout);
-       if (inst->stderr) fclose(inst->stderr);
-       if (inst->misc) fclose(inst->misc);
-
        return 0;
 }
 
@@ -1016,6 +1012,15 @@ static int getpeereid(int s, uid_t *euid, gid_t *egid)
 
 #endif /* HAVE_GETPEEREID */
 
+static int _close_cookies(proto_control_unix_t *inst)
+{
+       if (inst->stdout) fclose(inst->stdout);
+       if (inst->stderr) fclose(inst->stderr);
+       if (inst->misc) fclose(inst->misc);
+
+       return 0;
+}
+
 /** Set the file descriptor for this socket.
  *
  */
@@ -1109,6 +1114,8 @@ static int mod_fd_set(fr_listen_t *li, int fd)
        inst->misc = fopencookie(inst, "w", io);
 #endif
 
+       talloc_set_destructor(inst, _close_cookies);
+
        /*
         *      @todo - if we move to a binary protocol, then we
         *      should change this to a small (i.e. 1K) buffer.  The
index 53c0b34676b8888964283ad3c0603b0919a246b6..218bd6abfbf95e45f4e34c7daa2c3cdb5c61dbdf 100644 (file)
@@ -62,7 +62,7 @@ typedef struct proto_detail_t {
 
        fr_schedule_t                   *sc;                            //!< the scheduler, where we insert new readers
 
-       fr_listen_t const               *listen;                        //!< The listener structure which describes
+       fr_listen_t                     *listen;                        //!< The listener structure which describes
                                                                        //!< the I/O path.
 #ifdef HAVE_PTHREAD_H
        pthread_mutex_t                 worker_mutex;                   //!< for the workers