diff options
Diffstat (limited to 'src/ipcpd')
| -rw-r--r-- | src/ipcpd/ipcp.c | 53 | ||||
| -rw-r--r-- | src/ipcpd/normal/dt_pci.c | 1 | ||||
| -rw-r--r-- | src/ipcpd/shim-eth-llc/CMakeLists.txt | 6 | 
3 files changed, 46 insertions, 14 deletions
diff --git a/src/ipcpd/ipcp.c b/src/ipcpd/ipcp.c index 48ff046c..b2afdf99 100644 --- a/src/ipcpd/ipcp.c +++ b/src/ipcpd/ipcp.c @@ -23,6 +23,7 @@  #define OUROBOROS_PREFIX "ipcpd/ipcp"  #include <ouroboros/config.h> +#include <ouroboros/hash.h>  #include <ouroboros/logs.h>  #include <ouroboros/time_utils.h>  #include <ouroboros/utils.h> @@ -174,7 +175,7 @@ static void * mainloop(void * o)                          strcpy(conf.dif_info.dif_name,                                 conf_msg->dif_info->dif_name);                          if (conf.dif_info.dif_name == NULL) { -                                ret_msg.has_result = true; +                                log_err("No DIF name provided.");                                  ret_msg.result = -1;                                  break;                          } @@ -186,21 +187,55 @@ static void * mainloop(void * o)                                  conf.dt_gam_type    = conf_msg->dt_gam_type;                                  conf.rm_gam_type    = conf_msg->rm_gam_type;                                  conf.routing_type   = conf_msg->routing_type; -                                conf.dif_info.dir_hash_algo = -                                        conf_msg->dif_info->dir_hash_algo; + +                                switch(conf_msg->dif_info->dir_hash_algo) { +                                case DIR_HASH_SHA3_224: +                                        conf.dif_info.dir_hash_algo +                                                = HASH_SHA3_224; +                                        break; +                                case DIR_HASH_SHA3_256: +                                        conf.dif_info.dir_hash_algo +                                                = HASH_SHA3_256; +                                        break; +                                case DIR_HASH_SHA3_384: +                                        conf.dif_info.dir_hash_algo +                                                = HASH_SHA3_384; +                                        break; +                                case DIR_HASH_SHA3_512: +                                        conf.dif_info.dir_hash_algo +                                                = HASH_SHA3_512; +                                        break; +                                default: +                                        assert(false); +                                } + +                                dif_info.dir_hash_algo = +                                        conf.dif_info.dir_hash_algo;                          }                          if (conf_msg->ipcp_type == IPCP_SHIM_UDP) { -                                conf.ip_addr  = conf_msg->ip_addr; -                                conf.dns_addr = conf_msg->dns_addr; +                                conf.ip_addr           = conf_msg->ip_addr; +                                conf.dns_addr          = conf_msg->dns_addr; +                                dif_info.dir_hash_algo = HASH_MD5; +                                ipcpi.dir_hash_algo    = HASH_MD5;                          } -                        if (conf_msg->ipcp_type == IPCP_SHIM_ETH_LLC) -                                conf.if_name = conf_msg->if_name; +                        if (conf_msg->ipcp_type == IPCP_SHIM_ETH_LLC) { +                                conf.if_name           = conf_msg->if_name; +                                dif_info.dir_hash_algo = HASH_SHA3_256; +                                ipcpi.dir_hash_algo    = HASH_SHA3_256; +                        } -                        ipcpi.dir_hash_algo = conf_msg->dif_info->dir_hash_algo; +                        if (conf_msg->ipcp_type == IPCP_LOCAL) { +                                dif_info.dir_hash_algo = HASH_SHA3_256; +                                ipcpi.dir_hash_algo    = HASH_SHA3_256; +                        }                          ret_msg.result = ipcpi.ops->ipcp_bootstrap(&conf); +                        if (ret_msg.result == 0) { +                                ret_msg.dif_info       = &dif_info; +                                dif_info.dif_name      = conf.dif_info.dif_name; +                        }                          break;                  case IPCP_MSG_CODE__IPCP_ENROLL:                          ret_msg.has_result = true; @@ -220,7 +255,7 @@ static void * mainloop(void * o)                          ret_msg.result = ipcpi.ops->ipcp_enroll(msg->dst_name,                                                                  &info);                          if (ret_msg.result == 0) { -                                ret_msg.dif_info = &dif_info; +                                ret_msg.dif_info       = &dif_info;                                  dif_info.dir_hash_algo = info.dir_hash_algo;                                  dif_info.dif_name      = info.dif_name;                          } diff --git a/src/ipcpd/normal/dt_pci.c b/src/ipcpd/normal/dt_pci.c index a4f99142..2a252545 100644 --- a/src/ipcpd/normal/dt_pci.c +++ b/src/ipcpd/normal/dt_pci.c @@ -22,7 +22,6 @@  #include <ouroboros/config.h>  #include <ouroboros/errno.h> -#include <ouroboros/crc32.h>  #include <ouroboros/rib.h>  #include "dt_pci.h" diff --git a/src/ipcpd/shim-eth-llc/CMakeLists.txt b/src/ipcpd/shim-eth-llc/CMakeLists.txt index 08f50c04..12bfb42e 100644 --- a/src/ipcpd/shim-eth-llc/CMakeLists.txt +++ b/src/ipcpd/shim-eth-llc/CMakeLists.txt @@ -32,12 +32,10 @@ add_executable(ipcpd-shim-eth-llc ${SHIM_ETH_LLC_SOURCES} ${IPCP_SOURCES}  target_link_libraries(ipcpd-shim-eth-llc LINK_PUBLIC ouroboros    ${PROTOBUF_C_LIBRARY}) -if (${NETMAP_C_INCLUDE_DIR} STREQUAL "NETMAP_C_INCLUDE_DIR-NOTFOUND") -  message(STATUS "Could not find netmap. Install for better performance.") -else () +if (NOT ${NETMAP_C_INCLUDE_DIR} STREQUAL "NETMAP_C_INCLUDE_DIR-NOTFOUND")    message(STATUS "Found netmap headers in ${NETMAP_C_INCLUDE_DIR}")    include_directories(${NETMAP_C_INCLUDE_DIR}) -  add_compile_flags(ipcpd-shim-eth-llc -DHAVE_NETMAP) +  set(HAVE_NETMAP "1" CACHE STRING "Have netmap")    test_and_set_c_compiler_flag_global(-std=c99)  endif ()  | 
