]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
fr_event_fd_insert should return an int like every other function in that api
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Sun, 27 Nov 2016 21:47:48 +0000 (16:47 -0500)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Sun, 27 Nov 2016 21:47:48 +0000 (16:47 -0500)
src/include/event.h
src/lib/event.c
src/main/process.c
src/main/radsniff.c
src/main/threads.c
src/main/unlang.c
src/modules/proto_bfd/proto_bfd.c
src/modules/rlm_radius_client/rlm_radius_client.c
src/modules/rlm_unbound/rlm_unbound.c

index 70c893c8ab8fe50ceadb857699a8eac261fa07f0..691275430712932ef2bff3a682c09865717a0b18 100644 (file)
@@ -82,11 +82,11 @@ int         fr_event_list_kq(fr_event_list_t *el);
 int            fr_event_list_time(struct timeval *when, fr_event_list_t *el);
 
 int            fr_event_fd_delete(fr_event_list_t *el, int fd);
-fr_event_fd_t  *fr_event_fd_insert(fr_event_list_t *el, int fd,
-                                   fr_event_fd_handler_t read,
-                                   fr_event_fd_handler_t write,
-                                   fr_event_fd_handler_t error,
-                                   void *ctx);
+int            fr_event_fd_insert(fr_event_list_t *el, int fd,
+                                  fr_event_fd_handler_t read,
+                                  fr_event_fd_handler_t write,
+                                  fr_event_fd_handler_t error,
+                                  void *ctx);
 
 int            fr_event_timer_delete(fr_event_list_t *el, fr_event_timer_t **parent);
 int            fr_event_timer_insert(fr_event_list_t *el,
index ab421090da458a3382a4741f176bf322ccbb424f..703e25cbcab561989e22b5066994eb97c4342090 100644 (file)
@@ -279,37 +279,39 @@ static int _fr_event_fd_free(fr_event_fd_t *ef)
  * @param[in] write    function to call when fd is writable.
  * @param[in] error    function to call when an error occurs on the fd.
  * @param[in] ctx      to pass to handler.
- * @return a handle to use for future deletion of the file descriptor event.
+ * @return
+ *     - 0 on succes.
+ *     - -1 on failure.
  */
-fr_event_fd_t *fr_event_fd_insert(fr_event_list_t *el, int fd,
-                                 fr_event_fd_handler_t read,
-                                 fr_event_fd_handler_t write,
-                                 fr_event_fd_handler_t error,
-                                 void *ctx)
+int fr_event_fd_insert(fr_event_list_t *el, int fd,
+                      fr_event_fd_handler_t read,
+                      fr_event_fd_handler_t write,
+                      fr_event_fd_handler_t error,
+                      void *ctx)
 {
-       int                     filter = 0;
-       struct kevent           evset[2];
-       struct kevent           *ev_p = evset;
-       fr_event_fd_t           *ef, find;
+       int           filter = 0;
+       struct kevent evset[2];
+       struct kevent *ev_p = evset;
+       fr_event_fd_t *ef, find;
 
        if (!el) {
                fr_strerror_printf("Invalid argument: NULL event list");
-               return NULL;
+               return -1;
        }
 
        if (!read && !write) {
                fr_strerror_printf("Invalid arguments: NULL read and write callbacks");
-               return NULL;
+               return -1;
        }
 
        if (fd < 0) {
                fr_strerror_printf("Invalid arguments: Bad FD %i", fd);
-               return NULL;
+               return -1;
        }
 
        if (el->exit) {
                fr_strerror_printf("Event loop exiting");
-               return NULL;
+               return -1;
        }
 
        memset(&find, 0, sizeof(find));
@@ -326,8 +328,8 @@ fr_event_fd_t *fr_event_fd_insert(fr_event_list_t *el, int fd,
        if (!ef) {
                ef = talloc_zero(el, fr_event_fd_t);
                if (!ef) {
-                       fr_strerror_printf("Failed allocating memory for FD");
-                       return NULL;
+                       fr_strerror_printf("Out of memory");
+                       return -1;
                }
                talloc_set_destructor(ef, _fr_event_fd_free);
                el->num_fds++;
@@ -373,11 +375,11 @@ fr_event_fd_t *fr_event_fd_insert(fr_event_list_t *el, int fd,
        if (kevent(el->kq, evset, ev_p - evset, NULL, 0, NULL) < 0) {
                fr_strerror_printf("Failed inserting event for FD %i: %s", fd, fr_syserror(errno));
                talloc_free(ef);
-               return NULL;
+               return -1;
        }
        ef->is_registered = true;
 
-       return ef;
+       return 0;
 }
 
 
index 583d8f36cbb9bfb842c36cd84b618f9ff24c43ee..801b747e1ed4c4249fd1131bebb56d58fee76a6e 100644 (file)
@@ -4888,7 +4888,7 @@ static int event_new_fd(rad_listen_t *this)
                /*
                 *      All sockets: add the FD to the event handler.
                 */
-               if (!fr_event_fd_insert(el, this->fd, event_socket_handler, NULL, NULL, this)) {
+               if (fr_event_fd_insert(el, this->fd, event_socket_handler, NULL, NULL, this) < 0) {
                        ERROR("Failed adding event handler for socket: %s", fr_strerror());
                        fr_exit(1);
                }
@@ -5393,7 +5393,7 @@ int radius_event_start(bool have_children)
        }
        DEBUG4("Created signal pipe.  Read end FD %i, write end FD %i", self_pipe[0], self_pipe[1]);
 
-       if (!fr_event_fd_insert(el, self_pipe[0], event_signal_handler, NULL, NULL, el)) {
+       if (fr_event_fd_insert(el, self_pipe[0], event_signal_handler, NULL, NULL, el) < 0) {
                ERROR("Failed creating signal pipe handler: %s", fr_strerror());
                return -1;
        }
index e0516c626bc1802ff9373fe2f196c95863691624..ae11f766990d2154800a2f92463152582ee86354 100644 (file)
@@ -2802,7 +2802,7 @@ int main(int argc, char *argv[])
                        exit(EXIT_FAILURE);
                }
 
-               if (!fr_event_fd_insert(events, self_pipe[0], rs_signal_action, NULL, NULL, events)) {
+               if (fr_event_fd_insert(events, self_pipe[0], rs_signal_action, NULL, NULL, events) < 0) {
                        ERROR("Failed inserting signal pipe descriptor: %s", fr_strerror());
                        goto finish;
                }
@@ -2821,7 +2821,7 @@ int main(int argc, char *argv[])
                        event->out = out;
                        event->stats = stats;
 
-                       if (!fr_event_fd_insert(events, in_p->fd, rs_got_packet, NULL, NULL, event)) {
+                       if (fr_event_fd_insert(events, in_p->fd, rs_got_packet, NULL, NULL, event) < 0) {
                                ERROR("Failed inserting file descriptor");
                                goto finish;
                        }
index 1a8601cd31b1e8a4a33492d4e3308cbc45fa9617..0f5cd641d208bd374ffc4273fb4445d0e51b5709 100644 (file)
@@ -461,7 +461,7 @@ static void *thread_handler(void *arg)
        local_backlog = fr_heap_create(timestamp_cmp, offsetof(REQUEST, heap_id));
        rad_assert(local_backlog != NULL);
 
-       if (!fr_event_fd_insert(el, thread->pipe_fd[0], thread_fd_handler, NULL, NULL, thread)) {
+       if (fr_event_fd_insert(el, thread->pipe_fd[0], thread_fd_handler, NULL, NULL, thread) < 0) {
                ERROR("Failed inserting event for self");
                goto done;
        }
index 19413845c6adb92d90a4a31d6f25726bd935ee04..952e20ff3db952a9c6f9c4b32c19e0b4d60cd69e 100644 (file)
@@ -1435,7 +1435,7 @@ int unlang_event_fd_readable_add(REQUEST *request, fr_unlang_fd_callback_t callb
        ev->thread = frame->modcall.thread;
        ev->ctx = ctx;
 
-       if (!fr_event_fd_insert(request->el, fd, unlang_event_fd_handler, NULL, NULL, ev)) {
+       if (fr_event_fd_insert(request->el, fd, unlang_event_fd_handler, NULL, NULL, ev) < 0) {
                talloc_free(ev);
                return -1;
        }
index 34de93c28a33f20d32a546ae245f4bc3d5a44530..4c296d449dc75ad8958e71e98bd9de1076418d82 100644 (file)
@@ -332,7 +332,7 @@ static int bfd_pthread_create(bfd_state_t *session)
        fcntl(session->pipefd[1], F_SETFL, O_NONBLOCK | FD_CLOEXEC);
 #endif
 
-       if (!fr_event_fd_insert(session->el, session->pipefd[0], bfd_pipe_recv, NULL, NULL, session)) {
+       if (fr_event_fd_insert(session->el, session->pipefd[0], bfd_pipe_recv, NULL, NULL, session) < 0) {
                ERROR("Failed inserting file descriptor into event list: %s", fr_strerror());
                goto close_pipes;
        }
index 99c07c639b895e1d42af806fd805060c357a44ad..129d11c8874a2ed1d0c18584f5b579194d2370fc 100644 (file)
@@ -368,7 +368,7 @@ static int mod_fd_add(fr_event_list_t *el, rlm_radius_client_conn_t *conn, rlm_r
                return -1;
        }
 
-       if (!fr_event_fd_insert(el, sockfd, mod_event_fd, NULL, NULL, conn)) {
+       if (fr_event_fd_insert(el, sockfd, mod_event_fd, NULL, NULL, conn) < 0) {
                DEBUG("Failed adding event for socket: %s", fr_strerror());
                close(sockfd);
                return -1;
index 92d41800aa5531f611ad0ab5465e8949c103c9af..c121593fad2e903ed596cc750fe9c2093d3bdee3 100644 (file)
@@ -625,7 +625,7 @@ static int mod_instantiate(CONF_SECTION *conf, void *instance)
 
        inst->log_fd = ub_fd(inst->ub);
        if (inst->log_fd >= 0) {
-               if (!fr_event_fd_insert(inst->el, inst->log_fd, ub_fd_handler, NULL, NULL, inst)) {
+               if (fr_event_fd_insert(inst->el, inst->log_fd, ub_fd_handler, NULL, NULL, inst) < 0) {
                        cf_log_err_cs(conf, "could not insert async fd");
                        inst->log_fd = -1;
                        goto error_nores;