summaryrefslogtreecommitdiff
path: root/src/ipcpd
diff options
context:
space:
mode:
authorDimitri Staessens <[email protected]>2023-03-22 12:57:14 +0100
committerSander Vrijders <[email protected]>2023-03-24 10:04:53 +0100
commitb69cb56fdc0343b7c25cc895f9841ff29f01da26 (patch)
treed6db1fe992bfc0f22c43af183395caabc077fcf8 /src/ipcpd
parent2a0cd15420427fcf0501c8bc1faf5cfee7734657 (diff)
downloadouroboros-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 <[email protected]> Signed-off-by: Sander Vrijders <[email protected]>
Diffstat (limited to 'src/ipcpd')
-rw-r--r--src/ipcpd/broadcast/main.c2
-rw-r--r--src/ipcpd/ipcp.c7
-rw-r--r--src/ipcpd/udp/main.c1
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);