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>
Этот коммит содержится в:
родитель
643ca67f88
Коммит
cc536377f9
@ -853,6 +853,13 @@ LIBSSH_API sftp_session sftp_server_new(ssh_session session, ssh_channel chan);
|
|||||||
* @return 0 on success, < 0 on error.
|
* @return 0 on success, < 0 on error.
|
||||||
*/
|
*/
|
||||||
LIBSSH_API int sftp_server_init(sftp_session sftp);
|
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 */
|
#endif /* WITH_SERVER */
|
||||||
|
|
||||||
/* this is not a public interface */
|
/* this is not a public interface */
|
||||||
|
26
src/sftp.c
26
src/sftp.c
@ -298,6 +298,32 @@ int sftp_server_init(sftp_session sftp){
|
|||||||
|
|
||||||
return 0;
|
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 */
|
#endif /* WITH_SERVER */
|
||||||
|
|
||||||
void sftp_free(sftp_session sftp)
|
void sftp_free(sftp_session sftp)
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user