diff options
author | dimitri staessens <dimitri.staessens@ugent.be> | 2017-09-13 15:25:53 +0000 |
---|---|---|
committer | Sander Vrijders <sander.vrijders@ugent.be> | 2017-09-13 15:25:53 +0000 |
commit | 184f6d40e70895fefff25c8b72f6230781a030bf (patch) | |
tree | bddca1ad5b5a08ad6fb0a9ec096984e42afe0d38 /src/ipcpd | |
parent | 888d3dbe7c3844d2efe9d6bc9823630db5d47a3b (diff) | |
parent | 0ed2ae85935be59b3fee5663a9906c4260cd64cc (diff) | |
download | ouroboros-184f6d40e70895fefff25c8b72f6230781a030bf.tar.gz ouroboros-184f6d40e70895fefff25c8b72f6230781a030bf.zip |
Merged in dstaesse/ouroboros/be-build (pull request #591)
build: Fix DDNS tool detection for shim-udp
Diffstat (limited to 'src/ipcpd')
-rw-r--r-- | src/ipcpd/config.h.in | 1 | ||||
-rw-r--r-- | src/ipcpd/shim-udp/CMakeLists.txt | 24 | ||||
-rw-r--r-- | src/ipcpd/shim-udp/main.c | 16 |
3 files changed, 25 insertions, 16 deletions
diff --git a/src/ipcpd/config.h.in b/src/ipcpd/config.h.in index 0bef20be..6fb409b7 100644 --- a/src/ipcpd/config.h.in +++ b/src/ipcpd/config.h.in @@ -40,6 +40,7 @@ #define PFT_SIZE @PFT_SIZE@ /* shim-udp */ +#cmakedefine HAVE_DDNS #define NSUPDATE_EXEC "@NSUPDATE_EXECUTABLE@" #define NSLOOKUP_EXEC "@NSLOOKUP_EXECUTABLE@" diff --git a/src/ipcpd/shim-udp/CMakeLists.txt b/src/ipcpd/shim-udp/CMakeLists.txt index eff3f5d0..fb57778e 100644 --- a/src/ipcpd/shim-udp/CMakeLists.txt +++ b/src/ipcpd/shim-udp/CMakeLists.txt @@ -38,17 +38,25 @@ find_program(NSLOOKUP_EXECUTABLE mark_as_advanced(NSLOOKUP_EXECUTABLE NSUPDATE_EXECUTABLE) -include(AddCompileFlags) -if (NOT NSUPDATE_EXECUTABLE) - message(STATUS "Could not find nsupdate. Disabling DDNS functionality.") -elseif (NOT NSLOOKUP_EXECUTABLE) - message(STATUS "Could not find nslookup. Disabling DNS lookups.") +if (NSLOOKUP_EXECUTABLE AND NSUPDATE_EXECUTABLE) + set(DISABLE_DDNS FALSE CACHE BOOL "Disable DDNS support") + if (NOT DISABLE_DNS) + message(STATUS "DDNS support enabled") + set(HAVE_DDNS TRUE CACHE INTERNAL "") + else () + message(STATUS "DDNS support disabled by user") + endif () else () - message(STATUS "Found nsupdate: ${NSUPDATE_EXECUTABLE}") - message(STATUS "Found nslookup: ${NSLOOKUP_EXECUTABLE}") - add_compile_flags(ipcpd-shim-udp -DCONFIG_OUROBOROS_ENABLE_DNS) + if (NSLOOKUP_EXECUTABLE) + message(STATUS "Install nsupdate to enable DDNS support") + elseif (NSUPDATE_EXECUTABLE) + message(STATUS "Install nslookup to enable DDNS support") + else () + message(STATUS "Install nslookup and nsupdate to enable DDNS support") + endif () endif () +include(AddCompileFlags) if (CMAKE_BUILD_TYPE MATCHES Debug) add_compile_flags(ipcpd-shim-udp -DCONFIG_OUROBOROS_DEBUG) endif (CMAKE_BUILD_TYPE MATCHES Debug) diff --git a/src/ipcpd/shim-udp/main.c b/src/ipcpd/shim-udp/main.c index a64c39c4..8f4bd80d 100644 --- a/src/ipcpd/shim-udp/main.c +++ b/src/ipcpd/shim-udp/main.c @@ -632,7 +632,7 @@ static int ipcp_udp_bootstrap(const struct ipcp_config * conf) return 0; } -#ifdef CONFIG_OUROBOROS_ENABLE_DNS +#ifdef HAVE_DDNS /* FIXME: Dependency on nsupdate to be removed in the end */ /* NOTE: Disgusted with this crap */ static int ddns_send(char * cmd) @@ -757,7 +757,7 @@ static uint32_t ddns_resolve(char * name, static int ipcp_udp_reg(const uint8_t * hash) { -#ifdef CONFIG_OUROBOROS_ENABLE_DNS +#ifdef HAVE_DDNS char ipstr[INET_ADDRSTRLEN]; char dnsstr[INET_ADDRSTRLEN]; char cmd[1000]; @@ -776,7 +776,7 @@ static int ipcp_udp_reg(const uint8_t * hash) return -1; } -#ifdef CONFIG_OUROBOROS_ENABLE_DNS +#ifdef HAVE_DDNS /* register application with DNS server */ dns_addr = udp_data.dns_addr; @@ -810,7 +810,7 @@ static int ipcp_udp_reg(const uint8_t * hash) static int ipcp_udp_unreg(const uint8_t * hash) { -#ifdef CONFIG_OUROBOROS_ENABLE_DNS +#ifdef HAVE_DDNS char dnsstr[INET_ADDRSTRLEN]; /* max DNS name length + max IP length + max command length */ char cmd[100]; @@ -822,7 +822,7 @@ static int ipcp_udp_unreg(const uint8_t * hash) ipcp_hash_str(hashstr, hash); -#ifdef CONFIG_OUROBOROS_ENABLE_DNS +#ifdef HAVE_DDNS /* unregister application with DNS server */ dns_addr = udp_data.dns_addr; @@ -850,7 +850,7 @@ static int ipcp_udp_query(const uint8_t * hash) { uint32_t ip_addr = 0; struct hostent * h; -#ifdef CONFIG_OUROBOROS_ENABLE_DNS +#ifdef HAVE_DDNS uint32_t dns_addr = 0; #endif char hashstr[ipcp_dir_hash_strlen() + 1]; @@ -862,7 +862,7 @@ static int ipcp_udp_query(const uint8_t * hash) if (shim_data_dir_has(udp_data.shim_data, hash)) return 0; -#ifdef CONFIG_OUROBOROS_ENABLE_DNS +#ifdef HAVE_DDNS dns_addr = udp_data.dns_addr; if (dns_addr != 0) { @@ -880,7 +880,7 @@ static int ipcp_udp_query(const uint8_t * hash) } ip_addr = *((uint32_t *) (h->h_addr_list[0])); -#ifdef CONFIG_OUROBOROS_ENABLE_DNS +#ifdef HAVE_DDNS } #endif |