comparison src/event/ngx_event_pipe.c @ 521:6f00349b98e5 release-0.1.35

nginx-0.1.35-RELEASE import *) Feature: the "working_directory" directive. *) Feature: the "port_in_redirect" directive. *) Bugfix: the segmentation fault was occurred if the backend response header was in several packets; the bug had appeared in 0.1.29. *) Bugfix: if more than 10 servers were configured or some server did not use the "listen" directive, then the segmentation fault was occurred on the start. *) Bugfix: the segmentation fault might occur if the response was bigger than the temporary file. *) Bugfix: nginx returned the 400 response on requests like "GET http://www.domain.com/uri HTTP/1.0"; the bug had appeared in 0.1.28.
author Igor Sysoev <igor@sysoev.ru>
date Tue, 07 Jun 2005 15:56:31 +0000
parents 9b8c906f6e63
children 7fa11e5c6e96
comparison
equal deleted inserted replaced
520:1fecc7e0d717 521:6f00349b98e5
207 207
208 rc = ngx_event_pipe_write_chain_to_temp_file(p); 208 rc = ngx_event_pipe_write_chain_to_temp_file(p);
209 209
210 ngx_log_debug1(NGX_LOG_DEBUG_EVENT, p->log, 0, 210 ngx_log_debug1(NGX_LOG_DEBUG_EVENT, p->log, 0,
211 "pipe temp offset: %O", p->temp_file->offset); 211 "pipe temp offset: %O", p->temp_file->offset);
212
213 if (rc == NGX_BUSY) {
214 break;
215 }
212 216
213 if (rc == NGX_AGAIN) { 217 if (rc == NGX_AGAIN) {
214 if (ngx_event_flags & NGX_USE_LEVEL_EVENT 218 if (ngx_event_flags & NGX_USE_LEVEL_EVENT
215 && p->upstream->read->active 219 && p->upstream->read->active
216 && p->upstream->read->ready) 220 && p->upstream->read->ready)
615 619
616 } while (cl); 620 } while (cl);
617 621
618 ngx_log_debug1(NGX_LOG_DEBUG_EVENT, p->log, 0, "size: %z", size); 622 ngx_log_debug1(NGX_LOG_DEBUG_EVENT, p->log, 0, "size: %z", size);
619 623
624 if (ll == NULL) {
625 return NGX_BUSY;
626 }
627
620 if (cl) { 628 if (cl) {
621 p->in = cl; 629 p->in = cl;
622 *ll = NULL; 630 *ll = NULL;
623 631
624 } else { 632 } else {