Am 03.06.2013 um 11:51 schrieb Klaas Freitag:

> Problems happen if there are proxies or whatever gangsters on the way between 
> client and server that filter out these headers without further notice. Than 
> the server has no chance to detect that chunked upload is in progress.
> 

I found the reason: nginx (natively and when used as a reverse proxy, 
potentially also IIS, would need more investigation) do not deal properly with 
headers using underscores by default. The reason is that when transforming this 
to CGI variables, all underscores are dashes converted into underscores, i.e.

OC_FOO_BAR and OC-foo-bar

are both represented as HTTP_OC_FOO_BAR in the server environment (i.e. PHP's 
_SERVER map). Yes, header fields are also case insensitive.

> [1] https://github.com/owncloud/core/wiki/spec:-big-file-chunking


I propose do deprecate OC_CHUNKING, and introduce org.owncloud.chunked: 1 (as 
per RFC6648, such notation is recommended for headers not subject to 
standardization efforts and superseeds the X- vendor prefix). We will keep 
sendind OC_CHUNKING in the client and accept it in the server implementation. 
For existing setups, I will also amend the server documentation for nginx to 
point out this trap (set 
http://wiki.nginx.org/Pitfalls#Missing_.28disappearing.29_HTTP_headers, make 
sure to set the variable in the default server{}'s scope when using virtual 
hosts !)

For maximum data safety, we have now fixed csync to not lose data if the header 
is missing (only an issue to 1.3.0 beta testers).

Cheers,
  Daniel

--
www.owncloud.com - Your Data, Your Cloud, Your Way!

ownCloud GmbH, GF: Markus Rex, Holger Dyroff
Schloßäckerstrasse 26a, 90443 Nürnberg, HRB 28050 (AG Nürnberg)

_______________________________________________
Owncloud mailing list
[email protected]
https://mail.kde.org/mailman/listinfo/owncloud

Reply via email to