On 09.04.19 11:50, g4-l...@tonarchiv.ch wrote: > On 09.04.19 10:03, Tilo Eckert wrote: >> Your callback sends an EOF for every received EOF from the server. If >> your server does the same, you end up with EOF ping pong. You might want >> to check whether you already sent it before: channel->local_eof != 0 >> >> Btw, if you close the channel on your end, an EOF is sent automatically >> if one has not been sent, yet. > Hi Tilo, > > this is what my patch is doing: Checking for channel->local_eof != 0. > > But it's also an issue to poll on a socket which has EOF from the peer's > side...
Sorry, I did not read your message properly... My EOF callback is not relevant. The OpenSSH sents the EOF only once. So it's not a ping-pong: debug2: channel 0: rcvd eof debug2: channel 0: rcvd eof debug2: channel 0: rcvd eof [ ... ] debug2: channel 0: rcvd eof debug2: channel 0: rcvd eof debug2: channel 0: rcvd eof debug2: channel 0: rcvd eof debug2: channel 0: rcvd eof debug2: channel 0: rcvd eof debug2: channel 0: read<=0 rfd 8 len 0 debug2: channel 0: read failed debug2: channel 0: close_read debug2: channel 0: input open -> drain debug2: channel 0: ibuf empty debug2: channel 0: send eof debug2: channel 0: input drain -> closed debug2: channel 0: send close debug2: channel 0: rcvd eof debug2: channel 0: rcvd eof debug2: channel 0: rcvd eof debug2: channel 0: rcvd close Even when removing my CB, the flooding takes place. The issue is in the connector code. Cheers, Till