projects
/
citadel.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
73d9309
)
XMPP: make logging configurable.
author
Wilfried Goesgens
<dothebart@citadel.org>
Sun, 29 Apr 2012 13:48:48 +0000
(15:48 +0200)
committer
Wilfried Goesgens
<dothebart@citadel.org>
Sun, 29 Apr 2012 13:48:48 +0000
(15:48 +0200)
citadel/modules/xmpp/serv_xmpp.c
patch
|
blob
|
history
citadel/modules/xmpp/serv_xmpp.h
patch
|
blob
|
history
citadel/modules/xmpp/xmpp_presence.c
patch
|
blob
|
history
citadel/modules/xmpp/xmpp_query_namespace.c
patch
|
blob
|
history
citadel/modules/xmpp/xmpp_queue.c
patch
|
blob
|
history
diff --git
a/citadel/modules/xmpp/serv_xmpp.c
b/citadel/modules/xmpp/serv_xmpp.c
index 86685664d5dc65a7b5db06a59683c081594d982e..374c4914277febee7937e90db62bb2708b22ab4e 100644
(file)
--- a/
citadel/modules/xmpp/serv_xmpp.c
+++ b/
citadel/modules/xmpp/serv_xmpp.c
@@
-64,6
+64,8
@@
struct xmpp_event *xmpp_queue = NULL;
struct xmpp_event *xmpp_queue = NULL;
+int XMPPSrvDebugEnable = 0;
+
#ifdef HAVE_XML_STOPPARSER
#ifdef HAVE_XML_STOPPARSER
@@
-74,7
+76,7
@@
static void xmpp_entity_declaration(void *userData, const XML_Char *entityName,
const XML_Char *systemId, const XML_Char *publicId,
const XML_Char *notationName
) {
const XML_Char *systemId, const XML_Char *publicId,
const XML_Char *notationName
) {
- syslog(LOG_WARNING, "Illegal entity declaration encountered; stopping parser.");
+
XMPPM_
syslog(LOG_WARNING, "Illegal entity declaration encountered; stopping parser.");
XML_StopParser(XMPP->xp, XML_FALSE);
}
#endif
XML_StopParser(XMPP->xp, XML_FALSE);
}
#endif
@@
-203,9
+205,9
@@
void xmpp_xml_start(void *data, const char *supplied_el, const char **attr) {
}
/*
}
/*
- syslog(LOG_DEBUG, "XMPP ELEMENT START: <%s>\n", el);
+
XMPP_
syslog(LOG_DEBUG, "XMPP ELEMENT START: <%s>\n", el);
for (i=0; attr[i] != NULL; i+=2) {
for (i=0; attr[i] != NULL; i+=2) {
- syslog(LOG_DEBUG, " Attribute '%s' = '%s'\n", attr[i], attr[i+1]);
+
XMPP_
syslog(LOG_DEBUG, " Attribute '%s' = '%s'\n", attr[i], attr[i+1]);
}
uncomment for more verbosity */
}
uncomment for more verbosity */
@@
-275,9
+277,9
@@
void xmpp_xml_end(void *data, const char *supplied_el) {
}
/*
}
/*
- syslog(LOG_DEBUG, "XMPP ELEMENT END : <%s>\n", el);
+
XMPP_
syslog(LOG_DEBUG, "XMPP ELEMENT END : <%s>\n", el);
if (XMPP->chardata_len > 0) {
if (XMPP->chardata_len > 0) {
- syslog(LOG_DEBUG, " chardata: %s\n", XMPP->chardata);
+
XMPP_
syslog(LOG_DEBUG, " chardata: %s\n", XMPP->chardata);
}
uncomment for more verbosity */
}
uncomment for more verbosity */
@@
-338,9
+340,9
@@
void xmpp_xml_end(void *data, const char *supplied_el) {
* Unknown query ... return the XML equivalent of a blank stare
*/
else {
* Unknown query ... return the XML equivalent of a blank stare
*/
else {
- syslog(LOG_DEBUG,
- "Unknown query <%s> - returning <service-unavailable/>\n",
- el
+
XMPP_
syslog(LOG_DEBUG,
+
"Unknown query <%s> - returning <service-unavailable/>\n",
+
el
);
cprintf("<iq type=\"error\" id=\"%s\">", xmlesc(xmlbuf, XMPP->iq_id, sizeof xmlbuf));
cprintf("<error code=\"503\" type=\"cancel\">"
);
cprintf("<iq type=\"error\" id=\"%s\">", xmlesc(xmlbuf, XMPP->iq_id, sizeof xmlbuf));
cprintf("<error code=\"503\" type=\"cancel\">"
@@
-473,14
+475,14
@@
void xmpp_xml_end(void *data, const char *supplied_el) {
}
else if (!strcasecmp(el, "stream")) {
}
else if (!strcasecmp(el, "stream")) {
- syslog(LOG_DEBUG, "XMPP client shut down their stream\n");
+
XMPPM_
syslog(LOG_DEBUG, "XMPP client shut down their stream\n");
xmpp_massacre_roster();
cprintf("</stream>\n");
CC->kill_me = KILLME_CLIENT_LOGGED_OUT;
}
else {
xmpp_massacre_roster();
cprintf("</stream>\n");
CC->kill_me = KILLME_CLIENT_LOGGED_OUT;
}
else {
- syslog(LOG_DEBUG, "Ignoring unknown tag <%s>\n", el);
+
XMPP_
syslog(LOG_DEBUG, "Ignoring unknown tag <%s>\n", el);
}
XMPP->chardata_len = 0;
}
XMPP->chardata_len = 0;
@@
-545,7
+547,7
@@
void xmpp_greeting(void) {
XMPP->xp = XML_ParserCreateNS("UTF-8", ':');
if (XMPP->xp == NULL) {
XMPP->xp = XML_ParserCreateNS("UTF-8", ':');
if (XMPP->xp == NULL) {
- syslog(LOG_ALERT, "Cannot create XML parser!\n");
+
XMPPM_
syslog(LOG_ALERT, "Cannot create XML parser!\n");
CC->kill_me = KILLME_XML_PARSER;
return;
}
CC->kill_me = KILLME_XML_PARSER;
return;
}
@@
-582,7
+584,7
@@
void xmpp_command_loop(void) {
XML_Parse(XMPP->xp, ChrPtr(stream_input), rc, 0);
}
else {
XML_Parse(XMPP->xp, ChrPtr(stream_input), rc, 0);
}
else {
-
syslog(LOG_ERR, "XMPP:
client disconnected: ending session.\n");
+
XMPPM_syslog(LOG_ERR, "
client disconnected: ending session.\n");
CC->kill_me = KILLME_CLIENT_DISCONNECTED;
}
FreeStrBuf(&stream_input);
CC->kill_me = KILLME_CLIENT_DISCONNECTED;
}
FreeStrBuf(&stream_input);
@@
-614,6
+616,10
@@
void xmpp_logout_hook(void) {
}
}
+void LogXMPPSrvDebugEnable(const int n)
+{
+ XMPPSrvDebugEnable = n;
+}
const char *CitadelServiceXMPP="XMPP";
extern void xmpp_cleanup_events(void);
CTDL_MODULE_INIT(xmpp)
const char *CitadelServiceXMPP="XMPP";
extern void xmpp_cleanup_events(void);
CTDL_MODULE_INIT(xmpp)
@@
-626,6
+632,7
@@
CTDL_MODULE_INIT(xmpp)
xmpp_async_loop,
CitadelServiceXMPP
);
xmpp_async_loop,
CitadelServiceXMPP
);
+ CtdlRegisterDebugFlagHook(HKEY("serv_xmpp"), LogXMPPSrvDebugEnable, &XMPPSrvDebugEnable);
CtdlRegisterSessionHook(xmpp_cleanup_function, EVT_STOP);
CtdlRegisterSessionHook(xmpp_login_hook, EVT_LOGIN);
CtdlRegisterSessionHook(xmpp_logout_hook, EVT_LOGOUT);
CtdlRegisterSessionHook(xmpp_cleanup_function, EVT_STOP);
CtdlRegisterSessionHook(xmpp_login_hook, EVT_LOGIN);
CtdlRegisterSessionHook(xmpp_logout_hook, EVT_LOGOUT);
diff --git
a/citadel/modules/xmpp/serv_xmpp.h
b/citadel/modules/xmpp/serv_xmpp.h
index df1298c9d72b20ebe056f42461077875279d4d3a..c3281a5c486e21fe6039cfca737b2e234a9fbb33 100644
(file)
--- a/
citadel/modules/xmpp/serv_xmpp.h
+++ b/
citadel/modules/xmpp/serv_xmpp.h
@@
-83,3
+83,16
@@
void xmpp_massacre_roster(void);
void xmpp_delete_old_buddies_who_no_longer_exist_from_the_client_roster(void);
int xmpp_is_visible(struct CitContext *from, struct CitContext *to_whom);
char *xmlesc(char *buf, char *str, int bufsiz);
void xmpp_delete_old_buddies_who_no_longer_exist_from_the_client_roster(void);
int xmpp_is_visible(struct CitContext *from, struct CitContext *to_whom);
char *xmlesc(char *buf, char *str, int bufsiz);
+
+extern int XMPPSrvDebugEnable;
+
+#define DBGLOG(LEVEL) if ((LEVEL != LOG_DEBUG) || (XMPPSrvDebugEnable != 0))
+
+#define XMPP_syslog(LEVEL, FORMAT, ...) \
+ DBGLOG(LEVEL) syslog(LEVEL, \
+ "XMPP: " FORMAT, __VA_ARGS__)
+
+#define XMPPM_syslog(LEVEL, FORMAT) \
+ DBGLOG(LEVEL) syslog(LEVEL, \
+ "XMPP: " FORMAT);
+
diff --git
a/citadel/modules/xmpp/xmpp_presence.c
b/citadel/modules/xmpp/xmpp_presence.c
index f42d74f40b608cd99806790747325bac90ac9453..d4e69316ab80a8f8c7157f7e20983146ed2c50f1 100644
(file)
--- a/
citadel/modules/xmpp/xmpp_presence.c
+++ b/
citadel/modules/xmpp/xmpp_presence.c
@@
-194,13
+194,13
@@
void xmpp_presence_notify(char *presence_jid, int event_type) {
}
}
}
}
- syslog(LOG_DEBUG, "%d sessions for <%s> are now visible to session %d\n",
- visible_sessions, presence_jid, CC->cs_pid);
+
XMPP_
syslog(LOG_DEBUG, "%d sessions for <%s> are now visible to session %d\n",
+
visible_sessions, presence_jid, CC->cs_pid);
if ( (event_type == XMPP_EVT_LOGIN) && (visible_sessions == 1) ) {
if ( (event_type == XMPP_EVT_LOGIN) && (visible_sessions == 1) ) {
- syslog(LOG_DEBUG, "Telling session %d that <%s> logged in\n",
- CC->cs_pid, presence_jid);
+
XMPP_
syslog(LOG_DEBUG, "Telling session %d that <%s> logged in\n",
+
CC->cs_pid, presence_jid);
/* Do an unsolicited roster update that adds a new contact. */
assert(which_cptr_is_relevant >= 0);
/* Do an unsolicited roster update that adds a new contact. */
assert(which_cptr_is_relevant >= 0);
@@
-214,8
+214,8
@@
void xmpp_presence_notify(char *presence_jid, int event_type) {
}
if (visible_sessions == 0) {
}
if (visible_sessions == 0) {
- syslog(LOG_DEBUG, "Telling session %d that <%s> logged out\n",
- CC->cs_pid, presence_jid);
+
XMPP_
syslog(LOG_DEBUG, "Telling session %d that <%s> logged out\n",
+
CC->cs_pid, presence_jid);
xmpp_destroy_buddy(presence_jid, 0); /* non aggressive presence update */
}
xmpp_destroy_buddy(presence_jid, 0); /* non aggressive presence update */
}
@@
-271,7
+271,7
@@
void xmpp_fetch_mortuary_backend(long msgnum, void *userdata) {
HashList *xmpp_fetch_mortuary(void) {
HashList *mortuary = NewHash(1, NULL);
if (!mortuary) {
HashList *xmpp_fetch_mortuary(void) {
HashList *mortuary = NewHash(1, NULL);
if (!mortuary) {
- syslog(LOG_ALERT, "NewHash() failed!\n");
+
XMPPM_
syslog(LOG_ALERT, "NewHash() failed!\n");
return(NULL);
}
return(NULL);
}
diff --git
a/citadel/modules/xmpp/xmpp_query_namespace.c
b/citadel/modules/xmpp/xmpp_query_namespace.c
index 161d306d39ac97b95b26f9ce14b4f05de0e5d630..cf6f423a56516cd392ce78ae9c79f93d486ff2f5 100644
(file)
--- a/
citadel/modules/xmpp/xmpp_query_namespace.c
+++ b/
citadel/modules/xmpp/xmpp_query_namespace.c
@@
-88,7
+88,7
@@
void xmpp_iq_roster_query(void)
if (cptr) {
for (i=0; i<nContexts; i++) {
if (xmpp_is_visible(&cptr[i], CC)) {
if (cptr) {
for (i=0; i<nContexts; i++) {
if (xmpp_is_visible(&cptr[i], CC)) {
- syslog(LOG_DEBUG, "Rosterizing %s\n", cptr[i].user.fullname);
+
XMPP_
syslog(LOG_DEBUG, "Rosterizing %s\n", cptr[i].user.fullname);
xmpp_roster_item(&cptr[i]);
}
}
xmpp_roster_item(&cptr[i]);
}
}
@@
-124,7
+124,7
@@
void xmpp_query_namespace(char *iq_id, char *iq_from, char *iq_to, char *query_x
supported_namespace = 1;
}
supported_namespace = 1;
}
- syslog(LOG_DEBUG, "xmpp_query_namespace(%s, %s, %s, %s)\n", iq_id, iq_from, iq_to, query_xmlns);
+
XMPP_
syslog(LOG_DEBUG, "xmpp_query_namespace(%s, %s, %s, %s)\n", iq_id, iq_from, iq_to, query_xmlns);
/*
* Beginning of query result.
/*
* Beginning of query result.
@@
-162,9
+162,9
@@
void xmpp_query_namespace(char *iq_id, char *iq_from, char *iq_to, char *query_x
*/
else {
*/
else {
- syslog(LOG_DEBUG,
- "Unknown query namespace '%s' - returning <service-unavailable/>\n",
- query_xmlns
+
XMPP_
syslog(LOG_DEBUG,
+
"Unknown query namespace '%s' - returning <service-unavailable/>\n",
+
query_xmlns
);
cprintf("<error code=\"503\" type=\"cancel\">"
"<service-unavailable xmlns=\"urn:ietf:params:xml:ns:xmpp-stanzas\"/>"
);
cprintf("<error code=\"503\" type=\"cancel\">"
"<service-unavailable xmlns=\"urn:ietf:params:xml:ns:xmpp-stanzas\"/>"
diff --git
a/citadel/modules/xmpp/xmpp_queue.c
b/citadel/modules/xmpp/xmpp_queue.c
index 530ea5a76942131f5b69dba7adfa563377380478..8cb5662d89f846728c2b53140692325e18553b79 100644
(file)
--- a/
citadel/modules/xmpp/xmpp_queue.c
+++ b/
citadel/modules/xmpp/xmpp_queue.c
@@
-66,7
+66,7
@@
void xmpp_queue_event(int event_type, char *email_addr) {
int purged_something = 0;
struct CitContext *cptr;
int purged_something = 0;
struct CitContext *cptr;
- syslog(LOG_DEBUG, "xmpp_queue_event(%d, %s)\n", event_type, email_addr);
+
XMPP_
syslog(LOG_DEBUG, "xmpp_queue_event(%d, %s)\n", event_type, email_addr);
/* Purge events more than a minute old */
begin_critical_section(S_XMPP_QUEUE);
/* Purge events more than a minute old */
begin_critical_section(S_XMPP_QUEUE);