X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fmodules%2Fjabber%2Fserv_xmpp.h;h=ed93ff25cb9b6db49801ed403e4a8a1fe7803697;hb=8c47559cb5ae97ec0fa35660ee16fd61a9451c72;hp=e45a744bcc24f197370f0a38487e53a6f80253fc;hpb=fa7cd4b929a3486d5108c8b84032d360e3ec2420;p=citadel.git diff --git a/citadel/modules/jabber/serv_xmpp.h b/citadel/modules/jabber/serv_xmpp.h index e45a744bc..ed93ff25c 100644 --- a/citadel/modules/jabber/serv_xmpp.h +++ b/citadel/modules/jabber/serv_xmpp.h @@ -1,6 +1,21 @@ /* * $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,24 +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]; /* 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 *);