2003-03-12 21:03:32 +01:00
|
|
|
%%%----------------------------------------------------------------------
|
|
|
|
%%% File : jlib.hrl
|
|
|
|
%%% Author : Alexey Shchepin <alexey@sevcom.net>
|
|
|
|
%%% Purpose :
|
|
|
|
%%% Created : 5 Mar 2003 by Alexey Shchepin <alexey@sevcom.net>
|
|
|
|
%%%----------------------------------------------------------------------
|
|
|
|
|
|
|
|
-define(NS_DISCO_ITEMS, "http://jabber.org/protocol/disco#items").
|
|
|
|
-define(NS_DISCO_INFO, "http://jabber.org/protocol/disco#info").
|
|
|
|
-define(NS_VCARD, "vcard-temp").
|
|
|
|
-define(NS_AUTH, "jabber:iq:auth").
|
2003-04-08 21:32:01 +02:00
|
|
|
-define(NS_AUTH_ERROR, "jabber:iq:auth:error").
|
2003-03-12 21:03:32 +01:00
|
|
|
-define(NS_REGISTER, "jabber:iq:register").
|
|
|
|
-define(NS_SEARCH, "jabber:iq:search").
|
|
|
|
-define(NS_ROSTER, "jabber:iq:roster").
|
|
|
|
-define(NS_PRIVATE, "jabber:iq:private").
|
|
|
|
-define(NS_VERSION, "jabber:iq:version").
|
|
|
|
-define(NS_TIME, "jabber:iq:time").
|
|
|
|
-define(NS_XDATA, "jabber:x:data").
|
|
|
|
-define(NS_IQDATA, "jabber:iq:data").
|
|
|
|
-define(NS_DELAY, "jabber:x:delay").
|
|
|
|
-define(NS_EVENT, "jabber:x:event").
|
2003-04-13 21:22:46 +02:00
|
|
|
-define(NS_XCONFERENCE, "jabber:x:conference").
|
2003-03-12 21:03:32 +01:00
|
|
|
-define(NS_STATS, "http://jabber.org/protocol/stats").
|
|
|
|
-define(NS_MUC, "http://jabber.org/protocol/muc").
|
|
|
|
-define(NS_MUC_USER, "http://jabber.org/protocol/muc#user").
|
|
|
|
-define(NS_MUC_ADMIN, "http://jabber.org/protocol/muc#admin").
|
|
|
|
-define(NS_MUC_OWNER, "http://jabber.org/protocol/muc#owner").
|
|
|
|
|
|
|
|
-define(NS_STREAM, "http://etherx.jabber.org/streams").
|
|
|
|
|
2003-04-08 21:32:01 +02:00
|
|
|
-define(NS_STANZAS, "urn:ietf:params:xml:ns:xmpp-stanzas").
|
|
|
|
-define(NS_STREAMS, "urn:ietf:params:xml:ns:xmpp-streams").
|
2003-03-12 21:03:32 +01:00
|
|
|
|
|
|
|
-define(NS_SASL_MECHANISMS, "http://www.iana.org/assignments/sasl-mechanisms").
|
|
|
|
|
|
|
|
% TODO: remove "code" attribute (currently it used for backward-compatibility)
|
|
|
|
-define(STANZA_ERROR(Code, Class, Condition),
|
|
|
|
{xmlelement, "error",
|
|
|
|
[{"code", Code}, {"class", Class}],
|
|
|
|
[{xmlelement, "stanza-condition",
|
|
|
|
[{"xmlns", ?NS_STANZAS}],
|
|
|
|
[{xmlelement, Condition, [], []}]}]}).
|
|
|
|
|
|
|
|
-define(ERR_BAD_REQUEST,
|
|
|
|
?STANZA_ERROR("400", "format", "bad-request")).
|
|
|
|
-define(ERR_FEATURE_NOT_IMPLEMENTED,
|
|
|
|
?STANZA_ERROR("501", "recipient", "feature-not-implemented")).
|
|
|
|
-define(ERR_FORBIDDEN,
|
|
|
|
?STANZA_ERROR("403", "format", "forbidden")).
|
|
|
|
-define(ERR_INTERNAL_SERVER_ERROR,
|
|
|
|
?STANZA_ERROR("403", "server", "internal-server-error")).
|
|
|
|
-define(ERR_JID_MALFORMED,
|
|
|
|
?STANZA_ERROR("400", "address", "jid-malformed")).
|
|
|
|
-define(ERR_JID_NOT_FOUND,
|
|
|
|
?STANZA_ERROR("404", "address", "jid-not-found")).
|
|
|
|
-define(ERR_NOT_ALLOWED,
|
|
|
|
?STANZA_ERROR("405", "access", "not-allowed")).
|
|
|
|
-define(ERR_RECIPIENT_UNAVAILABLE,
|
|
|
|
?STANZA_ERROR("503", "recipient", "recipient-unavailable")).
|
|
|
|
-define(ERR_REGISTRATION_REQUIRED,
|
|
|
|
?STANZA_ERROR("407", "access", "registration-required")).
|
|
|
|
-define(ERR_REMOTE_SERVER_NOT_FOUND,
|
|
|
|
?STANZA_ERROR("502", "address", "remote-server-not-found")).
|
|
|
|
-define(ERR_REMOTE_SERVER_TIMEOUT,
|
|
|
|
?STANZA_ERROR("504", "server", "remote-server-timeout")).
|
|
|
|
-define(ERR_SERVICE_UNAVAILABLE,
|
|
|
|
?STANZA_ERROR("503", "server", "service-unavailable")).
|
|
|
|
%-define(ERR_,
|
|
|
|
% ?STANZA_ERROR("", "", "")).
|
|
|
|
|
2003-04-08 21:32:01 +02:00
|
|
|
% Application-specific stanza errors
|
|
|
|
-define(AUTH_STANZA_ERROR(Condition),
|
|
|
|
{xmlelement, "error",
|
|
|
|
[{"code", "406"}, {"class", "app"}],
|
|
|
|
[{xmlelement, "auth-condition",
|
|
|
|
[{"xmlns", ?NS_AUTH_ERROR}],
|
|
|
|
[{xmlelement, Condition, [], []}]}]}).
|
|
|
|
|
|
|
|
-define(ERR_AUTH_NO_RESOURCE_PROVIDED,
|
|
|
|
?AUTH_STANZA_ERROR("no-resource-provided")).
|
|
|
|
-define(ERR_AUTH_BAD_RESOURCE_FORMAT,
|
|
|
|
?AUTH_STANZA_ERROR("bad-resource-format")).
|
|
|
|
-define(ERR_AUTH_RESOURCE_CONFLICT,
|
|
|
|
?AUTH_STANZA_ERROR("resource-conflict")).
|
|
|
|
|
2003-03-12 21:03:32 +01:00
|
|
|
|
|
|
|
-define(STREAM_ERROR(Class, Condition),
|
|
|
|
{xmlelement, "stream:error",
|
|
|
|
[{"class", Class}],
|
|
|
|
[{xmlelement, "stream-condition",
|
|
|
|
[{"xmlns", ?NS_STANZAS}],
|
|
|
|
[{xmlelement, Condition, [], []}]}]}).
|
|
|
|
|
|
|
|
-define(SERR_HOST_GONE,
|
|
|
|
?STREAM_ERROR("address", "host-gone")).
|
|
|
|
-define(SERR_HOST_UNKNOWN,
|
|
|
|
?STREAM_ERROR("address", "host-unknown")).
|
|
|
|
-define(SERR_INTERNAL_SERVER_ERROR,
|
|
|
|
?STREAM_ERROR("server", "internal-server-error")).
|
2003-03-15 22:11:20 +01:00
|
|
|
-define(SERR_INVALID_NAMESPACE,
|
|
|
|
?STREAM_ERROR("format", "invalid-namespace")).
|
2003-03-12 21:03:32 +01:00
|
|
|
-define(SERR_RESOURSE_CONSTRAINT,
|
|
|
|
?STREAM_ERROR("server", "resource-constraint")).
|
|
|
|
% TODO: include hostname or IP
|
|
|
|
-define(SERR_SEE_OTHER_HOST,
|
|
|
|
?STREAM_ERROR("redirect", "see-other-host")).
|
|
|
|
-define(SERR_SYSTEM_SHUTDOWN,
|
|
|
|
?STREAM_ERROR("server", "system-shutdown")).
|
|
|
|
-define(SERR_UNSUPPORTED_STANZA_TYPE,
|
|
|
|
?STREAM_ERROR("format", "unsupported-stanza-type")).
|
|
|
|
-define(SERR_UNSUPPORTED_VERSION,
|
|
|
|
?STREAM_ERROR("format", "unsupported-version")).
|
|
|
|
-define(SERR_XML_NOT_WELL_FORMED,
|
|
|
|
?STREAM_ERROR("format", "xml-not-well-formed")).
|
|
|
|
%-define(SERR_,
|
|
|
|
% ?STREAM_ERROR("", "")).
|
|
|
|
|
|
|
|
|
|
|
|
|