‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Monday, October 12, 2020 10:36 PM, Karl <gmk...@gmail.com> wrote:
...
>     `tor_main` appears to be in tor_api.c .  If you want to memorize the
>     basics of how tor works, that's the next file to look in.  That's all
>     for now, folks!


for Unix like systems, you will enter tor here:
  https://github.com/torproject/tor/blob/master/src/app/main/main.c#L538

note that here you setup environment, signal handling, read configs, setup 
services (like hs, tracing, etc.) and then begin the main loop.

tor's main loop enters here:
  
https://github.com/torproject/tor/blob/master/src/core/mainloop/mainloop.c#L2340

you can see how the first time through, various one-time tasks are done, then 
afterward all threads in the event thread pool just process read/write events, 
again and again :)


if you're thinking of circuit padding, consider the client-edge padding 
capability already built:
  https://github.com/torproject/tor/blob/master/src/core/or/circuitpadding.c#L10

you could monitor sockets and streams for activity, then queue chaff traffic if 
needed to fill in toward target rate, or some time-delayed logarithmic 
fall-off...


have fun!

best regards,

Reply via email to