Well, strangely enough, my firewall had secretly created an allow rule for the executable in the debug directory, then quietly decided to deny all other requests from the same executable. Hindsight is 20/20 but I had the blinders on, following the cookie crumb trail MSDN left down the road to perdition.
So with my face fully lost, I feel free to ask another dumb question: While everything seems hunky dory on Windows, the same code I posted above, compiled on the Mac, gives me errors…
If I look at the server logs, here’s what I get:
#Fields: date time c-ip cs-username s-sitename s-computername s-ip s-port cs-method cs-uri-stem cs-uri-query sc-status sc-win32-status sc-bytes cs-bytes time-taken cs-version
// From a windows XP machine:
2008-12-17 21:43:56 18.104.22.168 - W3SVC1 MYSERVER 10.10.1.100 1234 POST /somedir/myscript.cgi - 200 0 1625 1237 10969 HTTP/1.1 my.domain.name:1234 juce - -
// where 200 is the server status (OK) and everything works as expected.
// From a Leopard machine:
2008-12-17 22:01:50 22.214.171.124 - W3SVC1 MYSERVER 10.10.1.100 1234 POST /somedir/myscript.cgi - 400 87 4148 1024 0 HTTP/1.0 reg.dynalias.net:8000 JUCE/1.46 - -
where 400 is a bad request returned from the server and 87 seems to indicate invalid parameter, for example if there was some invalid character I imagine.
I guess my first dumb question is… is there a difference between the way http 1.0 and 1.1 send a POST, or perhaps different limits on the length of the query string. Certainly the windows one has got it right in terms of bytes… but I don’t know where the mac request is getting it’s numbers.
Note that if I trace out the request (myurl.toString(true)) there seems to be a newline between the “?” and the parameter=value string. I don’t see anywhere in my code or the url code that would put that there, but I suppose a POST to “…/myscript.cgi?” with nothing (newline) after it might generate 87 “invalid parameter” error?
Anyway, all paths lead to said cgi, so I’ll probably just write some asp for the 400 page that spits back the request/query/post in plain text so I can see exactly what juce is sending me, but I thought I’d ask first.