Ignore:
Timestamp:
2007-11-28T21:07:30Z (17 years ago)
Author:
ulim <a.sporto+bee@…>
Branches:
master
Children:
2ff2076, fa30fa5
Parents:
221a273
Message:

Initial import of jabber file receive and DCC send support. This introduces
only a few changes to bitlbees code, mainly the addition of the "transfers"
command.

This is known to work with Kopete, Psi, and Pidgin (formerly known as gaim).
At least with Pidgin also over a proxy. DCC has only been tested with irssi.
IPV6 is untested but should work.

Currently, only receiving via SOCKS5BYTESREAMS is implemented. I'm not sure if
the alternative(in-band bytestreams IBB) is worth implementing since I didn't
see a client yet that can do it. Additionally, it is probably very slow and
needs support by the server as well.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • protocols/jabber/jabber.h

    r221a273 r2c2df7d  
    8181        GHashTable *node_cache;
    8282        GHashTable *buddies;
     83
     84        GSList *filetransfers;
    8385};
    8486
     
    122124        char *my_full_jid; /* Separate copy because of case sensitivity. */
    123125        struct jabber_buddy *me;
     126};
     127
     128struct jabber_transfer
     129{
     130        /* bitlbee's handle for this transfer */
     131        file_transfer_t *ft;
     132
     133        /* the stream's private handle */
     134        gpointer streamhandle;
     135
     136        struct im_connection *ic;
     137
     138        int watch_in;
     139        int watch_out;
     140
     141        char *ini_jid;
     142        char *tgt_jid;
     143        char *iq_id;
     144        char *sid;
     145        int accepted;
     146
     147        size_t bytesread, byteswritten;
     148        int receiver_overflow;
     149        int fd;
    124150};
    125151
     
    149175
    150176/* 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 */
     177#define XMLNS_AUTH         "jabber:iq:auth"                                      /* XEP-0078 */
     178#define XMLNS_VERSION      "jabber:iq:version"                                   /* XEP-0092 */
     179#define XMLNS_TIME         "jabber:iq:time"                                      /* XEP-0090 */
     180#define XMLNS_VCARD        "vcard-temp"                                          /* XEP-0054 */
     181#define XMLNS_DELAY        "jabber:x:delay"                                      /* XEP-0091 */
     182#define XMLNS_XDATA        "jabber:x:data"                                       /* XEP-0004 */
     183#define XMLNS_CHATSTATES   "http://jabber.org/protocol/chatstates"               /* XEP-0085 */
     184#define XMLNS_DISCOVER     "http://jabber.org/protocol/disco#info"               /* XEP-0030 */
     185#define XMLNS_MUC          "http://jabber.org/protocol/muc"                      /* XEP-0045 */
     186#define XMLNS_MUC_USER     "http://jabber.org/protocol/muc#user"                 /* XEP-0045 */
     187#define XMLNS_FEATURE      "http://jabber.org/protocol/feature-neg"              /* XEP-0020 */
     188#define XMLNS_SI           "http://jabber.org/protocol/si"                       /* XEP-0095 */
     189#define XMLNS_FILETRANSFER "http://jabber.org/protocol/si/profile/file-transfer" /* XEP-0096 */
     190#define XMLNS_BYTESTREAMS  "http://jabber.org/protocol/bytestreams"              /* XEP-0065 */
     191#define XMLNS_IBB          "http://jabber.org/protocol/ibb"                      /* XEP-0047 */
    160192
    161193/* iq.c */
     
    168200int jabber_remove_from_roster( struct im_connection *ic, char *handle );
    169201
     202/* si.c */
     203int jabber_si_handle_request( struct im_connection *ic, struct xt_node *node, struct xt_node *sinode);
     204
     205/* stream.c */
     206int jabber_bs_request( struct im_connection *ic, struct xt_node *node, struct xt_node *qnode);
     207
    170208/* message.c */
    171209xt_status jabber_pkt_message( struct xt_node *node, gpointer data );
     
    180218char *set_eval_tls( set_t *set, char *value );
    181219struct 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 );
     220struct xt_node *jabber_make_error_packet( struct xt_node *orig, char *err_cond, char *err_type, char *err_code );
    183221void jabber_cache_add( struct im_connection *ic, struct xt_node *node, jabber_cache_event func );
    184222struct xt_node *jabber_cache_get( struct im_connection *ic, char *id );
Note: See TracChangeset for help on using the changeset viewer.