projects
/
project
/
netifd.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
e19e980
)
add a function for creating a raw event socket that does not use genl or rtnl
author
Felix Fietkau
<nbd@openwrt.org>
Sun, 23 Oct 2011 14:04:50 +0000
(16:04 +0200)
committer
Felix Fietkau
<nbd@openwrt.org>
Sun, 23 Oct 2011 14:04:50 +0000
(16:04 +0200)
system-linux.c
patch
|
blob
|
history
diff --git
a/system-linux.c
b/system-linux.c
index
0308e6f
..
57a4617
100644
(file)
--- a/
system-linux.c
+++ b/
system-linux.c
@@
-58,6
+58,20
@@
create_socket(int protocol)
}
static bool
}
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))
{
create_event_socket(struct event_socket *ev, int protocol,
int (*cb)(struct nl_msg *msg, void *arg))
{
@@
-68,14
+82,7
@@
create_event_socket(struct event_socket *ev, int protocol,
nl_cb_set(ev->cb, NL_CB_VALID, NL_CB_CUSTOM, cb, NULL);
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)
}
int system_init(void)