make ubus support optional (enabled by default)
authorFelix Fietkau <nbd@nbd.name>
Mon, 23 May 2022 13:04:57 +0000 (15:04 +0200)
committerFelix Fietkau <nbd@nbd.name>
Mon, 23 May 2022 13:04:57 +0000 (15:04 +0200)
Signed-off-by: Felix Fietkau <nbd@nbd.name>
CMakeLists.txt
ubus.h [new file with mode: 0644]
unetd.h

index 50e18488997ec6430a91da11a152cff6468670dc..02fadbdb57a463cdde33909e80a7cda90266878e 100644 (file)
@@ -4,7 +4,7 @@ PROJECT(unetd C)
 
 
 SET(SOURCES
-       main.c ubus.c network.c host.c service.c pex.c utils.c
+       main.c network.c host.c service.c pex.c utils.c
        curve25519.c siphash.c
        wg.c wg-dummy.c wg-user.c
 )
@@ -14,15 +14,23 @@ SET(RUNSTATEDIR /var/run)
 ADD_DEFINITIONS(-Os -Wall -Werror --std=gnu99 -g3 -Wmissing-declarations -DRUNSTATEDIR="${RUNSTATEDIR}")
 FIND_LIBRARY(libjson NAMES json-c json)
 
+OPTION(UBUS_SUPPORT "enable ubus support" ON)
 IF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
        FIND_LIBRARY(nl nl-tiny)
        SET(SOURCES ${SOURCES} wg-linux.c)
 ELSE()
        SET(nl "")
 ENDIF()
+IF(UBUS_SUPPORT)
+  SET(SOURCES ${SOURCES} ubus.c)
+  ADD_DEFINITIONS(-DUBUS_SUPPORT=1)
+  FIND_LIBRARY(ubus ubus)
+ELSE()
+  SET(ubus "")
+ENDIF()
 
 ADD_EXECUTABLE(unetd ${SOURCES})
-TARGET_LINK_LIBRARIES(unetd ubox ubus blobmsg_json ${libjson} ${nl})
+TARGET_LINK_LIBRARIES(unetd ubox ${ubus} blobmsg_json ${libjson} ${nl})
 
 INSTALL(TARGETS unetd
        RUNTIME DESTINATION sbin
diff --git a/ubus.h b/ubus.h
new file mode 100644 (file)
index 0000000..90b9788
--- /dev/null
+++ b/ubus.h
@@ -0,0 +1,24 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2022 Felix Fietkau <nbd@nbd.name>
+ */
+#ifndef __UNETD_UBUS_H
+#define __UNETD_UBUS_H
+
+#ifdef UBUS_SUPPORT
+void unetd_ubus_init(void);
+void unetd_ubus_netifd_update(struct blob_attr *data);
+void unetd_ubus_netifd_add_route(struct network *net, union network_endpoint *ep);
+#else
+static inline void unetd_ubus_init(void)
+{
+}
+static inline void unetd_ubus_netifd_update(struct blob_attr *data)
+{
+}
+static inline void unetd_ubus_netifd_add_route(struct network *net, union network_endpoint *ep)
+{
+}
+#endif
+
+#endif
diff --git a/unetd.h b/unetd.h
index 412aeb4ee79fb6a7ed6658348c08d62fc9038fe2..e7d13604a900e2abf027a27801793f5abf1f0fcf 100644 (file)
--- a/unetd.h
+++ b/unetd.h
@@ -17,6 +17,7 @@
 #include "network.h"
 #include "host.h"
 #include "service.h"
+#include "ubus.h"
 
 extern bool dummy_mode;
 extern bool debug;
@@ -34,8 +35,5 @@ extern bool debug;
 
 
 void unetd_write_hosts(void);
-void unetd_ubus_init(void);
-void unetd_ubus_netifd_update(struct blob_attr *data);
-void unetd_ubus_netifd_add_route(struct network *net, union network_endpoint *ep);
 
 #endif