diff options
author | Maxim Dounin <mdounin@mdounin.ru> | 2018-07-12 19:50:02 +0300 |
---|---|---|
committer | Maxim Dounin <mdounin@mdounin.ru> | 2018-07-12 19:50:02 +0300 |
commit | 751bdd3bb2b6ff54be09c37ff328f258fed520fb (patch) | |
tree | 6ca2cfcbd7a21422d630960eba9662272773e1a6 /src/core/ngx_connection.c | |
parent | a8e38e2a9c1c9f3afb22fdb196e85fb2f28c192c (diff) | |
download | nginx-751bdd3bb2b6ff54be09c37ff328f258fed520fb.tar.gz nginx-751bdd3bb2b6ff54be09c37ff328f258fed520fb.zip |
Events: moved sockets cloning to ngx_event_init_conf().
Previously, listenings sockets were not cloned if the worker_processes
directive was specified after "listen ... reuseport".
This also simplifies upcoming configuration check on the number
of worker connections, as it needs to know the number of listening
sockets before cloning.
Diffstat (limited to 'src/core/ngx_connection.c')
-rw-r--r-- | src/core/ngx_connection.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/core/ngx_connection.c b/src/core/ngx_connection.c index 61ea4c2dd..33682532a 100644 --- a/src/core/ngx_connection.c +++ b/src/core/ngx_connection.c @@ -96,7 +96,7 @@ ngx_create_listening(ngx_conf_t *cf, struct sockaddr *sockaddr, ngx_int_t -ngx_clone_listening(ngx_conf_t *cf, ngx_listening_t *ls) +ngx_clone_listening(ngx_cycle_t *cycle, ngx_listening_t *ls) { #if (NGX_HAVE_REUSEPORT) @@ -104,20 +104,19 @@ ngx_clone_listening(ngx_conf_t *cf, ngx_listening_t *ls) ngx_core_conf_t *ccf; ngx_listening_t ols; - if (!ls->reuseport) { + if (!ls->reuseport || ls->worker != 0) { return NGX_OK; } ols = *ls; - ccf = (ngx_core_conf_t *) ngx_get_conf(cf->cycle->conf_ctx, - ngx_core_module); + ccf = (ngx_core_conf_t *) ngx_get_conf(cycle->conf_ctx, ngx_core_module); for (n = 1; n < ccf->worker_processes; n++) { /* create a socket for each worker process */ - ls = ngx_array_push(&cf->cycle->listening); + ls = ngx_array_push(&cycle->listening); if (ls == NULL) { return NGX_ERROR; } |