#include #include #include #include #include #include #include #include "init_vconn.h" ECPContext ctx; ECPSocket sock; ECPConnection conn; ECPConnHandler vconn_handler; ECPConnHandler vlink_handler; static void usage(char *arg) { fprintf(stderr, "Usage: %s [ ]\n", arg); exit(1); } int main(int argc, char *argv[]) { ecp_tr_addr_t addr; ECPDHKey key_perma; int rv; if ((argc < 3) || (argc > 5)) usage(argv[0]); rv = ecp_init(&ctx, &vconn_handler, &vlink_handler); printf("ecp_init RV:%d\n", rv); rv = ecp_util_load_key(&key_perma.public, &key_perma.private, argv[2]); printf("ecp_util_load_key RV:%d\n", rv); key_perma.valid = 1; rv = ecp_sock_create(&sock, &ctx, &key_perma); printf("ecp_sock_create RV:%d\n", rv); rv = ecp_addr_init(&addr, argv[1]); printf("ecp_addr_init RV:%d\n", rv); rv = ecp_sock_open(&sock, &addr); printf("ecp_sock_open RV:%d\n", rv); rv = ecp_start_receiver(&sock); printf("ecp_start_receiver RV:%d\n", rv); if (argc == 5) { ECPNode node; ecp_ecdh_public_t node_pub; rv = ecp_util_load_pub(&node_pub, argv[4]); printf("ecp_util_load_pub RV:%d\n", rv); ecp_node_init(&node, &node_pub, NULL); rv = ecp_node_set_addr(&node, argv[3]); printf("ecp_node_set_addr RV:%d\n", rv); ecp_vlink_init(&conn, &sock); rv = ecp_conn_open(&conn, &node); printf("ecp_conn_open RV:%d\n", rv); } while (1) sleep(1); }