comparison src/event/ngx_event_openssl.c @ 430:dac47e9ef0d5 NGINX_0_7_27

nginx 0.7.27 *) Feature: the "try_files" directive. *) Feature: variables support in the "fastcgi_pass" directive. *) Feature: now the $geo variable may get an address from a variable. Thanks to Andrei Nigmatulin. *) Feature: now a location's modifier may be used without space before name. *) Feature: the $upstream_response_length variable. *) Bugfix: now a "add_header" directive does not add an empty value. *) Bugfix: if zero length static file was requested, then nginx just closed connection; the bug had appeared in 0.7.25. *) Bugfix: a MOVE method could not move file in non-existent directory. *) Bugfix: a segmentation fault occurred in worker process, if no one named location was defined in server, but some one was used in an error_page directive. Thanks to Sergey Bochenkov.
author Igor Sysoev <http://sysoev.ru>
date Mon, 15 Dec 2008 00:00:00 +0300
parents ad0a34a8efa6
children 15a022ee809b
comparison
equal deleted inserted replaced
429:3b8e9d1bc9bb 430:dac47e9ef0d5
496 496
497 ngx_log_debug1(NGX_LOG_DEBUG_EVENT, c->log, 0, "SSL_do_handshake: %d", n); 497 ngx_log_debug1(NGX_LOG_DEBUG_EVENT, c->log, 0, "SSL_do_handshake: %d", n);
498 498
499 if (n == 1) { 499 if (n == 1) {
500 500
501 if (ngx_handle_read_event(c->read, 0) == NGX_ERROR) { 501 if (ngx_handle_read_event(c->read, 0) != NGX_OK) {
502 return NGX_ERROR; 502 return NGX_ERROR;
503 } 503 }
504 504
505 if (ngx_handle_write_event(c->write, 0) == NGX_ERROR) { 505 if (ngx_handle_write_event(c->write, 0) != NGX_OK) {
506 return NGX_ERROR; 506 return NGX_ERROR;
507 } 507 }
508 508
509 #if (NGX_DEBUG) 509 #if (NGX_DEBUG)
510 { 510 {
567 if (sslerr == SSL_ERROR_WANT_READ) { 567 if (sslerr == SSL_ERROR_WANT_READ) {
568 c->read->ready = 0; 568 c->read->ready = 0;
569 c->read->handler = ngx_ssl_handshake_handler; 569 c->read->handler = ngx_ssl_handshake_handler;
570 c->write->handler = ngx_ssl_handshake_handler; 570 c->write->handler = ngx_ssl_handshake_handler;
571 571
572 if (ngx_handle_read_event(c->read, 0) == NGX_ERROR) { 572 if (ngx_handle_read_event(c->read, 0) != NGX_OK) {
573 return NGX_ERROR; 573 return NGX_ERROR;
574 } 574 }
575 575
576 return NGX_AGAIN; 576 return NGX_AGAIN;
577 } 577 }
579 if (sslerr == SSL_ERROR_WANT_WRITE) { 579 if (sslerr == SSL_ERROR_WANT_WRITE) {
580 c->write->ready = 0; 580 c->write->ready = 0;
581 c->read->handler = ngx_ssl_handshake_handler; 581 c->read->handler = ngx_ssl_handshake_handler;
582 c->write->handler = ngx_ssl_handshake_handler; 582 c->write->handler = ngx_ssl_handshake_handler;
583 583
584 if (ngx_handle_write_event(c->write, 0) == NGX_ERROR) { 584 if (ngx_handle_write_event(c->write, 0) != NGX_OK) {
585 return NGX_ERROR; 585 return NGX_ERROR;
586 } 586 }
587 587
588 return NGX_AGAIN; 588 return NGX_AGAIN;
589 } 589 }
765 765
766 c->write->handler = c->ssl->saved_write_handler; 766 c->write->handler = c->ssl->saved_write_handler;
767 c->ssl->saved_write_handler = NULL; 767 c->ssl->saved_write_handler = NULL;
768 c->write->ready = 1; 768 c->write->ready = 1;
769 769
770 if (ngx_handle_write_event(c->write, 0) == NGX_ERROR) { 770 if (ngx_handle_write_event(c->write, 0) != NGX_OK) {
771 return NGX_ERROR; 771 return NGX_ERROR;
772 } 772 }
773 773
774 ngx_post_event(c->write, &ngx_posted_events); 774 ngx_post_event(c->write, &ngx_posted_events);
775 } 775 }
793 ngx_log_error(NGX_LOG_INFO, c->log, 0, 793 ngx_log_error(NGX_LOG_INFO, c->log, 0,
794 "peer started SSL renegotiation"); 794 "peer started SSL renegotiation");
795 795
796 c->write->ready = 0; 796 c->write->ready = 0;
797 797
798 if (ngx_handle_write_event(c->write, 0) == NGX_ERROR) { 798 if (ngx_handle_write_event(c->write, 0) != NGX_OK) {
799 return NGX_ERROR; 799 return NGX_ERROR;
800 } 800 }
801 801
802 /* 802 /*
803 * we do not set the timer because there is already the read event timer 803 * we do not set the timer because there is already the read event timer
1017 1017
1018 c->read->handler = c->ssl->saved_read_handler; 1018 c->read->handler = c->ssl->saved_read_handler;
1019 c->ssl->saved_read_handler = NULL; 1019 c->ssl->saved_read_handler = NULL;
1020 c->read->ready = 1; 1020 c->read->ready = 1;
1021 1021
1022 if (ngx_handle_read_event(c->read, 0) == NGX_ERROR) { 1022 if (ngx_handle_read_event(c->read, 0) != NGX_OK) {
1023 return NGX_ERROR; 1023 return NGX_ERROR;
1024 } 1024 }
1025 1025
1026 ngx_post_event(c->read, &ngx_posted_events); 1026 ngx_post_event(c->read, &ngx_posted_events);
1027 } 1027 }
1045 ngx_log_error(NGX_LOG_INFO, c->log, 0, 1045 ngx_log_error(NGX_LOG_INFO, c->log, 0,
1046 "peer started SSL renegotiation"); 1046 "peer started SSL renegotiation");
1047 1047
1048 c->read->ready = 0; 1048 c->read->ready = 0;
1049 1049
1050 if (ngx_handle_read_event(c->read, 0) == NGX_ERROR) { 1050 if (ngx_handle_read_event(c->read, 0) != NGX_OK) {
1051 return NGX_ERROR; 1051 return NGX_ERROR;
1052 } 1052 }
1053 1053
1054 /* 1054 /*
1055 * we do not set the timer because there is already 1055 * we do not set the timer because there is already
1145 1145
1146 if (sslerr == SSL_ERROR_WANT_READ || sslerr == SSL_ERROR_WANT_WRITE) { 1146 if (sslerr == SSL_ERROR_WANT_READ || sslerr == SSL_ERROR_WANT_WRITE) {
1147 c->read->handler = ngx_ssl_shutdown_handler; 1147 c->read->handler = ngx_ssl_shutdown_handler;
1148 c->write->handler = ngx_ssl_shutdown_handler; 1148 c->write->handler = ngx_ssl_shutdown_handler;
1149 1149
1150 if (ngx_handle_read_event(c->read, 0) == NGX_ERROR) { 1150 if (ngx_handle_read_event(c->read, 0) != NGX_OK) {
1151 return NGX_ERROR; 1151 return NGX_ERROR;
1152 } 1152 }
1153 1153
1154 if (ngx_handle_write_event(c->write, 0) == NGX_ERROR) { 1154 if (ngx_handle_write_event(c->write, 0) != NGX_OK) {
1155 return NGX_ERROR; 1155 return NGX_ERROR;
1156 } 1156 }
1157 1157
1158 if (sslerr == SSL_ERROR_WANT_READ) { 1158 if (sslerr == SSL_ERROR_WANT_READ) {
1159 ngx_add_timer(c->read, 30000); 1159 ngx_add_timer(c->read, 30000);