EMDIS-ECS
view release on metacpan or search on metacpan
lib/EMDIS/ECS/Config.pm view on Meta::CPAN
}
# ----------------------------------------------------------------------
# Assign default values to configuration settings.
# Note: no default value for THIS_NODE, ADM_ADDR, ADAPTER_CMD, SMTP_DOMAIN,
# SMTP_FROM, SMTP_PORT, SMTP_USERNAME, SMTP_PASSWORD, INBOX_PORT,
# INBOX_FOLDER, INBOX_USERNAME, INBOX_PASSWORD, GPG_HOMEDIR, GPG_KEYID,
# GPG_PASSPHRASE, PGP_HOMEDIR, PGP_KEYID, PGP_PASSPHRASE,
# AMQP_BROKER_URL, AMQP_VHOST, AMQP_TRUSTSTORE, AMQP_SSLCERT AMQP_SSLKEY,
# AMQP_SSLPASS, AMQP_USERNAME, AMQP_PASSWORD
sub _set_defaults
{
my $this = shift;
$this->{MSG_PROC} = "ecs_proc_msg";
$this->{MAIL_MRK} = "EMDIS";
$this->{T_CHK} = "7200";
$this->{T_SCN} = "3600";
$this->{ENABLE_ENV_CONFIG} = 'YES';
my $basename = basename($0); # default; use magic logfile name
$this->{ERR_FILE} = "$basename.err";
$this->{LOG_FILE} = "$basename.log";
$this->{M_MSG_PROC} = "ecs_proc_meta";
$this->{BCK_DIR} = "NONE";
$this->{ACK_THRES} = "100";
$this->{ALWAYS_ACK} = "NO";
$this->{GNU_TAR} = "/usr/bin/tar";
$this->{ECS_BIN_DIR} = "__SCRIPT_DIR__";
$this->{ECS_DAT_DIR} = "__CONFIG_DIR__";
$this->{ECS_DEBUG} = "0";
$this->{NODE_TBL} = "node_tbl.dat";
$this->{NODE_TBL_LCK} = "node_tbl.lock";
$this->{T_ADM_DELAY} = "0";
$this->{T_ADM_REMIND} = "86400";
$this->{T_MSG_PROC} = "3600";
$this->{T_RESEND_DELAY} = "14400";
$this->{LOG_LEVEL} = 1;
$this->{MAIL_LEVEL} = 2;
$this->{MSG_PART_SIZE_DFLT} = "1073741824";
$this->{SMTP_HOST} = "smtp";
$this->{SMTP_TIMEOUT} = "60";
$this->{SMTP_DEBUG} = "0";
$this->{SMTP_USE_SSL} = "NO";
$this->{SMTP_USE_STARTTLS} = "NO";
$this->{INBOX_PROTOCOL} = "POP3";
$this->{INBOX_HOST} = "mail";
$this->{INBOX_FOLDER} = "INBOX";
$this->{INBOX_TIMEOUT} = "60";
$this->{INBOX_DEBUG} = "0";
$this->{INBOX_USE_SSL} = "NO";
$this->{INBOX_USE_STARTTLS} = "NO";
$this->{INBOX_MAX_MSG_SIZE} = "1048576";
$this->{OPENPGP_CMD_ENCRYPT} = '/usr/local/bin/gpg --armor --batch ' .
'--charset ISO-8859-1 --force-mdc --logger-fd 1 --openpgp ' .
'--output __OUTPUT__ --pinentry-mode loopback --passphrase-fd 0 ' .
'--quiet --recipient __RECIPIENT__ --recipient __SELF__ --yes ' .
'--sign --local-user __SELF__ --encrypt __INPUT__';
$this->{OPENPGP_CMD_DECRYPT} = '/usr/local/bin/gpg --batch ' .
'--charset ISO-8859-1 --logger-fd 1 --openpgp --output __OUTPUT__ ' .
'--pinentry-mode loopback --passphrase-fd 0 --quiet --yes ' .
'--decrypt __INPUT__';
$this->{PGP2_CMD_ENCRYPT} = '/usr/local/bin/pgp +batchmode +verbose=0 ' .
'+force +CharSet=latin1 +ArmorLines=0 -o __OUTPUT__ ' .
'-u __SELF__ -eats __INPUT__ __RECIPIENT__ __SELF__';
$this->{PGP2_CMD_DECRYPT} = '/usr/local/bin/pgp +batchmode +verbose=0 ' .
'+force +CharSet=latin1 -o __OUTPUT__ __INPUT__';
$this->{ENABLE_AMQP} = "NO";
$this->{AMQP_RECV_TIMEOUT} = 5;
$this->{AMQP_RECV_TIMELIMIT} = 300;
$this->{AMQP_SEND_TIMELIMIT} = 60;
$this->{AMQP_DEBUG_LEVEL} = 0;
$this->{AMQP_CMD_SEND} = 'ecs_amqp_send.py';
$this->{AMQP_CMD_RECV} = 'ecs_amqp_recv.py';
$this->{INBOX_OAUTH_TOKEN_CMD_TIMELIMIT} = "60";
$this->{INBOX_OAUTH_SASL_MECHANISM} = "XOAUTH2 OAUTHBEARER";
$this->{SMTP_OAUTH_TOKEN_CMD_TIMELIMIT} = "60";
$this->{SMTP_OAUTH_SASL_MECHANISM} = "XOAUTH2 OAUTHBEARER";
}
# ----------------------------------------------------------------------
# Do a few sanity checks on the configuration data.
# Returns empty string if successful or error message if error encountered.
sub _validate_config
{
my $this = shift;
my @errors = ();
my @required_attrlist = qw(
MSG_PROC MAIL_MRK THIS_NODE T_CHK T_SCN ERR_FILE LOG_FILE ADM_ADDR
M_MSG_PROC BCK_DIR ACK_THRES
ECS_BIN_DIR ECS_DAT_DIR ECS_DEBUG
NODE_TBL NODE_TBL_LCK T_ADM_REMIND T_MSG_PROC
SMTP_HOST SMTP_DOMAIN SMTP_TIMEOUT SMTP_DEBUG SMTP_FROM
INBOX_PROTOCOL INBOX_HOST INBOX_TIMEOUT INBOX_DEBUG
INBOX_MAX_MSG_SIZE
MSG_PART_SIZE_DFLT
);
# check for required values that are undefined
for my $attr (@required_attrlist)
{
push(@errors, "$attr not defined.")
unless exists($this->{$attr});
}
# validate INBOX_PROTOCOL
# username/password not needed for DIRECTORY inbox
if($this->{INBOX_PROTOCOL} !~ /DIRECTORY/i and not exists($this->{INBOX_OAUTH_TOKEN_CMD}))
{
for my $attr (qw( INBOX_USERNAME INBOX_PASSWORD))
{
push(@errors, "$attr not defined.")
unless exists($this->{$attr});
}
}
if(exists $this->{INBOX_OAUTH_TOKEN_CMD}) {
for my $attr (qw(INBOX_USERNAME
INBOX_OAUTH_TOKEN_CMD_TIMELIMIT
INBOX_OAUTH_SASL_MECHANISM))
{
push(@errors, "$attr not defined.")
unless exists($this->{$attr});
}
}
( run in 1.033 second using v1.01-cache-2.11-cpan-39bf76dae61 )