PHP script not executing with empty POST when using chunked encoding

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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! J


[Index of Archives]     [Open SSH Users]     [Linux ACPI]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Squid]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux