Trac issueshttps://gitlab.torproject.org/legacy/trac/-/issues2020-06-13T15:35:18Zhttps://gitlab.torproject.org/legacy/trac/-/issues/28755Implement a K/V parser library2020-06-13T15:35:18ZDavid Gouletdgoulet@torproject.orgImplement a K/V parser libraryThe key/value format K=V is used extensively in the Tor code and seems many places uses their own way to parse that.
This ticket is for implementing a library to parse such K/V construction. There is a world where we might require V to ...The key/value format K=V is used extensively in the Tor code and seems many places uses their own way to parse that.
This ticket is for implementing a library to parse such K/V construction. There is a world where we might require V to be quoted or not so I'll let this challenge to the implementer(s).
This ticket comes from the work done in #28179 that implements messages from the PT to the Tor process.Tor: 0.4.0.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/legacy/trac/-/issues/28180Signal mechanism from PT processes to Tor2020-06-13T15:33:15ZAlexander Færøyahf@torproject.orgSignal mechanism from PT processes to TorOnce #28179 is done we now have bi-directional communication between the PT process and Tor itself.
We need a method where a PT process can signal to Tor different events that has occurred. This could be things like "Unable to connect t...Once #28179 is done we now have bi-directional communication between the PT process and Tor itself.
We need a method where a PT process can signal to Tor different events that has occurred. This could be things like "Unable to connect to {host}:{port}".
Once we receive these messages from the PT we should expose them via the ControlPort for Tor Browser and friends to be able to act upon them.
This ticket is a tracker ticket for all of this work. Ideally we need to figure out the right way to do this mechanism (is it an update to the PT spec?) and we might also want to update `goptlib` to support this feature to let PT developers use it right away.Tor: 0.4.0.x-finalDavid Gouletdgoulet@torproject.orgDavid Gouletdgoulet@torproject.orghttps://gitlab.torproject.org/legacy/trac/-/issues/28179Handle output from PT processes with the event loop2020-06-13T18:35:29ZAlexander Færøyahf@torproject.orgHandle output from PT processes with the event loopCurrently the output from stdout/stderr of a PT process is only read during the startup of the process. The reading process uses read() on a non-blocking socket, which currently seems to work, but have proved to be flaky.
We should ensu...Currently the output from stdout/stderr of a PT process is only read during the startup of the process. The reading process uses read() on a non-blocking socket, which currently seems to work, but have proved to be flaky.
We should ensure that PT processes' output can be read all the time.
On Windows we cannot attach the pipes to the main loop because of limitations of the `select()` API, so we have to do something slightly worse such as reading from the stdout/stderr handle via a timer as long as the processes are alive.Tor: 0.4.0.x-finalAlexander Færøyahf@torproject.orgAlexander Færøyahf@torproject.org