Mercurial > hg > nginx
comparison src/http/ngx_http_variables.c @ 5464:30e806b8636a
Fixed handling of UNIX-domain sockets.
When evaluating $local_port, $server_port, and $server_addr,
UNIX-domain sockets were mistakenly interpreted as IPv4 sockets.
author | Ruslan Ermilov <ru@nginx.com> |
---|---|
date | Mon, 09 Dec 2013 10:16:44 +0400 |
parents | c21e341c51cb |
children | 3a72b1805c52 |
comparison
equal
deleted
inserted
replaced
5463:1ab1cf63f885 | 5464:30e806b8636a |
---|---|
1183 sin6 = (struct sockaddr_in6 *) r->connection->sockaddr; | 1183 sin6 = (struct sockaddr_in6 *) r->connection->sockaddr; |
1184 port = ntohs(sin6->sin6_port); | 1184 port = ntohs(sin6->sin6_port); |
1185 break; | 1185 break; |
1186 #endif | 1186 #endif |
1187 | 1187 |
1188 #if (NGX_HAVE_UNIX_DOMAIN) | |
1189 case AF_UNIX: | |
1190 port = 0; | |
1191 break; | |
1192 #endif | |
1193 | |
1188 default: /* AF_INET */ | 1194 default: /* AF_INET */ |
1189 sin = (struct sockaddr_in *) r->connection->sockaddr; | 1195 sin = (struct sockaddr_in *) r->connection->sockaddr; |
1190 port = ntohs(sin->sin_port); | 1196 port = ntohs(sin->sin_port); |
1191 break; | 1197 break; |
1192 } | 1198 } |
1258 | 1264 |
1259 #if (NGX_HAVE_INET6) | 1265 #if (NGX_HAVE_INET6) |
1260 case AF_INET6: | 1266 case AF_INET6: |
1261 sin6 = (struct sockaddr_in6 *) r->connection->local_sockaddr; | 1267 sin6 = (struct sockaddr_in6 *) r->connection->local_sockaddr; |
1262 port = ntohs(sin6->sin6_port); | 1268 port = ntohs(sin6->sin6_port); |
1269 break; | |
1270 #endif | |
1271 | |
1272 #if (NGX_HAVE_UNIX_DOMAIN) | |
1273 case AF_UNIX: | |
1274 port = 0; | |
1263 break; | 1275 break; |
1264 #endif | 1276 #endif |
1265 | 1277 |
1266 default: /* AF_INET */ | 1278 default: /* AF_INET */ |
1267 sin = (struct sockaddr_in *) r->connection->local_sockaddr; | 1279 sin = (struct sockaddr_in *) r->connection->local_sockaddr; |