From 5167b82ceb4d778e2ca069525d5bee12c233fb15 Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Thu, 22 Mar 2007 13:41:40 -0700 Subject: [PATCH] netlink shouldn't kill daemon A netlink error shouldn't cause silent death of daemon. It doesn't work well if library calls exit(). --- libnetlink.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/libnetlink.c b/libnetlink.c index 089b99a..2fb76b2 100644 --- a/libnetlink.c +++ b/libnetlink.c @@ -227,7 +227,7 @@ int rtnl_dump_filter(struct rtnl_handle *rth, } if (status) { fprintf(stderr, "!!!Remnant of size %d\n", status); - exit(1); + return -1; } } } @@ -290,7 +290,7 @@ int rtnl_talk(struct rtnl_handle *rtnl, struct nlmsghdr *n, pid_t peer, if (msg.msg_namelen != sizeof(nladdr)) { fprintf(stderr, "sender address length == %d\n", msg.msg_namelen); - exit(1); + return -1; } for (h = (struct nlmsghdr *)buf; status >= sizeof(*h);) { int err; @@ -304,7 +304,7 @@ int rtnl_talk(struct rtnl_handle *rtnl, struct nlmsghdr *n, pid_t peer, } fprintf(stderr, "!!!malformed message: len=%d\n", len); - exit(1); + return -1; } if (nladdr.nl_pid != peer || @@ -355,7 +355,7 @@ int rtnl_talk(struct rtnl_handle *rtnl, struct nlmsghdr *n, pid_t peer, } if (status) { fprintf(stderr, "!!!Remnant of size %d\n", status); - exit(1); + return -1; } } } @@ -399,7 +399,7 @@ int rtnl_listen(struct rtnl_handle *rtnl, rtnl_filter_t handler, void *jarg) if (msg.msg_namelen != sizeof(nladdr)) { fprintf(stderr, "Sender address length == %d\n", msg.msg_namelen); - exit(1); + return -1; } for (h = (struct nlmsghdr *)buf; status >= sizeof(*h);) { int err; @@ -413,7 +413,7 @@ int rtnl_listen(struct rtnl_handle *rtnl, rtnl_filter_t handler, void *jarg) } fprintf(stderr, "!!!malformed message: len=%d\n", len); - exit(1); + return -1; } err = handler(&nladdr, h, jarg); @@ -431,7 +431,7 @@ int rtnl_listen(struct rtnl_handle *rtnl, rtnl_filter_t handler, void *jarg) } if (status) { fprintf(stderr, "!!!Remnant of size %d\n", status); - exit(1); + return -1; } } } -- 2.39.2