X-Git-Url: http://git.archive.openwrt.org/?a=blobdiff_plain;f=libubus.h;h=94e5f950f7e6f89221dd05dacefd8cf2ba42b20a;hb=6280cbaf0966928c4f83b925fb5b94c3ecb1936e;hp=ad2db0c5b55e9df6821cb3fc5df75de26578e24e;hpb=2c71017cfb1d370abd1b52b3f59874e253914684;p=project%2Fubus.git diff --git a/libubus.h b/libubus.h index ad2db0c..94e5f95 100644 --- a/libubus.h +++ b/libubus.h @@ -34,11 +34,10 @@ struct ubus_event_handler; struct ubus_subscriber; struct ubus_notify_request; -static inline struct blob_attr * -ubus_msghdr_data(struct ubus_msghdr *hdr) -{ - return (struct blob_attr *) (hdr + 1); -} +struct ubus_msghdr_buf { + struct ubus_msghdr hdr; + struct blob_attr *data; +}; typedef void (*ubus_lookup_handler_t)(struct ubus_context *ctx, struct ubus_object_data *obj, @@ -140,6 +139,7 @@ struct ubus_context { struct list_head pending; struct uloop_fd sock; + struct uloop_timeout pending_timer; uint32_t local_id; uint16_t request_seq; @@ -147,10 +147,9 @@ struct ubus_context { void (*connection_lost)(struct ubus_context *ctx); - struct { - struct ubus_msghdr hdr; - char data[UBUS_MAX_MSGLEN]; - } msgbuf; + struct ubus_msghdr_buf msgbuf; + uint32_t msgbuf_data_len; + int msgbuf_reduction_counter; }; struct ubus_object_data {