]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
pass event list to fr_network_create()
authorAlan T. DeKok <aland@freeradius.org>
Mon, 19 Jun 2017 20:45:25 +0000 (16:45 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Mon, 19 Jun 2017 20:45:25 +0000 (16:45 -0400)
In preparation for single-threaded mode

src/lib/io/network.c
src/lib/io/network.h
src/lib/io/schedule.c

index 1650d1da27f13c7d37b6f3534c75d63bd979b3e0..0f3667df0ec2a8b885f7810fa4035adf21de5b22 100644 (file)
@@ -562,12 +562,13 @@ static void fr_network_evfilt_user(UNUSED int kq, UNUSED struct kevent const *ke
 /** Create a network
  *
  * @param[in] ctx the talloc ctx
+ * @param[in] el the event list
  * @param[in] logger the destination for all logging messages
  * @return
  *     - NULL on error
  *     - fr_network_t on success
  */
-fr_network_t *fr_network_create(TALLOC_CTX *ctx, fr_log_t *logger)
+fr_network_t *fr_network_create(TALLOC_CTX *ctx, fr_event_list_t *el, fr_log_t *logger)
 {
        fr_network_t *nr;
 
@@ -577,13 +578,7 @@ fr_network_t *fr_network_create(TALLOC_CTX *ctx, fr_log_t *logger)
                return NULL;
        }
 
-       nr->el = fr_event_list_alloc(nr, NULL, NULL);
-       if (!nr->el) {
-               fr_strerror_printf("Failed creating event list: %s", fr_strerror());
-               talloc_free(nr);
-               return NULL;
-       }
-
+       nr->el = el;
        nr->log = logger;
 
        nr->kq = fr_event_list_kq(nr->el);
index 82fdf88803cb6cdbca83b80f86f597502d61fd34..c8355a792e80d3ea829b68d4144d928ae81adfad 100644 (file)
@@ -33,8 +33,8 @@ extern "C" {
 
 typedef struct fr_network_t fr_network_t;
 
-fr_network_t *fr_network_create(TALLOC_CTX *ctx, fr_log_t *logger);
-void fr_network_exit(fr_network_t *nr);
+fr_network_t *fr_network_create(TALLOC_CTX *ctx, fr_event_list_t *el, fr_log_t *logger) CC_HINT(nonnull(2,3));;
+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);
 
index a42d52ac9c1bcf86aea695358d7da86876ca448e..8ca6307a3fd37a8c0ac0f567998a66fe5d8781f0 100644 (file)
@@ -221,6 +221,7 @@ static void *fr_schedule_network_thread(void *arg)
        fr_schedule_network_t           *sn = arg;
        fr_schedule_t                   *sc = sn->sc;
        fr_schedule_child_status_t      status = FR_CHILD_FAIL;
+       fr_event_list_t                 *el;
 
        fr_log(sc->log, L_INFO, "Network %d starting\n", sn->id);
 
@@ -230,7 +231,14 @@ static void *fr_schedule_network_thread(void *arg)
                goto fail;
        }
 
-       sn->rc = fr_network_create(ctx, sc->log);
+       el = fr_event_list_alloc(ctx, NULL, NULL);
+       if (!el) {
+               fr_log(sc->log, L_ERR, "Network %d - Failed creating event list: %s",
+                      sn->id, fr_strerror());
+               goto fail;
+       }
+
+       sn->rc = fr_network_create(ctx, el, sc->log);
        if (!sn->rc) {
                fr_log(sc->log, L_ERR, "Network %d - Failed creating network: %s", sn->id, fr_strerror());
                goto fail;