On 03/02/2012 10:41 AM, Steven Dake wrote: > On 03/01/2012 03:37 PM, Peter Stuge wrote: >> Henrik Nordström wrote: >>>> This might already be managed within libssh2 though, that >>>> keepalives are never sent in the middle of another request. >>> >>> In blocking mode keepalives are by default sent in the middle of other >>> requests by _libssh2_wait_socket. >>> >>> And applications is very likely to do use libss2_keepalive_send in >>> similar manner in non-blocking mode. >> >> I see. Then the code that receives packets must be changed to take >> care of those responses as well. >> >> >>> Also be warned that libssh2_keepalive_send corrupts transport if >>> only part of the keep-alive message can be sent. >> >> Good fun. >> > > To address this in my code which is nonblocking, should I avoid sending > keepalive_send while a channel operation is in progress? Currently the > nonblocking app sends the keepalive based upon a timer set by the return > from the previous keepalive_send. > > > _______________________________________________ > libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
Short note, I put my libbsh2_keepalive_config code after the key setup and no longer receive the MSG UNIMPLEMENTED packet. As a result, this is user error. Hope others find this information helpful when developing their own apps. Even after properly registering with keepalive_config, the keepalive messages still return MSG_REQUEST_FAILURE if want reply is set. Regards -steve _______________________________________________ libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel