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

No fallback for Expectation Failure #2896

Closed
cyberduck opened this issue Jan 14, 2009 · 9 comments
Closed

No fallback for Expectation Failure #2896

cyberduck opened this issue Jan 14, 2009 · 9 comments
Assignees
Labels
bug fixed low priority webdav WebDAV Protocol Implementation
Milestone

Comments

@cyberduck
Copy link
Collaborator

anonymous created the issue

I am using webdav with popular HTTP servers lighttpd and nginx. Latest version of Cyberduck breaks uploading, giving 417 HTTP error.

In fact lighttpd really does not support "Expect:" field. The problem is that there are no fallback (to HTTP/1.0). Switching to HTTP/1.0 after receiving 417 error would be the best solution.

I/O Error: Upload failed 
/file.html
null (417) 

PUT /file.html HTTP/1.1[\r][\n]
Content-Type: text/html[\r][\n]
User-Agent: Cyberduck/3.1.1 (4457)[\r][\n]
Host: anonymous.host:8080[\r][\n]
Expect: 100-continue[\r][\n]
Content-Length: 889[\r][\n]
[\r][\n]
HTTP/1.1 417 Expectation Failed[\r][\n]
HTTP/1.1 417 Expectation Failed[\r][\n]
Connection: close[\r][\n]
Content-Length: 0[\r][\n]
Date: Wed, 14 Jan 2009 00:04:13 GMT[\r][\n]
Server: lighttpd/1.4.20[\r][\n]
[\r][\n]
@cyberduck
Copy link
Collaborator Author

@dkocher commented

See (http://redmine.lighttpd.net/issues/show/1017). Apparently this is fixed in the 1.5 branch of lighthttpd.

@cyberduck
Copy link
Collaborator Author

c3c4459 commented

I strongly disagree with your view here. Older servers, embedded boxes, etc will not be able to upgrade quickly to newer, compliant, http servers. Thus rendering Cyberduck incompatible with any outdated web server.

As per the rfc 2616 8.2.3:
Because of the presence of older implementations, the protocol allows ambiguous situations in which a client may send "Expect: 100- continue" without receiving either a 417 (Expectation Failed) status or a 100 (Continue) status

Cyberduck is awesome, I see no reason if it complies with the above for it not to ignore the 417 lighttpd, or other servers, might return.

@cyberduck
Copy link
Collaborator Author

@dkocher commented

#4384 closed as duplicate.

@cyberduck
Copy link
Collaborator Author

@dkocher commented

Replying to [comment:2 https://www.google.com/accounts/o8/id?id=aitoawkgh5nrdkuu4brr1gol37zddvisyqhuui0]:

I strongly disagree with your view here. Older servers, embedded boxes, etc will not be able to upgrade quickly to newer, compliant, http servers. Thus rendering Cyberduck incompatible with any outdated web server.

As per the rfc 2616 8.2.3:
Because of the presence of older implementations, the protocol allows ambiguous situations in which a client may send "Expect: 100- continue" without receiving either a 417 (Expectation Failed) status or a 100 (Continue) status

Cyberduck is awesome, I see no reason if it complies with the above for it not to ignore the 417 lighttpd, or other servers, might return.

The reason that we require support for continuation is that the user experience for failed uploads is very bad otherwise. All data is transmitted before any error about possible problems is displayed.

@cyberduck
Copy link
Collaborator Author

@dkocher commented

#5928 closed as duplicate.

@cyberduck
Copy link
Collaborator Author

@dkocher commented

#6012 closed as duplicate.

@cyberduck
Copy link
Collaborator Author

@dkocher commented

Fixed in Sardine.

@cyberduck
Copy link
Collaborator Author

@dkocher commented

In 0580ba6.

@cyberduck
Copy link
Collaborator Author

@dkocher commented

Actual fix in f2eb2c6.

@iterate-ch iterate-ch locked as resolved and limited conversation to collaborators Nov 26, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug fixed low priority webdav WebDAV Protocol Implementation
Projects
None yet
Development

No branches or pull requests

2 participants