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);
}
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];
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);
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.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";
evt_core_add_fd(evts, &fdinfo);
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_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");
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) {
fprintf(stderr, "Unable to create Onion Services (error: %d)\n", err);
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");
}
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) {
spawn_tcp_server(evts, ports);
measlat_create_onion_services (tos, tctl, ports, ports_count, mctx->tor_flags);
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, port);
measlat_create_onion_services (tos, tctl, port, mctx->tor_flags);
}
int main(int argc, char** argv) {
@ -470,8 +470,6 @@ int main(int argc, char** argv) {
struct evt_core_ctx evts = {0};
struct tor_os_str tos = {0};
struct tor_ctl tctl = {0};
uint16_t ports[] = {7500};
int ports_count = sizeof(ports) / sizeof(ports[0]);
// 1. Parse parameters
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
if (mctx.role == MEASLAT_SERVER) {
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, "tor")) spawn_onion_server (&evts, ports, ports_count, &tos, &tctl, &mctx);
else if (streq(mctx.transport, "tcp")) spawn_tcp_server(&evts, atoi(mctx.port));
else if (streq(mctx.transport, "tor")) spawn_onion_server (&evts, atoi(mctx.port), &tos, &tctl, &mctx);
}
else if (mctx.role == MEASLAT_CLIENT) {
if (streq(mctx.transport, "udp")) spawn_udp_client(&evts);