add a dummy protocol handler for "static"
authorFelix Fietkau <nbd@openwrt.org>
Wed, 13 Apr 2011 21:40:26 +0000 (23:40 +0200)
committerFelix Fietkau <nbd@openwrt.org>
Wed, 13 Apr 2011 21:40:26 +0000 (23:40 +0200)
CMakeLists.txt
proto-static.c [new file with mode: 0644]

index 496e9d5..212377e 100644 (file)
@@ -9,5 +9,5 @@ IF(DEBUG)
   ADD_DEFINITIONS(-DDEBUG -O0)
 ENDIF()
 
   ADD_DEFINITIONS(-DDEBUG -O0)
 ENDIF()
 
-ADD_EXECUTABLE(netifd main.c interface.c proto.c config.c device.c bridge.c vlan.c ubus.c system-dummy.c)
+ADD_EXECUTABLE(netifd main.c interface.c proto.c proto-static.c config.c device.c bridge.c vlan.c ubus.c system-dummy.c)
 TARGET_LINK_LIBRARIES(netifd ubox ubus uci)
 TARGET_LINK_LIBRARIES(netifd ubox ubus uci)
diff --git a/proto-static.c b/proto-static.c
new file mode 100644 (file)
index 0000000..614177b
--- /dev/null
@@ -0,0 +1,52 @@
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+#include "netifd.h"
+#include "proto.h"
+
+struct static_proto_state {
+    struct interface_proto_state proto;
+};
+
+
+static int
+static_handler(struct interface_proto_state *proto,
+              enum interface_proto_cmd cmd, bool force)
+{
+       return 0;
+}
+
+static void
+static_free(struct interface_proto_state *proto)
+{
+       struct static_proto_state *state;
+
+       state = container_of(proto, struct static_proto_state, proto);
+       free(state);
+}
+
+struct interface_proto_state *
+static_attach(struct proto_handler *h, struct interface *iface,
+             struct uci_section *s)
+{
+       struct static_proto_state *state;
+
+       state = calloc(1, sizeof(*state));
+       state->proto.free = static_free;
+       state->proto.handler = static_handler;
+       state->proto.flags = PROTO_FLAG_IMMEDIATE;
+
+       return &state->proto;
+}
+
+static struct proto_handler static_proto = {
+       .name = "static",
+       .attach = static_attach,
+};
+
+static void __init
+static_proto_init(void)
+{
+       add_proto_handler(&static_proto);
+}