libubus: reduce code duplication, fix indentation
Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
parent
df088f03c0
commit
d5fabacba1
2 changed files with 18 additions and 44 deletions
|
@ -220,24 +220,9 @@ int ubus_send_reply(struct ubus_context *ctx, struct ubus_request_data *req,
|
|||
return 0;
|
||||
}
|
||||
|
||||
int ubus_invoke_async(struct ubus_context *ctx, uint32_t obj, const char *method,
|
||||
struct blob_attr *msg, struct ubus_request *req)
|
||||
{
|
||||
blob_buf_init(&b, 0);
|
||||
blob_put_int32(&b, UBUS_ATTR_OBJID, obj);
|
||||
blob_put_string(&b, UBUS_ATTR_METHOD, method);
|
||||
if (msg)
|
||||
blob_put(&b, UBUS_ATTR_DATA, blob_data(msg), blob_len(msg));
|
||||
|
||||
if (ubus_start_request(ctx, req, b.head, UBUS_MSG_INVOKE, obj) < 0)
|
||||
return UBUS_STATUS_INVALID_ARGUMENT;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int ubus_invoke_async_fd(struct ubus_context *ctx, uint32_t obj, const char *method,
|
||||
struct blob_attr *msg, struct ubus_request *req, int fd)
|
||||
int ubus_invoke_async_fd(struct ubus_context *ctx, uint32_t obj,
|
||||
const char *method, struct blob_attr *msg,
|
||||
struct ubus_request *req, int fd)
|
||||
{
|
||||
blob_buf_init(&b, 0);
|
||||
blob_put_int32(&b, UBUS_ATTR_OBJID, obj);
|
||||
|
@ -252,25 +237,9 @@ int ubus_invoke_async_fd(struct ubus_context *ctx, uint32_t obj, const char *met
|
|||
return 0;
|
||||
}
|
||||
|
||||
int ubus_invoke(struct ubus_context *ctx, uint32_t obj, const char *method,
|
||||
struct blob_attr *msg, ubus_data_handler_t cb, void *priv,
|
||||
int timeout)
|
||||
{
|
||||
struct ubus_request req;
|
||||
int rc;
|
||||
|
||||
rc = ubus_invoke_async(ctx, obj, method, msg, &req);
|
||||
if (rc)
|
||||
return rc;
|
||||
|
||||
req.data_cb = cb;
|
||||
req.priv = priv;
|
||||
return ubus_complete_request(ctx, &req, timeout);
|
||||
}
|
||||
|
||||
int ubus_invoke_fd(struct ubus_context *ctx, uint32_t obj, const char *method,
|
||||
struct blob_attr *msg, ubus_data_handler_t cb, void *priv,
|
||||
int timeout, int fd)
|
||||
struct blob_attr *msg, ubus_data_handler_t cb, void *priv,
|
||||
int timeout, int fd)
|
||||
{
|
||||
struct ubus_request req;
|
||||
int rc;
|
||||
|
|
21
libubus.h
21
libubus.h
|
@ -331,21 +331,26 @@ int ubus_register_acl(struct ubus_context *ctx);
|
|||
/* ----------- rpc ----------- */
|
||||
|
||||
/* invoke a method on a specific object */
|
||||
int ubus_invoke(struct ubus_context *ctx, uint32_t obj, const char *method,
|
||||
struct blob_attr *msg, ubus_data_handler_t cb, void *priv,
|
||||
int timeout);
|
||||
|
||||
/* asynchronous version of ubus_invoke() */
|
||||
int ubus_invoke_async(struct ubus_context *ctx, uint32_t obj, const char *method,
|
||||
struct blob_attr *msg, struct ubus_request *req);
|
||||
|
||||
int ubus_invoke_fd(struct ubus_context *ctx, uint32_t obj, const char *method,
|
||||
struct blob_attr *msg, ubus_data_handler_t cb, void *priv,
|
||||
int timeout, int fd);
|
||||
static inline int
|
||||
ubus_invoke(struct ubus_context *ctx, uint32_t obj, const char *method,
|
||||
struct blob_attr *msg, ubus_data_handler_t cb, void *priv,
|
||||
int timeout)
|
||||
{
|
||||
return ubus_invoke_fd(ctx, obj, method, msg, cb, priv, timeout, -1);
|
||||
}
|
||||
|
||||
/* asynchronous version of ubus_invoke() */
|
||||
int ubus_invoke_async_fd(struct ubus_context *ctx, uint32_t obj, const char *method,
|
||||
struct blob_attr *msg, struct ubus_request *req, int fd);
|
||||
static inline int
|
||||
ubus_invoke_async(struct ubus_context *ctx, uint32_t obj, const char *method,
|
||||
struct blob_attr *msg, struct ubus_request *req)
|
||||
{
|
||||
return ubus_invoke_async_fd(ctx, obj, method, msg, req, -1);
|
||||
}
|
||||
|
||||
/* send a reply to an incoming object method call */
|
||||
int ubus_send_reply(struct ubus_context *ctx, struct ubus_request_data *req,
|
||||
|
|
Loading…
Reference in a new issue