chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
3f42446
)
sd-rtnl: process - only apply matches to broadcast messages
author
Tom Gundersen
<teg@jklm.no>
Fri, 13 Mar 2015 15:13:24 +0000
(16:13 +0100)
committer
Tom Gundersen
<teg@jklm.no>
Fri, 13 Mar 2015 15:13:24 +0000
(16:13 +0100)
src/libsystemd/sd-rtnl/sd-rtnl.c
patch
|
blob
|
history
diff --git
a/src/libsystemd/sd-rtnl/sd-rtnl.c
b/src/libsystemd/sd-rtnl/sd-rtnl.c
index c7a36b9efbcbf68252dd89f54efa1a289ccb2004..50162c3ee9267a175480573f484be605fdf920e0 100644
(file)
--- a/
src/libsystemd/sd-rtnl/sd-rtnl.c
+++ b/
src/libsystemd/sd-rtnl/sd-rtnl.c
@@
-428,9
+428,6
@@
static int process_reply(sd_rtnl *rtnl, sd_rtnl_message *m) {
assert(rtnl);
assert(m);
assert(rtnl);
assert(m);
- if (sd_rtnl_message_is_broadcast(m))
- return 0;
-
serial = rtnl_message_get_serial(m);
c = hashmap_remove(rtnl->reply_callbacks, &serial);
if (!c)
serial = rtnl_message_get_serial(m);
c = hashmap_remove(rtnl->reply_callbacks, &serial);
if (!c)
@@
-495,13
+492,15
@@
static int process_running(sd_rtnl *rtnl, sd_rtnl_message **ret) {
if (!m)
goto null_message;
if (!m)
goto null_message;
- r = process_reply(rtnl, m);
- if (r != 0)
- goto null_message;
-
- r = process_match(rtnl, m);
- if (r != 0)
- goto null_message;
+ if (sd_rtnl_message_is_broadcast(m)) {
+ r = process_match(rtnl, m);
+ if (r != 0)
+ goto null_message;
+ } else {
+ r = process_reply(rtnl, m);
+ if (r != 0)
+ goto null_message;
+ }
if (ret) {
*ret = m;
if (ret) {
*ret = m;