Mercurial > hg > nginx
comparison src/core/ngx_inet.c @ 6559:adf25b8d0431
Introduced the ngx_sockaddr_t type.
It's properly aligned and can hold any supported sockaddr.
author | Ruslan Ermilov <ru@nginx.com> |
---|---|
date | Mon, 23 May 2016 16:37:20 +0300 |
parents | 19a54ba76c04 |
children | 19db5a6bc34e |
comparison
equal
deleted
inserted
replaced
6558:68854ce64ec7 | 6559:adf25b8d0431 |
---|---|
761 sin = ngx_pcalloc(pool, sizeof(struct sockaddr_in)); | 761 sin = ngx_pcalloc(pool, sizeof(struct sockaddr_in)); |
762 if (sin == NULL) { | 762 if (sin == NULL) { |
763 return NGX_ERROR; | 763 return NGX_ERROR; |
764 } | 764 } |
765 | 765 |
766 ngx_memcpy(sin, u->sockaddr, sizeof(struct sockaddr_in)); | 766 ngx_memcpy(sin, &u->sockaddr, sizeof(struct sockaddr_in)); |
767 | 767 |
768 u->addrs[0].sockaddr = (struct sockaddr *) sin; | 768 u->addrs[0].sockaddr = (struct sockaddr *) sin; |
769 u->addrs[0].socklen = sizeof(struct sockaddr_in); | 769 u->addrs[0].socklen = sizeof(struct sockaddr_in); |
770 | 770 |
771 p = ngx_pnalloc(pool, u->host.len + sizeof(":65535") - 1); | 771 p = ngx_pnalloc(pool, u->host.len + sizeof(":65535") - 1); |
788 return NGX_ERROR; | 788 return NGX_ERROR; |
789 } | 789 } |
790 | 790 |
791 u->family = u->addrs[0].sockaddr->sa_family; | 791 u->family = u->addrs[0].sockaddr->sa_family; |
792 u->socklen = u->addrs[0].socklen; | 792 u->socklen = u->addrs[0].socklen; |
793 ngx_memcpy(u->sockaddr, u->addrs[0].sockaddr, u->addrs[0].socklen); | 793 ngx_memcpy(&u->sockaddr, u->addrs[0].sockaddr, u->addrs[0].socklen); |
794 | 794 |
795 switch (u->family) { | 795 switch (u->family) { |
796 | 796 |
797 #if (NGX_HAVE_INET6) | 797 #if (NGX_HAVE_INET6) |
798 case AF_INET6: | 798 case AF_INET6: |
918 sin6 = ngx_pcalloc(pool, sizeof(struct sockaddr_in6)); | 918 sin6 = ngx_pcalloc(pool, sizeof(struct sockaddr_in6)); |
919 if (sin6 == NULL) { | 919 if (sin6 == NULL) { |
920 return NGX_ERROR; | 920 return NGX_ERROR; |
921 } | 921 } |
922 | 922 |
923 ngx_memcpy(sin6, u->sockaddr, sizeof(struct sockaddr_in6)); | 923 ngx_memcpy(sin6, &u->sockaddr, sizeof(struct sockaddr_in6)); |
924 | 924 |
925 u->addrs[0].sockaddr = (struct sockaddr *) sin6; | 925 u->addrs[0].sockaddr = (struct sockaddr *) sin6; |
926 u->addrs[0].socklen = sizeof(struct sockaddr_in6); | 926 u->addrs[0].socklen = sizeof(struct sockaddr_in6); |
927 | 927 |
928 p = ngx_pnalloc(pool, u->host.len + sizeof(":65535") - 1); | 928 p = ngx_pnalloc(pool, u->host.len + sizeof(":65535") - 1); |