diff options
author | Aris Adamantiadis <aris@0xbadc0de.be> | 2014-04-16 18:04:55 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2014-08-06 09:33:07 +0200 |
commit | 97638a1465e2b7fffe25caa0eab96c9d7099191a (patch) | |
tree | f05d3cadd3a7e63bfa5cac0ae5521471d0a93c3d /src | |
parent | 506e11fa8b10ad275824303959b92924b0355922 (diff) | |
download | libssh-97638a1465e2b7fffe25caa0eab96c9d7099191a.tar.gz libssh-97638a1465e2b7fffe25caa0eab96c9d7099191a.tar.xz libssh-97638a1465e2b7fffe25caa0eab96c9d7099191a.zip |
buffers: adapt client.c to ssh_buffer_(un)pack()
Reviewed-by: Andreas Schneider <asn@samba.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/client.c | 42 |
1 files changed, 14 insertions, 28 deletions
diff --git a/src/client.c b/src/client.c index c0a9d871..0a45944c 100644 --- a/src/client.c +++ b/src/client.c @@ -269,24 +269,19 @@ static int ssh_service_request_termination(void *s){ * @bug actually only works with ssh-userauth */ int ssh_service_request(ssh_session session, const char *service) { - ssh_string service_s = NULL; int rc=SSH_ERROR; if(session->auth_service_state != SSH_AUTH_SERVICE_NONE) goto pending; - if (buffer_add_u8(session->out_buffer, SSH2_MSG_SERVICE_REQUEST) < 0) { - return SSH_ERROR; - } - service_s = ssh_string_from_char(service); - if (service_s == NULL) { - return SSH_ERROR; - } - if (buffer_add_ssh_string(session->out_buffer,service_s) < 0) { - ssh_string_free(service_s); + rc = ssh_buffer_pack(session->out_buffer, + "bs", + SSH2_MSG_SERVICE_REQUEST, + service); + if (rc != SSH_OK){ + ssh_set_error_oom(session); 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, @@ -630,32 +625,23 @@ int ssh_get_openssh_version(ssh_session session) { * @param[in] session The SSH session to use. */ void ssh_disconnect(ssh_session session) { - ssh_string str = NULL; struct ssh_iterator *it; + int rc; if (session == NULL) { return; } if (session->socket != NULL && ssh_socket_is_open(session->socket)) { - if (buffer_add_u8(session->out_buffer, SSH2_MSG_DISCONNECT) < 0) { - goto error; - } - if (buffer_add_u32(session->out_buffer, - htonl(SSH2_DISCONNECT_BY_APPLICATION)) < 0) { - goto error; - } - - str = ssh_string_from_char("Bye Bye"); - if (str == NULL) { - goto error; - } - - if (buffer_add_ssh_string(session->out_buffer,str) < 0) { - ssh_string_free(str); + rc = ssh_buffer_pack(session->out_buffer, + "bds", + SSH2_MSG_DISCONNECT, + SSH2_DISCONNECT_BY_APPLICATION, + "Bye Bye"); + if (rc != SSH_OK){ + ssh_set_error_oom(session); goto error; } - ssh_string_free(str); packet_send(session); ssh_socket_close(session->socket); |