diff --git a/src/event/modules/ngx_select_module.c b/src/event/modules/ngx_select_module.c index b9fceb3b6..96bfe4420 100644 --- a/src/event/modules/ngx_select_module.c +++ b/src/event/modules/ngx_select_module.c @@ -146,6 +146,17 @@ ngx_select_add_event(ngx_event_t *ev, ngx_int_t event, ngx_uint_t flags) return NGX_ERROR; } + /* disable warning: the default FD_SETSIZE is 1024U in FreeBSD 5.x-10.x */ + + if ((event == NGX_READ_EVENT || event == NGX_WRITE_EVENT) + && (unsigned) c->fd >= FD_SETSIZE) + { + ngx_log_error(NGX_LOG_ERR, ev->log, 0, + "maximum number of descriptors " + "supported by select() is %ud", FD_SETSIZE); + return NGX_ERROR; + } + if (event == NGX_READ_EVENT) { FD_SET(c->fd, &master_read_fd_set); @@ -411,8 +422,6 @@ ngx_select_init_conf(ngx_cycle_t *cycle, void *conf) return NGX_CONF_OK; } - /* disable warning: the default FD_SETSIZE is 1024U in FreeBSD 5.x */ - if (cycle->connection_n > FD_SETSIZE) { ngx_log_error(NGX_LOG_EMERG, cycle->log, 0, "the maximum number of files "