this is in the daemon mainline, only fast expansions (such as inline address
checks) should be used. The documentation is full of warnings. */
+GET_OPTION("smtp_accept_max_per_host");
if (smtp_accept_max_per_host)
{
- uschar *expanded = expand_string(smtp_accept_max_per_host);
+ uschar * expanded = expand_string(smtp_accept_max_per_host);
if (!expanded)
{
if (!f.expand_string_forcedfail)
/* For speed, interpret a decimal number inline here */
else
{
- uschar *s = expanded;
+ uschar * s = expanded;
while (isdigit(*s))
max_for_this_host = max_for_this_host * 10 + *s++ - '0';
if (*s)
}
}
-/* If we have fewer connections than max_for_this_host, we can skip the tedious
-per host_address checks. Note that at this stage smtp_accept_count contains the
-count of *other* connections, not including this one. */
+/* If we have fewer total connections than max_for_this_host, we can skip the
+tedious per host_address checks. Note that at this stage smtp_accept_count
+contains the count of *other* connections, not including this one. */
if (max_for_this_host > 0 && smtp_accept_count >= max_for_this_host)
{
likely what it depends on.) */
smtp_active_hostname = primary_hostname;
+ GET_OPTION("smtp_active_hostname");
if (raw_active_hostname)
{
uschar * nah = expand_string(raw_active_hostname);
smtp_slots[i] = empty_smtp_slot;
if (--smtp_accept_count < 0) smtp_accept_count = 0;
DEBUG(D_any) debug_printf("%d SMTP accept process%s now running\n",
- smtp_accept_count, (smtp_accept_count == 1)? "" : "es");
+ smtp_accept_count, smtp_accept_count == 1 ? "" : "es");
break;
}
if (i < smtp_accept_max) continue; /* Found an accepting process */
ssize_t
daemon_notifier_sockname(struct sockaddr_un * sup)
{
+GET_OPTION("notifier_socket");
#ifdef EXIM_HAVE_ABSTRACT_UNIX_SOCKETS
sup->sun_path[0] = 0; /* Abstract local socket addr - Linux-specific? */
return offsetof(struct sockaddr_un, sun_path) + 1
}
else
#endif
- /* Normal periodic runL in order of run priority, find the first queue
+ /* Normal periodic run: in order of run priority, find the first queue
for which we can start a runner */
for (q = qrunners; q; q = q->next)
int local_queue_run_max = 0;
if (is_multiple_qrun())
-
+ {
/* Nuber of runner-tracking structs needed: If the option queue_run_max has
no expandable elements then it is the overall maximum; else we assume it
depends on the queue name, and add them up to get the maximum.
Evaluate both that and the individual limits. */
+ GET_OPTION("queue_run_max");
if (Ustrchr(queue_run_max, '$') != NULL)
{
for (qrunner * q = qrunners; q; q = q->next)
for (qrunner * q = qrunners; q; q = q->next)
q->run_max = local_queue_run_max;
}
+ }
process_purpose = US"daemon";