Some fix
This commit is contained in:
parent
009f80509c
commit
1262d08278
7 changed files with 106 additions and 31 deletions
83
scripts/2021/torfone
Executable file
83
scripts/2021/torfone
Executable file
|
@ -0,0 +1,83 @@
|
|||
#!/bin/bash
|
||||
|
||||
SOCK_PORT=$((9000+$1))
|
||||
CONTROL_PORT=$((9100+$1))
|
||||
LOCAL_PORT=$((9200+$1))
|
||||
DONAR_PORT=$((7000+$1*12))
|
||||
|
||||
touch /tmp/empty
|
||||
echo "tor daemon serv"
|
||||
/usr/bin/tor \
|
||||
-f /tmp/empty --defaults-torrc /tmp/empty \
|
||||
--hush \
|
||||
--UseEntryGuards 0 \
|
||||
--SocksPort 0 \
|
||||
--ControlPort $CONTROL_PORT \
|
||||
--DataDirectory /tmp/tor$CONTROL_PORT &
|
||||
sleep 1
|
||||
|
||||
echo "tor client serv"
|
||||
/usr/bin/tor \
|
||||
-f /tmp/empty --defaults-torrc /tmp/empty \
|
||||
--hush \
|
||||
--UseEntryGuards 0 \
|
||||
--SocksPort "127.0.0.1:$SOCK_PORT IsolateDestPort IsolateDestAddr IsolateClientAddr" \
|
||||
--DataDirectory /tmp/tor$SOCK_PORT &
|
||||
sleep 1
|
||||
|
||||
echo "donar serv"
|
||||
rm -rf state_$LOCAL_PORT/
|
||||
mkdir state_$LOCAL_PORT/
|
||||
pushd .
|
||||
cd state_$LOCAL_PORT/
|
||||
/usr/local/bin/donar \
|
||||
-s \
|
||||
-a dup2 \
|
||||
-q $CONTROL_PORT \
|
||||
-k $DONAR_PORT \
|
||||
-l 2 \
|
||||
-e $LOCAL_PORT &
|
||||
sleep 1
|
||||
|
||||
echo "donar client"
|
||||
/usr/local/bin/donar \
|
||||
-c \
|
||||
-a dup2 \
|
||||
-q $SOCK_PORT \
|
||||
-k $DONAR_PORT \
|
||||
-o ./onion_services.pub \
|
||||
-l 2 \
|
||||
-r $LOCAL_PORT &
|
||||
sleep 1
|
||||
popd
|
||||
|
||||
echo "measlat serv"
|
||||
/usr/local/bin/measlat \
|
||||
-l \
|
||||
-t udp \
|
||||
-h 127.0.0.1 \
|
||||
-p $LOCAL_PORT \
|
||||
-c 135 \
|
||||
-i 40 \
|
||||
-s 172 &
|
||||
sleep 1
|
||||
|
||||
echo "measlat client bootstrap"
|
||||
/usr/local/bin/measlat \
|
||||
-t udp \
|
||||
-h 127.13.3.7 \
|
||||
-p $LOCAL_PORT \
|
||||
-b \
|
||||
-c 1 \
|
||||
-i 1000 \
|
||||
-s 172
|
||||
|
||||
echo "measlat client collect"
|
||||
/usr/local/bin/measlat \
|
||||
-t udp \
|
||||
-h 127.13.3.7 \
|
||||
-p $LOCAL_PORT \
|
||||
-c 135 \
|
||||
-i 40 \
|
||||
-s 172
|
||||
|
|
@ -83,6 +83,10 @@ int main(int argc, char** argv) {
|
|||
if (dp.tor_port == NULL) dp.tor_port = dp.is_client ? "9050" : "9051";
|
||||
if (dp.algo == NULL) goto in_error;
|
||||
|
||||
fprintf(stderr, "Passed parameters: client=%d, server=%d, algo=%s, exposed_ports=%d, remote_ports=%d, transfer_base_port=%d, tor_daemon_port=%s, onion_file=%s, links=%d, duplication=%d,%d\n",
|
||||
dp.is_client, dp.is_server, dp.algo, dp.exposed_ports->len, dp.remote_ports->len, dp.base_port, dp.tor_port, dp.onion_file, dp.links, dp.fresh_data, dp.redundant_data);
|
||||
|
||||
|
||||
if (dp.is_server) {
|
||||
struct donar_server_ctx ctx;
|
||||
if (dp.exposed_ports->len < 1 && dp.remote_ports->len < 1) goto in_error;
|
||||
|
|
|
@ -53,7 +53,7 @@ enum DONAR_TIMER_DECISION reinit_socks5(struct evt_core_ctx* ctx, void* user_dat
|
|||
struct donar_client_ctx* app_ctx = cat->app_ctx;
|
||||
int64_t pos = (int64_t) user_data; // trust me...
|
||||
|
||||
fprintf(stdout, "[%s][donar-client] We have waited enough, retriggering socks5 for port %ld\n", current_human_datetime (), pos+7500);
|
||||
fprintf(stdout, "[%s][donar-client] We have waited enough, retriggering socks5 for port %ld\n", current_human_datetime (), app_ctx->base_port+pos);
|
||||
init_socks5_client (app_ctx, pos);
|
||||
return DONAR_TIMER_STOP;
|
||||
}
|
||||
|
@ -62,7 +62,7 @@ int on_socks5_failed(struct evt_core_ctx* ctx, struct evt_core_fdinfo* fdinfo) {
|
|||
struct donar_client_ctx* app_ctx = fdinfo->cat->app_ctx;
|
||||
struct socks5_ctx* s5ctx = fdinfo->other;
|
||||
int64_t pos = 0;
|
||||
pos = s5ctx->port - 7500;
|
||||
pos = s5ctx->port - app_ctx->base_port;
|
||||
int64_t to_wait_sec = 30 + pos*3;
|
||||
|
||||
fprintf(stdout, "[%s][donar-client] Retriggering socks5 in %ld seconds for port %d\n", current_human_datetime (), to_wait_sec, s5ctx->port);
|
||||
|
@ -88,11 +88,18 @@ void init_socks5_sinks(struct donar_client_ctx* app_ctx) {
|
|||
}
|
||||
|
||||
int donar_client_stream_repair(struct evt_core_ctx* ctx, struct evt_core_fdinfo* fdinfo) {
|
||||
struct evt_core_cat* cat = evt_core_get_from_cat (ctx, "socks5-failed");
|
||||
if (cat == NULL) {
|
||||
fprintf(stderr, "Unable to reconnect stream as socks5-failed cat is not available...\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
struct donar_client_ctx* app_ctx = cat->app_ctx;
|
||||
|
||||
fprintf(stdout, "[%s][donar-client] %s broke\n", current_human_datetime (), fdinfo->url);
|
||||
struct evt_core_fdinfo* fdtarget = NULL;
|
||||
int port = url_get_port_int (fdinfo->url);
|
||||
int64_t pos = 0, removed = 0;
|
||||
pos = port - 7500;
|
||||
pos = port - app_ctx->base_port;
|
||||
char buffer[256];
|
||||
|
||||
sprintf(buffer, "tcp:read:127.0.0.1:%d", port);
|
||||
|
@ -160,7 +167,7 @@ void donar_client(struct donar_client_ctx* ctx, struct donar_params* dp) {
|
|||
|
||||
for (int64_t i = 0; i < dp->links; i++) {
|
||||
int64_t to_wait_sec = i * 3;
|
||||
fprintf(stdout, "[%s][donar-client] Triggering socks5 in %ld seconds for port %ld\n", current_human_datetime (), to_wait_sec, i+7500);
|
||||
fprintf(stdout, "[%s][donar-client] Triggering socks5 in %ld seconds for port %ld\n", current_human_datetime (), to_wait_sec, i+dp->base_port);
|
||||
set_timeout(&ctx->evts, 1000 * to_wait_sec, (void*) i, reinit_socks5);
|
||||
}
|
||||
printf("--- TCP Clients Connected\n");
|
||||
|
|
|
@ -57,7 +57,7 @@ int donar_server_stream_repair(struct evt_core_ctx* ctx, struct evt_core_fdinfo*
|
|||
|
||||
struct evt_core_fdinfo* fdtarget = NULL;
|
||||
int port = url_get_port_int (fdinfo->url);
|
||||
int pos = port - 7500, removed = 0;
|
||||
int removed = 0;
|
||||
char buffer[256];
|
||||
|
||||
sprintf(buffer, "tcp:read:127.0.0.1:%d", port);
|
||||
|
@ -78,24 +78,6 @@ int donar_server_stream_repair(struct evt_core_ctx* ctx, struct evt_core_fdinfo*
|
|||
return 1;
|
||||
}
|
||||
|
||||
struct donar_server_os_republish_params {
|
||||
struct donar_server_ctx* dctx;
|
||||
struct donar_params* dp;
|
||||
};
|
||||
/*
|
||||
void republish_tor_os(struct evt_core_ctx* ctx, void* user_data) {
|
||||
struct donar_server_os_republish_params* dsorp = user_data;
|
||||
|
||||
int err = 0;
|
||||
printf("Republish Tor OS\n");
|
||||
err = tor_ctl_add_onion (&dsorp->dctx->tctl, &dsorp->dctx->tos, dsorp->dctx->ports, dsorp->dp->tof);
|
||||
if (err != 0) {
|
||||
fprintf(stderr, "Unable to create Onion Services (error: %d)\n", err);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
printf("Republish Tor OS\n");
|
||||
}*/
|
||||
|
||||
void donar_server(struct donar_server_ctx* ctx, struct donar_params* dp) {
|
||||
struct algo_params ap = {
|
||||
.is_waiting_bootstrap = dp->is_waiting_bootstrap,
|
||||
|
@ -126,9 +108,6 @@ void donar_server(struct donar_server_ctx* ctx, struct donar_params* dp) {
|
|||
ctx->tctl.os_endpoint = dp->my_ip_for_tor;
|
||||
create_onion_services (&(ctx->tos), &(ctx->tctl), dp->tor_ip, dp->tor_port, ctx->ports, dp->links, dp->tof);
|
||||
ugly_global_tctl = &(ctx->tctl);
|
||||
/*struct donar_server_os_republish_params dsorp = { .dctx = ctx, dp = dp};
|
||||
init_timer(&(ctx->evts));
|
||||
set_timeout(&(ctx->evts), 1000, &dsorp, republish_tor_os); */
|
||||
printf("--- Onion services created\n");
|
||||
|
||||
g_ptr_array_foreach (dp->remote_ports, (void(*)(void*, void*))init_udp_remote, &(ctx->evts));
|
||||
|
|
|
@ -38,6 +38,8 @@ void evt_core_init(struct evt_core_ctx* ctx, uint8_t verbose) {
|
|||
}
|
||||
ctx->verbose = verbose;
|
||||
ctx->loop = 1;
|
||||
ctx->blacklisted_fds_count = 0;
|
||||
memset(ctx->blacklisted_fds, 0, EVT_CORE_MAX_EVENTS*sizeof(int));
|
||||
ctx->catlist = g_hash_table_new_full(g_str_hash, g_str_equal,NULL, free_cat);
|
||||
ctx->socklist = g_hash_table_new_full(g_int_hash, g_int_equal, NULL, free_fdinfo);
|
||||
ctx->urltofd = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, NULL);
|
||||
|
|
|
@ -89,15 +89,15 @@ int on_receive_measure_packet_err(struct evt_core_ctx* ctx, struct evt_core_fdin
|
|||
|
||||
sprintf(url, "timer:%d", fdinfo->fd);
|
||||
struct evt_core_fdinfo* assoc_timer = evt_core_get_from_url (ctx, url);
|
||||
if (assoc_timer != NULL) {
|
||||
if (mctx->role == MEASLAT_CLIENT) measure_summary (&mctx->mp, assoc_timer->other);
|
||||
if (assoc_timer != NULL && !mctx->mp.probe && !mctx->connectionless) {
|
||||
if (mctx->role == MEASLAT_CLIENT && !mctx->mp.probe) measure_summary (&mctx->mp, assoc_timer->other);
|
||||
evt_core_rm_fd (ctx, assoc_timer->fd);
|
||||
printf("Deleted associated timer %s\n", url);
|
||||
} else {
|
||||
printf("No associated timer %s\n", url);
|
||||
}
|
||||
|
||||
if (mctx->role == MEASLAT_CLIENT) exit(EXIT_FAILURE);
|
||||
if (mctx->role == MEASLAT_CLIENT && !mctx->mp.probe) exit(EXIT_FAILURE);
|
||||
|
||||
if (mctx->connectionless) return 1; // keep the NET FD
|
||||
else return 0; // delete the NET fd
|
||||
|
@ -111,7 +111,7 @@ void measlat_stop(
|
|||
if (ms->mp_in->counter < mctx->mp.max_measure) return;
|
||||
if (ms->mp_out->counter < mctx->mp.max_measure) return;
|
||||
printf("[states] measurement %d+%d terminated\n", net_fd, timer_fd);
|
||||
if (mctx->role == MEASLAT_CLIENT) measure_summary (&(mctx->mp), ms);
|
||||
if (mctx->role == MEASLAT_CLIENT && !mctx->mp.probe) measure_summary (&(mctx->mp), ms);
|
||||
evt_core_rm_fd(ctx, timer_fd);
|
||||
if (!(mctx->connectionless && mctx->role == MEASLAT_SERVER))
|
||||
evt_core_rm_fd(ctx, net_fd);
|
||||
|
|
|
@ -93,7 +93,7 @@ int create_ip_server(char* host, char* service, int type) {
|
|||
}
|
||||
|
||||
if (cursor == NULL) {
|
||||
fprintf(stderr, "We failed to create socket or bind\n");
|
||||
fprintf(stderr, "We failed to create socket or bind for %s:%s (%d)\n", host, service, type);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue