comparison src/event/ngx_event_connect.c @ 323:ba876b26b76d

nginx-0.0.3-2004-04-21-22:54:33 import
author Igor Sysoev <igor@sysoev.ru>
date Wed, 21 Apr 2004 18:54:33 +0000
parents 2e899477243a
children e366ba5db8f8
comparison
equal deleted inserted replaced
322:ab2f8c9a2a45 323:ba876b26b76d
17 ngx_err_t err; 17 ngx_err_t err;
18 ngx_peer_t *peer; 18 ngx_peer_t *peer;
19 ngx_socket_t s; 19 ngx_socket_t s;
20 ngx_event_t *rev, *wev; 20 ngx_event_t *rev, *wev;
21 ngx_connection_t *c; 21 ngx_connection_t *c;
22 ngx_event_conf_t *ecf;
22 struct sockaddr_in addr; 23 struct sockaddr_in addr;
23 24
24 now = ngx_time(); 25 now = ngx_time();
25 26
26 /* ngx_lock_mutex(pc->peers->mutex); */ 27 /* ngx_lock_mutex(pc->peers->mutex); */
100 if (s == -1) { 101 if (s == -1) {
101 ngx_log_error(NGX_LOG_ALERT, pc->log, ngx_socket_errno, 102 ngx_log_error(NGX_LOG_ALERT, pc->log, ngx_socket_errno,
102 ngx_socket_n " failed"); 103 ngx_socket_n " failed");
103 return NGX_ERROR; 104 return NGX_ERROR;
104 } 105 }
106
107
108 ecf = ngx_event_get_conf(ngx_cycle->conf_ctx, ngx_event_core_module);
109
110 /* disable warning: Win32 SOCKET is u_int while UNIX socket is int */
111
112 if ((ngx_uint_t) s >= ecf->connections) {
113
114 ngx_log_error(NGX_LOG_ALERT, pc->log, 0,
115 "socket() returned socket #%d while only %d "
116 "connections was configured, closing the socket",
117 s, ecf->connections);
118
119 if (ngx_close_socket(s) == -1) {
120 ngx_log_error(NGX_LOG_ALERT, pc->log, ngx_socket_errno,
121 ngx_close_socket_n "failed");
122 }
123
124 /* TODO: sleep for some time */
125
126 return NGX_ERROR;
127 }
128
105 129
106 if (pc->rcvbuf) { 130 if (pc->rcvbuf) {
107 if (setsockopt(s, SOL_SOCKET, SO_RCVBUF, 131 if (setsockopt(s, SOL_SOCKET, SO_RCVBUF,
108 (const void *) &pc->rcvbuf, sizeof(int)) == -1) { 132 (const void *) &pc->rcvbuf, sizeof(int)) == -1) {
109 ngx_log_error(NGX_LOG_ALERT, pc->log, ngx_socket_errno, 133 ngx_log_error(NGX_LOG_ALERT, pc->log, ngx_socket_errno,