Browse Source

add the service object

Felix Fietkau 12 years ago
parent
commit
843fe9bb5b
4 changed files with 33 additions and 3 deletions
  1. 1 1
      CMakeLists.txt
  2. 29 0
      api.c
  3. 2 0
      procd.h
  4. 1 2
      ubus.c

+ 1 - 1
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)
 

+ 29 - 0
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);
+}

+ 2 - 0
procd.h

@@ -2,6 +2,7 @@
 #define __PROCD_H
 
 #include <libubox/uloop.h>
+#include <libubus.h>
 #include <stdio.h>
 
 #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

+ 1 - 2
ubus.c

@@ -2,8 +2,6 @@
 #include <unistd.h>
 #include <signal.h>
 
-#include <libubus.h>
-
 #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)