| AnyEvent-XMPP documentation | Contained in the AnyEvent-XMPP distribution. |
AnyEvent::XMPP::Error::Stream - XML Stream errors
Subclass of AnyEvent::XMPP::Error
Returns the AnyEvent::XMPP::Node object for this stream error.
Returns the name of the error. That might be undef, one of the following strings or some other string that has been discovered by a heuristic (because some servers send errors that are not in the RFC).
bad-format bad-namespace-prefix conflict connection-timeout host-gone host-unknown improper-addressing internal-server-error invalid-from invalid-id invalid-namespace invalid-xml not-authorized policy-violation remote-connection-failed resource-constraint restricted-xml see-other-host system-shutdown undefined-condition unsupported-stanza-type unsupported-version xml-not-well-formed
The humand readable error portion. Might be undef if none was received.
Robin Redeker, <elmex at ta-sa.org>, JID: <elmex at jabber.org>
Copyright 2007, 2008 Robin Redeker, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| AnyEvent-XMPP documentation | Contained in the AnyEvent-XMPP distribution. |
package AnyEvent::XMPP::Error::Stream; use AnyEvent::XMPP::Error; use strict; our @ISA = qw/AnyEvent::XMPP::Error/;
sub init { my ($self) = @_; my $node = $self->xml_node; my @txt = $node->find_all ([qw/streams text/]); my $error; for my $er ( qw/bad-format bad-namespace-prefix conflict connection-timeout host-gone host-unknown improper-addressing internal-server-error invalid-from invalid-id invalid-namespace invalid-xml not-authorized policy-violation remote-connection-failed resource-constraint restricted-xml see-other-host system-shutdown undefined-condition unsupported-stanza-type unsupported-version xml-not-well-formed/) { if (my (@n) = $node->find_all ([streams => $er])) { $error = $n[0]->name; last; } } unless ($error) { #d# warn "got undefined error stanza, trying to find any undefined error..."; for my $n ($node->nodes) { if ($n->eq_ns ('streams')) { $error = $n->name; } } } $self->{error_name} = $error; $self->{error_text} = @txt ? $txt[0]->text : ''; }
sub xml_node { $_[0]->{node} }
sub name { $_[0]->{error_name} }
sub text { $_[0]->{error_text} } sub string { my ($self) = @_; sprintf ("stream error: %s: %s", $self->name, $self->text) }
1; # End of AnyEvent::XMPP