comparison src/core/ngx_inet.c @ 712:2452d89efea9

fix uri part in "proxy_pass http://unix:...", the bug appeared in nginx-0.3.47
author Igor Sysoev <igor@sysoev.ru>
date Sun, 24 Sep 2006 14:45:37 +0000
parents 324967192b8b
children 472cd9768ac2
comparison
equal deleted inserted replaced
711:324967192b8b 712:2452d89efea9
237 if (ngx_strncasecmp(p, "unix:", 5) == 0) { 237 if (ngx_strncasecmp(p, "unix:", 5) == 0) {
238 238
239 #if (NGX_HAVE_UNIX_DOMAIN) 239 #if (NGX_HAVE_UNIX_DOMAIN)
240 240
241 u->type = NGX_PARSE_URL_UNIX; 241 u->type = NGX_PARSE_URL_UNIX;
242 u->uri = u->url;
243 242
244 p += 5; 243 p += 5;
245 len -= 5; 244 len -= 5;
245
246 u->uri.len = len;
247 u->uri.data = p;
246 248
247 if (u->uri_part) { 249 if (u->uri_part) {
248 for (i = 0; i < len; i++) { 250 for (i = 0; i < len; i++) {
249 251
250 if (p[i] == ':') { 252 if (p[i] == ':') {
283 saun->sun_family = AF_UNIX; 285 saun->sun_family = AF_UNIX;
284 (void) ngx_cpystrn((u_char *) saun->sun_path, p, len + 1); 286 (void) ngx_cpystrn((u_char *) saun->sun_path, p, len + 1);
285 287
286 u->peers->peer[0].sockaddr = (struct sockaddr *) saun; 288 u->peers->peer[0].sockaddr = (struct sockaddr *) saun;
287 u->peers->peer[0].socklen = sizeof(struct sockaddr_un); 289 u->peers->peer[0].socklen = sizeof(struct sockaddr_un);
288 u->peers->peer[0].name = u->url; 290 u->peers->peer[0].name.len = len + 5;
291 u->peers->peer[0].name.data = u->url.data;
289 u->peers->peer[0].uri_separator = ":"; 292 u->peers->peer[0].uri_separator = ":";
290 293
291 u->host_header.len = sizeof("localhost") - 1; 294 u->host_header.len = sizeof("localhost") - 1;
292 u->host_header.data = (u_char *) "localhost"; 295 u->host_header.data = (u_char *) "localhost";
293 296