A message system like D-Bus for Liminix, taken from OpenWRT's ubus
c035bab01c
Wildcard access list support was failing in case multiple wildcards entries were defined and/or when a specific access list string overlapped a wildcard entry. Root cause of the problem was the way how wildcard entries were sorted in the avl tree by the compare function ubusd_acl_match_path resulting into a non acces list match for a given object path. The avl_tree sorting has been changed to make use of avl_strcmp; as such there's no distinction anymore between non-wildcard and wildcard entries in the avl_tree compare function as the boolean partial marks an access list entry as a wildcard entry. When trying to find an access list match for an object path the access list tree is iterated as long as the number of characters between the access list string and object path is monotonically increasing. Signed-off-by: Hans Dedecker <dedeckeh@gmail.com> |
||
---|---|---|
examples | ||
lua | ||
.gitignore | ||
cli.c | ||
CMakeLists.txt | ||
libubus-acl.c | ||
libubus-internal.h | ||
libubus-io.c | ||
libubus-obj.c | ||
libubus-req.c | ||
libubus-sub.c | ||
libubus.c | ||
libubus.h | ||
ubus_common.h | ||
ubusd.c | ||
ubusd.h | ||
ubusd_acl.c | ||
ubusd_acl.h | ||
ubusd_event.c | ||
ubusd_id.c | ||
ubusd_id.h | ||
ubusd_monitor.c | ||
ubusd_obj.c | ||
ubusd_obj.h | ||
ubusd_proto.c | ||
ubusmsg.h |