I look into this and there is a display glitch but not a functionality bug.
In this situation the correct skip reason is not being passed to the routine that displays the "Skip [<reason>]: <filename>" text in the status window and this is why it shows "unknown", it should display "file exists" because the action defined is set to skip for "On transfer error"
When a transfer is aborted either manually or due to a server/connection error a flag is set to indicate that the next time this transfer is attempted it will use the "On transfer error" rule, this allows you to specifically resume, skip, overwrite when re-starting a failed transfer regardless of your main set of transfer rules.
This is very important because consider the following scenario:
1. You have a single file transfer rule configured to skip all existing files (regardless of size or date) on download.
2. You begin a file download, half way through an error is encountered and the transfer fails.
3. FlashFXP will then evaluate your "retry failed transfer" settings, should the transfer be retried? if so how many times? how many times have we already retried? etc.
4. Lets assume that the retry count is set to 3 and this is the first retry attempt.
5. Now if FlashFXP were to use the file transfer rule defined in #1 the file would be skipped on retry.
To prevent this from occurring we introduced the "On transfer error" rule that takes priority over all other rules.
It is not logical to apply the same set of transfer rules to a file after a transfer error because the conditions have changed, like in my scenario above a file that previously didn't exist now exists and would be skipped.
This also simplifies the file transfer rules because you don't need to factor a way to handle transfer failures when building your rules.
While explaining logic behind our file transfer rules I realized one tiny pitfall with the current design, you can not define an individual "On transfer error" rule for each type of transfer (upload, download, site to site) and perhaps there should be a way to do this.
Last edited by bigstar; 07-18-2011 at 02:07 PM.
|