Mercurial > hg > nginx
comparison src/core/ngx_resolver.c @ 6593:b3b7e33083ac
Introduced ngx_inet_get_port() and ngx_inet_set_port() functions.
author | Roman Arutyunyan <arut@nginx.com> |
---|---|
date | Mon, 20 Jun 2016 11:50:39 +0300 |
parents | adf25b8d0431 |
children | c3e3de6d2672 |
comparison
equal
deleted
inserted
replaced
6592:2c7b488a61fb | 6593:b3b7e33083ac |
---|---|
2994 { | 2994 { |
2995 ngx_uint_t i; | 2995 ngx_uint_t i; |
2996 ngx_addr_t *addrs; | 2996 ngx_addr_t *addrs; |
2997 ngx_resolver_t *r; | 2997 ngx_resolver_t *r; |
2998 ngx_sockaddr_t *sockaddr; | 2998 ngx_sockaddr_t *sockaddr; |
2999 struct sockaddr_in *sin; | |
3000 ngx_resolver_ctx_t *ctx; | 2999 ngx_resolver_ctx_t *ctx; |
3001 ngx_resolver_srv_name_t *srv; | 3000 ngx_resolver_srv_name_t *srv; |
3002 #if (NGX_HAVE_INET6) | |
3003 struct sockaddr_in6 *sin6; | |
3004 #endif | |
3005 | 3001 |
3006 r = cctx->resolver; | 3002 r = cctx->resolver; |
3007 ctx = cctx->data; | 3003 ctx = cctx->data; |
3008 srv = cctx->srvs; | 3004 srv = cctx->srvs; |
3009 | 3005 |
3043 addrs[i].socklen = cctx->addrs[i].socklen; | 3039 addrs[i].socklen = cctx->addrs[i].socklen; |
3044 | 3040 |
3045 ngx_memcpy(&sockaddr[i], cctx->addrs[i].sockaddr, | 3041 ngx_memcpy(&sockaddr[i], cctx->addrs[i].sockaddr, |
3046 addrs[i].socklen); | 3042 addrs[i].socklen); |
3047 | 3043 |
3048 switch (addrs[i].sockaddr->sa_family) { | 3044 ngx_inet_set_port(addrs[i].sockaddr, srv->port); |
3049 #if (NGX_HAVE_INET6) | |
3050 case AF_INET6: | |
3051 sin6 = (struct sockaddr_in6 *) addrs[i].sockaddr; | |
3052 sin6->sin6_port = htons(srv->port); | |
3053 break; | |
3054 #endif | |
3055 default: /* AF_INET */ | |
3056 sin = (struct sockaddr_in *) addrs[i].sockaddr; | |
3057 sin->sin_port = htons(srv->port); | |
3058 } | |
3059 } | 3045 } |
3060 | 3046 |
3061 srv->addrs = addrs; | 3047 srv->addrs = addrs; |
3062 srv->naddrs = cctx->naddrs; | 3048 srv->naddrs = cctx->naddrs; |
3063 } | 3049 } |