Subject: | Responds twice to every iq get |
Looking at the debug output of a test program I see that AnyEvent::XMPP
is making two responses to each iq get request. The first response has
the information I expect and the second one is a service-unavailable error.
The extra response gets sent by the code at the end of
Connection::handle_iq, where it sends the iq_get_request_xml event and
then if nobody handles it it sends the error response. So far so good,
but the event callbacks don't communicate back that they've handled the
request, so the error response is always sent.
Connection::handle_iq passes a scalar ref (as documented in its pod) but
none of the iq_get_request_xml implementations I looked at seem to
expect that argument. I'm not sure whether the scalar ref thingy was
added but not fully implemented, or if it's in the process of being
removed (maybe in favor of some more general mechanism from Object::Event?).