diff options
authorPablo Neira Ayuso <>2015-04-06 13:57:10 +0200
committerPablo Neira Ayuso <>2015-04-09 13:50:00 +0200
commit628122466c32e7f1795c9754a46e6b6b91e71aa5 (patch)
parentcd861145b95a1d0fc9b716e806fed8935df56adc (diff)
src: introduce netlink_init_error()
Based on the existing netlink_open_error(), but indicate file and line where the error happens. This will help us to diagnose what is going wrong when users can back to us to report problems. Signed-off-by: Pablo Neira Ayuso <>
2 files changed, 8 insertions, 5 deletions
diff --git a/include/netlink.h b/include/netlink.h
index c1ff9c60..9f24ea5e 100644
--- a/include/netlink.h
+++ b/include/netlink.h
@@ -145,7 +145,9 @@ extern void netlink_restart(void);
extern void __noreturn __netlink_abi_error(const char *file, int line, const char *reason);
extern int netlink_io_error(struct netlink_ctx *ctx,
const struct location *loc, const char *fmt, ...);
-extern void netlink_open_error(void) __noreturn;
+#define netlink_init_error() \
+ __netlink_init_error(__FILE__, __LINE__, strerror(errno));
+extern void __noreturn __netlink_init_error(const char *file, int line, const char *reason);
extern int netlink_flush_ruleset(struct netlink_ctx *ctx,
const struct handle *h,
diff --git a/src/netlink.c b/src/netlink.c
index c118502a..343d8bea 100644
--- a/src/netlink.c
+++ b/src/netlink.c
@@ -52,7 +52,7 @@ static struct mnl_socket *nfsock_open(void)
s = mnl_socket_open(NETLINK_NETFILTER);
if (s == NULL)
- netlink_open_error();
+ netlink_init_error();
return s;
@@ -110,10 +110,11 @@ int netlink_io_error(struct netlink_ctx *ctx, const struct location *loc,
return -1;
-void __noreturn netlink_open_error(void)
+void __noreturn __netlink_init_error(const char *filename, int line,
+ const char *reason)
- fprintf(stderr, "E: Unable to open Netlink socket: %s\n",
- strerror(errno));
+ fprintf(stderr, "%s:%d: Unable to initialize Netlink socket: %s\n",
+ filename, line, reason);