return sock;
}
+static bool
+create_raw_event_socket(struct event_socket *ev, int protocol,
+ uloop_fd_handler cb)
+{
+ ev->sock = create_socket(protocol);
+ if (!ev->sock)
+ return false;
+
+ ev->uloop.fd = nl_socket_get_fd(ev->sock);
+ ev->uloop.cb = handler_nl_event;
+ uloop_fd_add(&ev->uloop, ULOOP_READ | ULOOP_EDGE_TRIGGER);
+ return true;
+}
+
static bool
create_event_socket(struct event_socket *ev, int protocol,
int (*cb)(struct nl_msg *msg, void *arg))
nl_cb_set(ev->cb, NL_CB_VALID, NL_CB_CUSTOM, cb, NULL);
- ev->sock = create_socket(protocol);
- if (!ev->sock)
- return false;
-
- ev->uloop.fd = nl_socket_get_fd(ev->sock);
- ev->uloop.cb = handler_nl_event;
- uloop_fd_add(&ev->uloop, ULOOP_READ | ULOOP_EDGE_TRIGGER);
- return true;
+ return create_raw_event_socket(ev, protocol, handler_nl_event);
}
int system_init(void)