Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • protocols/jabber/jabber.h

    r5bd21df reded1f7  
    5757} jabber_buddy_flags_t;
    5858
     59/* Stores a streamhost's(a.k.a. proxy) data */
     60typedef struct
     61{
     62        char *jid;
     63        char *host;
     64        char port[6];
     65} jabber_streamhost_t;
     66
    5967struct jabber_data
    6068{
     
    8189        GHashTable *node_cache;
    8290        GHashTable *buddies;
     91
     92        GSList *filetransfers;
     93        GSList *streamhosts;
     94        int have_streamhosts;
    8395};
    8496
     
    109121        struct jabber_away_state *away_state;
    110122        char *away_message;
     123        GSList *features;
    111124       
    112125        time_t last_act;
     
    122135        char *my_full_jid; /* Separate copy because of case sensitivity. */
    123136        struct jabber_buddy *me;
     137};
     138
     139struct jabber_transfer
     140{
     141        /* bitlbee's handle for this transfer */
     142        file_transfer_t *ft;
     143
     144        /* the stream's private handle */
     145        gpointer streamhandle;
     146
     147        struct im_connection *ic;
     148
     149        int watch_in;
     150        int watch_out;
     151
     152        char *ini_jid;
     153        char *tgt_jid;
     154        char *iq_id;
     155        char *sid;
     156        int accepted;
     157
     158        size_t bytesread, byteswritten;
     159        int fd;
     160        struct sockaddr_storage saddr;
    124161};
    125162
     
    149186
    150187/* Some supported extensions/legacy stuff */
    151 #define XMLNS_AUTH         "jabber:iq:auth"                     /* XEP-0078 */
    152 #define XMLNS_VERSION      "jabber:iq:version"                  /* XEP-0092 */
    153 #define XMLNS_TIME         "jabber:iq:time"                     /* XEP-0090 */
    154 #define XMLNS_VCARD        "vcard-temp"                         /* XEP-0054 */
    155 #define XMLNS_DELAY        "jabber:x:delay"                     /* XEP-0091 */
    156 #define XMLNS_CHATSTATES   "http://jabber.org/protocol/chatstates"  /* 0085 */
    157 #define XMLNS_DISCOVER     "http://jabber.org/protocol/disco#info"  /* 0030 */
    158 #define XMLNS_MUC          "http://jabber.org/protocol/muc"     /* XEP-0045 */
    159 #define XMLNS_MUC_USER     "http://jabber.org/protocol/muc#user"/* XEP-0045 */
     188#define XMLNS_AUTH         "jabber:iq:auth"                                      /* XEP-0078 */
     189#define XMLNS_VERSION      "jabber:iq:version"                                   /* XEP-0092 */
     190#define XMLNS_TIME         "jabber:iq:time"                                      /* XEP-0090 */
     191#define XMLNS_PING         "urn:xmpp:ping"                                       /* XEP-0199 */
     192#define XMLNS_VCARD        "vcard-temp"                                          /* XEP-0054 */
     193#define XMLNS_DELAY        "jabber:x:delay"                                      /* XEP-0091 */
     194#define XMLNS_XDATA        "jabber:x:data"                                       /* XEP-0004 */
     195#define XMLNS_CHATSTATES   "http://jabber.org/protocol/chatstates"               /* XEP-0085 */
     196#define XMLNS_DISCO_INFO   "http://jabber.org/protocol/disco#info"               /* XEP-0030 */
     197#define XMLNS_DISCO_ITEMS  "http://jabber.org/protocol/disco#items"              /* XEP-0030 */
     198#define XMLNS_MUC          "http://jabber.org/protocol/muc"                      /* XEP-0045 */
     199#define XMLNS_MUC_USER     "http://jabber.org/protocol/muc#user"                 /* XEP-0045 */
     200#define XMLNS_FEATURE      "http://jabber.org/protocol/feature-neg"              /* XEP-0020 */
     201#define XMLNS_SI           "http://jabber.org/protocol/si"                       /* XEP-0095 */
     202#define XMLNS_FILETRANSFER "http://jabber.org/protocol/si/profile/file-transfer" /* XEP-0096 */
     203#define XMLNS_BYTESTREAMS  "http://jabber.org/protocol/bytestreams"              /* XEP-0065 */
     204#define XMLNS_IBB          "http://jabber.org/protocol/ibb"                      /* XEP-0047 */
    160205
    161206/* iq.c */
     
    167212int jabber_add_to_roster( struct im_connection *ic, char *handle, char *name );
    168213int jabber_remove_from_roster( struct im_connection *ic, char *handle );
     214xt_status jabber_iq_query_features( struct im_connection *ic, char *bare_jid );
     215xt_status jabber_iq_query_server( struct im_connection *ic, char *jid, char *xmlns );
     216
     217/* si.c */
     218int jabber_si_handle_request( struct im_connection *ic, struct xt_node *node, struct xt_node *sinode );
     219void jabber_si_transfer_request( struct im_connection *ic, file_transfer_t *ft, char *who );
     220void jabber_si_free_transfer( file_transfer_t *ft);
     221
     222/* s5bytestream.c */
     223int jabber_bs_recv_request( struct im_connection *ic, struct xt_node *node, struct xt_node *qnode);
     224gboolean jabber_bs_send_start( struct jabber_transfer *tf );
     225gboolean jabber_bs_send_write( file_transfer_t *ft, char *buffer, unsigned int len );
    169226
    170227/* message.c */
     
    180237char *set_eval_tls( set_t *set, char *value );
    181238struct xt_node *jabber_make_packet( char *name, char *type, char *to, struct xt_node *children );
    182 struct xt_node *jabber_make_error_packet( struct xt_node *orig, char *err_cond, char *err_type );
     239struct xt_node *jabber_make_error_packet( struct xt_node *orig, char *err_cond, char *err_type, char *err_code );
    183240void jabber_cache_add( struct im_connection *ic, struct xt_node *node, jabber_cache_event func );
    184241struct xt_node *jabber_cache_get( struct im_connection *ic, char *id );
     
    237294void jabber_chat_pkt_presence( struct im_connection *ic, struct jabber_buddy *bud, struct xt_node *node );
    238295void jabber_chat_pkt_message( struct im_connection *ic, struct jabber_buddy *bud, struct xt_node *node );
     296void jabber_chat_invite( struct groupchat *c, char *who, char *message );
    239297
    240298#endif
Note: See TracChangeset for help on using the changeset viewer.