Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • conf.c

    r8961950 reeb85a8  
    3636#include "proxy.h"
    3737
    38 char *CONF_FILE;
    39 
    4038static int conf_loadini( conf_t *conf, char *file );
    4139
     
    4341{
    4442        conf_t *conf;
    45         int opt, i;
     43        int opt, i, config_missing = 0;
    4644       
    4745        conf = g_new0( conf_t, 1 );
     
    6159        conf->pidfile = g_strdup( PIDFILE );
    6260        conf->motdfile = g_strdup( ETCDIR "/motd.txt" );
    63         conf->welcomefile = g_strdup( ETCDIR "/welcome.txt" );
    6461        conf->ping_interval = 180;
    6562        conf->ping_timeout = 300;
     
    6764        proxytype = 0;
    6865       
    69         i = conf_loadini( conf, CONF_FILE );
     66        i = conf_loadini( conf, global.conf_file );
    7067        if( i == 0 )
    7168        {
    72                 fprintf( stderr, "Error: Syntax error in configuration file `%s'.\n", CONF_FILE );
    73                 return( NULL );
     69                fprintf( stderr, "Error: Syntax error in configuration file `%s'.\n", global.conf_file );
     70                return NULL;
    7471        }
    7572        else if( i == -1 )
    7673        {
    77                 fprintf( stderr, "Warning: Unable to read configuration file `%s'.\n", CONF_FILE );
     74                config_missing ++;
     75                /* Whine after parsing the options if there was no -c pointing
     76                   at a *valid* configuration file. */
    7877        }
    7978       
     
    107106                else if( opt == 'c' )
    108107                {
    109                         if( strcmp( CONF_FILE, optarg ) != 0 )
    110                         {
    111                                 g_free( CONF_FILE );
    112                                 CONF_FILE = g_strdup( optarg );
     108                        if( strcmp( global.conf_file, optarg ) != 0 )
     109                        {
     110                                g_free( global.conf_file );
     111                                global.conf_file = g_strdup( optarg );
    113112                                g_free( conf );
    114113                                /* Re-evaluate arguments. Don't use this option twice,
     
    116115                                   works with all libcs BTW.. */
    117116                                optind = 1;
    118                                 return( conf_load( argc, argv ) );
     117                                return conf_load( argc, argv );
    119118                        }
    120119                }
     
    144143                                "  -d  Specify alternative user configuration directory\n"
    145144                                "  -h  Show this help page.\n" );
    146                         return( NULL );
     145                        return NULL;
    147146                }
    148147                else if( opt == 'R' )
     
    170169        }
    171170       
    172         return( conf );
     171        if( config_missing )
     172                fprintf( stderr, "Warning: Unable to read configuration file `%s'.\n", global.conf_file );
     173       
     174        return conf;
    173175}
    174176
     
    179181       
    180182        ini = ini_open( file );
    181         if( ini == NULL ) return( -1 );
     183        if( ini == NULL ) return -1;
    182184        while( ini_read( ini ) )
    183185        {
     
    242244                                conf->motdfile = g_strdup( ini->value );
    243245                        }
    244                         else if( g_strcasecmp( ini->key, "welcomefile" ) == 0 )
    245                         {
    246                                 g_free( conf->welcomefile );
    247                                 conf->welcomefile = g_strdup( ini->value );
    248                         }
    249246                        else if( g_strcasecmp( ini->key, "account_storage" ) == 0 )
    250247                        {
     
    262259                                {
    263260                                        fprintf( stderr, "Invalid %s value: %s\n", ini->key, ini->value );
    264                                         return( 0 );
     261                                        return 0;
    265262                                }
    266263                                conf->ping_interval = i;
     
    271268                                {
    272269                                        fprintf( stderr, "Invalid %s value: %s\n", ini->key, ini->value );
    273                                         return( 0 );
     270                                        return 0;
    274271                                }
    275272                                conf->ping_timeout = i;
     
    283280                                        fprintf( stderr, "Invalid %s value: %s\n", ini->key, ini->value );
    284281                                        g_free( url );
    285                                         return( 0 );
     282                                        return 0;
    286283                                }
    287284                               
     
    307304                        {
    308305                                fprintf( stderr, "Error: Unknown setting `%s` in configuration file.\n", ini->key );
    309                                 return( 0 );
     306                                return 0;
    310307                                /* For now just ignore unknown keys... */
    311308                        }
     
    315312                        fprintf( stderr, "Error: Unknown section [%s] in configuration file. "
    316313                                         "BitlBee configuration must be put in a [settings] section!\n", ini->section );
    317                         return( 0 );
     314                        return 0;
    318315                }
    319316        }
    320317        ini_close( ini );
    321318       
    322         return( 1 );
     319        return 1;
    323320}
    324321
     
    327324        ini_t *ini;
    328325       
    329         ini = ini_open( CONF_FILE );
     326        ini = ini_open( global.conf_file );
    330327        if( ini == NULL ) return;
    331328        while( ini_read( ini ) )
Note: See TracChangeset for help on using the changeset viewer.