Subject: 'Stack Empty' Exception after successfully login.
Hi Everyone,
I am using agsXmpp Library to connect with Windows Live XMPP Service. I am able to connect and authenticate the user but then I receive 'Empty Stack' exception. I need help to identify the reason.
Here is my code and logs:
Code:
Logs:
WriteXml:
<stream:stream to='messenger.live.com' xmlns='jabber:client' xmlns:stream='http:
//etherx.jabber.org/streams' version='1.0' xml:lang='en'>
ReadXml:
<stream:stream xmlns:stream="http://etherx.jabber.org/streams" from="messenger.l
ive.com" version="1.0" id="38428" >
ReadXml:
<stream:features xmlns:stream="http://etherx.jabber.org/streams"><starttls xmlns
="urn:ietf:params:xml:ns:xmpp-tls"><required /></starttls></stream:features>
WriteXml:
<starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls" />
ReadXml:
<proceed xmlns="urn:ietf:params:xml:ns:xmpp-tls" />
WriteXml:
<stream:stream to='messenger.live.com' xmlns='jabber:client' xmlns:stream='http:
//etherx.jabber.org/streams' version='1.0' xml:lang='en'>
ReadXml:
<stream:stream xmlns:stream="http://etherx.jabber.org/streams" from="messenger.l
ive.com" version="1.0" id="38430" >
ReadXml:
<stream:error xmlns:stream="http://etherx.jabber.org/streams"><see-other-host xm
lns="urn:ietf:params:xml:ns:xmpp-streams">BAYMSG1020414.gateway.messenger.live.c
om</see-other-host></stream:error>
ReadXml:
</stream:stream>
OnClose
WriteXml:
<stream:stream to='messenger.live.com' xmlns='jabber:client' xmlns:stream='http:
//etherx.jabber.org/streams' version='1.0' xml:lang='en'>
ReadXml:
<stream:stream xmlns:stream="http://etherx.jabber.org/streams" from="messenger.l
ive.com" version="1.0" id="78742" >
ReadXml:
<stream:features xmlns:stream="http://etherx.jabber.org/streams"><starttls xmlns
="urn:ietf:params:xml:ns:xmpp-tls"><required /></starttls></stream:features>
WriteXml:
<starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls" />
ReadXml:
<proceed xmlns="urn:ietf:params:xml:ns:xmpp-tls" />
WriteXml:
<stream:stream to='messenger.live.com' xmlns='jabber:client' xmlns:stream='http:
//etherx.jabber.org/streams' version='1.0' xml:lang='en'>
ReadXml:
<stream:stream xmlns:stream="http://etherx.jabber.org/streams" from="messenger.l
ive.com" version="1.0" id="78743" >
ReadXml:
<stream:features xmlns:stream="http://etherx.jabber.org/streams"><mechanisms xml
ns="urn:ietf:params:xml:ns:xmpp-sasl"><mechanism>X-MESSENGER-OAUTH2</mechanism><
/mechanisms></stream:features>
WriteXml:
<auth xmlns="urn:ietf:params:xml:ns:xmpp-sasl" mechanism="X-MESSENGER-OAUTH2">Ew
A4Aq1DBAAUlbRWyAJjK5w968Ru3Cyt/6GvwXwAAaftsJebekJdR3Bc44NP4ub51GcHbJgPWTB1pxljZs
hErHMd5Vph9wSDQMyx3Tewnhn4tGCDx6lN0G56cQXJYvMpere7hoMu74TUiT+hrXpOKmUhcpcqQlX9v5
H2nOj+uApAREtU8gQ1zsbXTVl6ENMBjhZU05rM3T7iZQARjoTC/kmwJHzV70h0GcGc5fP0gW1gdGXQUx
Yzem5E1LKJBwseVMFtea+66bZruMrmFJvs25XKNVksKCj6tuYBal7WkGvqiXugirfO7aT7U/WCtdhCgP
Yjp6YN8LYyhzp2D/qPhzjJNS2xNwP2v0bY2l1lZKz7eAYfKNlhyiJDVuoi0xADZgAACMKgxwEQvtn1CA
GPdP4Xlfmx4Yb7SX3tDXPCpFnv6U1APCjogz79OqWpRJ0EPAVWWVN91Sb9EwDmSPML9mvnYN2zQU45yw
hDaq86dVYrRMYPyzs6/ChMtSr4V6Q9qYg32MsSCdfyl4SxxCVvT89NSuncyYZjOojLTUiD9YiIxSbdud
+/BMkeHcZvuKGyxqynkQMRUqTbiCu6HfQBIHpN1HNLmILsnYnNYDARHRftdm0WBKCRp8JlF+fupRBqyp
z73KXzNzsteymsHwvCMQZ/vAPDDmfkoGYyDvKibuwtoeCP2ZV5Zb2681QX4zzQ6jeRFaM7hMj4E5Ekw7
VzXUUMf2IeG0Nf7Iq/tG/chpiG0d1Vps8AAA==</auth>
WriteXml:
<iq id="agsXMPP_1" type="get" to="messenger.live.com"><query xmlns="jabber:iq:au
th"><username /></query></iq>
ReadXml:
<success xmlns="urn:ietf:params:xml:ns:xmpp-sasl" />
WriteXml:
<stream:stream to='messenger.live.com' xmlns='jabber:client' xmlns:stream='http:
//etherx.jabber.org/streams' version='1.0' xml:lang='en'>
OnClose
OnClose
OnError
Stack empty.
Thanks
-Akhtar
I am using agsXmpp Library to connect with Windows Live XMPP Service. I am able to connect and authenticate the user but then I receive 'Empty Stack' exception. I need help to identify the reason.
Here is my code and logs:
Code:
- using System;
- using System.Collections.Generic;
- using System.Text;
- using agsXMPP;
- using agsXMPP.protocol.client;
- using agsXMPP.Collections;
- using agsXMPP.protocol.iq.roster;
- using System.Threading;
- namespace JabberClient
- {
- class Program
- {
- static bool _wait;
- static void Main(string[] args)
- {
- xmpp.ConnectServer = "xmpp.messenger.live.com";
- xmpp.Server = "messenger.live.com";
- xmpp.UseStartTLS = true;
- xmpp.AutoRoster = true;
- xmpp.AutoPresence = true;
- xmpp.Port = 5222;
- try
- {
- xmpp.Open();
- }
- catch (Exception e)
- {
- Console.WriteLine(e.Message);
- }
- Console.ReadLine();
- xmpp.Close();
- }
- static void xmpp_OnStreamError(object sender, agsXMPP.Xml.Dom.Element e)
- {
- }
- static void xmpp_OnClose(object sender)
- {
- Console.WriteLine("OnClose");
- if (redirect)
- xmpp.Open();
- redirect = false;
- }
- static void xmpp_OnAuthError(object sender, agsXMPP.Xml.Dom.Element e)
- {
- Console.WriteLine("OnAuthrError");
- }
- static void xmpp_OnWriteXml(object sender, string xml)
- {
- Console.WriteLine("WriteXml:");
- Console.WriteLine(xml);
- }
- static void xmpp_OnReadXml(object sender, string xml)
- {
- Console.WriteLine("ReadXml:");
- Console.WriteLine(xml);
- if (xml.Contains("see-other-host"))
- {
- d.LoadXml(xml);
- xmpp.ConnectServer = d.DocumentElement.GetElementsByTagName("see-other-host")[0].InnerText;
- xmpp.AutoResolveConnectServer = false;
- xmpp.Port = 5222;
- redirect = true;
- }
- }
- static void xmpp_OnError(object sender, Exception ex)
- {
- Console.WriteLine("OnError");
- Console.WriteLine(ex.Message);
- }
- static void xmpp_OnXmppError(object sender, agsXMPP.Xml.Dom.Element e)
- {
- Console.WriteLine("OnXmppError");
- Console.WriteLine(e.Value);
- }
- static void xmpp_OnSaslStart(object sender, agsXMPP.Sasl.SaslEventArgs args)
- {
- args.Auto = false;
- auth.Attributes.Add("mechanism", "X-MESSENGER-OAUTH2");
- auth.Value = "EwA4Aq1DBAAUlbRWyAJjK5w968Ru3Cyt/6GvwXwAAaftsJebekJdR3Bc44NP4ub51GcHbJgPWTB1pxljZshErHMd5Vph9wSDQMyx3Tewnhn4tGCDx6lN0G56cQXJYvMpere7hoMu74TUiT+hrXpOKmUhcpcqQlX9v5H2nOj+uApAREtU8gQ1zsbXTVl6ENMBjhZU05rM3T7iZQARjoTC/kmwJHzV70h0GcGc5fP0gW1gdGXQUxYzem5E1LKJBwseVMFtea+66bZruMrmFJvs25XKNVksKCj6tuYBal7WkGvqiXugirfO7aT7U/WCtdhCgPYjp6YN8LYyhzp2D/qPhzjJNS2xNwP2v0bY2l1lZKz7eAYfKNlhyiJDVuoi0xADZgAACMKgxwEQvtn1CAGPdP4Xlfmx4Yb7SX3tDXPCpFnv6U1APCjogz79OqWpRJ0EPAVWWVN91Sb9EwDmSPML9mvnYN2zQU45ywhDaq86dVYrRMYPyzs6/ChMtSr4V6Q9qYg32MsSCdfyl4SxxCVvT89NSuncyYZjOojLTUiD9YiIxSbdud+/BMkeHcZvuKGyxqynkQMRUqTbiCu6HfQBIHpN1HNLmILsnYnNYDARHRftdm0WBKCRp8JlF+fupRBqypz73KXzNzsteymsHwvCMQZ/vAPDDmfkoGYyDvKibuwtoeCP2ZV5Zb2681QX4zzQ6jeRFaM7hMj4E5Ekw7VzXUUMf2IeG0Nf7Iq/tG/chpiG0d1Vps8AAA==";
- xmpp.Send(auth);
- }
- // Is called, if the precence of a roster contact changed
- static void xmpp_OnPresence(object sender, Presence pres)
- {
- Console.WriteLine("Available Contacts: ");
- Console.WriteLine("{0}@{1} {2}", pres.From.User, pres.From.Server, pres.Type);
- //Console.WriteLine(pres.From.User + "@" + pres.From.Server + " " + pres.Type);
- Console.WriteLine();
- }
- // Is raised when login and authentication is finished
- static void xmpp_OnLogin(object sender)
- {
- _wait = false;
- Console.WriteLine("Logged In");
- }
- //Handles incoming messages
- static void MessageCallBack(object sender,
- agsXMPP.protocol.client.Message msg,
- object data)
- {
- if (msg.Body != null)
- {
- Console.ForegroundColor = ConsoleColor.Red;
- Console.WriteLine("{0}>> {1}", msg.From.User, msg.Body);
- Console.ForegroundColor = ConsoleColor.Green;
- }
- }
- public static bool redirect { get; set; }
- }
- }
Logs:
WriteXml:
<stream:stream to='messenger.live.com' xmlns='jabber:client' xmlns:stream='http:
//etherx.jabber.org/streams' version='1.0' xml:lang='en'>
ReadXml:
<stream:stream xmlns:stream="http://etherx.jabber.org/streams" from="messenger.l
ive.com" version="1.0" id="38428" >
ReadXml:
<stream:features xmlns:stream="http://etherx.jabber.org/streams"><starttls xmlns
="urn:ietf:params:xml:ns:xmpp-tls"><required /></starttls></stream:features>
WriteXml:
<starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls" />
ReadXml:
<proceed xmlns="urn:ietf:params:xml:ns:xmpp-tls" />
WriteXml:
<stream:stream to='messenger.live.com' xmlns='jabber:client' xmlns:stream='http:
//etherx.jabber.org/streams' version='1.0' xml:lang='en'>
ReadXml:
<stream:stream xmlns:stream="http://etherx.jabber.org/streams" from="messenger.l
ive.com" version="1.0" id="38430" >
ReadXml:
<stream:error xmlns:stream="http://etherx.jabber.org/streams"><see-other-host xm
lns="urn:ietf:params:xml:ns:xmpp-streams">BAYMSG1020414.gateway.messenger.live.c
om</see-other-host></stream:error>
ReadXml:
</stream:stream>
OnClose
WriteXml:
<stream:stream to='messenger.live.com' xmlns='jabber:client' xmlns:stream='http:
//etherx.jabber.org/streams' version='1.0' xml:lang='en'>
ReadXml:
<stream:stream xmlns:stream="http://etherx.jabber.org/streams" from="messenger.l
ive.com" version="1.0" id="78742" >
ReadXml:
<stream:features xmlns:stream="http://etherx.jabber.org/streams"><starttls xmlns
="urn:ietf:params:xml:ns:xmpp-tls"><required /></starttls></stream:features>
WriteXml:
<starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls" />
ReadXml:
<proceed xmlns="urn:ietf:params:xml:ns:xmpp-tls" />
WriteXml:
<stream:stream to='messenger.live.com' xmlns='jabber:client' xmlns:stream='http:
//etherx.jabber.org/streams' version='1.0' xml:lang='en'>
ReadXml:
<stream:stream xmlns:stream="http://etherx.jabber.org/streams" from="messenger.l
ive.com" version="1.0" id="78743" >
ReadXml:
<stream:features xmlns:stream="http://etherx.jabber.org/streams"><mechanisms xml
ns="urn:ietf:params:xml:ns:xmpp-sasl"><mechanism>X-MESSENGER-OAUTH2</mechanism><
/mechanisms></stream:features>
WriteXml:
<auth xmlns="urn:ietf:params:xml:ns:xmpp-sasl" mechanism="X-MESSENGER-OAUTH2">Ew
A4Aq1DBAAUlbRWyAJjK5w968Ru3Cyt/6GvwXwAAaftsJebekJdR3Bc44NP4ub51GcHbJgPWTB1pxljZs
hErHMd5Vph9wSDQMyx3Tewnhn4tGCDx6lN0G56cQXJYvMpere7hoMu74TUiT+hrXpOKmUhcpcqQlX9v5
H2nOj+uApAREtU8gQ1zsbXTVl6ENMBjhZU05rM3T7iZQARjoTC/kmwJHzV70h0GcGc5fP0gW1gdGXQUx
Yzem5E1LKJBwseVMFtea+66bZruMrmFJvs25XKNVksKCj6tuYBal7WkGvqiXugirfO7aT7U/WCtdhCgP
Yjp6YN8LYyhzp2D/qPhzjJNS2xNwP2v0bY2l1lZKz7eAYfKNlhyiJDVuoi0xADZgAACMKgxwEQvtn1CA
GPdP4Xlfmx4Yb7SX3tDXPCpFnv6U1APCjogz79OqWpRJ0EPAVWWVN91Sb9EwDmSPML9mvnYN2zQU45yw
hDaq86dVYrRMYPyzs6/ChMtSr4V6Q9qYg32MsSCdfyl4SxxCVvT89NSuncyYZjOojLTUiD9YiIxSbdud
+/BMkeHcZvuKGyxqynkQMRUqTbiCu6HfQBIHpN1HNLmILsnYnNYDARHRftdm0WBKCRp8JlF+fupRBqyp
z73KXzNzsteymsHwvCMQZ/vAPDDmfkoGYyDvKibuwtoeCP2ZV5Zb2681QX4zzQ6jeRFaM7hMj4E5Ekw7
VzXUUMf2IeG0Nf7Iq/tG/chpiG0d1Vps8AAA==</auth>
WriteXml:
<iq id="agsXMPP_1" type="get" to="messenger.live.com"><query xmlns="jabber:iq:au
th"><username /></query></iq>
ReadXml:
<success xmlns="urn:ietf:params:xml:ns:xmpp-sasl" />
WriteXml:
<stream:stream to='messenger.live.com' xmlns='jabber:client' xmlns:stream='http:
//etherx.jabber.org/streams' version='1.0' xml:lang='en'>
OnClose
OnClose
OnError
Stack empty.
Thanks
-Akhtar
akhhttar
Show profile
Link to this post
)