, DaemonMode(false)
, Syslog(false)
, EnableIPv6(false)
+ , LogPasswords(false)
, Loglevel(0)
, ConfigPath("/etc/bpdyndnsd")
, WebcheckInterval(0)
, DaemonMode(false)
, Syslog(false)
, EnableIPv6(false)
+ , LogPasswords(false)
, Loglevel(0)
, ConfigPath("/etc/bpdyndnsd")
, WebcheckInterval(0)
("daemon_mode",po::value<bool>()->default_value(false),"Run as system daemon.")
("loglevel",po::value<int>()->default_value(0),"Loglevel.")
("syslog",po::value<bool>()->default_value(false),"Use syslog facility.")
+ ("log_passwords",po::value<bool>()->default_value(false),"Log passwords in cleartext.")
("enable_ipv6",po::value<bool>()->default_value(false),"Try to use IPv6.")
("webcheck_enabled",po::value<bool>()->default_value(false),"Use webcheck url to determine actual IP address.")
("webcheck_url",po::value<string>()->default_value(""),"Use this URL to determine IP.")
if ( VariablesMap.count("syslog") )
Syslog = VariablesMap["syslog"].as<bool>();
+ if ( VariablesMap.count("log_passwords") )
+ LogPasswords = VariablesMap["log_passwords"].as<bool>();
+
if ( VariablesMap.count("enable_ipv6") )
EnableIPv6 = VariablesMap["enable_ipv6"].as<bool>();
if ( VariablesMap.count("syslog") )
Syslog = VariablesMap["syslog"].as<bool>();
+ if ( VariablesMap.count("log_passwords") )
+ LogPasswords = VariablesMap["log_passwords"].as<bool>();
+
if ( VariablesMap.count("enable_ipv6") )
EnableIPv6 = VariablesMap["enable_ipv6"].as<bool>();
/**
+ * Getter for member LogPasswords.
+ * @return True if we want to log passwords in cleartext.
+ */
+bool Config::get_log_passwords() const
+{
+ return LogPasswords;
+}
+
+
+/**
* Getter for member EnableIPv6
* @return Wether IPv6 should be used or not.
*/
bool DaemonMode;
bool Syslog;
bool EnableIPv6;
+ bool LogPasswords;
int Loglevel;
std::string ConfigPath;
std::string WebcheckIpUrl;
bool get_syslog() const;
+ bool get_log_passwords() const;
+
bool get_enable_ipv6() const;
std::string get_proxy() const;
, Syslog(false)
, ExternalWarningLevel(0)
, ExternalLogOnlyOnce(false)
+ , LogPasswords(false)
{
set_log_facility(Loglevel,Syslog,ExternalWarningLog,ExternalWarningLevel,ExternalLogOnlyOnce);
}
}
+
+
/**
* Decides if a external log message can be send.
* @param msg The message to log.
/**
+ * Setter for member LogPasswords.
+ * @param _log_passwords If we want to log passwords or not.
+ */
+void Logger::set_log_passwords( const bool _log_passwords )
+{
+ LogPasswords = _log_passwords;
+}
+
+
+/**
* Setter for member Loglevel.
* @param _loglevel Value to set Loglevel to.
*/
msg << "\t" << "Protocol: " << protocol << endl;
msg << "\t" << "Hostname: " << hostname << endl;
msg << "\t" << "Login: " << login << endl;
- msg << "\t" << "Password: " << password << endl;
+
+ if (LogPasswords)
+ msg << "\t" << "Password: " << password << endl;
+ else
+ msg << "\t" << "Password: (*hidden*)" << endl;
+
msg << "\t" << "Update Interval: " << update_interval << endl;
msg << "\t" << "Max Updates: " << max_updates_within_interval << endl;
msg << "\t" << "Max equal Updates:" << max_equal_updates_in_succession << endl;
if ( level <= Loglevel )
{
ostringstream msg;
- msg << "Not authorized to perform update operation on service: " << service << " Please check username and password: " << username << ":" << password << endl;
+ msg << "Not authorized to perform update operation on service: " << service << " Please check username and password: " << username << ":";
+
+ if (LogPasswords)
+ msg << password << endl;
+ else
+ msg << "(*hidden*)" << endl;
+
log_notice(msg.str());
}
}
int ExternalWarningLevel;
std::set<std::string> ExternalSendMessages;
bool ExternalLogOnlyOnce;
+ bool LogPasswords;
public:
void set_external_log_only_once( const bool _external_log_only_once );
+ void set_log_passwords( const bool _log_passwords );
+
void clear_external_send_messages();
std::string escape_shellarg(const std::string &input);
{
Log->set_log_facility(Conf->get_loglevel(),Conf->get_syslog(),Conf->get_external_warning_log(),Conf->get_external_warning_level(),Conf->get_external_log_only_once());
Log->print_init_log_facility();
+
+ Log->set_log_passwords(Conf->get_log_passwords());
}