Changeset bd69a21 for protocols


Ignore:
Timestamp:
2005-12-15T12:24:25Z (19 years ago)
Author:
Jelmer Vernooij <jelmer@…>
Branches:
master
Children:
4146a07
Parents:
2983f5e (diff), bf02a67 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge Wilmer

Location:
protocols
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • protocols/jabber/jabber.c

    r2983f5e rbd69a21  
    2222 */
    2323
    24 #ifdef HAVE_CONFIG_H
    25 #include "config.h"
    26 #endif
    27 
    2824#ifndef _WIN32
    2925#include <sys/utsname.h>
     
    5955#define DEFAULT_PORT 5222
    6056#define DEFAULT_PORT_SSL 5223
     57#define JABBER_PORT_MIN 5220
     58#define JABBER_PORT_MAX 5229
    6159
    6260#define JABBER_GROUP "Friends"
     
    541539        gjconn gjc;
    542540       
    543         if (!g_slist_find(get_connections(), gc)) {
    544                 ssl_disconnect(source);
    545                 return;
    546         }
    547        
    548541        jd = gc->proto_data;
    549542        gjc = jd->gjc;
     
    551544        if (source == NULL) {
    552545                STATE_EVT(JCONN_STATE_OFF)
     546                return;
     547        }
     548       
     549        if (!g_slist_find(get_connections(), gc)) {
     550                ssl_disconnect(source);
    553551                return;
    554552        }
     
    589587        else if (port == -1 && ssl)
    590588                port = DEFAULT_PORT_SSL;
     589        else if (port < JABBER_PORT_MIN || port > JABBER_PORT_MAX) {
     590                serv_got_crap(GJ_GC(gjc), "For security reasons, the Jabber port number must be in the %d-%d range.", JABBER_PORT_MIN, JABBER_PORT_MAX);
     591                STATE_EVT(JCONN_STATE_OFF)
     592                return;
     593        }
    591594       
    592595        if (server == NULL)
  • protocols/msn/sb.c

    r2983f5e rbd69a21  
    644644                        if( who )
    645645                        {
    646                                 serv_got_typing( gc, who, 5 );
     646                                serv_got_typing( gc, who, 5, 1 );
    647647                                g_free( who );
    648648                        }
  • protocols/nogaim.c

    r2983f5e rbd69a21  
    5555GSList *connections;
    5656
     57#ifdef WITH_PLUGINS
    5758gboolean load_plugin(char *path)
    5859{
     
    7576        return TRUE;
    7677}
     78
     79void load_plugins(void)
     80{
     81        GDir *dir;
     82        GError *error = NULL;
     83
     84        dir = g_dir_open(PLUGINDIR, 0, &error);
     85
     86        if (dir) {
     87                const gchar *entry;
     88                char *path;
     89
     90                while ((entry = g_dir_read_name(dir))) {
     91                        path = g_build_filename(PLUGINDIR, entry, NULL);
     92                        if(!path) {
     93                                log_message(LOGLVL_WARNING, "Can't build path for %s\n", entry);
     94                                continue;
     95                        }
     96
     97                        load_plugin(path);
     98
     99                        g_free(path);
     100                }
     101
     102                g_dir_close(dir);
     103        }
     104}
     105#endif
    77106
    78107/* nogaim.c */
     
    101130void nogaim_init()
    102131{
    103         GDir *dir;
    104         GError *error = NULL;
     132        extern void msn_init();
     133        extern void oscar_init();
     134        extern void byahoo_init();
     135        extern void jabber_init();
    105136
    106137#ifdef WITH_MSN
    107         extern void msn_init();
    108138        msn_init();
    109139#endif
    110140
    111141#ifdef WITH_OSCAR
    112         extern void oscar_init();
    113142        oscar_init();
    114143#endif
    115144       
    116145#ifdef WITH_YAHOO
    117         extern void byahoo_init();
    118146        byahoo_init();
    119147#endif
    120148       
    121149#ifdef WITH_JABBER
    122         extern void jabber_init();
    123150        jabber_init();
    124151#endif
    125152
    126         dir = g_dir_open(PLUGINDIR, 0, &error);
    127 
    128         if (dir) {
    129                 const gchar *entry;
    130                 char *path;
    131 
    132                 while ((entry = g_dir_read_name(dir))) {
    133                         path = g_build_filename(PLUGINDIR, entry, NULL);
    134                         if(!path) {
    135                                 log_message(LOGLVL_WARNING, "Can't build path for %s\n", entry);
    136                                 continue;
    137                         }
    138 
    139                         load_plugin(path);
    140 
    141                         g_free(path);
    142                 }
    143 
    144                 g_dir_close(dir);
    145         }
     153#ifdef WITH_PLUGINS
     154        load_plugins();
     155#endif
    146156}
    147157
     
    442452void do_error_dialog( struct gaim_connection *gc, char *msg, char *title )
    443453{
    444         serv_got_crap( gc, "Error: %s", msg );
     454        if( msg && title )
     455                serv_got_crap( gc, "Error: %s: %s", title, msg );
     456        else if( msg )
     457                serv_got_crap( gc, "Error: %s", msg );
     458        else if( title )
     459                serv_got_crap( gc, "Error: %s", title );
     460        else
     461                serv_got_crap( gc, "Error" );
    445462}
    446463
     
    727744                /* If there's a newline/space in this string, split up there,
    728745                   looks a bit prettier. */
    729                 if( ( nl = strrchr( msg, '\n' ) ) || ( nl = strchr( msg, ' ' ) ) )
     746                if( ( nl = strrchr( msg, '\n' ) ) || ( nl = strrchr( msg, ' ' ) ) )
    730747                {
    731748                        msg[425] = tmp;
     
    751768}
    752769
    753 void serv_got_typing( struct gaim_connection *gc, char *handle, int timeout )
     770void serv_got_typing( struct gaim_connection *gc, char *handle, int timeout, int type )
    754771{
    755772        user_t *u;
     
    758775                return;
    759776       
    760         if( ( u = user_findhandle( gc, handle ) ) )
    761                 irc_msgfrom( gc->irc, u->nick, "\1TYPING 1\1" );
     777        if( ( u = user_findhandle( gc, handle ) ) ) {
     778                /* If type is:
     779                 * 0: user has stopped typing
     780                 * 1: user is actively typing
     781                 * 2: user has entered text, but is not actively typing
     782                 */
     783                if (type == 0 || type == 1 || type == 2) {
     784                        char buf[256];
     785                        g_snprintf(buf, 256, "\1TYPING %d\1", type);
     786                        irc_privmsg( gc->irc, u, "PRIVMSG", gc->irc->nick, NULL, buf );
     787                }
     788        }
    762789}
    763790
  • protocols/nogaim.h

    r2983f5e rbd69a21  
    307307G_MODULE_EXPORT void serv_got_update( struct gaim_connection *gc, char *handle, int loggedin, int evil, time_t signon, time_t idle, int type, guint caps );
    308308G_MODULE_EXPORT void serv_got_im( struct gaim_connection *gc, char *handle, char *msg, guint32 flags, time_t mtime, gint len );
    309 G_MODULE_EXPORT void serv_got_typing( struct gaim_connection *gc, char *handle, int timeout );
     309G_MODULE_EXPORT void serv_got_typing( struct gaim_connection *gc, char *handle, int timeout, int type );
    310310G_MODULE_EXPORT void serv_got_chat_invite( struct gaim_connection *gc, char *handle, char *who, char *msg, GList *data );
    311311G_MODULE_EXPORT struct conversation *serv_got_joined_chat( struct gaim_connection *gc, int id, char *handle );
     
    326326G_MODULE_EXPORT void info_string_append(GString *str, char *newline, char *name, char *value);
    327327
    328 /* file transfers */
    329 G_MODULE_EXPORT void ft_progress( struct ft *, int);
    330 G_MODULE_EXPORT void ft_incoming( struct ft_request * );
    331 G_MODULE_EXPORT void ft_accepted( struct ft_request *, struct ft *);
    332 G_MODULE_EXPORT void ft_denied( struct ft_request *, const char *reason);
    333 
    334328/* prefs.c */
    335329G_MODULE_EXPORT void build_block_list();
  • protocols/oscar/aim.h

    r2983f5e rbd69a21  
    466466int aim_addtlvtochain_caps(aim_tlvlist_t **list, const guint16 t, const guint32 caps);
    467467int aim_addtlvtochain_noval(aim_tlvlist_t **list, const guint16 type);
     468int aim_addtlvtochain_chatroom(aim_tlvlist_t **list, guint16 type, guint16 exchange, const char *roomname, guint16 instance);
    468469int aim_addtlvtochain_userinfo(aim_tlvlist_t **list, guint16 type, aim_userinfo_t *ui);
    469470int aim_addtlvtochain_frozentlvlist(aim_tlvlist_t **list, guint16 type, aim_tlvlist_t **tl);
     
    572573};
    573574
     575struct aim_chat_invitation {
     576        struct gaim_connection * gc;
     577        char * name;
     578        guint8 exchange;
     579};
    574580
    575581#define AIM_VISIBILITYCHANGE_PERMITADD    0x05
  • protocols/oscar/chat.c

    r2983f5e rbd69a21  
    180180       
    181181        aim_tx_enqueue(sess, fr);
    182 
    183         return 0;
    184 }
    185 
    186 static int aim_addtlvtochain_chatroom(aim_tlvlist_t **list, guint16 type, guint16 exchange, const char *roomname, guint16 instance)
    187 {
    188         guint8 *buf;
    189         int buflen;
    190         aim_bstream_t bs;
    191 
    192         buflen = 2 + 1 + strlen(roomname) + 2;
    193        
    194         if (!(buf = g_malloc(buflen)))
    195                 return 0;
    196 
    197         aim_bstream_init(&bs, buf, buflen);
    198 
    199         aimbs_put16(&bs, exchange);
    200         aimbs_put8(&bs, strlen(roomname));
    201         aimbs_putraw(&bs, (guint8 *)roomname, strlen(roomname));
    202         aimbs_put16(&bs, instance);
    203 
    204         aim_addtlvtochain_raw(list, type, aim_bstream_curpos(&bs), buf);
    205 
    206         g_free(buf);
    207182
    208183        return 0;
  • protocols/oscar/im.c

    r2983f5e rbd69a21  
    13691369}
    13701370
     1371
     1372static void incomingim_ch2_chat_free(aim_session_t *sess, struct aim_incomingim_ch2_args *args)
     1373{
     1374
     1375        /* XXX aim_chat_roominfo_free() */
     1376        g_free(args->info.chat.roominfo.name);
     1377
     1378        return;
     1379}
     1380
     1381static void incomingim_ch2_chat(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_userinfo_t *userinfo, struct aim_incomingim_ch2_args *args, aim_bstream_t *servdata)
     1382{
     1383
     1384        /*
     1385         * Chat room info.
     1386         */
     1387        if (servdata)
     1388                aim_chat_readroominfo(servdata, &args->info.chat.roominfo);
     1389
     1390        args->destructor = (void *)incomingim_ch2_chat_free;
     1391
     1392        return;
     1393}
     1394
    13711395static void incomingim_ch2_icqserverrelay_free(aim_session_t *sess, struct aim_incomingim_ch2_args *args)
    13721396{
     
    16171641        if (args.reqclass & AIM_CAPS_ICQSERVERRELAY)
    16181642                incomingim_ch2_icqserverrelay(sess, mod, rx, snac, userinfo, &args, sdbsptr);
     1643        else if (args.reqclass & AIM_CAPS_CHAT)
     1644                incomingim_ch2_chat(sess, mod, rx, snac, userinfo, &args, sdbsptr);
    16191645
    16201646
  • protocols/oscar/oscar.c

    r2983f5e rbd69a21  
    6262   static int gaim_caps = AIM_CAPS_UTF8; */
    6363
    64 static int gaim_caps = AIM_CAPS_INTEROP | AIM_CAPS_ICHAT | AIM_CAPS_ICQSERVERRELAY;
     64static int gaim_caps = AIM_CAPS_INTEROP | AIM_CAPS_ICHAT | AIM_CAPS_ICQSERVERRELAY | AIM_CAPS_CHAT;
    6565static guint8 gaim_features[] = {0x01, 0x01, 0x01, 0x02};
    6666
     
    156156}
    157157
    158 #if 0
    159158static struct chat_connection *find_oscar_chat(struct gaim_connection *gc, int id) {
    160159        GSList *g = ((struct oscar_data *)gc->proto_data)->oscar_chats;
     
    171170        return c;
    172171}
    173 #endif
     172
    174173
    175174static struct chat_connection *find_oscar_chat_by_conn(struct gaim_connection *gc,
     
    10741073}
    10751074
     1075void oscar_accept_chat(gpointer w, struct aim_chat_invitation * inv);
     1076void oscar_reject_chat(gpointer w, struct aim_chat_invitation * inv);
     1077       
    10761078static int incomingim_chan2(aim_session_t *sess, aim_conn_t *conn, aim_userinfo_t *userinfo, struct aim_incomingim_ch2_args *args) {
    1077 #if 0
    10781079        struct gaim_connection *gc = sess->aux_data;
    1079 #endif
    10801080
    10811081        if (args->status != AIM_RENDEZVOUS_PROPOSE)
    10821082                return 1;
    1083 #if 0
     1083
    10841084        if (args->reqclass & AIM_CAPS_CHAT) {
    10851085                char *name = extract_name(args->info.chat.roominfo.name);
    10861086                int *exch = g_new0(int, 1);
    10871087                GList *m = NULL;
     1088                char txt[1024];
     1089                struct aim_chat_invitation * inv = g_new0(struct aim_chat_invitation, 1);
     1090
    10881091                m = g_list_append(m, g_strdup(name ? name : args->info.chat.roominfo.name));
    10891092                *exch = args->info.chat.roominfo.exchange;
    10901093                m = g_list_append(m, exch);
    1091                 serv_got_chat_invite(gc,
    1092                                      name ? name : args->info.chat.roominfo.name,
    1093                                      userinfo->sn,
    1094                                      (char *)args->msg,
    1095                                      m);
     1094
     1095                g_snprintf( txt, 1024, "Got an invitation to chatroom %s from %s: %s", name, userinfo->sn, args->msg );
     1096
     1097                inv->gc = gc;
     1098                inv->exchange = *exch;
     1099                inv->name = g_strdup(name);
     1100               
     1101                do_ask_dialog( gc, txt, inv, oscar_accept_chat, oscar_reject_chat);
     1102       
    10961103                if (name)
    10971104                        g_free(name);
    10981105        }
    1099 #endif
     1106
    11001107        return 1;
    11011108}
     
    24412448        type2 = va_arg(ap, int);
    24422449        va_end(ap);
    2443 
    2444         if(type2 == 0x0001 || type2 == 0x0002)
    2445                 serv_got_typing(gc, sn, 0);
    2446 
     2450   
     2451        if(type2 == 0x0002) {
     2452                /* User is typing */
     2453                serv_got_typing(gc, sn, 0, 1);
     2454        }
     2455        else if (type2 == 0x0001) {
     2456                /* User has typed something, but is not actively typing (stale) */
     2457                serv_got_typing(gc, sn, 0, 2);
     2458        }
     2459        else {
     2460                /* User has stopped typing */
     2461                serv_got_typing(gc, sn, 0, 0);
     2462        }       
     2463       
    24472464        return 1;
    24482465}
     
    24822499}
    24832500
     2501int oscar_chat_send(struct gaim_connection * gc, int id, char *message)
     2502{
     2503        struct oscar_data * od = (struct oscar_data*)gc->proto_data;
     2504        struct chat_connection * ccon;
     2505        int ret;
     2506        guint8 len = strlen(message);
     2507        char *s;
     2508       
     2509        if(!(ccon = find_oscar_chat(gc, id)))
     2510                return -1;
     2511               
     2512        for (s = message; *s; s++)
     2513                if (*s & 128)
     2514                        break;
     2515               
     2516        /* Message contains high ASCII chars, time for some translation! */
     2517        if (*s) {
     2518                s = g_malloc(BUF_LONG);
     2519                /* Try if we can put it in an ISO8859-1 string first.
     2520                   If we can't, fall back to UTF16. */
     2521                if ((ret = do_iconv("UTF-8", "ISO8859-1", message, s, len, BUF_LONG)) >= 0) {
     2522                        len = ret;
     2523                } else if ((ret = do_iconv("UTF-8", "UNICODEBIG", message, s, len, BUF_LONG)) >= 0) {
     2524                        len = ret;
     2525                } else {
     2526                        /* OOF, translation failed... Oh well.. */
     2527                        g_free( s );
     2528                        s = message;
     2529                }
     2530        } else {
     2531                s = message;
     2532        }
     2533               
     2534        ret = aim_chat_send_im(od->sess, ccon->conn, AIM_CHATFLAGS_NOREFLECT, s, len);
     2535               
     2536        if (s != message) {     
     2537                g_free(s);
     2538  }
     2539 
     2540  return (ret >= 0);
     2541}
     2542
     2543void oscar_chat_invite(struct gaim_connection * gc, int id, char *message, char *who)
     2544{
     2545        struct oscar_data * od = (struct oscar_data *)gc->proto_data;
     2546        struct chat_connection *ccon = find_oscar_chat(gc, id);
     2547       
     2548        if (ccon == NULL)
     2549                return;
     2550       
     2551        aim_chat_invite(od->sess, od->conn, who, message ? message : "",
     2552                                        ccon->exchange, ccon->name, 0x0);
     2553}
     2554
     2555void oscar_chat_kill(struct gaim_connection *gc, struct chat_connection *cc)
     2556{
     2557        struct oscar_data *od = (struct oscar_data *)gc->proto_data;
     2558
     2559        /* Notify the conversation window that we've left the chat */
     2560        serv_got_chat_left(gc, cc->id);
     2561
     2562        /* Destroy the chat_connection */
     2563        od->oscar_chats = g_slist_remove(od->oscar_chats, cc);
     2564        if (cc->inpa > 0)
     2565                gaim_input_remove(cc->inpa);
     2566        aim_conn_kill(od->sess, &cc->conn);
     2567        g_free(cc->name);
     2568        g_free(cc->show);
     2569        g_free(cc);
     2570}
     2571
     2572void oscar_chat_leave(struct gaim_connection * gc, int id)
     2573{
     2574        struct chat_connection * ccon = find_oscar_chat(gc, id);
     2575
     2576        if(ccon == NULL)
     2577                return;
     2578
     2579        oscar_chat_kill(gc, ccon);
     2580}
     2581
     2582int oscar_chat_join(struct gaim_connection * gc, char * name)
     2583{
     2584    struct oscar_data * od = (struct oscar_data *)gc->proto_data;
     2585       
     2586        aim_conn_t * cur;
     2587
     2588        if((cur = aim_getconn_type(od->sess, AIM_CONN_TYPE_CHATNAV))) {
     2589       
     2590                return (aim_chatnav_createroom(od->sess, cur, name, 4) == 0);
     2591       
     2592        } else {
     2593                struct create_room * cr = g_new0(struct create_room, 1);
     2594                cr->exchange = 4;
     2595                cr->name = g_strdup(name);
     2596                od->create_rooms = g_slist_append(od->create_rooms, cr);
     2597                aim_reqservice(od->sess, od->conn, AIM_CONN_TYPE_CHATNAV);
     2598                return 1;
     2599        }
     2600}
     2601
     2602int oscar_chat_open(struct gaim_connection * gc, char *who)
     2603{
     2604        struct oscar_data * od = (struct oscar_data *)gc->proto_data;
     2605        int ret;
     2606        static int chat_id = 0;
     2607        char * chatname = g_new0(char, strlen(gc->username)+4);
     2608       
     2609        g_snprintf(chatname, strlen(gc->username) + 4, "%s%d", gc->username, chat_id++);
     2610 
     2611        ret = oscar_chat_join(gc, chatname);
     2612
     2613        aim_chat_invite(od->sess, od->conn, who, "", 4, chatname, 0x0);
     2614
     2615        g_free(chatname);
     2616       
     2617        return ret;
     2618}
     2619
     2620void oscar_accept_chat(gpointer w, struct aim_chat_invitation * inv)
     2621{
     2622        oscar_chat_join(inv->gc, inv->name);
     2623        g_free(inv->name);
     2624        g_free(inv);
     2625}
     2626
     2627void oscar_reject_chat(gpointer w, struct aim_chat_invitation * inv)
     2628{
     2629        g_free(inv->name);
     2630        g_free(inv);
     2631}
     2632
    24842633void oscar_init()
    24852634{
     
    24952644        ret->add_buddy = oscar_add_buddy;
    24962645        ret->remove_buddy = oscar_remove_buddy;
     2646        ret->chat_send = oscar_chat_send;
     2647        ret->chat_invite = oscar_chat_invite;
     2648        ret->chat_leave = oscar_chat_leave;
     2649        ret->chat_open = oscar_chat_open;
    24972650        ret->add_permit = oscar_add_permit;
    24982651        ret->add_deny = oscar_add_deny;
  • protocols/oscar/tlv.c

    r2983f5e rbd69a21  
    340340}
    341341
     342int aim_addtlvtochain_chatroom(aim_tlvlist_t **list, guint16 type, guint16 exchange, const char *roomname, guint16 instance)
     343{
     344        guint8 *buf;
     345        int buflen;
     346        aim_bstream_t bs;
     347
     348        buflen = 2 + 1 + strlen(roomname) + 2;
     349       
     350        if (!(buf = g_malloc(buflen)))
     351                return 0;
     352
     353        aim_bstream_init(&bs, buf, buflen);
     354
     355        aimbs_put16(&bs, exchange);
     356        aimbs_put8(&bs, strlen(roomname));
     357        aimbs_putraw(&bs, (guint8 *)roomname, strlen(roomname));
     358        aimbs_put16(&bs, instance);
     359
     360        aim_addtlvtochain_raw(list, type, aim_bstream_curpos(&bs), buf);
     361
     362        g_free(buf);
     363
     364        return 0;
     365}
     366
    342367/**
    343368 * aim_writetlvchain - Write a TLV chain into a data buffer.
  • protocols/proxy.c

    r2983f5e rbd69a21  
    7373
    7474
    75 static struct sockaddr_in *gaim_gethostbyname(char *host, int port)
     75static struct sockaddr_in *gaim_gethostbyname(const char *host, int port)
    7676{
    7777        static struct sockaddr_in sin;
     
    114114}
    115115
    116 static void no_one_calls(gpointer data, gint source, GaimInputCondition cond)
     116static void gaim_io_connected(gpointer data, gint source, GaimInputCondition cond)
    117117{
    118118        struct PHB *phb = data;
     
    144144}
    145145
    146 static int proxy_connect_none(char *host, unsigned short port, struct PHB *phb)
     146static int proxy_connect_none(const char *host, unsigned short port, struct PHB *phb)
    147147{
    148148        struct sockaddr_in *sin;
     
    163163        if (connect(fd, (struct sockaddr *)sin, sizeof(*sin)) < 0) {
    164164                if (sockerr_again()) {
    165                         phb->inpa = gaim_input_add(fd, GAIM_INPUT_WRITE, no_one_calls, phb);
     165                        phb->inpa = gaim_input_add(fd, GAIM_INPUT_WRITE, gaim_io_connected, phb);
    166166                        phb->fd = fd;
    167167                } else {
     
    271271}
    272272
    273 static int proxy_connect_http(char *host, unsigned short port, struct PHB *phb)
     273static int proxy_connect_http(const char *host, unsigned short port, struct PHB *phb)
    274274{
    275275        phb->host = g_strdup(host);
     
    355355}
    356356
    357 static int proxy_connect_socks4(char *host, unsigned short port, struct PHB *phb)
     357static int proxy_connect_socks4(const char *host, unsigned short port, struct PHB *phb)
    358358{
    359359        phb->host = g_strdup(host);
     
    537537}
    538538
    539 static int proxy_connect_socks5(char *host, unsigned short port, struct PHB *phb)
     539static int proxy_connect_socks5(const char *host, unsigned short port, struct PHB *phb)
    540540{
    541541        phb->host = g_strdup(host);
     
    578578}
    579579
    580 int proxy_connect(char *host, int port, GaimInputFunction func, gpointer data)
     580int proxy_connect(const char *host, int port, GaimInputFunction func, gpointer data)
    581581{
    582582        struct PHB *phb;
  • protocols/proxy.h

    r2983f5e rbd69a21  
    5656G_MODULE_EXPORT void gaim_input_remove(gint);
    5757
    58 G_MODULE_EXPORT int proxy_connect(char *host, int port, GaimInputFunction func, gpointer data);
     58G_MODULE_EXPORT int proxy_connect(const char *host, int port, GaimInputFunction func, gpointer data);
    5959
    6060#endif /* _PROXY_H_ */
  • protocols/yahoo/crypt.c

    r2983f5e rbd69a21  
    2222 * already had. isn't that lovely. people should just use linux or
    2323 * freebsd, crypt works properly on those systems. i hate solaris */
    24 
    25 #if HAVE_CONFIG_H
    26 #  include <config.h>
    27 #endif
    2824
    2925#if HAVE_STRING_H
  • protocols/yahoo/libyahoo2.c

    r2983f5e rbd69a21  
    4343 *
    4444 */
    45 
    46 #if HAVE_CONFIG_H
    47 # include <config.h>
    48 #endif
    4945
    5046#ifndef _WIN32
  • protocols/yahoo/yahoo.c

    r2983f5e rbd69a21  
    635635{
    636636        struct gaim_connection *gc = byahoo_get_gc_by_id( id );
    637        
    638         serv_got_typing( gc, who, 1 );
     637        if (stat == 1) {
     638                /* User is typing */
     639                serv_got_typing( gc, who, 1, 1 );
     640        }
     641        else {
     642                /* User stopped typing */
     643                serv_got_typing( gc, who, 1, 0 );
     644        }
    639645}
    640646
  • protocols/yahoo/yahoo_httplib.c

    r2983f5e rbd69a21  
    1919 *
    2020 */
    21 
    22 #if HAVE_CONFIG_H
    23 # include <config.h>
    24 #endif
    2521
    2622#include <stdio.h>
  • protocols/yahoo/yahoo_util.c

    r2983f5e rbd69a21  
    1919 *
    2020 */
    21 
    22 #if HAVE_CONFIG_H
    23 # include <config.h>
    24 #endif
    2521
    2622#if STDC_HEADERS
Note: See TracChangeset for help on using the changeset viewer.