mirror of
https://git.libssh.org/projects/libssh.git
synced 2025-11-27 13:21:11 +03:00
buffers: adapt client.c to ssh_buffer_(un)pack()
Reviewed-by: Andreas Schneider <asn@samba.org>
This commit is contained in:
committed by
Andreas Schneider
parent
506e11fa8b
commit
97638a1465
42
src/client.c
42
src/client.c
@@ -269,24 +269,19 @@ static int ssh_service_request_termination(void *s){
|
|||||||
* @bug actually only works with ssh-userauth
|
* @bug actually only works with ssh-userauth
|
||||||
*/
|
*/
|
||||||
int ssh_service_request(ssh_session session, const char *service) {
|
int ssh_service_request(ssh_session session, const char *service) {
|
||||||
ssh_string service_s = NULL;
|
|
||||||
int rc=SSH_ERROR;
|
int rc=SSH_ERROR;
|
||||||
|
|
||||||
if(session->auth_service_state != SSH_AUTH_SERVICE_NONE)
|
if(session->auth_service_state != SSH_AUTH_SERVICE_NONE)
|
||||||
goto pending;
|
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) {
|
rc = ssh_buffer_pack(session->out_buffer,
|
||||||
ssh_string_free(service_s);
|
"bs",
|
||||||
|
SSH2_MSG_SERVICE_REQUEST,
|
||||||
|
service);
|
||||||
|
if (rc != SSH_OK){
|
||||||
|
ssh_set_error_oom(session);
|
||||||
return SSH_ERROR;
|
return SSH_ERROR;
|
||||||
}
|
}
|
||||||
ssh_string_free(service_s);
|
|
||||||
session->auth_service_state=SSH_AUTH_SERVICE_SENT;
|
session->auth_service_state=SSH_AUTH_SERVICE_SENT;
|
||||||
if (packet_send(session) == SSH_ERROR) {
|
if (packet_send(session) == SSH_ERROR) {
|
||||||
ssh_set_error(session, SSH_FATAL,
|
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.
|
* @param[in] session The SSH session to use.
|
||||||
*/
|
*/
|
||||||
void ssh_disconnect(ssh_session session) {
|
void ssh_disconnect(ssh_session session) {
|
||||||
ssh_string str = NULL;
|
|
||||||
struct ssh_iterator *it;
|
struct ssh_iterator *it;
|
||||||
|
int rc;
|
||||||
|
|
||||||
if (session == NULL) {
|
if (session == NULL) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (session->socket != NULL && ssh_socket_is_open(session->socket)) {
|
if (session->socket != NULL && ssh_socket_is_open(session->socket)) {
|
||||||
if (buffer_add_u8(session->out_buffer, SSH2_MSG_DISCONNECT) < 0) {
|
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;
|
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);
|
|
||||||
goto error;
|
|
||||||
}
|
|
||||||
ssh_string_free(str);
|
|
||||||
|
|
||||||
packet_send(session);
|
packet_send(session);
|
||||||
ssh_socket_close(session->socket);
|
ssh_socket_close(session->socket);
|
||||||
|
|||||||
Reference in New Issue
Block a user