Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IdleTimeout doesn't factor in active data connection (large or slow transfers) #430

Open
dkandarp opened this issue Jan 30, 2024 · 2 comments

Comments

@dkandarp
Copy link

dkandarp commented Jan 30, 2024

When control connection is idle for more than IdleTimeout duration, server immediately closes control connection and ignores on going data transfer through data connection.
https://github.com/fclairamb/ftpserverlib/blob/main/client_handler.go#L413

This is not correct behavior. Transfer rate and time can very depending on network and file size. Before terminating control connection, server should check if there is any active data connection.

@drakkan
Copy link
Collaborator

drakkan commented Feb 10, 2024

Hello,

this is a known issue. I think most users handle idle connections outside of the library (and I'm not sure if their management needs to be done inside the library), however since this is an advertised feature, we can review a PR if you'd like to send some one. Thank you

@dkandarp
Copy link
Author

Hello,

this is a known issue. I think most users handle idle connections outside of the library (and I'm not sure if their management needs to be done inside the library), however since this is an advertised feature, we can review a PR if you'd like to send some one. Thank you

Does it mean specify idle timeout with large arbitrary value to avoid deadline, and manage connection through Driver?
Since connection is initiated inside library, I think its lifecycle should be encapsulated within library.

Happy to work on PR, will submit shortly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants