comparison src/core/nginx.c @ 32:d45effe5854c

nginx-0.0.1-2002-12-19-10:08:55 import
author Igor Sysoev <igor@sysoev.ru>
date Thu, 19 Dec 2002 07:08:55 +0000
parents 53cb81681040
children c14d7232b11f
comparison
equal deleted inserted replaced
31:d1ebcc555037 32:d45effe5854c
124 124
125 s = ngx_socket(ls[i].family, ls[i].type, ls[i].protocol, 125 s = ngx_socket(ls[i].family, ls[i].type, ls[i].protocol,
126 ls[i].flags); 126 ls[i].flags);
127 if (s == -1) { 127 if (s == -1) {
128 ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno, 128 ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno,
129 ngx_socket_n " %s falied", ls[i].addr_text); 129 ngx_socket_n " %s falied", ls[i].addr_text.data);
130 exit(1); 130 exit(1);
131 } 131 }
132 132
133 if (setsockopt(s, SOL_SOCKET, SO_REUSEADDR, 133 if (setsockopt(s, SOL_SOCKET, SO_REUSEADDR,
134 (const void *) &reuseaddr, sizeof(int)) == -1) { 134 (const void *) &reuseaddr, sizeof(int)) == -1) {
135 ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno, 135 ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno,
136 "setsockopt(SO_REUSEADDR) %s failed", 136 "setsockopt(SO_REUSEADDR) %s failed",
137 ls[i].addr_text); 137 ls[i].addr_text.data);
138 exit(1); 138 exit(1);
139 } 139 }
140 140
141 /* TODO: close on exit */ 141 /* TODO: close on exit */
142 142
143 if (ls[i].nonblocking) { 143 if (ls[i].nonblocking) {
144 if (ngx_nonblocking(s) == -1) { 144 if (ngx_nonblocking(s) == -1) {
145 ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno, 145 ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno,
146 ngx_nonblocking_n " %s failed", 146 ngx_nonblocking_n " %s failed",
147 ls[i].addr_text); 147 ls[i].addr_text.data);
148 exit(1); 148 exit(1);
149 } 149 }
150 } 150 }
151 151
152 if (bind(s, ls[i].sockaddr, ls[i].socklen) == -1) { 152 if (bind(s, ls[i].sockaddr, ls[i].socklen) == -1) {
153 err = ngx_socket_errno; 153 err = ngx_socket_errno;
154 ngx_log_error(NGX_LOG_EMERG, log, err, 154 ngx_log_error(NGX_LOG_EMERG, log, err,
155 "bind() to %s failed", ls[i].addr_text); 155 "bind() to %s failed", ls[i].addr_text.data);
156 156
157 if (err != NGX_EADDRINUSE) 157 if (err != NGX_EADDRINUSE)
158 exit(1); 158 exit(1);
159 159
160 if (ngx_close_socket(s) == -1) 160 if (ngx_close_socket(s) == -1)
161 ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno, 161 ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno,
162 ngx_close_socket_n " %s failed", 162 ngx_close_socket_n " %s failed",
163 ls[i].addr_text); 163 ls[i].addr_text.data);
164 164
165 failed = 1; 165 failed = 1;
166 continue; 166 continue;
167 } 167 }
168 168
169 if (listen(s, ls[i].backlog) == -1) { 169 if (listen(s, ls[i].backlog) == -1) {
170 ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno, 170 ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno,
171 "listen() to %s failed", ls[i].addr_text); 171 "listen() to %s failed", ls[i].addr_text.data);
172 exit(1); 172 exit(1);
173 } 173 }
174 174
175 /* TODO: deferred accept */ 175 /* TODO: deferred accept */
176 176