‐‐‐‐‐‐‐ 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,