• Roger Dingledine's avatar
    major overhaul: dns slave subsystem, topics · c35373a2
    Roger Dingledine authored
    on startup, it forks off a master dns handler, which forks off dns
    slaves (like the apache model). slaves as spawned as load increases,
    and then reused. excess slaves are not ever killed, currently.
    implemented topics. each topic has a receive window in each direction
    at each edge of the circuit, and sends sendme's at the data level, as
    per before. each circuit also has receive windows in each direction at
    each hop; an edge sends a circuit-level sendme as soon as enough data
    cells have arrived (regardless of whether the data cells were flushed
    to the exit conns). removed the 'connected' cell type, since it's now
    a topic command within data cells.
    at the edge of the circuit, there can be multiple connections associated
    with a single circuit. you find them via the linked list conn->next_topic.
    currently each new ap connection starts its own circuit, so we ought
    to see comparable performance to what we had before. but that's only
    because i haven't written the code to reattach to old circuits. please
    try to break it as-is, and then i'll make it reuse the same circuit and
    we'll try to break that.