diff options
| author | ulim <a.sporto+bee@gmail.com> | 2008-02-15 18:38:57 +0100 | 
|---|---|---|
| committer | ulim <a.sporto+bee@gmail.com> | 2008-02-15 18:38:57 +0100 | 
| commit | 1ba7e8f1d28c4876ea0b787f1e4ebb5607f48895 (patch) | |
| tree | 5ba8bed0e1ba83c56a855059e88e3d2a205fe88c /conf.c | |
| parent | 0fbd3a6d26d8fe747bd5e061748e75f397801064 (diff) | |
| parent | eeb85a8a880fefe655eb31b6322136b61ee969e2 (diff) | |
Merged with upstream r328
  Wilmer van der Gaast 2008-02-11 Got rid of some noise at startup: complaining when the default configuration
    Wilmer van der Gaast 2008-02-10 Added support for password-protected Jabber chatrooms.
    Wilmer van der Gaast 2008-02-10 Making AI_ADDRCONFIG optional, it doesn't exist on at least NetBSD and
    Wilmer van der Gaast 2008-02-09 Restored "add -tmp". A bit hackish, but it will do for now.
    Wilmer van der Gaast 2008-02-07 Fixed getnameinfo() calls, this fixes Solaris stability issues. Thanks to
    Wilmer van der Gaast 2008-02-04 Added bogus G_GNUC_MALLOC to restore GLib 2.4 compatibility (hopefully).
    Wilmer van der Gaast 2008-02-03 Messages from the user are also included in backlogs when joining a Jabber
    Wilmer van der Gaast 2008-02-03 Disabling "Unknown command" warnings since they're very noisy and pretty
    Wilmer van der Gaast 2008-02-03 Implemented XEP-0115. This adds some info to the <presence/> tags so
    Wilmer van der Gaast 2008-02-03 Saner garbage collection of cached packets in the Jabber module. Now
    Wilmer van der Gaast 2008-02-02 Added help_free() and cleaned up some very stale help-related stuff I
    Wilmer van der Gaast 2008-01-30 Fixed handling of OSCAR multi-part messages... They're not arrays, they're
    Wilmer van der Gaast 2008-01-24 Keeping track of valid Jabber connections so _connected() events will be
    Wilmer van der Gaast 2008-01-24 Fixed two valgrind warnings (partially uninitialized "struct tm" vars.)
    Wilmer van der Gaast 2008-01-20 The Jabber module now uses imcb_chat_log() instead of imcb_log() where
    Wilmer van der Gaast 2008-01-20 Added imcb_chat_log() for chatroom system messages, so they can be
    Wilmer van der Gaast 2008-01-20 GET_BUDDY_FIRST wasn't actually implemented, even though it was in use
    Wilmer van der Gaast 2008-01-19 Using test -f instead of test -e. This breaks if the include files are
    Wilmer van der Gaast 2008-01-19 Added byte swapping code to the new MD5 checksumming code to make it work
    Wilmer van der Gaast 2008-01-18 Moving imcb_chat_new() to a saner location (no code changes) and fixing
    Wilmer van der Gaast 2008-01-17 Apparently ext_yahoo_got_im can be called with msg=NULL, so it should be
    Wilmer van der Gaast 2008-01-17 Fixing some Solaris compiler warnings (u_int->uint, adding some typecasts
    Wilmer van der Gaast 2008-01-13 Fixed handing of failed groupchat joins.
    Wilmer van der Gaast 2008-01-13 Fixed "Conditional jump or move depends on uninitialised value(s)" at
    Wilmer van der Gaast 2008-01-13 Fixed quickstart2. (Bug #349.)
    Wilmer van der Gaast 2008-01-13 Different handling of charset mismatches before login time. Ignoring a
    Wilmer van der Gaast 2008-01-12 When a switchboard connection dies (at the TCP level) and there are still
    Wilmer van der Gaast 2008-01-12 Killed info_string_append() and now showing the IP address of ICQ users
    Wilmer van der Gaast 2008-01-11 Fixing bug #344, now away states should always be correct, even when people
    Wilmer van der Gaast 2008-01-11 Adding own handle to protocol name in blist output for people with multiple
    Wilmer van der Gaast 2008-01-10 Now setting odata->icq properly again, this got lost some time ago, which
    Wilmer van der Gaast 2008-01-06 More consistency in error/warning errors. Until now "WARNING:" was usually
    Wilmer van der Gaast 2008-01-06 Changed warning message about unsent MSN messages. It should show the actual
    Wilmer van der Gaast 2008-01-05 Added "mail_notifications" setting. Who needs those notifications anyway?
    Wilmer van der Gaast 2008-01-05 Build fix from vmiklos.
    Wilmer van der Gaast 2008-01-05 Added handling of MSN switchboard NAK messages. Untested, but hey, it
    Wilmer van der Gaast 2008-01-05 Removed closure->result. I was planning to add some more stuff, but will
    Miklos Vajna 2007-12-31 encode: md5.c is no longer in protocols/, it's in lib/
    Wilmer van der Gaast 2007-12-28 Fixed return value check in proxy_connect(), since on some systems
    Wilmer van der Gaast 2007-12-28 Added missing return in jabber_login().
    Wilmer van der Gaast 2007-12-16 Implemented XEP-0199 (patch from misc@mandriva.org).
    Wilmer van der Gaast 2007-12-12 Checking conn->xcred before trying to clean it up since GnuTLS doesn't
    Wilmer van der Gaast 2007-12-12 Killed the <server> parameter to "account add" and changed the default
    Wilmer van der Gaast 2007-12-12 Fixed sockerr_again() usage in Jabber module to (hopefully) fix a 100% CPU
    Wilmer van der Gaast 2007-12-10 Don't allow nicks that start with a number.
    Wilmer van der Gaast 2007-12-10 Fixed "set xxx" syntax (it showed all settings instead of just xxx).
    Wilmer van der Gaast 2007-12-09 If I keep forgetting to credit people in commit msgs I should probably add
    Wilmer van der Gaast 2007-12-09 Added /invite support for Jabber chatrooms (and fixed the argument order
Diffstat (limited to 'conf.c')
| -rw-r--r-- | conf.c | 45 | 
1 files changed, 24 insertions, 21 deletions
| @@ -35,14 +35,12 @@  #include "proxy.h" -char *CONF_FILE; -  static int conf_loadini( conf_t *conf, char *file );  conf_t *conf_load( int argc, char *argv[] )  {  	conf_t *conf; -	int opt, i; +	int opt, i, config_missing = 0;  	conf = g_new0( conf_t, 1 ); @@ -66,15 +64,17 @@ conf_t *conf_load( int argc, char *argv[] )  	conf->max_filetransfer_size = G_MAXUINT;  	proxytype = 0; -	i = conf_loadini( conf, CONF_FILE ); +	i = conf_loadini( conf, global.conf_file );  	if( i == 0 )  	{ -		fprintf( stderr, "Error: Syntax error in configuration file `%s'.\n", CONF_FILE ); -		return( NULL ); +		fprintf( stderr, "Error: Syntax error in configuration file `%s'.\n", global.conf_file ); +		return NULL;  	}  	else if( i == -1 )  	{ -		fprintf( stderr, "Warning: Unable to read configuration file `%s'.\n", CONF_FILE ); +		config_missing ++; +		/* Whine after parsing the options if there was no -c pointing +		   at a *valid* configuration file. */  	}  	while( argc > 0 && ( opt = getopt( argc, argv, "i:p:P:nvIDFc:d:hR:u:" ) ) >= 0 ) @@ -106,16 +106,16 @@ conf_t *conf_load( int argc, char *argv[] )  			conf->runmode = RUNMODE_FORKDAEMON;  		else if( opt == 'c' )  		{ -			if( strcmp( CONF_FILE, optarg ) != 0 ) +			if( strcmp( global.conf_file, optarg ) != 0 )  			{ -				g_free( CONF_FILE ); -				CONF_FILE = g_strdup( optarg ); +				g_free( global.conf_file ); +				global.conf_file = g_strdup( optarg );  				g_free( conf );  				/* Re-evaluate arguments. Don't use this option twice,   				   you'll end up in an infinite loop! Hope this trick  				   works with all libcs BTW.. */  				optind = 1; -				return( conf_load( argc, argv ) ); +				return conf_load( argc, argv );  			}  		}  		else if( opt == 'd' ) @@ -143,7 +143,7 @@ conf_t *conf_load( int argc, char *argv[] )  			        "  -c  Load alternative configuration file\n"  			        "  -d  Specify alternative user configuration directory\n"  			        "  -h  Show this help page.\n" ); -			return( NULL ); +			return NULL;  		}  		else if( opt == 'R' )  		{ @@ -169,7 +169,10 @@ conf_t *conf_load( int argc, char *argv[] )  		conf->configdir = s;  	} -	return( conf ); +	if( config_missing ) +		fprintf( stderr, "Warning: Unable to read configuration file `%s'.\n", global.conf_file ); +	 +	return conf;  }  static int conf_loadini( conf_t *conf, char *file ) @@ -178,7 +181,7 @@ static int conf_loadini( conf_t *conf, char *file )  	int i;  	ini = ini_open( file ); -	if( ini == NULL ) return( -1 ); +	if( ini == NULL ) return -1;  	while( ini_read( ini ) )  	{  		if( g_strcasecmp( ini->section, "settings" ) == 0 ) @@ -256,7 +259,7 @@ static int conf_loadini( conf_t *conf, char *file )  				if( sscanf( ini->value, "%d", &i ) != 1 )  				{  					fprintf( stderr, "Invalid %s value: %s\n", ini->key, ini->value ); -					return( 0 ); +					return 0;  				}  				conf->ping_interval = i;  			} @@ -265,7 +268,7 @@ static int conf_loadini( conf_t *conf, char *file )  				if( sscanf( ini->value, "%d", &i ) != 1 )  				{  					fprintf( stderr, "Invalid %s value: %s\n", ini->key, ini->value ); -					return( 0 ); +					return 0;  				}  				conf->ping_timeout = i;  			} @@ -277,7 +280,7 @@ static int conf_loadini( conf_t *conf, char *file )  				{  					fprintf( stderr, "Invalid %s value: %s\n", ini->key, ini->value );  					g_free( url ); -					return( 0 ); +					return 0;  				}  				strncpy( proxyhost, url->host, sizeof( proxyhost ) ); @@ -301,7 +304,7 @@ static int conf_loadini( conf_t *conf, char *file )  			else  			{  				fprintf( stderr, "Error: Unknown setting `%s` in configuration file.\n", ini->key ); -				return( 0 ); +				return 0;  				/* For now just ignore unknown keys... */  			}  		} @@ -309,19 +312,19 @@ static int conf_loadini( conf_t *conf, char *file )  		{  			fprintf( stderr, "Error: Unknown section [%s] in configuration file. "  			                 "BitlBee configuration must be put in a [settings] section!\n", ini->section ); -			return( 0 ); +			return 0;  		}  	}  	ini_close( ini ); -	return( 1 ); +	return 1;  }  void conf_loaddefaults( irc_t *irc )  {  	ini_t *ini; -	ini = ini_open( CONF_FILE ); +	ini = ini_open( global.conf_file );  	if( ini == NULL ) return;  	while( ini_read( ini ) )  	{ | 
