diff options
author | dimitri staessens <[email protected]> | 2017-08-09 19:41:57 +0000 |
---|---|---|
committer | Sander Vrijders <[email protected]> | 2017-08-09 19:41:57 +0000 |
commit | afc4342532225fb86d11729ddb783095cb62686a (patch) | |
tree | 58ef8a40142323771eecbd8ce6c2eaea409bc138 /src/ipcpd | |
parent | c1d7ff1e1bd44e1a38af8a1b498c68f3378fa342 (diff) | |
parent | 24aa46946349529bf36d3569796a28917d3e756f (diff) | |
download | ouroboros-afc4342532225fb86d11729ddb783095cb62686a.tar.gz ouroboros-afc4342532225fb86d11729ddb783095cb62686a.zip |
Merged in dstaesse/ouroboros/be-libgcrypt (pull request #544)
build, lib, ipcpd, irmd: Add support for libgcrypt
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 () |