Handle RELAY_TRUNCATED cells less incorrectly
When Arti gets a TRUNCATED cell now, it says: "Received Truncated cell that we can't handle, terminating circuit!"
I wrote it that way based on the incorrect impression that Tor doesn't send TRUNCATED cells. But it turns out, Tor does! It's in src/core/or/command.c, in the function command_process_destroy_cell
.
Now, Tor doesn't actually do anything special with TRUNCATED cells: instead it just decides to tear down the circuit. (See circuit_truncated()
in src/core/or/circuitbuild.c.) But we should at least make the following changes:
- Report the reason for the circuit failure that comes from the TRUNCATED cell.
- Not treat the cell as 'unhandled'.