/* string options */
config_compare(list, "LogLevel", CONFIG_TYPE_STRING, &options->LogLevel) ||
+ config_compare(list, "LogFile", CONFIG_TYPE_STRING, &options->LogFile) ||
+ config_compare(list, "DebugLogFile", CONFIG_TYPE_STRING, &options->DebugLogFile) ||
config_compare(list, "DataDirectory", CONFIG_TYPE_STRING, &options->DataDirectory) ||
config_compare(list, "RouterFile", CONFIG_TYPE_STRING, &options->RouterFile) ||
config_compare(list, "PidFile", CONFIG_TYPE_STRING, &options->PidFile) ||
config_compare(list, "NumCpus", CONFIG_TYPE_INT, &options->NumCpus) ||
config_compare(list, "OnionRouter", CONFIG_TYPE_BOOL, &options->OnionRouter) ||
- config_compare(list, "Daemon", CONFIG_TYPE_BOOL, &options->Daemon) ||
config_compare(list, "TrafficShaping", CONFIG_TYPE_BOOL, &options->TrafficShaping) ||
config_compare(list, "LinkPadding", CONFIG_TYPE_BOOL, &options->LinkPadding) ||
config_compare(list, "IgnoreVersion", CONFIG_TYPE_BOOL, &options->IgnoreVersion) ||
+ config_compare(list, "RunAsDaemon", CONFIG_TYPE_BOOL, &options->RunAsDaemon) ||
/* float options */
config_compare(list, "CoinWeight", CONFIG_TYPE_DOUBLE, &options->CoinWeight)
memset(options,0,sizeof(or_options_t));
options->LogLevel = "info";
options->ExitPolicy = "reject 127.0.0.1:*,reject 18.244.0.188:25,accept *:*";
- options->loglevel = LOG_DEBUG;
+ options->loglevel = LOG_INFO;
options->PidFile = "tor.pid";
options->DataDirectory = NULL;
options->CoinWeight = 0.1;
n_stream->address = tor_strdup(cell->payload + RELAY_HEADER_SIZE + STREAM_ID_SIZE);
n_stream->port = atoi(colon+1);
n_stream->state = EXIT_CONN_STATE_RESOLVING;
- n_stream->s = -1; /* not yet valid */
+ /* leave n_stream->s at -1, because it's not yet valid */
n_stream->package_window = STREAMWINDOW_START;
n_stream->deliver_window = STREAMWINDOW_START;
if(connection_add(n_stream) < 0) { /* no space, forget it */
for(;;) {
#ifndef MS_WIN32 /* do signal stuff only on unix */
if(please_dumpstats) {
- dumpstats(LOG_INFO);
+ /* prefer to log it at INFO, but make sure we always see it */
+ dumpstats(options.loglevel>LOG_INFO ? options.loglevel : LOG_INFO);
please_dumpstats = 0;
}
if(please_reset) {
log_fn(LOG_ERR,"Reading config file failed. exiting.");
return -1;
}
- log_set_severity(options.loglevel); /* assign logging severity level from options */
+ log_set_severity(options.loglevel); /* assign logging severity level from options */
+ if(options.DebugLogFile)
+ add_file_log(LOG_DEBUG, options.DebugLogFile);
+ if(options.LogFile)
+ add_file_log(options.loglevel, options.LogFile);
+ if(!options.LogFile && !options.RunAsDaemon)
+ add_stream_log(options.loglevel, "<stdout>", stdout);
+
global_read_bucket = options.TotalBandwidth; /* start it at 1 second of traffic */
stats_prev_global_read_bucket = global_read_bucket;
/* write our pid to the pid file */
write_pidfile(options.PidFile);
- if(options.Daemon)
+ if(options.RunAsDaemon)
daemonize();
if(options.OnionRouter) { /* only spawn dns handlers if we're a router */