[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: libssh and python twisted conch ssh
[Thread Prev] | [Thread Next]
- Subject: Re: libssh and python twisted conch ssh
- From: Aris Adamantiadis <aris@xxxxxxxxxxxx>
- Reply-to: libssh@xxxxxxxxxx
- Date: Tue, 22 Jan 2013 13:47:37 +0100
- To: libssh@xxxxxxxxxx
- Cc: Johannes Krude <johannes@xxxxxxxx>
Hi Johannes,
That's a good idea. Please change your "r=1; while(r>0) {} loop in a do
{} while(r>0); loop, and I'll merge it in libssh.
Aris
Le 22/01/13 13:12, Johannes Krude a écrit :
> hi,
>
> On Tue, Jan 22, 2013 at 10:57:22AM +0100, Aris Adamantiadis wrote:
>> I took a look at your pcap (next time please just attach it :)).
>> It seems like twisted sends the key exchange packet right away before
>> listening for the client's banner.
>> As the packet is already buffered, the packet parsing is never triggered
>> because it's waiting for socket input first.
> The following fixes this behavior by repeatedly calling the data handler as
> long as it takes data (https://git.aachen.ccc.de/~johannes/libssh/).
>
> johannes
>
>
> diff --git a/src/socket.c b/src/socket.c
> index 6eab0aa..8569054 100644
> --- a/src/socket.c
> +++ b/src/socket.c
> @@ -283,12 +283,15 @@ int ssh_socket_pollcallback(struct ssh_poll_handle_struct *p, socket_t fd, int r
> return -1;
> }
> if(s->callbacks && s->callbacks->data){
> - r= s->callbacks->data(buffer_get_rest(s->in_buffer),
> - buffer_get_rest_len(s->in_buffer),
> - s->callbacks->userdata);
> - buffer_pass_bytes(s->in_buffer,r);
> - /* p may have been freed, so don't use it
> - * anymore in this function */
> + r= 1;
> + while (r > 0) {
> + r= s->callbacks->data(buffer_get_rest(s->in_buffer),
> + buffer_get_rest_len(s->in_buffer),
> + s->callbacks->userdata);
> + buffer_pass_bytes(s->in_buffer,r);
> + /* p may have been freed, so don't use it
> + * anymore in this function */
> + }
> p = NULL;
> }
> }
>
>
| Re: libssh and python twisted conch ssh | Johannes Krude <johannes@xxxxxxxx> |
| libssh and python twisted conch ssh | Johannes Krude <johannes@xxxxxxxx> |
| Re: libssh and python twisted conch ssh | Aris Adamantiadis <aris@xxxxxxxxxxxx> |
| Re: libssh and python twisted conch ssh | Johannes Krude <johannes@xxxxxxxx> |