‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐ On Monday, October 12, 2020 10:36 PM, Karl <gmkarl@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#L... 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#L... 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,