1

Using the Linux onioncircuits package or carml monitor, I see circuits for onions that I'm accessing (client-side circuits). I also see circuits for onions that I'm hosting, and accessing from another machine (onion-side circuits).

However, I only see streams attached to client-side circuits. Streams attached to HS_CLIENT_REND circuits are the most persistent. I see no streams attached to onion-side circuits (HS_SERVICE_HSDIR, HS_SERVICE_INTRO or HS_SERVICE_REND).

How might I display them?

Edit: In .../txtorcon/stream.py I see, at line 25:

class Stream(object):
    """
    Represents an active stream in Tor's state (:class:`txtorcon.TorState`).
    ...
    :ivar state:
        Tor's idea of the stream's state, one of:
          - NEW: New request to connect
          - NEWRESOLVE: New request to resolve an address
          - REMAP: Address re-mapped to another
          - SENTCONNECT: Sent a connect cell along a circuit
          - SENTRESOLVE: Sent a resolve cell along a circuit
          - SUCCEEDED: Received a reply; stream established
          - FAILED: Stream failed and not retriable
          - CLOSED: Stream closed
          - DETACHED: Detached from circuit; still retriable

    :ivar target_host:
        Something like www.example.com -- the host the stream is destined for.

That implies to me that :class:txtorcon.TorState only includes client-side streams. But perhaps I'm reading too literally.

1 Answer 1

1

After reading control-spec.txt, I understand. I think.

It's just that only client-side circuits have streams. Onion-side circuits simply handle cells. At lines 2023-2035, for example:

   The "PURPOSE" field is provided only in versions 0.2.1.6-alpha and
   later, and only if extended events are enabled (see 3.19).  Clients
   MUST accept purposes not listed above.  Purposes are defined as
   follows:

      GENERAL         (circuit for AP and/or directory request streams)
      HS_CLIENT_INTRO (HS client-side introduction-point circuit)
      HS_CLIENT_REND  (HS client-side rendezvous circuit; carries AP streams)
      HS_SERVICE_INTRO (HS service-side introduction-point circuit)
      HS_SERVICE_REND (HS service-side rendezvous circuit)
      TESTING         (reachability-testing circuit; carries no traffic)
      CONTROLLER      (circuit built by a controller)
      MEASURE_TIMEOUT (circuit being kept around to see how long it takes)

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .