Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • protocols/jabber/jabber.h

    rc6ca3ee r1c3008a  
    2727#include <glib.h>
    2828
    29 #include "xmltree.h"
    3029#include "bitlbee.h"
    3130#include "md5.h"
     31#include "xmltree.h"
    3232
    3333extern GSList *jabber_connections;
     
    6060} jabber_buddy_flags_t;
    6161
     62/* Stores a streamhost's (a.k.a. proxy) data */
     63typedef struct
     64{
     65        char *jid;
     66        char *host;
     67        char port[6];
     68} jabber_streamhost_t;
     69
    6270typedef enum
    6371{
     
    9098        GHashTable *node_cache;
    9199        GHashTable *buddies;
     100
     101        GSList *filetransfers;
     102        GSList *streamhosts;
     103        int have_streamhosts;
    92104};
    93105
     
    119131        struct jabber_away_state *away_state;
    120132        char *away_message;
     133        GSList *features;
    121134       
    122135        time_t last_act;
     
    132145        char *my_full_jid; /* Separate copy because of case sensitivity. */
    133146        struct jabber_buddy *me;
     147};
     148
     149struct jabber_transfer
     150{
     151        /* bitlbee's handle for this transfer */
     152        file_transfer_t *ft;
     153
     154        /* the stream's private handle */
     155        gpointer streamhandle;
     156
     157        /* timeout for discover queries */
     158        gint disco_timeout;
     159        gint disco_timeout_fired;
     160
     161        struct im_connection *ic;
     162
     163        struct jabber_buddy *bud;
     164
     165        int watch_in;
     166        int watch_out;
     167
     168        char *ini_jid;
     169        char *tgt_jid;
     170        char *iq_id;
     171        char *sid;
     172        int accepted;
     173
     174        size_t bytesread, byteswritten;
     175        int fd;
     176        struct sockaddr_storage saddr;
    134177};
    135178
     
    159202
    160203/* Some supported extensions/legacy stuff */
    161 #define XMLNS_AUTH         "jabber:iq:auth"                     /* XEP-0078 */
    162 #define XMLNS_VERSION      "jabber:iq:version"                  /* XEP-0092 */
    163 #define XMLNS_TIME         "jabber:iq:time"                     /* XEP-0090 */
    164 #define XMLNS_PING         "urn:xmpp:ping"                      /* XEP-0199 */
    165 #define XMLNS_VCARD        "vcard-temp"                         /* XEP-0054 */
    166 #define XMLNS_DELAY        "jabber:x:delay"                     /* XEP-0091 */
    167 #define XMLNS_CHATSTATES   "http://jabber.org/protocol/chatstates"  /* 0085 */
    168 #define XMLNS_DISCOVER     "http://jabber.org/protocol/disco#info"  /* 0030 */
    169 #define XMLNS_MUC          "http://jabber.org/protocol/muc"     /* XEP-0045 */
    170 #define XMLNS_MUC_USER     "http://jabber.org/protocol/muc#user"/* XEP-0045 */
    171 #define XMLNS_CAPS         "http://jabber.org/protocol/caps"    /* XEP-0115 */
     204#define XMLNS_AUTH         "jabber:iq:auth"                                      /* XEP-0078 */
     205#define XMLNS_VERSION      "jabber:iq:version"                                   /* XEP-0092 */
     206#define XMLNS_TIME         "jabber:iq:time"                                      /* XEP-0090 */
     207#define XMLNS_PING         "urn:xmpp:ping"                                       /* XEP-0199 */
     208#define XMLNS_VCARD        "vcard-temp"                                          /* XEP-0054 */
     209#define XMLNS_DELAY        "jabber:x:delay"                                      /* XEP-0091 */
     210#define XMLNS_XDATA        "jabber:x:data"                                       /* XEP-0004 */
     211#define XMLNS_CHATSTATES   "http://jabber.org/protocol/chatstates"               /* XEP-0085 */
     212#define XMLNS_DISCO_INFO   "http://jabber.org/protocol/disco#info"               /* XEP-0030 */
     213#define XMLNS_DISCO_ITEMS  "http://jabber.org/protocol/disco#items"              /* XEP-0030 */
     214#define XMLNS_MUC          "http://jabber.org/protocol/muc"                      /* XEP-0045 */
     215#define XMLNS_MUC_USER     "http://jabber.org/protocol/muc#user"                 /* XEP-0045 */
     216#define XMLNS_CAPS         "http://jabber.org/protocol/caps"                     /* XEP-0115 */
     217#define XMLNS_FEATURE      "http://jabber.org/protocol/feature-neg"              /* XEP-0020 */
     218#define XMLNS_SI           "http://jabber.org/protocol/si"                       /* XEP-0095 */
     219#define XMLNS_FILETRANSFER "http://jabber.org/protocol/si/profile/file-transfer" /* XEP-0096 */
     220#define XMLNS_BYTESTREAMS  "http://jabber.org/protocol/bytestreams"              /* XEP-0065 */
     221#define XMLNS_IBB          "http://jabber.org/protocol/ibb"                      /* XEP-0047 */
    172222
    173223/* iq.c */
     
    179229int jabber_add_to_roster( struct im_connection *ic, char *handle, char *name );
    180230int jabber_remove_from_roster( struct im_connection *ic, char *handle );
     231xt_status jabber_iq_query_features( struct im_connection *ic, char *bare_jid );
     232xt_status jabber_iq_query_server( struct im_connection *ic, char *jid, char *xmlns );
     233
     234/* si.c */
     235int jabber_si_handle_request( struct im_connection *ic, struct xt_node *node, struct xt_node *sinode );
     236void jabber_si_transfer_request( struct im_connection *ic, file_transfer_t *ft, char *who );
     237void jabber_si_free_transfer( file_transfer_t *ft);
     238
     239/* s5bytestream.c */
     240int jabber_bs_recv_request( struct im_connection *ic, struct xt_node *node, struct xt_node *qnode);
     241gboolean jabber_bs_send_start( struct jabber_transfer *tf );
     242gboolean jabber_bs_send_write( file_transfer_t *ft, char *buffer, unsigned int len );
    181243
    182244/* message.c */
     
    192254char *set_eval_tls( set_t *set, char *value );
    193255struct xt_node *jabber_make_packet( char *name, char *type, char *to, struct xt_node *children );
    194 struct xt_node *jabber_make_error_packet( struct xt_node *orig, char *err_cond, char *err_type );
     256struct xt_node *jabber_make_error_packet( struct xt_node *orig, char *err_cond, char *err_type, char *err_code );
    195257void jabber_cache_add( struct im_connection *ic, struct xt_node *node, jabber_cache_event func );
    196258struct xt_node *jabber_cache_get( struct im_connection *ic, char *id );
     
    241303
    242304/* conference.c */
    243 struct groupchat *jabber_chat_join( struct im_connection *ic, char *room, char *nick, char *password );
     305struct groupchat *jabber_chat_join( struct im_connection *ic, const char *room, const char *nick, const char *password );
    244306struct groupchat *jabber_chat_by_jid( struct im_connection *ic, const char *name );
    245307void jabber_chat_free( struct groupchat *c );
Note: See TracChangeset for help on using the changeset viewer.