]> git.ipfire.org Git - thirdparty/systemd.git/blame_incremental - src/shared/socket-netlink.h
logind: Don't match non-leader processes for utmp TTY determination (#38027)
[thirdparty/systemd.git] / src / shared / socket-netlink.h
... / ...
CommitLineData
1/* SPDX-License-Identifier: LGPL-2.1-or-later */
2#pragma once
3
4#include "forward.h"
5#include "in-addr-util.h"
6
7int make_socket_fd(int log_level, const char* address, int type, int flags);
8
9int socket_address_parse(SocketAddress *a, const char *s);
10int socket_address_parse_and_warn(SocketAddress *a, const char *s);
11int socket_address_parse_netlink(SocketAddress *a, const char *s);
12
13bool socket_address_is(const SocketAddress *a, const char *s, int type);
14bool socket_address_is_netlink(const SocketAddress *a, const char *s);
15
16int in_addr_port_ifindex_name_from_string_auto(
17 const char *s,
18 int *ret_family,
19 union in_addr_union *ret_address,
20 uint16_t *ret_port,
21 int *ret_ifindex,
22 char **ret_server_name);
23static inline int in_addr_ifindex_name_from_string_auto(const char *s, int *family, union in_addr_union *ret, int *ifindex, char **server_name) {
24 return in_addr_port_ifindex_name_from_string_auto(s, family, ret, NULL, ifindex, server_name);
25}
26static inline int in_addr_ifindex_from_string_auto(const char *s, int *family, union in_addr_union *ret, int *ifindex) {
27 return in_addr_ifindex_name_from_string_auto(s, family, ret, ifindex, NULL);
28}
29
30struct in_addr_full {
31 int family;
32 union in_addr_union address;
33 uint16_t port;
34 int ifindex;
35 char *server_name;
36 char *cached_server_string; /* Should not be handled directly, but through in_addr_full_to_string(). */
37};
38
39struct in_addr_full *in_addr_full_free(struct in_addr_full *a);
40DEFINE_TRIVIAL_CLEANUP_FUNC(struct in_addr_full*, in_addr_full_free);
41void in_addr_full_array_free(struct in_addr_full *addrs[], size_t n);
42int in_addr_full_new(int family, const union in_addr_union *a, uint16_t port, int ifindex, const char *server_name, struct in_addr_full **ret);
43int in_addr_full_new_from_string(const char *s, struct in_addr_full **ret);
44const char* in_addr_full_to_string(struct in_addr_full *a);
45
46int netns_get_nsid(int netnsfd, uint32_t *ret);
47
48int af_unix_get_qlen(int fd, uint32_t *ret);