Changeset 4eb4c0f for conf.c


Ignore:
Timestamp:
2008-02-16T17:15:31Z (17 years ago)
Author:
Sven Moritz Hallberg <sm@…>
Branches:
master
Children:
fd9fa52
Parents:
8961950 (diff), ca60550 (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 in upstream changes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • conf.c

    r8961950 r4eb4c0f  
    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 );
     
    6765        proxytype = 0;
    6866       
    69         i = conf_loadini( conf, CONF_FILE );
     67        i = conf_loadini( conf, global.conf_file );
    7068        if( i == 0 )
    7169        {
    72                 fprintf( stderr, "Error: Syntax error in configuration file `%s'.\n", CONF_FILE );
    73                 return( NULL );
     70                fprintf( stderr, "Error: Syntax error in configuration file `%s'.\n", global.conf_file );
     71                return NULL;
    7472        }
    7573        else if( i == -1 )
    7674        {
    77                 fprintf( stderr, "Warning: Unable to read configuration file `%s'.\n", CONF_FILE );
     75                config_missing ++;
     76                /* Whine after parsing the options if there was no -c pointing
     77                   at a *valid* configuration file. */
    7878        }
    7979       
     
    107107                else if( opt == 'c' )
    108108                {
    109                         if( strcmp( CONF_FILE, optarg ) != 0 )
    110                         {
    111                                 g_free( CONF_FILE );
    112                                 CONF_FILE = g_strdup( optarg );
     109                        if( strcmp( global.conf_file, optarg ) != 0 )
     110                        {
     111                                g_free( global.conf_file );
     112                                global.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         return( conf );
     172        if( config_missing )
     173                fprintf( stderr, "Warning: Unable to read configuration file `%s'.\n", global.conf_file );
     174       
     175        return conf;
    173176}
    174177
     
    179182       
    180183        ini = ini_open( file );
    181         if( ini == NULL ) return( -1 );
     184        if( ini == NULL ) return -1;
    182185        while( ini_read( ini ) )
    183186        {
     
    262265                                {
    263266                                        fprintf( stderr, "Invalid %s value: %s\n", ini->key, ini->value );
    264                                         return( 0 );
     267                                        return 0;
    265268                                }
    266269                                conf->ping_interval = i;
     
    271274                                {
    272275                                        fprintf( stderr, "Invalid %s value: %s\n", ini->key, ini->value );
    273                                         return( 0 );
     276                                        return 0;
    274277                                }
    275278                                conf->ping_timeout = i;
     
    283286                                        fprintf( stderr, "Invalid %s value: %s\n", ini->key, ini->value );
    284287                                        g_free( url );
    285                                         return( 0 );
     288                                        return 0;
    286289                                }
    287290                               
     
    307310                        {
    308311                                fprintf( stderr, "Error: Unknown setting `%s` in configuration file.\n", ini->key );
    309                                 return( 0 );
     312                                return 0;
    310313                                /* For now just ignore unknown keys... */
    311314                        }
     
    315318                        fprintf( stderr, "Error: Unknown section [%s] in configuration file. "
    316319                                         "BitlBee configuration must be put in a [settings] section!\n", ini->section );
    317                         return( 0 );
     320                        return 0;
    318321                }
    319322        }
    320323        ini_close( ini );
    321324       
    322         return( 1 );
     325        return 1;
    323326}
    324327
     
    327330        ini_t *ini;
    328331       
    329         ini = ini_open( CONF_FILE );
     332        ini = ini_open( global.conf_file );
    330333        if( ini == NULL ) return;
    331334        while( ini_read( ini ) )
Note: See TracChangeset for help on using the changeset viewer.