Commit | Line | Data |
---|---|---|
460b9539 | 1 | /* |
2 | * This file is part of DisOrder. | |
cca89d7c | 3 | * Copyright (C) 2004, 2007, 2008, 2013 Richard Kettlewell |
460b9539 | 4 | * |
e7eb3a27 | 5 | * This program is free software: you can redistribute it and/or modify |
460b9539 | 6 | * it under the terms of the GNU General Public License as published by |
e7eb3a27 | 7 | * the Free Software Foundation, either version 3 of the License, or |
460b9539 | 8 | * (at your option) any later version. |
e7eb3a27 RK |
9 | * |
10 | * This program is distributed in the hope that it will be useful, | |
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 | * GNU General Public License for more details. | |
14 | * | |
460b9539 | 15 | * You should have received a copy of the GNU General Public License |
e7eb3a27 | 16 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
460b9539 | 17 | */ |
d6ea854a RK |
18 | /** @file lib/addr.h |
19 | * @brief Socket address support */ | |
460b9539 | 20 | |
21 | #ifndef ADDR_H | |
22 | #define ADDR_H | |
23 | ||
cca89d7c RK |
24 | #if HAVE_NETDB_H |
25 | # include <netdb.h> | |
26 | #endif | |
05b75f8d | 27 | |
76e72f65 RK |
28 | struct stringlist; |
29 | ||
30 | /** @brief A network address */ | |
31 | struct netaddress { | |
32 | /** @brief Address family | |
33 | * | |
34 | * Typically @c AF_UNIX, @c AF_INET, @c AF_INET6 or @c AF_UNSPEC. | |
35 | * Set to -1 to mean 'no address'. | |
36 | */ | |
37 | int af; | |
38 | ||
39 | /** @brief Address or NULL for 'any' */ | |
40 | char *address; | |
41 | ||
42 | /** @brief Port number */ | |
43 | int port; | |
44 | }; | |
05b75f8d | 45 | |
460b9539 | 46 | struct addrinfo *get_address(const struct stringlist *a, |
47 | const struct addrinfo *pref, | |
48 | char **namep); | |
49 | ||
50 | int addrinfocmp(const struct addrinfo *a, | |
51 | const struct addrinfo *b); | |
80dc2c5f RK |
52 | int sockaddrcmp(const struct sockaddr *a, |
53 | const struct sockaddr *b); | |
460b9539 | 54 | |
6fba990c RK |
55 | int multicast(const struct sockaddr *sa); |
56 | char *format_sockaddr(const struct sockaddr *sa); | |
57 | ||
76e72f65 RK |
58 | int netaddress_parse(struct netaddress *na, |
59 | int nvec, | |
60 | char **vec); | |
61 | void netaddress_format(const struct netaddress *na, | |
62 | int *nvecp, | |
63 | char ***vecp); | |
64 | struct addrinfo *netaddress_resolve(const struct netaddress *na, | |
65 | int passive, | |
66 | int protocol); | |
67 | ||
460b9539 | 68 | #endif /* ADDR_H */ |
69 | ||
70 | /* | |
71 | Local Variables: | |
72 | c-basic-offset:2 | |
73 | comment-column:40 | |
74 | End: | |
75 | */ |