connection_ap_process_end_not_open() does not handle END_STREAM_REASON_DONE correctly
< oftc_must_be_destroyed> I found some nice stucking for streams
< oftc_must_be_destroyed> onnection_ap_process_end_not_open() counts every reasons without excpetion assume it will translated to socks answer as failure code. but!
< oftc_must_be_destroyed> END_STREAM_REASON_DONE translated to SOCKS5_SUCCEEDED
< oftc_must_be_destroyed> did you got it?
< oftc_must_be_destroyed> exit closed conn but socks client assume it successly open.
< oftc_must_be_destroyed> stuck
< oftc_must_be_destroyed> connection_ap_process_end_not_open should to count END_STREAM_REASON_DONE specificaly and modify it to some reason about error.
< asn_> oftc_must_be_destroyed: IIUC connection_ap_process_end_not_open() must consider END_STREAM_REASON_DONE as an error, but it doesn't.
< asn_> oftc_must_be_destroyed: and instead of killing the SOCKS stream, it's marked as established.
< asn_> oftc_must_be_destroyed: or something.
< oftc_must_be_destroyed> well it marking for close anyway
< oftc_must_be_destroyed> but client sees success
< oftc_must_be_destroyed> socks client
< oftc_must_be_destroyed> and nexit conn closed. suddenly
< oftc_must_be_destroyed> exit answer with END_STREAM_REASON_DONE if eof or EPIPE
< oftc_must_be_destroyed> it's better to count END_STREAM_REASON_DONE as END_STREAM_REASON_MISC while process it by connection_ap_process_end_not_open
issue