Dnia 2013-07-07, nie o godzinie 10:12 +0800, li wang pisze: > 190221: Send(testClient): <iq xmlns="jabber:client" type="set" > id="example.2"><query xmlns="jabber:iq:roster"><item > jid="[email protected]" /></query></iq> > 190221: Recv(testClient): <iq xmlns="jabber:client" > to="[email protected]/testim.5027" type="set" id="wygwyuoi"><query > xmlns="jabber:iq:roster"><item jid="[email protected]" > subscription="none" /></query></iq> > 190221: Send(testClient): <iq xmlns="jabber:client" type="result" > id="wygwyuoi" />
There is definitely something fishy going on here, as I just checked RFC 3921 and it also required reply for a roster push: As required by the semantics of the IQ stanza kind as defined in [XMPP-CORE], each resource that received the roster push MUST reply with an IQ stanza of type "result" (or "error"). > 190221: Recv(testClient): <iq xmlns="jabber:client" type="result" > id="example.2" /> > 190221: Recv(testClient): <iq xmlns="jabber:client" > to="[email protected]/testim.5027" > from="[email protected]/testim.5027" id="wygwyuoi" type="result" /> Please take a look at "from" and "to" of this stanza. It's your connection full JID. It looks like a stanza sent directly to a resource, that is being routed (as required) directly to the connected resource. > 190221: Recv(testClient): <iq xmlns="jabber:client" type="error" > from="[email protected]/testim.5027" id="wygwyuoi" > to="[email protected]/testim.5027"><query > xmlns="jabber:iq:roster"><item jid="[email protected]" > subscription="none" /></query><error code="501" > type="cancel"><feature-not-implemented > xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" /><text > xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">The feature requested is > not implemented by the recipient or server and therefore cannot be > processed.</text></error></iq> This also looks like a direct error reply from your client to itself. Moreover, it has a textual description of the problem. jabberd2 generated errors do not have textual descriptions. The string "The feature requested is not implemented" does not appear in jabberd2 codebase. Are you sure your client connection code or library is not mangling your sent packets to include full JID in to field? Please run sm in debug mode -D to check the server conversation. -- Tomasz Sterna :(){ :|:&};: Instant Messaging Consultant Open Source Developer http://abadcafe.pl/ http://www.xiaoka.com/portfolio
