fields = sscanf(line_buffer, "%20s%d",
server_version,
&server_status);
if (fields < 2)
{ /* HTTP0 reply */
...
}
else
{ /* HTTP/1.0 reply */
...
}
This is how the client library, and therefore the clients, figure out
whether they're talking to a HTTP0 or HTTP/1.0 server on the fly.
(The precept is that if the first "line" -- in quotes because, despite
various sources of resistance, binary data often flies across HTTP0
now -- of the received data stream is something like "HTTP/1.0 200
Document follows", then the client knows it's talking to a HTTP/1.0
server. If not, then it's a HTTP0 server.)
So any file such a client accesses that resides on a HTTP0 server and
begins with a sequence of bytes that matches such a pattern is going
to fool the client into thinking it is talking to a HTTP/1.0 server,
and the data will therefore be interpreted incorrectly.
This problem will up and go away if (a) everyone switches to HTTP/1.0
across the board practically immediately or (b) nobody ever serves
such a file from a HTTP0 server. I'm not sure how likely either of
these scenarios is, but I've got a bad feeling about it.
So.... does anyone have any other ideas on how to handle this
situation?
Cheers,
Marc