Commit | Line | Data |
---|---|---|
460b9539 | 1 | /* |
2 | * This file is part of DisOrder. | |
05b75f8d | 3 | * Copyright (C) 2004, 2007, 2008 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 | ||
05b75f8d RK |
24 | #include <netdb.h> |
25 | ||
76e72f65 RK |
26 | struct stringlist; |
27 | ||
28 | /** @brief A network address */ | |
29 | struct netaddress { | |
30 | /** @brief Address family | |
31 | * | |
32 | * Typically @c AF_UNIX, @c AF_INET, @c AF_INET6 or @c AF_UNSPEC. | |
33 | * Set to -1 to mean 'no address'. | |
34 | */ | |
35 | int af; | |
36 | ||
37 | /** @brief Address or NULL for 'any' */ | |
38 | char *address; | |
39 | ||
40 | /** @brief Port number */ | |
41 | int port; | |
42 | }; | |
05b75f8d | 43 | |
460b9539 | 44 | struct addrinfo *get_address(const struct stringlist *a, |
45 | const struct addrinfo *pref, | |
46 | char **namep); | |
47 | ||
48 | int addrinfocmp(const struct addrinfo *a, | |
49 | const struct addrinfo *b); | |
80dc2c5f RK |
50 | int sockaddrcmp(const struct sockaddr *a, |
51 | const struct sockaddr *b); | |
460b9539 | 52 | |
6fba990c RK |
53 | int multicast(const struct sockaddr *sa); |
54 | char *format_sockaddr(const struct sockaddr *sa); | |
55 | ||
76e72f65 RK |
56 | int netaddress_parse(struct netaddress *na, |
57 | int nvec, | |
58 | char **vec); | |
59 | void netaddress_format(const struct netaddress *na, | |
60 | int *nvecp, | |
61 | char ***vecp); | |
62 | struct addrinfo *netaddress_resolve(const struct netaddress *na, | |
63 | int passive, | |
64 | int protocol); | |
65 | ||
460b9539 | 66 | #endif /* ADDR_H */ |
67 | ||
68 | /* | |
69 | Local Variables: | |
70 | c-basic-offset:2 | |
71 | comment-column:40 | |
72 | End: | |
73 | */ |