struct state {
unsigned n_messages;
int rcode;
- const char *title;
+ const char *error_message;
+ const char *success_message;
};
static int generic_handler(sd_netlink *rtnl, sd_netlink_message *m, void *userdata) {
struct state *s = userdata;
+ int r;
assert(s);
assert(s->n_messages > 0);
s->n_messages--;
errno = 0;
- log_debug_errno(sd_netlink_message_get_errno(m), "Failed to %s: %m", s->title);
- s->rcode = sd_netlink_message_get_errno(m);
+ r = sd_netlink_message_get_errno(m);
+ if (r < 0)
+ log_debug_errno(r, "%s: %m", s->error_message);
+ else
+ log_debug("%s", s->success_message);
+ s->rcode = r;
return 0;
}
int loopback_setup(void) {
_cleanup_(sd_netlink_unrefp) sd_netlink *rtnl = NULL;
- struct state state_4 = { .title = "add address 127.0.0.1 to loopback interface" },
- state_6 = { .title = "add address ::1 to loopback interface"},
- state_up = { .title = "bring loopback interface up" };
+ struct state state_4 = {
+ .error_message = "Failed to add address 127.0.0.1 to loopback interface",
+ .success_message = "Successfully added address 127.0.0.1 to loopback interface",
+ }, state_6 = {
+ .error_message = "Failed to add address ::1 to loopback interface",
+ .success_message = "Successfully added address ::1 to loopback interface",
+ }, state_up = {
+ .error_message = "Failed to bring loopback interface up",
+ .success_message = "Successfully brought loopback interface up",
+ };
int r;
r = sd_netlink_open(&rtnl);