[Pidgin] #15684: BOSH does not process all responses in buffer
Pidgin
trac at pidgin.im
Fri Jul 5 10:25:44 EDT 2013
#15684: BOSH does not process all responses in buffer
--------------------+-----------------------
Reporter: flopma | Owner:
Type: defect | Status: new
Milestone: | Component: libpurple
Version: 2.10.7 | Keywords: bosh
--------------------+-----------------------
Hi,
For pidgin connected via BOSH/XMPP.
If 2 or more server replies are read inside function
jabber_bosh_http_connection_process(PurpleHTTPConnection *conn) only the
first reply will be processed by function http_received_cb().
For example, when Pidgin reads
{{{
(14:21:48) jabber: BOSH server sent: HTTP/1.1 200 OK
Date: Fri, 05 Jul 2013 12:20:48 GMT
Server: Jetty(7.x.y-SNAPSHOT)
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: PROPFIND, PROPPATCH, COPY, MOVE, DELETE,
MKCOL, LOCK, UNLOCK, PUT, GETLIB, VERSION-CONTROL, CHECKIN, CHECKOUT,
UNCHECKOUT, REPORT, UPDATE, CANCELUPLOAD, HEAD, OPTIONS, GET, POST
Access-Control-Allow-Headers: Overwrite, Destination, Content-Type, Depth,
User-Agent, X-File-Size, X-Requested-With, If-Modified-Since, X-File-Name,
Cache-Control
Access-Control-Max-Age: 86400
Content-Type: text/xml;charset=UTF-8
Content-Length: 57
Proxy-Connection: Keep-Alive
Connection: Keep-Alive
<body xmlns="http://jabber.org/protocol/httpbind"></body>HTTP/1.1 200 OK
Date: Fri, 05 Jul 2013 12:21:48 GMT
Server: Jetty(7.x.y-SNAPSHOT)
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: PROPFIND, PROPPATCH, COPY, MOVE, DELETE,
MKCOL, LOCK, UNLOCK, PUT, GETLIB, VERSION-CONTROL, CHECKIN, CHECKOUT,
UNCHECKOUT, REPORT, UPDATE, CANCELUPLOAD, HEAD, OPTIONS, GET, POST
Access-Control-Allow-Headers: Overwrite, Destination, Content-Type, Depth,
User-Agent, X-File-Size, X-Requested-With, If-Modified-Since, X-File-Name,
Cache-Control
Access-Control-Max-Age: 86400
Content-Type: text/xml;charset=UTF-8
Content-Length: 152
Proxy-Connection: Keep-Alive
Connection: Keep-Alive
<body xmlns='http://jabber.org/protocol/httpbind'><iq
xmlns="jabber:client" type="result" id="purplef3ce4cf9"
to="gorisis at xmpp.citnet/98a19540"/></body>
(14:21:48) jabber: RecvBOSH (ssl)(57): <body
xmlns="http://jabber.org/protocol/httpbind"></body>HTTP/1.1 200 OK
Date: Fri, 05 Jul 2013 12:21:48 GMT
Server: Jetty(7.x.y-SNAPSHOT)
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: PROPFIND, PROPPATCH, COPY, MOVE, DELETE,
MKCOL, LOCK, UNLOCK, PUT, GETLIB, VERSION-CONTROL, CHECKIN, CHECKOUT,
UNCHECKOUT, REPORT, UPDATE, CANCELUPLOAD, HEAD, OPTIONS, GET, POST
Access-Control-Allow-Headers: Overwrite, Destination, Content-Type, Depth,
User-Agent, X-File-Size, X-Requested-With, If-Modified-Since, X-File-Name,
Cache-Control
Access-Control-Max-Age: 86400
Content-Type: text/xml;charset=UTF-8
Content-Length: 152
Proxy-Connection: Keep-Alive
Connection: Keep-Alive
<body xmlns='http://jabber.org/protocol/httpbind'><iq
xmlns="jabber:client" type="result" id="purplef3ce4cf9"
to="gorisis at xmpp.citnet/98a19540"/></body>
}}}
only the 1st reply (the empty <body/>) will be processed. Pidgin will not
process the ping reply and this will lead to a time out.
Probably linked to bug #15679
--
Ticket URL: <https://developer.pidgin.im/ticket/15684>
Pidgin <http://pidgin.im>
Pidgin
More information about the Tracker
mailing list