httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ashly Pridmore <Ashly.Pridm...@juniperbridge.com>
Subject [users@httpd] PHP script not executing with empty POST when using chunked encoding
Date Mon, 04 Mar 2013 12:11:25 GMT
Good afternoon,

We are using Apache and PHP to form a CWMP server for TR69 provisioning of customer routers.
We have two bits of kit we are looking to use, two ZyXEL routers with model numbers AMG1202
and NBG1202.

To cut a long story short, we are able to communicate happily with the AMG1202, but are running
into a show-stopping issue with the NBG1202. After some tracing, it seems to come down to
the way that they send empty POST messages to the server (this is done to denote to the server
that they are awaiting a command).

The AMG sends:

POST /{URL} HTTP/1.1
Host: {Host}
User-Agent: Allegro-Software-WebClient/4.07
Accept: */*
Content-Type: text/xml; charset=utf-8
Content-Length: 0
Cookie: PHPSESSID=sj810he8epc5hlqsautj96j1u0\r\n
\r\n

Which works fine. The script executes and returns a response.
The NBG on the other hand, sends the following:

POST /{URL} HTTP/1.1
HOST: {Host}
User-Agent: workssys.com
Transfer-Encoding: chunked
Content-Length: 0
Cookie2: $Version="1"
Cookie: PHPSESSID=l47r1bf2erk870i8n3m9sm4v65\r\n
\r\n
0\r\n
\r\n

This hangs with no reply. In a wireshark trace, I see the TCP ACK of the message, but apache
does not return anything. However, if I send the same code in telnet, it works fine!

I can replicate this if I send the following:

POST /{URL} HTTP/1.1
HOST: {Host}
User-Agent: workssys.com
Transfer-Encoding: chunked
Content-Length: 0
Cookie2: $Version="1"
Cookie: PHPSESSID=l47r1bf2erk870i8n3m9sm4v65\r\n
\r\n

However the wireshark trace shows that the full packet has been received. I'm relatively confident
this is an issue with the ZyXEL NBG1202 and have logged a ticket with them, but was wondering
if there was anything I could do in the meantime to get Apache to accept the request (it looks
like it's waiting for more input, and so isn't executing the PHP script. I'm wondering if
it is possible to set a timeout on the request, say 5 seconds or so?). It's worth noting that
the original message to the server goes through fine (this is a POST message that is not empty).

Any help would be much appreciated! :)

Mime
View raw message