~ubuntu-branches/debian/squeeze/nginx/squeeze

« back to all changes in this revision

Viewing changes to src/core/ngx_inet.h

  • Committer: Bazaar Package Importer
  • Author(s): Fabio Tranchitella
  • Date: 2009-05-31 18:38:56 UTC
  • mfrom: (1.1.10 upstream) (4.1.12 experimental)
  • Revision ID: james.westby@ubuntu.com-20090531183856-3xhvf6wd0bw5556i
Tags: 0.7.59-1
* New upstream release, first in Debian for the 0.7 branch. Among other
  issues, it also fixes the problem with wildcard dns names used with SSL.
  (Closes: #515904)
* debian/watch: updated.
* debian/postinst: fixed a bashism. (Closes: #507913)
* debian/conf/nginx.conf: removed default_type. (Closes: #509390)
* debian/control: updated Standards-Version to 3.8.1, no changes needed.
* debian/NEWS.Debian: documented the issues with
  server_names_hash_bucket_size. (Closes: #524785)

Show diffs side-by-side

added added

removed removed

Lines of Context:
12
12
#include <ngx_core.h>
13
13
 
14
14
 
15
 
typedef struct {
16
 
    in_addr_t         addr;
17
 
    in_addr_t         mask;
18
 
} ngx_inet_cidr_t;
19
 
 
20
 
 
21
 
typedef union {
22
 
    in_addr_t         in_addr;
23
 
} ngx_url_addr_t;
24
 
 
25
 
 
26
 
typedef struct {
27
 
    struct sockaddr  *sockaddr;
28
 
    socklen_t         socklen;
29
 
    ngx_str_t         name;
 
15
#define NGX_INET_ADDRSTRLEN   (sizeof("255.255.255.255") - 1)
 
16
#define NGX_INET6_ADDRSTRLEN                                                 \
 
17
    (sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255") - 1)
 
18
 
 
19
#define NGX_SOCKADDR_STRLEN   (NGX_INET6_ADDRSTRLEN + sizeof(":65535") - 1)
 
20
 
 
21
 
 
22
/*
 
23
 * TODO: autoconfigure NGX_SOCKADDRLEN as
 
24
 *       sizeof(struct sockaddr_storage)
 
25
 *       sizeof(struct sockaddr_un)
 
26
 *       sizeof(struct sockaddr_in6)
 
27
 *       sizeof(struct sockaddr_in)
 
28
 */
 
29
 
 
30
#if (NGX_HAVE_UNIX_DOMAIN)
 
31
#define NGX_SOCKADDRLEN       sizeof(struct sockaddr_un)
 
32
#else
 
33
#define NGX_SOCKADDRLEN       512
 
34
#endif
 
35
 
 
36
 
 
37
typedef struct {
 
38
    in_addr_t                 addr;
 
39
    in_addr_t                 mask;
 
40
} ngx_in_cidr_t;
 
41
 
 
42
 
 
43
#if (NGX_HAVE_INET6)
 
44
 
 
45
typedef struct {
 
46
    struct in6_addr           addr;
 
47
    struct in6_addr           mask;
 
48
} ngx_in6_cidr_t;
 
49
 
 
50
#endif
 
51
 
 
52
 
 
53
typedef struct {
 
54
    ngx_uint_t                family;
 
55
    union {
 
56
        ngx_in_cidr_t         in;
 
57
#if (NGX_HAVE_INET6)
 
58
        ngx_in6_cidr_t        in6;
 
59
#endif
 
60
    } u;
 
61
} ngx_cidr_t;
 
62
 
 
63
 
 
64
typedef struct {
 
65
    struct sockaddr          *sockaddr;
 
66
    socklen_t                 socklen;
 
67
    ngx_str_t                 name;
30
68
} ngx_peer_addr_t;
31
69
 
32
70
 
33
71
typedef struct {
34
 
    ngx_int_t         type;
35
 
 
36
 
    ngx_str_t         url;
37
 
    ngx_str_t         host;
38
 
    ngx_str_t         port_text;
39
 
    ngx_str_t         uri;
40
 
 
41
 
    in_port_t         port;
42
 
    in_port_t         default_port;
43
 
 
44
 
    unsigned          listen:1;
45
 
    unsigned          uri_part:1;
46
 
    unsigned          no_resolve:1;
47
 
    unsigned          one_addr:1;
48
 
 
49
 
    unsigned          wildcard:1;
50
 
    unsigned          no_port:1;
51
 
    unsigned          unix_socket:1;
52
 
 
53
 
    ngx_url_addr_t    addr;
54
 
 
55
 
    ngx_peer_addr_t  *addrs;
56
 
    ngx_uint_t        naddrs;
57
 
 
58
 
    char             *err;
 
72
    ngx_str_t                 url;
 
73
    ngx_str_t                 host;
 
74
    ngx_str_t                 port_text;
 
75
    ngx_str_t                 uri;
 
76
 
 
77
    in_port_t                 port;
 
78
    in_port_t                 default_port;
 
79
    int                       family;
 
80
 
 
81
    unsigned                  listen:1;
 
82
    unsigned                  uri_part:1;
 
83
    unsigned                  no_resolve:1;
 
84
    unsigned                  one_addr:1;
 
85
 
 
86
    unsigned                  no_port:1;
 
87
    unsigned                  wildcard:1;
 
88
 
 
89
    socklen_t                 socklen;
 
90
    u_char                    sockaddr[NGX_SOCKADDRLEN];
 
91
 
 
92
    ngx_peer_addr_t          *addrs;
 
93
    ngx_uint_t                naddrs;
 
94
 
 
95
    char                     *err;
59
96
} ngx_url_t;
60
97
 
61
98
 
62
99
in_addr_t ngx_inet_addr(u_char *text, size_t len);
63
 
size_t ngx_sock_ntop(int family, struct sockaddr *sa, u_char *text, size_t len);
 
100
size_t ngx_sock_ntop(struct sockaddr *sa, u_char *text, size_t len,
 
101
    ngx_uint_t port);
64
102
size_t ngx_inet_ntop(int family, void *addr, u_char *text, size_t len);
65
 
ngx_int_t ngx_ptocidr(ngx_str_t *text, void *cidr);
 
103
ngx_int_t ngx_ptocidr(ngx_str_t *text, ngx_cidr_t *cidr);
66
104
ngx_int_t ngx_parse_url(ngx_pool_t *pool, ngx_url_t *u);
67
105
ngx_int_t ngx_inet_resolve_host(ngx_pool_t *pool, ngx_url_t *u);
68
106