I just did some more testing, particularly unpausing the GTA: San Andreas patch download - that still doesn't come, and what I see is that I'm getting HTTP code 500 Internal Server Error from
steam.cdn.vodafone.co.nz for the requests for the San Andreas patch manifest. So, that patch won't download, and as a side effect this does kinda hose Steam, it doesn't seem to properly cancel a download in that state, it gets stuck and won't actually attempt to download anything else until you try and cancel a few times or quit Steam and restart it. But, that's just a bug in steam, which is no big surprise.
The other things I try all download fine - I've just tried GTA3, Lord of the Rings War in the North, and my standard test download Evil Genius and all of them have come down normally from the Vodafone proxy server. The only thing I've found thus far that gives me any trouble is the brand-new patch to GTA: San Andreas.
Since it gives a "500 Internal Server Error", it's hard to know quite why that particular title is the only one that appears affected, but one thing I notice is that Steam first tried this:
with the trailing question mark; that gets the error 500, but trying the same thing dropping the question mark gets a plain 404 Not Found, aka "doesn't exist". The same is true for all the things that Steam tries for the GTA: San Andreas patch, all the URLs it requests have a query-string part, some empty some not.
So, on the one hand it's a little borked at Vodafone's end that their proxy isn't configured to be able to handle query strings in URLs at all. However, there's no obvious reason why Steam is using an empty query string here for some requests, or why it'd need them, and also no clear reason why Vodafone's proxy can't get the underlying content without them as it ought to - because it's a web proxy, normally on a cache miss the proxy just goes and fetches the thing it wants from whatever they have configured as the upstream source on your behalf.
However, if you do this in a Web browser to one of the normal Steam CDN-type servers:
what comes back is actually a "403 Forbidden", which may explain why the Vodafone server can't get this content - as far as I can tell what we're looking at here is a case where Valve are keeping the content for this download completely off the regular public distribution servers, and have restricted it to live only on the separate "CS"-type server network they run (which is also mostly just HTTP download, but with some extra bits and bobs where details about your Steam login get passed along with your regular requests). When the Vodafone proxy gets our request, it passes it on to something upstream which will be a CDN-type server, where it'll be told it can't have it.
The final step here is asking for some data from
valve6.cs.steampowered.com which is one of the special "CS" type servers valve run: requests without the trailing ? give the HTTP status "401 Unauthorized". however asking for it with a URL with the trailing query-string flag ? gives me the content, and that's true for all the stuff that Stream requests from the "CS"-type servers.
So basically, it looks like this is all driven by things at Valve's end, where some download content looks like it is being kept off the main download servers (which are probably the ones the Vodafone proxy is fetching from) and Valve are keeping on their oddball "CS" server network only, hence why Vodafone's server can't get that content from Valve's upstream.
Basically, there doesn't seem like anything I can do. It may or may not be a good idea for me to strip out all the '?' query strings from download requests from "CS"-type servers that I redirect to Vodafone, if their proxy configuration isn't smart enough to deal with them, but that is probably not going to accomplish much except change the error number we get back... so this particular download just can't be gotten unmetered yet.
Beyond that I don't know what's going on, especially since this is the only example I have to look at, and it's hard to know whether it's just a temporary thing or not. But it does appear to be driven by choices at Valve's end of things.
- Nigel