-
Notifications
You must be signed in to change notification settings - Fork 124
Move remaining config option parsing to ConfigLoad() #19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This has several benefits: - Configuration errors are caught at startup rather than upon a connection - senderChecker() has less work to do for each connection
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 has several benefits: - Configuration errors are caught at startup rather than upon a connection - mailHandler() has less work to do for each connection Rather than relying on remote_user and remote_pass to control whether authentication is used, introduce an explicit "none" type for remote_auth, and make that the default. (This is effectively the same default behavior since remote_user and remote_pass default to empty.) Also, we are in a better position to more thoroughly check for configuration errors or mismatches: - If remote_auth is given, remote_user and remote_pass are required. - If remote_auth is given, remote_host is also required (because it makes no sense to say we're going to authenticate if we have no server to which to authenticate.) - If remote_user or remote_pass are given, remote_auth cannot be "none".
797ad12
to
22ef0c2
Compare
Sorry that it took me so long to come back to this but my dayjob is keeping me extremely busy these days. |
No worries! Thanks for Do you still want to be the one to click "Merge" after approving a PR? I'm fine with that, but just want to make sure we're on the same page with procedure. |
Move remaining parsing of config options from server callbacks to
ConfigLoad()
:allowed_sender
regex compilationallowed_recipients
regex compilationremote_auth
,remote_user
,remote_password
)With this change, we can catch configuration errors during startup and avoid an error case during connection handling.
This also introduces a
none
type forremote_auth
, and makes it the default. This is a more explicit equivalent of an empty username/password before this change.This was identified during review of #13 and implementation of #15.