]>
Commit | Line | Data |
---|---|---|
5c3fa98d ZJS |
1 | /* SPDX-License-Identifier: LGPL-2.1+ */ |
2 | #pragma once | |
3 | ||
fc2ea97a ZJS |
4 | #include "sd-netlink.h" |
5 | ||
5c3fa98d ZJS |
6 | #include "in-addr-util.h" |
7 | #include "macro.h" | |
8 | #include "socket-util.h" | |
9 | ||
fc2ea97a | 10 | int resolve_ifname(sd_netlink **rtnl, const char *name); |
d308bb99 ZJS |
11 | int resolve_interface(sd_netlink **rtnl, const char *name); |
12 | int resolve_interface_or_warn(sd_netlink **rtnl, const char *name); | |
fc2ea97a | 13 | |
5c3fa98d ZJS |
14 | int make_socket_fd(int log_level, const char* address, int type, int flags); |
15 | ||
16 | int socket_address_parse(SocketAddress *a, const char *s); | |
17 | int socket_address_parse_and_warn(SocketAddress *a, const char *s); | |
18 | int socket_address_parse_netlink(SocketAddress *a, const char *s); | |
19 | ||
20 | bool socket_address_is(const SocketAddress *a, const char *s, int type); | |
21 | bool socket_address_is_netlink(const SocketAddress *a, const char *s); | |
22 | ||
a723fb85 YW |
23 | int in_addr_port_ifindex_name_from_string_auto( |
24 | const char *s, | |
25 | int *ret_family, | |
26 | union in_addr_union *ret_address, | |
27 | uint16_t *ret_port, | |
28 | int *ret_ifindex, | |
29 | char **ret_server_name); | |
30 | static inline int in_addr_ifindex_name_from_string_auto(const char *s, int *family, union in_addr_union *ret, int *ifindex, char **server_name) { | |
31 | return in_addr_port_ifindex_name_from_string_auto(s, family, ret, NULL, ifindex, server_name); | |
32 | } | |
33 | static inline int in_addr_ifindex_from_string_auto(const char *s, int *family, union in_addr_union *ret, int *ifindex) { | |
34 | return in_addr_ifindex_name_from_string_auto(s, family, ret, ifindex, NULL); | |
35 | } | |
408f8fbc YW |
36 | |
37 | struct in_addr_full { | |
38 | int family; | |
39 | union in_addr_union address; | |
40 | uint16_t port; | |
41 | int ifindex; | |
42 | char *server_name; | |
43 | char *cached_server_string; /* Should not be handled directly, but through in_addr_full_to_string(). */ | |
44 | }; | |
45 | ||
46 | struct in_addr_full *in_addr_full_free(struct in_addr_full *a); | |
47 | DEFINE_TRIVIAL_CLEANUP_FUNC(struct in_addr_full*, in_addr_full_free); | |
48 | int in_addr_full_new(int family, union in_addr_union *a, uint16_t port, int ifindex, const char *server_name, struct in_addr_full **ret); | |
49 | int in_addr_full_new_from_string(const char *s, struct in_addr_full **ret); | |
50 | const char *in_addr_full_to_string(struct in_addr_full *a); |