3 #include <libcitadel.h>
4 #include "ctdl_module.h"
7 void *GetToken_iq(void)
11 void *GetToken_piq(void)
16 void *GetToken_message(void)
18 return &XMPP->Message;
22 #define STRPROP(STRUCTNAME, NAME) \
23 if (StrLength(pdata->NAME) > 0) \
25 XPut(#NAME, sizeof(#NAME) - 1); \
27 XPutProp(SKEY(pdata->NAME)); \
31 #define PAYLOAD(STRUCTNAME, NAME) \
32 XPrint(#NAME, sizeof(#NAME) -1, \
34 TYPE_BODYSTR, SKEY(pdata->NAME), \
37 #define THENAMESPACE(STRUCTNAME, NAME) \
38 XPut(#NAME, sizeof(#NAME) - 1); \
40 XPutProp(NAMESPACE_##STRUCTNAME, \
41 sizeof(NAMESPACE_##STRUCTNAME)-1); \
44 #define TOKEN(NAME, STRUCT) \
45 void serialize_##NAME(TheToken_##NAME *pdata, int Close) \
48 XPut(#NAME, sizeof(#NAME)); \
55 XPut(#NAME, sizeof(#NAME)); \
66 #define STRPROP(STRUCTNAME, NAME) \
67 FreeStrBuf(&pdata->NAME);
69 #define PAYLOAD(STRUCTNAME, NAME) \
70 FreeStrBuf(&pdata->NAME);
72 #define TOKEN(NAME, STRUCT) \
73 void free_buf_##NAME(TheToken_##NAME *pdata) \
83 #define TOKEN(NAME, STRUCT) \
84 void free_##NAME(TheToken_##NAME *pdata) \
86 free_buf_##NAME(pdata); \
96 CTDL_MODULE_INIT(xmpp_xmacros)
99 #define STRPROP(TOKENNAME, PROPERTYNAME) \
100 long offset##PROPERTYNAME = \
101 offsetof(TheToken_##TOKENNAME, PROPERTYNAME); \
102 XMPP_RegisterTokenProperty( \
103 NAMESPACE_##TOKENNAME, \
104 sizeof(NAMESPACE_##TOKENNAME)-1, \
105 #TOKENNAME, sizeof(#TOKENNAME)-1, \
106 #PROPERTYNAME, sizeof(#PROPERTYNAME)-1, \
107 GetToken_##TOKENNAME, \
108 offset##PROPERTYNAME);
109 #define PAYLOAD(TOKENNAME, PROPERTYNAME) \
110 long offset##PROPERTYNAME = \
111 offsetof(TheToken_##TOKENNAME, PROPERTYNAME); \
112 XMPP_RegisterTokenProperty( \
113 NAMESPACE_##TOKENNAME, \
114 sizeof(NAMESPACE_##TOKENNAME)-1, \
115 #TOKENNAME, sizeof(#TOKENNAME)-1, \
117 GetToken_##TOKENNAME, \
118 offset##PROPERTYNAME);
119 #define TOKEN(NAME, STRUCT) STRUCT
125 /* return our module name for the log */
126 return "xmpp_xmacros";