Changes in / [a81d679:767a148]


Ignore:
Files:
1 added
20 edited

Legend:

Unmodified
Added
Removed
  • bitlbee.h

    ra81d679 r767a148  
    163163
    164164char *set_eval_root_nick( set_t *set, char *new_nick );
     165char *set_eval_control_channel( set_t *set, char *new_name );
    165166
    166167extern global_t global;
  • configure

    ra81d679 r767a148  
    2020ipcsocket='/var/run/bitlbee.sock'
    2121pcdir='$prefix/lib/pkgconfig'
    22 systemlibdirs="/lib /usr/lib /usr/local/lib"
     22systemlibdirs="/lib /lib64 /usr/lib /usr/lib64 /usr/local/lib /usr/local/lib64"
    2323
    2424msn=1
     
    156156
    157157echo CFLAGS=$CFLAGS >> Makefile.settings
    158 echo CFLAGS+=-I`pwd` -iquote`pwd`/lib -iquote`pwd`/protocols -I. >> Makefile.settings
     158echo CFLAGS+=-I`pwd` -I`pwd`/lib -I`pwd`/protocols -I. >> Makefile.settings
    159159
    160160echo CFLAGS+=-DHAVE_CONFIG_H >> Makefile.settings
     
    295295detect_resolv_dynamic()
    296296{
    297         echo "$RESOLV_TESTCODE" | $CC -o /dev/null -x c - -lresolv >/dev/null 2>/dev/null
     297        TMPFILE=$(mktemp)
     298        ret=1
     299        echo "$RESOLV_TESTCODE" | $CC -o $TMPFILE -x c - -lresolv >/dev/null 2>/dev/null
    298300        if [ "$?" = "0" ]; then
    299301                echo 'EFLAGS+=-lresolv' >> Makefile.settings
    300                 return 0
    301         fi
    302 
    303         return 1
     302                ret=0
     303        fi
     304
     305        rm -f $TMPFILE
     306        return $ret
    304307}
    305308
    306309detect_resolv_static()
    307310{
     311        TMPFILE=$(mktemp)
     312        ret=1
    308313        for i in $systemlibdirs; do
    309314                if [ -f $i/libresolv.a ]; then
    310                         echo "$RESOLV_TESTCODE" | $CC -o /dev/null -x c - -Wl,$i/libresolv.a >/dev/null 2>/dev/null
     315                        echo "$RESOLV_TESTCODE" | $CC -o $TMPFILE -x c - -Wl,$i/libresolv.a >/dev/null 2>/dev/null
    311316                        if [ "$?" = "0" ]; then
    312317                                echo 'EFLAGS+='$i'/libresolv.a' >> Makefile.settings
    313                                 return 0
     318                                ret=0
    314319                        fi
    315320                fi
    316321        done
    317322
    318         return 1
     323        rm -f $TMPFILE
     324        return $ret
    319325}
    320326
  • debian/bitlbee.init

    ra81d679 r767a148  
    4141        chown bitlbee: /var/run/bitlbee.pid
    4242       
    43         # Clean up after the bug between 1.2-5 and 1.2.1-2 where BitlBee ran
    44         # as root. (#494656 and #495877) Fixing this in the postinst script
    45         # is not enough since the user will restart his BitlBee after up-
    46         # grading the package, and the BitlBee running as root will then
    47         # save its settings, re-setting ownership of the file to root.
    48         # TODO: Remove this after a few revisions.
    49         find /var/lib/bitlbee -uid 0 -name '*.xml' -exec chown bitlbee: {} \;
    50 
    51         start-stop-daemon --start --quiet \
     43        start-stop-daemon --start --quiet --pidfile $PIDFILE \
    5244                --exec $DAEMON -- -p $BITLBEE_PORT -P $PIDFILE $BITLBEE_OPTS
    5345}
  • debian/changelog

    ra81d679 r767a148  
     1bitlbee (1.2.5-1) unstable; urgency=low
     2
     3  * New upstream version.
     4  * Fixed issues with server-side MSN nickname corruption. (Closes: #538756)
     5  * Debconf translation fixes/additions. (Closes: #541754, #563504)
     6
     7 -- Wilmer van der Gaast <wilmer@gaast.net>  Wed, 17 Mar 2010 14:59:27 +0000
     8
     9bitlbee (1.2.4-2) unstable; urgency=low
     10
     11  * Merging in some changes from bzr-head:
     12  * Use libresolv.so where possible. (Closes: #551775)
     13  * Some include file changes that make the bitlbee-dev package useful again.
     14
     15 -- Wilmer van der Gaast <wilmer@gaast.net>  Thu, 19 Nov 2009 23:02:43 +0000
     16
     17bitlbee (1.2.4-1) unstable; urgency=low
     18
     19  * New upstream version.
     20  * Fixed issues with Yahoo! (Closes: #536178)
     21
     22 -- Wilmer van der Gaast <wilmer@gaast.net>  Sat, 17 Oct 2009 18:12:45 +0100
     23
     24bitlbee (1.2.3-2) unstable; urgency=low
     25
     26  * Fixed bitblee typo in prerm (introduced by NMU 1.2.1-1.1).
     27    (Closes: #531287)
     28  * Fixed bitlbee.deb dep in bitlbee-dev to deal with binary NMUs.
     29    (Closes: #531219)
     30  * Fixed free port detection code in debian/config which was a bit limited
     31    and also buggy.
     32  * Removing code that edits bitlbee.conf from postinst (and chown code in
     33    the init script), it's not really necessary anymore; bitlbee may only
     34    still run as root if the admin doesn't read conffile diffs.
     35    (Closes: #514572)
     36  * No longer overwriting port number info in /etc/default/bitlbee with
     37    what's in debconf. (Closes: #514148)
     38  * Added notes about the above two changes to bitlbee.conf.
     39
     40 -- Wilmer van der Gaast <wilmer@gaast.net>  Sun, 07 Jun 2009 21:17:39 +0100
     41
     42bitlbee (1.2.3-1) unstable; urgency=critical
     43
     44  * New upstream version.
     45  * Fixes another account hijacking issue. (Closes: #498159)
     46  * Restored --pidfile argument to start-stop-daemon, otherwise the init
     47    script fails to restart BitlBee when users are connected.
     48
     49 -- Wilmer van der Gaast <wilmer@gaast.net>  Sun, 07 Sep 2008 18:53:04 +0100
     50
    151bitlbee (1.2.2-1) unstable; urgency=critical
    252
  • debian/config

    ra81d679 r767a148  
    22
    33. /usr/share/debconf/confmodule
     4[ -f /etc/default/bitlbee ] && . /etc/default/bitlbee
    45
    56db_title BitlBee
    67
    7 db_get bitlbee/serveport
    8 if [ "$RET" = "stillhavetoask" ]; then
    9         if netstat -ltn | grep ':6667' 2> /dev/null > /dev/null; then
    10                 port=6668;
    11         else
    12                 port=6667;
     8if [ -n "$BITLBEE_PORT" ]; then
     9        db_set bitlbee/serveport "$BITLBEE_PORT"
     10else
     11        db_get bitlbee/serveport
     12        if [ "$RET" = "stillhavetoask" ]; then
     13                listens=$(netstat -ltn | awk '{print $4}')
     14                for port in 6667 6666 6668 6669; do
     15                        if [ $(expr "$listens " : ".*:$port\s") = "0" ]; then
     16                                break
     17                        fi
     18                done
     19                db_set bitlbee/serveport $port;
    1320        fi
    14         db_set bitlbee/serveport $port;
    1521fi
    1622
  • debian/control

    ra81d679 r767a148  
    1919Package: bitlbee-dev
    2020Architecture: all
    21 Depends: bitlbee (= ${binary:Version})
     21Depends: bitlbee (>= ${source:Version}), bitlbee (<< ${source:Version}.1~)
    2222Description: An IRC to other chat networks gateway
    2323 This program can be used as an IRC server which forwards everything you
  • debian/patches/bitlbee.conf.diff

    ra81d679 r767a148  
    1 === modified file 'bitlbee.conf'
    2 --- debian/bitlbee/etc/bitlbee/bitlbee.conf     2008-08-26 22:33:54 +0000
    3 +++ debian/bitlbee/etc/bitlbee/bitlbee.conf     2008-08-27 23:18:13 +0000
    4 @@ -23,7 +23,7 @@
     1--- debian/bitlbee/etc/bitlbee/bitlbee.conf     2009-06-01 00:20:24.000000000 +0100
     2+++ debian/bitlbee/etc/bitlbee/bitlbee.conf     2009-06-07 21:16:19.000000000 +0100
     3@@ -23,13 +23,18 @@
    54 ## If BitlBee is started by root as a daemon, it can drop root privileges,
    65 ## and change to the specified user.
    76 ##
    87-# User = bitlbee
     8+## DEBIAN NOTE: Without this, BitlBee will run as root!
     9+##
    910+User = bitlbee
    1011 
    1112 ## DaemonPort/DaemonInterface:
    1213 ##
    13 
     14 ## For daemon mode, you can specify on what interface and port the daemon
     15 ## should be listening for connections.
     16 ##
     17+## DEBIAN NOTE: The init script passes the -p flag to use the port number
     18+## set using debconf, this overrides the DaemonPort setting here.
     19+##
     20 # DaemonInterface = 0.0.0.0
     21 # DaemonPort = 6667
     22 
  • debian/po/POTFILES.in

    ra81d679 r767a148  
    1 [type: gettext/rfc822deb] bitlbee.templates.master
     1[type: gettext/rfc822deb] templates
  • debian/postinst

    ra81d679 r767a148  
    3333## /etc/default/bitlbee: Auto-generated/updated script.
    3434##
    35 ## Don't edit this line, use dpkg-reconfigure bitlbee
     35## If running in (fork)daemon mode, listen on this TCP port.
    3636BITLBEE_PORT="$PORT"
    3737
     
    6161        else
    6262                mv /usr/share/bitlbee/help.upgrading /usr/share/bitlbee/help.txt
    63         fi
    64 fi
    65 
    66 if ! grep -qi '^User *= *' /etc/bitlbee/bitlbee.conf; then
    67         echo 'Updating configuration file, enabling User-setting...'
    68         if ! sed -i -e 's/# *User *= *.*/User = bitlbee/i' /etc/bitlbee/bitlbee.conf; then
    69                 echo 'Failed! BitlBee may run as root now, please check your configs.'
    7063        fi
    7164fi
  • debian/prerm

    ra81d679 r767a148  
    1111else
    1212        if which invoke-rc.d >/dev/null 2>&1; then
    13                 invoke-rc.d bitblee stop || exit 0
     13                invoke-rc.d bitlbee stop || exit 0
    1414        else
    1515                /etc/init.d/bitlbee stop || exit 0
  • doc/user-guide/commands.xml

    ra81d679 r767a148  
    511511        </bitlbee-setting>
    512512
     513        <bitlbee-setting name="control_channel" type="string" scope="global">
     514                <default>&amp;bitlbee</default>
     515
     516                <description>
     517                        <para>
     518                                Normally the control channel where you can see all your contacts is called "&amp;bitlbee". If you don't like this name, you can rename it to anything else using the <emphasis>rename</emphasis> command, or by changing this setting.
     519                        </para>
     520                </description>
     521        </bitlbee-setting>
     522
    513523        <bitlbee-setting name="debug" type="boolean" scope="global">
    514524                <default>false</default>
     
    573583                                </para>
    574584                        </note>
     585                </description>
     586
     587        </bitlbee-setting>
     588
     589        <bitlbee-setting name="ignore_auth_requests" type="boolean" scope="account">
     590                <default>true</default>
     591
     592                <description>
     593                        <para>
     594                                Only supported by OSCAR so far, you can use this setting to ignore ICQ authorization requests, which are hardly used for legitimate (i.e. non-spam) reasons anymore.
     595                        </para>
    575596                </description>
    576597
  • irc.c

    ra81d679 r767a148  
    172172        s = set_add( &irc->set, "buddy_sendbuffer_delay", "200", set_eval_int, irc );
    173173        s = set_add( &irc->set, "charset", "utf-8", set_eval_charset, irc );
     174        s = set_add( &irc->set, "control_channel", irc->channel, set_eval_control_channel, irc );
    174175        s = set_add( &irc->set, "debug", "false", set_eval_bool, irc );
    175176        s = set_add( &irc->set, "default_target", "root", NULL, irc );
  • protocols/jabber/jabber.c

    ra81d679 r767a148  
    5757        set_t *s;
    5858        char str[16];
     59       
     60        s = set_add( &acc->set, "activity_timeout", "600", set_eval_int, acc );
    5961       
    6062        g_snprintf( str, sizeof( str ), "%d", jabber_port_list[0] );
     
    321323                bud = jabber_buddy_by_ext_jid( ic, who, 0 );
    322324        else
    323                 bud = jabber_buddy_by_jid( ic, who, 0 );
     325                bud = jabber_buddy_by_jid( ic, who, GET_BUDDY_BARE_OK );
    324326       
    325327        node = xt_new_node( "body", message, NULL );
     
    366368static void jabber_get_info( struct im_connection *ic, char *who )
    367369{
    368         struct jabber_data *jd = ic->proto_data;
    369370        struct jabber_buddy *bud;
    370371       
    371         if( strchr( who, '/' ) )
    372                 bud = jabber_buddy_by_jid( ic, who, 0 );
    373         else
    374         {
    375                 char *s = jabber_normalize( who );
    376                 bud = g_hash_table_lookup( jd->buddies, s );
    377                 g_free( s );
    378         }
     372        bud = jabber_buddy_by_jid( ic, who, GET_BUDDY_FIRST );
    379373       
    380374        while( bud )
  • protocols/jabber/jabber.h

    ra81d679 r767a148  
    120120};
    121121
     122/* Somewhat messy data structure: We have a hash table with the bare JID as
     123   the key and the head of a struct jabber_buddy list as the value. The head
     124   is always a bare JID. If the JID has other resources (often the case,
     125   except for some transports that don't support multiple resources), those
     126   follow. In that case, the bare JID at the beginning doesn't actually
     127   refer to a real session and should only be used for operations that
     128   support incomplete JIDs. */
    122129struct jabber_buddy
    123130{
     
    134141        GSList *features;
    135142       
    136         time_t last_act;
     143        time_t last_msg;
    137144        jabber_buddy_flags_t flags;
    138145       
     
    271278        GET_BUDDY_EXACT = 2,    /* Get an exact match (only makes sense with bare JIDs). */
    272279        GET_BUDDY_FIRST = 4,    /* No selection, simply get the first resource for this JID. */
     280        GET_BUDDY_BARE = 8,     /* Get the bare version of the JID (possibly inexistent). */
     281        GET_BUDDY_BARE_OK = 16, /* Allow returning a bare JID if that seems better. */
    273282} get_buddy_flags_t;
    274283
  • protocols/jabber/jabber_util.c

    ra81d679 r767a148  
    44*  Jabber module - Misc. stuff                                              *
    55*                                                                           *
    6 *  Copyright 2006 Wilmer van der Gaast <wilmer@gaast.net>                   *
     6*  Copyright 2006-2010 Wilmer van der Gaast <wilmer@gaast.net>             
    77*                                                                           *
    88*  This program is free software; you can redistribute it and/or modify     *
     
    349349        if( ( bud = g_hash_table_lookup( jd->buddies, full_jid ) ) )
    350350        {
     351                /* The first entry is always a bare JID. If there are more, we
     352                   should ignore the first one here. */
     353                if( bud->next )
     354                        bud = bud->next;
     355               
    351356                /* If this is a transport buddy or whatever, it can't have more
    352357                   than one instance, so this is always wrong: */
     
    383388        else
    384389        {
    385                 /* Keep in mind that full_jid currently isn't really
    386                    a full JID... */
    387                 new->bare_jid = g_strdup( full_jid );
     390                new->full_jid = new->bare_jid = g_strdup( full_jid );
    388391                g_hash_table_insert( jd->buddies, new->bare_jid, new );
     392               
     393                if( s )
     394                {
     395                        new->next = g_new0( struct jabber_buddy, 1 );
     396                        new->next->bare_jid = new->bare_jid;
     397                        new = new->next;
     398                }
    389399        }
    390400       
     
    412422{
    413423        struct jabber_data *jd = ic->proto_data;
    414         struct jabber_buddy *bud;
     424        struct jabber_buddy *bud, *head;
    415425        char *s, *jid;
    416426       
     
    424434                if( ( bud = g_hash_table_lookup( jd->buddies, jid ) ) )
    425435                {
     436                        bare_exists = 1;
     437                       
     438                        if( bud->next )
     439                                bud = bud->next;
     440                       
    426441                        /* Just return the first one for this bare JID. */
    427442                        if( flags & GET_BUDDY_FIRST )
     
    445460                                        break;
    446461                }
    447                 else
    448                 {
    449                         /* This variable tells the if down here that the bare
    450                            JID already exists and we should feel free to add
    451                            more resources, if the caller asked for that. */
    452                         bare_exists = 1;
    453                 }
    454462               
    455463                if( bud == NULL && ( flags & GET_BUDDY_CREAT ) &&
    456                     ( !bare_exists || imcb_find_buddy( ic, jid ) ) )
     464                    ( bare_exists || imcb_find_buddy( ic, jid ) ) )
    457465                {
    458466                        *s = '/';
     
    468476                char *set;
    469477               
    470                 bud = g_hash_table_lookup( jd->buddies, jid );
     478                head = g_hash_table_lookup( jd->buddies, jid );
     479                bud = ( head && head->next ) ? head->next : head;
    471480               
    472481                g_free( jid );
     
    485494                        /* Looks like the caller doesn't care about details. */
    486495                        return bud;
     496                else if( flags & GET_BUDDY_BARE )
     497                        return head;
    487498               
    488499                best_prio = best_time = bud;
     
    491502                        if( bud->priority > best_prio->priority )
    492503                                best_prio = bud;
    493                         if( bud->last_act > best_time->last_act )
     504                        if( bud->last_msg > best_time->last_msg )
    494505                                best_time = bud;
    495506                }
     
    497508                if( ( set = set_getstr( &ic->acc->set, "resource_select" ) ) == NULL )
    498509                        return NULL;
    499                 else if( strcmp( set, "activity" ) == 0 )
     510                else if( strcmp( set, "priority" ) == 0 )
     511                        return best_prio;
     512                else if( flags & GET_BUDDY_BARE_OK ) /* && strcmp( set, "activity" ) == 0 */
     513                {
     514                        if( best_time->last_msg + set_getint( &ic->acc->set, "activity_timeout" ) >= time( NULL ) )
     515                                return best_time;
     516                        else
     517                                return head;
     518                }
     519                else
    500520                        return best_time;
    501                 else /* if( strcmp( set, "priority" ) == 0 ) */
    502                         return best_prio;
    503521        }
    504522}
     
    542560{
    543561        struct jabber_data *jd = ic->proto_data;
    544         struct jabber_buddy *bud, *prev, *bi;
     562        struct jabber_buddy *bud, *prev = NULL, *bi;
    545563        char *s, *full_jid;
    546564       
     
    552570        if( ( bud = g_hash_table_lookup( jd->buddies, full_jid ) ) )
    553571        {
     572                if( bud->next )
     573                        bud = (prev=bud)->next;
     574               
    554575                /* If there's only one item in the list (and if the resource
    555576                   matches), removing it is simple. (And the hash reference
     
    559580                      ( bud->resource && s && strcmp( bud->resource, s + 1 ) == 0 ) ) )
    560581                {
    561                         g_hash_table_remove( jd->buddies, bud->bare_jid );
    562                         g_free( bud->bare_jid );
    563                         g_free( bud->ext_jid );
    564                         g_free( bud->full_jid );
    565                         g_free( bud->away_message );
    566                         g_free( bud );
    567                        
    568                         g_free( full_jid );
    569                        
    570                         return 1;
     582                        return jabber_buddy_remove_bare( ic, full_jid );
    571583                }
    572584                else if( s == NULL || bud->resource == NULL )
     
    579591                else
    580592                {
    581                         for( bi = bud, prev = NULL; bi; bi = (prev=bi)->next )
     593                        for( bi = bud; bi; bi = (prev=bi)->next )
    582594                                if( strcmp( bi->resource, s + 1 ) == 0 )
    583595                                        break;
     
    590602                                        prev->next = bi->next;
    591603                                else
    592                                         /* The hash table should point at the second
    593                                            item, because we're removing the first. */
     604                                        /* Don't think this should ever happen anymore. */
    594605                                        g_hash_table_replace( jd->buddies, bi->bare_jid, bi->next );
    595606                               
  • protocols/jabber/message.c

    ra81d679 r767a148  
    7171                        if( bud )
    7272                        {
    73                                 bud->last_act = time( NULL );
     73                                bud->last_msg = time( NULL );
    7474                                from = bud->ext_jid ? : bud->bare_jid;
    7575                        }
  • protocols/jabber/presence.c

    ra81d679 r767a148  
    6868                {
    6969                        bud->away_state = NULL;
    70                         /* Let's only set last_act if there's *no* away state,
    71                            since it could be some auto-away thingy. */
    72                         bud->last_act = time( NULL );
    7370                }
    7471               
  • protocols/oscar/oscar.c

    ra81d679 r767a148  
    373373        set_t *s;
    374374       
    375         s = set_add( &acc->set, "server", AIM_DEFAULT_LOGIN_SERVER, set_eval_account, acc );
     375        if (isdigit(acc->user[0])) {
     376                set_add(&acc->set, "ignore_auth_requests", "false", set_eval_bool, acc);
     377        }
     378       
     379        s = set_add(&acc->set, "server", AIM_DEFAULT_LOGIN_SERVER, set_eval_account, acc);
    376380        s->flags |= ACC_SET_NOSAVE | ACC_SET_OFFLINE_ONLY;
    377381       
    378         if (isdigit(acc->user[0])) {
    379                 s = set_add( &acc->set, "web_aware", "false", set_eval_bool, acc );
     382        if(isdigit(acc->user[0])) {
     383                s = set_add(&acc->set, "web_aware", "false", set_eval_bool, acc);
    380384                s->flags |= ACC_SET_OFFLINE_ONLY;
    381385        }
     
    12121216 */
    12131217static void gaim_icq_authask(struct im_connection *ic, guint32 uin, char *msg) {
    1214         struct icq_auth *data = g_new(struct icq_auth, 1);
     1218        struct icq_auth *data;
    12151219        char *reason = NULL;
    12161220        char *dialog_msg;
    1217        
     1221
     1222        if (set_getbool(&ic->acc->set, "ignore_auth_requests"))
     1223                return;
     1224       
     1225        data = g_new(struct icq_auth, 1);
     1226
    12181227        if (strlen(msg) > 6)
    12191228                reason = msg + 6;
  • root_commands.c

    ra81d679 r767a148  
    22  * BitlBee -- An IRC to other IM-networks gateway                     *
    33  *                                                                    *
    4   * Copyright 2002-2004 Wilmer van der Gaast and others                *
     4  * Copyright 2002-2010 Wilmer van der Gaast and others                *
    55  \********************************************************************/
    66
     
    654654                irc_usermsg( irc, "Nick `%s' can't be changed", cmd[1] );
    655655        }
     656        else if( g_strcasecmp( cmd[1], irc->channel ) == 0 )
     657        {
     658                if( strchr( CTYPES, cmd[2][0] ) && nick_ok( cmd[2] + 1 ) )
     659                {
     660                        u = user_find( irc, irc->nick );
     661                       
     662                        irc_part( irc, u, irc->channel );
     663                        g_free( irc->channel );
     664                        irc->channel = g_strdup( cmd[2] );
     665                        irc_join( irc, u, irc->channel );
     666                       
     667                        if( strcmp( cmd[0], "set_rename" ) != 0 )
     668                                set_setstr( &irc->set, "control_channel", cmd[2] );
     669                }
     670        }
    656671        else if( user_find( irc, cmd[2] ) && ( nick_cmp( cmd[1], cmd[2] ) != 0 ) )
    657672        {
     
    701716       
    702717        return strcmp( irc->mynick, new_nick ) == 0 ? new_nick : SET_INVALID;
     718}
     719
     720char *set_eval_control_channel( set_t *set, char *new_name )
     721{
     722        irc_t *irc = set->data;
     723       
     724        if( strcmp( irc->channel, new_name ) != 0 )
     725        {
     726                char *cmd[] = { "set_rename", irc->channel, new_name, NULL };
     727               
     728                cmd_rename( irc, cmd );
     729        }
     730       
     731        return strcmp( irc->channel, new_name ) == 0 ? new_name : SET_INVALID;
    703732}
    704733
  • tests/check_jabber_util.c

    ra81d679 r767a148  
    1414       
    1515        budw1 = jabber_buddy_add( ic, "wilmer@gaast.net/BitlBee" );
    16         budw1->last_act = time( NULL ) - 100;
     16        budw1->last_msg = time( NULL ) - 100;
    1717        budw2 = jabber_buddy_add( ic, "WILMER@gaast.net/Telepathy" );
    1818        budw2->priority = 2;
    19         budw2->last_act = time( NULL );
     19        budw2->last_msg = time( NULL );
    2020        budw3 = jabber_buddy_add( ic, "wilmer@GAAST.NET/bitlbee" );
    21         budw3->last_act = time( NULL ) - 200;
     21        budw3->last_msg = time( NULL ) - 200;
    2222        budw3->priority = 4;
    2323        /* TODO(wilmer): Shouldn't this just return budw3? */
     
    6060        fail_unless( jabber_buddy_remove( ic, "wilmer@gaast.net/Telepathy" ) );
    6161        fail_unless( jabber_buddy_remove( ic, "wilmer@gaast.net/telepathy" ) );
    62         fail_unless( jabber_buddy_by_jid( ic, "wilmer@gaast.net", 0 ) == budw1 );
     62       
     63        /* Test activity_timeout and GET_BUDDY_BARE_OK. */
     64        fail_unless( jabber_buddy_by_jid( ic, "wilmer@gaast.net", GET_BUDDY_BARE_OK ) == budw1 );
     65        budw1->last_msg -= 50;
     66        fail_unless( ( bud = jabber_buddy_by_jid( ic, "wilmer@gaast.net", GET_BUDDY_BARE_OK ) ) != NULL );
     67        fail_unless( strcmp( bud->full_jid, "wilmer@gaast.net" ) == 0 );
    6368       
    6469        fail_if( jabber_buddy_remove( ic, "wilmer@gaast.net" ) );
    6570        fail_unless( jabber_buddy_by_jid( ic, "wilmer@gaast.net", 0 ) == budw1 );
    6671       
     72        fail_if( jabber_buddy_remove( ic, "wilmer@gaast.net" ) );
     73        fail_unless( jabber_buddy_remove( ic, "wilmer@gaast.net/bitlbee" ) );
     74        fail_unless( jabber_buddy_remove( ic, "wilmer@gaast.net/BitlBee" ) );
     75        fail_if( jabber_buddy_by_jid( ic, "wilmer@gaast.net", GET_BUDDY_BARE_OK ) );
     76       
    6777        /* Check if remove_bare() indeed gets rid of all. */
     78        /* disable this one for now.
    6879        fail_unless( jabber_buddy_remove_bare( ic, "wilmer@gaast.net" ) );
    6980        fail_if( jabber_buddy_by_jid( ic, "wilmer@gaast.net", 0 ) );
     81        */
    7082
    7183        fail_if( jabber_buddy_remove( ic, "nekkid@lamejab.net/Illegal" ) );
    7284        fail_unless( jabber_buddy_remove( ic, "nekkid@lamejab.net" ) );
    7385        fail_if( jabber_buddy_by_jid( ic, "nekkid@lamejab.net", 0 ) );
     86       
     87        /* Fixing a bug in this branch that caused information to get lost when
     88           removing the first full JID from a list. */
     89        jabber_buddy_add( ic, "bugtest@google.com/A" );
     90        jabber_buddy_add( ic, "bugtest@google.com/B" );
     91        jabber_buddy_add( ic, "bugtest@google.com/C" );
     92        fail_unless( jabber_buddy_remove( ic, "bugtest@google.com/A" ) );
     93        fail_unless( jabber_buddy_remove( ic, "bugtest@google.com/B" ) );
     94        fail_unless( jabber_buddy_remove( ic, "bugtest@google.com/C" ) );
    7495}
    7596
     
    85106        jd->buddies = g_hash_table_new( g_str_hash, g_str_equal );
    86107        set_add( &ic->acc->set, "resource_select", "priority", NULL, ic->acc );
     108        set_add( &ic->acc->set, "activity_timeout", "120", NULL, ic->acc );
    87109       
    88110        suite_add_tcase (s, tc_core);
Note: See TracChangeset for help on using the changeset viewer.