diff options
Diffstat (limited to 'mflib/poll.mf')
-rw-r--r-- | mflib/poll.mf | 31 |
1 files changed, 23 insertions, 8 deletions
diff --git a/mflib/poll.mf b/mflib/poll.mf index d05a6f8b..2ce6ad73 100644 --- a/mflib/poll.mf +++ b/mflib/poll.mf @@ -17,32 +17,47 @@ module 'poll'. require 'callout' +static func __make_extra_arg(string arg, string ehlo, string mailfrom) + returns string +do + if ehlo != "" + set arg arg . " EHLO=%ehlo" + fi + if mailfrom != "" + set arg arg . " MAILFROM=%mailfrom" + fi + return arg +done + func _pollhost(string ip, string email, string domain, string mailfrom) returns number do - __callout_open_default() - return callout_do(__callout_fd, email, "MODE=hostonly HOST=%ip EHLO=%domain MAILFROM=%mailfrom") + return callout_do(__callout_open_default(), email, + __make_extra_arg("MODE=hostonly HOST=%ip", + domain, mailfrom)) done func _pollmx (string domain, string email, string ehlo, string mailfrom) returns number do - __callout_open_default() - return callout_do(__callout_fd, email, "MODE=mxonly HOST=%domain EHLO=%ehlo MAILFROM=%mailfrom") + return callout_do(__callout_open_default(), email, + __make_extra_arg("MODE=mxonly HOST=%domain", + ehlo, mailfrom)) done func stdpoll(string email, string ehlo, string mailfrom) returns number do - __callout_open_default() - return callout_do(__callout_fd, email, "MODE=mxfirst EHLO=%ehlo MAILFROM=%mailfrom") + return callout_do(__callout_open_default(), email, + __make_extra_arg("MODE=mxfirst", ehlo, mailfrom)) done func strictpoll(string host, string email, string ehlo, string mailfrom) returns number do - __callout_open_default() - return callout_do(__callout_fd, email, "MODE=hostfirst EHLO=%ehlo MAILFROM=%mailfrom") + return callout_do(__callout_open_default(), email, + __make_extra_arg("MODE=hostfirst HOST=%host", + ehlo, mailfrom)) done |