X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fmodules%2Fjabber%2Fserv_xmpp.h;h=ed93ff25cb9b6db49801ed403e4a8a1fe7803697;hb=8c47559cb5ae97ec0fa35660ee16fd61a9451c72;hp=7a902fcd6f9e36e869dfb3abf0c59d36a99f794a;hpb=8dc12d6f1a6dae236eecb2e09376b6020728e8d8;p=citadel.git diff --git a/citadel/modules/jabber/serv_xmpp.h b/citadel/modules/jabber/serv_xmpp.h index 7a902fcd6..ed93ff25c 100644 --- a/citadel/modules/jabber/serv_xmpp.h +++ b/citadel/modules/jabber/serv_xmpp.h @@ -1,6 +1,21 @@ /* - * $Id: $ + * $Id$ * + * Copyright (c) 2007-2009 by Art Cancro + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ struct citxmpp { /* Information about the current session */ @@ -10,19 +25,58 @@ struct citxmpp { /* Information about the current session */ int chardata_len; int chardata_alloc; char client_jid[256]; /* "full JID" of the client */ + int last_event_processed; - char iq_type[256]; - char iq_bind_id[256]; /* for stanzas */ + char iq_type[256]; /* for stanzas */ + char iq_id[256]; + char iq_from[256]; + char iq_to[256]; + char iq_client_username[256]; /* username requested by the client (NON SASL ONLY) */ + char iq_client_password[256]; /* password requested by the client (NON SASL ONLY) */ char iq_client_resource[256]; /* resource name requested by the client */ int iq_session; /* nonzero == client is requesting a session */ + char iq_query_xmlns[256]; /* Namespace of */ char sasl_auth_mech[32]; /* SASL auth mechanism requested by the client */ + + char message_to[256]; + char *message_body; /* Message body in transit */ + int html_tag_level; /* tag nesting level */ + + int bind_requested; /* In this stanza, client is asking server to bind a resource. */ }; #define XMPP ((struct citxmpp *)CC->session_specific_data) +struct xmpp_event { + struct xmpp_event *next; + int event_seq; + time_t event_time; + int event_type; + char event_jid[256]; + int session_which_generated_this_event; +}; + +extern struct xmpp_event *xmpp_queue; +extern int queue_event_seq; + +enum { + XMPP_EVT_LOGIN, + XMPP_EVT_LOGOUT +}; + void xmpp_cleanup_function(void); void xmpp_greeting(void); void xmpp_command_loop(void); +void xmpp_async_loop(void); void xmpp_sasl_auth(char *, char *); void xmpp_output_auth_mechs(void); +void xmpp_query_namespace(char *, char *, char *, char *); +void jabber_wholist_presence_dump(void); +void jabber_output_incoming_messages(void); +void xmpp_queue_event(int, char *); +void xmpp_process_events(void); +void xmpp_presence_notify(char *, int); +void jabber_roster_item(struct CitContext *); +void jabber_send_message(char *, char *); +void jabber_non_sasl_authenticate(char *, char *, char *, char *);