diff -r -u nginx-1.0.2/src/core/ngx_inet.c ../nginx-1.0.2/src/core/ngx_inet.c --- nginx-1.0.2/src/core/ngx_inet.c 2011-04-15 15:50:27.000000000 +0200 +++ ../nginx-1.0.2/src/core/ngx_inet.c 2011-05-23 15:59:09.000000000 +0200 @@ -575,6 +575,9 @@ saun = (struct sockaddr_un *) &u->sockaddr; saun->sun_family = AF_UNIX; (void) ngx_cpystrn((u_char *) saun->sun_path, path, len); + /* abstract namespace support */ + if (path[0] == '@') + saun->sun_path[0] = 0; u->addrs = ngx_pcalloc(pool, sizeof(ngx_addr_t)); if (u->addrs == NULL) { @@ -591,9 +594,14 @@ saun->sun_family = AF_UNIX; (void) ngx_cpystrn((u_char *) saun->sun_path, path, len); + /* abstract namespace support */ + if (path[0] == '@') + saun->sun_path[0] = 0; u->addrs[0].sockaddr = (struct sockaddr *) saun; u->addrs[0].socklen = sizeof(struct sockaddr_un); + if (path[0] == '@') + u->addrs[0].socklen = sizeof(saun->sun_family)+len; u->addrs[0].name.len = len + 4; u->addrs[0].name.data = u->url.data;