diff options
author | Andreas Schneider <asn@cryptomilk.org> | 2013-07-14 13:31:24 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2013-07-14 13:31:24 +0200 |
commit | c64ec43eef8ec5a8b8a8f4c4c3216043aea8e08a (patch) | |
tree | 33131e402f35d800cf923f837ae4c72166703b27 /src/client.c | |
parent | 0d3deeec101b0d6568d7c04eda833bde47c7329c (diff) | |
download | libssh-c64ec43eef8ec5a8b8a8f4c4c3216043aea8e08a.tar.gz libssh-c64ec43eef8ec5a8b8a8f4c4c3216043aea8e08a.tar.xz libssh-c64ec43eef8ec5a8b8a8f4c4c3216043aea8e08a.zip |
src: Remove enter_function() and leave_function().
Diffstat (limited to 'src/client.c')
-rw-r--r-- | src/client.c | 72 |
1 files changed, 27 insertions, 45 deletions
diff --git a/src/client.c b/src/client.c index 1879bf93..99a300b1 100644 --- a/src/client.c +++ b/src/client.c @@ -59,11 +59,11 @@ */ static void socket_callback_connected(int code, int errno_code, void *user){ ssh_session session=(ssh_session)user; - enter_function(); + if(session->session_state != SSH_SESSION_STATE_CONNECTING){ ssh_set_error(session,SSH_FATAL, "Wrong state in socket_callback_connected : %d", session->session_state); - leave_function(); + return; } SSH_LOG(SSH_LOG_RARE,"Socket connection callback: %d (%d)",code, errno_code); @@ -74,7 +74,6 @@ static void socket_callback_connected(int code, int errno_code, void *user){ ssh_set_error(session,SSH_FATAL,"%s",strerror(errno_code)); } session->ssh_connection_callback(session); - leave_function(); } /** @@ -94,10 +93,10 @@ static int callback_receive_banner(const void *data, size_t len, void *user) { char *str = NULL; size_t i; int ret=0; - enter_function(); + if(session->session_state != SSH_SESSION_STATE_SOCKET_CONNECTED){ ssh_set_error(session,SSH_FATAL,"Wrong state in callback_receive_banner : %d",session->session_state); - leave_function(); + return SSH_ERROR; } for(i=0;i<len;++i){ @@ -117,18 +116,18 @@ static int callback_receive_banner(const void *data, size_t len, void *user) { session->session_state=SSH_SESSION_STATE_BANNER_RECEIVED; SSH_LOG(SSH_LOG_PACKET,"Received banner: %s",str); session->ssh_connection_callback(session); - leave_function(); + return ret; } if(i>127){ /* Too big banner */ session->session_state=SSH_SESSION_STATE_ERROR; ssh_set_error(session,SSH_FATAL,"Receiving banner: too large banner"); - leave_function(); + return 0; } } - leave_function(); + return ret; } @@ -146,8 +145,6 @@ int ssh_send_banner(ssh_session session, int server) { char buffer[128] = {0}; int err=SSH_ERROR; - enter_function(); - banner = session->version == 1 ? CLIENTBANNER1 : CLIENTBANNER2; if (server) { @@ -173,7 +170,7 @@ int ssh_send_banner(ssh_session session, int server) { #endif err=SSH_OK; end: - leave_function(); + return err; } @@ -188,8 +185,6 @@ static int dh_handshake(ssh_session session) { int rc = SSH_AGAIN; - enter_function(); - switch (session->dh_handshake_state) { case DH_STATE_INIT: switch(session->next_crypto->kex_type){ @@ -203,12 +198,11 @@ static int dh_handshake(ssh_session session) { break; #endif default: - rc=SSH_ERROR; - goto error; + rc = SSH_ERROR; } if (rc == SSH_ERROR) { - goto error; + return SSH_ERROR; } session->dh_handshake_state = DH_STATE_INIT_SENT; @@ -219,16 +213,14 @@ static int dh_handshake(ssh_session session) { /* wait until ssh_packet_newkeys is called */ break; case DH_STATE_FINISHED: - leave_function(); return SSH_OK; default: ssh_set_error(session, SSH_FATAL, "Invalid state in dh_handshake(): %d", session->dh_handshake_state); - leave_function(); + return SSH_ERROR; } -error: - leave_function(); + return rc; } @@ -259,27 +251,27 @@ static int ssh_service_request_termination(void *s){ int ssh_service_request(ssh_session session, const char *service) { ssh_string service_s = NULL; int rc=SSH_ERROR; - enter_function(); + if(session->auth_service_state != SSH_AUTH_SERVICE_NONE) goto pending; if (buffer_add_u8(session->out_buffer, SSH2_MSG_SERVICE_REQUEST) < 0) { - goto error; + return SSH_ERROR; } service_s = ssh_string_from_char(service); if (service_s == NULL) { - goto error; + return SSH_ERROR; } if (buffer_add_ssh_string(session->out_buffer,service_s) < 0) { ssh_string_free(service_s); - goto error; + return SSH_ERROR; } ssh_string_free(service_s); session->auth_service_state=SSH_AUTH_SERVICE_SENT; if (packet_send(session) == SSH_ERROR) { ssh_set_error(session, SSH_FATAL, "Sending SSH2_MSG_SERVICE_REQUEST failed."); - goto error; + return SSH_ERROR; } SSH_LOG(SSH_LOG_PACKET, @@ -287,8 +279,9 @@ int ssh_service_request(ssh_session session, const char *service) { pending: rc=ssh_handle_packets_termination(session,SSH_TIMEOUT_USER, ssh_service_request_termination, session); - if(rc == SSH_ERROR) - goto error; + if (rc == SSH_ERROR) { + return SSH_ERROR; + } switch(session->auth_service_state){ case SSH_AUTH_SERVICE_DENIED: ssh_set_error(session,SSH_FATAL,"ssh_auth_service request denied"); @@ -305,8 +298,7 @@ pending: rc=SSH_ERROR; break; } -error: - leave_function(); + return rc; } @@ -324,7 +316,7 @@ error: */ static void ssh_client_connection_callback(ssh_session session){ int ssh1,ssh2; - enter_function(); + switch(session->session_state){ case SSH_SESSION_STATE_NONE: case SSH_SESSION_STATE_CONNECTING: @@ -423,13 +415,13 @@ static void ssh_client_connection_callback(ssh_session session){ default: ssh_set_error(session,SSH_FATAL,"Invalid state %d",session->session_state); } - leave_function(); + return; - error: +error: ssh_socket_close(session->socket); session->alive = 0; session->session_state=SSH_SESSION_STATE_ERROR; - leave_function(); + } /** @internal @@ -466,7 +458,6 @@ int ssh_connect(ssh_session session) { return SSH_ERROR; } - enter_function(); switch(session->pending_call_state){ case SSH_PENDING_CALL_NONE: break; @@ -474,28 +465,25 @@ int ssh_connect(ssh_session session) { goto pending; default: ssh_set_error(session,SSH_FATAL,"Bad call during pending SSH call in ssh_connect"); - leave_function(); + return SSH_ERROR; } session->alive = 0; session->client = 1; if (ssh_init() < 0) { - leave_function(); return SSH_ERROR; } if (session->opts.fd == SSH_INVALID_SOCKET && session->opts.host == NULL && session->opts.ProxyCommand == NULL) { ssh_set_error(session, SSH_FATAL, "Hostname required"); - leave_function(); return SSH_ERROR; } ret = ssh_options_apply(session); if (ret < 0) { ssh_set_error(session, SSH_FATAL, "Couldn't apply options"); - leave_function(); return SSH_ERROR; } SSH_LOG(SSH_LOG_RARE,"libssh %s, using threading %s", ssh_copyright(), ssh_threads_get_type()); @@ -521,7 +509,6 @@ int ssh_connect(ssh_session session) { session->opts.bindaddr); } if (ret == SSH_ERROR) { - leave_function(); return SSH_ERROR; } @@ -556,10 +543,9 @@ pending: } SSH_LOG(SSH_LOG_PACKET,"ssh_connect: Actual state : %d",session->session_state); if(!ssh_is_blocking(session) && !ssh_connect_termination(session)){ - leave_function(); return SSH_AGAIN; } - leave_function(); + session->pending_call_state=SSH_PENDING_CALL_NONE; if(session->session_state == SSH_SESSION_STATE_ERROR || session->session_state == SSH_SESSION_STATE_DISCONNECTED) return SSH_ERROR; @@ -616,8 +602,6 @@ void ssh_disconnect(ssh_session session) { return; } - enter_function(); - if (session->socket != NULL && ssh_socket_is_open(session->socket)) { if (buffer_add_u8(session->out_buffer, SSH2_MSG_DISCONNECT) < 0) { goto error; @@ -683,8 +667,6 @@ error: ssh_list_free(session->packet_callbacks); session->packet_callbacks=NULL; } - - leave_function(); } const char *ssh_copyright(void) { |