comparison src/event/modules/ngx_devpoll_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 cc9f381affaa
children 6f8b0dc0f8dd
comparison
equal deleted inserted replaced
9:77eee314ddbd 10:46833bd150cb
206 #endif 206 #endif
207 207
208 #if (NGX_DEBUG) 208 #if (NGX_DEBUG)
209 c = ev->data; 209 c = ev->data;
210 ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0, 210 ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0,
211 "devpoll add event: fd:%d ev:%04X", c->fd, event); 211 "devpoll add event: fd:%d ev:%04Xd", c->fd, event);
212 #endif 212 #endif
213 213
214 ev->active = 1; 214 ev->active = 1;
215 215
216 return ngx_devpoll_set_event(ev, event, 0); 216 return ngx_devpoll_set_event(ev, event, 0);
227 #if (NGX_READ_EVENT != POLLIN) 227 #if (NGX_READ_EVENT != POLLIN)
228 event = (event == NGX_READ_EVENT) ? POLLIN : POLLOUT; 228 event = (event == NGX_READ_EVENT) ? POLLIN : POLLOUT;
229 #endif 229 #endif
230 230
231 ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0, 231 ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0,
232 "devpoll del event: fd:%d ev:%04X", c->fd, event); 232 "devpoll del event: fd:%d ev:%04Xd", c->fd, event);
233 233
234 if (ngx_devpoll_set_event(ev, POLLREMOVE, flags) == NGX_ERROR) { 234 if (ngx_devpoll_set_event(ev, POLLREMOVE, flags) == NGX_ERROR) {
235 return NGX_ERROR; 235 return NGX_ERROR;
236 } 236 }
237 237
266 ngx_connection_t *c; 266 ngx_connection_t *c;
267 267
268 c = ev->data; 268 c = ev->data;
269 269
270 ngx_log_debug3(NGX_LOG_DEBUG_EVENT, ev->log, 0, 270 ngx_log_debug3(NGX_LOG_DEBUG_EVENT, ev->log, 0,
271 "devpoll fd:%d ev:%04X fl:%04X", c->fd, event, flags); 271 "devpoll fd:%d ev:%04Xd fl:%04Xd", c->fd, event, flags);
272 272
273 if (nchanges >= max_changes) { 273 if (nchanges >= max_changes) {
274 ngx_log_error(NGX_LOG_WARN, ev->log, 0, 274 ngx_log_error(NGX_LOG_WARN, ev->log, 0,
275 "/dev/pool change list is filled up"); 275 "/dev/pool change list is filled up");
276 276
451 ngx_log_error(NGX_LOG_EMERG, cycle->log, 0, "unknown cycle"); 451 ngx_log_error(NGX_LOG_EMERG, cycle->log, 0, "unknown cycle");
452 exit(1); 452 exit(1);
453 } 453 }
454 454
455 ngx_log_debug3(NGX_LOG_DEBUG_EVENT, cycle->log, 0, 455 ngx_log_debug3(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
456 "devpoll: fd:%d, ev:%04X, rev:%04X", 456 "devpoll: fd:%d, ev:%04Xd, rev:%04Xd",
457 event_list[i].fd, 457 event_list[i].fd,
458 event_list[i].events, event_list[i].revents); 458 event_list[i].events, event_list[i].revents);
459 459
460 if (event_list[i].revents & (POLLERR|POLLHUP|POLLNVAL)) { 460 if (event_list[i].revents & (POLLERR|POLLHUP|POLLNVAL)) {
461 ngx_log_error(NGX_LOG_ALERT, cycle->log, 0, 461 ngx_log_error(NGX_LOG_ALERT, cycle->log, 0,
462 "ioctl(DP_POLL) error fd:%d ev:%04X rev:%04X", 462 "ioctl(DP_POLL) error fd:%d ev:%04Xd rev:%04Xd",
463 event_list[i].fd, 463 event_list[i].fd,
464 event_list[i].events, event_list[i].revents); 464 event_list[i].events, event_list[i].revents);
465 } 465 }
466 466
467 if (event_list[i].revents & ~(POLLIN|POLLOUT|POLLERR|POLLHUP|POLLNVAL)) 467 if (event_list[i].revents & ~(POLLIN|POLLOUT|POLLERR|POLLHUP|POLLNVAL))
468 { 468 {
469 ngx_log_error(NGX_LOG_ALERT, cycle->log, 0, 469 ngx_log_error(NGX_LOG_ALERT, cycle->log, 0,
470 "strange ioctl(DP_POLL) events " 470 "strange ioctl(DP_POLL) events "
471 "fd:%d ev:%04X rev:%04X", 471 "fd:%d ev:%04Xd rev:%04Xd",
472 event_list[i].fd, 472 event_list[i].fd,
473 event_list[i].events, event_list[i].revents); 473 event_list[i].events, event_list[i].revents);
474 } 474 }
475 475
476 wev = c->write; 476 wev = c->write;