projects
/
exim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Bug 1216: Add -M (related) to exigrep.
[exim.git]
/
src
/
src
/
exim.c
diff --git
a/src/src/exim.c
b/src/src/exim.c
index fa0cf4940d8420c04484f72d107f583170333e4b..85a7c812c34ceb65caf87e9a73f772292fac027d 100644
(file)
--- a/
src/src/exim.c
+++ b/
src/src/exim.c
@@
-267,6
+267,10
@@
will wait for ever, so we panic in this instance. (There was a case of this
when a bug in a function that calls milliwait() caused it to pass invalid data.
That's when I added the check. :-)
when a bug in a function that calls milliwait() caused it to pass invalid data.
That's when I added the check. :-)
+We assume it to be not worth sleeping for under 100us; this value will
+require revisiting as hardware advances. This avoids the issue of
+a zero-valued timer setting meaning "never fire".
+
Argument: an itimerval structure containing the interval
Returns: nothing
*/
Argument: an itimerval structure containing the interval
Returns: nothing
*/
@@
-276,6
+280,9
@@
milliwait(struct itimerval *itval)
{
sigset_t sigmask;
sigset_t old_sigmask;
{
sigset_t sigmask;
sigset_t old_sigmask;
+
+if (itval->it_value.tv_usec < 100 && itval->it_value.tv_sec == 0)
+ return;
(void)sigemptyset(&sigmask); /* Empty mask */
(void)sigaddset(&sigmask, SIGALRM); /* Add SIGALRM */
(void)sigprocmask(SIG_BLOCK, &sigmask, &old_sigmask); /* Block SIGALRM */
(void)sigemptyset(&sigmask); /* Empty mask */
(void)sigaddset(&sigmask, SIGALRM); /* Add SIGALRM */
(void)sigprocmask(SIG_BLOCK, &sigmask, &old_sigmask); /* Block SIGALRM */
@@
-399,9
+406,10
@@
if (exim_tvcmp(&now_tv, then_tv) <= 0)
if (!running_in_test_harness)
{
debug_printf("tick check: %lu.%06lu %lu.%06lu\n",
if (!running_in_test_harness)
{
debug_printf("tick check: %lu.%06lu %lu.%06lu\n",
- then_tv->tv_sec, then_tv->tv_usec, now_tv.tv_sec, now_tv.tv_usec);
+ then_tv->tv_sec, (long) then_tv->tv_usec,
+ now_tv.tv_sec, (long) now_tv.tv_usec);
debug_printf("waiting %lu.%06lu\n", itval.it_value.tv_sec,
debug_printf("waiting %lu.%06lu\n", itval.it_value.tv_sec,
- itval.it_value.tv_usec);
+
(long)
itval.it_value.tv_usec);
}
}
}
}
@@
-804,6
+812,12
@@
fprintf(f, "Support for:");
#ifdef WITH_OLD_DEMIME
fprintf(f, " Old_Demime");
#endif
#ifdef WITH_OLD_DEMIME
fprintf(f, " Old_Demime");
#endif
+#ifndef DISABLE_PRDR
+ fprintf(f, " PRDR");
+#endif
+#ifndef DISABLE_OCSP
+ fprintf(f, " OCSP");
+#endif
#ifdef EXPERIMENTAL_SPF
fprintf(f, " Experimental_SPF");
#endif
#ifdef EXPERIMENTAL_SPF
fprintf(f, " Experimental_SPF");
#endif
@@
-813,18
+827,15
@@
fprintf(f, "Support for:");
#ifdef EXPERIMENTAL_BRIGHTMAIL
fprintf(f, " Experimental_Brightmail");
#endif
#ifdef EXPERIMENTAL_BRIGHTMAIL
fprintf(f, " Experimental_Brightmail");
#endif
+#ifdef EXPERIMENTAL_DANE
+ fprintf(f, " Experimental_DANE");
+#endif
#ifdef EXPERIMENTAL_DCC
fprintf(f, " Experimental_DCC");
#endif
#ifdef EXPERIMENTAL_DMARC
fprintf(f, " Experimental_DMARC");
#endif
#ifdef EXPERIMENTAL_DCC
fprintf(f, " Experimental_DCC");
#endif
#ifdef EXPERIMENTAL_DMARC
fprintf(f, " Experimental_DMARC");
#endif
-#ifdef EXPERIMENTAL_OCSP
- fprintf(f, " Experimental_OCSP");
-#endif
-#ifdef EXPERIMENTAL_PRDR
- fprintf(f, " Experimental_PRDR");
-#endif
#ifdef EXPERIMENTAL_PROXY
fprintf(f, " Experimental_Proxy");
#endif
#ifdef EXPERIMENTAL_PROXY
fprintf(f, " Experimental_Proxy");
#endif
@@
-834,6
+845,12
@@
fprintf(f, "Support for:");
#ifdef EXPERIMENTAL_REDIS
fprintf(f, " Experimental_Redis");
#endif
#ifdef EXPERIMENTAL_REDIS
fprintf(f, " Experimental_Redis");
#endif
+#ifdef EXPERIMENTAL_CERTNAMES
+ fprintf(f, " Experimental_Certnames");
+#endif
+#ifdef EXPERIMENTAL_DSN
+ fprintf(f, " Experimental_DSN");
+#endif
fprintf(f, "\n");
fprintf(f, "Lookups (built-in):");
fprintf(f, "\n");
fprintf(f, "Lookups (built-in):");
@@
-2656,6
+2673,16
@@
for (i = 1; i < argc; i++)
break;
}
break;
}
+ #ifdef EXPERIMENTAL_DSN
+ /* -MCD: set the smtp_use_dsn flag; this indicates that the host
+ that exim is connected to supports the esmtp extension DSN */
+ else if (strcmp(argrest, "CD") == 0)
+ {
+ smtp_use_dsn = TRUE;
+ break;
+ }
+ #endif
+
/* -MCP: set the smtp_use_pipelining flag; this is useful only when
it preceded -MC (see above) */
/* -MCP: set the smtp_use_pipelining flag; this is useful only when
it preceded -MC (see above) */