修复FTP退出错误,导致socket连接数占满

Change-Id: I40efe853fbf016f251c40def23e6e1f80e893cef
diff --git a/mbtk/mbtk_lib/src/mbtk_ftp.c b/mbtk/mbtk_lib/src/mbtk_ftp.c
index 8c1340c..1376679 100755
--- a/mbtk/mbtk_lib/src/mbtk_ftp.c
+++ b/mbtk/mbtk_lib/src/mbtk_ftp.c
@@ -2056,8 +2056,12 @@
     if (list_remove(ftp_client_list, info))
     {
         int err;
-        sock_close(&info->net_info, &info->sock_info[FTP_SOCK_CTRL], FTP_TIMEOUT, &err);
-        sock_close(&info->net_info, &info->sock_info[FTP_SOCK_DATA], FTP_TIMEOUT, &err);
+        if(info->auth_type == FTP_AUTH_TYPE_NON) {
+            sock_close(&info->net_info, &info->sock_info[FTP_SOCK_CTRL], FTP_TIMEOUT, &err);
+            sock_close(&info->net_info, &info->sock_info[FTP_SOCK_DATA], FTP_TIMEOUT, &err);
+        } else {
+            mbtk_sock_deinit(info->ftp_ssl_handle);
+        }
         ftp_free_func(info);
     }
 
@@ -2090,17 +2094,32 @@
         info->state = FTP_STATE_CONNECTED;
     }
 
-    if (sock_close(&info->net_info, &info->sock_info[FTP_SOCK_CTRL], FTP_TIMEOUT, &err))
-    {
-        LOGE("Close ctrl socket fail[%d].", err);
-        return FTP_ERR_NET_CLOSE;
+    if(info->auth_type == FTP_AUTH_TYPE_NON) {
+        if (sock_close(&info->net_info, &info->sock_info[FTP_SOCK_CTRL], FTP_TIMEOUT, &err))
+        {
+            LOGE("Close ctrl socket fail[%d].", err);
+            return FTP_ERR_NET_CLOSE;
+        }
+
+        if (sock_close(&info->net_info, &info->sock_info[FTP_SOCK_DATA], FTP_TIMEOUT, &err))
+        {
+            LOGE("Close data socket fail[%d].", err);
+            return FTP_ERR_NET_CLOSE;
+        }
+    } else {
+        if(mbtk_sock_close(info->ftp_ssl_handle,info->session,6000,&err))
+        {
+            LOGE("Close ssl ctrl socket fail[%d].", err);
+            //return FTP_ERR_NET_CLOSE;
+        }
+
+        if(mbtk_sock_close(info->ftp_ssl_handle,info->session_data,6000,&err))
+        {
+            LOGE("Close ssl data socket fail[%d].", err);
+            //return FTP_ERR_NET_CLOSE;
+        }
     }
 
-    if (sock_close(&info->net_info, &info->sock_info[FTP_SOCK_DATA], FTP_TIMEOUT, &err))
-    {
-        LOGE("Close data socket fail[%d].", err);
-        return FTP_ERR_NET_CLOSE;
-    }
 
     info->state = FTP_STATE_NON;
     info->data_mode = FTP_MODE_PASSIVE;