Changes in / [4eb4c0f:8961950]


Ignore:
Files:
2 deleted
32 edited

Legend:

Unmodified
Added
Removed
  • Makefile

    r4eb4c0f r8961950  
    5050        $(MAKE) -C tests
    5151
     52lcov:
    5253gcov: check
    5354        gcov *.c
  • bitlbee.c

    r4eb4c0f r8961950  
    4848        hints.ai_family = PF_UNSPEC;
    4949        hints.ai_socktype = SOCK_STREAM;
    50         hints.ai_flags = AI_PASSIVE
    51 #ifdef AI_ADDRCONFIG
    52                        | AI_ADDRCONFIG
    53 #endif
    54         ;
     50        hints.ai_flags = AI_ADDRCONFIG | AI_PASSIVE;
    5551
    5652        i = getaddrinfo( global.conf->iface, global.conf->port, &hints, &addrinfo_bind );
  • bitlbee.h

    r4eb4c0f r8961950  
    9999#endif
    100100
    101 #ifndef G_GNUC_MALLOC
    102 /* Doesn't exist in GLib <=2.4 while everything else in BitlBee should
    103    work with it, so let's fake this one. */
    104 #define G_GNUC_MALLOC
    105 #endif
    106 
    107101#define _( x ) x
    108102
     
    121115#define HELP_FILE VARDIR "help.txt"
    122116#define CONF_FILE_DEF ETCDIR "bitlbee.conf"
     117
     118extern char *CONF_FILE;
    123119
    124120#include "irc.h"
     
    144140        gint listen_watch_source_id;
    145141        help_t *help;
    146         char *conf_file;
    147142        conf_t *conf;
    148143        GList *storage; /* The first backend in the list will be used for saving */
  • conf.c

    r4eb4c0f r8961950  
    3636#include "proxy.h"
    3737
     38char *CONF_FILE;
     39
    3840static int conf_loadini( conf_t *conf, char *file );
    3941
     
    4143{
    4244        conf_t *conf;
    43         int opt, i, config_missing = 0;
     45        int opt, i;
    4446       
    4547        conf = g_new0( conf_t, 1 );
     
    6567        proxytype = 0;
    6668       
    67         i = conf_loadini( conf, global.conf_file );
     69        i = conf_loadini( conf, CONF_FILE );
    6870        if( i == 0 )
    6971        {
    70                 fprintf( stderr, "Error: Syntax error in configuration file `%s'.\n", global.conf_file );
    71                 return NULL;
     72                fprintf( stderr, "Error: Syntax error in configuration file `%s'.\n", CONF_FILE );
     73                return( NULL );
    7274        }
    7375        else if( i == -1 )
    7476        {
    75                 config_missing ++;
    76                 /* Whine after parsing the options if there was no -c pointing
    77                    at a *valid* configuration file. */
     77                fprintf( stderr, "Warning: Unable to read configuration file `%s'.\n", CONF_FILE );
    7878        }
    7979       
     
    107107                else if( opt == 'c' )
    108108                {
    109                         if( strcmp( global.conf_file, optarg ) != 0 )
    110                         {
    111                                 g_free( global.conf_file );
    112                                 global.conf_file = g_strdup( optarg );
     109                        if( strcmp( CONF_FILE, optarg ) != 0 )
     110                        {
     111                                g_free( CONF_FILE );
     112                                CONF_FILE = g_strdup( optarg );
    113113                                g_free( conf );
    114114                                /* Re-evaluate arguments. Don't use this option twice,
     
    116116                                   works with all libcs BTW.. */
    117117                                optind = 1;
    118                                 return conf_load( argc, argv );
     118                                return( conf_load( argc, argv ) );
    119119                        }
    120120                }
     
    144144                                "  -d  Specify alternative user configuration directory\n"
    145145                                "  -h  Show this help page.\n" );
    146                         return NULL;
     146                        return( NULL );
    147147                }
    148148                else if( opt == 'R' )
     
    170170        }
    171171       
    172         if( config_missing )
    173                 fprintf( stderr, "Warning: Unable to read configuration file `%s'.\n", global.conf_file );
    174        
    175         return conf;
     172        return( conf );
    176173}
    177174
     
    182179       
    183180        ini = ini_open( file );
    184         if( ini == NULL ) return -1;
     181        if( ini == NULL ) return( -1 );
    185182        while( ini_read( ini ) )
    186183        {
     
    265262                                {
    266263                                        fprintf( stderr, "Invalid %s value: %s\n", ini->key, ini->value );
    267                                         return 0;
     264                                        return( 0 );
    268265                                }
    269266                                conf->ping_interval = i;
     
    274271                                {
    275272                                        fprintf( stderr, "Invalid %s value: %s\n", ini->key, ini->value );
    276                                         return 0;
     273                                        return( 0 );
    277274                                }
    278275                                conf->ping_timeout = i;
     
    286283                                        fprintf( stderr, "Invalid %s value: %s\n", ini->key, ini->value );
    287284                                        g_free( url );
    288                                         return 0;
     285                                        return( 0 );
    289286                                }
    290287                               
     
    310307                        {
    311308                                fprintf( stderr, "Error: Unknown setting `%s` in configuration file.\n", ini->key );
    312                                 return 0;
     309                                return( 0 );
    313310                                /* For now just ignore unknown keys... */
    314311                        }
     
    318315                        fprintf( stderr, "Error: Unknown section [%s] in configuration file. "
    319316                                         "BitlBee configuration must be put in a [settings] section!\n", ini->section );
    320                         return 0;
     317                        return( 0 );
    321318                }
    322319        }
    323320        ini_close( ini );
    324321       
    325         return 1;
     322        return( 1 );
    326323}
    327324
     
    330327        ini_t *ini;
    331328       
    332         ini = ini_open( global.conf_file );
     329        ini = ini_open( CONF_FILE );
    333330        if( ini == NULL ) return;
    334331        while( ini_read( ini ) )
  • crypting.c

    r4eb4c0f r8961950  
    2929   the programs will be built. */
    3030
    31 #include <bitlbee.h>
     31#include <string.h>
     32#include <stdio.h>
     33#include <stdlib.h>
     34#include <glib.h>
    3235#include "md5.h"
    3336#include "crypting.h"
  • help.c

    r4eb4c0f r8961950  
    7171                {
    7272                        /* FIXME: Clean up */
    73                         help_free( help );
     73//                      help_close( *help );
     74                        *help = NULL;
    7475                        g_free( s );
    75                         return NULL;
     76                        return( NULL );
    7677                }
    7778                i = strchr( s, '\n' ) - s;
    7879               
    79                 if( h->title )
     80                if( h->string )
    8081                {
    8182                        h = h->next = g_new0( help_t, 1 );
    8283                }
    83                 h->title = g_new ( char, i );
     84                h->string = g_new ( char, i );
    8485               
    85                 strncpy( h->title, s + 1, i - 1 );
    86                 h->title[i-1] = 0;
     86                strncpy( h->string, s + 1, i - 1 );
     87                h->string[i-1] = 0;
    8788                h->fd = (*help)->fd;
    8889                h->offset.file_offset = lseek( h->fd, 0, SEEK_CUR ) - buflen + i + 1;
     
    102103}
    103104
    104 void help_free( help_t **help )
    105 {
    106         help_t *h, *oh;
    107         int last_fd = -1; /* Weak de-dupe */
    108        
    109         if( help == NULL || *help == NULL )
    110                 return;
    111        
    112         h = *help;
    113         while( h )
    114         {
    115                 if( h->fd != last_fd )
    116                 {
    117                         close( h->fd );
    118                         last_fd = h->fd;
    119                 }
    120                 g_free( h->title );
    121                 h = (oh=h)->next;
    122                 g_free( oh );
    123         }
    124        
    125         *help = NULL;
    126 }
    127 
    128 char *help_get( help_t **help, char *title )
     105char *help_get( help_t **help, char *string )
    129106{
    130107        time_t mtime;
     
    134111        for( h = *help; h; h = h->next )
    135112        {
    136                 if( h->title != NULL && g_strcasecmp( h->title, title ) == 0 )
     113                if( h->string != NULL &&
     114                        g_strcasecmp( h->string, string ) == 0 )
    137115                        break;
    138116        }
     
    141119                char *s = g_new( char, h->length + 1 );
    142120               
     121                if( fstat( h->fd, stat ) != 0 )
     122                {
     123                        g_free( h );
     124                        *help = NULL;
     125                        return NULL;
     126                }
     127                mtime = stat->st_mtime;
     128               
     129                if( mtime > h->mtime )
     130                        return NULL;
     131               
    143132                s[h->length] = 0;
    144133                if( h->fd >= 0 )
    145134                {
    146                         if( fstat( h->fd, stat ) != 0 )
    147                         {
    148                                 g_free( s );
    149                                 return NULL;
    150                         }
    151                         mtime = stat->st_mtime;
    152                
    153                         if( mtime > h->mtime )
    154                         {
    155                                 g_free( s );
    156                                 return NULL;
    157                         }
    158                        
    159135                        lseek( h->fd, h->offset.file_offset, SEEK_SET );
    160136                        read( h->fd, s, h->length );
  • help.h

    r4eb4c0f r8961950  
    3737        int fd;
    3838        time_t mtime;
    39         char *title;
     39        char *string;
    4040        help_off_t offset;
    4141        int length;
     
    4444
    4545G_GNUC_MALLOC help_t *help_init( help_t **help, const char *helpfile );
    46 void help_free( help_t **help );
    47 char *help_get( help_t **help, char *title );
     46char *help_get( help_t **help, char *string );
    4847
    4948#endif
  • irc.c

    r4eb4c0f r8961950  
    7777
    7878                if( getnameinfo( (struct sockaddr *) &sock, socklen, buf,
    79                                  NI_MAXHOST, NULL, 0, 0 ) == 0 )
     79                                 NI_MAXHOST, NULL, -1, 0 ) == 0 )
    8080                {
    8181                        irc->myhost = g_strdup( ipv6_unwrap( buf ) );
     
    8888
    8989                if( getnameinfo( (struct sockaddr *)&sock, socklen, buf,
    90                                  NI_MAXHOST, NULL, 0, 0 ) == 0 )
     90                                 NI_MAXHOST, NULL, -1, 0 ) == 0 )
    9191                {
    9292                        irc->host = g_strdup( ipv6_unwrap( buf ) );
     
    199199        account_t *account;
    200200        user_t *user, *usertmp;
     201        help_t *helpnode, *helpnodetmp;
    201202       
    202203        log_message( LOGLVL_INFO, "Destroying connection with fd %d", irc->fd );
     
    274275        g_hash_table_foreach_remove(irc->watches, irc_free_hashkey, NULL);
    275276        g_hash_table_destroy(irc->watches);
     277       
     278        if (irc->help != NULL) {
     279                helpnode = irc->help;
     280                while (helpnode != NULL) {
     281                        g_free(helpnode->string);
     282                       
     283                        helpnodetmp = helpnode;
     284                        helpnode = helpnode->next;
     285                        g_free(helpnodetmp);
     286                }
     287        }
    276288       
    277289        otr_free(irc->otr);
  • irc.h

    r4eb4c0f r8961950  
    9191        GHashTable *watches;
    9292        struct __NICK *nicks;
     93        struct help *help;
    9394        struct set *set;
    9495
  • irc_commands.c

    r4eb4c0f r8961950  
    556556       
    557557        for( h = global.help; h; h = h->next )
    558                 irc_privmsg( irc, u, "NOTICE", irc->nick, "COMPLETIONS help ", h->title );
     558                irc_privmsg( irc, u, "NOTICE", irc->nick, "COMPLETIONS help ", h->string );
    559559       
    560560        for( s = irc->set; s; s = s->next )
     
    571571                ipc_to_master( cmd );
    572572       
    573         irc_reply( irc, 382, "%s :Rehashing", global.conf_file );
     573        irc_reply( irc, 382, "%s :Rehashing", CONF_FILE );
    574574}
    575575
  • lib/Makefile

    r4eb4c0f r8961950  
    1818all: lib.o
    1919check: all
    20 lcov: check
     20lcov:
    2121gcov:
    2222        gcov *.c
  • protocols/Makefile

    r4eb4c0f r8961950  
    2727all: protocols.o
    2828check: all
    29 lcov: check
     29lcov:
    3030gcov:
    3131        gcov *.c
  • protocols/jabber/Makefile

    r4eb4c0f r8961950  
    1818all: jabber_mod.o
    1919check: all
    20 lcov: check
     20lcov:
    2121gcov:
    2222        gcov *.c
  • protocols/jabber/conference.c

    r4eb4c0f r8961950  
    3737        xt_add_attr( node, "xmlns", XMLNS_MUC );
    3838        node = jabber_make_packet( "presence", NULL, roomjid, node );
    39         if( password )
    40                 xt_add_child( node, xt_new_node( "password", password, NULL ) );
    4139        jabber_cache_add( ic, node, jabber_chat_join_failed );
    4240       
     
    124122        struct jabber_chat *jc = c->data;
    125123        struct xt_node *node;
    126        
    127         jc->flags |= JCFLAG_MESSAGE_SENT;
    128124       
    129125        node = xt_new_node( "body", message, NULL );
     
    299295        struct xt_node *subject = xt_find_node( node->children, "subject" );
    300296        struct xt_node *body = xt_find_node( node->children, "body" );
    301         struct groupchat *chat = bud ? jabber_chat_by_jid( ic, bud->bare_jid ) : NULL;
    302         struct jabber_chat *jc = chat ? chat->data : NULL;
     297        struct groupchat *chat = NULL;
    303298        char *s;
    304299       
    305         if( bud == NULL || ( jc && ~jc->flags & JCFLAG_MESSAGE_SENT && bud == jc->me ) )
     300        if( bud == NULL )
    306301        {
    307302                char *nick;
     
    351346                return;
    352347        }
    353         else if( chat == NULL )
     348        else if( ( chat = jabber_chat_by_jid( ic, bud->bare_jid ) ) == NULL )
    354349        {
    355350                /* How could this happen?? We could do kill( self, 11 )
  • protocols/jabber/iq.c

    r4eb4c0f r8961950  
    9292                else if( strcmp( s, XMLNS_DISCOVER ) == 0 )
    9393                {
    94                         const char *features[] = { XMLNS_DISCOVER,
    95                                                    XMLNS_VERSION,
     94                        const char *features[] = { XMLNS_VERSION,
    9695                                                   XMLNS_TIME,
    9796                                                   XMLNS_CHATSTATES,
  • protocols/jabber/jabber.h

    r4eb4c0f r8961950  
    4949typedef enum
    5050{
    51         JBFLAG_PROBED_XEP85 = 1,        /* Set this when we sent our probe packet to make
     51        JBFLAG_PROBED_XEP85 = 1,        /* Set this when we sent our probe packet to make
    5252                                           sure it gets sent only once. */
    53         JBFLAG_DOES_XEP85 = 2,          /* Set this when the resource seems to support
     53        JBFLAG_DOES_XEP85 = 2,          /* Set this when the resource seems to support
    5454                                           XEP85 (typing notification shite). */
    55         JBFLAG_IS_CHATROOM = 4,         /* It's convenient to use this JID thingy for
     55        JBFLAG_IS_CHATROOM = 4,         /* It's convenient to use this JID thingy for
    5656                                           groupchat state info too. */
    57         JBFLAG_IS_ANONYMOUS = 8,        /* For anonymous chatrooms, when we don't have
     57        JBFLAG_IS_ANONYMOUS = 8,        /* For anonymous chatrooms, when we don't have
    5858                                           have a real JID. */
    5959} jabber_buddy_flags_t;
    60 
    61 typedef enum
    62 {
    63         JCFLAG_MESSAGE_SENT = 1,        /* Set this after sending the first message, so
    64                                            we can detect echoes/backlogs. */
    65 } jabber_chat_flags_t;
    6660
    6761struct jabber_data
     
    10195struct jabber_cache_entry
    10296{
    103         time_t saved_at;
    10497        struct xt_node *node;
    10598        jabber_cache_event func;
     
    147140#define JABBER_PACKET_ID "BeeP"
    148141#define JABBER_CACHED_ID "BeeC"
    149 
    150 /* The number of seconds to keep cached packets before garbage collecting
    151    them. This gc is done on every keepalive (every minute). */
    152 #define JABBER_CACHE_MAX_AGE 600
    153142
    154143/* RFC 392[01] stuff */
     
    172161#define XMLNS_MUC          "http://jabber.org/protocol/muc"     /* XEP-0045 */
    173162#define XMLNS_MUC_USER     "http://jabber.org/protocol/muc#user"/* XEP-0045 */
    174 #define XMLNS_CAPS         "http://jabber.org/protocol/caps"    /* XEP-0115 */
    175163
    176164/* iq.c */
  • protocols/jabber/jabber_util.c

    r4eb4c0f r8961950  
    142142        entry->node = node;
    143143        entry->func = func;
    144         entry->saved_at = time( NULL );
    145144        g_hash_table_insert( jd->node_cache, xt_find_attr( node, "id" ), entry );
    146145}
     
    164163{
    165164        struct jabber_data *jd = ic->proto_data;
    166         time_t threshold = time( NULL ) - JABBER_CACHE_MAX_AGE;
    167        
    168         g_hash_table_foreach_remove( jd->node_cache, jabber_cache_clean_entry, &threshold );
    169 }
    170 
    171 gboolean jabber_cache_clean_entry( gpointer key, gpointer entry_, gpointer threshold_ )
     165       
     166        g_hash_table_foreach_remove( jd->node_cache, jabber_cache_clean_entry, NULL );
     167}
     168
     169gboolean jabber_cache_clean_entry( gpointer key, gpointer entry_, gpointer nullpointer )
    172170{
    173171        struct jabber_cache_entry *entry = entry_;
    174         time_t *threshold = threshold_;
    175        
    176         return entry->saved_at < *threshold;
     172        struct xt_node *node = entry->node;
     173       
     174        if( node->flags & XT_SEEN )
     175                return TRUE;
     176        else
     177        {
     178                node->flags |= XT_SEEN;
     179                return FALSE;
     180        }
    177181}
    178182
  • protocols/jabber/presence.c

    r4eb4c0f r8961950  
    2929        char *from = xt_find_attr( node, "from" );
    3030        char *type = xt_find_attr( node, "type" );      /* NULL should mean the person is online. */
    31         struct xt_node *c, *cap;
     31        struct xt_node *c;
    3232        struct jabber_buddy *bud, *send_presence = NULL;
    3333        int is_chat = 0;
     
    7676                else
    7777                        bud->priority = 0;
    78                
    79                 if( bud && ( cap = xt_find_node( node->children, "c" ) ) &&
    80                     ( s = xt_find_attr( cap, "xmlns" ) ) && strcmp( s, XMLNS_CAPS ) == 0 )
    81                 {
    82                         /* This <presence> stanza includes an XEP-0115
    83                            capabilities part. Not too interesting, but we can
    84                            see if it has an ext= attribute. */
    85                         s = xt_find_attr( cap, "ext" );
    86                         if( s && ( strstr( s, "cstates" ) || strstr( s, "chatstate" ) ) )
    87                                 bud->flags |= JBFLAG_DOES_XEP85;
    88                        
    89                         /* This field can contain more information like xhtml
    90                            support, but we don't support that ourselves.
    91                            Officially the ext= tag was deprecated, but enough
    92                            clients do send it.
    93                            
    94                            (I'm aware that this is not the right way to use
    95                            this field.) See for an explanation of ext=:
    96                            http://www.xmpp.org/extensions/attic/xep-0115-1.3.html*/
    97                 }
    9878               
    9979                if( is_chat )
     
    206186{
    207187        struct jabber_data *jd = ic->proto_data;
    208         struct xt_node *node, *cap;
     188        struct xt_node *node;
    209189        char *show = jd->away_state->code;
    210190        char *status = jd->away_message;
     
    219199                xt_add_child( node, xt_new_node( "status", status, NULL ) );
    220200       
    221         /* This makes the packet slightly bigger, but clients interested in
    222            capabilities can now cache the discovery info. This reduces the
    223            usual post-login iq-flood. See XEP-0115. At least libpurple and
    224            Trillian seem to do this right. */
    225         cap = xt_new_node( "c", NULL, NULL );
    226         xt_add_attr( cap, "xmlns", XMLNS_CAPS );
    227         xt_add_attr( cap, "node", "http://bitlbee.org/xmpp/caps" );
    228         xt_add_attr( cap, "ver", BITLBEE_VERSION ); /* The XEP wants this hashed, but nobody's doing that. */
    229         xt_add_child( node, cap );
    230        
    231201        st = jabber_write_packet( ic, node );
    232202       
  • protocols/jabber/sasl.c

    r4eb4c0f r8961950  
    2121*                                                                           *
    2222\***************************************************************************/
    23 
    24 #include <ctype.h>
    2523
    2624#include "jabber.h"
     
    109107}
    110108
    111 /* Non-static function, but not mentioned in jabber.h because it's for internal
    112    use, just that the unittest should be able to reach it... */
    113 char *sasl_get_part( char *data, char *field )
     109static char *sasl_get_part( char *data, char *field )
    114110{
    115111        int i, len;
    116112       
    117113        len = strlen( field );
    118        
    119         while( isspace( *data ) || *data == ',' )
    120                 data ++;
    121114       
    122115        if( g_strncasecmp( data, field, len ) == 0 && data[len] == '=' )
     
    136129                        }
    137130                       
    138                         /* If we got a comma, we got a new field. Check it,
    139                            find the next key after it. */
    140                         if( data[i] == ',' )
     131                        /* If we got a comma, we got a new field. Check it. */
     132                        if( data[i] == ',' &&
     133                            g_strncasecmp( data + i + 1, field, len ) == 0 &&
     134                            data[i+len+1] == '=' )
    141135                        {
    142                                 while( isspace( data[i] ) || data[i] == ',' )
    143                                         i ++;
    144                                
    145                                 if( g_strncasecmp( data + i, field, len ) == 0 &&
    146                                     data[i+len] == '=' )
    147                                 {
    148                                         i += len + 1;
    149                                         break;
    150                                 }
     136                                i += len + 2;
     137                                break;
    151138                        }
    152139                }
  • protocols/msn/Makefile

    r4eb4c0f r8961950  
    1818all: msn_mod.o
    1919check: all
    20 lcov: check
     20lcov:
    2121gcov:
    2222        gcov *.c
  • protocols/msn/ns.c

    r4eb4c0f r8961950  
    584584        else
    585585        {
    586                 /* debug( "Received unknown command from main server: %s", cmd[0] ); */
     586                debug( "Received unknown command from main server: %s", cmd[0] );
    587587        }
    588588       
  • protocols/msn/sb.c

    r4eb4c0f r8961950  
    594594        else
    595595        {
    596                 /* debug( "Received unknown command from switchboard server: %s", cmd[0] ); */
     596                debug( "Received unknown command from switchboard server: %s", cmd[0] );
    597597        }
    598598       
  • protocols/oscar/Makefile

    r4eb4c0f r8961950  
    1818all: oscar_mod.o
    1919check: all
    20 lcov: check
     20lcov:
    2121gcov:
    2222        gcov *.c
  • protocols/oscar/oscar.c

    r4eb4c0f r8961950  
    10661066                g_snprintf(tmp, BUF_LONG, "%s", args->msg);
    10671067        } else {
    1068                 aim_mpmsg_section_t *part;
     1068                int i;
    10691069               
    10701070                *tmp = 0;
    1071                 for (part = args->mpmsg.parts; part; part = part->next) {
    1072                         if (part->data) {
    1073                                 g_strlcat(tmp, (char*) part->data, BUF_LONG);
    1074                                 g_strlcat(tmp, "\n", BUF_LONG);
    1075                         }
     1071                for (i = 0; i < args->mpmsg.numparts; i ++) {
     1072                        g_strlcat(tmp, (char*) args->mpmsg.parts[i].data, BUF_LONG);
     1073                        g_strlcat(tmp, "\n", BUF_LONG);
    10761074                }
    10771075        }
  • protocols/yahoo/Makefile

    r4eb4c0f r8961950  
    1818all: yahoo_mod.o
    1919check: all
    20 lcov: check
     20lcov:
    2121gcov:
    2222        gcov *.c
  • root_commands.c

    r4eb4c0f r8961950  
    454454        {
    455455                add_on_server = 0;
    456                 cmd ++;
     456                cmd ++;         /* So evil... :-D */
    457457        }
    458458       
     
    486486        }
    487487       
     488        /* By making this optional, you can talk to people without having to
     489           add them to your *real* (server-side) contact list. */
    488490        if( add_on_server )
    489491                a->ic->acc->prpl->add_buddy( a->ic, cmd[2], NULL );
    490         else
    491                 /* Yeah, officially this is a call-*back*... So if we just
    492                    called add_buddy, we'll wait for the IM server to respond
    493                    before we do this. */
    494                 imcb_add_buddy( a->ic, cmd[2], NULL );
     492       
     493        /* add_buddy( a->ic, NULL, cmd[2], cmd[2] ); */
    495494       
    496495        irc_usermsg( irc, "Adding `%s' to your contact list", cmd[2]  );
  • storage_text.c

    r4eb4c0f r8961950  
    3030static void text_init (void)
    3131{
    32         /* Don't complain about the configuration directory anymore, leave it
    33            up to the XML storage module, which uses the same directory for it
    34            anyway. Nobody should be using just the text plugin anymore since
    35            it's read only! */
     32        if( access( global.conf->configdir, F_OK ) != 0 )
     33                log_message( LOGLVL_WARNING, "The configuration directory %s does not exist. Configuration won't be saved.", global.conf->configdir );
     34        else if( access( global.conf->configdir, R_OK ) != 0 || access( global.conf->configdir, W_OK ) != 0 )
     35                log_message( LOGLVL_WARNING, "Permission problem: Can't read/write from/to %s.", global.conf->configdir );
    3636}
    3737
  • storage_xml.c

    r4eb4c0f r8961950  
    263263{
    264264        if( access( global.conf->configdir, F_OK ) != 0 )
    265                 log_message( LOGLVL_WARNING, "The configuration directory `%s' does not exist. Configuration won't be saved.", global.conf->configdir );
     265                log_message( LOGLVL_WARNING, "The configuration directory %s does not exist. Configuration won't be saved.", global.conf->configdir );
    266266        else if( access( global.conf->configdir, R_OK ) != 0 || access( global.conf->configdir, W_OK ) != 0 )
    267                 log_message( LOGLVL_WARNING, "Permission problem: Can't read/write from/to `%s'.", global.conf->configdir );
     267                log_message( LOGLVL_WARNING, "Permission problem: Can't read/write from/to %s.", global.conf->configdir );
    268268}
    269269
  • tests/Makefile

    r4eb4c0f r8961950  
    1111distclean: clean
    1212
    13 main_objs = account.o bitlbee.o conf.o crypting.o help.o ipc.o irc.o irc_commands.o log.o nick.o query.o root_commands.o set.o storage.o storage_xml.o storage_text.o user.o
     13main_objs = account.o bitlbee.o conf.o crypting.o help.o ipc.o irc.o irc_commands.o log.o nick.o query.o root_commands.o set.o storage.o storage_xml.o storage_text.o user.o 
    1414
    15 test_objs = check.o check_util.o check_nick.o check_md5.o check_arc.o check_irc.o check_help.o check_user.o check_crypting.o check_set.o check_jabber_sasl.o
     15test_objs = check.o check_util.o check_nick.o check_md5.o check_arc.o check_irc.o check_help.o check_user.o check_crypting.o check_set.o
    1616
    1717check: $(test_objs) $(addprefix ../, $(main_objs)) ../protocols/protocols.o ../lib/lib.o
  • tests/check.c

    r4eb4c0f r8961950  
    6666Suite *set_suite(void);
    6767
    68 /* From check_jabber_sasl.c */
    69 Suite *jabber_sasl_suite(void);
    70 
    7168int main (int argc, char **argv)
    7269{
     
    114111        srunner_add_suite(sr, crypting_suite());
    115112        srunner_add_suite(sr, set_suite());
    116         srunner_add_suite(sr, jabber_sasl_suite());
    117113        if (no_fork)
    118114                srunner_set_fork_status(sr, CK_NOFORK);
  • tests/check_arc.c

    r4eb4c0f r8961950  
    6262                        0x73, 0x6d, 0xb3, 0x0a, 0x6f, 0x0a, 0x2b, 0x43, 0x57, 0xe9, 0x3e, 0x63
    6363                }, 24, "OSCAR is creepy..."
    64         },
    65         { "", 0, NULL }
     64        }
    6665};
    6766
     
    7069        int i;
    7170       
    72         for( i = 0; decrypt_tests[i].len; i++ )
     71        for( i = 0; clear_tests[i]; i++ )
    7372        {
    7473                tcase_fn_start (decrypt_tests[i].decrypted, __FILE__, __LINE__);
  • unix.c

    r4eb4c0f r8961950  
    4848       
    4949        log_init();
    50         global.conf_file = g_strdup( CONF_FILE_DEF );
     50        CONF_FILE = g_strdup( CONF_FILE_DEF );
    5151        global.conf = conf_load( argc, argv );
    5252        if( global.conf == NULL )
     
    126126        if( !getuid() || !geteuid() )
    127127                log_message( LOGLVL_WARNING, "BitlBee is running with root privileges. Why?" );
    128         if( help_init( &global.help, global.helpfile ) == NULL )
     128        if( help_init( &(global.help), global.helpfile ) == NULL )
    129129                log_message( LOGLVL_WARNING, "Error opening helpfile %s.", HELP_FILE );
    130130       
    131131        b_main_run();
    132        
    133         /* Mainly good for restarting, to make sure we close the help.txt fd. */
    134         help_free( &global.help );
    135132       
    136133        if( global.restart )
Note: See TracChangeset for help on using the changeset viewer.