diff options
author | Aris Adamantiadis <aris@0xbadc0de.be> | 2005-11-22 23:15:31 +0000 |
---|---|---|
committer | Aris Adamantiadis <aris@0xbadc0de.be> | 2005-11-22 23:15:31 +0000 |
commit | 1847fb2373f6cc5e95d36efa4e0b260fb1337c3c (patch) | |
tree | 2b9370ba4cfd49a1554caca9b43753bc179553cc /libssh/session.c | |
parent | cddc5d6889f252b2cde5403f16063b640864f55d (diff) | |
download | libssh-1847fb2373f6cc5e95d36efa4e0b260fb1337c3c.tar.gz libssh-1847fb2373f6cc5e95d36efa4e0b260fb1337c3c.tar.xz libssh-1847fb2373f6cc5e95d36efa4e0b260fb1337c3c.zip |
added bases for nonblocking packet sending and receiving. packet_send
and packet_read may return SSH_AGAIN if the session is nonblocking and
there is not enough data to be read.
I also added a socket buffering through session->in_socket_buffer. It is
more low-level than the packet buffer.
I should rename in_buffer with in_packet_buffer.
There is still work to do with the socket status, (opened, error,
closed, ...) and much more work to extend the nonblocking to session
opening, messages sending and such.
I find the switch(session->packet_state) solution very nice (especially
when the nonblocking function may have 10 differents states, like in a
connection.)
git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@49 7dcaeef0-15fb-0310-b436-a5af3365683c
Diffstat (limited to 'libssh/session.c')
-rw-r--r-- | libssh/session.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/libssh/session.c b/libssh/session.c index 016c127..aeee63a 100644 --- a/libssh/session.c +++ b/libssh/session.c @@ -34,6 +34,7 @@ SSH_SESSION *ssh_new() { session->next_crypto=crypto_new(); session->maxchannel=FIRST_CHANNEL; session->fd=-1; + session->blocking=1; return session; } |