summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mscp/mscp.py7
-rw-r--r--src/mscp.c5
2 files changed, 8 insertions, 4 deletions
diff --git a/mscp/mscp.py b/mscp/mscp.py
index e1d2bc8..47582d6 100644
--- a/mscp/mscp.py
+++ b/mscp/mscp.py
@@ -44,10 +44,9 @@ class mscp:
self.stop()
if self.state == _STATE_STOPPED:
self.join()
- if self.state == _STATE_JOINED:
- self.cleanup()
- if self.state == _STATE_CLEANED:
- self.free()
+
+ self.cleanup()
+ self.free()
def _state2str(self):
return _state_str[self.state]
diff --git a/src/mscp.c b/src/mscp.c
index 3b6b7ff..6314c06 100644
--- a/src/mscp.c
+++ b/src/mscp.c
@@ -571,6 +571,11 @@ static void free_chunk(struct list_head *list)
void mscp_cleanup(struct mscp *m)
{
+ if (m->first) {
+ ssh_sftp_close(m->first);
+ m->first = NULL;
+ }
+
release_list(&m->src_list, free_src);
INIT_LIST_HEAD(&m->src_list);