comparison src/event/modules/ngx_poll_module.c @ 10:46833bd150cb NGINX_0_1_5

nginx 0.1.5 *) Bugfix: on Solaris and Linux there may be too many "recvmsg() returned not enough data" alerts. *) Bugfix: there were the "writev() failed (22: Invalid argument)" errors on Solaris in proxy mode without sendfile. On other platforms that do not support sendfile at all the process got caught in an endless loop. *) Bugfix: segmentation fault on Solaris in proxy mode and using sendfile. *) Bugfix: segmentation fault on Solaris. *) Bugfix: on-line upgrade did not work on Linux. *) Bugfix: the ngx_http_autoindex_module module did not escape the spaces, the quotes, and the percent signs in the directory listing. *) Change: the decrease of the copy operations. *) Feature: the userid_p3p directive.
author Igor Sysoev <http://sysoev.ru>
date Thu, 11 Nov 2004 00:00:00 +0300
parents f0b350454894
children da8c190bdaba
comparison
equal deleted inserted replaced
9:77eee314ddbd 10:46833bd150cb
300 300
301 #if (NGX_DEBUG0) 301 #if (NGX_DEBUG0)
302 if (cycle->log->log_level & NGX_LOG_DEBUG_ALL) { 302 if (cycle->log->log_level & NGX_LOG_DEBUG_ALL) {
303 for (i = 0; i < nevents; i++) { 303 for (i = 0; i < nevents; i++) {
304 ngx_log_debug3(NGX_LOG_DEBUG_EVENT, cycle->log, 0, 304 ngx_log_debug3(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
305 "poll: %d: fd:%d ev:%04X", 305 "poll: %d: fd:%d ev:%04Xd",
306 i, event_list[i].fd, event_list[i].events); 306 i, event_list[i].fd, event_list[i].events);
307 } 307 }
308 } 308 }
309 #endif 309 #endif
310 310
378 378
379 for (i = 0; i < nevents && ready; i++) { 379 for (i = 0; i < nevents && ready; i++) {
380 380
381 #if 0 381 #if 0
382 ngx_log_debug4(NGX_LOG_DEBUG_EVENT, cycle->log, 0, 382 ngx_log_debug4(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
383 "poll: %d: fd:%d ev:%04X rev:%04X", 383 "poll: %d: fd:%d ev:%04Xd rev:%04Xd",
384 i, event_list[i].fd, 384 i, event_list[i].fd,
385 event_list[i].events, event_list[i].revents); 385 event_list[i].events, event_list[i].revents);
386 #else 386 #else
387 if (event_list[i].revents) { 387 if (event_list[i].revents) {
388 ngx_log_debug4(NGX_LOG_DEBUG_EVENT, cycle->log, 0, 388 ngx_log_debug4(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
389 "poll: %d: fd:%d ev:%04X rev:%04X", 389 "poll: %d: fd:%d ev:%04Xd rev:%04Xd",
390 i, event_list[i].fd, 390 i, event_list[i].fd,
391 event_list[i].events, event_list[i].revents); 391 event_list[i].events, event_list[i].revents);
392 } 392 }
393 #endif 393 #endif
394 394
395 if (event_list[i].revents & POLLNVAL) { 395 if (event_list[i].revents & POLLNVAL) {
396 ngx_log_error(NGX_LOG_ALERT, cycle->log, 0, 396 ngx_log_error(NGX_LOG_ALERT, cycle->log, 0,
397 "poll() error fd:%d ev:%04X rev:%04X", 397 "poll() error fd:%d ev:%04Xd rev:%04Xd",
398 event_list[i].fd, 398 event_list[i].fd,
399 event_list[i].events, event_list[i].revents); 399 event_list[i].events, event_list[i].revents);
400 } 400 }
401 401
402 if (event_list[i].revents & ~(POLLIN|POLLOUT|POLLERR|POLLHUP|POLLNVAL)) 402 if (event_list[i].revents & ~(POLLIN|POLLOUT|POLLERR|POLLHUP|POLLNVAL))
403 { 403 {
404 ngx_log_error(NGX_LOG_ALERT, cycle->log, 0, 404 ngx_log_error(NGX_LOG_ALERT, cycle->log, 0,
405 "strange poll() events fd:%d ev:%04X rev:%04X", 405 "strange poll() events fd:%d ev:%04Xd rev:%04Xd",
406 event_list[i].fd, 406 event_list[i].fd,
407 event_list[i].events, event_list[i].revents); 407 event_list[i].events, event_list[i].revents);
408 } 408 }
409 409
410 if (event_list[i].fd == -1) { 410 if (event_list[i].fd == -1) {
527 ev = accept_events; 527 ev = accept_events;
528 528
529 for ( ;; ) { 529 for ( ;; ) {
530 530
531 ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0, 531 ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
532 "accept event " PTR_FMT, ev); 532 "accept event %p", ev);
533 533
534 if (ev == NULL) { 534 if (ev == NULL) {
535 break; 535 break;
536 } 536 }
537 537