aboutsummaryrefslogtreecommitdiff
path: root/mflib/poll.mf
diff options
context:
space:
mode:
Diffstat (limited to 'mflib/poll.mf')
-rw-r--r--mflib/poll.mf31
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

Return to:

Send suggestions and report system problems to the System administrator.