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;