CitadelServiceXMPP);
CtdlRegisterSessionHook(xmpp_cleanup_function, EVT_STOP);
CtdlRegisterSessionHook(xmpp_login_hook, EVT_LOGIN);
- CtdlRegisterSessionHook(xmpp_login_hook, EVT_LOGOUT);
+ CtdlRegisterSessionHook(xmpp_logout_hook, EVT_LOGOUT);
#else
lprintf(CTDL_INFO, "This server is missing the Expat XML parser. Jabber service will be disabled.\n");
void jabber_output_incoming_messages(void);
void xmpp_queue_event(int, char *);
void xmpp_process_events(void);
+void xmpp_presence_notify(char *, char *);
}
}
+
+void xmpp_presence_notify(char *presence_jid, char *presence_type) {
+ /* FIXME subject this to the same conditions as above */
+ cprintf("<presence type=\"%s\" from=\"%s\">", presence_type, presence_jid);
+}
+
+
#endif /* HAVE_EXPAT */
for (xptr=xmpp_queue; xptr!=NULL; xptr=xptr->next) {
if (xptr->event_seq > XMPP->last_event_processed) {
- /* FIXME do something */
+ switch(xptr->event_type) {
+
+ case XMPP_EVT_LOGIN:
+ xmpp_presence_notify(xptr->event_jid, "available");
+ break;
+
+ case XMPP_EVT_LOGOUT:
+ xmpp_presence_notify(xptr->event_jid, "unavailable");
+ break;
+
+ }
if (xptr->event_seq > highest_event) {
highest_event = xptr->event_seq;