nxt_sockaddr.h (337:854a1a440616) nxt_sockaddr.h (358:40bbd4c2349d)
1
2/*
3 * Copyright (C) Igor Sysoev
4 * Copyright (C) NGINX, Inc.
5 */
6
7#ifndef _NXT_SOCKADDR_H_INCLUDED_
8#define _NXT_SOCKADDR_H_INCLUDED_

--- 27 unchanged lines hidden (view full) ---

36 */
37 uint8_t address_start;
38 uint8_t address_length;
39 /*
40 * Textual port representation, e.g. "8000".
41 * Port length is (start + length) - port_start.
42 */
43 uint8_t port_start;
1
2/*
3 * Copyright (C) Igor Sysoev
4 * Copyright (C) NGINX, Inc.
5 */
6
7#ifndef _NXT_SOCKADDR_H_INCLUDED_
8#define _NXT_SOCKADDR_H_INCLUDED_

--- 27 unchanged lines hidden (view full) ---

36 */
37 uint8_t address_start;
38 uint8_t address_length;
39 /*
40 * Textual port representation, e.g. "8000".
41 * Port length is (start + length) - port_start.
42 */
43 uint8_t port_start;
44 /*
45 * Size of the whole structure: struct sockaddr union and maximal textual
46 * representation, used to place sockaddr into appropriate free list.
47 */
48 uint8_t sockaddr_size;
49
44
45 /* A cache hist used to place sockaddr into appropriate free list. */
46 uint8_t cache_hint;
47
50 union {
51 struct sockaddr sockaddr;
52 struct sockaddr_in sockaddr_in;
53#if (NXT_INET6)
54 struct sockaddr_in6 sockaddr_in6;
55#endif
56#if (NXT_HAVE_UNIX_DOMAIN)
57 struct sockaddr_un sockaddr_un;

--- 7 unchanged lines hidden (view full) ---

65 nxt_str_t addr;
66
67 uint8_t wildcard; /* 1 bit */
68 uint8_t no_port; /* 1 bit */
69} nxt_job_sockaddr_parse_t;
70
71
72nxt_sockaddr_t *nxt_sockaddr_cache_alloc(nxt_event_engine_t *engine,
48 union {
49 struct sockaddr sockaddr;
50 struct sockaddr_in sockaddr_in;
51#if (NXT_INET6)
52 struct sockaddr_in6 sockaddr_in6;
53#endif
54#if (NXT_HAVE_UNIX_DOMAIN)
55 struct sockaddr_un sockaddr_un;

--- 7 unchanged lines hidden (view full) ---

63 nxt_str_t addr;
64
65 uint8_t wildcard; /* 1 bit */
66 uint8_t no_port; /* 1 bit */
67} nxt_job_sockaddr_parse_t;
68
69
70nxt_sockaddr_t *nxt_sockaddr_cache_alloc(nxt_event_engine_t *engine,
73 nxt_listen_event_t *lev);
71 nxt_listen_socket_t *ls);
74void nxt_sockaddr_cache_free(nxt_event_engine_t *engine, nxt_conn_t *c);
75
76NXT_EXPORT nxt_sockaddr_t *nxt_sockaddr_alloc(nxt_mp_t *mp, socklen_t socklen,
77 size_t address_length)
78 NXT_MALLOC_LIKE;
79NXT_EXPORT nxt_sockaddr_t *nxt_sockaddr_create(nxt_mp_t *mp,
80 struct sockaddr *sockaddr, socklen_t socklen, size_t address_length)
81 NXT_MALLOC_LIKE;

--- 20 unchanged lines hidden (view full) ---

102
103
104#define NXT_INET_ADDR_STR_LEN (sizeof("255.255.255.255:65535") - 1)
105
106#define NXT_INET6_ADDR_STR_LEN \
107 (sizeof("[ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535") - 1)
108
109
72void nxt_sockaddr_cache_free(nxt_event_engine_t *engine, nxt_conn_t *c);
73
74NXT_EXPORT nxt_sockaddr_t *nxt_sockaddr_alloc(nxt_mp_t *mp, socklen_t socklen,
75 size_t address_length)
76 NXT_MALLOC_LIKE;
77NXT_EXPORT nxt_sockaddr_t *nxt_sockaddr_create(nxt_mp_t *mp,
78 struct sockaddr *sockaddr, socklen_t socklen, size_t address_length)
79 NXT_MALLOC_LIKE;

--- 20 unchanged lines hidden (view full) ---

100
101
102#define NXT_INET_ADDR_STR_LEN (sizeof("255.255.255.255:65535") - 1)
103
104#define NXT_INET6_ADDR_STR_LEN \
105 (sizeof("[ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535") - 1)
106
107
108#define nxt_sockaddr_size(sa) \
109 (offsetof(nxt_sockaddr_t, u) + sa->socklen + sa->length)
110#define nxt_sockaddr_start(sa) nxt_pointer_to(sa, (sa)->start)
111#define nxt_sockaddr_address(sa) nxt_pointer_to(sa, (sa)->address_start)
112#define nxt_sockaddr_port(sa) nxt_pointer_to(sa, (sa)->port_start)
113#define nxt_sockaddr_port_length(sa) \
114 (((sa)->start + (sa)->length) - (sa)->port_start)
115
116
117#endif /* _NXT_SOCKADDR_H_INCLUDED_ */
110#define nxt_sockaddr_start(sa) nxt_pointer_to(sa, (sa)->start)
111#define nxt_sockaddr_address(sa) nxt_pointer_to(sa, (sa)->address_start)
112#define nxt_sockaddr_port(sa) nxt_pointer_to(sa, (sa)->port_start)
113#define nxt_sockaddr_port_length(sa) \
114 (((sa)->start + (sa)->length) - (sa)->port_start)
115
116
117#endif /* _NXT_SOCKADDR_H_INCLUDED_ */