From 87c561574e4d5f7ac555b280d7deac6845be54c5 Mon Sep 17 00:00:00 2001 From: Quentin Dufour Date: Wed, 4 Sep 2019 11:06:47 +0200 Subject: [PATCH] WIP evaluation Tor --- scripts/Makefile | 22 ++++++++++++++++++++++ scripts/dup2-client | 3 ++- scripts/dup2-server | 9 ++++++++- src/proxy.c | 4 ++++ 4 files changed, 36 insertions(+), 2 deletions(-) diff --git a/scripts/Makefile b/scripts/Makefile index f68ca36..d0482db 100644 --- a/scripts/Makefile +++ b/scripts/Makefile @@ -13,3 +13,25 @@ tor_bw_finale: orig-server, orig-server, orig-server, orig-server . \ tor3 -f /etc/torrc_simple, tor3 -f /etc/torrc_simple, tor3 -f /etc/torrc_simple, tor3 -f /etc/torrc_simple . \ tor3 -f /etc/torrc_simple, tor3 -f /etc/torrc_simple, tor3 -f /etc/torrc_simple, tor3 -f /etc/torrc_simple + +tor_guards_small: + ./run-3 \ + 1 . \ + dup2-client 600 100 100 8, \ + dup2-client 600 100 100 8, \ + dup2-client 600 100 100 8, \ + dup2-client 600 100 100 8 . \ + dup2-server 8, \ + dup2-server 8, \ + dup2-server 8, \ + dup2-server 8 . \ + tor3 -f /etc/torrc_guard_1, \ + tor3 -f /etc/torrc_guard_3, \ + tor3 -f /etc/torrc_guard_5, \ + tor3 -f /etc/torrc_simple . \ + tor3 -f /etc/torrc_guard_1, \ + tor3 -f /etc/torrc_guard_3, \ + tor3 -f /etc/torrc_guard_5, \ + tor3 -f /etc/torrc_simple + + diff --git a/scripts/dup2-client b/scripts/dup2-client index d8ccc2e..f814651 100755 --- a/scripts/dup2-client +++ b/scripts/dup2-client @@ -4,7 +4,8 @@ donar \ -a dup2 \ -c \ -o $5/shared/onion_services.pub \ - -l $4 + -l $4 \ + -b \ -r 9000 \ > $5/log/client-donar-stdout.log 2> $5/log/client-donar-stderr.log & sleep 2 diff --git a/scripts/dup2-server b/scripts/dup2-server index 6b01e52..6272c17 100755 --- a/scripts/dup2-server +++ b/scripts/dup2-server @@ -2,5 +2,12 @@ mkdir -p $2/{log,shared} cd $2/shared -donar -a dup2 -s -l $1 -e 9000 > ../log/server-donar-stdout.log 2> ../log/server-donar-stderr.log & +donar \ + -a dup2 \ + -s \ + -l $1 \ + -b \ + -e 9000 \ +> ../log/server-donar-stdout.log 2> ../log/server-donar-stderr.log & + udpecho -p 9000 > ../log/server-udpecho-stdout.log 2> ../log/server-udpecho-stderr.log diff --git a/src/proxy.c b/src/proxy.c index 1d0e169..f0d5aad 100644 --- a/src/proxy.c +++ b/src/proxy.c @@ -102,6 +102,9 @@ int main_on_tcp_write(struct evt_core_ctx* ctx, struct evt_core_fdinfo* fdinfo) // 1. Get current write buffer OR a buffer from the waiting queue OR leave if ((bp = get_write_buffer(&app_ctx->br, fdinfo)) == NULL) return 1; + // 1.5. Prevent buffer sending if we are still bootstrapping... + if (app_ctx->ap.is_waiting_bootstrap && !app_ctx->is_rdy) goto free_buffer; + // 2. Write data from the buffer to the socket while (bp->mode == BP_WRITING) { write_res = write_packet_to_tcp(fdinfo, bp); @@ -109,6 +112,7 @@ int main_on_tcp_write(struct evt_core_ctx* ctx, struct evt_core_fdinfo* fdinfo) if (write_res == FDS_AGAIN) return 1; } +free_buffer: // 3. A whole packet has been written // Release the buffer and notify mv_buffer_wtof(&app_ctx->br, fdinfo);