sorry i make a mistake. the nginx code is correct. int the loop , ngx_ssl_error() called ERR_get_error(), which will pop error queue head element.
2015-01-28 21:58 GMT+08:00 何龙 <[email protected]>: > in src/event/ngx_event_openssl.c:1907, i found function > ngx_ssl_clear_error() call openssl function ERR_peek_error() in a > while loop, intend to clear global error code queue, > > but according to openssl's documents and source code, ERR_peek_error() will > not > pop the first error code , and it does not modify the queue. > > so it looks like this will cause a busy loop. > > is my understanding correct? > > reference: > > nginx source code > " > static void > ngx_ssl_clear_error(ngx_log_t *log) > { > while (ERR_peek_error()) { > ngx_ssl_error(NGX_LOG_ALERT, log, 0, "ignoring stale global SSL > error"); > } > > ERR_clear_error(); > } > > " > > openssl source code: > https://github.com/openssl/openssl/blob/master/crypto/err/err.c#L770 _______________________________________________ nginx-devel mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx-devel
