fix: remove retry_timer, use waiter-based round-robin on send_q for fairness
- tcp_proxy_server: drain_cb uses etcp_router_on_send_ready instead of retry_timer - socks_proxy: on_read_cb + tx_waiter_cb use etcp_router_on_send_ready instead of waiter_register - Result: FIFO round-robin via ll_queue waiters on send_q, all streams get fair share - No timers — wakeup is event-driven via queue_data_get → check_waiters - TCP backpressure: read_queue callback_suspended prevents over-reading
This commit is contained in:
1 parent
5b850ea5da
commit
ba14e31e09
4 files changed
+12
-32
No files matched your search
@@ -304,13 +304,13 @@ static int worker_main(int wtype, const char* socks_proxy, const char* http_prox
|
||||
unlink(f1); unlink(out);
|
||||
|
||||
snprintf(cmd, sizeof(cmd),
|
||||
"curl -s -I --connect-timeout 10 --max-time 30 -x http://%s %s/f_1k.bin 2>/dev/null | head -1 | grep -q '200 OK'",
|
||||
"curl -s -I --connect-timeout 15 --max-time 30 -x http://%s %s/f_1k.bin 2>/dev/null | head -1 | grep -q '200 OK'",
|
||||
http_proxy, url_http);
|
||||
if (system(cmd) != 0) { fprintf(stderr, "[FAIL] %s HEAD 200\n", tname); return 1; }
|
||||
|
||||
snprintf(out, sizeof(out), "%s/opt_%d.txt", tmpdir, getpid());
|
||||
snprintf(cmd, sizeof(cmd),
|
||||
"curl -s -i --connect-timeout 10 --max-time 30 -x http://%s -X OPTIONS -o %s %s/f_1k.bin 2>/dev/null",
|
||||
"curl -s -i --connect-timeout 15 --max-time 30 -x http://%s -X OPTIONS -o %s %s/f_1k.bin 2>/dev/null",
|
||||
http_proxy, out, url_http);
|
||||
if (system(cmd) != 0) { fprintf(stderr, "[FAIL] %s OPTIONS curl\n", tname); return 1; }
|
||||
snprintf(cmd, sizeof(cmd), "grep -q 'Allow:' %s", out);
|
||||
|
||||
Reference in new issue
Block a user