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,
s = mnl_socket_open(NETLINK_NETFILTER);
if (s == NULL)
- netlink_open_error();
+ netlink_init_error();
return s;
}
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);
exit(NFT_EXIT_NONL);
}