Annotation of embedaddon/nginx/src/core/ngx_inet.h, revision 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>