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 | 
