From b69cb56fdc0343b7c25cc895f9841ff29f01da26 Mon Sep 17 00:00:00 2001 From: Dimitri Staessens Date: Wed, 22 Mar 2023 12:57:14 +0100 Subject: icpdp: Fix layer information for ipcpd-udp The refactors removed the need to set the hash algorithm for the ipcpd-udp and the ipcpd-broadcast. However, the algorithm was not set at bootstrap, so the ipcpd-udp was trying to use an SHA3-256 instead of an MD5, causing flow allocation over the UDP to fail. The ipcpd-broadcast used the default, so there was no problem. Fixed by setting the correct algorithm for these ipcpds at bootstrap. Signed-off-by: Dimitri Staessens Signed-off-by: Sander Vrijders --- src/ipcpd/broadcast/main.c | 2 +- src/ipcpd/ipcp.c | 7 +++---- src/ipcpd/udp/main.c | 1 + 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/ipcpd/broadcast/main.c b/src/ipcpd/broadcast/main.c index 804741f0..30cb49b0 100644 --- a/src/ipcpd/broadcast/main.c +++ b/src/ipcpd/broadcast/main.c @@ -164,6 +164,7 @@ static int broadcast_ipcp_bootstrap(const struct ipcp_config * conf) { assert(conf); assert(conf->type == THIS_TYPE); + ((struct ipcp_config *) conf)->layer_info.dir_hash_algo = HASH_SHA3_256; enroll_bootstrap(conf); @@ -245,7 +246,6 @@ int broadcast_ipcp_dealloc(int fd) return 0; } - static struct ipcp_ops broadcast_ops = { .ipcp_bootstrap = broadcast_ipcp_bootstrap, .ipcp_enroll = broadcast_ipcp_enroll, diff --git a/src/ipcpd/ipcp.c b/src/ipcpd/ipcp.c index 103c0804..b32e7cda 100644 --- a/src/ipcpd/ipcp.c +++ b/src/ipcpd/ipcp.c @@ -206,10 +206,9 @@ static struct rib_ops r_ops = { .getattr = ipcp_rib_getattr }; -__attribute__((no_sanitize_address)) static void * acceptloop(void * o) { - int csockfd; + int csockfd; (void) o; @@ -286,8 +285,8 @@ static void handle_bootstrap(ipcp_config_msg_t * conf_msg, ret_msg->layer_info = layer_info_s_to_msg(&conf.layer_info); } -static void handle_enroll(const char * dst, - ipcp_msg_t * ret_msg) +static void handle_enroll(const char * dst, + ipcp_msg_t * ret_msg) { struct layer_info info; diff --git a/src/ipcpd/udp/main.c b/src/ipcpd/udp/main.c index 1a573696..43975df1 100644 --- a/src/ipcpd/udp/main.c +++ b/src/ipcpd/udp/main.c @@ -617,6 +617,7 @@ static int ipcp_udp_bootstrap(const struct ipcp_config * conf) assert(conf); assert(conf->type == THIS_TYPE); + ((struct ipcp_config *) conf)->layer_info.dir_hash_algo = HASH_MD5; ipcpi.dir_hash_algo = conf->layer_info.dir_hash_algo; strcpy(ipcpi.layer_name, conf->layer_info.layer_name); -- cgit v1.2.3