summaryrefslogtreecommitdiff
path: root/src/irmd/ipcp.c
diff options
context:
space:
mode:
authordimitri staessens <dimitri.staessens@ugent.be>2017-08-09 19:41:57 +0000
committerSander Vrijders <sander.vrijders@ugent.be>2017-08-09 19:41:57 +0000
commitafc4342532225fb86d11729ddb783095cb62686a (patch)
tree58ef8a40142323771eecbd8ce6c2eaea409bc138 /src/irmd/ipcp.c
parentc1d7ff1e1bd44e1a38af8a1b498c68f3378fa342 (diff)
parent24aa46946349529bf36d3569796a28917d3e756f (diff)
downloadouroboros-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/irmd/ipcp.c')
-rw-r--r--src/irmd/ipcp.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/src/irmd/ipcp.c b/src/irmd/ipcp.c
index bf71bc3d..528e90a2 100644
--- a/src/irmd/ipcp.c
+++ b/src/irmd/ipcp.c
@@ -206,8 +206,9 @@ int ipcp_destroy(pid_t api)
return 0;
}
-int ipcp_bootstrap(pid_t api,
- ipcp_config_msg_t * conf)
+int ipcp_bootstrap(pid_t api,
+ ipcp_config_msg_t * conf,
+ struct dif_info * info)
{
ipcp_msg_t msg = IPCP_MSG__INIT;
ipcp_msg_t * recv_msg = NULL;
@@ -229,6 +230,20 @@ int ipcp_bootstrap(pid_t api,
}
ret = recv_msg->result;
+ if (ret != 0) {
+ ipcp_msg__free_unpacked(recv_msg, NULL);
+ return ret;
+ }
+
+ if (recv_msg->dif_info == NULL) {
+ ipcp_msg__free_unpacked(recv_msg, NULL);
+ return -EIPCP;
+ }
+
+ info->dir_hash_algo = recv_msg->dif_info->dir_hash_algo;
+ strcpy(info->dif_name, recv_msg->dif_info->dif_name);
+
+ ret = recv_msg->result;
ipcp_msg__free_unpacked(recv_msg, NULL);
return ret;
@@ -269,7 +284,6 @@ int ipcp_enroll(pid_t api,
}
info->dir_hash_algo = recv_msg->dif_info->dir_hash_algo;
-
strcpy(info->dif_name, recv_msg->dif_info->dif_name);
ipcp_msg__free_unpacked(recv_msg, NULL);