|
@@ -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);
|
|
|
}
|