diff options
author | Aris Adamantiadis <aris@0xbadc0de.be> | 2014-04-17 17:09:00 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2014-08-06 09:47:35 +0200 |
commit | c2381360107c37e95ae335093a8ec63b47b1e9a6 (patch) | |
tree | f922cd17db8b65afeed7008fa2fb6e70a3a63925 /src/session.c | |
parent | 5a08ddcff2e95b0c1d805ec5d0c83fd60065c1d3 (diff) | |
download | libssh-c2381360107c37e95ae335093a8ec63b47b1e9a6.tar.gz libssh-c2381360107c37e95ae335093a8ec63b47b1e9a6.tar.xz libssh-c2381360107c37e95ae335093a8ec63b47b1e9a6.zip |
buffers: adapt session.c to ssh_buffer_(un)pack()
Reviewed-by: Andreas Schneider <asn@samba.org>
Diffstat (limited to 'src/session.c')
-rw-r--r-- | src/session.c | 52 |
1 files changed, 15 insertions, 37 deletions
diff --git a/src/session.c b/src/session.c index 78e0c8a8..a3b19ede 100644 --- a/src/session.c +++ b/src/session.c @@ -785,27 +785,20 @@ void ssh_socket_exception_callback(int code, int errno_code, void *user){ * @return SSH_OK on success, SSH_ERROR otherwise. */ int ssh_send_ignore (ssh_session session, const char *data) { - ssh_string str; + int rc; if (ssh_socket_is_open(session->socket)) { - if (buffer_add_u8(session->out_buffer, SSH2_MSG_IGNORE) < 0) { - goto error; - } - - str = ssh_string_from_char(data); - 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, + "bs", + SSH2_MSG_IGNORE, + data); + if (rc != SSH_OK){ + ssh_set_error_oom(session); goto error; } - packet_send(session); ssh_handle_packets(session, 0); - - ssh_string_free(str); } return SSH_OK; @@ -827,34 +820,19 @@ error: * @return SSH_OK on success, SSH_ERROR otherwise. */ int ssh_send_debug (ssh_session session, const char *message, int always_display) { - ssh_string str; int rc; if (ssh_socket_is_open(session->socket)) { - if (buffer_add_u8(session->out_buffer, SSH2_MSG_DEBUG) < 0) { - goto error; - } - - if (buffer_add_u8(session->out_buffer, always_display) < 0) { + rc = ssh_buffer_pack(session->out_buffer, + "bbsd", + SSH2_MSG_DEBUG, + always_display != 0 ? 1 : 0, + message, + 0); /* empty language tag */ + if (rc != SSH_OK) { + ssh_set_error_oom(session); goto error; } - - str = ssh_string_from_char(message); - if (str == NULL) { - goto error; - } - - rc = buffer_add_ssh_string(session->out_buffer, str); - ssh_string_free(str); - if (rc < 0) { - goto error; - } - - /* Empty language tag */ - if (buffer_add_u32(session->out_buffer, 0) < 0) { - goto error; - } - packet_send(session); ssh_handle_packets(session, 0); } |