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 @@ -19,2 +19,14 @@ 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) @@ -22,4 +34,5 @@ func _pollhost(string ip, string email, string domain, string mailfrom) 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 @@ -29,4 +42,5 @@ func _pollmx (string domain, string email, string ehlo, string mailfrom) 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 @@ -36,4 +50,4 @@ func stdpoll(string email, string ehlo, string mailfrom) 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 @@ -43,4 +57,5 @@ func strictpoll(string host, string email, string ehlo, string mailfrom) 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 |