From 843fe9bb5b77fd20153816400ce918989730f99d Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Fri, 1 Jun 2012 12:00:55 +0200 Subject: add the service object --- CMakeLists.txt | 2 +- api.c | 29 +++++++++++++++++++++++++++++ procd.h | 2 ++ ubus.c | 3 +-- 4 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 api.c diff --git a/CMakeLists.txt b/CMakeLists.txt index b696b32..16e7cb5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,7 +10,7 @@ IF(APPLE) LINK_DIRECTORIES(/opt/local/lib) ENDIF() -SET(SOURCES main.c ubus.c) +SET(SOURCES main.c ubus.c api.c) SET(LIBS ubox ubus) diff --git a/api.c b/api.c new file mode 100644 index 0000000..623f123 --- /dev/null +++ b/api.c @@ -0,0 +1,29 @@ +#include "procd.h" + +static int +service_handle_list(struct ubus_context *ctx, struct ubus_object *obj, + struct ubus_request_data *req, const char *method, + struct blob_attr *msg) +{ + return 0; +} + +static struct ubus_method main_object_methods[] = { + { .name = "list", .handler = service_handle_list }, +}; + +static struct ubus_object_type main_object_type = + UBUS_OBJECT_TYPE("service", main_object_methods); + +static struct ubus_object main_object = { + .name = "service", + .type = &main_object_type, + .methods = main_object_methods, + .n_methods = ARRAY_SIZE(main_object_methods), +}; + + +void procd_register_objects(struct ubus_context *ctx) +{ + ubus_add_object(ctx, &main_object); +} diff --git a/procd.h b/procd.h index cc063b3..8b33143 100644 --- a/procd.h +++ b/procd.h @@ -2,6 +2,7 @@ #define __PROCD_H #include +#include #include #define DPRINTF(fmt, ...) do { \ @@ -12,5 +13,6 @@ extern int debug; extern char *ubus_socket; void procd_connect_ubus(void); +void procd_register_objects(struct ubus_context *ctx); #endif diff --git a/ubus.c b/ubus.c index bba59b4..1ba7965 100644 --- a/ubus.c +++ b/ubus.c @@ -2,8 +2,6 @@ #include #include -#include - #include "procd.h" char *ubus_socket = NULL; @@ -61,6 +59,7 @@ static void procd_ubus_try_connect(void) ctx->connection_lost = procd_ubus_connection_lost; ubus_connected = true; + procd_register_objects(ctx); } static void procd_ubus_connection_lost(struct ubus_context *old_ctx) -- cgit v1.2.3