summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAris Adamantiadis <aris@0xbadc0de.be>2014-04-16 18:04:55 +0200
committerAndreas Schneider <asn@cryptomilk.org>2014-08-06 09:33:07 +0200
commit97638a1465e2b7fffe25caa0eab96c9d7099191a (patch)
treef05d3cadd3a7e63bfa5cac0ae5521471d0a93c3d /src
parent506e11fa8b10ad275824303959b92924b0355922 (diff)
downloadlibssh-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.c42
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);