]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- unbound-control status reports if so-reuseport was successful.
authorWouter Wijngaards <wouter@nlnetlabs.nl>
Thu, 26 Jun 2014 08:48:51 +0000 (08:48 +0000)
committerWouter Wijngaards <wouter@nlnetlabs.nl>
Thu, 26 Jun 2014 08:48:51 +0000 (08:48 +0000)
git-svn-id: file:///svn/unbound/trunk@3150 be551aaa-1e26-0410-a405-d3ace91eadb9

daemon/daemon.c
daemon/daemon.h
daemon/remote.c
doc/Changelog

index aed22c2db7f6da98ba1352404262b33ab5d8d42f..3406d79400fe27057400169d2012ef3f3c7b3195 100644 (file)
@@ -256,8 +256,8 @@ daemon_open_shared_ports(struct daemon* daemon)
        log_assert(daemon);
        if(daemon->cfg->port != daemon->listening_port) {
                size_t i;
-               int reuseport = 0;
                struct listen_port* p0;
+               daemon->reuseport = 0;
                /* free and close old ports */
                if(daemon->ports != NULL) {
                        for(i=0; i<daemon->num_ports; i++)
@@ -268,15 +268,15 @@ daemon_open_shared_ports(struct daemon* daemon)
                /* see if we want to reuseport */
 #if defined(__linux__) && defined(SO_REUSEPORT)
                if(daemon->cfg->so_reuseport && daemon->cfg->num_threads > 0)
-                       reuseport = 1;
+                       daemon->reuseport = 1;
 #endif
                /* try to use reuseport */
-               p0 = listening_ports_open(daemon->cfg, &reuseport);
+               p0 = listening_ports_open(daemon->cfg, &daemon->reuseport);
                if(!p0) {
                        listening_ports_free(p0);
                        return 0;
                }
-               if(reuseport) {
+               if(daemon->reuseport) {
                        /* reuseport was successful, allocate for it */
                        daemon->num_ports = (size_t)daemon->cfg->num_threads;
                } else {
@@ -290,12 +290,13 @@ daemon_open_shared_ports(struct daemon* daemon)
                        return 0;
                }
                daemon->ports[0] = p0;
-               if(reuseport) {
+               if(daemon->reuseport) {
                        /* continue to use reuseport */
                        for(i=1; i<daemon->num_ports; i++) {
                                if(!(daemon->ports[i]=
                                        listening_ports_open(daemon->cfg,
-                                               &reuseport)) || !reuseport ) {
+                                               &daemon->reuseport))
+                                       || !daemon->reuseport ) {
                                        for(i=0; i<daemon->num_ports; i++)
                                                listening_ports_free(daemon->ports[i]);
                                        free(daemon->ports);
index 855b0d3440863e6ce5e1c9d3debe961357ea41ba..37ddf9e18f97b44464498862224ec0fb9d310dbf 100644 (file)
@@ -77,6 +77,8 @@ struct daemon {
        struct listen_port** ports;
        /** size of ports array */
        size_t num_ports;
+       /** reuseport is enabled if true */
+       int reuseport;
        /** port number for remote that has ports opened. */
        int rc_port;
        /** listening ports for remote control */
index 3362199cd030e698a0728cd4ca4ad801db9ba432..f9369808081b2b1d9f143516ed6676889ffde8cd 100644 (file)
@@ -1808,6 +1808,10 @@ do_status(SSL* ssl, struct worker* worker)
        uptime = (time_t)time(NULL) - (time_t)worker->daemon->time_boot.tv_sec;
        if(!ssl_printf(ssl, "uptime: " ARG_LL "d seconds\n", (long long)uptime))
                return;
+       if(!ssl_printf(ssl, "options:%s%s\n" , 
+               (worker->daemon->reuseport?" reuseport":""),
+               (worker->daemon->rc->accept_list?" control(ssl)":"")))
+               return;
        if(!ssl_printf(ssl, "unbound (pid %d) is running...\n",
                (int)getpid()))
                return;
index f992eb654a0e82287d2f0ab7cdf5e11e09be3b56..ddd0aab81257e98da21699318f81f0e87b8af8e7 100644 (file)
@@ -1,3 +1,6 @@
+26 June 2014: Wouter
+       - unbound-control status reports if so-reuseport was successful.
+
 24 June 2014: Wouter
        - Fix caps-for-id fallback, and added fallback attempt when servers
          drop 0x20 perturbed queries.