Prevent XMPP timeout on blank responses
authorKinsey Moore <kmoore@digium.com>
Sat, 7 Sep 2013 01:03:07 +0000 (01:03 +0000)
committerKinsey Moore <kmoore@digium.com>
Sat, 7 Sep 2013 01:03:07 +0000 (01:03 +0000)
commitad89dffb8a2997ad6bbd38ea73762ca0465e70ac
tree95a74c22da9ce691742c5184713511e34c982416
parent0bed76989a4dada80a2ed8b764e014d7e8851e7c
Prevent XMPP timeout on blank responses

Sometimes the Google Voice servers have a bad habit of sending out 1
byte replies to the xmpp resource. When a blank 1 byte reply is
received from the socket the buffer attempts to wait (endlessly) for
the rest of the reply from google which effectively blocks the socket
and google voice calls will no longer come into the server.

This patch allows the xmpp module to correctly detect empty packets and
send out ping replies to google. It also sets a socket timeout on the
default socket which prevents the xmpp socket from closing and
preventing future google voice calls from coming into the server.

Furthermore instead of sending an empty reply back to google we send a
proper xmpp ping reply back. This also adds several more
socket messages.

(closes issue ASTERISK-22347)
Reported by: Andrew Nagy
Review: https://reviewboard.asterisk.org/r/2771
Patches:
    xmpp_fix_1.diff uploaded by Andrew Nagy (License #6524)
........

Merged revisions 398618 from http://svn.asterisk.org/svn/asterisk/branches/11
........

Merged revisions 398619 from http://svn.asterisk.org/svn/asterisk/branches/12

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@398620 65c4cc65-6c06-0410-ace0-fbb531ad65f3
res/res_xmpp.c