diff mcabber/libjabber/jabber.h @ 417:c3ae9251c197

Sync libjabber with upstream Sync with jabberd-1.4.4.
author Mikael Berthe <mikael@lilotux.net>
date Thu, 01 Sep 2005 23:29:21 +0200
parents 17aa60c6dc63
children 98de2d166a11
line wrap: on
line diff
--- a/mcabber/libjabber/jabber.h	Thu Sep 01 21:18:19 2005 +0200
+++ b/mcabber/libjabber/jabber.h	Thu Sep 01 23:29:21 2005 +0200
@@ -57,7 +57,7 @@
 #define JID_SERVER   4
 
 typedef struct jid_struct
-{ 
+{
     pool               p;
     char*              resource;
     char*              user;
@@ -65,7 +65,7 @@
     char*              full;
     struct jid_struct *next; /* for lists of jids */
 } *jid;
-  
+
 jid     jid_new(pool p, char *idstr);          /* Creates a jabber id from the idstr */
 
 void    jid_set(jid id, char *str, int item);  /* Individually sets jid components */
@@ -75,6 +75,7 @@
 jid     jid_append(jid a, jid b);              /* Appending b to a (list), no dups */
 xmlnode jid_xres(jid id);                      /* Returns xmlnode representation of the resource?query=string */
 xmlnode jid_nodescan(jid id, xmlnode x);       /* Scans the children of the node for a matching jid attribute */
+jid     jid_user(jid a);                       /* returns the same jid but just of the user@host part */
 
 
 /* --------------------------------------------------------- */
@@ -104,21 +105,22 @@
 #define JPACKET__UNAVAILABLE  13
 #define JPACKET__PROBE        14
 #define JPACKET__HEADLINE     15
+#define JPACKET__INVISIBLE    16
 
 typedef struct jpacket_struct
 {
-    unsigned char type;
-    int           subtype;
-    int           flag;
-    void*         aux1;
-    xmlnode       x;
-    jid           to;
-    jid           from;
-    char*         iqns;
-    xmlnode       iq;
-    pool          p;
+    unsigned char type;             /**< stanza type (JPACKET_*) */
+    int           subtype;          /**< subtype of a stanza */
+    int           flag;             /**< used by the session manager to flag messages, that are read from offline storage */
+    void*         aux1;             /**< pointer to data passed around with a jpacket, multiple use inside jsm */
+    xmlnode       x;                /**< xmlnode containing the stanza inside the jpacket */
+    jid           to;               /**< destination of the stanza */
+    jid           from;             /**< source address for the stanza */
+    char*         iqns;             /**< pointer to the namespace inside an IQ stanza */
+    xmlnode       iq;               /**< "content" of an iq stanza, pointer to the element in its own namespace */
+    pool          p;                /**< memory pool used for this stanza */
 } *jpacket, _jpacket;
- 
+
 jpacket jpacket_new(xmlnode x);     /* Creates a jabber packet from the xmlnode */
 jpacket jpacket_reset(jpacket p);   /* Resets the jpacket values based on the xmlnode */
 int     jpacket_subtype(jpacket p); /* Returns the subtype value (looks at xmlnode for it) */
@@ -130,7 +132,7 @@
 /*                                                           */
 /* --------------------------------------------------------- */
 typedef struct ppdb_struct
-{                             
+{
     jid     id;                /* entry data */
     int     pri;
     xmlnode x;
@@ -159,7 +161,7 @@
     int maxt, maxp;
     pool p;
 } *jlimit, _jlimit;
- 
+
 jlimit jlimit_new(int maxt, int maxp);
 void jlimit_free(jlimit r);
 int jlimit_check(jlimit r, char *key, int points);
@@ -194,6 +196,49 @@
 #define TERROR_EXTTIMEOUT (terror){504,"Remote Server Timeout"}
 #define TERROR_DISCONNECTED (terror){510,"Disconnected"}
 
+/* we define this to signal that we support xterror */
+#define HAS_XTERROR
+
+typedef struct xterror_struct
+{
+    int  code;
+    char msg[256];
+    char type[9];
+    char condition[64];
+} xterror;
+
+#define XTERROR_BAD		(xterror){400,"Bad Request","modify","bad-request"}
+#define XTERROR_CONFLICT	(xterror){409,"Conflict","cancel","conflict"}
+#define XTERROR_NOTIMPL		(xterror){501,"Not Implemented","cancel","feature-not-implemented"}
+#define XTERROR_FORBIDDEN	(xterror){403,"Forbidden","auth","forbidden"}
+#define XTERROR_GONE		(xterror){302,"Gone","modify","gone"}
+#define XTERROR_INTERNAL	(xterror){500,"Internal Server Error","wait","internal-server-error"}
+#define XTERROR_NOTFOUND	(xterror){404,"Not Found","cancel","item-not-found"}
+#define XTERROR_JIDMALFORMED	(xterror){400,"Bad Request","modify","jid-malformed"}
+#define XTERROR_NOTACCEPTABLE	(xterror){406,"Not Acceptable","modify","not-acceptable"}
+#define XTERROR_NOTALLOWED	(xterror){405,"Not Allowed","cancel","not-allowed"}
+#define XTERROR_AUTH		(xterror){401,"Unauthorized","auth","not-authorized"}
+#define XTERROR_PAY		(xterror){402,"Payment Required","auth","payment-required"}
+#define XTERROR_RECIPIENTUNAVAIL (xterror){404,"Receipient Is Unavailable","wait","recipient-unavailable"}
+#define XTERROR_REDIRECT	(xterror){302,"Redirect","modify","redirect"}
+#define XTERROR_REGISTER	(xterror){407,"Registration Required","auth","registration-required"}
+#define XTERROR_REMOTENOTFOUND	(xterror){404,"Remote Server Not Found","cancel","remote-server-not-found"}
+#define XTERROR_REMOTETIMEOUT	(xterror){504,"Remote Server Timeout","wait","remote-server-timeout"}
+#define XTERROR_RESCONSTRAINT	(xterror){500,"Resource Constraint","wait","resource-constraint"}
+#define XTERROR_UNAVAIL		(xterror){503,"Service Unavailable","cancel","service-unavailable"}
+#define XTERROR_SUBSCRIPTIONREQ	(xterror){407,"Subscription Required","auth","subscription-required"}
+#define XTERROR_UNDEF_CANCEL	(xterror){500,NULL,"cancel","undefined-condition"}
+#define XTERROR_UNDEF_CONTINUE	(xterror){500,NULL,"continue","undefined-condition"}
+#define XTERROR_UNDEF_MODIFY	(xterror){500,NULL,"modify","undefined-condition"}
+#define XTERROR_UNDEF_AUTH	(xterror){500,NULL,"auth","undefined-condition"}
+#define XTERROR_UNDEF_WAIT	(xterror){500,NULL,"wait","undefined-condition"}
+#define XTERROR_UNEXPECTED	(xterror){400,"Unexpected Request","wait","unexpected-request"}
+
+#define XTERROR_REQTIMEOUT	(xterror){408,"Request Timeout","wait","remote-server-timeout"}
+#define XTERROR_EXTERNAL	(xterror){502,"Remote Server Error","wait","service-unavailable"}
+#define XTERROR_EXTTIMEOUT	(xterror){504,"Remote Server Timeout","wait","remote-server-timeout"}
+#define XTERROR_DISCONNECTED	(xterror){510,"Disconnected","cancel","service-unavailable"}
+
 /* --------------------------------------------------------- */
 /*                                                           */
 /* Namespace constants                                       */
@@ -203,7 +248,9 @@
 
 #define NS_CLIENT    "jabber:client"
 #define NS_SERVER    "jabber:server"
+#define NS_DIALBACK  "jabber:server:dialback"
 #define NS_AUTH      "jabber:iq:auth"
+#define NS_AUTH_CRYPT "jabber:iq:auth:crypt"
 #define NS_REGISTER  "jabber:iq:register"
 #define NS_ROSTER    "jabber:iq:roster"
 #define NS_OFFLINE   "jabber:x:offline"
@@ -220,7 +267,30 @@
 #define NS_ADMIN     "jabber:iq:admin"
 #define NS_FILTER    "jabber:iq:filter"
 #define NS_AUTH_0K   "jabber:iq:auth:0k"
+#define NS_BROWSE    "jabber:iq:browse"
+#define NS_EVENT     "jabber:x:event"
+#define NS_CONFERENCE "jabber:iq:conference"
+#define NS_SIGNED    "jabber:x:signed"
+#define NS_ENCRYPTED "jabber:x:encrypted"
+#define NS_GATEWAY   "jabber:iq:gateway"
+#define NS_LAST      "jabber:iq:last"
+#define NS_ENVELOPE  "jabber:x:envelope"
+#define NS_EXPIRE    "jabber:x:expire"
+#define NS_XHTML     "http://www.w3.org/1999/xhtml"
+#define NS_DISCO_INFO "http://jabber.org/protocol/disco#info"
+#define NS_DISCO_ITEMS "http://jabber.org/protocol/disco#items"
+#define NS_IQ_AUTH    "http://jabber.org/features/iq-auth"
+#define NS_REGISTER_FEATURE "http://jabber.org/features/iq-register"
 
+#define NS_XDBGINSERT "jabber:xdb:ginsert"
+#define NS_XDBNSLIST  "jabber:xdb:nslist"
+
+#define NS_XMPP_STANZAS "urn:ietf:params:xml:ns:xmpp-stanzas"
+#define NS_XMPP_TLS  "urn:ietf:params:xml:ns:xmpp-tls"
+#define NS_XMPP_STREAMS "urn:ietf:params:xml:ns:xmpp-streams"
+
+#define NS_JABBERD_STOREDPRESENCE "http://jabberd.org/ns/storedpresence"
+#define NS_JABBERD_HISTORY "http://jabberd.org/ns/history"
 
 /* --------------------------------------------------------- */
 /*                                                           */