1
1

sftp server: Implementation of sftp_server_free() as counterpart to sftp_server_new()

Fixes T143

Signed-off-by: David Wedderwille <davidwe@posteo.de>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
Reviewed-by: Jakub Jelen <jjelen@redhat.com>
Этот коммит содержится в:
David Wedderwille 2019-04-24 11:37:26 +02:00 коммит произвёл Andreas Schneider
родитель 643ca67f88
Коммит cc536377f9
2 изменённых файлов: 33 добавлений и 0 удалений

Просмотреть файл

@ -853,6 +853,13 @@ LIBSSH_API sftp_session sftp_server_new(ssh_session session, ssh_channel chan);
* @return 0 on success, < 0 on error.
*/
LIBSSH_API int sftp_server_init(sftp_session sftp);
/**
* @brief Close and deallocate a sftp server session.
*
* @param sftp The sftp session handle to free.
*/
LIBSSH_API void sftp_server_free(sftp_session sftp);
#endif /* WITH_SERVER */
/* this is not a public interface */

Просмотреть файл

@ -298,6 +298,32 @@ int sftp_server_init(sftp_session sftp){
return 0;
}
void sftp_server_free(sftp_session sftp)
{
sftp_request_queue ptr;
if (sftp == NULL) {
return;
}
ptr = sftp->queue;
while(ptr) {
sftp_request_queue old;
sftp_message_free(ptr->message);
old = ptr->next;
SAFE_FREE(ptr);
ptr = old;
}
SAFE_FREE(sftp->handles);
SSH_BUFFER_FREE(sftp->read_packet->payload);
SAFE_FREE(sftp->read_packet);
sftp_ext_free(sftp->ext);
SAFE_FREE(sftp);
}
#endif /* WITH_SERVER */
void sftp_free(sftp_session sftp)