diff options
Diffstat (limited to 'src/ipcpd/shim-udp')
| -rw-r--r-- | src/ipcpd/shim-udp/CMakeLists.txt | 24 | ||||
| -rw-r--r-- | src/ipcpd/shim-udp/main.c | 16 | 
2 files changed, 24 insertions, 16 deletions
| 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 | 
