forked from drew/smtprelay
Move compilation of allowed_recipients to ConfigLoad()
This has several benefits: - Configuration errors are caught at startup rather than upon a connection - recipientChecker() has less work to do for each connection
This commit is contained in:
31
config.go
31
config.go
@@ -28,7 +28,8 @@ var (
|
||||
allowedNets = []*net.IPNet{}
|
||||
allowedSenderStr = flag.String("allowed_sender", "", "Regular expression for valid FROM EMail addresses")
|
||||
allowedSender *regexp.Regexp
|
||||
allowedRecipients = flag.String("allowed_recipients", "", "Regular expression for valid TO EMail addresses")
|
||||
allowedRecipStr = flag.String("allowed_recipients", "", "Regular expression for valid TO EMail addresses")
|
||||
allowedRecipients *regexp.Regexp
|
||||
allowedUsers = flag.String("allowed_users", "", "Path to file with valid users/passwords")
|
||||
remoteHost = flag.String("remote_host", "", "Outgoing SMTP server")
|
||||
remoteUser = flag.String("remote_user", "", "Username for authentication on outgoing SMTP server")
|
||||
@@ -61,17 +62,25 @@ func setupAllowedNetworks() {
|
||||
}
|
||||
}
|
||||
|
||||
func setupAllowedSender() {
|
||||
if (*allowedSenderStr == "") {
|
||||
return
|
||||
func setupAllowedPatterns() {
|
||||
var err error
|
||||
|
||||
if (*allowedSenderStr != "") {
|
||||
allowedSender, err = regexp.Compile(*allowedSenderStr)
|
||||
if err != nil {
|
||||
log.WithField("allowed_sender", *allowedSenderStr).
|
||||
WithError(err).
|
||||
Fatal("allowed_sender pattern invalid")
|
||||
}
|
||||
}
|
||||
|
||||
var err error
|
||||
allowedSender, err = regexp.Compile(*allowedSenderStr)
|
||||
if err != nil {
|
||||
log.WithField("allowed_sender", *allowedSenderStr).
|
||||
WithError(err).
|
||||
Fatal("allowed_sender pattern invalid")
|
||||
if (*allowedRecipStr != "") {
|
||||
allowedRecipients, err = regexp.Compile(*allowedRecipStr)
|
||||
if err != nil {
|
||||
log.WithField("allowed_recipients", *allowedRecipStr).
|
||||
WithError(err).
|
||||
Fatal("allowed_recipients pattern invalid")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -86,5 +95,5 @@ func ConfigLoad() {
|
||||
}
|
||||
|
||||
setupAllowedNetworks()
|
||||
setupAllowedSender()
|
||||
setupAllowedPatterns()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user