Exemple #1
0
def runControl(s):
    pendingEvents = [] #XXX This tric. should become standard
    TorControl._event_handler = pendingEvents.append
    TorControl.set_events(s,
                          [TorControl.EVENT_TYPE.CIRCSTATUS,
                           TorControl.EVENT_TYPE.STREAMSTATUS])
    TorControl.set_option(s,"__LeaveStreamsUnattached 1")
    while 1:
        e = pendingEvents[:]
        del pendingEvents[:]
        for ev in e:
            handleEvent(s, ev)
        _, tp, body = TorControl.receive_message(s)
        if tp == TorControl.MSG_TYPE.EVENT:
            handleEvent(s, body)
Exemple #2
0
def runControl(s):
    circs = {}
    s1, s2 = {}, {}
    _h = lambda body, circs=circs, s1=s1, s2=s2, s=s: handleEvent(
        s, body, circs, s1, s2)
    TorControl._event_handler = _h
    TorControl.set_events(
        s,
        [TorControl.EVENT_TYPE.CIRCSTATUS, TorControl.EVENT_TYPE.STREAMSTATUS])
    TorControl.set_option(s, "__LeaveStreamsUnattached 1")
    global N_CIRCS_DONE
    while N_CIRCS_DONE < N_CIRCS_TO_TRY:
        while len(circs) < CIRCS_AT_A_TIME:
            c, p = launchCirc(s)
            print "launching circuit %s to %s" % (c, p)
            circs[c] = p
        _, tp, body = TorControl.receive_message(s)
        if tp == TorControl.MSG_TYPE.EVENT:
            handleEvent(s, body, circs, s1, s2)
    i = HOST_STATUS.items()
    i.sort()
    for n, (all, good) in i:
        print "%s in %s circuits; %s/%s ok" % (n, all, good, all)