diff options
author | Dimitri Staessens <dimitri.staessens@intec.ugent.be> | 2016-02-26 14:43:50 +0100 |
---|---|---|
committer | Dimitri Staessens <dimitri.staessens@intec.ugent.be> | 2016-02-26 14:43:50 +0100 |
commit | 7b6fc640c7d31ff8979194813b0fa0e7b4f24bde (patch) | |
tree | ad1d9b481fb64fcab6546de990a32f31462b2499 /src/lib/irm.c | |
parent | 410d00dc06b2b7a89223479adec584dbf011e212 (diff) | |
parent | dff374d5f393a6b4bec4877aa1c35ceb70e82843 (diff) | |
download | ouroboros-7b6fc640c7d31ff8979194813b0fa0e7b4f24bde.tar.gz ouroboros-7b6fc640c7d31ff8979194813b0fa0e7b4f24bde.zip |
Merged in sandervrijders/ouroboros/be (pull request #10)
Initial support for communicating with the IRM
Diffstat (limited to 'src/lib/irm.c')
-rw-r--r-- | src/lib/irm.c | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/src/lib/irm.c b/src/lib/irm.c new file mode 100644 index 00000000..2c9b530c --- /dev/null +++ b/src/lib/irm.c @@ -0,0 +1,103 @@ +/* + * Ouroboros - Copyright (C) 2016 + * + * The API to instruct the IRM + * + * Sander Vrijders <sander.vrijders@intec.ugent.be> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#define OUROBOROS_PREFIX "libouroboros-irm" + +#include <ouroboros/irm.h> +#include <ouroboros/common.h> +#include <ouroboros/logs.h> +#include <ouroboros/sockets.h> + +int irm_create_ipcp(rina_name_t name, + char * ipcp_type) +{ + int sockfd; + struct irm_msg msg; + buffer_t * buf; + + if (ipcp_type == NULL) + return -1; + + sockfd = client_socket_open(IRM_SOCK_PATH); + if (sockfd < 0) + return -1; + + msg.code = IRM_CREATE_IPCP; + msg.msgs.create_ipcp.name = &name; + msg.msgs.create_ipcp.ipcp_type = ipcp_type; + + buf = serialize_irm_msg(&msg); + if (buf == NULL) + return -1; + + write(sockfd, buf->data, buf->size); + + close(sockfd); + + return 0; +} + +int irm_destroy_ipcp(int ipcp_id) +{ + + return 0; +} + +int irm_bootstrap_ipcp(int ipcp_id, + struct dif_info info) +{ + + return 0; +} + +int irm_enroll_ipcp(int ipcp_id, + char * dif_name) +{ + + return 0; +} + +int irm_reg_ipcp(int ipcp_id, + char ** difs) +{ + + return 0; +} + +int irm_unreg_ipcp(int ipcp_id, + char ** difs) +{ + + return 0; +} + +char ** irm_list_ipcps() +{ + + return 0; +} + +char ** irm_list_ipcp_types() +{ + + return 0; +} |