[tor-bugs] #7666 [Stem]: Support TAKEOWNERSHIP command

Tor Bug Tracker & Wiki blackhole at torproject.org
Sun Dec 9 10:03:55 UTC 2012


#7666: Support TAKEOWNERSHIP command
-------------------------+--------------------------------------------------
 Reporter:  lunar        |          Owner:  atagar      
     Type:  enhancement  |         Status:  needs_review
 Priority:  normal       |      Milestone:              
Component:  Stem         |        Version:              
 Keywords:               |         Parent:              
   Points:               |   Actualpoints:              
-------------------------+--------------------------------------------------

Comment(by rransom):

 Replying to [comment:7 atagar]:
 > > What kind of object does launch_tor return
 >
 > It provides a process. launch_tor() is not restricted to making a tor
 process with a control socket, and even if there is one launch_tor() won't
 know the password if HashedControlPassword was set.
 >
 > We could make a more restricted launch_tor* method that provides back a
 Controller.

 This would be useful for any program which has a good reason to use
 `TAKEOWNERSHIP`.

 > However, I'd rather invest our effort in making an is_local() check that
 actually works. You make a good point that it's non-trivial to figure out,
 but it would be a useful to detect for reasons other than TAKEOWNERSHIP.
 Suggestions on how to do that are welcome.

 A year or two ago, I would have tried to look for ways to detect that a
 Tor process is ‘local’ to a controller.  Now, I don't even know what
 ‘local’ should mean -- does it mean that Tor and the controller have the
 same process-ID namespace?  Does it mean that they can send signals to
 each other?  Does it mean that they have the same filesystem namespace?
 Does it mean that they could potentially share a chunk of memory?  Does it
 mean that `lockf` or `flock` or `fcntl` locks set by one process can be
 seen by the other?

 > > and how do callers obtain a Controller object from that one?
 >
 > There's a few ways. One would be...

 Ick.  This should be wrapped in a `launch_captive_tor` function, which
 should return an object which provides a Controller object and a factory
 object for SOCKS connections (presumably applications will want other
 things too).

 (I sure hope there's a function for that buried somewhere in BridgeT in
 ooni-probe.)

-- 
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/7666#comment:8>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list