diff options
author | Francois Andriot <albator78@libertysurf.fr> | 2013-07-24 15:25:26 -0500 |
---|---|---|
committer | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2013-07-24 15:25:26 -0500 |
commit | 1385303ea163214e30825730ac0fbcc27f9634aa (patch) | |
tree | 458520a255b2199edd2ccb49556d80b3061efbc3 /kftpgrabber/src/engine/ftpsocket.cpp | |
parent | 093ed975800ab1e5c0d73759f07fedf8d5aa2ca6 (diff) | |
download | kftpgrabber-1385303ea163214e30825730ac0fbcc27f9634aa.tar.gz kftpgrabber-1385303ea163214e30825730ac0fbcc27f9634aa.zip |
Fix FTBFS
Diffstat (limited to 'kftpgrabber/src/engine/ftpsocket.cpp')
-rw-r--r-- | kftpgrabber/src/engine/ftpsocket.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/kftpgrabber/src/engine/ftpsocket.cpp b/kftpgrabber/src/engine/ftpsocket.cpp index 2741f4d..b0cb9ae 100644 --- a/kftpgrabber/src/engine/ftpsocket.cpp +++ b/kftpgrabber/src/engine/ftpsocket.cpp @@ -758,7 +758,7 @@ public: } // 229 Entering Extended Passive Mode (|||55016|) - char *begin = strchr(socket()->getResponse().ascii(), '('); + const char *begin = strchr(socket()->getResponse().ascii(), '('); int port; if (!begin || sscanf(begin, "(|||%d|)", &port) != 1) { @@ -793,12 +793,14 @@ public: // Ok PASV command successfull - let's parse the result int ip[6]; - char *begin = strchr(socket()->getResponse().ascii(), '('); + const char *begin = strchr(socket()->getResponse().ascii(), '('); // Some stinky servers don't respect RFC and do it on their own - if (!begin) - begin = strchr(socket()->getResponse().ascii(), '='); - + if (!begin) { + delete &begin; + const char *begin = strchr(socket()->getResponse().ascii(), '='); + } + if (!begin || (sscanf(begin, "(%d,%d,%d,%d,%d,%d)",&ip[0], &ip[1], &ip[2], &ip[3], &ip[4], &ip[5]) != 6 && sscanf(begin, "=%d,%d,%d,%d,%d,%d",&ip[0], &ip[1], &ip[2], &ip[3], &ip[4], &ip[5]) != 6)) { // Unable to parse, try the next thing |