Exhaust NOOP responses also after 226 Transfer complete #507
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Writing above got me thinking, adding below to just before the break in
Upload/DownloadFileInternal/Async
would make coping with NOOP responses less rudimentary and more robust by exhausting them not only before the "226 Transfer complete." but also after it (as should be the case, as specified by "4.2 FTP REPLIES" in the RFC 959). Of courseExecute()
can do that (ifStaleDataCheck = true
) with itsReadStaleData(true, ..)
, but with the side-effect of dropping the connection and opening a new.This is theory as I have no evidence for it. I cannot experiment with all our endpoints to see if any would be responding at all to NOOPs during file transfers, only with our internal which runs IIS. Perhaps others reading could help provide evidence one way or the other by uploading/downloading two files consequtively with
NoopInterval
configured to see if it triggers withStaleDataCheck = true
? I tested multiple consecutive uploads and downloads but with IIS there are no NOOP responses during file transfer so existing code stands file.No problem. Below from my testing but again it shows no evidence the added code does anything.
Uploading, with IIS no sign of stale data after
226 Transfer complete.
;Downloading, with IIS no sign of stale data after
226 Transfer complete.
;