Bläddra i källkod

ftp: close a previously established connection on subsequent requests

if any
Sergey Alirzaev 4 år sedan
förälder
incheckning
8fe94c2654
1 ändrade filer med 5 tillägg och 4 borttagningar
  1. 5 4
      modules/ftp.c

+ 5 - 4
modules/ftp.c

@@ -559,10 +559,6 @@ err_t lwftp_retr(lwftp_session_t *s)
   err_t error;
 
   // Check user supplied data
-  if (s->control_state != LWFTP_CLOSED || s->control_pcb) {
-    s->error = "previous connection is incomplete";
-    return ERR_ARG;
-  }
   if (!s->settings->remote_path) {
     s->error = "empty remote path";
     return ERR_ARG;
@@ -575,6 +571,11 @@ err_t lwftp_retr(lwftp_session_t *s)
     s->error = "empty password";
     return ERR_ARG;
   }
+
+  if (s->control_state != LWFTP_CLOSED || s->control_pcb) {
+    // previous connection is incomplete
+    lwftp_control_close(s, -1);
+  }
   if (s->data_pcb) {
     lwftp_pcb_close(s->data_pcb);
   }