From 109f39e09630409a30a9f4e8183f539c499f07ba Mon Sep 17 00:00:00 2001 From: Uros Majstorovic Date: Mon, 3 Jun 2024 04:06:21 +0200 Subject: improved (v)conn init / open / init vlink / open vlink API; implemented randezvous hashing --- ecp/server/server.c | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) (limited to 'ecp/server/server.c') diff --git a/ecp/server/server.c b/ecp/server/server.c index a7140a1..fd8b317 100644 --- a/ecp/server/server.c +++ b/ecp/server/server.c @@ -42,7 +42,7 @@ SRVConfig *srv_get_config(void) { } static void handle_err(ECPConnection *conn, unsigned char mtype, int err) { - LOG(LOG_ERR, "handle_err: ctype:%d mtype:%d err:%d\n", conn->type, mtype, err); + LOG(LOG_ERR, "handle_err: ctype:0x%.2x mtype:0x%.2x err:%d\n", conn->type, mtype, err); } static ssize_t conn_auth(ECPSocket *sock, ECPConnection *parent, unsigned char ctype, ecp_ecdh_public_t *public, unsigned char *msg, size_t msg_size) { @@ -307,20 +307,19 @@ static void dir_result(ECPSocket *sock, ECPDirList *list, int rv) { int main(int argc, char *argv[]) { char *endptr; - unsigned int rcvr_num; char *init_switch; - ECPNode node; + ecp_ecdh_public_t remote_pub; + ecp_tr_addr_t remote_addr; ECPContext ctx; ECPSocket sock; ECPConnection dir_conn; ECPConnHandler vconn_handler; ECPConnHandler vlink_handler; ECPConnHandler dir_handler; - int _argi, _argc, fd; + int _argi, _argc, remote, fd; int rv; memset(&srv_config, 0, sizeof(srv_config)); - memset(&node, 0, sizeof(node)); if (argc < 1) fail("Bad argument count\n"); @@ -443,21 +442,19 @@ int main(int argc, char *argv[]) { if (rv) fail("ACL load failed\n"); } + remote = 0; if (_argc == 2) { - ecp_ecdh_public_t node_pub; - + remote = 1; fd = open(argv[_argi], O_RDONLY); if (fd < 0) fail("Unable to open public key file: %s\n", argv[_argi]); - rv = ecp_util_read_key(fd, &node_pub, NULL, NULL); + rv = ecp_util_read_key(fd, &remote_pub, NULL, NULL); close(fd); if (rv) fail("Bad public key file: %s\n", argv[_argi]); _argi++; _argc--; - ecp_node_init(&node, &node_pub, NULL); - - rv = ecp_node_set_addr(&node, argv[_argi]); + rv = ecp_addr_init(&remote_addr, argv[_argi]); if (rv) fail("Bad remote address: %s\n", argv[_argi]); _argi++; _argc--; @@ -512,12 +509,12 @@ int main(int argc, char *argv[]) { if (rv) fail("start_receivers err:%d\n", rv); init_switch = getenv("ECP_INITSW"); - if (node.key_perma.valid) { + if (remote) { if (init_switch == NULL) { rv = ecp_dir_set_handler(&ctx, &dir_handler, dir_result); if (rv) fail("ecp_dir_set_handler err:%d\n", rv); - rv = ecp_dir_get(&dir_conn, &sock, &node, 0); + rv = ecp_dir_get(&dir_conn, &sock, &remote_pub, &remote_addr, 0); if (rv) fail("ecp_dir_get err:%d\n", rv); pthread_mutex_lock(&dir_sync_mutex); @@ -527,7 +524,7 @@ int main(int argc, char *argv[]) { pthread_mutex_unlock(&dir_sync_mutex); LOG(LOG_DEBUG, "ecp_dir_get: done\n"); } else { - rv = dir_init_ann(&sock, &node); + rv = dir_init_ann(&sock, &remote_pub, &remote_addr); if (rv) fail("dir_init_ann err:%d\n", rv); } } -- cgit v1.2.3