From: Hans Dedecker Date: Sun, 5 Nov 2017 21:39:58 +0000 (+0100) Subject: dhcpv4: make dhcpv4 support optional X-Git-Url: http://git.openwrt.org/?p=project%2Fodhcpd.git;a=commitdiff_plain;h=53f52e3ea1d941941f0baf317816d2c25135161e dhcpv4: make dhcpv4 support optional --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 0855458..e2514c6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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 diff --git a/src/config.c b/src/config.c index 858362a..753ac73 100644 --- a/src/config.c +++ b/src/config.c @@ -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); } diff --git a/src/odhcpd.c b/src/odhcpd.c index 8a1c66e..b1cae34 100644 --- a/src/odhcpd.c +++ b/src/odhcpd.c @@ -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; diff --git a/src/odhcpd.h b/src/odhcpd.h index 98bc565..258d3b6 100644 --- a/src/odhcpd.h +++ b/src/odhcpd.h @@ -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);