From: Wouter Wijngaards Date: Thu, 26 Jun 2014 08:48:51 +0000 (+0000) Subject: - unbound-control status reports if so-reuseport was successful. X-Git-Tag: release-1.5.0rc1~110 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=eaa926940c19621a0e5827c8110dfda0dede0f17;p=thirdparty%2Funbound.git - unbound-control status reports if so-reuseport was successful. git-svn-id: file:///svn/unbound/trunk@3150 be551aaa-1e26-0410-a405-d3ace91eadb9 --- diff --git a/daemon/daemon.c b/daemon/daemon.c index aed22c2db..3406d7940 100644 --- a/daemon/daemon.c +++ b/daemon/daemon.c @@ -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; inum_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; inum_ports; i++) { if(!(daemon->ports[i]= listening_ports_open(daemon->cfg, - &reuseport)) || !reuseport ) { + &daemon->reuseport)) + || !daemon->reuseport ) { for(i=0; inum_ports; i++) listening_ports_free(daemon->ports[i]); free(daemon->ports); diff --git a/daemon/daemon.h b/daemon/daemon.h index 855b0d344..37ddf9e18 100644 --- a/daemon/daemon.h +++ b/daemon/daemon.h @@ -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 */ diff --git a/daemon/remote.c b/daemon/remote.c index 3362199cd..f93698080 100644 --- a/daemon/remote.c +++ b/daemon/remote.c @@ -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; diff --git a/doc/Changelog b/doc/Changelog index f992eb654..ddd0aab81 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -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.