if (pattern)
blobmsg_add_string(&b2, "pattern", pattern);
- return ubus_invoke(ctx, UBUS_SYSTEM_OBJECT_EVENT, "register", b2.head,
+ ret = ubus_invoke(ctx, UBUS_SYSTEM_OBJECT_EVENT, "register", b2.head,
NULL, NULL, 0);
+ blob_buf_free(&b2);
+
+ return ret;
}
int ubus_send_event(struct ubus_context *ctx, const char *id,
ctx->connection_lost = ubus_default_connection_lost;
ctx->pending_timer.cb = ubus_process_pending_msg;
- ctx->msgbuf.data = calloc(UBUS_MAX_MSGLEN, sizeof(char));
+ ctx->msgbuf.data = calloc(UBUS_MSG_CHUNK_SIZE, sizeof(char));
if (!ctx->msgbuf.data)
return -1;
+ ctx->msgbuf_data_len = UBUS_MSG_CHUNK_SIZE;
INIT_LIST_HEAD(&ctx->requests);
INIT_LIST_HEAD(&ctx->pending);