]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
allow listener to be NULL
authorAlan T. DeKok <aland@freeradius.org>
Tue, 16 May 2017 20:33:22 +0000 (16:33 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Wed, 17 May 2017 14:58:02 +0000 (10:58 -0400)
in preparation for new transport code

src/modules/rlm_client/rlm_client.c
src/modules/rlm_detail/rlm_detail.c
src/modules/rlm_realm/rlm_realm.c

index cf57c2c0d4c11ca41906b77f58f9bf1c7042adf9..00c0be0d16dd4e5970fc32033e47ded609939c16 100644 (file)
@@ -294,8 +294,10 @@ static rlm_rcode_t CC_HINT(nonnull) mod_authorize(UNUSED void *instance, UNUSED
        if (request->client->server) {
                server_cs = request->client->server_cs;
 
-       } else {
+       } else if (request->listener) {
                server_cs = request->listener->server_cs;
+       } else {
+               server_cs = "default"; /* @todo - delete this when we delete the old listeners */
        }
 
        c = client_read(buffer, server_cs, true);
index 1bd4f1089f39407f06d2dd5efbb5f67f04a7a3c3..d7010a8d70868378d599274b28bda8acb65ce3f5 100644 (file)
@@ -379,7 +379,7 @@ static rlm_rcode_t CC_HINT(nonnull) detail_do(void const *instance, REQUEST *req
         *      suppress the write.  This check prevents an infinite
         *      loop.
         */
-       if ((request->listener->type == RAD_LISTEN_DETAIL) &&
+       if (request->listener && (request->listener->type == RAD_LISTEN_DETAIL) &&
            (fnmatch(((listen_detail_t *)request->listener->data)->filename,
                     buffer, FNM_FILE_NAME | FNM_PERIOD ) == 0)) {
                RWDEBUG2("Suppressing infinite loop");
@@ -440,7 +440,7 @@ skip_group:
 static rlm_rcode_t CC_HINT(nonnull) mod_accounting(void *instance, UNUSED void *thread, REQUEST *request)
 {
 #ifdef WITH_DETAIL
-       if (request->listener->type == RAD_LISTEN_DETAIL &&
+       if (request->listener && (request->listener->type == RAD_LISTEN_DETAIL) &&
            strcmp(((rlm_detail_t const *)instance)->filename,
                   ((listen_detail_t *)request->listener->data)->filename) == 0) {
                RDEBUG("Suppressing writes to detail file as the request was just read from a detail file");
index 457e9f82bac73d675b27c79bf577640ac825e8ab..fd210f5d84e6f0b385479e4c649ca87770b47f58 100644 (file)
@@ -321,7 +321,7 @@ static int check_for_realm(void const *instance, REQUEST *request, REALM **retur
                 *      additional checks.
                 */
 #ifdef WITH_DETAIL
-       } else if ((request->listener->type == RAD_LISTEN_DETAIL) &&
+       } else if (request->listener && (request->listener->type == RAD_LISTEN_DETAIL) &&
                   !fr_is_inaddr_any(&request->packet->src_ipaddr)) {
                int i;