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