aboutsummaryrefslogtreecommitdiff
path: root/mfd/callout.c
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2009-11-21 23:13:13 +0200
committerSergey Poznyakoff <gray@gnu.org.ua>2009-11-21 23:13:13 +0200
commit7f4dfb88f23a14f0b9603e648d4a1a459a6f26a3 (patch)
tree2beb9dee6a3a93130bd7f783a62afa20ed14e853 /mfd/callout.c
parentd20b648b02aa1f8caf9975a116c54e05d67d1c39 (diff)
downloadmailfromd-7f4dfb88f23a14f0b9603e648d4a1a459a6f26a3.tar.gz
mailfromd-7f4dfb88f23a14f0b9603e648d4a1a459a6f26a3.tar.bz2
Use callout resolver to handle timed-out callouts.mtax-cleanup
* mfd/savclt.c: New file. * mfd/Makefile.am (mailfromd_SOURCES): Add savclt.c * mfd/callout.c (transcript): Get ID as 1st arg. Remove static qualifier. All callers updated. * mfd/engine.c (method_strict) (method_standard): If callout returned mf_temp_failure, try to pass the task to the callout server, if one is defined. * mfd/mailfromd.h (transcript) (schedule_callout): New protos. (callout_server_sa, callout_server_sa_len): New externs. * mfd/main.c (force_remove): Initialize to 0 (see srvman.c) (server_config_stmt): New statements single-process and reuseaddr. (add_legacy_milter_port, server_section_parser): Pass flags to mfd_server_new. (mf_cfg_param): New statement `callout-url'. * mfd/savsrv.c (MF_SOURCE_NAME): Fixed. (verify, callout_session_server): Set proctitle. (callout_session_server): Fix memory leak. * mfd/srvman.c (struct mfd_server): New member `flags'. (mfd_server_new): Take flags as 4th argument. (server_run): Use flags to set single-user and reuseaddr modes. * mfd/srvman.h (SRV_SINGLE_PROCESS) (SRV_KEEP_EXISTING): New defines. (mfd_server_new): Change signature. (srvman_url_to_sockaddr): New proto.
Diffstat (limited to 'mfd/callout.c')
-rw-r--r--mfd/callout.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/mfd/callout.c b/mfd/callout.c
index c028838e..acecb26f 100644
--- a/mfd/callout.c
+++ b/mfd/callout.c
@@ -129,8 +129,8 @@ smtp_io_free(struct smtp_io_data *iop)
free(iop);
}
-static void
-transcript(struct smtp_io_data *io, char *prefix, const char *msg)
+void
+transcript(const char *id, char *prefix, const char *msg)
{
if (do_transcript) {
int len = strlen(msg);
@@ -141,7 +141,7 @@ transcript(struct smtp_io_data *io, char *prefix, const char *msg)
}
if (len)
logmsg(LOG_INFO, "%s: %s %*.*s",
- io->id,
+ id,
prefix, len, len, msg);
}
}
@@ -216,7 +216,7 @@ smtp_send(struct smtp_io_data *iop, const char *command)
init_timeout_ctl (&tctl, io_timeout);
iop->reply = NULL; /* Clear reply for logging purposes */
- transcript(iop, "SEND:", command);
+ transcript(iop->id, "SEND:", command);
do {
size_t nb;
int rc;
@@ -343,7 +343,7 @@ smtp_recv(struct smtp_io_data *iop, enum smtp_timeout to)
int rc = smtp_recvline(iop, to);
if (rc)
return -1;
- transcript(iop, "RECV:", iop->reply);
+ transcript(iop->id, "RECV:", iop->reply);
code = strtoul(iop->reply, &p, 0);
if (p - iop->reply != 3 || (*p != '-' && *p != ' ')) {
mu_error(_("unexpected reply from server: %s"),

Return to:

Send suggestions and report system problems to the System administrator.