38 lines
533 B
C
38 lines
533 B
C
#include "netlink.h"
|
|
|
|
#include <stdio.h>
|
|
|
|
static struct mnl_socket *nl;
|
|
static uint32_t seq;
|
|
|
|
bool nl_init(void) {
|
|
nl = mnl_socket_open(NETLINK_ROUTE);
|
|
if (nl == NULL) {
|
|
perror("mnl_socket_open");
|
|
return false;
|
|
}
|
|
|
|
if (mnl_socket_bind(nl, 0, MNL_SOCKET_AUTOPID) < 0) {
|
|
perror("mnl_socket_bind");
|
|
nl_deinit();
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
void nl_deinit(void) {
|
|
if (!nl)
|
|
return;
|
|
|
|
mnl_socket_close(nl);
|
|
nl = NULL;
|
|
}
|
|
|
|
struct mnl_socket * nl_socket(void) {
|
|
return nl;
|
|
}
|
|
|
|
uint32_t nl_seq(void) {
|
|
return seq++;
|
|
}
|