summaryrefslogtreecommitdiff
path: root/src/libsystemd
diff options
context:
space:
mode:
Diffstat (limited to 'src/libsystemd')
-rw-r--r--src/libsystemd/disable-mempool.c5
-rw-r--r--src/libsystemd/libsystemd.sym160
-rw-r--r--src/libsystemd/meson.build2
-rw-r--r--src/libsystemd/sd-bus/bus-convenience.c2
-rw-r--r--src/libsystemd/sd-bus/bus-dump.c3
-rw-r--r--src/libsystemd/sd-bus/bus-error.c4
-rw-r--r--src/libsystemd/sd-bus/bus-error.h3
-rw-r--r--src/libsystemd/sd-bus/bus-message.c6
-rw-r--r--src/libsystemd/sd-bus/bus-message.h1
-rw-r--r--src/libsystemd/sd-bus/bus-socket.c2
-rw-r--r--src/libsystemd/sd-bus/sd-bus.c16
-rw-r--r--src/libsystemd/sd-daemon/sd-daemon.c10
-rw-r--r--src/libsystemd/sd-event/event-util.c14
-rw-r--r--src/libsystemd/sd-event/event-util.h5
-rw-r--r--src/libsystemd/sd-event/sd-event.c11
-rw-r--r--src/libsystemd/sd-id128/id128-util.c16
-rw-r--r--src/libsystemd/sd-id128/id128-util.h2
-rw-r--r--src/libsystemd/sd-id128/sd-id128.c16
-rw-r--r--src/libsystemd/sd-netlink/netlink-genl.c10
-rw-r--r--src/libsystemd/sd-netlink/netlink-internal.h36
-rw-r--r--src/libsystemd/sd-netlink/netlink-message-nfnl.c6
-rw-r--r--src/libsystemd/sd-netlink/netlink-message-rtnl.c169
-rw-r--r--src/libsystemd/sd-netlink/netlink-message.c111
-rw-r--r--src/libsystemd/sd-netlink/netlink-socket.c36
-rw-r--r--src/libsystemd/sd-netlink/netlink-util.c121
-rw-r--r--src/libsystemd/sd-netlink/netlink-util.h5
-rw-r--r--src/libsystemd/sd-netlink/sd-netlink.c116
-rw-r--r--src/libsystemd/sd-resolve/sd-resolve.c4
-rw-r--r--src/libsystemd/sd-utf8/sd-utf8.c18
29 files changed, 547 insertions, 363 deletions
diff --git a/src/libsystemd/disable-mempool.c b/src/libsystemd/disable-mempool.c
deleted file mode 100644
index 1baf91f05b..0000000000
--- a/src/libsystemd/disable-mempool.c
+++ /dev/null
@@ -1,5 +0,0 @@
-/* SPDX-License-Identifier: LGPL-2.1-or-later */
-
-#include "mempool.h"
-
-const bool mempool_use_allowed = false;
diff --git a/src/libsystemd/libsystemd.sym b/src/libsystemd/libsystemd.sym
index 528e86b663..24dfee7095 100644
--- a/src/libsystemd/libsystemd.sym
+++ b/src/libsystemd/libsystemd.sym
@@ -781,5 +781,165 @@ global:
LIBSYSTEMD_252 {
global:
+ sd_bus_message_read_strv_extend;
+ sd_bus_error_setfv;
+
+ sd_id128_string_equal;
+
sd_hwdb_new_from_path;
+
+ sd_netlink_new_from_fd;
+ sd_netlink_open;
+ sd_netlink_open_fd;
+ sd_netlink_increase_rxbuf;
+ sd_netlink_ref;
+ sd_netlink_unref;
+ sd_netlink_send;
+ sd_netlink_call_async;
+ sd_netlink_call;
+ sd_netlink_read;
+ sd_netlink_get_events;
+ sd_netlink_get_timeout;
+ sd_netlink_process;
+ sd_netlink_wait;
+ sd_netlink_add_match;
+ sd_netlink_attach_event;
+ sd_netlink_detach_event;
+ sd_netlink_attach_filter;
+ sd_netlink_message_append_string;
+ sd_netlink_message_append_strv;
+ sd_netlink_message_append_flag;
+ sd_netlink_message_append_u8;
+ sd_netlink_message_append_u16;
+ sd_netlink_message_append_u32;
+ sd_netlink_message_append_u64;
+ sd_netlink_message_append_s8;
+ sd_netlink_message_append_s16;
+ sd_netlink_message_append_s32;
+ sd_netlink_message_append_s64;
+ sd_netlink_message_append_data;
+ sd_netlink_message_append_in_addr;
+ sd_netlink_message_append_in6_addr;
+ sd_netlink_message_append_sockaddr_in;
+ sd_netlink_message_append_sockaddr_in6;
+ sd_netlink_message_append_ether_addr;
+ sd_netlink_message_append_cache_info;
+ sd_netlink_message_open_container;
+ sd_netlink_message_open_container_union;
+ sd_netlink_message_close_container;
+ sd_netlink_message_read;
+ sd_netlink_message_read_data;
+ sd_netlink_message_read_data_suffix0;
+ sd_netlink_message_read_string_strdup;
+ sd_netlink_message_read_string;
+ sd_netlink_message_read_strv;
+ sd_netlink_message_read_u8;
+ sd_netlink_message_read_u16;
+ sd_netlink_message_read_u32;
+ sd_netlink_message_read_ether_addr;
+ sd_netlink_message_read_cache_info;
+ sd_netlink_message_read_in_addr;
+ sd_netlink_message_read_in6_addr;
+ sd_netlink_message_has_flag;
+ sd_netlink_message_enter_container;
+ sd_netlink_message_enter_array;
+ sd_netlink_message_exit_container;
+ sd_netlink_message_open_array;
+ sd_netlink_message_cancel_array;
+ sd_netlink_message_rewind;
+ sd_netlink_message_next;
+ sd_netlink_message_ref;
+ sd_netlink_message_unref;
+ sd_netlink_message_request_dump;
+ sd_netlink_message_is_error;
+ sd_netlink_message_get_errno;
+ sd_netlink_message_get_type;
+ sd_netlink_message_set_flags;
+ sd_netlink_message_is_broadcast;
+ sd_netlink_message_get_max_attribute;
+ sd_netlink_slot_ref;
+ sd_netlink_slot_unref;
+ sd_netlink_slot_get_netlink;
+ sd_netlink_slot_get_userdata;
+ sd_netlink_slot_set_userdata;
+ sd_netlink_slot_get_destroy_callback;
+ sd_netlink_slot_set_destroy_callback;
+ sd_netlink_slot_get_floating;
+ sd_netlink_slot_set_floating;
+ sd_netlink_slot_get_description;
+ sd_netlink_slot_set_description;
+
+ sd_rtnl_message_get_family;
+ sd_rtnl_message_new_addr;
+ sd_rtnl_message_new_addr_update;
+ sd_rtnl_message_addr_set_prefixlen;
+ sd_rtnl_message_addr_set_scope;
+ sd_rtnl_message_addr_set_flags;
+ sd_rtnl_message_addr_get_family;
+ sd_rtnl_message_addr_get_prefixlen;
+ sd_rtnl_message_addr_get_scope;
+ sd_rtnl_message_addr_get_flags;
+ sd_rtnl_message_addr_get_ifindex;
+ sd_rtnl_message_new_link;
+ sd_rtnl_message_link_set_flags;
+ sd_rtnl_message_link_set_type;
+ sd_rtnl_message_link_set_family;
+ sd_rtnl_message_link_get_ifindex;
+ sd_rtnl_message_link_get_flags;
+ sd_rtnl_message_link_get_type;
+ sd_rtnl_message_new_route;
+ sd_rtnl_message_route_set_dst_prefixlen;
+ sd_rtnl_message_route_set_src_prefixlen;
+ sd_rtnl_message_route_set_scope;
+ sd_rtnl_message_route_set_flags;
+ sd_rtnl_message_route_set_table;
+ sd_rtnl_message_route_set_type;
+ sd_rtnl_message_route_get_flags;
+ sd_rtnl_message_route_get_family;
+ sd_rtnl_message_route_get_protocol;
+ sd_rtnl_message_route_get_scope;
+ sd_rtnl_message_route_get_tos;
+ sd_rtnl_message_route_get_table;
+ sd_rtnl_message_route_get_dst_prefixlen;
+ sd_rtnl_message_route_get_src_prefixlen;
+ sd_rtnl_message_route_get_type;
+ sd_rtnl_message_new_nexthop;
+ sd_rtnl_message_nexthop_set_flags;
+ sd_rtnl_message_nexthop_get_flags;
+ sd_rtnl_message_nexthop_get_family;
+ sd_rtnl_message_nexthop_get_protocol;
+ sd_rtnl_message_new_neigh;
+ sd_rtnl_message_neigh_set_flags;
+ sd_rtnl_message_neigh_set_state;
+ sd_rtnl_message_neigh_get_family;
+ sd_rtnl_message_neigh_get_ifindex;
+ sd_rtnl_message_neigh_get_state;
+ sd_rtnl_message_neigh_get_flags;
+ sd_rtnl_message_new_addrlabel;
+ sd_rtnl_message_addrlabel_set_prefixlen;
+ sd_rtnl_message_addrlabel_get_prefixlen;
+ sd_rtnl_message_new_routing_policy_rule;
+ sd_rtnl_message_routing_policy_rule_set_tos;
+ sd_rtnl_message_routing_policy_rule_get_tos;
+ sd_rtnl_message_routing_policy_rule_set_table;
+ sd_rtnl_message_routing_policy_rule_get_table;
+ sd_rtnl_message_routing_policy_rule_set_fib_src_prefixlen;
+ sd_rtnl_message_routing_policy_rule_get_fib_src_prefixlen;
+ sd_rtnl_message_routing_policy_rule_set_fib_dst_prefixlen;
+ sd_rtnl_message_routing_policy_rule_get_fib_dst_prefixlen;
+ sd_rtnl_message_routing_policy_rule_set_fib_type;
+ sd_rtnl_message_routing_policy_rule_get_fib_type;
+ sd_rtnl_message_routing_policy_rule_set_flags;
+ sd_rtnl_message_routing_policy_rule_get_flags;
+ sd_rtnl_message_new_traffic_control;
+ sd_rtnl_message_traffic_control_get_ifindex;
+ sd_rtnl_message_traffic_control_get_handle;
+ sd_rtnl_message_traffic_control_get_parent;
+ sd_rtnl_message_new_mdb;
+
+ sd_genl_socket_open;
+ sd_genl_message_new;
+ sd_genl_message_get_family_name;
+ sd_genl_message_get_command;
+ sd_genl_add_match;
} LIBSYSTEMD_251;
diff --git a/src/libsystemd/meson.build b/src/libsystemd/meson.build
index 2701efc8f9..2b288ccb28 100644
--- a/src/libsystemd/meson.build
+++ b/src/libsystemd/meson.build
@@ -155,10 +155,8 @@ libsystemd_sources = files(
'sd-path/sd-path.c',
'sd-resolve/resolve-private.h',
'sd-resolve/sd-resolve.c',
- 'sd-utf8/sd-utf8.c',
) + sd_journal_sources + id128_sources + sd_daemon_sources + sd_event_sources + sd_login_sources
-disable_mempool_c = files('disable-mempool.c')
libsystemd_c_args = ['-fvisibility=default']
diff --git a/src/libsystemd/sd-bus/bus-convenience.c b/src/libsystemd/sd-bus/bus-convenience.c
index a36aeb238e..6a3f2ea0ec 100644
--- a/src/libsystemd/sd-bus/bus-convenience.c
+++ b/src/libsystemd/sd-bus/bus-convenience.c
@@ -270,7 +270,7 @@ _public_ int sd_bus_reply_method_errorfv(
if (call->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED)
return 0;
- bus_error_setfv(&error, name, format, ap);
+ sd_bus_error_setfv(&error, name, format, ap);
return sd_bus_reply_method_error(call, &error);
}
diff --git a/src/libsystemd/sd-bus/bus-dump.c b/src/libsystemd/sd-bus/bus-dump.c
index d67a170a2d..73939d8f7a 100644
--- a/src/libsystemd/sd-bus/bus-dump.c
+++ b/src/libsystemd/sd-bus/bus-dump.c
@@ -50,7 +50,8 @@ _public_ int sd_bus_message_dump(sd_bus_message *m, FILE *f, uint64_t flags) {
unsigned level = 1;
int r;
- assert(m);
+ assert_return(m, -EINVAL);
+ assert_return((flags & ~_SD_BUS_MESSAGE_DUMP_KNOWN_FLAGS) == 0, -EINVAL);
if (!f)
f = stdout;
diff --git a/src/libsystemd/sd-bus/bus-error.c b/src/libsystemd/sd-bus/bus-error.c
index 2454a95b9d..218677eac4 100644
--- a/src/libsystemd/sd-bus/bus-error.c
+++ b/src/libsystemd/sd-bus/bus-error.c
@@ -237,7 +237,7 @@ _public_ int sd_bus_error_set(sd_bus_error *e, const char *name, const char *mes
return -r;
}
-int bus_error_setfv(sd_bus_error *e, const char *name, const char *format, va_list ap) {
+_public_ int sd_bus_error_setfv(sd_bus_error *e, const char *name, const char *format, va_list ap) {
int r;
if (!name)
@@ -277,7 +277,7 @@ _public_ int sd_bus_error_setf(sd_bus_error *e, const char *name, const char *fo
va_list ap;
va_start(ap, format);
- r = bus_error_setfv(e, name, format, ap);
+ r = sd_bus_error_setfv(e, name, format, ap);
assert(!name || r < 0);
va_end(ap);
diff --git a/src/libsystemd/sd-bus/bus-error.h b/src/libsystemd/sd-bus/bus-error.h
index 05dabdb737..518493762c 100644
--- a/src/libsystemd/sd-bus/bus-error.h
+++ b/src/libsystemd/sd-bus/bus-error.h
@@ -11,9 +11,6 @@ bool bus_error_is_dirty(sd_bus_error *e);
const char *bus_error_message(const sd_bus_error *e, int error);
-int bus_error_setfv(sd_bus_error *e, const char *name, const char *format, va_list ap) _printf_(3,0);
-int bus_error_set_errnofv(sd_bus_error *e, int error, const char *format, va_list ap) _printf_(3,0);
-
#define BUS_ERROR_OOM SD_BUS_ERROR_MAKE_CONST(SD_BUS_ERROR_NO_MEMORY, "Out of memory")
#define BUS_ERROR_FAILED SD_BUS_ERROR_MAKE_CONST(SD_BUS_ERROR_FAILED, "Operation failed")
diff --git a/src/libsystemd/sd-bus/bus-message.c b/src/libsystemd/sd-bus/bus-message.c
index 7ab1de80d9..d9c52d64c0 100644
--- a/src/libsystemd/sd-bus/bus-message.c
+++ b/src/libsystemd/sd-bus/bus-message.c
@@ -674,7 +674,7 @@ _public_ int sd_bus_message_new_method_errorf(
assert_return(m, -EINVAL);
va_start(ap, format);
- bus_error_setfv(&error, name, format, ap);
+ sd_bus_error_setfv(&error, name, format, ap);
va_end(ap);
return sd_bus_message_new_method_error(call, m, &error);
@@ -4256,7 +4256,7 @@ int bus_message_get_blob(sd_bus_message *m, void **buffer, size_t *sz) {
return 0;
}
-int bus_message_read_strv_extend(sd_bus_message *m, char ***l) {
+_public_ int sd_bus_message_read_strv_extend(sd_bus_message *m, char ***l) {
char type;
const char *contents, *s;
int r;
@@ -4299,7 +4299,7 @@ _public_ int sd_bus_message_read_strv(sd_bus_message *m, char ***l) {
assert_return(m->sealed, -EPERM);
assert_return(l, -EINVAL);
- r = bus_message_read_strv_extend(m, &strv);
+ r = sd_bus_message_read_strv_extend(m, &strv);
if (r <= 0)
return r;
diff --git a/src/libsystemd/sd-bus/bus-message.h b/src/libsystemd/sd-bus/bus-message.h
index b51fb896ed..0439fbd45a 100644
--- a/src/libsystemd/sd-bus/bus-message.h
+++ b/src/libsystemd/sd-bus/bus-message.h
@@ -159,7 +159,6 @@ static inline void* BUS_MESSAGE_FIELDS(sd_bus_message *m) {
}
int bus_message_get_blob(sd_bus_message *m, void **buffer, size_t *sz);
-int bus_message_read_strv_extend(sd_bus_message *m, char ***l);
int bus_message_from_malloc(
sd_bus *bus,
diff --git a/src/libsystemd/sd-bus/bus-socket.c b/src/libsystemd/sd-bus/bus-socket.c
index bf70e19826..2148351952 100644
--- a/src/libsystemd/sd-bus/bus-socket.c
+++ b/src/libsystemd/sd-bus/bus-socket.c
@@ -608,7 +608,7 @@ void bus_socket_setup(sd_bus *b) {
assert(b);
/* Increase the buffers to 8 MB */
- (void) fd_inc_rcvbuf(b->input_fd, SNDBUF_SIZE);
+ (void) fd_increase_rxbuf(b->input_fd, SNDBUF_SIZE);
(void) fd_inc_sndbuf(b->output_fd, SNDBUF_SIZE);
b->message_version = 1;
diff --git a/src/libsystemd/sd-bus/sd-bus.c b/src/libsystemd/sd-bus/sd-bus.c
index 13ff6bcb1f..a4d3f479c9 100644
--- a/src/libsystemd/sd-bus/sd-bus.c
+++ b/src/libsystemd/sd-bus/sd-bus.c
@@ -505,15 +505,15 @@ static int synthesize_connected_signal(sd_bus *bus) {
}
void bus_set_state(sd_bus *bus, enum bus_state state) {
- static const char * const table[_BUS_STATE_MAX] = {
- [BUS_UNSET] = "UNSET",
- [BUS_WATCH_BIND] = "WATCH_BIND",
- [BUS_OPENING] = "OPENING",
+ static const char* const table[_BUS_STATE_MAX] = {
+ [BUS_UNSET] = "UNSET",
+ [BUS_WATCH_BIND] = "WATCH_BIND",
+ [BUS_OPENING] = "OPENING",
[BUS_AUTHENTICATING] = "AUTHENTICATING",
- [BUS_HELLO] = "HELLO",
- [BUS_RUNNING] = "RUNNING",
- [BUS_CLOSING] = "CLOSING",
- [BUS_CLOSED] = "CLOSED",
+ [BUS_HELLO] = "HELLO",
+ [BUS_RUNNING] = "RUNNING",
+ [BUS_CLOSING] = "CLOSING",
+ [BUS_CLOSED] = "CLOSED",
};
assert(bus);
diff --git a/src/libsystemd/sd-daemon/sd-daemon.c b/src/libsystemd/sd-daemon/sd-daemon.c
index c6380768bb..199d10a00e 100644
--- a/src/libsystemd/sd-daemon/sd-daemon.c
+++ b/src/libsystemd/sd-daemon/sd-daemon.c
@@ -190,7 +190,7 @@ _public_ int sd_is_special(int fd, const char *path) {
return 1;
}
-static int sd_is_socket_internal(int fd, int type, int listening) {
+static int is_socket_internal(int fd, int type, int listening) {
struct stat st_fd;
assert_return(fd >= 0, -EBADF);
@@ -239,7 +239,7 @@ _public_ int sd_is_socket(int fd, int family, int type, int listening) {
assert_return(fd >= 0, -EBADF);
assert_return(family >= 0, -EINVAL);
- r = sd_is_socket_internal(fd, type, listening);
+ r = is_socket_internal(fd, type, listening);
if (r <= 0)
return r;
@@ -267,7 +267,7 @@ _public_ int sd_is_socket_inet(int fd, int family, int type, int listening, uint
assert_return(fd >= 0, -EBADF);
assert_return(IN_SET(family, 0, AF_INET, AF_INET6), -EINVAL);
- r = sd_is_socket_internal(fd, type, listening);
+ r = is_socket_internal(fd, type, listening);
if (r <= 0)
return r;
@@ -307,7 +307,7 @@ _public_ int sd_is_socket_sockaddr(int fd, int type, const struct sockaddr* addr
assert_return(addr_len >= sizeof(sa_family_t), -ENOBUFS);
assert_return(IN_SET(addr->sa_family, AF_INET, AF_INET6), -EPFNOSUPPORT);
- r = sd_is_socket_internal(fd, type, listening);
+ r = is_socket_internal(fd, type, listening);
if (r <= 0)
return r;
@@ -362,7 +362,7 @@ _public_ int sd_is_socket_unix(int fd, int type, int listening, const char *path
assert_return(fd >= 0, -EBADF);
- r = sd_is_socket_internal(fd, type, listening);
+ r = is_socket_internal(fd, type, listening);
if (r <= 0)
return r;
diff --git a/src/libsystemd/sd-event/event-util.c b/src/libsystemd/sd-event/event-util.c
index 8c24e7db63..a36eba9029 100644
--- a/src/libsystemd/sd-event/event-util.c
+++ b/src/libsystemd/sd-event/event-util.c
@@ -109,20 +109,6 @@ int event_reset_time_relative(
return event_reset_time(e, s, clock, usec_add(usec_now, usec), accuracy, callback, userdata, priority, description, force_reset);
}
-int event_source_disable(sd_event_source *s) {
- if (!s)
- return 0;
-
- return sd_event_source_set_enabled(s, SD_EVENT_OFF);
-}
-
-int event_source_is_enabled(sd_event_source *s) {
- if (!s)
- return false;
-
- return sd_event_source_get_enabled(s, NULL);
-}
-
int event_add_time_change(sd_event *e, sd_event_source **ret, sd_event_io_handler_t callback, void *userdata) {
_cleanup_(sd_event_source_unrefp) sd_event_source *s = NULL;
_cleanup_close_ int fd = -1;
diff --git a/src/libsystemd/sd-event/event-util.h b/src/libsystemd/sd-event/event-util.h
index abd043bdcc..c185584412 100644
--- a/src/libsystemd/sd-event/event-util.h
+++ b/src/libsystemd/sd-event/event-util.h
@@ -27,7 +27,8 @@ int event_reset_time_relative(
int64_t priority,
const char *description,
bool force_reset);
-int event_source_disable(sd_event_source *s);
-int event_source_is_enabled(sd_event_source *s);
+static inline int event_source_disable(sd_event_source *s) {
+ return sd_event_source_set_enabled(s, SD_EVENT_OFF);
+}
int event_add_time_change(sd_event *e, sd_event_source **ret, sd_event_io_handler_t callback, void *userdata);
diff --git a/src/libsystemd/sd-event/sd-event.c b/src/libsystemd/sd-event/sd-event.c
index 50f2bb2804..cea1c009d6 100644
--- a/src/libsystemd/sd-event/sd-event.c
+++ b/src/libsystemd/sd-event/sd-event.c
@@ -2413,6 +2413,10 @@ fail:
}
_public_ int sd_event_source_get_enabled(sd_event_source *s, int *ret) {
+ /* Quick mode: the event source doesn't exist and we only want to query boolean enablement state. */
+ if (!s && !ret)
+ return false;
+
assert_return(s, -EINVAL);
assert_return(!event_pid_changed(s->event), -ECHILD);
@@ -2590,8 +2594,13 @@ static int event_source_online(
_public_ int sd_event_source_set_enabled(sd_event_source *s, int m) {
int r;
- assert_return(s, -EINVAL);
assert_return(IN_SET(m, SD_EVENT_OFF, SD_EVENT_ON, SD_EVENT_ONESHOT), -EINVAL);
+
+ /* Quick mode: if the source doesn't exist, SD_EVENT_OFF is a noop. */
+ if (m == SD_EVENT_OFF && !s)
+ return 0;
+
+ assert_return(s, -EINVAL);
assert_return(!event_pid_changed(s->event), -ECHILD);
/* If we are dead anyway, we are fine with turning off sources, but everything else needs to fail. */
diff --git a/src/libsystemd/sd-id128/id128-util.c b/src/libsystemd/sd-id128/id128-util.c
index e4a3bbd3eb..1068721dd4 100644
--- a/src/libsystemd/sd-id128/id128-util.c
+++ b/src/libsystemd/sd-id128/id128-util.c
@@ -206,19 +206,3 @@ int id128_get_product(sd_id128_t *ret) {
*ret = uuid;
return 0;
}
-
-int id128_equal_string(const char *s, sd_id128_t id) {
- sd_id128_t parsed;
- int r;
-
- if (!s)
- return false;
-
- /* Checks if the specified string matches a valid string representation of the specified 128 bit ID/uuid */
-
- r = sd_id128_from_string(s, &parsed);
- if (r < 0)
- return r;
-
- return sd_id128_equal(parsed, id);
-}
diff --git a/src/libsystemd/sd-id128/id128-util.h b/src/libsystemd/sd-id128/id128-util.h
index 65a278c8ee..17b180c10c 100644
--- a/src/libsystemd/sd-id128/id128-util.h
+++ b/src/libsystemd/sd-id128/id128-util.h
@@ -34,5 +34,3 @@ extern const struct hash_ops id128_hash_ops;
sd_id128_t id128_make_v4_uuid(sd_id128_t id);
int id128_get_product(sd_id128_t *ret);
-
-int id128_equal_string(const char *s, sd_id128_t id);
diff --git a/src/libsystemd/sd-id128/sd-id128.c b/src/libsystemd/sd-id128/sd-id128.c
index 183d34054d..709c8ffb57 100644
--- a/src/libsystemd/sd-id128/sd-id128.c
+++ b/src/libsystemd/sd-id128/sd-id128.c
@@ -101,6 +101,22 @@ _public_ int sd_id128_from_string(const char s[], sd_id128_t *ret) {
return 0;
}
+_public_ int sd_id128_string_equal(const char *s, sd_id128_t id) {
+ sd_id128_t parsed;
+ int r;
+
+ if (!s)
+ return false;
+
+ /* Checks if the specified string matches a valid string representation of the specified 128 bit ID/uuid */
+
+ r = sd_id128_from_string(s, &parsed);
+ if (r < 0)
+ return r;
+
+ return sd_id128_equal(parsed, id);
+}
+
_public_ int sd_id128_get_machine(sd_id128_t *ret) {
static thread_local sd_id128_t saved_machine_id = {};
int r;
diff --git a/src/libsystemd/sd-netlink/netlink-genl.c b/src/libsystemd/sd-netlink/netlink-genl.c
index 8c907f2836..74be75d406 100644
--- a/src/libsystemd/sd-netlink/netlink-genl.c
+++ b/src/libsystemd/sd-netlink/netlink-genl.c
@@ -365,7 +365,7 @@ int genl_get_type_system_and_header_size(
return 0;
}
-int sd_genl_message_new(sd_netlink *nl, const char *family_name, uint8_t cmd, sd_netlink_message **ret) {
+_public_ int sd_genl_message_new(sd_netlink *nl, const char *family_name, uint8_t cmd, sd_netlink_message **ret) {
const GenericNetlinkFamily *family;
int r;
@@ -381,7 +381,7 @@ int sd_genl_message_new(sd_netlink *nl, const char *family_name, uint8_t cmd, sd
return genl_message_new(nl, family, cmd, ret);
}
-int sd_genl_message_get_family_name(sd_netlink *nl, sd_netlink_message *m, const char **ret) {
+_public_ int sd_genl_message_get_family_name(sd_netlink *nl, sd_netlink_message *m, const char **ret) {
const GenericNetlinkFamily *family;
uint16_t nlmsg_type;
int r;
@@ -403,7 +403,7 @@ int sd_genl_message_get_family_name(sd_netlink *nl, sd_netlink_message *m, const
return 0;
}
-int sd_genl_message_get_command(sd_netlink *nl, sd_netlink_message *m, uint8_t *ret) {
+_public_ int sd_genl_message_get_command(sd_netlink *nl, sd_netlink_message *m, uint8_t *ret) {
struct genlmsghdr *h;
uint16_t nlmsg_type;
size_t size;
@@ -448,7 +448,7 @@ static int genl_family_get_multicast_group_id_by_name(const GenericNetlinkFamily
return 0;
}
-int sd_genl_add_match(
+_public_ int sd_genl_add_match(
sd_netlink *nl,
sd_netlink_slot **ret_slot,
const char *family_name,
@@ -483,6 +483,6 @@ int sd_genl_add_match(
callback, destroy_callback, userdata, description);
}
-int sd_genl_socket_open(sd_netlink **ret) {
+_public_ int sd_genl_socket_open(sd_netlink **ret) {
return netlink_open_family(ret, NETLINK_GENERIC);
}
diff --git a/src/libsystemd/sd-netlink/netlink-internal.h b/src/libsystemd/sd-netlink/netlink-internal.h
index 80d28258e2..497ffe9112 100644
--- a/src/libsystemd/sd-netlink/netlink-internal.h
+++ b/src/libsystemd/sd-netlink/netlink-internal.h
@@ -138,7 +138,12 @@ int message_new_full(
sd_netlink_message **ret);
int message_new(sd_netlink *nl, sd_netlink_message **ret, uint16_t type);
int message_new_synthetic_error(sd_netlink *nl, int error, uint32_t serial, sd_netlink_message **ret);
-uint32_t message_get_serial(sd_netlink_message *m);
+
+static inline uint32_t message_get_serial(sd_netlink_message *m) {
+ assert(m);
+ return ASSERT_PTR(m->hdr)->nlmsg_seq;
+}
+
void message_seal(sd_netlink_message *m);
int netlink_open_family(sd_netlink **ret, int family);
@@ -146,12 +151,10 @@ bool netlink_pid_changed(sd_netlink *nl);
int netlink_rqueue_make_room(sd_netlink *nl);
int netlink_rqueue_partial_make_room(sd_netlink *nl);
-int socket_open(int family);
int socket_bind(sd_netlink *nl);
int socket_broadcast_group_ref(sd_netlink *nl, unsigned group);
int socket_broadcast_group_unref(sd_netlink *nl, unsigned group);
int socket_write_message(sd_netlink *nl, sd_netlink_message *m);
-int socket_writev_message(sd_netlink *nl, sd_netlink_message **m, size_t msgcount);
int socket_read_message(sd_netlink *nl);
int netlink_add_match_internal(
@@ -169,3 +172,30 @@ int netlink_add_match_internal(
/* Make sure callbacks don't destroy the netlink connection */
#define NETLINK_DONT_DESTROY(nl) \
_cleanup_(sd_netlink_unrefp) _unused_ sd_netlink *_dont_destroy_##nl = sd_netlink_ref(nl)
+
+/* nfnl */
+/* TODO: to be exported later */
+int sd_nfnl_socket_open(sd_netlink **ret);
+int sd_nfnl_message_batch_begin(sd_netlink *nfnl, sd_netlink_message **ret);
+int sd_nfnl_message_batch_end(sd_netlink *nfnl, sd_netlink_message **ret);
+int sd_nfnl_nft_message_del_table(sd_netlink *nfnl, sd_netlink_message **ret,
+ int family, const char *table);
+int sd_nfnl_nft_message_new_table(sd_netlink *nfnl, sd_netlink_message **ret,
+ int family, const char *table);
+int sd_nfnl_nft_message_new_basechain(sd_netlink *nfnl, sd_netlink_message **ret,
+ int family, const char *table, const char *chain,
+ const char *type, uint8_t hook, int prio);
+int sd_nfnl_nft_message_new_rule(sd_netlink *nfnl, sd_netlink_message **ret,
+ int family, const char *table, const char *chain);
+int sd_nfnl_nft_message_new_set(sd_netlink *nfnl, sd_netlink_message **ret,
+ int family, const char *table, const char *set_name,
+ uint32_t setid, uint32_t klen);
+int sd_nfnl_nft_message_new_setelems_begin(sd_netlink *nfnl, sd_netlink_message **ret,
+ int family, const char *table, const char *set_name);
+int sd_nfnl_nft_message_del_setelems_begin(sd_netlink *nfnl, sd_netlink_message **ret,
+ int family, const char *table, const char *set_name);
+int sd_nfnl_nft_message_add_setelem(sd_netlink_message *m,
+ uint32_t num,
+ const void *key, uint32_t klen,
+ const void *data, uint32_t dlen);
+int sd_nfnl_nft_message_add_setelem_end(sd_netlink_message *m);
diff --git a/src/libsystemd/sd-netlink/netlink-message-nfnl.c b/src/libsystemd/sd-netlink/netlink-message-nfnl.c
index 9b24f74042..6f32167772 100644
--- a/src/libsystemd/sd-netlink/netlink-message-nfnl.c
+++ b/src/libsystemd/sd-netlink/netlink-message-nfnl.c
@@ -277,7 +277,7 @@ int sd_nfnl_nft_message_del_setelems_begin(
return r;
}
-static int sd_nfnl_add_data(sd_netlink_message *m, uint16_t attr, const void *data, uint32_t dlen) {
+static int add_data(sd_netlink_message *m, uint16_t attr, const void *data, uint32_t dlen) {
int r;
r = sd_netlink_message_open_container(m, attr);
@@ -305,12 +305,12 @@ int sd_nfnl_nft_message_add_setelem(
if (r < 0)
return r;
- r = sd_nfnl_add_data(m, NFTA_SET_ELEM_KEY, key, klen);
+ r = add_data(m, NFTA_SET_ELEM_KEY, key, klen);
if (r < 0)
goto cancel;
if (data) {
- r = sd_nfnl_add_data(m, NFTA_SET_ELEM_DATA, data, dlen);
+ r = add_data(m, NFTA_SET_ELEM_DATA, data, dlen);
if (r < 0)
goto cancel;
}
diff --git a/src/libsystemd/sd-netlink/netlink-message-rtnl.c b/src/libsystemd/sd-netlink/netlink-message-rtnl.c
index 87b1c3c3c8..289eb41ca9 100644
--- a/src/libsystemd/sd-netlink/netlink-message-rtnl.c
+++ b/src/libsystemd/sd-netlink/netlink-message-rtnl.c
@@ -17,7 +17,7 @@
#include "socket-util.h"
#include "util.h"
-int sd_rtnl_message_route_set_dst_prefixlen(sd_netlink_message *m, unsigned char prefixlen) {
+_public_ int sd_rtnl_message_route_set_dst_prefixlen(sd_netlink_message *m, unsigned char prefixlen) {
struct rtmsg *rtm;
assert_return(m, -EINVAL);
@@ -35,7 +35,7 @@ int sd_rtnl_message_route_set_dst_prefixlen(sd_netlink_message *m, unsigned char
return 0;
}
-int sd_rtnl_message_route_set_src_prefixlen(sd_netlink_message *m, unsigned char prefixlen) {
+_public_ int sd_rtnl_message_route_set_src_prefixlen(sd_netlink_message *m, unsigned char prefixlen) {
struct rtmsg *rtm;
assert_return(m, -EINVAL);
@@ -53,7 +53,7 @@ int sd_rtnl_message_route_set_src_prefixlen(sd_netlink_message *m, unsigned char
return 0;
}
-int sd_rtnl_message_route_set_scope(sd_netlink_message *m, unsigned char scope) {
+_public_ int sd_rtnl_message_route_set_scope(sd_netlink_message *m, unsigned char scope) {
struct rtmsg *rtm;
assert_return(m, -EINVAL);
@@ -67,7 +67,7 @@ int sd_rtnl_message_route_set_scope(sd_netlink_message *m, unsigned char scope)
return 0;
}
-int sd_rtnl_message_route_set_flags(sd_netlink_message *m, unsigned flags) {
+_public_ int sd_rtnl_message_route_set_flags(sd_netlink_message *m, unsigned flags) {
struct rtmsg *rtm;
assert_return(m, -EINVAL);
@@ -81,7 +81,7 @@ int sd_rtnl_message_route_set_flags(sd_netlink_message *m, unsigned flags) {
return 0;
}
-int sd_rtnl_message_route_get_flags(sd_netlink_message *m, unsigned *flags) {
+_public_ int sd_rtnl_message_route_get_flags(sd_netlink_message *m, unsigned *flags) {
struct rtmsg *rtm;
assert_return(m, -EINVAL);
@@ -96,7 +96,7 @@ int sd_rtnl_message_route_get_flags(sd_netlink_message *m, unsigned *flags) {
return 0;
}
-int sd_rtnl_message_route_set_table(sd_netlink_message *m, unsigned char table) {
+_public_ int sd_rtnl_message_route_set_table(sd_netlink_message *m, unsigned char table) {
struct rtmsg *rtm;
assert_return(m, -EINVAL);
@@ -110,7 +110,7 @@ int sd_rtnl_message_route_set_table(sd_netlink_message *m, unsigned char table)
return 0;
}
-int sd_rtnl_message_route_get_family(sd_netlink_message *m, int *family) {
+_public_ int sd_rtnl_message_route_get_family(sd_netlink_message *m, int *family) {
struct rtmsg *rtm;
assert_return(m, -EINVAL);
@@ -125,7 +125,7 @@ int sd_rtnl_message_route_get_family(sd_netlink_message *m, int *family) {
return 0;
}
-int sd_rtnl_message_route_get_type(sd_netlink_message *m, unsigned char *type) {
+_public_ int sd_rtnl_message_route_get_type(sd_netlink_message *m, unsigned char *type) {
struct rtmsg *rtm;
assert_return(m, -EINVAL);
@@ -140,7 +140,7 @@ int sd_rtnl_message_route_get_type(sd_netlink_message *m, unsigned char *type) {
return 0;
}
-int sd_rtnl_message_route_set_type(sd_netlink_message *m, unsigned char type) {
+_public_ int sd_rtnl_message_route_set_type(sd_netlink_message *m, unsigned char type) {
struct rtmsg *rtm;
assert_return(m, -EINVAL);
@@ -154,7 +154,7 @@ int sd_rtnl_message_route_set_type(sd_netlink_message *m, unsigned char type) {
return 0;
}
-int sd_rtnl_message_route_get_protocol(sd_netlink_message *m, unsigned char *protocol) {
+_public_ int sd_rtnl_message_route_get_protocol(sd_netlink_message *m, unsigned char *protocol) {
struct rtmsg *rtm;
assert_return(m, -EINVAL);
@@ -169,7 +169,7 @@ int sd_rtnl_message_route_get_protocol(sd_netlink_message *m, unsigned char *pro
return 0;
}
-int sd_rtnl_message_route_get_scope(sd_netlink_message *m, unsigned char *scope) {
+_public_ int sd_rtnl_message_route_get_scope(sd_netlink_message *m, unsigned char *scope) {
struct rtmsg *rtm;
assert_return(m, -EINVAL);
@@ -184,7 +184,7 @@ int sd_rtnl_message_route_get_scope(sd_netlink_message *m, unsigned char *scope)
return 0;
}
-int sd_rtnl_message_route_get_tos(sd_netlink_message *m, uint8_t *tos) {
+_public_ int sd_rtnl_message_route_get_tos(sd_netlink_message *m, uint8_t *tos) {
struct rtmsg *rtm;
assert_return(m, -EINVAL);
@@ -199,7 +199,7 @@ int sd_rtnl_message_route_get_tos(sd_netlink_message *m, uint8_t *tos) {
return 0;
}
-int sd_rtnl_message_route_get_table(sd_netlink_message *m, unsigned char *table) {
+_public_ int sd_rtnl_message_route_get_table(sd_netlink_message *m, unsigned char *table) {
struct rtmsg *rtm;
assert_return(m, -EINVAL);
@@ -214,7 +214,7 @@ int sd_rtnl_message_route_get_table(sd_netlink_message *m, unsigned char *table)
return 0;
}
-int sd_rtnl_message_route_get_dst_prefixlen(sd_netlink_message *m, unsigned char *dst_len) {
+_public_ int sd_rtnl_message_route_get_dst_prefixlen(sd_netlink_message *m, unsigned char *dst_len) {
struct rtmsg *rtm;
assert_return(m, -EINVAL);
@@ -229,7 +229,7 @@ int sd_rtnl_message_route_get_dst_prefixlen(sd_netlink_message *m, unsigned char
return 0;
}
-int sd_rtnl_message_route_get_src_prefixlen(sd_netlink_message *m, unsigned char *src_len) {
+_public_ int sd_rtnl_message_route_get_src_prefixlen(sd_netlink_message *m, unsigned char *src_len) {
struct rtmsg *rtm;
assert_return(m, -EINVAL);
@@ -244,7 +244,7 @@ int sd_rtnl_message_route_get_src_prefixlen(sd_netlink_message *m, unsigned char
return 0;
}
-int sd_rtnl_message_new_route(sd_netlink *rtnl, sd_netlink_message **ret,
+_public_ int sd_rtnl_message_new_route(sd_netlink *rtnl, sd_netlink_message **ret,
uint16_t nlmsg_type, int rtm_family,
unsigned char rtm_protocol) {
struct rtmsg *rtm;
@@ -270,7 +270,7 @@ int sd_rtnl_message_new_route(sd_netlink *rtnl, sd_netlink_message **ret,
return 0;
}
-int sd_rtnl_message_new_nexthop(sd_netlink *rtnl, sd_netlink_message **ret,
+_public_ int sd_rtnl_message_new_nexthop(sd_netlink *rtnl, sd_netlink_message **ret,
uint16_t nlmsg_type, int nh_family,
unsigned char nh_protocol) {
struct nhmsg *nhm;
@@ -308,7 +308,7 @@ int sd_rtnl_message_new_nexthop(sd_netlink *rtnl, sd_netlink_message **ret,
return 0;
}
-int sd_rtnl_message_nexthop_set_flags(sd_netlink_message *m, uint8_t flags) {
+_public_ int sd_rtnl_message_nexthop_set_flags(sd_netlink_message *m, uint8_t flags) {
struct nhmsg *nhm;
assert_return(m, -EINVAL);
@@ -321,7 +321,7 @@ int sd_rtnl_message_nexthop_set_flags(sd_netlink_message *m, uint8_t flags) {
return 0;
}
-int sd_rtnl_message_nexthop_get_flags(sd_netlink_message *m, uint8_t *ret) {
+_public_ int sd_rtnl_message_nexthop_get_flags(sd_netlink_message *m, uint8_t *ret) {
struct nhmsg *nhm;
assert_return(m, -EINVAL);
@@ -335,7 +335,7 @@ int sd_rtnl_message_nexthop_get_flags(sd_netlink_message *m, uint8_t *ret) {
return 0;
}
-int sd_rtnl_message_nexthop_get_family(sd_netlink_message *m, uint8_t *family) {
+_public_ int sd_rtnl_message_nexthop_get_family(sd_netlink_message *m, uint8_t *family) {
struct nhmsg *nhm;
assert_return(m, -EINVAL);
@@ -349,7 +349,7 @@ int sd_rtnl_message_nexthop_get_family(sd_netlink_message *m, uint8_t *family) {
return 0;
}
-int sd_rtnl_message_nexthop_get_protocol(sd_netlink_message *m, uint8_t *protocol) {
+_public_ int sd_rtnl_message_nexthop_get_protocol(sd_netlink_message *m, uint8_t *protocol) {
struct nhmsg *nhm;
assert_return(m, -EINVAL);
@@ -363,7 +363,7 @@ int sd_rtnl_message_nexthop_get_protocol(sd_netlink_message *m, uint8_t *protoco
return 0;
}
-int sd_rtnl_message_neigh_set_flags(sd_netlink_message *m, uint8_t flags) {
+_public_ int sd_rtnl_message_neigh_set_flags(sd_netlink_message *m, uint8_t flags) {
struct ndmsg *ndm;
assert_return(m, -EINVAL);
@@ -376,7 +376,7 @@ int sd_rtnl_message_neigh_set_flags(sd_netlink_message *m, uint8_t flags) {
return 0;
}
-int sd_rtnl_message_neigh_set_state(sd_netlink_message *m, uint16_t state) {
+_public_ int sd_rtnl_message_neigh_set_state(sd_netlink_message *m, uint16_t state) {
struct ndmsg *ndm;
assert_return(m, -EINVAL);
@@ -389,7 +389,7 @@ int sd_rtnl_message_neigh_set_state(sd_netlink_message *m, uint16_t state) {
return 0;
}
-int sd_rtnl_message_neigh_get_flags(sd_netlink_message *m, uint8_t *flags) {
+_public_ int sd_rtnl_message_neigh_get_flags(sd_netlink_message *m, uint8_t *flags) {
struct ndmsg *ndm;
assert_return(m, -EINVAL);
@@ -402,7 +402,7 @@ int sd_rtnl_message_neigh_get_flags(sd_netlink_message *m, uint8_t *flags) {
return 0;
}
-int sd_rtnl_message_neigh_get_state(sd_netlink_message *m, uint16_t *state) {
+_public_ int sd_rtnl_message_neigh_get_state(sd_netlink_message *m, uint16_t *state) {
struct ndmsg *ndm;
assert_return(m, -EINVAL);
@@ -415,7 +415,7 @@ int sd_rtnl_message_neigh_get_state(sd_netlink_message *m, uint16_t *state) {
return 0;
}
-int sd_rtnl_message_neigh_get_family(sd_netlink_message *m, int *family) {
+_public_ int sd_rtnl_message_neigh_get_family(sd_netlink_message *m, int *family) {
struct ndmsg *ndm;
assert_return(m, -EINVAL);
@@ -430,7 +430,7 @@ int sd_rtnl_message_neigh_get_family(sd_netlink_message *m, int *family) {
return 0;
}
-int sd_rtnl_message_neigh_get_ifindex(sd_netlink_message *m, int *index) {
+_public_ int sd_rtnl_message_neigh_get_ifindex(sd_netlink_message *m, int *index) {
struct ndmsg *ndm;
assert_return(m, -EINVAL);
@@ -445,7 +445,13 @@ int sd_rtnl_message_neigh_get_ifindex(sd_netlink_message *m, int *index) {
return 0;
}
-int sd_rtnl_message_new_neigh(sd_netlink *rtnl, sd_netlink_message **ret, uint16_t nlmsg_type, int index, int ndm_family) {
+_public_ int sd_rtnl_message_new_neigh(
+ sd_netlink *rtnl,
+ sd_netlink_message **ret,
+ uint16_t nlmsg_type,
+ int index,
+ int ndm_family) {
+
struct ndmsg *ndm;
int r;
@@ -472,7 +478,7 @@ int sd_rtnl_message_new_neigh(sd_netlink *rtnl, sd_netlink_message **ret, uint16
return 0;
}
-int sd_rtnl_message_link_set_flags(sd_netlink_message *m, unsigned flags, unsigned change) {
+_public_ int sd_rtnl_message_link_set_flags(sd_netlink_message *m, unsigned flags, unsigned change) {
struct ifinfomsg *ifi;
assert_return(m, -EINVAL);
@@ -488,7 +494,7 @@ int sd_rtnl_message_link_set_flags(sd_netlink_message *m, unsigned flags, unsign
return 0;
}
-int sd_rtnl_message_link_set_type(sd_netlink_message *m, unsigned type) {
+_public_ int sd_rtnl_message_link_set_type(sd_netlink_message *m, unsigned type) {
struct ifinfomsg *ifi;
assert_return(m, -EINVAL);
@@ -502,7 +508,7 @@ int sd_rtnl_message_link_set_type(sd_netlink_message *m, unsigned type) {
return 0;
}
-int sd_rtnl_message_link_set_family(sd_netlink_message *m, unsigned family) {
+_public_ int sd_rtnl_message_link_set_family(sd_netlink_message *m, unsigned family) {
struct ifinfomsg *ifi;
assert_return(m, -EINVAL);
@@ -516,7 +522,7 @@ int sd_rtnl_message_link_set_family(sd_netlink_message *m, unsigned family) {
return 0;
}
-int sd_rtnl_message_new_link(sd_netlink *rtnl, sd_netlink_message **ret,
+_public_ int sd_rtnl_message_new_link(sd_netlink *rtnl, sd_netlink_message **ret,
uint16_t nlmsg_type, int index) {
struct ifinfomsg *ifi;
int r;
@@ -541,7 +547,7 @@ int sd_rtnl_message_new_link(sd_netlink *rtnl, sd_netlink_message **ret,
return 0;
}
-int sd_rtnl_message_addr_set_prefixlen(sd_netlink_message *m, unsigned char prefixlen) {
+_public_ int sd_rtnl_message_addr_set_prefixlen(sd_netlink_message *m, unsigned char prefixlen) {
struct ifaddrmsg *ifa;
assert_return(m, -EINVAL);
@@ -559,7 +565,7 @@ int sd_rtnl_message_addr_set_prefixlen(sd_netlink_message *m, unsigned char pref
return 0;
}
-int sd_rtnl_message_addr_set_flags(sd_netlink_message *m, unsigned char flags) {
+_public_ int sd_rtnl_message_addr_set_flags(sd_netlink_message *m, unsigned char flags) {
struct ifaddrmsg *ifa;
assert_return(m, -EINVAL);
@@ -573,7 +579,7 @@ int sd_rtnl_message_addr_set_flags(sd_netlink_message *m, unsigned char flags) {
return 0;
}
-int sd_rtnl_message_addr_set_scope(sd_netlink_message *m, unsigned char scope) {
+_public_ int sd_rtnl_message_addr_set_scope(sd_netlink_message *m, unsigned char scope) {
struct ifaddrmsg *ifa;
assert_return(m, -EINVAL);
@@ -587,7 +593,7 @@ int sd_rtnl_message_addr_set_scope(sd_netlink_message *m, unsigned char scope) {
return 0;
}
-int sd_rtnl_message_addr_get_family(sd_netlink_message *m, int *family) {
+_public_ int sd_rtnl_message_addr_get_family(sd_netlink_message *m, int *family) {
struct ifaddrmsg *ifa;
assert_return(m, -EINVAL);
@@ -602,7 +608,7 @@ int sd_rtnl_message_addr_get_family(sd_netlink_message *m, int *family) {
return 0;
}
-int sd_rtnl_message_addr_get_prefixlen(sd_netlink_message *m, unsigned char *prefixlen) {
+_public_ int sd_rtnl_message_addr_get_prefixlen(sd_netlink_message *m, unsigned char *prefixlen) {
struct ifaddrmsg *ifa;
assert_return(m, -EINVAL);
@@ -617,7 +623,7 @@ int sd_rtnl_message_addr_get_prefixlen(sd_netlink_message *m, unsigned char *pre
return 0;
}
-int sd_rtnl_message_addr_get_scope(sd_netlink_message *m, unsigned char *scope) {
+_public_ int sd_rtnl_message_addr_get_scope(sd_netlink_message *m, unsigned char *scope) {
struct ifaddrmsg *ifa;
assert_return(m, -EINVAL);
@@ -632,7 +638,7 @@ int sd_rtnl_message_addr_get_scope(sd_netlink_message *m, unsigned char *scope)
return 0;
}
-int sd_rtnl_message_addr_get_flags(sd_netlink_message *m, unsigned char *flags) {
+_public_ int sd_rtnl_message_addr_get_flags(sd_netlink_message *m, unsigned char *flags) {
struct ifaddrmsg *ifa;
assert_return(m, -EINVAL);
@@ -647,7 +653,7 @@ int sd_rtnl_message_addr_get_flags(sd_netlink_message *m, unsigned char *flags)
return 0;
}
-int sd_rtnl_message_addr_get_ifindex(sd_netlink_message *m, int *ifindex) {
+_public_ int sd_rtnl_message_addr_get_ifindex(sd_netlink_message *m, int *ifindex) {
struct ifaddrmsg *ifa;
assert_return(m, -EINVAL);
@@ -662,9 +668,13 @@ int sd_rtnl_message_addr_get_ifindex(sd_netlink_message *m, int *ifindex) {
return 0;
}
-int sd_rtnl_message_new_addr(sd_netlink *rtnl, sd_netlink_message **ret,
- uint16_t nlmsg_type, int index,
- int family) {
+_public_ int sd_rtnl_message_new_addr(
+ sd_netlink *rtnl,
+ sd_netlink_message **ret,
+ uint16_t nlmsg_type,
+ int index,
+ int family) {
+
struct ifaddrmsg *ifa;
int r;
@@ -687,8 +697,11 @@ int sd_rtnl_message_new_addr(sd_netlink *rtnl, sd_netlink_message **ret,
return 0;
}
-int sd_rtnl_message_new_addr_update(sd_netlink *rtnl, sd_netlink_message **ret,
- int index, int family) {
+_public_ int sd_rtnl_message_new_addr_update(
+ sd_netlink *rtnl,
+ sd_netlink_message **ret,
+ int index,
+ int family) {
int r;
r = sd_rtnl_message_new_addr(rtnl, ret, RTM_NEWADDR, index, family);
@@ -700,7 +713,7 @@ int sd_rtnl_message_new_addr_update(sd_netlink *rtnl, sd_netlink_message **ret,
return 0;
}
-int sd_rtnl_message_link_get_ifindex(sd_netlink_message *m, int *ifindex) {
+_public_ int sd_rtnl_message_link_get_ifindex(sd_netlink_message *m, int *ifindex) {
struct ifinfomsg *ifi;
assert_return(m, -EINVAL);
@@ -715,7 +728,7 @@ int sd_rtnl_message_link_get_ifindex(sd_netlink_message *m, int *ifindex) {
return 0;
}
-int sd_rtnl_message_link_get_flags(sd_netlink_message *m, unsigned *flags) {
+_public_ int sd_rtnl_message_link_get_flags(sd_netlink_message *m, unsigned *flags) {
struct ifinfomsg *ifi;
assert_return(m, -EINVAL);
@@ -730,7 +743,7 @@ int sd_rtnl_message_link_get_flags(sd_netlink_message *m, unsigned *flags) {
return 0;
}
-int sd_rtnl_message_link_get_type(sd_netlink_message *m, unsigned short *type) {
+_public_ int sd_rtnl_message_link_get_type(sd_netlink_message *m, unsigned short *type) {
struct ifinfomsg *ifi;
assert_return(m, -EINVAL);
@@ -745,7 +758,7 @@ int sd_rtnl_message_link_get_type(sd_netlink_message *m, unsigned short *type) {
return 0;
}
-int sd_rtnl_message_get_family(sd_netlink_message *m, int *family) {
+_public_ int sd_rtnl_message_get_family(sd_netlink_message *m, int *family) {
assert_return(m, -EINVAL);
assert_return(family, -EINVAL);
@@ -804,7 +817,13 @@ int sd_rtnl_message_get_family(sd_netlink_message *m, int *family) {
return -EOPNOTSUPP;
}
-int sd_rtnl_message_new_addrlabel(sd_netlink *rtnl, sd_netlink_message **ret, uint16_t nlmsg_type, int ifindex, int ifal_family) {
+_public_ int sd_rtnl_message_new_addrlabel(
+ sd_netlink *rtnl,
+ sd_netlink_message **ret,
+ uint16_t nlmsg_type,
+ int ifindex,
+ int ifal_family) {
+
struct ifaddrlblmsg *addrlabel;
int r;
@@ -826,7 +845,7 @@ int sd_rtnl_message_new_addrlabel(sd_netlink *rtnl, sd_netlink_message **ret, ui
return 0;
}
-int sd_rtnl_message_addrlabel_set_prefixlen(sd_netlink_message *m, unsigned char prefixlen) {
+_public_ int sd_rtnl_message_addrlabel_set_prefixlen(sd_netlink_message *m, unsigned char prefixlen) {
struct ifaddrlblmsg *addrlabel;
assert_return(m, -EINVAL);
@@ -843,7 +862,7 @@ int sd_rtnl_message_addrlabel_set_prefixlen(sd_netlink_message *m, unsigned char
return 0;
}
-int sd_rtnl_message_addrlabel_get_prefixlen(sd_netlink_message *m, unsigned char *prefixlen) {
+_public_ int sd_rtnl_message_addrlabel_get_prefixlen(sd_netlink_message *m, unsigned char *prefixlen) {
struct ifaddrlblmsg *addrlabel;
assert_return(m, -EINVAL);
@@ -857,7 +876,12 @@ int sd_rtnl_message_addrlabel_get_prefixlen(sd_netlink_message *m, unsigned char
return 0;
}
-int sd_rtnl_message_new_routing_policy_rule(sd_netlink *rtnl, sd_netlink_message **ret, uint16_t nlmsg_type, int ifal_family) {
+_public_ int sd_rtnl_message_new_routing_policy_rule(
+ sd_netlink *rtnl,
+ sd_netlink_message **ret,
+ uint16_t nlmsg_type,
+ int ifal_family) {
+
struct fib_rule_hdr *frh;
int r;
@@ -877,7 +901,7 @@ int sd_rtnl_message_new_routing_policy_rule(sd_netlink *rtnl, sd_netlink_message
return 0;
}
-int sd_rtnl_message_routing_policy_rule_set_tos(sd_netlink_message *m, uint8_t tos) {
+_public_ int sd_rtnl_message_routing_policy_rule_set_tos(sd_netlink_message *m, uint8_t tos) {
struct fib_rule_hdr *frh;
assert_return(m, -EINVAL);
@@ -891,7 +915,7 @@ int sd_rtnl_message_routing_policy_rule_set_tos(sd_netlink_message *m, uint8_t t
return 0;
}
-int sd_rtnl_message_routing_policy_rule_get_tos(sd_netlink_message *m, uint8_t *tos) {
+_public_ int sd_rtnl_message_routing_policy_rule_get_tos(sd_netlink_message *m, uint8_t *tos) {
struct fib_rule_hdr *frh;
assert_return(m, -EINVAL);
@@ -905,7 +929,7 @@ int sd_rtnl_message_routing_policy_rule_get_tos(sd_netlink_message *m, uint8_t *
return 0;
}
-int sd_rtnl_message_routing_policy_rule_set_table(sd_netlink_message *m, uint8_t table) {
+_public_ int sd_rtnl_message_routing_policy_rule_set_table(sd_netlink_message *m, uint8_t table) {
struct fib_rule_hdr *frh;
assert_return(m, -EINVAL);
@@ -919,7 +943,7 @@ int sd_rtnl_message_routing_policy_rule_set_table(sd_netlink_message *m, uint8_t
return 0;
}
-int sd_rtnl_message_routing_policy_rule_get_table(sd_netlink_message *m, uint8_t *table) {
+_public_ int sd_rtnl_message_routing_policy_rule_get_table(sd_netlink_message *m, uint8_t *table) {
struct fib_rule_hdr *frh;
assert_return(m, -EINVAL);
@@ -933,7 +957,7 @@ int sd_rtnl_message_routing_policy_rule_get_table(sd_netlink_message *m, uint8_t
return 0;
}
-int sd_rtnl_message_routing_policy_rule_set_flags(sd_netlink_message *m, uint32_t flags) {
+_public_ int sd_rtnl_message_routing_policy_rule_set_flags(sd_netlink_message *m, uint32_t flags) {
struct fib_rule_hdr *frh;
assert_return(m, -EINVAL);
@@ -946,7 +970,7 @@ int sd_rtnl_message_routing_policy_rule_set_flags(sd_netlink_message *m, uint32_
return 0;
}
-int sd_rtnl_message_routing_policy_rule_get_flags(sd_netlink_message *m, uint32_t *flags) {
+_public_ int sd_rtnl_message_routing_policy_rule_get_flags(sd_netlink_message *m, uint32_t *flags) {
struct fib_rule_hdr *frh;
assert_return(m, -EINVAL);
@@ -959,7 +983,7 @@ int sd_rtnl_message_routing_policy_rule_get_flags(sd_netlink_message *m, uint32_
return 0;
}
-int sd_rtnl_message_routing_policy_rule_set_fib_type(sd_netlink_message *m, uint8_t type) {
+_public_ int sd_rtnl_message_routing_policy_rule_set_fib_type(sd_netlink_message *m, uint8_t type) {
struct fib_rule_hdr *frh;
assert_return(m, -EINVAL);
@@ -973,7 +997,7 @@ int sd_rtnl_message_routing_policy_rule_set_fib_type(sd_netlink_message *m, uint
return 0;
}
-int sd_rtnl_message_routing_policy_rule_get_fib_type(sd_netlink_message *m, uint8_t *type) {
+_public_ int sd_rtnl_message_routing_policy_rule_get_fib_type(sd_netlink_message *m, uint8_t *type) {
struct fib_rule_hdr *frh;
assert_return(m, -EINVAL);
@@ -987,7 +1011,7 @@ int sd_rtnl_message_routing_policy_rule_get_fib_type(sd_netlink_message *m, uint
return 0;
}
-int sd_rtnl_message_routing_policy_rule_set_fib_dst_prefixlen(sd_netlink_message *m, uint8_t len) {
+_public_ int sd_rtnl_message_routing_policy_rule_set_fib_dst_prefixlen(sd_netlink_message *m, uint8_t len) {
struct fib_rule_hdr *frh;
assert_return(m, -EINVAL);
@@ -1001,7 +1025,7 @@ int sd_rtnl_message_routing_policy_rule_set_fib_dst_prefixlen(sd_netlink_message
return 0;
}
-int sd_rtnl_message_routing_policy_rule_get_fib_dst_prefixlen(sd_netlink_message *m, uint8_t *len) {
+_public_ int sd_rtnl_message_routing_policy_rule_get_fib_dst_prefixlen(sd_netlink_message *m, uint8_t *len) {
struct fib_rule_hdr *frh;
assert_return(m, -EINVAL);
@@ -1015,7 +1039,7 @@ int sd_rtnl_message_routing_policy_rule_get_fib_dst_prefixlen(sd_netlink_message
return 0;
}
-int sd_rtnl_message_routing_policy_rule_set_fib_src_prefixlen(sd_netlink_message *m, uint8_t len) {
+_public_ int sd_rtnl_message_routing_policy_rule_set_fib_src_prefixlen(sd_netlink_message *m, uint8_t len) {
struct fib_rule_hdr *frh;
assert_return(m, -EINVAL);
@@ -1029,7 +1053,7 @@ int sd_rtnl_message_routing_policy_rule_set_fib_src_prefixlen(sd_netlink_message
return 0;
}
-int sd_rtnl_message_routing_policy_rule_get_fib_src_prefixlen(sd_netlink_message *m, uint8_t *len) {
+_public_ int sd_rtnl_message_routing_policy_rule_get_fib_src_prefixlen(sd_netlink_message *m, uint8_t *len) {
struct fib_rule_hdr *frh;
assert_return(m, -EINVAL);
@@ -1043,7 +1067,7 @@ int sd_rtnl_message_routing_policy_rule_get_fib_src_prefixlen(sd_netlink_message
return 0;
}
-int sd_rtnl_message_new_traffic_control(
+_public_ int sd_rtnl_message_new_traffic_control(
sd_netlink *rtnl,
sd_netlink_message **ret,
uint16_t nlmsg_type,
@@ -1072,7 +1096,7 @@ int sd_rtnl_message_new_traffic_control(
return 0;
}
-int sd_rtnl_message_traffic_control_get_ifindex(sd_netlink_message *m, int *ret) {
+_public_ int sd_rtnl_message_traffic_control_get_ifindex(sd_netlink_message *m, int *ret) {
struct tcmsg *tcm;
assert_return(m, -EINVAL);
@@ -1086,7 +1110,7 @@ int sd_rtnl_message_traffic_control_get_ifindex(sd_netlink_message *m, int *ret)
return 0;
}
-int sd_rtnl_message_traffic_control_get_handle(sd_netlink_message *m, uint32_t *ret) {
+_public_ int sd_rtnl_message_traffic_control_get_handle(sd_netlink_message *m, uint32_t *ret) {
struct tcmsg *tcm;
assert_return(m, -EINVAL);
@@ -1100,7 +1124,7 @@ int sd_rtnl_message_traffic_control_get_handle(sd_netlink_message *m, uint32_t *
return 0;
}
-int sd_rtnl_message_traffic_control_get_parent(sd_netlink_message *m, uint32_t *ret) {
+_public_ int sd_rtnl_message_traffic_control_get_parent(sd_netlink_message *m, uint32_t *ret) {
struct tcmsg *tcm;
assert_return(m, -EINVAL);
@@ -1114,7 +1138,12 @@ int sd_rtnl_message_traffic_control_get_parent(sd_netlink_message *m, uint32_t *
return 0;
}
-int sd_rtnl_message_new_mdb(sd_netlink *rtnl, sd_netlink_message **ret, uint16_t nlmsg_type, int mdb_ifindex) {
+_public_ int sd_rtnl_message_new_mdb(
+ sd_netlink *rtnl,
+ sd_netlink_message **ret,
+ uint16_t nlmsg_type,
+ int mdb_ifindex) {
+
struct br_port_msg *bpm;
int r;
diff --git a/src/libsystemd/sd-netlink/netlink-message.c b/src/libsystemd/sd-netlink/netlink-message.c
index e846399a53..34b4c23bd5 100644
--- a/src/libsystemd/sd-netlink/netlink-message.c
+++ b/src/libsystemd/sd-netlink/netlink-message.c
@@ -113,7 +113,7 @@ int message_new_synthetic_error(sd_netlink *nl, int error, uint32_t serial, sd_n
return 0;
}
-int sd_netlink_message_request_dump(sd_netlink_message *m, int dump) {
+_public_ int sd_netlink_message_request_dump(sd_netlink_message *m, int dump) {
assert_return(m, -EINVAL);
assert_return(m->hdr, -EINVAL);
assert_return(m->protocol != NETLINK_ROUTE ||
@@ -129,7 +129,7 @@ int sd_netlink_message_request_dump(sd_netlink_message *m, int dump) {
DEFINE_TRIVIAL_REF_FUNC(sd_netlink_message, sd_netlink_message);
-sd_netlink_message *sd_netlink_message_unref(sd_netlink_message *m) {
+_public_ sd_netlink_message* sd_netlink_message_unref(sd_netlink_message *m) {
while (m && --m->n_ref == 0) {
unsigned i;
@@ -146,7 +146,7 @@ sd_netlink_message *sd_netlink_message_unref(sd_netlink_message *m) {
return NULL;
}
-int sd_netlink_message_get_type(sd_netlink_message *m, uint16_t *type) {
+_public_ int sd_netlink_message_get_type(sd_netlink_message *m, uint16_t *type) {
assert_return(m, -EINVAL);
assert_return(type != 0, -EINVAL);
@@ -155,7 +155,7 @@ int sd_netlink_message_get_type(sd_netlink_message *m, uint16_t *type) {
return 0;
}
-int sd_netlink_message_set_flags(sd_netlink_message *m, uint16_t flags) {
+_public_ int sd_netlink_message_set_flags(sd_netlink_message *m, uint16_t flags) {
assert_return(m, -EINVAL);
assert_return(flags != 0, -EINVAL);
@@ -164,7 +164,7 @@ int sd_netlink_message_set_flags(sd_netlink_message *m, uint16_t flags) {
return 0;
}
-int sd_netlink_message_is_broadcast(sd_netlink_message *m) {
+_public_ int sd_netlink_message_is_broadcast(sd_netlink_message *m) {
assert_return(m, -EINVAL);
return m->multicast_group != 0;
@@ -231,7 +231,7 @@ static int message_attribute_has_type(sd_netlink_message *m, size_t *out_size, u
return 0;
}
-int sd_netlink_message_append_string(sd_netlink_message *m, unsigned short type, const char *data) {
+_public_ int sd_netlink_message_append_string(sd_netlink_message *m, unsigned short type, const char *data) {
size_t length, size;
int r;
@@ -257,7 +257,7 @@ int sd_netlink_message_append_string(sd_netlink_message *m, unsigned short type,
return 0;
}
-int sd_netlink_message_append_strv(sd_netlink_message *m, unsigned short type, char * const *data) {
+_public_ int sd_netlink_message_append_strv(sd_netlink_message *m, unsigned short type, char * const *data) {
size_t length, size;
int r;
@@ -285,7 +285,7 @@ int sd_netlink_message_append_strv(sd_netlink_message *m, unsigned short type, c
return 0;
}
-int sd_netlink_message_append_flag(sd_netlink_message *m, unsigned short type) {
+_public_ int sd_netlink_message_append_flag(sd_netlink_message *m, unsigned short type) {
size_t size;
int r;
@@ -303,7 +303,7 @@ int sd_netlink_message_append_flag(sd_netlink_message *m, unsigned short type) {
return 0;
}
-int sd_netlink_message_append_u8(sd_netlink_message *m, unsigned short type, uint8_t data) {
+_public_ int sd_netlink_message_append_u8(sd_netlink_message *m, unsigned short type, uint8_t data) {
int r;
assert_return(m, -EINVAL);
@@ -320,7 +320,7 @@ int sd_netlink_message_append_u8(sd_netlink_message *m, unsigned short type, uin
return 0;
}
-int sd_netlink_message_append_u16(sd_netlink_message *m, unsigned short type, uint16_t data) {
+_public_ int sd_netlink_message_append_u16(sd_netlink_message *m, unsigned short type, uint16_t data) {
int r;
assert_return(m, -EINVAL);
@@ -337,7 +337,7 @@ int sd_netlink_message_append_u16(sd_netlink_message *m, unsigned short type, ui
return 0;
}
-int sd_netlink_message_append_u32(sd_netlink_message *m, unsigned short type, uint32_t data) {
+_public_ int sd_netlink_message_append_u32(sd_netlink_message *m, unsigned short type, uint32_t data) {
int r;
assert_return(m, -EINVAL);
@@ -354,7 +354,7 @@ int sd_netlink_message_append_u32(sd_netlink_message *m, unsigned short type, ui
return 0;
}
-int sd_netlink_message_append_u64(sd_netlink_message *m, unsigned short type, uint64_t data) {
+_public_ int sd_netlink_message_append_u64(sd_netlink_message *m, unsigned short type, uint64_t data) {
int r;
assert_return(m, -EINVAL);
@@ -371,7 +371,7 @@ int sd_netlink_message_append_u64(sd_netlink_message *m, unsigned short type, ui
return 0;
}
-int sd_netlink_message_append_s8(sd_netlink_message *m, unsigned short type, int8_t data) {
+_public_ int sd_netlink_message_append_s8(sd_netlink_message *m, unsigned short type, int8_t data) {
int r;
assert_return(m, -EINVAL);
@@ -388,7 +388,7 @@ int sd_netlink_message_append_s8(sd_netlink_message *m, unsigned short type, int
return 0;
}
-int sd_netlink_message_append_s16(sd_netlink_message *m, unsigned short type, int16_t data) {
+_public_ int sd_netlink_message_append_s16(sd_netlink_message *m, unsigned short type, int16_t data) {
int r;
assert_return(m, -EINVAL);
@@ -405,7 +405,7 @@ int sd_netlink_message_append_s16(sd_netlink_message *m, unsigned short type, in
return 0;
}
-int sd_netlink_message_append_s32(sd_netlink_message *m, unsigned short type, int32_t data) {
+_public_ int sd_netlink_message_append_s32(sd_netlink_message *m, unsigned short type, int32_t data) {
int r;
assert_return(m, -EINVAL);
@@ -422,7 +422,7 @@ int sd_netlink_message_append_s32(sd_netlink_message *m, unsigned short type, in
return 0;
}
-int sd_netlink_message_append_s64(sd_netlink_message *m, unsigned short type, int64_t data) {
+_public_ int sd_netlink_message_append_s64(sd_netlink_message *m, unsigned short type, int64_t data) {
int r;
assert_return(m, -EINVAL);
@@ -439,7 +439,7 @@ int sd_netlink_message_append_s64(sd_netlink_message *m, unsigned short type, in
return 0;
}
-int sd_netlink_message_append_data(sd_netlink_message *m, unsigned short type, const void *data, size_t len) {
+_public_ int sd_netlink_message_append_data(sd_netlink_message *m, unsigned short type, const void *data, size_t len) {
int r;
assert_return(m, -EINVAL);
@@ -471,11 +471,11 @@ int netlink_message_append_in_addr_union(sd_netlink_message *m, unsigned short t
return 0;
}
-int sd_netlink_message_append_in_addr(sd_netlink_message *m, unsigned short type, const struct in_addr *data) {
+_public_ int sd_netlink_message_append_in_addr(sd_netlink_message *m, unsigned short type, const struct in_addr *data) {
return netlink_message_append_in_addr_union(m, type, AF_INET, (const union in_addr_union *) data);
}
-int sd_netlink_message_append_in6_addr(sd_netlink_message *m, unsigned short type, const struct in6_addr *data) {
+_public_ int sd_netlink_message_append_in6_addr(sd_netlink_message *m, unsigned short type, const struct in6_addr *data) {
return netlink_message_append_in_addr_union(m, type, AF_INET6, (const union in_addr_union *) data);
}
@@ -498,15 +498,15 @@ int netlink_message_append_sockaddr_union(sd_netlink_message *m, unsigned short
return 0;
}
-int sd_netlink_message_append_sockaddr_in(sd_netlink_message *m, unsigned short type, const struct sockaddr_in *data) {
+_public_ int sd_netlink_message_append_sockaddr_in(sd_netlink_message *m, unsigned short type, const struct sockaddr_in *data) {
return netlink_message_append_sockaddr_union(m, type, (const union sockaddr_union *) data);
}
-int sd_netlink_message_append_sockaddr_in6(sd_netlink_message *m, unsigned short type, const struct sockaddr_in6 *data) {
+_public_ int sd_netlink_message_append_sockaddr_in6(sd_netlink_message *m, unsigned short type, const struct sockaddr_in6 *data) {
return netlink_message_append_sockaddr_union(m, type, (const union sockaddr_union *) data);
}
-int sd_netlink_message_append_ether_addr(sd_netlink_message *m, unsigned short type, const struct ether_addr *data) {
+_public_ int sd_netlink_message_append_ether_addr(sd_netlink_message *m, unsigned short type, const struct ether_addr *data) {
int r;
assert_return(m, -EINVAL);
@@ -543,7 +543,7 @@ int netlink_message_append_hw_addr(sd_netlink_message *m, unsigned short type, c
return 0;
}
-int sd_netlink_message_append_cache_info(sd_netlink_message *m, unsigned short type, const struct ifa_cacheinfo *info) {
+_public_ int sd_netlink_message_append_cache_info(sd_netlink_message *m, unsigned short type, const struct ifa_cacheinfo *info) {
int r;
assert_return(m, -EINVAL);
@@ -561,7 +561,7 @@ int sd_netlink_message_append_cache_info(sd_netlink_message *m, unsigned short t
return 0;
}
-int sd_netlink_message_open_container(sd_netlink_message *m, unsigned short type) {
+_public_ int sd_netlink_message_open_container(sd_netlink_message *m, unsigned short type) {
size_t size;
int r;
@@ -610,7 +610,7 @@ int sd_netlink_message_open_container(sd_netlink_message *m, unsigned short type
return 0;
}
-int sd_netlink_message_open_container_union(sd_netlink_message *m, unsigned short type, const char *key) {
+_public_ int sd_netlink_message_open_container_union(sd_netlink_message *m, unsigned short type, const char *key) {
const NLTypeSystemUnion *type_system_union;
int r;
@@ -645,7 +645,7 @@ int sd_netlink_message_open_container_union(sd_netlink_message *m, unsigned shor
return 0;
}
-int sd_netlink_message_close_container(sd_netlink_message *m) {
+_public_ int sd_netlink_message_close_container(sd_netlink_message *m) {
assert_return(m, -EINVAL);
assert_return(!m->sealed, -EPERM);
assert_return(m->n_containers > 0, -EINVAL);
@@ -657,7 +657,7 @@ int sd_netlink_message_close_container(sd_netlink_message *m) {
return 0;
}
-int sd_netlink_message_open_array(sd_netlink_message *m, uint16_t type) {
+_public_ int sd_netlink_message_open_array(sd_netlink_message *m, uint16_t type) {
int r;
assert_return(m, -EINVAL);
@@ -675,7 +675,7 @@ int sd_netlink_message_open_array(sd_netlink_message *m, uint16_t type) {
return 0;
}
-int sd_netlink_message_cancel_array(sd_netlink_message *m) {
+_public_ int sd_netlink_message_cancel_array(sd_netlink_message *m) {
uint32_t rta_len;
assert_return(m, -EINVAL);
@@ -731,7 +731,7 @@ static int netlink_message_read_internal(
return RTA_PAYLOAD(rta);
}
-int sd_netlink_message_read(sd_netlink_message *m, unsigned short type, size_t size, void *data) {
+_public_ int sd_netlink_message_read(sd_netlink_message *m, unsigned short type, size_t size, void *data) {
void *attr_data;
int r;
@@ -741,16 +741,16 @@ int sd_netlink_message_read(sd_netlink_message *m, unsigned short type, size_t s
if (r < 0)
return r;
- if ((size_t) r < size)
- return -EIO;
+ if ((size_t) r > size)
+ return -ENOBUFS;
if (data)
- memcpy(data, attr_data, size);
+ memcpy(data, attr_data, r);
return r;
}
-int sd_netlink_message_read_data(sd_netlink_message *m, unsigned short type, size_t *ret_size, void **ret_data) {
+_public_ int sd_netlink_message_read_data(sd_netlink_message *m, unsigned short type, size_t *ret_size, void **ret_data) {
void *attr_data;
int r;
@@ -776,7 +776,7 @@ int sd_netlink_message_read_data(sd_netlink_message *m, unsigned short type, siz
return r;
}
-int sd_netlink_message_read_data_suffix0(sd_netlink_message *m, unsigned short type, size_t *ret_size, void **ret_data) {
+_public_ int sd_netlink_message_read_data_suffix0(sd_netlink_message *m, unsigned short type, size_t *ret_size, void **ret_data) {
void *attr_data;
int r;
@@ -802,7 +802,7 @@ int sd_netlink_message_read_data_suffix0(sd_netlink_message *m, unsigned short t
return r;
}
-int sd_netlink_message_read_string_strdup(sd_netlink_message *m, unsigned short type, char **data) {
+_public_ int sd_netlink_message_read_string_strdup(sd_netlink_message *m, unsigned short type, char **data) {
void *attr_data;
int r;
@@ -829,7 +829,7 @@ int sd_netlink_message_read_string_strdup(sd_netlink_message *m, unsigned short
return 0;
}
-int sd_netlink_message_read_string(sd_netlink_message *m, unsigned short type, const char **data) {
+_public_ int sd_netlink_message_read_string(sd_netlink_message *m, unsigned short type, const char **data) {
void *attr_data;
int r;
@@ -852,7 +852,7 @@ int sd_netlink_message_read_string(sd_netlink_message *m, unsigned short type, c
return 0;
}
-int sd_netlink_message_read_u8(sd_netlink_message *m, unsigned short type, uint8_t *data) {
+_public_ int sd_netlink_message_read_u8(sd_netlink_message *m, unsigned short type, uint8_t *data) {
void *attr_data;
int r;
@@ -875,7 +875,7 @@ int sd_netlink_message_read_u8(sd_netlink_message *m, unsigned short type, uint8
return 0;
}
-int sd_netlink_message_read_u16(sd_netlink_message *m, unsigned short type, uint16_t *data) {
+_public_ int sd_netlink_message_read_u16(sd_netlink_message *m, unsigned short type, uint16_t *data) {
void *attr_data;
bool net_byteorder;
int r;
@@ -903,7 +903,7 @@ int sd_netlink_message_read_u16(sd_netlink_message *m, unsigned short type, uint
return 0;
}
-int sd_netlink_message_read_u32(sd_netlink_message *m, unsigned short type, uint32_t *data) {
+_public_ int sd_netlink_message_read_u32(sd_netlink_message *m, unsigned short type, uint32_t *data) {
void *attr_data;
bool net_byteorder;
int r;
@@ -931,7 +931,7 @@ int sd_netlink_message_read_u32(sd_netlink_message *m, unsigned short type, uint
return 0;
}
-int sd_netlink_message_read_ether_addr(sd_netlink_message *m, unsigned short type, struct ether_addr *data) {
+_public_ int sd_netlink_message_read_ether_addr(sd_netlink_message *m, unsigned short type, struct ether_addr *data) {
void *attr_data;
int r;
@@ -979,7 +979,7 @@ int netlink_message_read_hw_addr(sd_netlink_message *m, unsigned short type, str
return 0;
}
-int sd_netlink_message_read_cache_info(sd_netlink_message *m, unsigned short type, struct ifa_cacheinfo *info) {
+_public_ int sd_netlink_message_read_cache_info(sd_netlink_message *m, unsigned short type, struct ifa_cacheinfo *info) {
void *attr_data;
int r;
@@ -1026,7 +1026,7 @@ int netlink_message_read_in_addr_union(sd_netlink_message *m, unsigned short typ
return 0;
}
-int sd_netlink_message_read_in_addr(sd_netlink_message *m, unsigned short type, struct in_addr *data) {
+_public_ int sd_netlink_message_read_in_addr(sd_netlink_message *m, unsigned short type, struct in_addr *data) {
union in_addr_union u;
int r;
@@ -1037,7 +1037,7 @@ int sd_netlink_message_read_in_addr(sd_netlink_message *m, unsigned short type,
return r;
}
-int sd_netlink_message_read_in6_addr(sd_netlink_message *m, unsigned short type, struct in6_addr *data) {
+_public_ int sd_netlink_message_read_in6_addr(sd_netlink_message *m, unsigned short type, struct in6_addr *data) {
union in_addr_union u;
int r;
@@ -1048,7 +1048,7 @@ int sd_netlink_message_read_in6_addr(sd_netlink_message *m, unsigned short type,
return r;
}
-int sd_netlink_message_has_flag(sd_netlink_message *m, unsigned short type) {
+_public_ int sd_netlink_message_has_flag(sd_netlink_message *m, unsigned short type) {
void *attr_data;
int r;
@@ -1069,7 +1069,7 @@ int sd_netlink_message_has_flag(sd_netlink_message *m, unsigned short type) {
return 1;
}
-int sd_netlink_message_read_strv(sd_netlink_message *m, unsigned short container_type, unsigned short type_id, char ***ret) {
+_public_ int sd_netlink_message_read_strv(sd_netlink_message *m, unsigned short container_type, unsigned short type_id, char ***ret) {
_cleanup_strv_free_ char **s = NULL;
const NLTypeSystem *type_system;
const NLType *nl_type;
@@ -1166,7 +1166,7 @@ static int netlink_container_parse(
return 0;
}
-int sd_netlink_message_enter_container(sd_netlink_message *m, unsigned short type_id) {
+_public_ int sd_netlink_message_enter_container(sd_netlink_message *m, unsigned short type_id) {
const NLType *nl_type;
const NLTypeSystem *type_system;
void *container;
@@ -1261,7 +1261,7 @@ int sd_netlink_message_enter_container(sd_netlink_message *m, unsigned short typ
return 0;
}
-int sd_netlink_message_enter_array(sd_netlink_message *m, unsigned short type_id) {
+_public_ int sd_netlink_message_enter_array(sd_netlink_message *m, unsigned short type_id) {
void *container;
size_t size;
int r;
@@ -1290,7 +1290,7 @@ int sd_netlink_message_enter_array(sd_netlink_message *m, unsigned short type_id
return 0;
}
-int sd_netlink_message_exit_container(sd_netlink_message *m) {
+_public_ int sd_netlink_message_exit_container(sd_netlink_message *m) {
assert_return(m, -EINVAL);
assert_return(m->sealed, -EINVAL);
assert_return(m->n_containers > 0, -EINVAL);
@@ -1304,7 +1304,7 @@ int sd_netlink_message_exit_container(sd_netlink_message *m) {
return 0;
}
-int sd_netlink_message_get_max_attribute(sd_netlink_message *m, uint16_t *ret) {
+_public_ int sd_netlink_message_get_max_attribute(sd_netlink_message *m, uint16_t *ret) {
assert_return(m, -EINVAL);
assert_return(m->sealed, -EINVAL);
assert_return(ret, -EINVAL);
@@ -1313,21 +1313,14 @@ int sd_netlink_message_get_max_attribute(sd_netlink_message *m, uint16_t *ret) {
return 0;
}
-uint32_t message_get_serial(sd_netlink_message *m) {
- assert(m);
- assert(m->hdr);
-
- return m->hdr->nlmsg_seq;
-}
-
-int sd_netlink_message_is_error(sd_netlink_message *m) {
+_public_ int sd_netlink_message_is_error(sd_netlink_message *m) {
assert_return(m, 0);
assert_return(m->hdr, 0);
return m->hdr->nlmsg_type == NLMSG_ERROR;
}
-int sd_netlink_message_get_errno(sd_netlink_message *m) {
+_public_ int sd_netlink_message_get_errno(sd_netlink_message *m) {
struct nlmsgerr *err;
assert_return(m, -EINVAL);
@@ -1362,7 +1355,7 @@ static int netlink_message_parse_error(sd_netlink_message *m) {
NLMSG_PAYLOAD(m->hdr, hlen));
}
-int sd_netlink_message_rewind(sd_netlink_message *m, sd_netlink *nl) {
+_public_ int sd_netlink_message_rewind(sd_netlink_message *m, sd_netlink *nl) {
size_t size;
int r;
diff --git a/src/libsystemd/sd-netlink/netlink-socket.c b/src/libsystemd/sd-netlink/netlink-socket.c
index 7197cb4daa..70f5b85a54 100644
--- a/src/libsystemd/sd-netlink/netlink-socket.c
+++ b/src/libsystemd/sd-netlink/netlink-socket.c
@@ -17,16 +17,6 @@
#include "socket-util.h"
#include "util.h"
-int socket_open(int family) {
- int fd;
-
- fd = socket(AF_NETLINK, SOCK_RAW|SOCK_CLOEXEC|SOCK_NONBLOCK, family);
- if (fd < 0)
- return -errno;
-
- return fd_move_above_stdio(fd);
-}
-
static int broadcast_groups_get(sd_netlink *nl) {
_cleanup_free_ uint32_t *groups = NULL;
socklen_t len = 0, old_len;
@@ -192,32 +182,6 @@ int socket_write_message(sd_netlink *nl, sd_netlink_message *m) {
return k;
}
-int socket_writev_message(sd_netlink *nl, sd_netlink_message **m, size_t msgcount) {
- _cleanup_free_ struct iovec *iovs = NULL;
- ssize_t k;
-
- assert(nl);
- assert(m);
- assert(msgcount > 0);
-
- iovs = new(struct iovec, msgcount);
- if (!iovs)
- return -ENOMEM;
-
- for (size_t i = 0; i < msgcount; i++) {
- assert(m[i]->hdr);
- assert(m[i]->hdr->nlmsg_len > 0);
-
- iovs[i] = IOVEC_MAKE(m[i]->hdr, m[i]->hdr->nlmsg_len);
- }
-
- k = writev(nl->fd, iovs, msgcount);
- if (k < 0)
- return -errno;
-
- return k;
-}
-
static int socket_recv_message(int fd, struct iovec *iov, uint32_t *ret_mcast_group, bool peek) {
union sockaddr_union sender;
CMSG_BUFFER_TYPE(CMSG_SPACE(sizeof(struct nl_pktinfo))) control;
diff --git a/src/libsystemd/sd-netlink/netlink-util.c b/src/libsystemd/sd-netlink/netlink-util.c
index ce2c4f3b54..8e05161558 100644
--- a/src/libsystemd/sd-netlink/netlink-util.c
+++ b/src/libsystemd/sd-netlink/netlink-util.c
@@ -2,11 +2,14 @@
#include "sd-netlink.h"
+#include "fd-util.h"
#include "format-util.h"
+#include "io-util.h"
#include "memory-util.h"
#include "netlink-internal.h"
#include "netlink-util.h"
#include "parse-util.h"
+#include "process-util.h"
#include "strv.h"
int rtnl_set_link_name(sd_netlink **rtnl, int ifindex, const char *name) {
@@ -628,3 +631,121 @@ int rtattr_read_nexthop(const struct rtnexthop *rtnh, size_t size, int family, O
*ret = TAKE_PTR(set);
return 0;
}
+
+bool netlink_pid_changed(sd_netlink *nl) {
+ /* We don't support people creating an nl connection and
+ * keeping it around over a fork(). Let's complain. */
+ return ASSERT_PTR(nl)->original_pid != getpid_cached();
+}
+
+static int socket_open(int family) {
+ int fd;
+
+ fd = socket(AF_NETLINK, SOCK_RAW|SOCK_CLOEXEC|SOCK_NONBLOCK, family);
+ if (fd < 0)
+ return -errno;
+
+ return fd_move_above_stdio(fd);
+}
+
+int netlink_open_family(sd_netlink **ret, int family) {
+ _cleanup_close_ int fd = -1;
+ int r;
+
+ fd = socket_open(family);
+ if (fd < 0)
+ return fd;
+
+ r = sd_netlink_open_fd(ret, fd);
+ if (r < 0)
+ return r;
+ TAKE_FD(fd);
+
+ return 0;
+}
+
+void netlink_seal_message(sd_netlink *nl, sd_netlink_message *m) {
+ uint32_t picked;
+
+ assert(nl);
+ assert(!netlink_pid_changed(nl));
+ assert(m);
+ assert(m->hdr);
+
+ /* Avoid collisions with outstanding requests */
+ do {
+ picked = nl->serial;
+
+ /* Don't use seq == 0, as that is used for broadcasts, so we would get confused by replies to
+ such messages */
+ nl->serial = nl->serial == UINT32_MAX ? 1 : nl->serial + 1;
+
+ } while (hashmap_contains(nl->reply_callbacks, UINT32_TO_PTR(picked)));
+
+ m->hdr->nlmsg_seq = picked;
+ message_seal(m);
+}
+
+static int socket_writev_message(sd_netlink *nl, sd_netlink_message **m, size_t msgcount) {
+ _cleanup_free_ struct iovec *iovs = NULL;
+ ssize_t k;
+
+ assert(nl);
+ assert(m);
+ assert(msgcount > 0);
+
+ iovs = new(struct iovec, msgcount);
+ if (!iovs)
+ return -ENOMEM;
+
+ for (size_t i = 0; i < msgcount; i++) {
+ assert(m[i]->hdr);
+ assert(m[i]->hdr->nlmsg_len > 0);
+
+ iovs[i] = IOVEC_MAKE(m[i]->hdr, m[i]->hdr->nlmsg_len);
+ }
+
+ k = writev(nl->fd, iovs, msgcount);
+ if (k < 0)
+ return -errno;
+
+ return k;
+}
+
+int sd_netlink_sendv(
+ sd_netlink *nl,
+ sd_netlink_message **messages,
+ size_t msgcount,
+ uint32_t **ret_serial) {
+
+ _cleanup_free_ uint32_t *serials = NULL;
+ int r;
+
+ assert_return(nl, -EINVAL);
+ assert_return(!netlink_pid_changed(nl), -ECHILD);
+ assert_return(messages, -EINVAL);
+ assert_return(msgcount > 0, -EINVAL);
+
+ if (ret_serial) {
+ serials = new(uint32_t, msgcount);
+ if (!serials)
+ return -ENOMEM;
+ }
+
+ for (size_t i = 0; i < msgcount; i++) {
+ assert_return(!messages[i]->sealed, -EPERM);
+
+ netlink_seal_message(nl, messages[i]);
+ if (serials)
+ serials[i] = message_get_serial(messages[i]);
+ }
+
+ r = socket_writev_message(nl, messages, msgcount);
+ if (r < 0)
+ return r;
+
+ if (ret_serial)
+ *ret_serial = TAKE_PTR(serials);
+
+ return r;
+}
diff --git a/src/libsystemd/sd-netlink/netlink-util.h b/src/libsystemd/sd-netlink/netlink-util.h
index fee450cdc2..606d14eeaf 100644
--- a/src/libsystemd/sd-netlink/netlink-util.h
+++ b/src/libsystemd/sd-netlink/netlink-util.h
@@ -142,3 +142,8 @@ void rtattr_append_attribute_internal(struct rtattr *rta, unsigned short type, c
int rtattr_append_attribute(struct rtattr **rta, unsigned short type, const void *data, size_t data_length);
int rtattr_read_nexthop(const struct rtnexthop *rtnh, size_t size, int family, OrderedSet **ret);
+
+void netlink_seal_message(sd_netlink *nl, sd_netlink_message *m);
+
+/* TODO: to be exported later */
+int sd_netlink_sendv(sd_netlink *nl, sd_netlink_message **messages, size_t msgcnt, uint32_t **ret_serial);
diff --git a/src/libsystemd/sd-netlink/sd-netlink.c b/src/libsystemd/sd-netlink/sd-netlink.c
index e23e2cc163..5cb831cb4a 100644
--- a/src/libsystemd/sd-netlink/sd-netlink.c
+++ b/src/libsystemd/sd-netlink/sd-netlink.c
@@ -12,6 +12,7 @@
#include "netlink-genl.h"
#include "netlink-internal.h"
#include "netlink-slot.h"
+#include "netlink-util.h"
#include "process-util.h"
#include "socket-util.h"
#include "string-util.h"
@@ -68,7 +69,7 @@ static int netlink_new(sd_netlink **ret) {
return 0;
}
-int sd_netlink_new_from_fd(sd_netlink **ret, int fd) {
+_public_ int sd_netlink_new_from_fd(sd_netlink **ret, int fd) {
_cleanup_(sd_netlink_unrefp) sd_netlink *nl = NULL;
socklen_t addrlen;
int r;
@@ -93,7 +94,7 @@ int sd_netlink_new_from_fd(sd_netlink **ret, int fd) {
return 0;
}
-int sd_netlink_open_fd(sd_netlink **ret, int fd) {
+_public_ int sd_netlink_open_fd(sd_netlink **ret, int fd) {
_cleanup_(sd_netlink_unrefp) sd_netlink *nl = NULL;
int r, protocol;
@@ -131,40 +132,15 @@ int sd_netlink_open_fd(sd_netlink **ret, int fd) {
return 0;
}
-int netlink_open_family(sd_netlink **ret, int family) {
- _cleanup_close_ int fd = -1;
- int r;
-
- fd = socket_open(family);
- if (fd < 0)
- return fd;
-
- r = sd_netlink_open_fd(ret, fd);
- if (r < 0)
- return r;
- TAKE_FD(fd);
-
- return 0;
-}
-
-int sd_netlink_open(sd_netlink **ret) {
+_public_ int sd_netlink_open(sd_netlink **ret) {
return netlink_open_family(ret, NETLINK_ROUTE);
}
-bool netlink_pid_changed(sd_netlink *nl) {
- assert(nl);
-
- /* We don't support people creating an nl connection and
- * keeping it around over a fork(). Let's complain. */
-
- return nl->original_pid != getpid_cached();
-}
-
-int sd_netlink_inc_rcvbuf(sd_netlink *nl, size_t size) {
+_public_ int sd_netlink_increase_rxbuf(sd_netlink *nl, size_t size) {
assert_return(nl, -EINVAL);
assert_return(!netlink_pid_changed(nl), -ECHILD);
- return fd_inc_rcvbuf(nl->fd, size);
+ return fd_increase_rxbuf(nl->fd, size);
}
static sd_netlink *netlink_free(sd_netlink *nl) {
@@ -204,29 +180,7 @@ static sd_netlink *netlink_free(sd_netlink *nl) {
DEFINE_TRIVIAL_REF_UNREF_FUNC(sd_netlink, sd_netlink, netlink_free);
-static void netlink_seal_message(sd_netlink *nl, sd_netlink_message *m) {
- uint32_t picked;
-
- assert(nl);
- assert(!netlink_pid_changed(nl));
- assert(m);
- assert(m->hdr);
-
- /* Avoid collisions with outstanding requests */
- do {
- picked = nl->serial;
-
- /* Don't use seq == 0, as that is used for broadcasts, so we would get confused by replies to
- such messages */
- nl->serial = nl->serial == UINT32_MAX ? 1 : nl->serial + 1;
-
- } while (hashmap_contains(nl->reply_callbacks, UINT32_TO_PTR(picked)));
-
- m->hdr->nlmsg_seq = picked;
- message_seal(m);
-}
-
-int sd_netlink_send(
+_public_ int sd_netlink_send(
sd_netlink *nl,
sd_netlink_message *message,
uint32_t *serial) {
@@ -250,44 +204,6 @@ int sd_netlink_send(
return 1;
}
-int sd_netlink_sendv(
- sd_netlink *nl,
- sd_netlink_message **messages,
- size_t msgcount,
- uint32_t **ret_serial) {
-
- _cleanup_free_ uint32_t *serials = NULL;
- int r;
-
- assert_return(nl, -EINVAL);
- assert_return(!netlink_pid_changed(nl), -ECHILD);
- assert_return(messages, -EINVAL);
- assert_return(msgcount > 0, -EINVAL);
-
- if (ret_serial) {
- serials = new(uint32_t, msgcount);
- if (!serials)
- return -ENOMEM;
- }
-
- for (size_t i = 0; i < msgcount; i++) {
- assert_return(!messages[i]->sealed, -EPERM);
-
- netlink_seal_message(nl, messages[i]);
- if (serials)
- serials[i] = message_get_serial(messages[i]);
- }
-
- r = socket_writev_message(nl, messages, msgcount);
- if (r < 0)
- return r;
-
- if (ret_serial)
- *ret_serial = TAKE_PTR(serials);
-
- return r;
-}
-
int netlink_rqueue_make_room(sd_netlink *nl) {
assert(nl);
@@ -594,7 +510,7 @@ static int timeout_compare(const void *a, const void *b) {
return CMP(x->timeout, y->timeout);
}
-int sd_netlink_call_async(
+_public_ int sd_netlink_call_async(
sd_netlink *nl,
sd_netlink_slot **ret_slot,
sd_netlink_message *m,
@@ -659,7 +575,7 @@ int sd_netlink_call_async(
return k;
}
-int sd_netlink_read(
+_public_ int sd_netlink_read(
sd_netlink *nl,
uint32_t serial,
uint64_t usec,
@@ -736,7 +652,7 @@ int sd_netlink_read(
}
}
-int sd_netlink_call(
+_public_ int sd_netlink_call(
sd_netlink *nl,
sd_netlink_message *message,
uint64_t usec,
@@ -756,14 +672,14 @@ int sd_netlink_call(
return sd_netlink_read(nl, serial, usec, ret);
}
-int sd_netlink_get_events(sd_netlink *nl) {
+_public_ int sd_netlink_get_events(sd_netlink *nl) {
assert_return(nl, -EINVAL);
assert_return(!netlink_pid_changed(nl), -ECHILD);
return nl->rqueue_size == 0 ? POLLIN : 0;
}
-int sd_netlink_get_timeout(sd_netlink *nl, uint64_t *timeout_usec) {
+_public_ int sd_netlink_get_timeout(sd_netlink *nl, uint64_t *timeout_usec) {
struct reply_callback *c;
assert_return(nl, -EINVAL);
@@ -846,7 +762,7 @@ static int prepare_callback(sd_event_source *s, void *userdata) {
return 1;
}
-int sd_netlink_attach_event(sd_netlink *nl, sd_event *event, int64_t priority) {
+_public_ int sd_netlink_attach_event(sd_netlink *nl, sd_event *event, int64_t priority) {
int r;
assert_return(nl, -EINVAL);
@@ -898,7 +814,7 @@ fail:
return r;
}
-int sd_netlink_detach_event(sd_netlink *nl) {
+_public_ int sd_netlink_detach_event(sd_netlink *nl) {
assert_return(nl, -EINVAL);
assert_return(nl->event, -ENXIO);
@@ -961,7 +877,7 @@ int netlink_add_match_internal(
return 0;
}
-int sd_netlink_add_match(
+_public_ int sd_netlink_add_match(
sd_netlink *rtnl,
sd_netlink_slot **ret_slot,
uint16_t type,
@@ -1031,7 +947,7 @@ int sd_netlink_add_match(
destroy_callback, userdata, description);
}
-int sd_netlink_attach_filter(sd_netlink *nl, size_t len, struct sock_filter *filter) {
+_public_ int sd_netlink_attach_filter(sd_netlink *nl, size_t len, struct sock_filter *filter) {
assert_return(nl, -EINVAL);
assert_return(len == 0 || filter, -EINVAL);
diff --git a/src/libsystemd/sd-resolve/sd-resolve.c b/src/libsystemd/sd-resolve/sd-resolve.c
index fdc09ff20f..e4d43e7558 100644
--- a/src/libsystemd/sd-resolve/sd-resolve.c
+++ b/src/libsystemd/sd-resolve/sd-resolve.c
@@ -506,9 +506,9 @@ _public_ int sd_resolve_new(sd_resolve **ret) {
resolve->fds[i] = fd_move_above_stdio(resolve->fds[i]);
(void) fd_inc_sndbuf(resolve->fds[REQUEST_SEND_FD], QUERIES_MAX * BUFSIZE);
- (void) fd_inc_rcvbuf(resolve->fds[REQUEST_RECV_FD], QUERIES_MAX * BUFSIZE);
+ (void) fd_increase_rxbuf(resolve->fds[REQUEST_RECV_FD], QUERIES_MAX * BUFSIZE);
(void) fd_inc_sndbuf(resolve->fds[RESPONSE_SEND_FD], QUERIES_MAX * BUFSIZE);
- (void) fd_inc_rcvbuf(resolve->fds[RESPONSE_RECV_FD], QUERIES_MAX * BUFSIZE);
+ (void) fd_increase_rxbuf(resolve->fds[RESPONSE_RECV_FD], QUERIES_MAX * BUFSIZE);
(void) fd_nonblock(resolve->fds[RESPONSE_RECV_FD], true);
diff --git a/src/libsystemd/sd-utf8/sd-utf8.c b/src/libsystemd/sd-utf8/sd-utf8.c
deleted file mode 100644
index 82fa125ade..0000000000
--- a/src/libsystemd/sd-utf8/sd-utf8.c
+++ /dev/null
@@ -1,18 +0,0 @@
-/* SPDX-License-Identifier: LGPL-2.1-or-later */
-
-#include "sd-utf8.h"
-
-#include "utf8.h"
-#include "util.h"
-
-_public_ const char *sd_utf8_is_valid(const char *s) {
- assert_return(s, NULL);
-
- return utf8_is_valid(s);
-}
-
-_public_ const char *sd_ascii_is_valid(const char *s) {
- assert_return(s, NULL);
-
- return ascii_is_valid(s);
-}