We use gsoap client for working with a webservice (IIS). We observe that gsoap 
is not reading entire http reponse body. http_parse and soap_get_http_body are 
not reading response based on content length in http header. This fails in one 
case where http response we receive from server is sent as multiple tcp/ip 
segments . All segments have tcp psh bit set. gsoap (socket code) only reads 
the first segment and ignores rest. Because it is not reading all the segments, 
when reading the next response on same socket, it is all messed up. 

Reading soap response works because it reads until the end of response xml tag, 
etc.. But for http response body, specifically 401 status response, it does not 
read the entire response.

For our case, the service implementors shortened the 401 response in IIS to a 
single line and it solves the problem.

Please let me know if what we analyzed makes sense

Reply via email to