aboutsummaryrefslogtreecommitdiff
path: root/src/session.c
diff options
context:
space:
mode:
authorAris Adamantiadis <aris@0xbadc0de.be>2014-04-17 17:09:00 +0200
committerAndreas Schneider <asn@cryptomilk.org>2014-08-06 09:47:35 +0200
commitc2381360107c37e95ae335093a8ec63b47b1e9a6 (patch)
treef922cd17db8b65afeed7008fa2fb6e70a3a63925 /src/session.c
parent5a08ddcff2e95b0c1d805ec5d0c83fd60065c1d3 (diff)
downloadlibssh-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.c52
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);
}