Trouble uploading files to wordpress

I had problems uploading files to wordpress hosted at the local machine. Conditions are:

  • Firefox 3.0
  • Flash 9.0
  • Local squid proxy 2.7.STABLE3
  • Firefox setup for using local proxy except from accessing local machine. This makes no difference at all.
  • Environment variable http_proxy set to http://127.0.0.1:8080/

The result of trying to upload images to wordpress was “HTTP Error”. A sample wireshark capture of the failed request looks like this:

Request:

POST http://localhost/wordpress/wp-admin/async-upload.php HTTP/1.1 
Host: localhost 
Pragma: no-cache 
Accept: */* 
Proxy-Connection: Keep-Alive 
User-Agent: Shockwave Flash
Connection: Keep-Alive
Cache-Control: no-cache 
Content-Length: 40861 
Expect: 100-continue 
Content-Type: multipart/form-data; boundary=----------------------------5ce16f6dfa7a

Response:

HTTP/1.0 417 Expectation failed 
Server: squid/2.7.STABLE3 
Date: Sun, 27 Jul 2008 09:31:50 GMT 
Content-Type: text/html 
Content-Length: 1507 
Expires: Sun, 27 Jul 2008 09:31:50 GMT 
X-Squid-Error: ERR_INVALID_REQ 0 
X-Cache: MISS from XXXXX.XXXX.XXXX 
X-Cache-Lookup: NONE from XXXXX.XXXX.XXXX:3128 
Via: 1.0 XXXXX.XXXX.XXXX:3128 (squid/2.7.STABLE3) 
Connection: close 

[...]
A page saying:
ERROR: The requested URL could not be retrieved
[...]

It is obvious that flash plugin is used to perform the upload and it is using the proxy. It does a request with an “Expect:” header and for an (unknown to me) reason the expectation fails because of the squid proxy.

Disabling proxy in firefox, restarting it and bypassing cache doesn’t help. The problem lies in that the flash plugin uses the http_proxy environment variable to determine the proxy.

Solution:
Unsetting http_proxy in a terminal and starting firefox from there solves the problem.