Annotation of embedaddon/nginx/src/core/ngx_inet.h, revision 1.1.1.1

1.1       misho       1: 
                      2: /*
                      3:  * Copyright (C) Igor Sysoev
                      4:  * Copyright (C) Nginx, Inc.
                      5:  */
                      6: 
                      7: 
                      8: #ifndef _NGX_INET_H_INCLUDED_
                      9: #define _NGX_INET_H_INCLUDED_
                     10: 
                     11: 
                     12: #include <ngx_config.h>
                     13: #include <ngx_core.h>
                     14: 
                     15: 
                     16: /*
                     17:  * TODO: autoconfigure NGX_SOCKADDRLEN and NGX_SOCKADDR_STRLEN as
                     18:  *       sizeof(struct sockaddr_storage)
                     19:  *       sizeof(struct sockaddr_un)
                     20:  *       sizeof(struct sockaddr_in6)
                     21:  *       sizeof(struct sockaddr_in)
                     22:  */
                     23: 
                     24: #define NGX_INET_ADDRSTRLEN   (sizeof("255.255.255.255") - 1)
                     25: #define NGX_INET6_ADDRSTRLEN                                                 \
                     26:     (sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255") - 1)
                     27: #define NGX_UNIX_ADDRSTRLEN                                                  \
                     28:     (sizeof(struct sockaddr_un) - offsetof(struct sockaddr_un, sun_path))
                     29: 
                     30: #if (NGX_HAVE_UNIX_DOMAIN)
                     31: #define NGX_SOCKADDR_STRLEN   (sizeof("unix:") - 1 + NGX_UNIX_ADDRSTRLEN)
                     32: #else
                     33: #define NGX_SOCKADDR_STRLEN   (NGX_INET6_ADDRSTRLEN + sizeof("[]:65535") - 1)
                     34: #endif
                     35: 
                     36: #if (NGX_HAVE_UNIX_DOMAIN)
                     37: #define NGX_SOCKADDRLEN       sizeof(struct sockaddr_un)
                     38: #else
                     39: #define NGX_SOCKADDRLEN       512
                     40: #endif
                     41: 
                     42: 
                     43: typedef struct {
                     44:     in_addr_t                 addr;
                     45:     in_addr_t                 mask;
                     46: } ngx_in_cidr_t;
                     47: 
                     48: 
                     49: #if (NGX_HAVE_INET6)
                     50: 
                     51: typedef struct {
                     52:     struct in6_addr           addr;
                     53:     struct in6_addr           mask;
                     54: } ngx_in6_cidr_t;
                     55: 
                     56: #endif
                     57: 
                     58: 
                     59: typedef struct {
                     60:     ngx_uint_t                family;
                     61:     union {
                     62:         ngx_in_cidr_t         in;
                     63: #if (NGX_HAVE_INET6)
                     64:         ngx_in6_cidr_t        in6;
                     65: #endif
                     66:     } u;
                     67: } ngx_cidr_t;
                     68: 
                     69: 
                     70: typedef struct {
                     71:     struct sockaddr          *sockaddr;
                     72:     socklen_t                 socklen;
                     73:     ngx_str_t                 name;
                     74: } ngx_addr_t;
                     75: 
                     76: 
                     77: typedef struct {
                     78:     ngx_str_t                 url;
                     79:     ngx_str_t                 host;
                     80:     ngx_str_t                 port_text;
                     81:     ngx_str_t                 uri;
                     82: 
                     83:     in_port_t                 port;
                     84:     in_port_t                 default_port;
                     85:     int                       family;
                     86: 
                     87:     unsigned                  listen:1;
                     88:     unsigned                  uri_part:1;
                     89:     unsigned                  no_resolve:1;
                     90:     unsigned                  one_addr:1;  /* compatibility */
                     91: 
                     92:     unsigned                  no_port:1;
                     93:     unsigned                  wildcard:1;
                     94: 
                     95:     socklen_t                 socklen;
                     96:     u_char                    sockaddr[NGX_SOCKADDRLEN];
                     97: 
                     98:     ngx_addr_t               *addrs;
                     99:     ngx_uint_t                naddrs;
                    100: 
                    101:     char                     *err;
                    102: } ngx_url_t;
                    103: 
                    104: 
                    105: in_addr_t ngx_inet_addr(u_char *text, size_t len);
                    106: #if (NGX_HAVE_INET6)
                    107: ngx_int_t ngx_inet6_addr(u_char *p, size_t len, u_char *addr);
                    108: size_t ngx_inet6_ntop(u_char *p, u_char *text, size_t len);
                    109: #endif
                    110: size_t ngx_sock_ntop(struct sockaddr *sa, u_char *text, size_t len,
                    111:     ngx_uint_t port);
                    112: size_t ngx_inet_ntop(int family, void *addr, u_char *text, size_t len);
                    113: ngx_int_t ngx_ptocidr(ngx_str_t *text, ngx_cidr_t *cidr);
                    114: ngx_int_t ngx_parse_addr(ngx_pool_t *pool, ngx_addr_t *addr, u_char *text,
                    115:     size_t len);
                    116: ngx_int_t ngx_parse_url(ngx_pool_t *pool, ngx_url_t *u);
                    117: ngx_int_t ngx_inet_resolve_host(ngx_pool_t *pool, ngx_url_t *u);
                    118: 
                    119: 
                    120: #endif /* _NGX_INET_H_INCLUDED_ */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>