]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
shut down listeners which have connection errors
authorAlan T. DeKok <aland@freeradius.org>
Fri, 11 Nov 2022 13:09:10 +0000 (13:09 +0000)
committerAlan T. DeKok <aland@freeradius.org>
Fri, 11 Nov 2022 13:09:29 +0000 (13:09 +0000)
src/main/tls_listen.c

index 4235b0dba2d9d4a8a9490b9cd2e44adcd030d8db..948f56108d85814349bedcbda671449d3f170eef 100644 (file)
@@ -1060,7 +1060,11 @@ static ssize_t proxy_tls_read(rad_listen_t *listener)
 
        if (!sock->ssn->connected) {
                rcode = try_connect(sock);
-               if (rcode <= 0) return rcode;
+               if (rcode <= 0) {
+                       listener->status = RAD_LISTEN_STATUS_EOL;
+                       radius_update_listener(listener);
+                       return rcode;
+               }
        }
 
        /*
@@ -1302,7 +1306,11 @@ int proxy_tls_send(rad_listen_t *listener, REQUEST *request)
                PTHREAD_MUTEX_LOCK(&sock->mutex);
                rcode = try_connect(sock);
                PTHREAD_MUTEX_UNLOCK(&sock->mutex);
-               if (rcode <= 0) return rcode;
+               if (rcode <= 0) {
+                       listener->status = RAD_LISTEN_STATUS_EOL;
+                       radius_update_listener(listener);
+                       return rcode;
+               }
        }
 
        DEBUG3("Proxy is writing %u bytes to SSL",