- memcpy(&pending->hdr, hdr, sizeof(*hdr) + blob_raw_len(ubus_msghdr_data(hdr)));
- list_add(&pending->list, &ctx->pending);
+ pending->hdr.data = data;
+ memcpy(&pending->hdr.hdr, &buf->hdr, sizeof(buf->hdr));
+ memcpy(data, buf->data, blob_raw_len(buf->data));
+ list_add_tail(&pending->list, &ctx->pending);
+ if (ctx->sock.registered)
+ uloop_timeout_set(&ctx->pending_timer, 1);