diff options
author | Dimitri Staessens <dimitri@ouroboros.rocks> | 2023-03-22 12:57:14 +0100 |
---|---|---|
committer | Sander Vrijders <sander@ouroboros.rocks> | 2023-03-24 10:04:53 +0100 |
commit | b69cb56fdc0343b7c25cc895f9841ff29f01da26 (patch) | |
tree | d6db1fe992bfc0f22c43af183395caabc077fcf8 /src/ipcpd | |
parent | 2a0cd15420427fcf0501c8bc1faf5cfee7734657 (diff) | |
download | ouroboros-b69cb56fdc0343b7c25cc895f9841ff29f01da26.tar.gz ouroboros-b69cb56fdc0343b7c25cc895f9841ff29f01da26.zip |
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 <dimitri@ouroboros.rocks>
Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
Diffstat (limited to 'src/ipcpd')
-rw-r--r-- | src/ipcpd/broadcast/main.c | 2 | ||||
-rw-r--r-- | src/ipcpd/ipcp.c | 7 | ||||
-rw-r--r-- | 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); |