masqmail

changeset 155:b5ab9cb2f18a

shut down on errors reading config file while reading config file, log to log file note: this breaks after SIGHUP
author meillo@marmaro.de
date Thu, 08 Jul 2010 09:43:27 +0200
parents fc1e5aa286ed
children ee2afbf92428
files src/conf.c src/masqmail.c
diffstat 2 files changed, 15 insertions(+), 10 deletions(-) [+]
line diff
     1.1 --- a/src/conf.c	Thu Jul 08 09:20:34 2010 +0200
     1.2 +++ b/src/conf.c	Thu Jul 08 09:43:27 2010 +0200
     1.3 @@ -433,12 +433,11 @@
     1.4  	conf.max_defer_time = 86400 * 4;  /* 4 days */
     1.5  	conf.max_msg_size = 0; /* no limit on msg size */
     1.6  	conf.spool_dir = SPOOL_DIR;
     1.7 -	conf.log_dir = LOG_DIR;
     1.8  	conf.local_hosts = parse_list("localhost", FALSE);
     1.9  	conf.mail_dir = "/var/mail";
    1.10  
    1.11  	if ((in = fopen(filename, "r")) == NULL) {
    1.12 -		fprintf(stderr, "could not open config file %s: %s\n", filename, strerror(errno));
    1.13 +		logwrite(LOG_ALERT, "could not open config file %s: %s\n", filename, strerror(errno));
    1.14  		return FALSE;
    1.15  	}
    1.16  
    1.17 @@ -467,7 +466,7 @@
    1.18  				char buf[256];
    1.19  				FILE *fptr = fopen(rval, "rt");
    1.20  				if (fptr) {
    1.21 -					fprintf(stderr, "could not open %s: %s\n", rval, strerror(errno));
    1.22 +					logwrite(LOG_ALERT, "could not open %s: %s\n", rval, strerror(errno));
    1.23  					return FALSE;
    1.24  				}
    1.25  				fgets(buf, 255, fptr);
    1.26 @@ -476,7 +475,7 @@
    1.27  				fclose(fptr);
    1.28  			}
    1.29  		} else if (strcmp(lval, "remote_port") == 0) {
    1.30 -			fprintf(stderr, "the remote_port option is now deprecated. Use 'mail_host' in the\n"
    1.31 +			logwrite(LOG_WARNING, "the remote_port option is now deprecated. Use 'mail_host' in the\n"
    1.32  							"route configuration instead. See man masqmail.route\n");
    1.33  			conf.remote_port = atoi(rval);
    1.34  		} else if (strcmp(lval, "local_hosts") == 0)
    1.35 @@ -537,7 +536,7 @@
    1.36  			}
    1.37  			g_list_free(tmp_list);
    1.38  #else
    1.39 -			fprintf(stderr, "%s ignored: not compiled with ident support\n", lval);
    1.40 +			logwrite(LOG_WARNING, "%s ignored: not compiled with ident support\n", lval);
    1.41  #endif
    1.42  		} else if ((strncmp(lval, "connect_route.", 14) == 0)
    1.43  		           || (strncmp(lval, "online_routes.", 14) == 0)) {
    1.44 @@ -561,7 +560,7 @@
    1.45  			table_pair *pair = create_pair_string(&(lval[4]), rval);
    1.46  			conf.get_names = g_list_append(conf.get_names, pair);
    1.47  #else
    1.48 -			fprintf(stderr, "get.<name> ignored: not compiled with pop support\n");
    1.49 +			logwrite(LOG_WARNING, "get.<name> ignored: not compiled with pop support\n");
    1.50  #endif
    1.51  		} else if (strncmp(lval, "online_gets.", 12) == 0) {
    1.52  #ifdef ENABLE_POP3
    1.53 @@ -569,7 +568,7 @@
    1.54  			table_pair *pair = create_pair(&(lval[12]), file_list);
    1.55  			conf.online_gets = g_list_append(conf.online_gets, pair);
    1.56  #else
    1.57 -			fprintf(stderr, "online_gets.<name> ignored: not compiled with pop support\n");
    1.58 +			logwrite(LOG_WARNING, "online_gets.<name> ignored: not compiled with pop support\n");
    1.59  #endif
    1.60  		} else if (strcmp(lval, "errmsg_file") == 0)
    1.61  			conf.errmsg_file = g_strdup(rval);
    1.62 @@ -581,7 +580,7 @@
    1.63  			gint dummy;
    1.64  			gint ival = time_interval(rval, &dummy);
    1.65  			if (ival < 0)
    1.66 -				fprintf(stderr, "invalid time interval for 'max_defer_time': %s\n", rval);
    1.67 +				logwrite(LOG_WARNING, "invalid time interval for 'max_defer_time': %s\n", rval);
    1.68  			else
    1.69  				conf.max_defer_time = ival;
    1.70  		} else if (strcmp(lval, "log_user") == 0)
    1.71 @@ -592,7 +591,7 @@
    1.72  			                 rval, conf.max_msg_size);
    1.73  		}
    1.74  		else
    1.75 -			fprintf(stderr, "var '%s' not (yet) known, ignored\n", lval);
    1.76 +			logwrite(LOG_WARNING, "var '%s' not (yet) known, ignored\n", lval);
    1.77  	}
    1.78  	fclose(in);
    1.79  
     2.1 --- a/src/masqmail.c	Thu Jul 08 09:20:34 2010 +0200
     2.2 +++ b/src/masqmail.c	Thu Jul 08 09:43:27 2010 +0200
     2.3 @@ -641,7 +641,13 @@
     2.4  		}
     2.5  	}
     2.6  
     2.7 -	read_conf(conf_file);
     2.8 +	conf.log_dir = LOG_DIR;
     2.9 +	logopen();
    2.10 +	if (!read_conf(conf_file)) {
    2.11 +		logwrite(LOG_ALERT, "SHUTTING DOWN due to problems reading config\n");
    2.12 +		exit(5);
    2.13 +	}
    2.14 +	logclose();
    2.15  
    2.16  	if (do_queue)
    2.17  		conf.do_queue = TRUE;