Fix tcp port bug

This commit is contained in:
Quentin 2021-01-14 13:23:40 +01:00
parent ecab4c66d2
commit 0927433344

View file

@ -418,11 +418,11 @@ void spawn_tcp_client(struct evt_core_ctx* evts) {
register_timer (evts, mctx, &ms, NULL); register_timer (evts, mctx, &ms, NULL);
} }
void spawn_tcp_server(struct evt_core_ctx* evts, uint16_t *ports) { void spawn_tcp_server(struct evt_core_ctx* evts, uint16_t port) {
char buffer[1024]; char buffer[1024];
int tcp_serv_sock, err; int tcp_serv_sock, err;
sprintf(buffer, "%d", ports[0]); sprintf(buffer, "%d", port);
tcp_serv_sock = create_tcp_server ("0.0.0.0", buffer); tcp_serv_sock = create_tcp_server ("0.0.0.0", buffer);
err = listen(tcp_serv_sock, SOMAXCONN); err = listen(tcp_serv_sock, SOMAXCONN);
@ -432,13 +432,13 @@ void spawn_tcp_server(struct evt_core_ctx* evts, uint16_t *ports) {
fdinfo.url = buffer; fdinfo.url = buffer;
fdinfo.fd = tcp_serv_sock; fdinfo.fd = tcp_serv_sock;
sprintf(buffer, "tcp:co:127.0.0.1:%d", ports[0]); sprintf(buffer, "tcp:co:127.0.0.1:%d", port);
fdinfo.cat->name = "tcp-co"; fdinfo.cat->name = "tcp-co";
evt_core_add_fd(evts, &fdinfo); evt_core_add_fd(evts, &fdinfo);
printf("--- TCP server is listening\n"); printf("--- TCP server is listening\n");
} }
void measlat_create_onion_services(struct tor_os_str* tos, struct tor_ctl* tctl, uint16_t* ports, int ports_count, enum TOR_ONION_FLAGS tof) { void measlat_create_onion_services(struct tor_os_str* tos, struct tor_ctl* tctl, uint16_t port, enum TOR_ONION_FLAGS tof) {
tor_os_create (tos, "onion_services.pub", "onion_services.txt", 1); tor_os_create (tos, "onion_services.pub", "onion_services.txt", 1);
tor_os_read (tos); tor_os_read (tos);
@ -448,7 +448,7 @@ void measlat_create_onion_services(struct tor_os_str* tos, struct tor_ctl* tctl,
fprintf(stderr, "Unable to open Tor Socket\n"); fprintf(stderr, "Unable to open Tor Socket\n");
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
err = tor_ctl_add_onion (tctl, tos, ports, ports_count, tof); err = tor_ctl_add_onion (tctl, tos, &port, 1, tof);
if (err != 0) { if (err != 0) {
fprintf(stderr, "Unable to create Onion Services (error: %d)\n", err); fprintf(stderr, "Unable to create Onion Services (error: %d)\n", err);
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
@ -456,9 +456,9 @@ void measlat_create_onion_services(struct tor_os_str* tos, struct tor_ctl* tctl,
printf("--- Onion services created\n"); printf("--- Onion services created\n");
} }
void spawn_onion_server(struct evt_core_ctx* evts, uint16_t *ports, int ports_count, struct tor_os_str* tos, struct tor_ctl* tctl, struct measlat_ctx* mctx) { void spawn_onion_server(struct evt_core_ctx* evts, uint16_t port, struct tor_os_str* tos, struct tor_ctl* tctl, struct measlat_ctx* mctx) {
spawn_tcp_server(evts, ports); spawn_tcp_server(evts, port);
measlat_create_onion_services (tos, tctl, ports, ports_count, mctx->tor_flags); measlat_create_onion_services (tos, tctl, port, mctx->tor_flags);
} }
int main(int argc, char** argv) { int main(int argc, char** argv) {
@ -470,8 +470,6 @@ int main(int argc, char** argv) {
struct evt_core_ctx evts = {0}; struct evt_core_ctx evts = {0};
struct tor_os_str tos = {0}; struct tor_os_str tos = {0};
struct tor_ctl tctl = {0}; struct tor_ctl tctl = {0};
uint16_t ports[] = {7500};
int ports_count = sizeof(ports) / sizeof(ports[0]);
// 1. Parse parameters // 1. Parse parameters
while ((opt = getopt(argc, argv, "vh:p:c:s:i:t:ln")) != -1) { while ((opt = getopt(argc, argv, "vh:p:c:s:i:t:ln")) != -1) {
@ -525,8 +523,8 @@ int main(int argc, char** argv) {
// 4. Register services // 4. Register services
if (mctx.role == MEASLAT_SERVER) { if (mctx.role == MEASLAT_SERVER) {
if (streq(mctx.transport, "udp")) spawn_udp_server (&evts); if (streq(mctx.transport, "udp")) spawn_udp_server (&evts);
else if (streq(mctx.transport, "tcp")) spawn_tcp_server(&evts, ports); else if (streq(mctx.transport, "tcp")) spawn_tcp_server(&evts, atoi(mctx.port));
else if (streq(mctx.transport, "tor")) spawn_onion_server (&evts, ports, ports_count, &tos, &tctl, &mctx); else if (streq(mctx.transport, "tor")) spawn_onion_server (&evts, atoi(mctx.port), &tos, &tctl, &mctx);
} }
else if (mctx.role == MEASLAT_CLIENT) { else if (mctx.role == MEASLAT_CLIENT) {
if (streq(mctx.transport, "udp")) spawn_udp_client(&evts); if (streq(mctx.transport, "udp")) spawn_udp_client(&evts);