dhcpv4: make dhcpv4 support optional
authorHans Dedecker <dedeckeh@gmail.com>
Sun, 5 Nov 2017 21:39:58 +0000 (22:39 +0100)
committerHans Dedecker <dedeckeh@gmail.com>
Sun, 5 Nov 2017 21:39:58 +0000 (22:39 +0100)
CMakeLists.txt
src/config.c
src/odhcpd.c
src/odhcpd.h

index 0855458489c5a687c716e220e3f428f3907ea268..e2514c653cdbe8177534b612ac5284a9e0edddff 100644 (file)
@@ -25,7 +25,12 @@ if(${UBUS})
        set(EXT_LINK ${EXT_LINK} ubus)
 endif(${UBUS})
 
-add_executable(odhcpd src/odhcpd.c src/config.c src/router.c src/dhcpv6.c src/ndp.c src/dhcpv6-ia.c src/dhcpv4.c ${EXT_SRC})
+if (${DHCPV4_SUPPORT})
+       add_definitions(-DDHCPV4_SUPPORT)
+       set(EXT_SRC ${EXT_SRC} src/dhcpv4.c)
+endif(${DHCPV4})
+
+add_executable(odhcpd src/odhcpd.c src/config.c src/router.c src/dhcpv6.c src/ndp.c src/dhcpv6-ia.c ${EXT_SRC})
 target_link_libraries(odhcpd resolv ubox uci ${libnl} ${EXT_LINK})
 
 # Installation
index 858362ac3eb85c9c90890ba65d8b3859a194c91a..753ac7336e8268985f2ec741e34c728398b93049 100644 (file)
@@ -227,7 +227,9 @@ static void close_interface(struct interface *iface)
        setup_router_interface(iface, false);
        setup_dhcpv6_interface(iface, false);
        setup_ndp_interface(iface, false);
+#ifdef DHCPV4_SUPPORT
        setup_dhcpv4_interface(iface, false);
+#endif
 
        clean_interface(iface);
        free(iface);
@@ -773,7 +775,9 @@ void odhcpd_reload(void)
                        setup_router_interface(i, !i->ignore || i->ra != RELAYD_DISABLED);
                        setup_dhcpv6_interface(i, !i->ignore || i->dhcpv6 != RELAYD_DISABLED);
                        setup_ndp_interface(i, !i->ignore || i->ndp != RELAYD_DISABLED);
+#ifdef DHCPV4_SUPPORT
                        setup_dhcpv4_interface(i, !i->ignore || i->dhcpv4 != RELAYD_DISABLED);
+#endif
                } else
                        close_interface(i);
        }
index 8a1c66e6721a37c83af600ba8b29ef401744e29b..b1cae34cddc46f1f458f6681c2555bc250041bc9 100644 (file)
@@ -116,8 +116,10 @@ int main(int argc, char **argv)
        if (init_ndp())
                return 4;
 
+#ifdef DHCPV4_SUPPORT
        if (init_dhcpv4())
                return 4;
+#endif
 
        odhcpd_run();
        return 0;
index 98bc5658950b3b6d21dea1483e9afab28d1cb572..258d3b6d48d30dec765daac06d4115f1bfc4bded 100644 (file)
@@ -244,12 +244,16 @@ bool ubus_has_prefix(const char *name, const char *ifname);
 // Exported module initializers
 int init_router(void);
 int init_dhcpv6(void);
+#ifdef DHCPV4_SUPPORT
 int init_dhcpv4(void);
+#endif
 int init_ndp(void);
 
 int setup_router_interface(struct interface *iface, bool enable);
 int setup_dhcpv6_interface(struct interface *iface, bool enable);
 int setup_ndp_interface(struct interface *iface, bool enable);
+#ifdef DHCPV4_SUPPORT
 int setup_dhcpv4_interface(struct interface *iface, bool enable);
+#endif
 
 void odhcpd_reload(void);