From: John Crispin Date: Mon, 20 Apr 2015 09:08:26 +0000 (+0200) Subject: pass ubus_msg_buf to callback of internal object X-Git-Url: http://git.openwrt.org/?p=project%2Fubus.git;a=commitdiff_plain;h=ba607d976b77c40162637d354fd8e1560384a66d pass ubus_msg_buf to callback of internal object Signed-off-by: John Crispin --- diff --git a/ubusd_event.c b/ubusd_event.c index 6d4ddcf..6d0ae30 100644 --- a/ubusd_event.c +++ b/ubusd_event.c @@ -228,7 +228,7 @@ static int ubusd_forward_event(struct ubus_client *cl, struct blob_attr *msg) return ubusd_send_event(cl, id, ubusd_create_event_from_msg, data); } -static int ubusd_event_recv(struct ubus_client *cl, const char *method, struct blob_attr *msg) +static int ubusd_event_recv(struct ubus_client *cl, struct ubus_msg_buf *ub, const char *method, struct blob_attr *msg) { if (!strcmp(method, "register")) return ubusd_alloc_event_pattern(cl, msg); diff --git a/ubusd_obj.h b/ubusd_obj.h index a21f47c..5ed5ba8 100644 --- a/ubusd_obj.h +++ b/ubusd_obj.h @@ -52,7 +52,8 @@ struct ubus_object { struct avl_node path; struct ubus_client *client; - int (*recv_msg)(struct ubus_client *client, const char *method, struct blob_attr *msg); + int (*recv_msg)(struct ubus_client *client, struct ubus_msg_buf *ub, + const char *method, struct blob_attr *msg); int event_seen; unsigned int invoke_seq; diff --git a/ubusd_proto.c b/ubusd_proto.c index 8954682..caede10 100644 --- a/ubusd_proto.c +++ b/ubusd_proto.c @@ -244,7 +244,7 @@ static int ubusd_handle_invoke(struct ubus_client *cl, struct ubus_msg_buf *ub, method = blob_data(attr[UBUS_ATTR_METHOD]); if (!obj->client) - return obj->recv_msg(cl, method, attr[UBUS_ATTR_DATA]); + return obj->recv_msg(cl, ub, method, attr[UBUS_ATTR_DATA]); ub->hdr.peer = cl->id.id; blob_buf_init(&b, 0);