ConnParseError when using MSN transport
From: Soren Dreijer <dreijerspam@xxxxxxxxxxx>
Date: Mon, 7 Sep 2009 23:15:04 +0200 (CEST)
I've enabled the MSN transport on the XMPP server with which my gloox client
is talking. About 5 seconds after the client has connected and has
successfully logged on to the MSN network, I receive the following blob of
data which causes the parser in gloox to fail and the connection is closed
with ConnParseError:

<presence to="dreijer@xxxxxxx" from="xxx\40hotmail.com@xxxxxxxxxxx"><x
xmlns="vcard-temp:x:update"><photo><![CDATA[809b46e01d950fa05c1b623495a9716cffbcceea]]></photo><hash><![CDATA[809b46e01d950fa05c1b623495a9716cffbcceea]]></hash></x></presence>

I've traced the parsing error down to the following piece of code:

case TagOpening:               // opening '<' has been found before
  if( isWhitespace( c ) )
    break;

  switch( c )
  {
    case '<':
    case '>':
    case '!':
      cleanup();
      return false;
      break;

c is set to '!', which is only present in the data as "![CDATA". I'm not
sure why gloox does its own XML parsing in the first place, but it
definitely doesn't like the data it's receiving :)

Anybody?