Contents of /trunk/kftpgrabber/patches/kftpgrabber-0.8.1-inf-recursion-fix.patch
Parent Directory | Revision Log
Revision 562 -
(show annotations)
(download)
Sun Apr 6 15:15:35 2008 UTC (16 years, 5 months ago) by niro
File size: 1644 byte(s)
Sun Apr 6 15:15:35 2008 UTC (16 years, 5 months ago) by niro
File size: 1644 byte(s)
-fixes an inivitive rucursion in the cwd command
1 | --- kftpgrabber/src/engine/ftpsocket.cpp 2007/04/29 10:50:17 659051 |
2 | +++ kftpgrabber/src/engine/ftpsocket.cpp 2007/05/03 15:56:28 660745 |
3 | @@ -1247,6 +1247,12 @@ |
4 | break; |
5 | } |
6 | case SentCwd: { |
7 | + if (!socket()->getConfigInt("status.cwd")) { |
8 | + // Change directory has failed and we should be silent (=error reporting is off) |
9 | + socket()->resetCommandClass(); |
10 | + return; |
11 | + } |
12 | + |
13 | // Check the directory listing cache |
14 | DirectoryListing cached = Cache::self()->findCached(socket(), socket()->getCurrentDirectory()); |
15 | if (cached.isValid()) { |
16 | @@ -1560,6 +1566,7 @@ |
17 | switch (currentState) { |
18 | case None: { |
19 | targetDirectory = socket()->getConfig("params.cwd.path"); |
20 | + socket()->setConfig("status.cwd", 1); |
21 | |
22 | // If we are already there, no need to CWD |
23 | if (socket()->getCurrentDirectory() == targetDirectory) { |
24 | @@ -1608,6 +1615,7 @@ |
25 | socket()->emitError(socket()->getPreviousCommand() == Commands::CmdList ? ListFailed : FileNotFound); |
26 | socket()->resetCommandClass(Failed); |
27 | } else { |
28 | + socket()->setConfig("status.cwd", 0); |
29 | socket()->resetCommandClass(); |
30 | } |
31 | } |
32 | @@ -1629,6 +1637,7 @@ |
33 | socket()->emitError(socket()->getPreviousCommand() == Commands::CmdList ? ListFailed : FileNotFound); |
34 | socket()->resetCommandClass(Failed); |
35 | } else { |
36 | + socket()->setConfig("status.cwd", 0); |
37 | socket()->resetCommandClass(); |
38 | } |
39 | break; |