aboutsummaryrefslogtreecommitdiff
path: root/libssh/session.c
diff options
context:
space:
mode:
Diffstat (limited to 'libssh/session.c')
-rw-r--r--libssh/session.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/libssh/session.c b/libssh/session.c
index 1f19640d..06b31ab3 100644
--- a/libssh/session.c
+++ b/libssh/session.c
@@ -42,7 +42,7 @@ SSH_SESSION *ssh_new() {
memset(session,0,sizeof(SSH_SESSION));
session->next_crypto=crypto_new();
session->maxchannel=FIRST_CHANNEL;
- session->fd=-1;
+ session->socket=ssh_socket_new();
session->alive=0;
session->blocking=1;
return session;
@@ -70,7 +70,8 @@ void ssh_cleanup(SSH_SESSION *session){
crypto_free(session->current_crypto);
if(session->next_crypto)
crypto_free(session->next_crypto);
-
+ if(session->socket)
+ ssh_socket_free(session->socket);
// delete all channels
while(session->channels)
channel_free(session->channels);
@@ -101,10 +102,8 @@ void ssh_cleanup(SSH_SESSION *session){
* \param session current ssh session
*/
void ssh_silent_disconnect(SSH_SESSION *session){
- if(session->fd>=0)
- close(session->fd);
+ ssh_socket_close(session->socket);
session->alive=0;
- session->fd=-1;
ssh_disconnect(session);
}
@@ -135,7 +134,7 @@ void ssh_set_blocking(SSH_SESSION *session,int blocking){
* not connected
*/
int ssh_get_fd(SSH_SESSION *session){
- return session->fd;
+ return ssh_socket_get_fd(session->socket);
}
/** \brief say to the session it has data to read on the file descriptor without blocking