From: Yu Watanabe Date: Sun, 19 Jul 2020 03:07:27 +0000 (+0900) Subject: util: introduce bus_message_read_ifindex() X-Git-Tag: v246-rc2~32^2~3 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3dd95ab6c5366bd44f9a146afcab86d0d2a54102;p=thirdparty%2Fsystemd.git util: introduce bus_message_read_ifindex() --- diff --git a/src/shared/bus-message-util.c b/src/shared/bus-message-util.c index 4151b91aec7..85e1e98e19a 100644 --- a/src/shared/bus-message-util.c +++ b/src/shared/bus-message-util.c @@ -4,6 +4,26 @@ #include "resolve-util.h" +int bus_message_read_ifindex(sd_bus_message *message, sd_bus_error *error, int *ret) { + int ifindex, r; + + assert(message); + assert(ret); + + assert_cc(sizeof(int) == sizeof(int32_t)); + + r = sd_bus_message_read(message, "i", &ifindex); + if (r < 0) + return r; + + if (ifindex <= 0) + return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid interface index"); + + *ret = ifindex; + + return 0; +} + int bus_message_read_family(sd_bus_message *message, sd_bus_error *error, int *ret) { int family, r; diff --git a/src/shared/bus-message-util.h b/src/shared/bus-message-util.h index 90b78f415f5..98ad035ee47 100644 --- a/src/shared/bus-message-util.h +++ b/src/shared/bus-message-util.h @@ -6,6 +6,7 @@ #include "in-addr-util.h" #include "socket-netlink.h" +int bus_message_read_ifindex(sd_bus_message *message, sd_bus_error *error, int *ret); int bus_message_read_family(sd_bus_message *message, sd_bus_error *error, int *ret); int bus_message_read_in_addr_auto(sd_bus_message *message, sd_bus_error *error, int *ret_family, union in_addr_union *ret_addr);