[diff] src/usr.sbin/smtpd: change process names

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
13 messages Options
Reply | Threaded
Open this post in threaded view
|

[diff] src/usr.sbin/smtpd: change process names

Gilles Chehade-7
Hello,

A very long time ago, smtpd had several more processes which then got factored
into a single one. We couldn't find a decent name back then but since a hacker
had requested a pony from me I temporarily named the process "pony express" as
it was in charge of delivering mail. Later, reyk improved the joke as he named
the privsep crypto process klondike.

A few years ago when the config was reworked, we used the term "dispatcher" to
identify if a mail was dispatched to the mda or mta layer.

Unless someone is very emotionally attached to the initial joke, I suggest the
pony express process be renamed to dispatcher and klondike to crypto. The goal
is not just to end the joke but also to avoid a process name with a space, and
also because it makes it less obvious what these processes do.


diff --git a/usr.sbin/smtpd/smtpd.c b/usr.sbin/smtpd/smtpd.c
index 854c2ab0cb6..b364b22e472 100644
--- a/usr.sbin/smtpd/smtpd.c
+++ b/usr.sbin/smtpd/smtpd.c
@@ -1913,9 +1913,9 @@ proc_title(enum smtp_proc_type proc)
  case PROC_SCHEDULER:
  return "scheduler";
  case PROC_PONY:
- return "pony express";
+ return "dispatcher";
  case PROC_CA:
- return "klondike";
+ return "crypto";
  case PROC_CLIENT:
  return "client";
  case PROC_PROCESSOR:

Reply | Threaded
Open this post in threaded view
|

Re: [diff] src/usr.sbin/smtpd: change process names

Martijn van Duren-5
I'm in favour of this change, since I like proper nomenclature.
But I think you should push this one to its logical conclusion and also
rename the enum and potential other pony/klondike references, because
with your diff the naming is inconsistent, which is even more confusing.

martijn@

On Sat, 2020-12-19 at 22:06 +0000, [hidden email] wrote:

> Hello,
>
> A very long time ago, smtpd had several more processes which then got factored
> into a single one. We couldn't find a decent name back then but since a hacker
> had requested a pony from me I temporarily named the process "pony express" as
> it was in charge of delivering mail. Later, reyk improved the joke as he named
> the privsep crypto process klondike.
>
> A few years ago when the config was reworked, we used the term "dispatcher" to
> identify if a mail was dispatched to the mda or mta layer.
>
> Unless someone is very emotionally attached to the initial joke, I suggest the
> pony express process be renamed to dispatcher and klondike to crypto. The goal
> is not just to end the joke but also to avoid a process name with a space, and
> also because it makes it less obvious what these processes do.
>
>
> diff --git a/usr.sbin/smtpd/smtpd.c b/usr.sbin/smtpd/smtpd.c
> index 854c2ab0cb6..b364b22e472 100644
> --- a/usr.sbin/smtpd/smtpd.c
> +++ b/usr.sbin/smtpd/smtpd.c
> @@ -1913,9 +1913,9 @@ proc_title(enum smtp_proc_type proc)
>         case PROC_SCHEDULER:
>                 return "scheduler";
>         case PROC_PONY:
> -               return "pony express";
> +               return "dispatcher";
>         case PROC_CA:
> -               return "klondike";
> +               return "crypto";
>         case PROC_CLIENT:
>                 return "client";
>         case PROC_PROCESSOR:
>


Reply | Threaded
Open this post in threaded view
|

Re: [diff] src/usr.sbin/smtpd: change process names

Gilles Chehade-7
I agree but I thought this should be done in a second time as it is quite
invasive and not required for the change to be visible outside the daemon


December 19, 2020 11:13 PM, "Martijn van Duren" <[hidden email]> wrote:

> I'm in favour of this change, since I like proper nomenclature.
> But I think you should push this one to its logical conclusion and also
> rename the enum and potential other pony/klondike references, because
> with your diff the naming is inconsistent, which is even more confusing.
>
> martijn@
>
> On Sat, 2020-12-19 at 22:06 +0000, [hidden email] wrote:
>
>> Hello,
>>
>> A very long time ago, smtpd had several more processes which then got factored
>> into a single one. We couldn't find a decent name back then but since a hacker
>> had requested a pony from me I temporarily named the process "pony express" as
>> it was in charge of delivering mail. Later, reyk improved the joke as he named
>> the privsep crypto process klondike.
>>
>> A few years ago when the config was reworked, we used the term "dispatcher" to
>> identify if a mail was dispatched to the mda or mta layer.
>>
>> Unless someone is very emotionally attached to the initial joke, I suggest the
>> pony express process be renamed to dispatcher and klondike to crypto. The goal
>> is not just to end the joke but also to avoid a process name with a space, and
>> also because it makes it less obvious what these processes do.
>>
>> diff --git a/usr.sbin/smtpd/smtpd.c b/usr.sbin/smtpd/smtpd.c
>> index 854c2ab0cb6..b364b22e472 100644
>> --- a/usr.sbin/smtpd/smtpd.c
>> +++ b/usr.sbin/smtpd/smtpd.c
>> @@ -1913,9 +1913,9 @@ proc_title(enum smtp_proc_type proc)
>> case PROC_SCHEDULER:
>> return "scheduler";
>> case PROC_PONY:
>> -               return "pony express";
>> +               return "dispatcher";
>> case PROC_CA:
>> -               return "klondike";
>> +               return "crypto";
>> case PROC_CLIENT:
>> return "client";
>> case PROC_PROCESSOR:

Reply | Threaded
Open this post in threaded view
|

Re: [diff] src/usr.sbin/smtpd: change process names

Martijn van Duren-5
Personally I'd rather wait to keep the names in sync, especially since
it's an easy 2 line diff that can easily be incorperated in the bigger
thing. But it's not something I'm going to loose sleep over if others
thing it can go in right now.

On Sat, 2020-12-19 at 22:22 +0000, [hidden email] wrote:

> I agree but I thought this should be done in a second time as it is quite
> invasive and not required for the change to be visible outside the daemon
>
>
> December 19, 2020 11:13 PM, "Martijn van Duren" <[hidden email]> wrote:
>
> > I'm in favour of this change, since I like proper nomenclature.
> > But I think you should push this one to its logical conclusion and also
> > rename the enum and potential other pony/klondike references, because
> > with your diff the naming is inconsistent, which is even more confusing.
> >
> > martijn@
> >
> > On Sat, 2020-12-19 at 22:06 +0000, [hidden email] wrote:
> >
> > > Hello,
> > >
> > > A very long time ago, smtpd had several more processes which then got factored
> > > into a single one. We couldn't find a decent name back then but since a hacker
> > > had requested a pony from me I temporarily named the process "pony express" as
> > > it was in charge of delivering mail. Later, reyk improved the joke as he named
> > > the privsep crypto process klondike.
> > >
> > > A few years ago when the config was reworked, we used the term "dispatcher" to
> > > identify if a mail was dispatched to the mda or mta layer.
> > >
> > > Unless someone is very emotionally attached to the initial joke, I suggest the
> > > pony express process be renamed to dispatcher and klondike to crypto. The goal
> > > is not just to end the joke but also to avoid a process name with a space, and
> > > also because it makes it less obvious what these processes do.
> > >
> > > diff --git a/usr.sbin/smtpd/smtpd.c b/usr.sbin/smtpd/smtpd.c
> > > index 854c2ab0cb6..b364b22e472 100644
> > > --- a/usr.sbin/smtpd/smtpd.c
> > > +++ b/usr.sbin/smtpd/smtpd.c
> > > @@ -1913,9 +1913,9 @@ proc_title(enum smtp_proc_type proc)
> > > case PROC_SCHEDULER:
> > > return "scheduler";
> > > case PROC_PONY:
> > > -               return "pony express";
> > > +               return "dispatcher";
> > > case PROC_CA:
> > > -               return "klondike";
> > > +               return "crypto";
> > > case PROC_CLIENT:
> > > return "client";
> > > case PROC_PROCESSOR:


Reply | Threaded
Open this post in threaded view
|

Re: [diff] src/usr.sbin/smtpd: change process names

Gilles Chehade-7
December 19, 2020 11:26 PM, "Martijn van Duren" <[hidden email]> wrote:

> Personally I'd rather wait to keep the names in sync, especially since
> it's an easy 2 line diff that can easily be incorperated in the bigger
> thing. But it's not something I'm going to loose sleep over if others
> thing it can go in right now.
>

Fair enough :-)

Below is the diff that changes all references to pony into dispatcher.

I didn't rename pony.c to dispatcher.c as this would break the diff, but if this gets
committed I'll submit a diff for the rename + Makefile bit



diff --git a/usr.sbin/smtpd/bounce.c b/usr.sbin/smtpd/bounce.c
index e6fc55780a1..455da6ff8b1 100644
--- a/usr.sbin/smtpd/bounce.c
+++ b/usr.sbin/smtpd/bounce.c
@@ -290,7 +290,7 @@ bounce_drain()
  }
 
  log_debug("debug: bounce: requesting new enqueue socket...");
- m_compose(p_pony, IMSG_QUEUE_SMTP_SESSION, 0, 0, -1, NULL, 0);
+ m_compose(p_dispatcher, IMSG_QUEUE_SMTP_SESSION, 0, 0, -1, NULL, 0);
 
  running += 1;
  }
diff --git a/usr.sbin/smtpd/ca.c b/usr.sbin/smtpd/ca.c
index fdc177e28b3..0299ee6cecc 100644
--- a/usr.sbin/smtpd/ca.c
+++ b/usr.sbin/smtpd/ca.c
@@ -110,10 +110,10 @@ ca(void)
 
  config_peer(PROC_CONTROL);
  config_peer(PROC_PARENT);
- config_peer(PROC_PONY);
+ config_peer(PROC_DISPATCHER);
 
  /* Ignore them until we get our config */
- mproc_disable(p_pony);
+ mproc_disable(p_dispatcher);
 
  if (pledge("stdio", NULL) == -1)
  err(1, "pledge");
@@ -246,7 +246,7 @@ ca_imsg(struct mproc *p, struct imsg *imsg)
  ca_init();
 
  /* Start fulfilling requests */
- mproc_enable(p_pony);
+ mproc_enable(p_dispatcher);
  return;
 
  case IMSG_CTL_VERBOSE:
@@ -385,7 +385,7 @@ rsae_send_imsg(int flen, const unsigned char *from, unsigned char *to,
  if (n == 0)
  break;
 
- log_imsg(PROC_PONY, PROC_CA, &imsg);
+ log_imsg(PROC_DISPATCHER, PROC_CA, &imsg);
 
  switch (imsg.hdr.type) {
  case IMSG_CA_RSA_PRIVENC:
@@ -393,7 +393,7 @@ rsae_send_imsg(int flen, const unsigned char *from, unsigned char *to,
  break;
  default:
  /* Another imsg is queued up in the buffer */
- pony_imsg(p_ca, &imsg);
+ dispatcher_imsg(p_ca, &imsg);
  imsg_free(&imsg);
  continue;
  }
@@ -569,14 +569,14 @@ ecdsae_send_enc_imsg(const unsigned char *dgst, int dgst_len,
  if (n == 0)
  break;
 
- log_imsg(PROC_PONY, PROC_CA, &imsg);
+ log_imsg(PROC_DISPATCHER, PROC_CA, &imsg);
 
  switch (imsg.hdr.type) {
  case IMSG_CA_ECDSA_SIGN:
  break;
  default:
  /* Another imsg is queued up in the buffer */
- pony_imsg(p_ca, &imsg);
+ dispatcher_imsg(p_ca, &imsg);
  imsg_free(&imsg);
  continue;
  }
diff --git a/usr.sbin/smtpd/config.c b/usr.sbin/smtpd/config.c
index 529420ac0f2..2882349ceba 100644
--- a/usr.sbin/smtpd/config.c
+++ b/usr.sbin/smtpd/config.c
@@ -325,8 +325,8 @@ config_peer(enum smtp_proc_type proc)
  p = p_queue;
  else if (proc == PROC_SCHEDULER)
  p = p_scheduler;
- else if (proc == PROC_PONY)
- p = p_pony;
+ else if (proc == PROC_DISPATCHER)
+ p = p_dispatcher;
  else if (proc == PROC_CA)
  p = p_ca;
  else
diff --git a/usr.sbin/smtpd/control.c b/usr.sbin/smtpd/control.c
index 6ea52b62cfb..e9e19cd1870 100644
--- a/usr.sbin/smtpd/control.c
+++ b/usr.sbin/smtpd/control.c
@@ -248,7 +248,7 @@ control(void)
  config_peer(PROC_QUEUE);
  config_peer(PROC_PARENT);
  config_peer(PROC_LKA);
- config_peer(PROC_PONY);
+ config_peer(PROC_DISPATCHER);
  config_peer(PROC_CA);
 
  control_listen();
@@ -450,7 +450,7 @@ control_dispatch_ext(struct mproc *p, struct imsg *imsg)
  m_compose(p, IMSG_CTL_FAIL, 0, 0, -1, NULL, 0);
  return;
  }
- m_compose(p_pony, IMSG_CTL_SMTP_SESSION, c->id, 0, -1,
+ m_compose(p_dispatcher, IMSG_CTL_SMTP_SESSION, c->id, 0, -1,
     &c->euid, sizeof(c->euid));
  return;
 
@@ -597,7 +597,7 @@ control_dispatch_ext(struct mproc *p, struct imsg *imsg)
  }
  log_info("info: smtp paused");
  env->sc_flags |= SMTPD_SMTP_PAUSED;
- m_compose(p_pony, IMSG_CTL_PAUSE_SMTP, 0, 0, -1, NULL, 0);
+ m_compose(p_dispatcher, IMSG_CTL_PAUSE_SMTP, 0, 0, -1, NULL, 0);
  m_compose(p, IMSG_CTL_OK, 0, 0, -1, NULL, 0);
  return;
 
@@ -647,7 +647,7 @@ control_dispatch_ext(struct mproc *p, struct imsg *imsg)
  }
  log_info("info: smtp resumed");
  env->sc_flags &= ~SMTPD_SMTP_PAUSED;
- m_forward(p_pony, imsg);
+ m_forward(p_dispatcher, imsg);
  m_compose(p, IMSG_CTL_OK, 0, 0, -1, NULL, 0);
  return;
 
@@ -655,7 +655,7 @@ control_dispatch_ext(struct mproc *p, struct imsg *imsg)
  if (c->euid)
  goto badcred;
 
- m_forward(p_pony, imsg);
+ m_forward(p_dispatcher, imsg);
  m_compose(p, IMSG_CTL_OK, 0, 0, -1, NULL, 0);
  return;
 
@@ -682,7 +682,7 @@ control_dispatch_ext(struct mproc *p, struct imsg *imsg)
  goto badcred;
 
  imsg->hdr.peerid = c->id;
- m_forward(p_pony, imsg);
+ m_forward(p_dispatcher, imsg);
  return;
 
  case IMSG_CTL_SHOW_STATUS:
@@ -701,10 +701,10 @@ control_dispatch_ext(struct mproc *p, struct imsg *imsg)
  if (imsg->hdr.len - IMSG_HEADER_SIZE <= sizeof(ss))
  goto invalid;
  memmove(&ss, imsg->data, sizeof(ss));
- m_create(p_pony, imsg->hdr.type, c->id, 0, -1);
- m_add_sockaddr(p_pony, (struct sockaddr *)&ss);
- m_add_string(p_pony, (char *)imsg->data + sizeof(ss));
- m_close(p_pony);
+ m_create(p_dispatcher, imsg->hdr.type, c->id, 0, -1);
+ m_add_sockaddr(p_dispatcher, (struct sockaddr *)&ss);
+ m_add_string(p_dispatcher, (char *)imsg->data + sizeof(ss));
+ m_close(p_dispatcher);
  return;
 
  case IMSG_CTL_SCHEDULE:
@@ -780,9 +780,9 @@ control_broadcast_verbose(int msg, int v)
  m_add_int(p_lka, v);
  m_close(p_lka);
 
- m_create(p_pony, msg, 0, 0, -1);
- m_add_int(p_pony, v);
- m_close(p_pony);
+ m_create(p_dispatcher, msg, 0, 0, -1);
+ m_add_int(p_dispatcher, v);
+ m_close(p_dispatcher);
 
  m_create(p_queue, msg, 0, 0, -1);
  m_add_int(p_queue, v);
diff --git a/usr.sbin/smtpd/lka.c b/usr.sbin/smtpd/lka.c
index aa9f233536c..24a748e9de4 100644
--- a/usr.sbin/smtpd/lka.c
+++ b/usr.sbin/smtpd/lka.c
@@ -334,7 +334,7 @@ lka_imsg(struct mproc *p, struct imsg *imsg)
 
  case IMSG_LKA_AUTHENTICATE:
  imsg->hdr.type = IMSG_SMTP_AUTHENTICATE;
- m_forward(p_pony, imsg);
+ m_forward(p_dispatcher, imsg);
  return;
 
  case IMSG_CTL_VERBOSE:
@@ -701,10 +701,10 @@ lka(void)
  config_peer(PROC_PARENT);
  config_peer(PROC_QUEUE);
  config_peer(PROC_CONTROL);
- config_peer(PROC_PONY);
+ config_peer(PROC_DISPATCHER);
 
  /* Ignore them until we get our config */
- mproc_disable(p_pony);
+ mproc_disable(p_dispatcher);
 
  lka_report_init();
  lka_filter_init();
@@ -729,7 +729,7 @@ proc_timeout(int fd, short event, void *p)
  goto reset;
 
  lka_filter_ready();
- mproc_enable(p_pony);
+ mproc_enable(p_dispatcher);
  return;
 
 reset:
diff --git a/usr.sbin/smtpd/lka_filter.c b/usr.sbin/smtpd/lka_filter.c
index 9891e6140a3..6771d2fe8a6 100644
--- a/usr.sbin/smtpd/lka_filter.c
+++ b/usr.sbin/smtpd/lka_filter.c
@@ -558,10 +558,10 @@ lka_filter_data_begin(uint64_t reqid)
  io_set_callback(fs->io, filter_session_io, fs);
 
 end:
- m_create(p_pony, IMSG_FILTER_SMTP_DATA_BEGIN, 0, 0, fd);
- m_add_id(p_pony, reqid);
- m_add_int(p_pony, fd != -1 ? 1 : 0);
- m_close(p_pony);
+ m_create(p_dispatcher, IMSG_FILTER_SMTP_DATA_BEGIN, 0, 0, fd);
+ m_add_id(p_dispatcher, reqid);
+ m_add_int(p_dispatcher, fd != -1 ? 1 : 0);
+ m_close(p_dispatcher);
  log_trace(TRACE_FILTERS, "%016"PRIx64" filters data-begin fd=%d", reqid, fd);
 }
 
@@ -985,49 +985,49 @@ filter_data_query(struct filter *filter, uint64_t token, uint64_t reqid, const c
 static void
 filter_result_proceed(uint64_t reqid)
 {
- m_create(p_pony, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
- m_add_id(p_pony, reqid);
- m_add_int(p_pony, FILTER_PROCEED);
- m_close(p_pony);
+ m_create(p_dispatcher, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
+ m_add_id(p_dispatcher, reqid);
+ m_add_int(p_dispatcher, FILTER_PROCEED);
+ m_close(p_dispatcher);
 }
 
 static void
 filter_result_junk(uint64_t reqid)
 {
- m_create(p_pony, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
- m_add_id(p_pony, reqid);
- m_add_int(p_pony, FILTER_JUNK);
- m_close(p_pony);
+ m_create(p_dispatcher, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
+ m_add_id(p_dispatcher, reqid);
+ m_add_int(p_dispatcher, FILTER_JUNK);
+ m_close(p_dispatcher);
 }
 
 static void
 filter_result_rewrite(uint64_t reqid, const char *param)
 {
- m_create(p_pony, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
- m_add_id(p_pony, reqid);
- m_add_int(p_pony, FILTER_REWRITE);
- m_add_string(p_pony, param);
- m_close(p_pony);
+ m_create(p_dispatcher, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
+ m_add_id(p_dispatcher, reqid);
+ m_add_int(p_dispatcher, FILTER_REWRITE);
+ m_add_string(p_dispatcher, param);
+ m_close(p_dispatcher);
 }
 
 static void
 filter_result_reject(uint64_t reqid, const char *message)
 {
- m_create(p_pony, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
- m_add_id(p_pony, reqid);
- m_add_int(p_pony, FILTER_REJECT);
- m_add_string(p_pony, message);
- m_close(p_pony);
+ m_create(p_dispatcher, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
+ m_add_id(p_dispatcher, reqid);
+ m_add_int(p_dispatcher, FILTER_REJECT);
+ m_add_string(p_dispatcher, message);
+ m_close(p_dispatcher);
 }
 
 static void
 filter_result_disconnect(uint64_t reqid, const char *message)
 {
- m_create(p_pony, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
- m_add_id(p_pony, reqid);
- m_add_int(p_pony, FILTER_DISCONNECT);
- m_add_string(p_pony, message);
- m_close(p_pony);
+ m_create(p_dispatcher, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
+ m_add_id(p_dispatcher, reqid);
+ m_add_int(p_dispatcher, FILTER_DISCONNECT);
+ m_add_string(p_dispatcher, message);
+ m_close(p_dispatcher);
 }
 
 
diff --git a/usr.sbin/smtpd/lka_session.c b/usr.sbin/smtpd/lka_session.c
index ed1fd36fafd..4eb55c04689 100644
--- a/usr.sbin/smtpd/lka_session.c
+++ b/usr.sbin/smtpd/lka_session.c
@@ -215,20 +215,20 @@ lka_resume(struct lka_session *lks)
  }
     error:
  if (lks->error) {
- m_create(p_pony, IMSG_SMTP_EXPAND_RCPT, 0, 0, -1);
- m_add_id(p_pony, lks->id);
- m_add_int(p_pony, lks->error);
+ m_create(p_dispatcher, IMSG_SMTP_EXPAND_RCPT, 0, 0, -1);
+ m_add_id(p_dispatcher, lks->id);
+ m_add_int(p_dispatcher, lks->error);
 
  if (lks->errormsg)
- m_add_string(p_pony, lks->errormsg);
+ m_add_string(p_dispatcher, lks->errormsg);
  else {
  if (lks->error == LKA_PERMFAIL)
- m_add_string(p_pony, "550 Invalid recipient");
+ m_add_string(p_dispatcher, "550 Invalid recipient");
  else if (lks->error == LKA_TEMPFAIL)
- m_add_string(p_pony, "451 Temporary failure");
+ m_add_string(p_dispatcher, "451 Temporary failure");
  }
 
- m_close(p_pony);
+ m_close(p_dispatcher);
  while ((ep = TAILQ_FIRST(&lks->deliverylist)) != NULL) {
  TAILQ_REMOVE(&lks->deliverylist, ep, entry);
  free(ep);
diff --git a/usr.sbin/smtpd/parse.y b/usr.sbin/smtpd/parse.y
index 9f1cb52ec98..b748fabd9ea 100644
--- a/usr.sbin/smtpd/parse.y
+++ b/usr.sbin/smtpd/parse.y
@@ -103,7 +103,7 @@ struct mta_limits *limits;
 static struct pki *pki;
 static struct ca *sca;
 
-struct dispatcher *dispatcher;
+struct dispatcher *dsp;
 struct rule *rule;
 struct filter_proc *processor;
 struct filter_config *filter_config;
@@ -582,37 +582,37 @@ SRS KEY STRING {
 
 dispatcher_local_option:
 USER STRING {
- if (dispatcher->u.local.is_mbox) {
+ if (dsp->u.local.is_mbox) {
  yyerror("user may not be specified for this dispatcher");
  YYERROR;
  }
 
- if (dispatcher->u.local.forward_only) {
+ if (dsp->u.local.forward_only) {
  yyerror("user may not be specified for forward-only");
  YYERROR;
  }
 
- if (dispatcher->u.local.expand_only) {
+ if (dsp->u.local.expand_only) {
  yyerror("user may not be specified for expand-only");
  YYERROR;
  }
 
- if (dispatcher->u.local.user) {
+ if (dsp->u.local.user) {
  yyerror("user already specified for this dispatcher");
  YYERROR;
  }
 
- dispatcher->u.local.user = $2;
+ dsp->u.local.user = $2;
 }
 | ALIAS tables {
  struct table   *t = $2;
 
- if (dispatcher->u.local.table_alias) {
+ if (dsp->u.local.table_alias) {
  yyerror("alias mapping already specified for this dispatcher");
  YYERROR;
  }
 
- if (dispatcher->u.local.table_virtual) {
+ if (dsp->u.local.table_virtual) {
  yyerror("virtual mapping already specified for this dispatcher");
  YYERROR;
  }
@@ -623,17 +623,17 @@ USER STRING {
  YYERROR;
  }
 
- dispatcher->u.local.table_alias = strdup(t->t_name);
+ dsp->u.local.table_alias = strdup(t->t_name);
 }
 | VIRTUAL tables {
  struct table   *t = $2;
 
- if (dispatcher->u.local.table_virtual) {
+ if (dsp->u.local.table_virtual) {
  yyerror("virtual mapping already specified for this dispatcher");
  YYERROR;
  }
 
- if (dispatcher->u.local.table_alias) {
+ if (dsp->u.local.table_alias) {
  yyerror("alias mapping already specified for this dispatcher");
  YYERROR;
  }
@@ -644,12 +644,12 @@ USER STRING {
  YYERROR;
  }
 
- dispatcher->u.local.table_virtual = strdup(t->t_name);
+ dsp->u.local.table_virtual = strdup(t->t_name);
 }
 | USERBASE tables {
  struct table   *t = $2;
 
- if (dispatcher->u.local.table_userbase) {
+ if (dsp->u.local.table_userbase) {
  yyerror("userbase mapping already specified for this dispatcher");
  YYERROR;
  }
@@ -660,14 +660,14 @@ USER STRING {
  YYERROR;
  }
 
- dispatcher->u.local.table_userbase = strdup(t->t_name);
+ dsp->u.local.table_userbase = strdup(t->t_name);
 }
 | WRAPPER STRING {
  if (! dict_get(conf->sc_mda_wrappers, $2)) {
  yyerror("no mda wrapper with that name: %s", $2);
  YYERROR;
  }
- dispatcher->u.local.mda_wrapper = $2;
+ dsp->u.local.mda_wrapper = $2;
 }
 ;
 
@@ -678,67 +678,67 @@ dispatcher_local_option dispatcher_local_options
 
 dispatcher_local:
 MBOX {
- dispatcher->u.local.is_mbox = 1;
- asprintf(&dispatcher->u.local.command, "/usr/libexec/mail.local -f %%{mbox.from} -- %%{user.username}");
+ dsp->u.local.is_mbox = 1;
+ asprintf(&dsp->u.local.command, "/usr/libexec/mail.local -f %%{mbox.from} -- %%{user.username}");
 } dispatcher_local_options
 | MAILDIR {
- asprintf(&dispatcher->u.local.command, "/usr/libexec/mail.maildir");
+ asprintf(&dsp->u.local.command, "/usr/libexec/mail.maildir");
 } dispatcher_local_options
 | MAILDIR JUNK {
- asprintf(&dispatcher->u.local.command, "/usr/libexec/mail.maildir -j");
+ asprintf(&dsp->u.local.command, "/usr/libexec/mail.maildir -j");
 } dispatcher_local_options
 | MAILDIR STRING {
  if (strncmp($2, "~/", 2) == 0)
- asprintf(&dispatcher->u.local.command,
+ asprintf(&dsp->u.local.command,
     "/usr/libexec/mail.maildir \"%%{user.directory}/%s\"", $2+2);
  else
- asprintf(&dispatcher->u.local.command,
+ asprintf(&dsp->u.local.command,
     "/usr/libexec/mail.maildir \"%s\"", $2);
 } dispatcher_local_options
 | MAILDIR STRING JUNK {
  if (strncmp($2, "~/", 2) == 0)
- asprintf(&dispatcher->u.local.command,
+ asprintf(&dsp->u.local.command,
     "/usr/libexec/mail.maildir -j \"%%{user.directory}/%s\"", $2+2);
  else
- asprintf(&dispatcher->u.local.command,
+ asprintf(&dsp->u.local.command,
     "/usr/libexec/mail.maildir -j \"%s\"", $2);
 } dispatcher_local_options
 | LMTP STRING {
- asprintf(&dispatcher->u.local.command,
+ asprintf(&dsp->u.local.command,
     "/usr/libexec/mail.lmtp -d %s -u", $2);
- dispatcher->u.local.user = SMTPD_USER;
+ dsp->u.local.user = SMTPD_USER;
 } dispatcher_local_options
 | LMTP STRING RCPT_TO {
- asprintf(&dispatcher->u.local.command,
+ asprintf(&dsp->u.local.command,
     "/usr/libexec/mail.lmtp -d %s -r", $2);
- dispatcher->u.local.user = SMTPD_USER;
+ dsp->u.local.user = SMTPD_USER;
 } dispatcher_local_options
 | MDA STRING {
- asprintf(&dispatcher->u.local.command,
+ asprintf(&dsp->u.local.command,
     "/usr/libexec/mail.mda \"%s\"", $2);
 } dispatcher_local_options
 | FORWARD_ONLY {
- dispatcher->u.local.forward_only = 1;
+ dsp->u.local.forward_only = 1;
 } dispatcher_local_options
 | EXPAND_ONLY {
- dispatcher->u.local.expand_only = 1;
+ dsp->u.local.expand_only = 1;
 } dispatcher_local_options
 
 ;
 
 dispatcher_remote_option:
 HELO STRING {
- if (dispatcher->u.remote.helo) {
+ if (dsp->u.remote.helo) {
  yyerror("helo already specified for this dispatcher");
  YYERROR;
  }
 
- dispatcher->u.remote.helo = $2;
+ dsp->u.remote.helo = $2;
 }
 | HELO_SRC tables {
  struct table   *t = $2;
 
- if (dispatcher->u.remote.helo_source) {
+ if (dsp->u.remote.helo_source) {
  yyerror("helo-source mapping already specified for this dispatcher");
  YYERROR;
  }
@@ -748,28 +748,28 @@ HELO STRING {
  YYERROR;
  }
 
- dispatcher->u.remote.helo_source = strdup(t->t_name);
+ dsp->u.remote.helo_source = strdup(t->t_name);
 }
 | PKI STRING {
- if (dispatcher->u.remote.pki) {
+ if (dsp->u.remote.pki) {
  yyerror("pki already specified for this dispatcher");
  YYERROR;
  }
 
- dispatcher->u.remote.pki = $2;
+ dsp->u.remote.pki = $2;
 }
 | CA STRING {
- if (dispatcher->u.remote.ca) {
+ if (dsp->u.remote.ca) {
  yyerror("ca already specified for this dispatcher");
  YYERROR;
  }
 
- dispatcher->u.remote.ca = $2;
+ dsp->u.remote.ca = $2;
 }
 | SRC tables {
  struct table   *t = $2;
 
- if (dispatcher->u.remote.source) {
+ if (dsp->u.remote.source) {
  yyerror("source mapping already specified for this dispatcher");
  YYERROR;
  }
@@ -780,49 +780,49 @@ HELO STRING {
  YYERROR;
  }
 
- dispatcher->u.remote.source = strdup(t->t_name);
+ dsp->u.remote.source = strdup(t->t_name);
 }
 | MAIL_FROM STRING {
- if (dispatcher->u.remote.mail_from) {
+ if (dsp->u.remote.mail_from) {
  yyerror("mail-from already specified for this dispatcher");
  YYERROR;
  }
 
- dispatcher->u.remote.mail_from = $2;
+ dsp->u.remote.mail_from = $2;
 }
 | BACKUP MX STRING {
- if (dispatcher->u.remote.backup) {
+ if (dsp->u.remote.backup) {
  yyerror("backup already specified for this dispatcher");
  YYERROR;
  }
- if (dispatcher->u.remote.smarthost) {
+ if (dsp->u.remote.smarthost) {
  yyerror("backup and host are mutually exclusive");
  YYERROR;
  }
 
- dispatcher->u.remote.backup = 1;
- dispatcher->u.remote.backupmx = $3;
+ dsp->u.remote.backup = 1;
+ dsp->u.remote.backupmx = $3;
 }
 | BACKUP {
- if (dispatcher->u.remote.backup) {
+ if (dsp->u.remote.backup) {
  yyerror("backup already specified for this dispatcher");
  YYERROR;
  }
- if (dispatcher->u.remote.smarthost) {
+ if (dsp->u.remote.smarthost) {
  yyerror("backup and host are mutually exclusive");
  YYERROR;
  }
 
- dispatcher->u.remote.backup = 1;
+ dsp->u.remote.backup = 1;
 }
 | HOST tables {
  struct table   *t = $2;
 
- if (dispatcher->u.remote.smarthost) {
+ if (dsp->u.remote.smarthost) {
  yyerror("host mapping already specified for this dispatcher");
  YYERROR;
  }
- if (dispatcher->u.remote.backup) {
+ if (dsp->u.remote.backup) {
  yyerror("backup and host are mutually exclusive");
  YYERROR;
  }
@@ -833,16 +833,16 @@ HELO STRING {
  YYERROR;
  }
 
- dispatcher->u.remote.smarthost = strdup(t->t_name);
+ dsp->u.remote.smarthost = strdup(t->t_name);
 }
 | DOMAIN tables {
  struct table   *t = $2;
 
- if (dispatcher->u.remote.smarthost) {
+ if (dsp->u.remote.smarthost) {
  yyerror("host mapping already specified for this dispatcher");
  YYERROR;
  }
- if (dispatcher->u.remote.backup) {
+ if (dsp->u.remote.backup) {
  yyerror("backup and domain are mutually exclusive");
  YYERROR;
  }
@@ -853,35 +853,35 @@ HELO STRING {
  YYERROR;
  }
 
- dispatcher->u.remote.smarthost = strdup(t->t_name);
- dispatcher->u.remote.smarthost_domain = 1;
+ dsp->u.remote.smarthost = strdup(t->t_name);
+ dsp->u.remote.smarthost_domain = 1;
 }
 | TLS {
- if (dispatcher->u.remote.tls_required == 1) {
+ if (dsp->u.remote.tls_required == 1) {
  yyerror("tls already specified for this dispatcher");
  YYERROR;
  }
 
- dispatcher->u.remote.tls_required = 1;
+ dsp->u.remote.tls_required = 1;
 }
 | TLS NO_VERIFY {
- if (dispatcher->u.remote.tls_required == 1) {
+ if (dsp->u.remote.tls_required == 1) {
  yyerror("tls already specified for this dispatcher");
  YYERROR;
  }
 
- dispatcher->u.remote.tls_required = 1;
- dispatcher->u.remote.tls_noverify = 1;
+ dsp->u.remote.tls_required = 1;
+ dsp->u.remote.tls_noverify = 1;
 }
 | AUTH tables {
  struct table   *t = $2;
 
- if (dispatcher->u.remote.smarthost == NULL) {
+ if (dsp->u.remote.smarthost == NULL) {
  yyerror("auth may not be specified without host on a dispatcher");
  YYERROR;
  }
 
- if (dispatcher->u.remote.auth) {
+ if (dsp->u.remote.auth) {
  yyerror("auth mapping already specified for this dispatcher");
  YYERROR;
  }
@@ -892,12 +892,12 @@ HELO STRING {
  YYERROR;
  }
 
- dispatcher->u.remote.auth = strdup(t->t_name);
+ dsp->u.remote.auth = strdup(t->t_name);
 }
 | FILTER STRING {
  struct filter_config *fc;
 
- if (dispatcher->u.remote.filtername) {
+ if (dsp->u.remote.filtername) {
  yyerror("filter already specified for this dispatcher");
  YYERROR;
  }
@@ -908,13 +908,13 @@ HELO STRING {
  YYERROR;
  }
  fc->filter_subsystem |= FILTER_SUBSYSTEM_SMTP_OUT;
- dispatcher->u.remote.filtername = $2;
+ dsp->u.remote.filtername = $2;
 }
 | FILTER {
  char buffer[128];
  char *filtername;
 
- if (dispatcher->u.remote.filtername) {
+ if (dsp->u.remote.filtername) {
  yyerror("filter already specified for this dispatcher");
  YYERROR;
  }
@@ -928,9 +928,9 @@ HELO STRING {
  filter_config->filter_type = FILTER_TYPE_CHAIN;
  filter_config->filter_subsystem |= FILTER_SUBSYSTEM_SMTP_OUT;
  dict_init(&filter_config->chain_procs);
- dispatcher->u.remote.filtername = filtername;
+ dsp->u.remote.filtername = filtername;
 } '{' filter_list '}' {
- dict_set(conf->sc_filters_dict, dispatcher->u.remote.filtername, filter_config);
+ dict_set(conf->sc_filters_dict, dsp->u.remote.filtername, filter_config);
  filter_config = NULL;
 }
 | SRS {
@@ -938,12 +938,12 @@ HELO STRING {
  yyerror("an srs key is required for srs to be specified in an action");
  YYERROR;
  }
- if (dispatcher->u.remote.srs == 1) {
+ if (dsp->u.remote.srs == 1) {
  yyerror("srs already specified for this dispatcher");
  YYERROR;
  }
 
- dispatcher->u.remote.srs = 1;
+ dsp->u.remote.srs = 1;
 }
 ;
 
@@ -958,22 +958,22 @@ RELAY dispatcher_remote_options
 
 dispatcher_type:
 dispatcher_local {
- dispatcher->type = DISPATCHER_LOCAL;
+ dsp->type = DISPATCHER_LOCAL;
 }
 | dispatcher_remote {
- dispatcher->type = DISPATCHER_REMOTE;
+ dsp->type = DISPATCHER_REMOTE;
 }
 ;
 
 dispatcher_option:
 TTL STRING {
- if (dispatcher->ttl) {
+ if (dsp->ttl) {
  yyerror("ttl already specified for this dispatcher");
  YYERROR;
  }
 
- dispatcher->ttl = delaytonum($2);
- if (dispatcher->ttl == -1) {
+ dsp->ttl = delaytonum($2);
+ if (dsp->ttl == -1) {
  yyerror("ttl delay \"%s\" is invalid", $2);
  free($2);
  YYERROR;
@@ -993,13 +993,13 @@ ACTION STRING {
  yyerror("dispatcher already declared with that name: %s", $2);
  YYERROR;
  }
- dispatcher = xcalloc(1, sizeof *dispatcher);
+ dsp = xcalloc(1, sizeof *dsp);
 } dispatcher_type dispatcher_options {
- if (dispatcher->type == DISPATCHER_LOCAL)
- if (dispatcher->u.local.table_userbase == NULL)
- dispatcher->u.local.table_userbase = "<getpwnam>";
- dict_set(conf->sc_dispatchers, $2, dispatcher);
- dispatcher = NULL;
+ if (dsp->type == DISPATCHER_LOCAL)
+ if (dsp->u.local.table_userbase == NULL)
+ dsp->u.local.table_userbase = "<getpwnam>";
+ dict_set(conf->sc_dispatchers, $2, dsp);
+ dsp = NULL;
 }
 ;
 
diff --git a/usr.sbin/smtpd/pony.c b/usr.sbin/smtpd/pony.c
index 026d647307a..d533179a5df 100644
--- a/usr.sbin/smtpd/pony.c
+++ b/usr.sbin/smtpd/pony.c
@@ -44,16 +44,16 @@ void mda_imsg(struct mproc *, struct imsg *);
 void mta_imsg(struct mproc *, struct imsg *);
 void smtp_imsg(struct mproc *, struct imsg *);
 
-static void pony_shutdown(void);
+static void dispatcher_shutdown(void);
 
 void
-pony_imsg(struct mproc *p, struct imsg *imsg)
+dispatcher_imsg(struct mproc *p, struct imsg *imsg)
 {
  struct msg m;
  int v;
 
  if (imsg == NULL)
- pony_shutdown();
+ dispatcher_shutdown();
 
  switch (imsg->hdr.type) {
 
@@ -143,14 +143,14 @@ pony_imsg(struct mproc *p, struct imsg *imsg)
 }
 
 static void
-pony_shutdown(void)
+dispatcher_shutdown(void)
 {
- log_debug("debug: pony agent exiting");
+ log_debug("debug: dispatcher agent exiting");
  _exit(0);
 }
 
 int
-pony(void)
+dispatcher(void)
 {
  struct passwd *pw;
 
@@ -167,18 +167,18 @@ pony(void)
  fatalx("unknown user " SMTPD_USER);
 
  if (chroot(PATH_CHROOT) == -1)
- fatal("pony: chroot");
+ fatal("dispatcher: chroot");
  if (chdir("/") == -1)
- fatal("pony: chdir(\"/\")");
+ fatal("dispatcher: chdir(\"/\")");
 
- config_process(PROC_PONY);
+ config_process(PROC_DISPATCHER);
 
  if (setgroups(1, &pw->pw_gid) ||
     setresgid(pw->pw_gid, pw->pw_gid, pw->pw_gid) ||
     setresuid(pw->pw_uid, pw->pw_uid, pw->pw_uid))
- fatal("pony: cannot drop privileges");
+ fatal("dispatcher: cannot drop privileges");
 
- imsg_callback = pony_imsg;
+ imsg_callback = dispatcher_imsg;
  event_init();
 
  mda_postprivdrop();
diff --git a/usr.sbin/smtpd/queue.c b/usr.sbin/smtpd/queue.c
index 3739fe22750..0a621709764 100644
--- a/usr.sbin/smtpd/queue.c
+++ b/usr.sbin/smtpd/queue.c
@@ -152,15 +152,15 @@ queue_imsg(struct mproc *p, struct imsg *imsg)
  log_warnx("warn: imsg_queue_submit_envelope: msgid=0, "
     "evpid=%016"PRIx64, evp.id);
  ret = queue_envelope_create(&evp);
- m_create(p_pony, IMSG_QUEUE_ENVELOPE_SUBMIT, 0, 0, -1);
- m_add_id(p_pony, reqid);
+ m_create(p_dispatcher, IMSG_QUEUE_ENVELOPE_SUBMIT, 0, 0, -1);
+ m_add_id(p_dispatcher, reqid);
  if (ret == 0)
- m_add_int(p_pony, 0);
+ m_add_int(p_dispatcher, 0);
  else {
- m_add_int(p_pony, 1);
- m_add_evpid(p_pony, evp.id);
+ m_add_int(p_dispatcher, 1);
+ m_add_evpid(p_dispatcher, evp.id);
  }
- m_close(p_pony);
+ m_close(p_dispatcher);
  if (ret) {
  m_create(p_scheduler,
     IMSG_QUEUE_ENVELOPE_SUBMIT, 0, 0, -1);
@@ -173,10 +173,10 @@ queue_imsg(struct mproc *p, struct imsg *imsg)
  m_msg(&m, imsg);
  m_get_id(&m, &reqid);
  m_end(&m);
- m_create(p_pony, IMSG_QUEUE_ENVELOPE_COMMIT, 0, 0, -1);
- m_add_id(p_pony, reqid);
- m_add_int(p_pony, 1);
- m_close(p_pony);
+ m_create(p_dispatcher, IMSG_QUEUE_ENVELOPE_COMMIT, 0, 0, -1);
+ m_add_id(p_dispatcher, reqid);
+ m_add_int(p_dispatcher, 1);
+ m_close(p_dispatcher);
  return;
 
  case IMSG_SCHED_ENVELOPE_REMOVE:
@@ -250,9 +250,9 @@ queue_imsg(struct mproc *p, struct imsg *imsg)
  return;
  }
  evp.lasttry = time(NULL);
- m_create(p_pony, IMSG_QUEUE_DELIVER, 0, 0, -1);
- m_add_envelope(p_pony, &evp);
- m_close(p_pony);
+ m_create(p_dispatcher, IMSG_QUEUE_DELIVER, 0, 0, -1);
+ m_add_envelope(p_dispatcher, &evp);
+ m_close(p_dispatcher);
  return;
 
  case IMSG_SCHED_ENVELOPE_INJECT:
@@ -275,9 +275,9 @@ queue_imsg(struct mproc *p, struct imsg *imsg)
  return;
  }
  evp.lasttry = time(NULL);
- m_create(p_pony, IMSG_QUEUE_TRANSFER, 0, 0, -1);
- m_add_envelope(p_pony, &evp);
- m_close(p_pony);
+ m_create(p_dispatcher, IMSG_QUEUE_TRANSFER, 0, 0, -1);
+ m_add_envelope(p_dispatcher, &evp);
+ m_close(p_dispatcher);
  return;
 
  case IMSG_CTL_LIST_ENVELOPES:
@@ -665,7 +665,7 @@ queue(void)
  config_peer(PROC_CONTROL);
  config_peer(PROC_LKA);
  config_peer(PROC_SCHEDULER);
- config_peer(PROC_PONY);
+ config_peer(PROC_DISPATCHER);
 
  /* setup queue loading task */
  evtimer_set(&ev_qload, queue_timeout, &ev_qload);
diff --git a/usr.sbin/smtpd/smtpd.c b/usr.sbin/smtpd/smtpd.c
index 854c2ab0cb6..f15411757ee 100644
--- a/usr.sbin/smtpd/smtpd.c
+++ b/usr.sbin/smtpd/smtpd.c
@@ -66,7 +66,7 @@ static int smtpd(void);
 static void parent_shutdown(void);
 static void parent_send_config(int, short, void *);
 static void parent_send_config_lka(void);
-static void parent_send_config_pony(void);
+static void parent_send_config_dispatcher(void);
 static void parent_send_config_ca(void);
 static void parent_sig_handler(int, short, void *);
 static void forkmda(struct mproc *, uint64_t, struct deliver *);
@@ -140,7 +140,7 @@ struct mproc *p_lka = NULL;
 struct mproc *p_parent = NULL;
 struct mproc *p_queue = NULL;
 struct mproc *p_scheduler = NULL;
-struct mproc *p_pony = NULL;
+struct mproc *p_dispatcher = NULL;
 struct mproc *p_ca = NULL;
 
 const char *backend_queue = "fs";
@@ -289,7 +289,7 @@ parent_shutdown(void)
  pid_t pid;
 
  mproc_clear(p_ca);
- mproc_clear(p_pony);
+ mproc_clear(p_dispatcher);
  mproc_clear(p_control);
  mproc_clear(p_lka);
  mproc_clear(p_scheduler);
@@ -309,17 +309,17 @@ static void
 parent_send_config(int fd, short event, void *p)
 {
  parent_send_config_lka();
- parent_send_config_pony();
+ parent_send_config_dispatcher();
  parent_send_config_ca();
  purge_config(PURGE_PKI);
 }
 
 static void
-parent_send_config_pony(void)
+parent_send_config_dispatcher(void)
 {
- log_debug("debug: parent_send_config: configuring pony process");
- m_compose(p_pony, IMSG_CONF_START, 0, 0, -1, NULL, 0);
- m_compose(p_pony, IMSG_CONF_END, 0, 0, -1, NULL, 0);
+ log_debug("debug: parent_send_config: configuring dispatcher process");
+ m_compose(p_dispatcher, IMSG_CONF_START, 0, 0, -1, NULL, 0);
+ m_compose(p_dispatcher, IMSG_CONF_END, 0, 0, -1, NULL, 0);
 }
 
 void
@@ -437,13 +437,13 @@ parent_sig_handler(int sig, short event, void *p)
     "for session %016"PRIx64 ": %s",
     child->mda_id, cause);
 
- m_create(p_pony, IMSG_MDA_DONE, 0, 0,
+ m_create(p_dispatcher, IMSG_MDA_DONE, 0, 0,
     child->mda_out);
- m_add_id(p_pony, child->mda_id);
- m_add_int(p_pony, mda_status);
- m_add_int(p_pony, mda_sysexit);
- m_add_string(p_pony, cause);
- m_close(p_pony);
+ m_add_id(p_dispatcher, child->mda_id);
+ m_add_int(p_dispatcher, mda_status);
+ m_add_int(p_dispatcher, mda_sysexit);
+ m_add_string(p_dispatcher, cause);
+ m_close(p_dispatcher);
 
  break;
 
@@ -698,8 +698,8 @@ main(int argc, char *argv[])
  p_lka = start_child(save_argc, save_argv, "lka");
  p_lka->proc = PROC_LKA;
 
- p_pony = start_child(save_argc, save_argv, "pony");
- p_pony->proc = PROC_PONY;
+ p_dispatcher = start_child(save_argc, save_argv, "dispatcher");
+ p_dispatcher->proc = PROC_DISPATCHER;
 
  p_queue = start_child(save_argc, save_argv, "queue");
  p_queue->proc = PROC_QUEUE;
@@ -709,12 +709,12 @@ main(int argc, char *argv[])
 
  setup_peers(p_control, p_ca);
  setup_peers(p_control, p_lka);
- setup_peers(p_control, p_pony);
+ setup_peers(p_control, p_dispatcher);
  setup_peers(p_control, p_queue);
  setup_peers(p_control, p_scheduler);
- setup_peers(p_pony, p_ca);
- setup_peers(p_pony, p_lka);
- setup_peers(p_pony, p_queue);
+ setup_peers(p_dispatcher, p_ca);
+ setup_peers(p_dispatcher, p_lka);
+ setup_peers(p_dispatcher, p_queue);
  setup_peers(p_queue, p_lka);
  setup_peers(p_queue, p_scheduler);
 
@@ -730,7 +730,7 @@ main(int argc, char *argv[])
  setup_done(p_ca);
  setup_done(p_control);
  setup_done(p_lka);
- setup_done(p_pony);
+ setup_done(p_dispatcher);
  setup_done(p_queue);
  setup_done(p_scheduler);
 
@@ -767,11 +767,11 @@ main(int argc, char *argv[])
  return lka();
  }
 
- else if (!strcmp(rexec, "pony")) {
- smtpd_process = PROC_PONY;
+ else if (!strcmp(rexec, "dispatcher")) {
+ smtpd_process = PROC_DISPATCHER;
  setup_proc();
 
- return pony();
+ return dispatcher();
  }
 
  else if (!strcmp(rexec, "queue")) {
@@ -978,8 +978,8 @@ setup_peer(enum smtp_proc_type proc, pid_t pid, int sock)
  case PROC_SCHEDULER:
  pp = &p_scheduler;
  break;
- case PROC_PONY:
- pp = &p_pony;
+ case PROC_DISPATCHER:
+ pp = &p_dispatcher;
  break;
  case PROC_CA:
  pp = &p_ca;
@@ -1050,7 +1050,7 @@ smtpd(void) {
  child_add(p_control->pid, CHILD_DAEMON, proc_title(PROC_CONTROL));
  child_add(p_lka->pid, CHILD_DAEMON, proc_title(PROC_LKA));
  child_add(p_scheduler->pid, CHILD_DAEMON, proc_title(PROC_SCHEDULER));
- child_add(p_pony->pid, CHILD_DAEMON, proc_title(PROC_PONY));
+ child_add(p_dispatcher->pid, CHILD_DAEMON, proc_title(PROC_DISPATCHER));
  child_add(p_ca->pid, CHILD_DAEMON, proc_title(PROC_CA));
 
  event_init();
@@ -1069,7 +1069,7 @@ smtpd(void) {
  config_peer(PROC_LKA);
  config_peer(PROC_QUEUE);
  config_peer(PROC_CA);
- config_peer(PROC_PONY);
+ config_peer(PROC_DISPATCHER);
 
  evtimer_set(&config_ev, parent_send_config, NULL);
  memset(&tv, 0, sizeof(tv));
@@ -1421,12 +1421,12 @@ forkmda(struct mproc *p, uint64_t id, struct deliver *deliver)
  (void)snprintf(ebuf, sizeof ebuf,
     "delivery user '%s' does not exist",
     dsp->u.local.user);
- m_create(p_pony, IMSG_MDA_DONE, 0, 0, -1);
- m_add_id(p_pony, id);
- m_add_int(p_pony, MDA_PERMFAIL);
- m_add_int(p_pony, EX_NOUSER);
- m_add_string(p_pony, ebuf);
- m_close(p_pony);
+ m_create(p_dispatcher, IMSG_MDA_DONE, 0, 0, -1);
+ m_add_id(p_dispatcher, id);
+ m_add_int(p_dispatcher, MDA_PERMFAIL);
+ m_add_int(p_dispatcher, EX_NOUSER);
+ m_add_string(p_dispatcher, ebuf);
+ m_close(p_dispatcher);
  return;
  }
  pw_name = pw->pw_name;
@@ -1451,23 +1451,23 @@ forkmda(struct mproc *p, uint64_t id, struct deliver *deliver)
  if (pw_uid == 0 && !dsp->u.local.is_mbox) {
  (void)snprintf(ebuf, sizeof ebuf, "not allowed to deliver to: %s",
     deliver->userinfo.username);
- m_create(p_pony, IMSG_MDA_DONE, 0, 0, -1);
- m_add_id(p_pony, id);
- m_add_int(p_pony, MDA_PERMFAIL);
- m_add_int(p_pony, EX_NOPERM);
- m_add_string(p_pony, ebuf);
- m_close(p_pony);
+ m_create(p_dispatcher, IMSG_MDA_DONE, 0, 0, -1);
+ m_add_id(p_dispatcher, id);
+ m_add_int(p_dispatcher, MDA_PERMFAIL);
+ m_add_int(p_dispatcher, EX_NOPERM);
+ m_add_string(p_dispatcher, ebuf);
+ m_close(p_dispatcher);
  return;
  }
 
  if (pipe(pipefd) == -1) {
  (void)snprintf(ebuf, sizeof ebuf, "pipe: %s", strerror(errno));
- m_create(p_pony, IMSG_MDA_DONE, 0, 0, -1);
- m_add_id(p_pony, id);
- m_add_int(p_pony, MDA_TEMPFAIL);
- m_add_int(p_pony, EX_OSERR);
- m_add_string(p_pony, ebuf);
- m_close(p_pony);
+ m_create(p_dispatcher, IMSG_MDA_DONE, 0, 0, -1);
+ m_add_id(p_dispatcher, id);
+ m_add_int(p_dispatcher, MDA_TEMPFAIL);
+ m_add_int(p_dispatcher, EX_OSERR);
+ m_add_string(p_dispatcher, ebuf);
+ m_close(p_dispatcher);
  return;
  }
 
@@ -1476,12 +1476,12 @@ forkmda(struct mproc *p, uint64_t id, struct deliver *deliver)
  allout = mkstemp(sfn);
  if (allout == -1) {
  (void)snprintf(ebuf, sizeof ebuf, "mkstemp: %s", strerror(errno));
- m_create(p_pony, IMSG_MDA_DONE, 0, 0, -1);
- m_add_id(p_pony, id);
- m_add_int(p_pony, MDA_TEMPFAIL);
- m_add_int(p_pony, EX_OSERR);
- m_add_string(p_pony, ebuf);
- m_close(p_pony);
+ m_create(p_dispatcher, IMSG_MDA_DONE, 0, 0, -1);
+ m_add_id(p_dispatcher, id);
+ m_add_int(p_dispatcher, MDA_TEMPFAIL);
+ m_add_int(p_dispatcher, EX_OSERR);
+ m_add_string(p_dispatcher, ebuf);
+ m_close(p_dispatcher);
  close(pipefd[0]);
  close(pipefd[1]);
  return;
@@ -1491,12 +1491,12 @@ forkmda(struct mproc *p, uint64_t id, struct deliver *deliver)
  pid = fork();
  if (pid == -1) {
  (void)snprintf(ebuf, sizeof ebuf, "fork: %s", strerror(errno));
- m_create(p_pony, IMSG_MDA_DONE, 0, 0, -1);
- m_add_id(p_pony, id);
- m_add_int(p_pony, MDA_TEMPFAIL);
- m_add_int(p_pony, EX_OSERR);
- m_add_string(p_pony, ebuf);
- m_close(p_pony);
+ m_create(p_dispatcher, IMSG_MDA_DONE, 0, 0, -1);
+ m_add_id(p_dispatcher, id);
+ m_add_int(p_dispatcher, MDA_TEMPFAIL);
+ m_add_int(p_dispatcher, EX_OSERR);
+ m_add_string(p_dispatcher, ebuf);
+ m_close(p_dispatcher);
  close(pipefd[0]);
  close(pipefd[1]);
  close(allout);
@@ -1912,10 +1912,10 @@ proc_title(enum smtp_proc_type proc)
  return "control";
  case PROC_SCHEDULER:
  return "scheduler";
- case PROC_PONY:
- return "pony express";
+ case PROC_DISPATCHER:
+ return "dispatcher";
  case PROC_CA:
- return "klondike";
+ return "crypto";
  case PROC_CLIENT:
  return "client";
  case PROC_PROCESSOR:
@@ -1938,8 +1938,8 @@ proc_name(enum smtp_proc_type proc)
  return "control";
  case PROC_SCHEDULER:
  return "scheduler";
- case PROC_PONY:
- return "pony";
+ case PROC_DISPATCHER:
+ return "dispatcher";
  case PROC_CA:
  return "ca";
  case PROC_CLIENT:
diff --git a/usr.sbin/smtpd/smtpd.h b/usr.sbin/smtpd/smtpd.h
index 529ff683f76..36c85eb2c18 100644
--- a/usr.sbin/smtpd/smtpd.h
+++ b/usr.sbin/smtpd/smtpd.h
@@ -345,7 +345,7 @@ enum smtp_proc_type {
  PROC_QUEUE,
  PROC_CONTROL,
  PROC_SCHEDULER,
- PROC_PONY,
+ PROC_DISPATCHER,
  PROC_CA,
  PROC_PROCESSOR,
  PROC_CLIENT,
@@ -1007,7 +1007,7 @@ extern struct mproc *p_parent;
 extern struct mproc *p_lka;
 extern struct mproc *p_queue;
 extern struct mproc *p_scheduler;
-extern struct mproc *p_pony;
+extern struct mproc *p_dispatcher;
 extern struct mproc *p_ca;
 
 extern struct smtpd *env;
@@ -1580,8 +1580,8 @@ void scheduler_info(struct scheduler_info *, struct envelope *);
 
 
 /* pony.c */
-int pony(void);
-void pony_imsg(struct mproc *, struct imsg *);
+int dispatcher(void);
+void dispatcher_imsg(struct mproc *, struct imsg *);
 
 
 /* resolver.c */

Reply | Threaded
Open this post in threaded view
|

Re: [diff] src/usr.sbin/smtpd: change process names

Todd C. Miller-3
In reply to this post by Gilles Chehade-7
I like it.  I always forget which role the pony process performs.

 - todd

Reply | Threaded
Open this post in threaded view
|

Re: [diff] src/usr.sbin/smtpd: change process names

Martijn van Duren-5
In reply to this post by Gilles Chehade-7
This one reads OK to me, with one minor bikeshed:
You rename klondike to crypto, but the internals still refer to CA
everywhere. Wouldn't it be cleaner to leave klondike in step one and do
a s/CA/CRYPTO/ in a second step so everything is in concent?
Personally I prefer the name crypto over ca.

martijn@

On Sat, 2020-12-19 at 23:21 +0000, [hidden email] wrote:

> December 19, 2020 11:26 PM, "Martijn van Duren" <[hidden email]> wrote:
>
> > Personally I'd rather wait to keep the names in sync, especially since
> > it's an easy 2 line diff that can easily be incorperated in the bigger
> > thing. But it's not something I'm going to loose sleep over if others
> > thing it can go in right now.
> >
>
> Fair enough :-)
>
> Below is the diff that changes all references to pony into dispatcher.
>
> I didn't rename pony.c to dispatcher.c as this would break the diff, but if this gets
> committed I'll submit a diff for the rename + Makefile bit
>
>
>
> diff --git a/usr.sbin/smtpd/bounce.c b/usr.sbin/smtpd/bounce.c
> index e6fc55780a1..455da6ff8b1 100644
> --- a/usr.sbin/smtpd/bounce.c
> +++ b/usr.sbin/smtpd/bounce.c
> @@ -290,7 +290,7 @@ bounce_drain()
>                 }
>  
>                 log_debug("debug: bounce: requesting new enqueue socket...");
> -               m_compose(p_pony, IMSG_QUEUE_SMTP_SESSION, 0, 0, -1, NULL, 0);
> +               m_compose(p_dispatcher, IMSG_QUEUE_SMTP_SESSION, 0, 0, -1, NULL, 0);
>  
>                 running += 1;
>         }
> diff --git a/usr.sbin/smtpd/ca.c b/usr.sbin/smtpd/ca.c
> index fdc177e28b3..0299ee6cecc 100644
> --- a/usr.sbin/smtpd/ca.c
> +++ b/usr.sbin/smtpd/ca.c
> @@ -110,10 +110,10 @@ ca(void)
>  
>         config_peer(PROC_CONTROL);
>         config_peer(PROC_PARENT);
> -       config_peer(PROC_PONY);
> +       config_peer(PROC_DISPATCHER);
>  
>         /* Ignore them until we get our config */
> -       mproc_disable(p_pony);
> +       mproc_disable(p_dispatcher);
>  
>         if (pledge("stdio", NULL) == -1)
>                 err(1, "pledge");
> @@ -246,7 +246,7 @@ ca_imsg(struct mproc *p, struct imsg *imsg)
>                 ca_init();
>  
>                 /* Start fulfilling requests */
> -               mproc_enable(p_pony);
> +               mproc_enable(p_dispatcher);
>                 return;
>  
>         case IMSG_CTL_VERBOSE:
> @@ -385,7 +385,7 @@ rsae_send_imsg(int flen, const unsigned char *from, unsigned char *to,
>                         if (n == 0)
>                                 break;
>  
> -                       log_imsg(PROC_PONY, PROC_CA, &imsg);
> +                       log_imsg(PROC_DISPATCHER, PROC_CA, &imsg);
>  
>                         switch (imsg.hdr.type) {
>                         case IMSG_CA_RSA_PRIVENC:
> @@ -393,7 +393,7 @@ rsae_send_imsg(int flen, const unsigned char *from, unsigned char *to,
>                                 break;
>                         default:
>                                 /* Another imsg is queued up in the buffer */
> -                               pony_imsg(p_ca, &imsg);
> +                               dispatcher_imsg(p_ca, &imsg);
>                                 imsg_free(&imsg);
>                                 continue;
>                         }
> @@ -569,14 +569,14 @@ ecdsae_send_enc_imsg(const unsigned char *dgst, int dgst_len,
>                         if (n == 0)
>                                 break;
>  
> -                       log_imsg(PROC_PONY, PROC_CA, &imsg);
> +                       log_imsg(PROC_DISPATCHER, PROC_CA, &imsg);
>  
>                         switch (imsg.hdr.type) {
>                         case IMSG_CA_ECDSA_SIGN:
>                                 break;
>                         default:
>                                 /* Another imsg is queued up in the buffer */
> -                               pony_imsg(p_ca, &imsg);
> +                               dispatcher_imsg(p_ca, &imsg);
>                                 imsg_free(&imsg);
>                                 continue;
>                         }
> diff --git a/usr.sbin/smtpd/config.c b/usr.sbin/smtpd/config.c
> index 529420ac0f2..2882349ceba 100644
> --- a/usr.sbin/smtpd/config.c
> +++ b/usr.sbin/smtpd/config.c
> @@ -325,8 +325,8 @@ config_peer(enum smtp_proc_type proc)
>                 p = p_queue;
>         else if (proc == PROC_SCHEDULER)
>                 p = p_scheduler;
> -       else if (proc == PROC_PONY)
> -               p = p_pony;
> +       else if (proc == PROC_DISPATCHER)
> +               p = p_dispatcher;
>         else if (proc == PROC_CA)
>                 p = p_ca;
>         else
> diff --git a/usr.sbin/smtpd/control.c b/usr.sbin/smtpd/control.c
> index 6ea52b62cfb..e9e19cd1870 100644
> --- a/usr.sbin/smtpd/control.c
> +++ b/usr.sbin/smtpd/control.c
> @@ -248,7 +248,7 @@ control(void)
>         config_peer(PROC_QUEUE);
>         config_peer(PROC_PARENT);
>         config_peer(PROC_LKA);
> -       config_peer(PROC_PONY);
> +       config_peer(PROC_DISPATCHER);
>         config_peer(PROC_CA);
>  
>         control_listen();
> @@ -450,7 +450,7 @@ control_dispatch_ext(struct mproc *p, struct imsg *imsg)
>                         m_compose(p, IMSG_CTL_FAIL, 0, 0, -1, NULL, 0);
>                         return;
>                 }
> -               m_compose(p_pony, IMSG_CTL_SMTP_SESSION, c->id, 0, -1,
> +               m_compose(p_dispatcher, IMSG_CTL_SMTP_SESSION, c->id, 0, -1,
>                     &c->euid, sizeof(c->euid));
>                 return;
>  
> @@ -597,7 +597,7 @@ control_dispatch_ext(struct mproc *p, struct imsg *imsg)
>                 }
>                 log_info("info: smtp paused");
>                 env->sc_flags |= SMTPD_SMTP_PAUSED;
> -               m_compose(p_pony, IMSG_CTL_PAUSE_SMTP, 0, 0, -1, NULL, 0);
> +               m_compose(p_dispatcher, IMSG_CTL_PAUSE_SMTP, 0, 0, -1, NULL, 0);
>                 m_compose(p, IMSG_CTL_OK, 0, 0, -1, NULL, 0);
>                 return;
>  
> @@ -647,7 +647,7 @@ control_dispatch_ext(struct mproc *p, struct imsg *imsg)
>                 }
>                 log_info("info: smtp resumed");
>                 env->sc_flags &= ~SMTPD_SMTP_PAUSED;
> -               m_forward(p_pony, imsg);
> +               m_forward(p_dispatcher, imsg);
>                 m_compose(p, IMSG_CTL_OK, 0, 0, -1, NULL, 0);
>                 return;
>  
> @@ -655,7 +655,7 @@ control_dispatch_ext(struct mproc *p, struct imsg *imsg)
>                 if (c->euid)
>                         goto badcred;
>  
> -               m_forward(p_pony, imsg);
> +               m_forward(p_dispatcher, imsg);
>                 m_compose(p, IMSG_CTL_OK, 0, 0, -1, NULL, 0);
>                 return;
>  
> @@ -682,7 +682,7 @@ control_dispatch_ext(struct mproc *p, struct imsg *imsg)
>                         goto badcred;
>  
>                 imsg->hdr.peerid = c->id;
> -               m_forward(p_pony, imsg);
> +               m_forward(p_dispatcher, imsg);
>                 return;
>  
>         case IMSG_CTL_SHOW_STATUS:
> @@ -701,10 +701,10 @@ control_dispatch_ext(struct mproc *p, struct imsg *imsg)
>                 if (imsg->hdr.len - IMSG_HEADER_SIZE <= sizeof(ss))
>                         goto invalid;
>                 memmove(&ss, imsg->data, sizeof(ss));
> -               m_create(p_pony, imsg->hdr.type, c->id, 0, -1);
> -               m_add_sockaddr(p_pony, (struct sockaddr *)&ss);
> -               m_add_string(p_pony, (char *)imsg->data + sizeof(ss));
> -               m_close(p_pony);
> +               m_create(p_dispatcher, imsg->hdr.type, c->id, 0, -1);
> +               m_add_sockaddr(p_dispatcher, (struct sockaddr *)&ss);
> +               m_add_string(p_dispatcher, (char *)imsg->data + sizeof(ss));
> +               m_close(p_dispatcher);
>                 return;
>  
>         case IMSG_CTL_SCHEDULE:
> @@ -780,9 +780,9 @@ control_broadcast_verbose(int msg, int v)
>         m_add_int(p_lka, v);
>         m_close(p_lka);
>  
> -       m_create(p_pony, msg, 0, 0, -1);
> -       m_add_int(p_pony, v);
> -       m_close(p_pony);
> +       m_create(p_dispatcher, msg, 0, 0, -1);
> +       m_add_int(p_dispatcher, v);
> +       m_close(p_dispatcher);
>  
>         m_create(p_queue, msg, 0, 0, -1);
>         m_add_int(p_queue, v);
> diff --git a/usr.sbin/smtpd/lka.c b/usr.sbin/smtpd/lka.c
> index aa9f233536c..24a748e9de4 100644
> --- a/usr.sbin/smtpd/lka.c
> +++ b/usr.sbin/smtpd/lka.c
> @@ -334,7 +334,7 @@ lka_imsg(struct mproc *p, struct imsg *imsg)
>  
>         case IMSG_LKA_AUTHENTICATE:
>                 imsg->hdr.type = IMSG_SMTP_AUTHENTICATE;
> -               m_forward(p_pony, imsg);
> +               m_forward(p_dispatcher, imsg);
>                 return;
>  
>         case IMSG_CTL_VERBOSE:
> @@ -701,10 +701,10 @@ lka(void)
>         config_peer(PROC_PARENT);
>         config_peer(PROC_QUEUE);
>         config_peer(PROC_CONTROL);
> -       config_peer(PROC_PONY);
> +       config_peer(PROC_DISPATCHER);
>  
>         /* Ignore them until we get our config */
> -       mproc_disable(p_pony);
> +       mproc_disable(p_dispatcher);
>  
>         lka_report_init();
>         lka_filter_init();
> @@ -729,7 +729,7 @@ proc_timeout(int fd, short event, void *p)
>                 goto reset;
>  
>         lka_filter_ready();
> -       mproc_enable(p_pony);
> +       mproc_enable(p_dispatcher);
>         return;
>  
>  reset:
> diff --git a/usr.sbin/smtpd/lka_filter.c b/usr.sbin/smtpd/lka_filter.c
> index 9891e6140a3..6771d2fe8a6 100644
> --- a/usr.sbin/smtpd/lka_filter.c
> +++ b/usr.sbin/smtpd/lka_filter.c
> @@ -558,10 +558,10 @@ lka_filter_data_begin(uint64_t reqid)
>         io_set_callback(fs->io, filter_session_io, fs);
>  
>  end:
> -       m_create(p_pony, IMSG_FILTER_SMTP_DATA_BEGIN, 0, 0, fd);
> -       m_add_id(p_pony, reqid);
> -       m_add_int(p_pony, fd != -1 ? 1 : 0);
> -       m_close(p_pony);
> +       m_create(p_dispatcher, IMSG_FILTER_SMTP_DATA_BEGIN, 0, 0, fd);
> +       m_add_id(p_dispatcher, reqid);
> +       m_add_int(p_dispatcher, fd != -1 ? 1 : 0);
> +       m_close(p_dispatcher);
>         log_trace(TRACE_FILTERS, "%016"PRIx64" filters data-begin fd=%d", reqid, fd);
>  }
>  
> @@ -985,49 +985,49 @@ filter_data_query(struct filter *filter, uint64_t token, uint64_t reqid, const c
>  static void
>  filter_result_proceed(uint64_t reqid)
>  {
> -       m_create(p_pony, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
> -       m_add_id(p_pony, reqid);
> -       m_add_int(p_pony, FILTER_PROCEED);
> -       m_close(p_pony);
> +       m_create(p_dispatcher, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
> +       m_add_id(p_dispatcher, reqid);
> +       m_add_int(p_dispatcher, FILTER_PROCEED);
> +       m_close(p_dispatcher);
>  }
>  
>  static void
>  filter_result_junk(uint64_t reqid)
>  {
> -       m_create(p_pony, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
> -       m_add_id(p_pony, reqid);
> -       m_add_int(p_pony, FILTER_JUNK);
> -       m_close(p_pony);
> +       m_create(p_dispatcher, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
> +       m_add_id(p_dispatcher, reqid);
> +       m_add_int(p_dispatcher, FILTER_JUNK);
> +       m_close(p_dispatcher);
>  }
>  
>  static void
>  filter_result_rewrite(uint64_t reqid, const char *param)
>  {
> -       m_create(p_pony, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
> -       m_add_id(p_pony, reqid);
> -       m_add_int(p_pony, FILTER_REWRITE);
> -       m_add_string(p_pony, param);
> -       m_close(p_pony);
> +       m_create(p_dispatcher, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
> +       m_add_id(p_dispatcher, reqid);
> +       m_add_int(p_dispatcher, FILTER_REWRITE);
> +       m_add_string(p_dispatcher, param);
> +       m_close(p_dispatcher);
>  }
>  
>  static void
>  filter_result_reject(uint64_t reqid, const char *message)
>  {
> -       m_create(p_pony, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
> -       m_add_id(p_pony, reqid);
> -       m_add_int(p_pony, FILTER_REJECT);
> -       m_add_string(p_pony, message);
> -       m_close(p_pony);
> +       m_create(p_dispatcher, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
> +       m_add_id(p_dispatcher, reqid);
> +       m_add_int(p_dispatcher, FILTER_REJECT);
> +       m_add_string(p_dispatcher, message);
> +       m_close(p_dispatcher);
>  }
>  
>  static void
>  filter_result_disconnect(uint64_t reqid, const char *message)
>  {
> -       m_create(p_pony, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
> -       m_add_id(p_pony, reqid);
> -       m_add_int(p_pony, FILTER_DISCONNECT);
> -       m_add_string(p_pony, message);
> -       m_close(p_pony);
> +       m_create(p_dispatcher, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
> +       m_add_id(p_dispatcher, reqid);
> +       m_add_int(p_dispatcher, FILTER_DISCONNECT);
> +       m_add_string(p_dispatcher, message);
> +       m_close(p_dispatcher);
>  }
>  
>  
> diff --git a/usr.sbin/smtpd/lka_session.c b/usr.sbin/smtpd/lka_session.c
> index ed1fd36fafd..4eb55c04689 100644
> --- a/usr.sbin/smtpd/lka_session.c
> +++ b/usr.sbin/smtpd/lka_session.c
> @@ -215,20 +215,20 @@ lka_resume(struct lka_session *lks)
>         }
>      error:
>         if (lks->error) {
> -               m_create(p_pony, IMSG_SMTP_EXPAND_RCPT, 0, 0, -1);
> -               m_add_id(p_pony, lks->id);
> -               m_add_int(p_pony, lks->error);
> +               m_create(p_dispatcher, IMSG_SMTP_EXPAND_RCPT, 0, 0, -1);
> +               m_add_id(p_dispatcher, lks->id);
> +               m_add_int(p_dispatcher, lks->error);
>  
>                 if (lks->errormsg)
> -                       m_add_string(p_pony, lks->errormsg);
> +                       m_add_string(p_dispatcher, lks->errormsg);
>                 else {
>                         if (lks->error == LKA_PERMFAIL)
> -                               m_add_string(p_pony, "550 Invalid recipient");
> +                               m_add_string(p_dispatcher, "550 Invalid recipient");
>                         else if (lks->error == LKA_TEMPFAIL)
> -                               m_add_string(p_pony, "451 Temporary failure");
> +                               m_add_string(p_dispatcher, "451 Temporary failure");
>                 }
>  
> -               m_close(p_pony);
> +               m_close(p_dispatcher);
>                 while ((ep = TAILQ_FIRST(&lks->deliverylist)) != NULL) {
>                         TAILQ_REMOVE(&lks->deliverylist, ep, entry);
>                         free(ep);
> diff --git a/usr.sbin/smtpd/parse.y b/usr.sbin/smtpd/parse.y
> index 9f1cb52ec98..b748fabd9ea 100644
> --- a/usr.sbin/smtpd/parse.y
> +++ b/usr.sbin/smtpd/parse.y
> @@ -103,7 +103,7 @@ struct mta_limits   *limits;
>  static struct pki      *pki;
>  static struct ca       *sca;
>  
> -struct dispatcher      *dispatcher;
> +struct dispatcher      *dsp;
>  struct rule            *rule;
>  struct filter_proc     *processor;
>  struct filter_config   *filter_config;
> @@ -582,37 +582,37 @@ SRS KEY STRING {
>  
>  dispatcher_local_option:
>  USER STRING {
> -       if (dispatcher->u.local.is_mbox) {
> +       if (dsp->u.local.is_mbox) {
>                 yyerror("user may not be specified for this dispatcher");
>                 YYERROR;
>         }
>  
> -       if (dispatcher->u.local.forward_only) {
> +       if (dsp->u.local.forward_only) {
>                 yyerror("user may not be specified for forward-only");
>                 YYERROR;
>         }
>  
> -       if (dispatcher->u.local.expand_only) {
> +       if (dsp->u.local.expand_only) {
>                 yyerror("user may not be specified for expand-only");
>                 YYERROR;
>         }
>  
> -       if (dispatcher->u.local.user) {
> +       if (dsp->u.local.user) {
>                 yyerror("user already specified for this dispatcher");
>                 YYERROR;
>         }
>  
> -       dispatcher->u.local.user = $2;
> +       dsp->u.local.user = $2;
>  }
>  | ALIAS tables {
>         struct table   *t = $2;
>  
> -       if (dispatcher->u.local.table_alias) {
> +       if (dsp->u.local.table_alias) {
>                 yyerror("alias mapping already specified for this dispatcher");
>                 YYERROR;
>         }
>  
> -       if (dispatcher->u.local.table_virtual) {
> +       if (dsp->u.local.table_virtual) {
>                 yyerror("virtual mapping already specified for this dispatcher");
>                 YYERROR;
>         }
> @@ -623,17 +623,17 @@ USER STRING {
>                 YYERROR;
>         }
>  
> -       dispatcher->u.local.table_alias = strdup(t->t_name);
> +       dsp->u.local.table_alias = strdup(t->t_name);
>  }
>  | VIRTUAL tables {
>         struct table   *t = $2;
>  
> -       if (dispatcher->u.local.table_virtual) {
> +       if (dsp->u.local.table_virtual) {
>                 yyerror("virtual mapping already specified for this dispatcher");
>                 YYERROR;
>         }
>  
> -       if (dispatcher->u.local.table_alias) {
> +       if (dsp->u.local.table_alias) {
>                 yyerror("alias mapping already specified for this dispatcher");
>                 YYERROR;
>         }
> @@ -644,12 +644,12 @@ USER STRING {
>                 YYERROR;
>         }
>  
> -       dispatcher->u.local.table_virtual = strdup(t->t_name);
> +       dsp->u.local.table_virtual = strdup(t->t_name);
>  }
>  | USERBASE tables {
>         struct table   *t = $2;
>  
> -       if (dispatcher->u.local.table_userbase) {
> +       if (dsp->u.local.table_userbase) {
>                 yyerror("userbase mapping already specified for this dispatcher");
>                 YYERROR;
>         }
> @@ -660,14 +660,14 @@ USER STRING {
>                 YYERROR;
>         }
>  
> -       dispatcher->u.local.table_userbase = strdup(t->t_name);
> +       dsp->u.local.table_userbase = strdup(t->t_name);
>  }
>  | WRAPPER STRING {
>         if (! dict_get(conf->sc_mda_wrappers, $2)) {
>                 yyerror("no mda wrapper with that name: %s", $2);
>                 YYERROR;
>         }
> -       dispatcher->u.local.mda_wrapper = $2;
> +       dsp->u.local.mda_wrapper = $2;
>  }
>  ;
>  
> @@ -678,67 +678,67 @@ dispatcher_local_option dispatcher_local_options
>  
>  dispatcher_local:
>  MBOX {
> -       dispatcher->u.local.is_mbox = 1;
> -       asprintf(&dispatcher->u.local.command, "/usr/libexec/mail.local -f %%{mbox.from} -- %%{user.username}");
> +       dsp->u.local.is_mbox = 1;
> +       asprintf(&dsp->u.local.command, "/usr/libexec/mail.local -f %%{mbox.from} -- %%{user.username}");
>  } dispatcher_local_options
>  | MAILDIR {
> -       asprintf(&dispatcher->u.local.command, "/usr/libexec/mail.maildir");
> +       asprintf(&dsp->u.local.command, "/usr/libexec/mail.maildir");
>  } dispatcher_local_options
>  | MAILDIR JUNK {
> -       asprintf(&dispatcher->u.local.command, "/usr/libexec/mail.maildir -j");
> +       asprintf(&dsp->u.local.command, "/usr/libexec/mail.maildir -j");
>  } dispatcher_local_options
>  | MAILDIR STRING {
>         if (strncmp($2, "~/", 2) == 0)
> -               asprintf(&dispatcher->u.local.command,
> +               asprintf(&dsp->u.local.command,
>                     "/usr/libexec/mail.maildir \"%%{user.directory}/%s\"", $2+2);
>         else
> -               asprintf(&dispatcher->u.local.command,
> +               asprintf(&dsp->u.local.command,
>                     "/usr/libexec/mail.maildir \"%s\"", $2);
>  } dispatcher_local_options
>  | MAILDIR STRING JUNK {
>         if (strncmp($2, "~/", 2) == 0)
> -               asprintf(&dispatcher->u.local.command,
> +               asprintf(&dsp->u.local.command,
>                     "/usr/libexec/mail.maildir -j \"%%{user.directory}/%s\"", $2+2);
>         else
> -               asprintf(&dispatcher->u.local.command,
> +               asprintf(&dsp->u.local.command,
>                     "/usr/libexec/mail.maildir -j \"%s\"", $2);
>  } dispatcher_local_options
>  | LMTP STRING {
> -       asprintf(&dispatcher->u.local.command,
> +       asprintf(&dsp->u.local.command,
>             "/usr/libexec/mail.lmtp -d %s -u", $2);
> -       dispatcher->u.local.user = SMTPD_USER;
> +       dsp->u.local.user = SMTPD_USER;
>  } dispatcher_local_options
>  | LMTP STRING RCPT_TO {
> -       asprintf(&dispatcher->u.local.command,
> +       asprintf(&dsp->u.local.command,
>             "/usr/libexec/mail.lmtp -d %s -r", $2);
> -       dispatcher->u.local.user = SMTPD_USER;
> +       dsp->u.local.user = SMTPD_USER;
>  } dispatcher_local_options
>  | MDA STRING {
> -       asprintf(&dispatcher->u.local.command,
> +       asprintf(&dsp->u.local.command,
>             "/usr/libexec/mail.mda \"%s\"", $2);
>  } dispatcher_local_options
>  | FORWARD_ONLY {
> -       dispatcher->u.local.forward_only = 1;
> +       dsp->u.local.forward_only = 1;
>  } dispatcher_local_options
>  | EXPAND_ONLY {
> -       dispatcher->u.local.expand_only = 1;
> +       dsp->u.local.expand_only = 1;
>  } dispatcher_local_options
>  
>  ;
>  
>  dispatcher_remote_option:
>  HELO STRING {
> -       if (dispatcher->u.remote.helo) {
> +       if (dsp->u.remote.helo) {
>                 yyerror("helo already specified for this dispatcher");
>                 YYERROR;
>         }
>  
> -       dispatcher->u.remote.helo = $2;
> +       dsp->u.remote.helo = $2;
>  }
>  | HELO_SRC tables {
>         struct table   *t = $2;
>  
> -       if (dispatcher->u.remote.helo_source) {
> +       if (dsp->u.remote.helo_source) {
>                 yyerror("helo-source mapping already specified for this dispatcher");
>                 YYERROR;
>         }
> @@ -748,28 +748,28 @@ HELO STRING {
>                 YYERROR;
>         }
>  
> -       dispatcher->u.remote.helo_source = strdup(t->t_name);
> +       dsp->u.remote.helo_source = strdup(t->t_name);
>  }
>  | PKI STRING {
> -       if (dispatcher->u.remote.pki) {
> +       if (dsp->u.remote.pki) {
>                 yyerror("pki already specified for this dispatcher");
>                 YYERROR;
>         }
>  
> -       dispatcher->u.remote.pki = $2;
> +       dsp->u.remote.pki = $2;
>  }
>  | CA STRING {
> -       if (dispatcher->u.remote.ca) {
> +       if (dsp->u.remote.ca) {
>                 yyerror("ca already specified for this dispatcher");
>                 YYERROR;
>         }
>  
> -       dispatcher->u.remote.ca = $2;
> +       dsp->u.remote.ca = $2;
>  }
>  | SRC tables {
>         struct table   *t = $2;
>  
> -       if (dispatcher->u.remote.source) {
> +       if (dsp->u.remote.source) {
>                 yyerror("source mapping already specified for this dispatcher");
>                 YYERROR;
>         }
> @@ -780,49 +780,49 @@ HELO STRING {
>                 YYERROR;
>         }
>  
> -       dispatcher->u.remote.source = strdup(t->t_name);
> +       dsp->u.remote.source = strdup(t->t_name);
>  }
>  | MAIL_FROM STRING {
> -       if (dispatcher->u.remote.mail_from) {
> +       if (dsp->u.remote.mail_from) {
>                 yyerror("mail-from already specified for this dispatcher");
>                 YYERROR;
>         }
>  
> -       dispatcher->u.remote.mail_from = $2;
> +       dsp->u.remote.mail_from = $2;
>  }
>  | BACKUP MX STRING {
> -       if (dispatcher->u.remote.backup) {
> +       if (dsp->u.remote.backup) {
>                 yyerror("backup already specified for this dispatcher");
>                 YYERROR;
>         }
> -       if (dispatcher->u.remote.smarthost) {
> +       if (dsp->u.remote.smarthost) {
>                 yyerror("backup and host are mutually exclusive");
>                 YYERROR;
>         }
>  
> -       dispatcher->u.remote.backup = 1;
> -       dispatcher->u.remote.backupmx = $3;
> +       dsp->u.remote.backup = 1;
> +       dsp->u.remote.backupmx = $3;
>  }
>  | BACKUP {
> -       if (dispatcher->u.remote.backup) {
> +       if (dsp->u.remote.backup) {
>                 yyerror("backup already specified for this dispatcher");
>                 YYERROR;
>         }
> -       if (dispatcher->u.remote.smarthost) {
> +       if (dsp->u.remote.smarthost) {
>                 yyerror("backup and host are mutually exclusive");
>                 YYERROR;
>         }
>  
> -       dispatcher->u.remote.backup = 1;
> +       dsp->u.remote.backup = 1;
>  }
>  | HOST tables {
>         struct table   *t = $2;
>  
> -       if (dispatcher->u.remote.smarthost) {
> +       if (dsp->u.remote.smarthost) {
>                 yyerror("host mapping already specified for this dispatcher");
>                 YYERROR;
>         }
> -       if (dispatcher->u.remote.backup) {
> +       if (dsp->u.remote.backup) {
>                 yyerror("backup and host are mutually exclusive");
>                 YYERROR;
>         }
> @@ -833,16 +833,16 @@ HELO STRING {
>                 YYERROR;
>         }
>  
> -       dispatcher->u.remote.smarthost = strdup(t->t_name);
> +       dsp->u.remote.smarthost = strdup(t->t_name);
>  }
>  | DOMAIN tables {
>         struct table   *t = $2;
>  
> -       if (dispatcher->u.remote.smarthost) {
> +       if (dsp->u.remote.smarthost) {
>                 yyerror("host mapping already specified for this dispatcher");
>                 YYERROR;
>         }
> -       if (dispatcher->u.remote.backup) {
> +       if (dsp->u.remote.backup) {
>                 yyerror("backup and domain are mutually exclusive");
>                 YYERROR;
>         }
> @@ -853,35 +853,35 @@ HELO STRING {
>                 YYERROR;
>         }
>  
> -       dispatcher->u.remote.smarthost = strdup(t->t_name);
> -       dispatcher->u.remote.smarthost_domain = 1;
> +       dsp->u.remote.smarthost = strdup(t->t_name);
> +       dsp->u.remote.smarthost_domain = 1;
>  }
>  | TLS {
> -       if (dispatcher->u.remote.tls_required == 1) {
> +       if (dsp->u.remote.tls_required == 1) {
>                 yyerror("tls already specified for this dispatcher");
>                 YYERROR;
>         }
>  
> -       dispatcher->u.remote.tls_required = 1;
> +       dsp->u.remote.tls_required = 1;
>  }
>  | TLS NO_VERIFY {
> -       if (dispatcher->u.remote.tls_required == 1) {
> +       if (dsp->u.remote.tls_required == 1) {
>                 yyerror("tls already specified for this dispatcher");
>                 YYERROR;
>         }
>  
> -       dispatcher->u.remote.tls_required = 1;
> -       dispatcher->u.remote.tls_noverify = 1;
> +       dsp->u.remote.tls_required = 1;
> +       dsp->u.remote.tls_noverify = 1;
>  }
>  | AUTH tables {
>         struct table   *t = $2;
>  
> -       if (dispatcher->u.remote.smarthost == NULL) {
> +       if (dsp->u.remote.smarthost == NULL) {
>                 yyerror("auth may not be specified without host on a dispatcher");
>                 YYERROR;
>         }
>  
> -       if (dispatcher->u.remote.auth) {
> +       if (dsp->u.remote.auth) {
>                 yyerror("auth mapping already specified for this dispatcher");
>                 YYERROR;
>         }
> @@ -892,12 +892,12 @@ HELO STRING {
>                 YYERROR;
>         }
>  
> -       dispatcher->u.remote.auth = strdup(t->t_name);
> +       dsp->u.remote.auth = strdup(t->t_name);
>  }
>  | FILTER STRING {
>         struct filter_config *fc;
>  
> -       if (dispatcher->u.remote.filtername) {
> +       if (dsp->u.remote.filtername) {
>                 yyerror("filter already specified for this dispatcher");
>                 YYERROR;
>         }
> @@ -908,13 +908,13 @@ HELO STRING {
>                 YYERROR;
>         }
>         fc->filter_subsystem |= FILTER_SUBSYSTEM_SMTP_OUT;
> -       dispatcher->u.remote.filtername = $2;
> +       dsp->u.remote.filtername = $2;
>  }
>  | FILTER {
>         char    buffer[128];
>         char    *filtername;
>  
> -       if (dispatcher->u.remote.filtername) {
> +       if (dsp->u.remote.filtername) {
>                 yyerror("filter already specified for this dispatcher");
>                 YYERROR;
>         }
> @@ -928,9 +928,9 @@ HELO STRING {
>         filter_config->filter_type = FILTER_TYPE_CHAIN;
>         filter_config->filter_subsystem |= FILTER_SUBSYSTEM_SMTP_OUT;
>         dict_init(&filter_config->chain_procs);
> -       dispatcher->u.remote.filtername = filtername;
> +       dsp->u.remote.filtername = filtername;
>  } '{' filter_list '}' {
> -       dict_set(conf->sc_filters_dict, dispatcher->u.remote.filtername, filter_config);
> +       dict_set(conf->sc_filters_dict, dsp->u.remote.filtername, filter_config);
>         filter_config = NULL;
>  }
>  | SRS {
> @@ -938,12 +938,12 @@ HELO STRING {
>                 yyerror("an srs key is required for srs to be specified in an action");
>                 YYERROR;
>         }
> -       if (dispatcher->u.remote.srs == 1) {
> +       if (dsp->u.remote.srs == 1) {
>                 yyerror("srs already specified for this dispatcher");
>                 YYERROR;
>         }
>  
> -       dispatcher->u.remote.srs = 1;
> +       dsp->u.remote.srs = 1;
>  }
>  ;
>  
> @@ -958,22 +958,22 @@ RELAY dispatcher_remote_options
>  
>  dispatcher_type:
>  dispatcher_local {
> -       dispatcher->type = DISPATCHER_LOCAL;
> +       dsp->type = DISPATCHER_LOCAL;
>  }
>  | dispatcher_remote {
> -       dispatcher->type = DISPATCHER_REMOTE;
> +       dsp->type = DISPATCHER_REMOTE;
>  }
>  ;
>  
>  dispatcher_option:
>  TTL STRING {
> -       if (dispatcher->ttl) {
> +       if (dsp->ttl) {
>                 yyerror("ttl already specified for this dispatcher");
>                 YYERROR;
>         }
>  
> -       dispatcher->ttl = delaytonum($2);
> -       if (dispatcher->ttl == -1) {
> +       dsp->ttl = delaytonum($2);
> +       if (dsp->ttl == -1) {
>                 yyerror("ttl delay \"%s\" is invalid", $2);
>                 free($2);
>                 YYERROR;
> @@ -993,13 +993,13 @@ ACTION STRING {
>                 yyerror("dispatcher already declared with that name: %s", $2);
>                 YYERROR;
>         }
> -       dispatcher = xcalloc(1, sizeof *dispatcher);
> +       dsp = xcalloc(1, sizeof *dsp);
>  } dispatcher_type dispatcher_options {
> -       if (dispatcher->type == DISPATCHER_LOCAL)
> -               if (dispatcher->u.local.table_userbase == NULL)
> -                       dispatcher->u.local.table_userbase = "<getpwnam>";
> -       dict_set(conf->sc_dispatchers, $2, dispatcher);
> -       dispatcher = NULL;
> +       if (dsp->type == DISPATCHER_LOCAL)
> +               if (dsp->u.local.table_userbase == NULL)
> +                       dsp->u.local.table_userbase = "<getpwnam>";
> +       dict_set(conf->sc_dispatchers, $2, dsp);
> +       dsp = NULL;
>  }
>  ;
>  
> diff --git a/usr.sbin/smtpd/pony.c b/usr.sbin/smtpd/pony.c
> index 026d647307a..d533179a5df 100644
> --- a/usr.sbin/smtpd/pony.c
> +++ b/usr.sbin/smtpd/pony.c
> @@ -44,16 +44,16 @@ void mda_imsg(struct mproc *, struct imsg *);
>  void mta_imsg(struct mproc *, struct imsg *);
>  void smtp_imsg(struct mproc *, struct imsg *);
>  
> -static void pony_shutdown(void);
> +static void dispatcher_shutdown(void);
>  
>  void
> -pony_imsg(struct mproc *p, struct imsg *imsg)
> +dispatcher_imsg(struct mproc *p, struct imsg *imsg)
>  {
>         struct msg      m;
>         int             v;
>  
>         if (imsg == NULL)
> -               pony_shutdown();
> +               dispatcher_shutdown();
>  
>         switch (imsg->hdr.type) {
>  
> @@ -143,14 +143,14 @@ pony_imsg(struct mproc *p, struct imsg *imsg)
>  }
>  
>  static void
> -pony_shutdown(void)
> +dispatcher_shutdown(void)
>  {
> -       log_debug("debug: pony agent exiting");
> +       log_debug("debug: dispatcher agent exiting");
>         _exit(0);
>  }
>  
>  int
> -pony(void)
> +dispatcher(void)
>  {
>         struct passwd   *pw;
>  
> @@ -167,18 +167,18 @@ pony(void)
>                 fatalx("unknown user " SMTPD_USER);
>  
>         if (chroot(PATH_CHROOT) == -1)
> -               fatal("pony: chroot");
> +               fatal("dispatcher: chroot");
>         if (chdir("/") == -1)
> -               fatal("pony: chdir(\"/\")");
> +               fatal("dispatcher: chdir(\"/\")");
>  
> -       config_process(PROC_PONY);
> +       config_process(PROC_DISPATCHER);
>  
>         if (setgroups(1, &pw->pw_gid) ||
>             setresgid(pw->pw_gid, pw->pw_gid, pw->pw_gid) ||
>             setresuid(pw->pw_uid, pw->pw_uid, pw->pw_uid))
> -               fatal("pony: cannot drop privileges");
> +               fatal("dispatcher: cannot drop privileges");
>  
> -       imsg_callback = pony_imsg;
> +       imsg_callback = dispatcher_imsg;
>         event_init();
>  
>         mda_postprivdrop();
> diff --git a/usr.sbin/smtpd/queue.c b/usr.sbin/smtpd/queue.c
> index 3739fe22750..0a621709764 100644
> --- a/usr.sbin/smtpd/queue.c
> +++ b/usr.sbin/smtpd/queue.c
> @@ -152,15 +152,15 @@ queue_imsg(struct mproc *p, struct imsg *imsg)
>                         log_warnx("warn: imsg_queue_submit_envelope: msgid=0, "
>                             "evpid=%016"PRIx64, evp.id);
>                 ret = queue_envelope_create(&evp);
> -               m_create(p_pony, IMSG_QUEUE_ENVELOPE_SUBMIT, 0, 0, -1);
> -               m_add_id(p_pony, reqid);
> +               m_create(p_dispatcher, IMSG_QUEUE_ENVELOPE_SUBMIT, 0, 0, -1);
> +               m_add_id(p_dispatcher, reqid);
>                 if (ret == 0)
> -                       m_add_int(p_pony, 0);
> +                       m_add_int(p_dispatcher, 0);
>                 else {
> -                       m_add_int(p_pony, 1);
> -                       m_add_evpid(p_pony, evp.id);
> +                       m_add_int(p_dispatcher, 1);
> +                       m_add_evpid(p_dispatcher, evp.id);
>                 }
> -               m_close(p_pony);
> +               m_close(p_dispatcher);
>                 if (ret) {
>                         m_create(p_scheduler,
>                             IMSG_QUEUE_ENVELOPE_SUBMIT, 0, 0, -1);
> @@ -173,10 +173,10 @@ queue_imsg(struct mproc *p, struct imsg *imsg)
>                 m_msg(&m, imsg);
>                 m_get_id(&m, &reqid);
>                 m_end(&m);
> -               m_create(p_pony, IMSG_QUEUE_ENVELOPE_COMMIT, 0, 0, -1);
> -               m_add_id(p_pony, reqid);
> -               m_add_int(p_pony, 1);
> -               m_close(p_pony);
> +               m_create(p_dispatcher, IMSG_QUEUE_ENVELOPE_COMMIT, 0, 0, -1);
> +               m_add_id(p_dispatcher, reqid);
> +               m_add_int(p_dispatcher, 1);
> +               m_close(p_dispatcher);
>                 return;
>  
>         case IMSG_SCHED_ENVELOPE_REMOVE:
> @@ -250,9 +250,9 @@ queue_imsg(struct mproc *p, struct imsg *imsg)
>                         return;
>                 }
>                 evp.lasttry = time(NULL);
> -               m_create(p_pony, IMSG_QUEUE_DELIVER, 0, 0, -1);
> -               m_add_envelope(p_pony, &evp);
> -               m_close(p_pony);
> +               m_create(p_dispatcher, IMSG_QUEUE_DELIVER, 0, 0, -1);
> +               m_add_envelope(p_dispatcher, &evp);
> +               m_close(p_dispatcher);
>                 return;
>  
>         case IMSG_SCHED_ENVELOPE_INJECT:
> @@ -275,9 +275,9 @@ queue_imsg(struct mproc *p, struct imsg *imsg)
>                         return;
>                 }
>                 evp.lasttry = time(NULL);
> -               m_create(p_pony, IMSG_QUEUE_TRANSFER, 0, 0, -1);
> -               m_add_envelope(p_pony, &evp);
> -               m_close(p_pony);
> +               m_create(p_dispatcher, IMSG_QUEUE_TRANSFER, 0, 0, -1);
> +               m_add_envelope(p_dispatcher, &evp);
> +               m_close(p_dispatcher);
>                 return;
>  
>         case IMSG_CTL_LIST_ENVELOPES:
> @@ -665,7 +665,7 @@ queue(void)
>         config_peer(PROC_CONTROL);
>         config_peer(PROC_LKA);
>         config_peer(PROC_SCHEDULER);
> -       config_peer(PROC_PONY);
> +       config_peer(PROC_DISPATCHER);
>  
>         /* setup queue loading task */
>         evtimer_set(&ev_qload, queue_timeout, &ev_qload);
> diff --git a/usr.sbin/smtpd/smtpd.c b/usr.sbin/smtpd/smtpd.c
> index 854c2ab0cb6..f15411757ee 100644
> --- a/usr.sbin/smtpd/smtpd.c
> +++ b/usr.sbin/smtpd/smtpd.c
> @@ -66,7 +66,7 @@ static int smtpd(void);
>  static void parent_shutdown(void);
>  static void parent_send_config(int, short, void *);
>  static void parent_send_config_lka(void);
> -static void parent_send_config_pony(void);
> +static void parent_send_config_dispatcher(void);
>  static void parent_send_config_ca(void);
>  static void parent_sig_handler(int, short, void *);
>  static void forkmda(struct mproc *, uint64_t, struct deliver *);
> @@ -140,7 +140,7 @@ struct mproc        *p_lka = NULL;
>  struct mproc   *p_parent = NULL;
>  struct mproc   *p_queue = NULL;
>  struct mproc   *p_scheduler = NULL;
> -struct mproc   *p_pony = NULL;
> +struct mproc   *p_dispatcher = NULL;
>  struct mproc   *p_ca = NULL;
>  
>  const char     *backend_queue = "fs";
> @@ -289,7 +289,7 @@ parent_shutdown(void)
>         pid_t pid;
>  
>         mproc_clear(p_ca);
> -       mproc_clear(p_pony);
> +       mproc_clear(p_dispatcher);
>         mproc_clear(p_control);
>         mproc_clear(p_lka);
>         mproc_clear(p_scheduler);
> @@ -309,17 +309,17 @@ static void
>  parent_send_config(int fd, short event, void *p)
>  {
>         parent_send_config_lka();
> -       parent_send_config_pony();
> +       parent_send_config_dispatcher();
>         parent_send_config_ca();
>         purge_config(PURGE_PKI);
>  }
>  
>  static void
> -parent_send_config_pony(void)
> +parent_send_config_dispatcher(void)
>  {
> -       log_debug("debug: parent_send_config: configuring pony process");
> -       m_compose(p_pony, IMSG_CONF_START, 0, 0, -1, NULL, 0);
> -       m_compose(p_pony, IMSG_CONF_END, 0, 0, -1, NULL, 0);
> +       log_debug("debug: parent_send_config: configuring dispatcher process");
> +       m_compose(p_dispatcher, IMSG_CONF_START, 0, 0, -1, NULL, 0);
> +       m_compose(p_dispatcher, IMSG_CONF_END, 0, 0, -1, NULL, 0);
>  }
>  
>  void
> @@ -437,13 +437,13 @@ parent_sig_handler(int sig, short event, void *p)
>                                     "for session %016"PRIx64 ": %s",
>                                     child->mda_id, cause);
>  
> -                               m_create(p_pony, IMSG_MDA_DONE, 0, 0,
> +                               m_create(p_dispatcher, IMSG_MDA_DONE, 0, 0,
>                                     child->mda_out);
> -                               m_add_id(p_pony, child->mda_id);
> -                               m_add_int(p_pony, mda_status);
> -                               m_add_int(p_pony, mda_sysexit);
> -                               m_add_string(p_pony, cause);
> -                               m_close(p_pony);
> +                               m_add_id(p_dispatcher, child->mda_id);
> +                               m_add_int(p_dispatcher, mda_status);
> +                               m_add_int(p_dispatcher, mda_sysexit);
> +                               m_add_string(p_dispatcher, cause);
> +                               m_close(p_dispatcher);
>  
>                                 break;
>  
> @@ -698,8 +698,8 @@ main(int argc, char *argv[])
>                 p_lka = start_child(save_argc, save_argv, "lka");
>                 p_lka->proc = PROC_LKA;
>  
> -               p_pony = start_child(save_argc, save_argv, "pony");
> -               p_pony->proc = PROC_PONY;
> +               p_dispatcher = start_child(save_argc, save_argv, "dispatcher");
> +               p_dispatcher->proc = PROC_DISPATCHER;
>  
>                 p_queue = start_child(save_argc, save_argv, "queue");
>                 p_queue->proc = PROC_QUEUE;
> @@ -709,12 +709,12 @@ main(int argc, char *argv[])
>  
>                 setup_peers(p_control, p_ca);
>                 setup_peers(p_control, p_lka);
> -               setup_peers(p_control, p_pony);
> +               setup_peers(p_control, p_dispatcher);
>                 setup_peers(p_control, p_queue);
>                 setup_peers(p_control, p_scheduler);
> -               setup_peers(p_pony, p_ca);
> -               setup_peers(p_pony, p_lka);
> -               setup_peers(p_pony, p_queue);
> +               setup_peers(p_dispatcher, p_ca);
> +               setup_peers(p_dispatcher, p_lka);
> +               setup_peers(p_dispatcher, p_queue);
>                 setup_peers(p_queue, p_lka);
>                 setup_peers(p_queue, p_scheduler);
>  
> @@ -730,7 +730,7 @@ main(int argc, char *argv[])
>                 setup_done(p_ca);
>                 setup_done(p_control);
>                 setup_done(p_lka);
> -               setup_done(p_pony);
> +               setup_done(p_dispatcher);
>                 setup_done(p_queue);
>                 setup_done(p_scheduler);
>  
> @@ -767,11 +767,11 @@ main(int argc, char *argv[])
>                 return lka();
>         }
>  
> -       else if (!strcmp(rexec, "pony")) {
> -               smtpd_process = PROC_PONY;
> +       else if (!strcmp(rexec, "dispatcher")) {
> +               smtpd_process = PROC_DISPATCHER;
>                 setup_proc();
>  
> -               return pony();
> +               return dispatcher();
>         }
>  
>         else if (!strcmp(rexec, "queue")) {
> @@ -978,8 +978,8 @@ setup_peer(enum smtp_proc_type proc, pid_t pid, int sock)
>         case PROC_SCHEDULER:
>                 pp = &p_scheduler;
>                 break;
> -       case PROC_PONY:
> -               pp = &p_pony;
> +       case PROC_DISPATCHER:
> +               pp = &p_dispatcher;
>                 break;
>         case PROC_CA:
>                 pp = &p_ca;
> @@ -1050,7 +1050,7 @@ smtpd(void) {
>         child_add(p_control->pid, CHILD_DAEMON, proc_title(PROC_CONTROL));
>         child_add(p_lka->pid, CHILD_DAEMON, proc_title(PROC_LKA));
>         child_add(p_scheduler->pid, CHILD_DAEMON, proc_title(PROC_SCHEDULER));
> -       child_add(p_pony->pid, CHILD_DAEMON, proc_title(PROC_PONY));
> +       child_add(p_dispatcher->pid, CHILD_DAEMON, proc_title(PROC_DISPATCHER));
>         child_add(p_ca->pid, CHILD_DAEMON, proc_title(PROC_CA));
>  
>         event_init();
> @@ -1069,7 +1069,7 @@ smtpd(void) {
>         config_peer(PROC_LKA);
>         config_peer(PROC_QUEUE);
>         config_peer(PROC_CA);
> -       config_peer(PROC_PONY);
> +       config_peer(PROC_DISPATCHER);
>  
>         evtimer_set(&config_ev, parent_send_config, NULL);
>         memset(&tv, 0, sizeof(tv));
> @@ -1421,12 +1421,12 @@ forkmda(struct mproc *p, uint64_t id, struct deliver *deliver)
>                         (void)snprintf(ebuf, sizeof ebuf,
>                             "delivery user '%s' does not exist",
>                             dsp->u.local.user);
> -                       m_create(p_pony, IMSG_MDA_DONE, 0, 0, -1);
> -                       m_add_id(p_pony, id);
> -                       m_add_int(p_pony, MDA_PERMFAIL);
> -                       m_add_int(p_pony, EX_NOUSER);
> -                       m_add_string(p_pony, ebuf);
> -                       m_close(p_pony);
> +                       m_create(p_dispatcher, IMSG_MDA_DONE, 0, 0, -1);
> +                       m_add_id(p_dispatcher, id);
> +                       m_add_int(p_dispatcher, MDA_PERMFAIL);
> +                       m_add_int(p_dispatcher, EX_NOUSER);
> +                       m_add_string(p_dispatcher, ebuf);
> +                       m_close(p_dispatcher);
>                         return;
>                 }
>                 pw_name = pw->pw_name;
> @@ -1451,23 +1451,23 @@ forkmda(struct mproc *p, uint64_t id, struct deliver *deliver)
>         if (pw_uid == 0 && !dsp->u.local.is_mbox) {
>                 (void)snprintf(ebuf, sizeof ebuf, "not allowed to deliver to: %s",
>                     deliver->userinfo.username);
> -               m_create(p_pony, IMSG_MDA_DONE, 0, 0, -1);
> -               m_add_id(p_pony, id);
> -               m_add_int(p_pony, MDA_PERMFAIL);
> -               m_add_int(p_pony, EX_NOPERM);
> -               m_add_string(p_pony, ebuf);
> -               m_close(p_pony);
> +               m_create(p_dispatcher, IMSG_MDA_DONE, 0, 0, -1);
> +               m_add_id(p_dispatcher, id);
> +               m_add_int(p_dispatcher, MDA_PERMFAIL);
> +               m_add_int(p_dispatcher, EX_NOPERM);
> +               m_add_string(p_dispatcher, ebuf);
> +               m_close(p_dispatcher);
>                 return;
>         }
>  
>         if (pipe(pipefd) == -1) {
>                 (void)snprintf(ebuf, sizeof ebuf, "pipe: %s", strerror(errno));
> -               m_create(p_pony, IMSG_MDA_DONE, 0, 0, -1);
> -               m_add_id(p_pony, id);
> -               m_add_int(p_pony, MDA_TEMPFAIL);
> -               m_add_int(p_pony, EX_OSERR);
> -               m_add_string(p_pony, ebuf);
> -               m_close(p_pony);
> +               m_create(p_dispatcher, IMSG_MDA_DONE, 0, 0, -1);
> +               m_add_id(p_dispatcher, id);
> +               m_add_int(p_dispatcher, MDA_TEMPFAIL);
> +               m_add_int(p_dispatcher, EX_OSERR);
> +               m_add_string(p_dispatcher, ebuf);
> +               m_close(p_dispatcher);
>                 return;
>         }
>  
> @@ -1476,12 +1476,12 @@ forkmda(struct mproc *p, uint64_t id, struct deliver *deliver)
>         allout = mkstemp(sfn);
>         if (allout == -1) {
>                 (void)snprintf(ebuf, sizeof ebuf, "mkstemp: %s", strerror(errno));
> -               m_create(p_pony, IMSG_MDA_DONE, 0, 0, -1);
> -               m_add_id(p_pony, id);
> -               m_add_int(p_pony, MDA_TEMPFAIL);
> -               m_add_int(p_pony, EX_OSERR);
> -               m_add_string(p_pony, ebuf);
> -               m_close(p_pony);
> +               m_create(p_dispatcher, IMSG_MDA_DONE, 0, 0, -1);
> +               m_add_id(p_dispatcher, id);
> +               m_add_int(p_dispatcher, MDA_TEMPFAIL);
> +               m_add_int(p_dispatcher, EX_OSERR);
> +               m_add_string(p_dispatcher, ebuf);
> +               m_close(p_dispatcher);
>                 close(pipefd[0]);
>                 close(pipefd[1]);
>                 return;
> @@ -1491,12 +1491,12 @@ forkmda(struct mproc *p, uint64_t id, struct deliver *deliver)
>         pid = fork();
>         if (pid == -1) {
>                 (void)snprintf(ebuf, sizeof ebuf, "fork: %s", strerror(errno));
> -               m_create(p_pony, IMSG_MDA_DONE, 0, 0, -1);
> -               m_add_id(p_pony, id);
> -               m_add_int(p_pony, MDA_TEMPFAIL);
> -               m_add_int(p_pony, EX_OSERR);
> -               m_add_string(p_pony, ebuf);
> -               m_close(p_pony);
> +               m_create(p_dispatcher, IMSG_MDA_DONE, 0, 0, -1);
> +               m_add_id(p_dispatcher, id);
> +               m_add_int(p_dispatcher, MDA_TEMPFAIL);
> +               m_add_int(p_dispatcher, EX_OSERR);
> +               m_add_string(p_dispatcher, ebuf);
> +               m_close(p_dispatcher);
>                 close(pipefd[0]);
>                 close(pipefd[1]);
>                 close(allout);
> @@ -1912,10 +1912,10 @@ proc_title(enum smtp_proc_type proc)
>                 return "control";
>         case PROC_SCHEDULER:
>                 return "scheduler";
> -       case PROC_PONY:
> -               return "pony express";
> +       case PROC_DISPATCHER:
> +               return "dispatcher";
>         case PROC_CA:
> -               return "klondike";
> +               return "crypto";
>         case PROC_CLIENT:
>                 return "client";
>         case PROC_PROCESSOR:
> @@ -1938,8 +1938,8 @@ proc_name(enum smtp_proc_type proc)
>                 return "control";
>         case PROC_SCHEDULER:
>                 return "scheduler";
> -       case PROC_PONY:
> -               return "pony";
> +       case PROC_DISPATCHER:
> +               return "dispatcher";
>         case PROC_CA:
>                 return "ca";
>         case PROC_CLIENT:
> diff --git a/usr.sbin/smtpd/smtpd.h b/usr.sbin/smtpd/smtpd.h
> index 529ff683f76..36c85eb2c18 100644
> --- a/usr.sbin/smtpd/smtpd.h
> +++ b/usr.sbin/smtpd/smtpd.h
> @@ -345,7 +345,7 @@ enum smtp_proc_type {
>         PROC_QUEUE,
>         PROC_CONTROL,
>         PROC_SCHEDULER,
> -       PROC_PONY,
> +       PROC_DISPATCHER,
>         PROC_CA,
>         PROC_PROCESSOR,
>         PROC_CLIENT,
> @@ -1007,7 +1007,7 @@ extern struct mproc *p_parent;
>  extern struct mproc *p_lka;
>  extern struct mproc *p_queue;
>  extern struct mproc *p_scheduler;
> -extern struct mproc *p_pony;
> +extern struct mproc *p_dispatcher;
>  extern struct mproc *p_ca;
>  
>  extern struct smtpd    *env;
> @@ -1580,8 +1580,8 @@ void scheduler_info(struct scheduler_info *, struct envelope *);
>  
>  
>  /* pony.c */
> -int pony(void);
> -void pony_imsg(struct mproc *, struct imsg *);
> +int dispatcher(void);
> +void dispatcher_imsg(struct mproc *, struct imsg *);
>  
>  
>  /* resolver.c */
>


Reply | Threaded
Open this post in threaded view
|

Re: [diff] src/usr.sbin/smtpd: change process names

Gilles Chehade-7
it's slightly different:

ca is for "crypto agent" unsure if there's really an interest in renaming internally,
furthermore there's a separate crypto API for encrypted queue so not distinguishing
between crypto api and crypto agent might be confusing.

Gilles


December 27, 2020 5:43 PM, "Martijn van Duren" <[hidden email]> wrote:

> This one reads OK to me, with one minor bikeshed:
> You rename klondike to crypto, but the internals still refer to CA
> everywhere. Wouldn't it be cleaner to leave klondike in step one and do
> a s/CA/CRYPTO/ in a second step so everything is in concent?
> Personally I prefer the name crypto over ca.
>
> martijn@
>
> On Sat, 2020-12-19 at 23:21 +0000, [hidden email] wrote:
>
>> December 19, 2020 11:26 PM, "Martijn van Duren" <[hidden email]> wrote:
>>
>> Personally I'd rather wait to keep the names in sync, especially since
>> it's an easy 2 line diff that can easily be incorperated in the bigger
>> thing. But it's not something I'm going to loose sleep over if others
>> thing it can go in right now.
>>
>> Fair enough :-)
>>
>> Below is the diff that changes all references to pony into dispatcher.
>>
>> I didn't rename pony.c to dispatcher.c as this would break the diff, but if this gets
>> committed I'll submit a diff for the rename + Makefile bit
>>
>> diff --git a/usr.sbin/smtpd/bounce.c b/usr.sbin/smtpd/bounce.c
>> index e6fc55780a1..455da6ff8b1 100644
>> --- a/usr.sbin/smtpd/bounce.c
>> +++ b/usr.sbin/smtpd/bounce.c
>> @@ -290,7 +290,7 @@ bounce_drain()
>> }
>>
>> log_debug("debug: bounce: requesting new enqueue socket...");
>> -               m_compose(p_pony, IMSG_QUEUE_SMTP_SESSION, 0, 0, -1, NULL, 0);
>> +               m_compose(p_dispatcher, IMSG_QUEUE_SMTP_SESSION, 0, 0, -1, NULL, 0);
>>
>> running += 1;
>> }
>> diff --git a/usr.sbin/smtpd/ca.c b/usr.sbin/smtpd/ca.c
>> index fdc177e28b3..0299ee6cecc 100644
>> --- a/usr.sbin/smtpd/ca.c
>> +++ b/usr.sbin/smtpd/ca.c
>> @@ -110,10 +110,10 @@ ca(void)
>>
>> config_peer(PROC_CONTROL);
>> config_peer(PROC_PARENT);
>> -       config_peer(PROC_PONY);
>> +       config_peer(PROC_DISPATCHER);
>>
>> /* Ignore them until we get our config */
>> -       mproc_disable(p_pony);
>> +       mproc_disable(p_dispatcher);
>>
>> if (pledge("stdio", NULL) == -1)
>> err(1, "pledge");
>> @@ -246,7 +246,7 @@ ca_imsg(struct mproc *p, struct imsg *imsg)
>> ca_init();
>>
>> /* Start fulfilling requests */
>> -               mproc_enable(p_pony);
>> +               mproc_enable(p_dispatcher);
>> return;
>>
>> case IMSG_CTL_VERBOSE:
>> @@ -385,7 +385,7 @@ rsae_send_imsg(int flen, const unsigned char *from, unsigned char *to,
>> if (n == 0)
>> break;
>>
>> -                       log_imsg(PROC_PONY, PROC_CA, &imsg);
>> +                       log_imsg(PROC_DISPATCHER, PROC_CA, &imsg);
>>
>> switch (imsg.hdr.type) {
>> case IMSG_CA_RSA_PRIVENC:
>> @@ -393,7 +393,7 @@ rsae_send_imsg(int flen, const unsigned char *from, unsigned char *to,
>> break;
>> default:
>> /* Another imsg is queued up in the buffer */
>> -                               pony_imsg(p_ca, &imsg);
>> +                               dispatcher_imsg(p_ca, &imsg);
>> imsg_free(&imsg);
>> continue;
>> }
>> @@ -569,14 +569,14 @@ ecdsae_send_enc_imsg(const unsigned char *dgst, int dgst_len,
>> if (n == 0)
>> break;
>>
>> -                       log_imsg(PROC_PONY, PROC_CA, &imsg);
>> +                       log_imsg(PROC_DISPATCHER, PROC_CA, &imsg);
>>
>> switch (imsg.hdr.type) {
>> case IMSG_CA_ECDSA_SIGN:
>> break;
>> default:
>> /* Another imsg is queued up in the buffer */
>> -                               pony_imsg(p_ca, &imsg);
>> +                               dispatcher_imsg(p_ca, &imsg);
>> imsg_free(&imsg);
>> continue;
>> }
>> diff --git a/usr.sbin/smtpd/config.c b/usr.sbin/smtpd/config.c
>> index 529420ac0f2..2882349ceba 100644
>> --- a/usr.sbin/smtpd/config.c
>> +++ b/usr.sbin/smtpd/config.c
>> @@ -325,8 +325,8 @@ config_peer(enum smtp_proc_type proc)
>> p = p_queue;
>> else if (proc == PROC_SCHEDULER)
>> p = p_scheduler;
>> -       else if (proc == PROC_PONY)
>> -               p = p_pony;
>> +       else if (proc == PROC_DISPATCHER)
>> +               p = p_dispatcher;
>> else if (proc == PROC_CA)
>> p = p_ca;
>> else
>> diff --git a/usr.sbin/smtpd/control.c b/usr.sbin/smtpd/control.c
>> index 6ea52b62cfb..e9e19cd1870 100644
>> --- a/usr.sbin/smtpd/control.c
>> +++ b/usr.sbin/smtpd/control.c
>> @@ -248,7 +248,7 @@ control(void)
>> config_peer(PROC_QUEUE);
>> config_peer(PROC_PARENT);
>> config_peer(PROC_LKA);
>> -       config_peer(PROC_PONY);
>> +       config_peer(PROC_DISPATCHER);
>> config_peer(PROC_CA);
>>
>> control_listen();
>> @@ -450,7 +450,7 @@ control_dispatch_ext(struct mproc *p, struct imsg *imsg)
>> m_compose(p, IMSG_CTL_FAIL, 0, 0, -1, NULL, 0);
>> return;
>> }
>> -               m_compose(p_pony, IMSG_CTL_SMTP_SESSION, c->id, 0, -1,
>> +               m_compose(p_dispatcher, IMSG_CTL_SMTP_SESSION, c->id, 0, -1,
>> &c->euid, sizeof(c->euid));
>> return;
>>
>> @@ -597,7 +597,7 @@ control_dispatch_ext(struct mproc *p, struct imsg *imsg)
>> }
>> log_info("info: smtp paused");
>> env->sc_flags |= SMTPD_SMTP_PAUSED;
>> -               m_compose(p_pony, IMSG_CTL_PAUSE_SMTP, 0, 0, -1, NULL, 0);
>> +               m_compose(p_dispatcher, IMSG_CTL_PAUSE_SMTP, 0, 0, -1, NULL, 0);
>> m_compose(p, IMSG_CTL_OK, 0, 0, -1, NULL, 0);
>> return;
>>
>> @@ -647,7 +647,7 @@ control_dispatch_ext(struct mproc *p, struct imsg *imsg)
>> }
>> log_info("info: smtp resumed");
>> env->sc_flags &= ~SMTPD_SMTP_PAUSED;
>> -               m_forward(p_pony, imsg);
>> +               m_forward(p_dispatcher, imsg);
>> m_compose(p, IMSG_CTL_OK, 0, 0, -1, NULL, 0);
>> return;
>>
>> @@ -655,7 +655,7 @@ control_dispatch_ext(struct mproc *p, struct imsg *imsg)
>> if (c->euid)
>> goto badcred;
>>
>> -               m_forward(p_pony, imsg);
>> +               m_forward(p_dispatcher, imsg);
>> m_compose(p, IMSG_CTL_OK, 0, 0, -1, NULL, 0);
>> return;
>>
>> @@ -682,7 +682,7 @@ control_dispatch_ext(struct mproc *p, struct imsg *imsg)
>> goto badcred;
>>
>> imsg->hdr.peerid = c->id;
>> -               m_forward(p_pony, imsg);
>> +               m_forward(p_dispatcher, imsg);
>> return;
>>
>> case IMSG_CTL_SHOW_STATUS:
>> @@ -701,10 +701,10 @@ control_dispatch_ext(struct mproc *p, struct imsg *imsg)
>> if (imsg->hdr.len - IMSG_HEADER_SIZE <= sizeof(ss))
>> goto invalid;
>> memmove(&ss, imsg->data, sizeof(ss));
>> -               m_create(p_pony, imsg->hdr.type, c->id, 0, -1);
>> -               m_add_sockaddr(p_pony, (struct sockaddr *)&ss);
>> -               m_add_string(p_pony, (char *)imsg->data + sizeof(ss));
>> -               m_close(p_pony);
>> +               m_create(p_dispatcher, imsg->hdr.type, c->id, 0, -1);
>> +               m_add_sockaddr(p_dispatcher, (struct sockaddr *)&ss);
>> +               m_add_string(p_dispatcher, (char *)imsg->data + sizeof(ss));
>> +               m_close(p_dispatcher);
>> return;
>>
>> case IMSG_CTL_SCHEDULE:
>> @@ -780,9 +780,9 @@ control_broadcast_verbose(int msg, int v)
>> m_add_int(p_lka, v);
>> m_close(p_lka);
>>
>> -       m_create(p_pony, msg, 0, 0, -1);
>> -       m_add_int(p_pony, v);
>> -       m_close(p_pony);
>> +       m_create(p_dispatcher, msg, 0, 0, -1);
>> +       m_add_int(p_dispatcher, v);
>> +       m_close(p_dispatcher);
>>
>> m_create(p_queue, msg, 0, 0, -1);
>> m_add_int(p_queue, v);
>> diff --git a/usr.sbin/smtpd/lka.c b/usr.sbin/smtpd/lka.c
>> index aa9f233536c..24a748e9de4 100644
>> --- a/usr.sbin/smtpd/lka.c
>> +++ b/usr.sbin/smtpd/lka.c
>> @@ -334,7 +334,7 @@ lka_imsg(struct mproc *p, struct imsg *imsg)
>>
>> case IMSG_LKA_AUTHENTICATE:
>> imsg->hdr.type = IMSG_SMTP_AUTHENTICATE;
>> -               m_forward(p_pony, imsg);
>> +               m_forward(p_dispatcher, imsg);
>> return;
>>
>> case IMSG_CTL_VERBOSE:
>> @@ -701,10 +701,10 @@ lka(void)
>> config_peer(PROC_PARENT);
>> config_peer(PROC_QUEUE);
>> config_peer(PROC_CONTROL);
>> -       config_peer(PROC_PONY);
>> +       config_peer(PROC_DISPATCHER);
>>
>> /* Ignore them until we get our config */
>> -       mproc_disable(p_pony);
>> +       mproc_disable(p_dispatcher);
>>
>> lka_report_init();
>> lka_filter_init();
>> @@ -729,7 +729,7 @@ proc_timeout(int fd, short event, void *p)
>> goto reset;
>>
>> lka_filter_ready();
>> -       mproc_enable(p_pony);
>> +       mproc_enable(p_dispatcher);
>> return;
>>
>> reset:
>> diff --git a/usr.sbin/smtpd/lka_filter.c b/usr.sbin/smtpd/lka_filter.c
>> index 9891e6140a3..6771d2fe8a6 100644
>> --- a/usr.sbin/smtpd/lka_filter.c
>> +++ b/usr.sbin/smtpd/lka_filter.c
>> @@ -558,10 +558,10 @@ lka_filter_data_begin(uint64_t reqid)
>> io_set_callback(fs->io, filter_session_io, fs);
>>
>> end:
>> -       m_create(p_pony, IMSG_FILTER_SMTP_DATA_BEGIN, 0, 0, fd);
>> -       m_add_id(p_pony, reqid);
>> -       m_add_int(p_pony, fd != -1 ? 1 : 0);
>> -       m_close(p_pony);
>> +       m_create(p_dispatcher, IMSG_FILTER_SMTP_DATA_BEGIN, 0, 0, fd);
>> +       m_add_id(p_dispatcher, reqid);
>> +       m_add_int(p_dispatcher, fd != -1 ? 1 : 0);
>> +       m_close(p_dispatcher);
>> log_trace(TRACE_FILTERS, "%016"PRIx64" filters data-begin fd=%d", reqid, fd);
>> }
>>
>> @@ -985,49 +985,49 @@ filter_data_query(struct filter *filter, uint64_t token, uint64_t reqid,
>> const c
>> static void
>> filter_result_proceed(uint64_t reqid)
>> {
>> -       m_create(p_pony, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
>> -       m_add_id(p_pony, reqid);
>> -       m_add_int(p_pony, FILTER_PROCEED);
>> -       m_close(p_pony);
>> +       m_create(p_dispatcher, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
>> +       m_add_id(p_dispatcher, reqid);
>> +       m_add_int(p_dispatcher, FILTER_PROCEED);
>> +       m_close(p_dispatcher);
>> }
>>
>> static void
>> filter_result_junk(uint64_t reqid)
>> {
>> -       m_create(p_pony, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
>> -       m_add_id(p_pony, reqid);
>> -       m_add_int(p_pony, FILTER_JUNK);
>> -       m_close(p_pony);
>> +       m_create(p_dispatcher, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
>> +       m_add_id(p_dispatcher, reqid);
>> +       m_add_int(p_dispatcher, FILTER_JUNK);
>> +       m_close(p_dispatcher);
>> }
>>
>> static void
>> filter_result_rewrite(uint64_t reqid, const char *param)
>> {
>> -       m_create(p_pony, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
>> -       m_add_id(p_pony, reqid);
>> -       m_add_int(p_pony, FILTER_REWRITE);
>> -       m_add_string(p_pony, param);
>> -       m_close(p_pony);
>> +       m_create(p_dispatcher, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
>> +       m_add_id(p_dispatcher, reqid);
>> +       m_add_int(p_dispatcher, FILTER_REWRITE);
>> +       m_add_string(p_dispatcher, param);
>> +       m_close(p_dispatcher);
>> }
>>
>> static void
>> filter_result_reject(uint64_t reqid, const char *message)
>> {
>> -       m_create(p_pony, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
>> -       m_add_id(p_pony, reqid);
>> -       m_add_int(p_pony, FILTER_REJECT);
>> -       m_add_string(p_pony, message);
>> -       m_close(p_pony);
>> +       m_create(p_dispatcher, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
>> +       m_add_id(p_dispatcher, reqid);
>> +       m_add_int(p_dispatcher, FILTER_REJECT);
>> +       m_add_string(p_dispatcher, message);
>> +       m_close(p_dispatcher);
>> }
>>
>> static void
>> filter_result_disconnect(uint64_t reqid, const char *message)
>> {
>> -       m_create(p_pony, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
>> -       m_add_id(p_pony, reqid);
>> -       m_add_int(p_pony, FILTER_DISCONNECT);
>> -       m_add_string(p_pony, message);
>> -       m_close(p_pony);
>> +       m_create(p_dispatcher, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
>> +       m_add_id(p_dispatcher, reqid);
>> +       m_add_int(p_dispatcher, FILTER_DISCONNECT);
>> +       m_add_string(p_dispatcher, message);
>> +       m_close(p_dispatcher);
>> }
>>
>> diff --git a/usr.sbin/smtpd/lka_session.c b/usr.sbin/smtpd/lka_session.c
>> index ed1fd36fafd..4eb55c04689 100644
>> --- a/usr.sbin/smtpd/lka_session.c
>> +++ b/usr.sbin/smtpd/lka_session.c
>> @@ -215,20 +215,20 @@ lka_resume(struct lka_session *lks)
>> }
>> error:
>> if (lks->error) {
>> -               m_create(p_pony, IMSG_SMTP_EXPAND_RCPT, 0, 0, -1);
>> -               m_add_id(p_pony, lks->id);
>> -               m_add_int(p_pony, lks->error);
>> +               m_create(p_dispatcher, IMSG_SMTP_EXPAND_RCPT, 0, 0, -1);
>> +               m_add_id(p_dispatcher, lks->id);
>> +               m_add_int(p_dispatcher, lks->error);
>>
>> if (lks->errormsg)
>> -                       m_add_string(p_pony, lks->errormsg);
>> +                       m_add_string(p_dispatcher, lks->errormsg);
>> else {
>> if (lks->error == LKA_PERMFAIL)
>> -                               m_add_string(p_pony, "550 Invalid recipient");
>> +                               m_add_string(p_dispatcher, "550 Invalid recipient");
>> else if (lks->error == LKA_TEMPFAIL)
>> -                               m_add_string(p_pony, "451 Temporary failure");
>> +                               m_add_string(p_dispatcher, "451 Temporary failure");
>> }
>>
>> -               m_close(p_pony);
>> +               m_close(p_dispatcher);
>> while ((ep = TAILQ_FIRST(&lks->deliverylist)) != NULL) {
>> TAILQ_REMOVE(&lks->deliverylist, ep, entry);
>> free(ep);
>> diff --git a/usr.sbin/smtpd/parse.y b/usr.sbin/smtpd/parse.y
>> index 9f1cb52ec98..b748fabd9ea 100644
>> --- a/usr.sbin/smtpd/parse.y
>> +++ b/usr.sbin/smtpd/parse.y
>> @@ -103,7 +103,7 @@ struct mta_limits   *limits;
>> static struct pki      *pki;
>> static struct ca       *sca;
>>
>> -struct dispatcher      *dispatcher;
>> +struct dispatcher      *dsp;
>> struct rule            *rule;
>> struct filter_proc     *processor;
>> struct filter_config   *filter_config;
>> @@ -582,37 +582,37 @@ SRS KEY STRING {
>>
>> dispatcher_local_option:
>> USER STRING {
>> -       if (dispatcher->u.local.is_mbox) {
>> +       if (dsp->u.local.is_mbox) {
>> yyerror("user may not be specified for this dispatcher");
>> YYERROR;
>> }
>>
>> -       if (dispatcher->u.local.forward_only) {
>> +       if (dsp->u.local.forward_only) {
>> yyerror("user may not be specified for forward-only");
>> YYERROR;
>> }
>>
>> -       if (dispatcher->u.local.expand_only) {
>> +       if (dsp->u.local.expand_only) {
>> yyerror("user may not be specified for expand-only");
>> YYERROR;
>> }
>>
>> -       if (dispatcher->u.local.user) {
>> +       if (dsp->u.local.user) {
>> yyerror("user already specified for this dispatcher");
>> YYERROR;
>> }
>>
>> -       dispatcher->u.local.user = $2;
>> +       dsp->u.local.user = $2;
>> }
>> | ALIAS tables {
>> struct table   *t = $2;
>>
>> -       if (dispatcher->u.local.table_alias) {
>> +       if (dsp->u.local.table_alias) {
>> yyerror("alias mapping already specified for this dispatcher");
>> YYERROR;
>> }
>>
>> -       if (dispatcher->u.local.table_virtual) {
>> +       if (dsp->u.local.table_virtual) {
>> yyerror("virtual mapping already specified for this dispatcher");
>> YYERROR;
>> }
>> @@ -623,17 +623,17 @@ USER STRING {
>> YYERROR;
>> }
>>
>> -       dispatcher->u.local.table_alias = strdup(t->t_name);
>> +       dsp->u.local.table_alias = strdup(t->t_name);
>> }
>> | VIRTUAL tables {
>> struct table   *t = $2;
>>
>> -       if (dispatcher->u.local.table_virtual) {
>> +       if (dsp->u.local.table_virtual) {
>> yyerror("virtual mapping already specified for this dispatcher");
>> YYERROR;
>> }
>>
>> -       if (dispatcher->u.local.table_alias) {
>> +       if (dsp->u.local.table_alias) {
>> yyerror("alias mapping already specified for this dispatcher");
>> YYERROR;
>> }
>> @@ -644,12 +644,12 @@ USER STRING {
>> YYERROR;
>> }
>>
>> -       dispatcher->u.local.table_virtual = strdup(t->t_name);
>> +       dsp->u.local.table_virtual = strdup(t->t_name);
>> }
>> | USERBASE tables {
>> struct table   *t = $2;
>>
>> -       if (dispatcher->u.local.table_userbase) {
>> +       if (dsp->u.local.table_userbase) {
>> yyerror("userbase mapping already specified for this dispatcher");
>> YYERROR;
>> }
>> @@ -660,14 +660,14 @@ USER STRING {
>> YYERROR;
>> }
>>
>> -       dispatcher->u.local.table_userbase = strdup(t->t_name);
>> +       dsp->u.local.table_userbase = strdup(t->t_name);
>> }
>> | WRAPPER STRING {
>> if (! dict_get(conf->sc_mda_wrappers, $2)) {
>> yyerror("no mda wrapper with that name: %s", $2);
>> YYERROR;
>> }
>> -       dispatcher->u.local.mda_wrapper = $2;
>> +       dsp->u.local.mda_wrapper = $2;
>> }
>> ;
>>
>> @@ -678,67 +678,67 @@ dispatcher_local_option dispatcher_local_options
>>
>> dispatcher_local:
>> MBOX {
>> -       dispatcher->u.local.is_mbox = 1;
>> -       asprintf(&dispatcher->u.local.command, "/usr/libexec/mail.local -f %%{mbox.from} --
>> %%{user.username}");
>> +       dsp->u.local.is_mbox = 1;
>> +       asprintf(&dsp->u.local.command, "/usr/libexec/mail.local -f %%{mbox.from} --
>> %%{user.username}");
>> } dispatcher_local_options
>> | MAILDIR {
>> -       asprintf(&dispatcher->u.local.command, "/usr/libexec/mail.maildir");
>> +       asprintf(&dsp->u.local.command, "/usr/libexec/mail.maildir");
>> } dispatcher_local_options
>> | MAILDIR JUNK {
>> -       asprintf(&dispatcher->u.local.command, "/usr/libexec/mail.maildir -j");
>> +       asprintf(&dsp->u.local.command, "/usr/libexec/mail.maildir -j");
>> } dispatcher_local_options
>> | MAILDIR STRING {
>> if (strncmp($2, "~/", 2) == 0)
>> -               asprintf(&dispatcher->u.local.command,
>> +               asprintf(&dsp->u.local.command,
>> "/usr/libexec/mail.maildir \"%%{user.directory}/%s\"", $2+2);
>> else
>> -               asprintf(&dispatcher->u.local.command,
>> +               asprintf(&dsp->u.local.command,
>> "/usr/libexec/mail.maildir \"%s\"", $2);
>> } dispatcher_local_options
>> | MAILDIR STRING JUNK {
>> if (strncmp($2, "~/", 2) == 0)
>> -               asprintf(&dispatcher->u.local.command,
>> +               asprintf(&dsp->u.local.command,
>> "/usr/libexec/mail.maildir -j \"%%{user.directory}/%s\"", $2+2);
>> else
>> -               asprintf(&dispatcher->u.local.command,
>> +               asprintf(&dsp->u.local.command,
>> "/usr/libexec/mail.maildir -j \"%s\"", $2);
>> } dispatcher_local_options
>> | LMTP STRING {
>> -       asprintf(&dispatcher->u.local.command,
>> +       asprintf(&dsp->u.local.command,
>> "/usr/libexec/mail.lmtp -d %s -u", $2);
>> -       dispatcher->u.local.user = SMTPD_USER;
>> +       dsp->u.local.user = SMTPD_USER;
>> } dispatcher_local_options
>> | LMTP STRING RCPT_TO {
>> -       asprintf(&dispatcher->u.local.command,
>> +       asprintf(&dsp->u.local.command,
>> "/usr/libexec/mail.lmtp -d %s -r", $2);
>> -       dispatcher->u.local.user = SMTPD_USER;
>> +       dsp->u.local.user = SMTPD_USER;
>> } dispatcher_local_options
>> | MDA STRING {
>> -       asprintf(&dispatcher->u.local.command,
>> +       asprintf(&dsp->u.local.command,
>> "/usr/libexec/mail.mda \"%s\"", $2);
>> } dispatcher_local_options
>> | FORWARD_ONLY {
>> -       dispatcher->u.local.forward_only = 1;
>> +       dsp->u.local.forward_only = 1;
>> } dispatcher_local_options
>> | EXPAND_ONLY {
>> -       dispatcher->u.local.expand_only = 1;
>> +       dsp->u.local.expand_only = 1;
>> } dispatcher_local_options
>>
>> ;
>>
>> dispatcher_remote_option:
>> HELO STRING {
>> -       if (dispatcher->u.remote.helo) {
>> +       if (dsp->u.remote.helo) {
>> yyerror("helo already specified for this dispatcher");
>> YYERROR;
>> }
>>
>> -       dispatcher->u.remote.helo = $2;
>> +       dsp->u.remote.helo = $2;
>> }
>> | HELO_SRC tables {
>> struct table   *t = $2;
>>
>> -       if (dispatcher->u.remote.helo_source) {
>> +       if (dsp->u.remote.helo_source) {
>> yyerror("helo-source mapping already specified for this dispatcher");
>> YYERROR;
>> }
>> @@ -748,28 +748,28 @@ HELO STRING {
>> YYERROR;
>> }
>>
>> -       dispatcher->u.remote.helo_source = strdup(t->t_name);
>> +       dsp->u.remote.helo_source = strdup(t->t_name);
>> }
>> | PKI STRING {
>> -       if (dispatcher->u.remote.pki) {
>> +       if (dsp->u.remote.pki) {
>> yyerror("pki already specified for this dispatcher");
>> YYERROR;
>> }
>>
>> -       dispatcher->u.remote.pki = $2;
>> +       dsp->u.remote.pki = $2;
>> }
>> | CA STRING {
>> -       if (dispatcher->u.remote.ca) {
>> +       if (dsp->u.remote.ca) {
>> yyerror("ca already specified for this dispatcher");
>> YYERROR;
>> }
>>
>> -       dispatcher->u.remote.ca = $2;
>> +       dsp->u.remote.ca = $2;
>> }
>> | SRC tables {
>> struct table   *t = $2;
>>
>> -       if (dispatcher->u.remote.source) {
>> +       if (dsp->u.remote.source) {
>> yyerror("source mapping already specified for this dispatcher");
>> YYERROR;
>> }
>> @@ -780,49 +780,49 @@ HELO STRING {
>> YYERROR;
>> }
>>
>> -       dispatcher->u.remote.source = strdup(t->t_name);
>> +       dsp->u.remote.source = strdup(t->t_name);
>> }
>> | MAIL_FROM STRING {
>> -       if (dispatcher->u.remote.mail_from) {
>> +       if (dsp->u.remote.mail_from) {
>> yyerror("mail-from already specified for this dispatcher");
>> YYERROR;
>> }
>>
>> -       dispatcher->u.remote.mail_from = $2;
>> +       dsp->u.remote.mail_from = $2;
>> }
>> | BACKUP MX STRING {
>> -       if (dispatcher->u.remote.backup) {
>> +       if (dsp->u.remote.backup) {
>> yyerror("backup already specified for this dispatcher");
>> YYERROR;
>> }
>> -       if (dispatcher->u.remote.smarthost) {
>> +       if (dsp->u.remote.smarthost) {
>> yyerror("backup and host are mutually exclusive");
>> YYERROR;
>> }
>>
>> -       dispatcher->u.remote.backup = 1;
>> -       dispatcher->u.remote.backupmx = $3;
>> +       dsp->u.remote.backup = 1;
>> +       dsp->u.remote.backupmx = $3;
>> }
>> | BACKUP {
>> -       if (dispatcher->u.remote.backup) {
>> +       if (dsp->u.remote.backup) {
>> yyerror("backup already specified for this dispatcher");
>> YYERROR;
>> }
>> -       if (dispatcher->u.remote.smarthost) {
>> +       if (dsp->u.remote.smarthost) {
>> yyerror("backup and host are mutually exclusive");
>> YYERROR;
>> }
>>
>> -       dispatcher->u.remote.backup = 1;
>> +       dsp->u.remote.backup = 1;
>> }
>> | HOST tables {
>> struct table   *t = $2;
>>
>> -       if (dispatcher->u.remote.smarthost) {
>> +       if (dsp->u.remote.smarthost) {
>> yyerror("host mapping already specified for this dispatcher");
>> YYERROR;
>> }
>> -       if (dispatcher->u.remote.backup) {
>> +       if (dsp->u.remote.backup) {
>> yyerror("backup and host are mutually exclusive");
>> YYERROR;
>> }
>> @@ -833,16 +833,16 @@ HELO STRING {
>> YYERROR;
>> }
>>
>> -       dispatcher->u.remote.smarthost = strdup(t->t_name);
>> +       dsp->u.remote.smarthost = strdup(t->t_name);
>> }
>> | DOMAIN tables {
>> struct table   *t = $2;
>>
>> -       if (dispatcher->u.remote.smarthost) {
>> +       if (dsp->u.remote.smarthost) {
>> yyerror("host mapping already specified for this dispatcher");
>> YYERROR;
>> }
>> -       if (dispatcher->u.remote.backup) {
>> +       if (dsp->u.remote.backup) {
>> yyerror("backup and domain are mutually exclusive");
>> YYERROR;
>> }
>> @@ -853,35 +853,35 @@ HELO STRING {
>> YYERROR;
>> }
>>
>> -       dispatcher->u.remote.smarthost = strdup(t->t_name);
>> -       dispatcher->u.remote.smarthost_domain = 1;
>> +       dsp->u.remote.smarthost = strdup(t->t_name);
>> +       dsp->u.remote.smarthost_domain = 1;
>> }
>> | TLS {
>> -       if (dispatcher->u.remote.tls_required == 1) {
>> +       if (dsp->u.remote.tls_required == 1) {
>> yyerror("tls already specified for this dispatcher");
>> YYERROR;
>> }
>>
>> -       dispatcher->u.remote.tls_required = 1;
>> +       dsp->u.remote.tls_required = 1;
>> }
>> | TLS NO_VERIFY {
>> -       if (dispatcher->u.remote.tls_required == 1) {
>> +       if (dsp->u.remote.tls_required == 1) {
>> yyerror("tls already specified for this dispatcher");
>> YYERROR;
>> }
>>
>> -       dispatcher->u.remote.tls_required = 1;
>> -       dispatcher->u.remote.tls_noverify = 1;
>> +       dsp->u.remote.tls_required = 1;
>> +       dsp->u.remote.tls_noverify = 1;
>> }
>> | AUTH tables {
>> struct table   *t = $2;
>>
>> -       if (dispatcher->u.remote.smarthost == NULL) {
>> +       if (dsp->u.remote.smarthost == NULL) {
>> yyerror("auth may not be specified without host on a dispatcher");
>> YYERROR;
>> }
>>
>> -       if (dispatcher->u.remote.auth) {
>> +       if (dsp->u.remote.auth) {
>> yyerror("auth mapping already specified for this dispatcher");
>> YYERROR;
>> }
>> @@ -892,12 +892,12 @@ HELO STRING {
>> YYERROR;
>> }
>>
>> -       dispatcher->u.remote.auth = strdup(t->t_name);
>> +       dsp->u.remote.auth = strdup(t->t_name);
>> }
>> | FILTER STRING {
>> struct filter_config *fc;
>>
>> -       if (dispatcher->u.remote.filtername) {
>> +       if (dsp->u.remote.filtername) {
>> yyerror("filter already specified for this dispatcher");
>> YYERROR;
>> }
>> @@ -908,13 +908,13 @@ HELO STRING {
>> YYERROR;
>> }
>> fc->filter_subsystem |= FILTER_SUBSYSTEM_SMTP_OUT;
>> -       dispatcher->u.remote.filtername = $2;
>> +       dsp->u.remote.filtername = $2;
>> }
>> | FILTER {
>> char    buffer[128];
>> char    *filtername;
>>
>> -       if (dispatcher->u.remote.filtername) {
>> +       if (dsp->u.remote.filtername) {
>> yyerror("filter already specified for this dispatcher");
>> YYERROR;
>> }
>> @@ -928,9 +928,9 @@ HELO STRING {
>> filter_config->filter_type = FILTER_TYPE_CHAIN;
>> filter_config->filter_subsystem |= FILTER_SUBSYSTEM_SMTP_OUT;
>> dict_init(&filter_config->chain_procs);
>> -       dispatcher->u.remote.filtername = filtername;
>> +       dsp->u.remote.filtername = filtername;
>> } '{' filter_list '}' {
>> -       dict_set(conf->sc_filters_dict, dispatcher->u.remote.filtername, filter_config);
>> +       dict_set(conf->sc_filters_dict, dsp->u.remote.filtername, filter_config);
>> filter_config = NULL;
>> }
>> | SRS {
>> @@ -938,12 +938,12 @@ HELO STRING {
>> yyerror("an srs key is required for srs to be specified in an action");
>> YYERROR;
>> }
>> -       if (dispatcher->u.remote.srs == 1) {
>> +       if (dsp->u.remote.srs == 1) {
>> yyerror("srs already specified for this dispatcher");
>> YYERROR;
>> }
>>
>> -       dispatcher->u.remote.srs = 1;
>> +       dsp->u.remote.srs = 1;
>> }
>> ;
>>
>> @@ -958,22 +958,22 @@ RELAY dispatcher_remote_options
>>
>> dispatcher_type:
>> dispatcher_local {
>> -       dispatcher->type = DISPATCHER_LOCAL;
>> +       dsp->type = DISPATCHER_LOCAL;
>> }
>> | dispatcher_remote {
>> -       dispatcher->type = DISPATCHER_REMOTE;
>> +       dsp->type = DISPATCHER_REMOTE;
>> }
>> ;
>>
>> dispatcher_option:
>> TTL STRING {
>> -       if (dispatcher->ttl) {
>> +       if (dsp->ttl) {
>> yyerror("ttl already specified for this dispatcher");
>> YYERROR;
>> }
>>
>> -       dispatcher->ttl = delaytonum($2);
>> -       if (dispatcher->ttl == -1) {
>> +       dsp->ttl = delaytonum($2);
>> +       if (dsp->ttl == -1) {
>> yyerror("ttl delay \"%s\" is invalid", $2);
>> free($2);
>> YYERROR;
>> @@ -993,13 +993,13 @@ ACTION STRING {
>> yyerror("dispatcher already declared with that name: %s", $2);
>> YYERROR;
>> }
>> -       dispatcher = xcalloc(1, sizeof *dispatcher);
>> +       dsp = xcalloc(1, sizeof *dsp);
>> } dispatcher_type dispatcher_options {
>> -       if (dispatcher->type == DISPATCHER_LOCAL)
>> -               if (dispatcher->u.local.table_userbase == NULL)
>> -                       dispatcher->u.local.table_userbase = "<getpwnam>";
>> -       dict_set(conf->sc_dispatchers, $2, dispatcher);
>> -       dispatcher = NULL;
>> +       if (dsp->type == DISPATCHER_LOCAL)
>> +               if (dsp->u.local.table_userbase == NULL)
>> +                       dsp->u.local.table_userbase = "<getpwnam>";
>> +       dict_set(conf->sc_dispatchers, $2, dsp);
>> +       dsp = NULL;
>> }
>> ;
>>
>> diff --git a/usr.sbin/smtpd/pony.c b/usr.sbin/smtpd/pony.c
>> index 026d647307a..d533179a5df 100644
>> --- a/usr.sbin/smtpd/pony.c
>> +++ b/usr.sbin/smtpd/pony.c
>> @@ -44,16 +44,16 @@ void mda_imsg(struct mproc *, struct imsg *);
>> void mta_imsg(struct mproc *, struct imsg *);
>> void smtp_imsg(struct mproc *, struct imsg *);
>>
>> -static void pony_shutdown(void);
>> +static void dispatcher_shutdown(void);
>>
>> void
>> -pony_imsg(struct mproc *p, struct imsg *imsg)
>> +dispatcher_imsg(struct mproc *p, struct imsg *imsg)
>> {
>> struct msg      m;
>> int             v;
>>
>> if (imsg == NULL)
>> -               pony_shutdown();
>> +               dispatcher_shutdown();
>>
>> switch (imsg->hdr.type) {
>>
>> @@ -143,14 +143,14 @@ pony_imsg(struct mproc *p, struct imsg *imsg)
>> }
>>
>> static void
>> -pony_shutdown(void)
>> +dispatcher_shutdown(void)
>> {
>> -       log_debug("debug: pony agent exiting");
>> +       log_debug("debug: dispatcher agent exiting");
>> _exit(0);
>> }
>>
>> int
>> -pony(void)
>> +dispatcher(void)
>> {
>> struct passwd   *pw;
>>
>> @@ -167,18 +167,18 @@ pony(void)
>> fatalx("unknown user " SMTPD_USER);
>>
>> if (chroot(PATH_CHROOT) == -1)
>> -               fatal("pony: chroot");
>> +               fatal("dispatcher: chroot");
>> if (chdir("/") == -1)
>> -               fatal("pony: chdir(\"/\")");
>> +               fatal("dispatcher: chdir(\"/\")");
>>
>> -       config_process(PROC_PONY);
>> +       config_process(PROC_DISPATCHER);
>>
>> if (setgroups(1, &pw->pw_gid) ||
>> setresgid(pw->pw_gid, pw->pw_gid, pw->pw_gid) ||
>> setresuid(pw->pw_uid, pw->pw_uid, pw->pw_uid))
>> -               fatal("pony: cannot drop privileges");
>> +               fatal("dispatcher: cannot drop privileges");
>>
>> -       imsg_callback = pony_imsg;
>> +       imsg_callback = dispatcher_imsg;
>> event_init();
>>
>> mda_postprivdrop();
>> diff --git a/usr.sbin/smtpd/queue.c b/usr.sbin/smtpd/queue.c
>> index 3739fe22750..0a621709764 100644
>> --- a/usr.sbin/smtpd/queue.c
>> +++ b/usr.sbin/smtpd/queue.c
>> @@ -152,15 +152,15 @@ queue_imsg(struct mproc *p, struct imsg *imsg)
>> log_warnx("warn: imsg_queue_submit_envelope: msgid=0, "
>> "evpid=%016"PRIx64, evp.id);
>> ret = queue_envelope_create(&evp);
>> -               m_create(p_pony, IMSG_QUEUE_ENVELOPE_SUBMIT, 0, 0, -1);
>> -               m_add_id(p_pony, reqid);
>> +               m_create(p_dispatcher, IMSG_QUEUE_ENVELOPE_SUBMIT, 0, 0, -1);
>> +               m_add_id(p_dispatcher, reqid);
>> if (ret == 0)
>> -                       m_add_int(p_pony, 0);
>> +                       m_add_int(p_dispatcher, 0);
>> else {
>> -                       m_add_int(p_pony, 1);
>> -                       m_add_evpid(p_pony, evp.id);
>> +                       m_add_int(p_dispatcher, 1);
>> +                       m_add_evpid(p_dispatcher, evp.id);
>> }
>> -               m_close(p_pony);
>> +               m_close(p_dispatcher);
>> if (ret) {
>> m_create(p_scheduler,
>> IMSG_QUEUE_ENVELOPE_SUBMIT, 0, 0, -1);
>> @@ -173,10 +173,10 @@ queue_imsg(struct mproc *p, struct imsg *imsg)
>> m_msg(&m, imsg);
>> m_get_id(&m, &reqid);
>> m_end(&m);
>> -               m_create(p_pony, IMSG_QUEUE_ENVELOPE_COMMIT, 0, 0, -1);
>> -               m_add_id(p_pony, reqid);
>> -               m_add_int(p_pony, 1);
>> -               m_close(p_pony);
>> +               m_create(p_dispatcher, IMSG_QUEUE_ENVELOPE_COMMIT, 0, 0, -1);
>> +               m_add_id(p_dispatcher, reqid);
>> +               m_add_int(p_dispatcher, 1);
>> +               m_close(p_dispatcher);
>> return;
>>
>> case IMSG_SCHED_ENVELOPE_REMOVE:
>> @@ -250,9 +250,9 @@ queue_imsg(struct mproc *p, struct imsg *imsg)
>> return;
>> }
>> evp.lasttry = time(NULL);
>> -               m_create(p_pony, IMSG_QUEUE_DELIVER, 0, 0, -1);
>> -               m_add_envelope(p_pony, &evp);
>> -               m_close(p_pony);
>> +               m_create(p_dispatcher, IMSG_QUEUE_DELIVER, 0, 0, -1);
>> +               m_add_envelope(p_dispatcher, &evp);
>> +               m_close(p_dispatcher);
>> return;
>>
>> case IMSG_SCHED_ENVELOPE_INJECT:
>> @@ -275,9 +275,9 @@ queue_imsg(struct mproc *p, struct imsg *imsg)
>> return;
>> }
>> evp.lasttry = time(NULL);
>> -               m_create(p_pony, IMSG_QUEUE_TRANSFER, 0, 0, -1);
>> -               m_add_envelope(p_pony, &evp);
>> -               m_close(p_pony);
>> +               m_create(p_dispatcher, IMSG_QUEUE_TRANSFER, 0, 0, -1);
>> +               m_add_envelope(p_dispatcher, &evp);
>> +               m_close(p_dispatcher);
>> return;
>>
>> case IMSG_CTL_LIST_ENVELOPES:
>> @@ -665,7 +665,7 @@ queue(void)
>> config_peer(PROC_CONTROL);
>> config_peer(PROC_LKA);
>> config_peer(PROC_SCHEDULER);
>> -       config_peer(PROC_PONY);
>> +       config_peer(PROC_DISPATCHER);
>>
>> /* setup queue loading task */
>> evtimer_set(&ev_qload, queue_timeout, &ev_qload);
>> diff --git a/usr.sbin/smtpd/smtpd.c b/usr.sbin/smtpd/smtpd.c
>> index 854c2ab0cb6..f15411757ee 100644
>> --- a/usr.sbin/smtpd/smtpd.c
>> +++ b/usr.sbin/smtpd/smtpd.c
>> @@ -66,7 +66,7 @@ static int smtpd(void);
>> static void parent_shutdown(void);
>> static void parent_send_config(int, short, void *);
>> static void parent_send_config_lka(void);
>> -static void parent_send_config_pony(void);
>> +static void parent_send_config_dispatcher(void);
>> static void parent_send_config_ca(void);
>> static void parent_sig_handler(int, short, void *);
>> static void forkmda(struct mproc *, uint64_t, struct deliver *);
>> @@ -140,7 +140,7 @@ struct mproc        *p_lka = NULL;
>> struct mproc   *p_parent = NULL;
>> struct mproc   *p_queue = NULL;
>> struct mproc   *p_scheduler = NULL;
>> -struct mproc   *p_pony = NULL;
>> +struct mproc   *p_dispatcher = NULL;
>> struct mproc   *p_ca = NULL;
>>
>> const char     *backend_queue = "fs";
>> @@ -289,7 +289,7 @@ parent_shutdown(void)
>> pid_t pid;
>>
>> mproc_clear(p_ca);
>> -       mproc_clear(p_pony);
>> +       mproc_clear(p_dispatcher);
>> mproc_clear(p_control);
>> mproc_clear(p_lka);
>> mproc_clear(p_scheduler);
>> @@ -309,17 +309,17 @@ static void
>> parent_send_config(int fd, short event, void *p)
>> {
>> parent_send_config_lka();
>> -       parent_send_config_pony();
>> +       parent_send_config_dispatcher();
>> parent_send_config_ca();
>> purge_config(PURGE_PKI);
>> }
>>
>> static void
>> -parent_send_config_pony(void)
>> +parent_send_config_dispatcher(void)
>> {
>> -       log_debug("debug: parent_send_config: configuring pony process");
>> -       m_compose(p_pony, IMSG_CONF_START, 0, 0, -1, NULL, 0);
>> -       m_compose(p_pony, IMSG_CONF_END, 0, 0, -1, NULL, 0);
>> +       log_debug("debug: parent_send_config: configuring dispatcher process");
>> +       m_compose(p_dispatcher, IMSG_CONF_START, 0, 0, -1, NULL, 0);
>> +       m_compose(p_dispatcher, IMSG_CONF_END, 0, 0, -1, NULL, 0);
>> }
>>
>> void
>> @@ -437,13 +437,13 @@ parent_sig_handler(int sig, short event, void *p)
>> "for session %016"PRIx64 ": %s",
>> child->mda_id, cause);
>>
>> -                               m_create(p_pony, IMSG_MDA_DONE, 0, 0,
>> +                               m_create(p_dispatcher, IMSG_MDA_DONE, 0, 0,
>> child->mda_out);
>> -                               m_add_id(p_pony, child->mda_id);
>> -                               m_add_int(p_pony, mda_status);
>> -                               m_add_int(p_pony, mda_sysexit);
>> -                               m_add_string(p_pony, cause);
>> -                               m_close(p_pony);
>> +                               m_add_id(p_dispatcher, child->mda_id);
>> +                               m_add_int(p_dispatcher, mda_status);
>> +                               m_add_int(p_dispatcher, mda_sysexit);
>> +                               m_add_string(p_dispatcher, cause);
>> +                               m_close(p_dispatcher);
>>
>> break;
>>
>> @@ -698,8 +698,8 @@ main(int argc, char *argv[])
>> p_lka = start_child(save_argc, save_argv, "lka");
>> p_lka->proc = PROC_LKA;
>>
>> -               p_pony = start_child(save_argc, save_argv, "pony");
>> -               p_pony->proc = PROC_PONY;
>> +               p_dispatcher = start_child(save_argc, save_argv, "dispatcher");
>> +               p_dispatcher->proc = PROC_DISPATCHER;
>>
>> p_queue = start_child(save_argc, save_argv, "queue");
>> p_queue->proc = PROC_QUEUE;
>> @@ -709,12 +709,12 @@ main(int argc, char *argv[])
>>
>> setup_peers(p_control, p_ca);
>> setup_peers(p_control, p_lka);
>> -               setup_peers(p_control, p_pony);
>> +               setup_peers(p_control, p_dispatcher);
>> setup_peers(p_control, p_queue);
>> setup_peers(p_control, p_scheduler);
>> -               setup_peers(p_pony, p_ca);
>> -               setup_peers(p_pony, p_lka);
>> -               setup_peers(p_pony, p_queue);
>> +               setup_peers(p_dispatcher, p_ca);
>> +               setup_peers(p_dispatcher, p_lka);
>> +               setup_peers(p_dispatcher, p_queue);
>> setup_peers(p_queue, p_lka);
>> setup_peers(p_queue, p_scheduler);
>>
>> @@ -730,7 +730,7 @@ main(int argc, char *argv[])
>> setup_done(p_ca);
>> setup_done(p_control);
>> setup_done(p_lka);
>> -               setup_done(p_pony);
>> +               setup_done(p_dispatcher);
>> setup_done(p_queue);
>> setup_done(p_scheduler);
>>
>> @@ -767,11 +767,11 @@ main(int argc, char *argv[])
>> return lka();
>> }
>>
>> -       else if (!strcmp(rexec, "pony")) {
>> -               smtpd_process = PROC_PONY;
>> +       else if (!strcmp(rexec, "dispatcher")) {
>> +               smtpd_process = PROC_DISPATCHER;
>> setup_proc();
>>
>> -               return pony();
>> +               return dispatcher();
>> }
>>
>> else if (!strcmp(rexec, "queue")) {
>> @@ -978,8 +978,8 @@ setup_peer(enum smtp_proc_type proc, pid_t pid, int sock)
>> case PROC_SCHEDULER:
>> pp = &p_scheduler;
>> break;
>> -       case PROC_PONY:
>> -               pp = &p_pony;
>> +       case PROC_DISPATCHER:
>> +               pp = &p_dispatcher;
>> break;
>> case PROC_CA:
>> pp = &p_ca;
>> @@ -1050,7 +1050,7 @@ smtpd(void) {
>> child_add(p_control->pid, CHILD_DAEMON, proc_title(PROC_CONTROL));
>> child_add(p_lka->pid, CHILD_DAEMON, proc_title(PROC_LKA));
>> child_add(p_scheduler->pid, CHILD_DAEMON, proc_title(PROC_SCHEDULER));
>> -       child_add(p_pony->pid, CHILD_DAEMON, proc_title(PROC_PONY));
>> +       child_add(p_dispatcher->pid, CHILD_DAEMON, proc_title(PROC_DISPATCHER));
>> child_add(p_ca->pid, CHILD_DAEMON, proc_title(PROC_CA));
>>
>> event_init();
>> @@ -1069,7 +1069,7 @@ smtpd(void) {
>> config_peer(PROC_LKA);
>> config_peer(PROC_QUEUE);
>> config_peer(PROC_CA);
>> -       config_peer(PROC_PONY);
>> +       config_peer(PROC_DISPATCHER);
>>
>> evtimer_set(&config_ev, parent_send_config, NULL);
>> memset(&tv, 0, sizeof(tv));
>> @@ -1421,12 +1421,12 @@ forkmda(struct mproc *p, uint64_t id, struct deliver *deliver)
>> (void)snprintf(ebuf, sizeof ebuf,
>> "delivery user '%s' does not exist",
>> dsp->u.local.user);
>> -                       m_create(p_pony, IMSG_MDA_DONE, 0, 0, -1);
>> -                       m_add_id(p_pony, id);
>> -                       m_add_int(p_pony, MDA_PERMFAIL);
>> -                       m_add_int(p_pony, EX_NOUSER);
>> -                       m_add_string(p_pony, ebuf);
>> -                       m_close(p_pony);
>> +                       m_create(p_dispatcher, IMSG_MDA_DONE, 0, 0, -1);
>> +                       m_add_id(p_dispatcher, id);
>> +                       m_add_int(p_dispatcher, MDA_PERMFAIL);
>> +                       m_add_int(p_dispatcher, EX_NOUSER);
>> +                       m_add_string(p_dispatcher, ebuf);
>> +                       m_close(p_dispatcher);
>> return;
>> }
>> pw_name = pw->pw_name;
>> @@ -1451,23 +1451,23 @@ forkmda(struct mproc *p, uint64_t id, struct deliver *deliver)
>> if (pw_uid == 0 && !dsp->u.local.is_mbox) {
>> (void)snprintf(ebuf, sizeof ebuf, "not allowed to deliver to: %s",
>> deliver->userinfo.username);
>> -               m_create(p_pony, IMSG_MDA_DONE, 0, 0, -1);
>> -               m_add_id(p_pony, id);
>> -               m_add_int(p_pony, MDA_PERMFAIL);
>> -               m_add_int(p_pony, EX_NOPERM);
>> -               m_add_string(p_pony, ebuf);
>> -               m_close(p_pony);
>> +               m_create(p_dispatcher, IMSG_MDA_DONE, 0, 0, -1);
>> +               m_add_id(p_dispatcher, id);
>> +               m_add_int(p_dispatcher, MDA_PERMFAIL);
>> +               m_add_int(p_dispatcher, EX_NOPERM);
>> +               m_add_string(p_dispatcher, ebuf);
>> +               m_close(p_dispatcher);
>> return;
>> }
>>
>> if (pipe(pipefd) == -1) {
>> (void)snprintf(ebuf, sizeof ebuf, "pipe: %s", strerror(errno));
>> -               m_create(p_pony, IMSG_MDA_DONE, 0, 0, -1);
>> -               m_add_id(p_pony, id);
>> -               m_add_int(p_pony, MDA_TEMPFAIL);
>> -               m_add_int(p_pony, EX_OSERR);
>> -               m_add_string(p_pony, ebuf);
>> -               m_close(p_pony);
>> +               m_create(p_dispatcher, IMSG_MDA_DONE, 0, 0, -1);
>> +               m_add_id(p_dispatcher, id);
>> +               m_add_int(p_dispatcher, MDA_TEMPFAIL);
>> +               m_add_int(p_dispatcher, EX_OSERR);
>> +               m_add_string(p_dispatcher, ebuf);
>> +               m_close(p_dispatcher);
>> return;
>> }
>>
>> @@ -1476,12 +1476,12 @@ forkmda(struct mproc *p, uint64_t id, struct deliver *deliver)
>> allout = mkstemp(sfn);
>> if (allout == -1) {
>> (void)snprintf(ebuf, sizeof ebuf, "mkstemp: %s", strerror(errno));
>> -               m_create(p_pony, IMSG_MDA_DONE, 0, 0, -1);
>> -               m_add_id(p_pony, id);
>> -               m_add_int(p_pony, MDA_TEMPFAIL);
>> -               m_add_int(p_pony, EX_OSERR);
>> -               m_add_string(p_pony, ebuf);
>> -               m_close(p_pony);
>> +               m_create(p_dispatcher, IMSG_MDA_DONE, 0, 0, -1);
>> +               m_add_id(p_dispatcher, id);
>> +               m_add_int(p_dispatcher, MDA_TEMPFAIL);
>> +               m_add_int(p_dispatcher, EX_OSERR);
>> +               m_add_string(p_dispatcher, ebuf);
>> +               m_close(p_dispatcher);
>> close(pipefd[0]);
>> close(pipefd[1]);
>> return;
>> @@ -1491,12 +1491,12 @@ forkmda(struct mproc *p, uint64_t id, struct deliver *deliver)
>> pid = fork();
>> if (pid == -1) {
>> (void)snprintf(ebuf, sizeof ebuf, "fork: %s", strerror(errno));
>> -               m_create(p_pony, IMSG_MDA_DONE, 0, 0, -1);
>> -               m_add_id(p_pony, id);
>> -               m_add_int(p_pony, MDA_TEMPFAIL);
>> -               m_add_int(p_pony, EX_OSERR);
>> -               m_add_string(p_pony, ebuf);
>> -               m_close(p_pony);
>> +               m_create(p_dispatcher, IMSG_MDA_DONE, 0, 0, -1);
>> +               m_add_id(p_dispatcher, id);
>> +               m_add_int(p_dispatcher, MDA_TEMPFAIL);
>> +               m_add_int(p_dispatcher, EX_OSERR);
>> +               m_add_string(p_dispatcher, ebuf);
>> +               m_close(p_dispatcher);
>> close(pipefd[0]);
>> close(pipefd[1]);
>> close(allout);
>> @@ -1912,10 +1912,10 @@ proc_title(enum smtp_proc_type proc)
>> return "control";
>> case PROC_SCHEDULER:
>> return "scheduler";
>> -       case PROC_PONY:
>> -               return "pony express";
>> +       case PROC_DISPATCHER:
>> +               return "dispatcher";
>> case PROC_CA:
>> -               return "klondike";
>> +               return "crypto";
>> case PROC_CLIENT:
>> return "client";
>> case PROC_PROCESSOR:
>> @@ -1938,8 +1938,8 @@ proc_name(enum smtp_proc_type proc)
>> return "control";
>> case PROC_SCHEDULER:
>> return "scheduler";
>> -       case PROC_PONY:
>> -               return "pony";
>> +       case PROC_DISPATCHER:
>> +               return "dispatcher";
>> case PROC_CA:
>> return "ca";
>> case PROC_CLIENT:
>> diff --git a/usr.sbin/smtpd/smtpd.h b/usr.sbin/smtpd/smtpd.h
>> index 529ff683f76..36c85eb2c18 100644
>> --- a/usr.sbin/smtpd/smtpd.h
>> +++ b/usr.sbin/smtpd/smtpd.h
>> @@ -345,7 +345,7 @@ enum smtp_proc_type {
>> PROC_QUEUE,
>> PROC_CONTROL,
>> PROC_SCHEDULER,
>> -       PROC_PONY,
>> +       PROC_DISPATCHER,
>> PROC_CA,
>> PROC_PROCESSOR,
>> PROC_CLIENT,
>> @@ -1007,7 +1007,7 @@ extern struct mproc *p_parent;
>> extern struct mproc *p_lka;
>> extern struct mproc *p_queue;
>> extern struct mproc *p_scheduler;
>> -extern struct mproc *p_pony;
>> +extern struct mproc *p_dispatcher;
>> extern struct mproc *p_ca;
>>
>> extern struct smtpd    *env;
>> @@ -1580,8 +1580,8 @@ void scheduler_info(struct scheduler_info *, struct envelope *);
>>
>> /* pony.c */
>> -int pony(void);
>> -void pony_imsg(struct mproc *, struct imsg *);
>> +int dispatcher(void);
>> +void dispatcher_imsg(struct mproc *, struct imsg *);
>>
>> /* resolver.c */

Reply | Threaded
Open this post in threaded view
|

Re: [diff] src/usr.sbin/smtpd: change process names

Martijn van Duren-5
In that case fine by me.
Anyone else want to chime in?

On Sun, 2020-12-27 at 17:04 +0000, [hidden email] wrote:

> it's slightly different:
>
> ca is for "crypto agent" unsure if there's really an interest in renaming internally,
> furthermore there's a separate crypto API for encrypted queue so not distinguishing
> between crypto api and crypto agent might be confusing.
>
> Gilles
>
>
> December 27, 2020 5:43 PM, "Martijn van Duren" <[hidden email]> wrote:
>
> > This one reads OK to me, with one minor bikeshed:
> > You rename klondike to crypto, but the internals still refer to CA
> > everywhere. Wouldn't it be cleaner to leave klondike in step one and do
> > a s/CA/CRYPTO/ in a second step so everything is in concent?
> > Personally I prefer the name crypto over ca.
> >
> > martijn@
> >
> > On Sat, 2020-12-19 at 23:21 +0000, [hidden email] wrote:
> >
> > > December 19, 2020 11:26 PM, "Martijn van Duren" <[hidden email]> wrote:
> > >
> > > Personally I'd rather wait to keep the names in sync, especially since
> > > it's an easy 2 line diff that can easily be incorperated in the bigger
> > > thing. But it's not something I'm going to loose sleep over if others
> > > thing it can go in right now.
> > >
> > > Fair enough :-)
> > >
> > > Below is the diff that changes all references to pony into dispatcher.
> > >
> > > I didn't rename pony.c to dispatcher.c as this would break the diff, but if this gets
> > > committed I'll submit a diff for the rename + Makefile bit
> > >
> > > diff --git a/usr.sbin/smtpd/bounce.c b/usr.sbin/smtpd/bounce.c
> > > index e6fc55780a1..455da6ff8b1 100644
> > > --- a/usr.sbin/smtpd/bounce.c
> > > +++ b/usr.sbin/smtpd/bounce.c
> > > @@ -290,7 +290,7 @@ bounce_drain()
> > > }
> > >
> > > log_debug("debug: bounce: requesting new enqueue socket...");
> > > -               m_compose(p_pony, IMSG_QUEUE_SMTP_SESSION, 0, 0, -1, NULL, 0);
> > > +               m_compose(p_dispatcher, IMSG_QUEUE_SMTP_SESSION, 0, 0, -1, NULL, 0);
> > >
> > > running += 1;
> > > }
> > > diff --git a/usr.sbin/smtpd/ca.c b/usr.sbin/smtpd/ca.c
> > > index fdc177e28b3..0299ee6cecc 100644
> > > --- a/usr.sbin/smtpd/ca.c
> > > +++ b/usr.sbin/smtpd/ca.c
> > > @@ -110,10 +110,10 @@ ca(void)
> > >
> > > config_peer(PROC_CONTROL);
> > > config_peer(PROC_PARENT);
> > > -       config_peer(PROC_PONY);
> > > +       config_peer(PROC_DISPATCHER);
> > >
> > > /* Ignore them until we get our config */
> > > -       mproc_disable(p_pony);
> > > +       mproc_disable(p_dispatcher);
> > >
> > > if (pledge("stdio", NULL) == -1)
> > > err(1, "pledge");
> > > @@ -246,7 +246,7 @@ ca_imsg(struct mproc *p, struct imsg *imsg)
> > > ca_init();
> > >
> > > /* Start fulfilling requests */
> > > -               mproc_enable(p_pony);
> > > +               mproc_enable(p_dispatcher);
> > > return;
> > >
> > > case IMSG_CTL_VERBOSE:
> > > @@ -385,7 +385,7 @@ rsae_send_imsg(int flen, const unsigned char *from, unsigned char *to,
> > > if (n == 0)
> > > break;
> > >
> > > -                       log_imsg(PROC_PONY, PROC_CA, &imsg);
> > > +                       log_imsg(PROC_DISPATCHER, PROC_CA, &imsg);
> > >
> > > switch (imsg.hdr.type) {
> > > case IMSG_CA_RSA_PRIVENC:
> > > @@ -393,7 +393,7 @@ rsae_send_imsg(int flen, const unsigned char *from, unsigned char *to,
> > > break;
> > > default:
> > > /* Another imsg is queued up in the buffer */
> > > -                               pony_imsg(p_ca, &imsg);
> > > +                               dispatcher_imsg(p_ca, &imsg);
> > > imsg_free(&imsg);
> > > continue;
> > > }
> > > @@ -569,14 +569,14 @@ ecdsae_send_enc_imsg(const unsigned char *dgst, int dgst_len,
> > > if (n == 0)
> > > break;
> > >
> > > -                       log_imsg(PROC_PONY, PROC_CA, &imsg);
> > > +                       log_imsg(PROC_DISPATCHER, PROC_CA, &imsg);
> > >
> > > switch (imsg.hdr.type) {
> > > case IMSG_CA_ECDSA_SIGN:
> > > break;
> > > default:
> > > /* Another imsg is queued up in the buffer */
> > > -                               pony_imsg(p_ca, &imsg);
> > > +                               dispatcher_imsg(p_ca, &imsg);
> > > imsg_free(&imsg);
> > > continue;
> > > }
> > > diff --git a/usr.sbin/smtpd/config.c b/usr.sbin/smtpd/config.c
> > > index 529420ac0f2..2882349ceba 100644
> > > --- a/usr.sbin/smtpd/config.c
> > > +++ b/usr.sbin/smtpd/config.c
> > > @@ -325,8 +325,8 @@ config_peer(enum smtp_proc_type proc)
> > > p = p_queue;
> > > else if (proc == PROC_SCHEDULER)
> > > p = p_scheduler;
> > > -       else if (proc == PROC_PONY)
> > > -               p = p_pony;
> > > +       else if (proc == PROC_DISPATCHER)
> > > +               p = p_dispatcher;
> > > else if (proc == PROC_CA)
> > > p = p_ca;
> > > else
> > > diff --git a/usr.sbin/smtpd/control.c b/usr.sbin/smtpd/control.c
> > > index 6ea52b62cfb..e9e19cd1870 100644
> > > --- a/usr.sbin/smtpd/control.c
> > > +++ b/usr.sbin/smtpd/control.c
> > > @@ -248,7 +248,7 @@ control(void)
> > > config_peer(PROC_QUEUE);
> > > config_peer(PROC_PARENT);
> > > config_peer(PROC_LKA);
> > > -       config_peer(PROC_PONY);
> > > +       config_peer(PROC_DISPATCHER);
> > > config_peer(PROC_CA);
> > >
> > > control_listen();
> > > @@ -450,7 +450,7 @@ control_dispatch_ext(struct mproc *p, struct imsg *imsg)
> > > m_compose(p, IMSG_CTL_FAIL, 0, 0, -1, NULL, 0);
> > > return;
> > > }
> > > -               m_compose(p_pony, IMSG_CTL_SMTP_SESSION, c->id, 0, -1,
> > > +               m_compose(p_dispatcher, IMSG_CTL_SMTP_SESSION, c->id, 0, -1,
> > > &c->euid, sizeof(c->euid));
> > > return;
> > >
> > > @@ -597,7 +597,7 @@ control_dispatch_ext(struct mproc *p, struct imsg *imsg)
> > > }
> > > log_info("info: smtp paused");
> > > env->sc_flags |= SMTPD_SMTP_PAUSED;
> > > -               m_compose(p_pony, IMSG_CTL_PAUSE_SMTP, 0, 0, -1, NULL, 0);
> > > +               m_compose(p_dispatcher, IMSG_CTL_PAUSE_SMTP, 0, 0, -1, NULL, 0);
> > > m_compose(p, IMSG_CTL_OK, 0, 0, -1, NULL, 0);
> > > return;
> > >
> > > @@ -647,7 +647,7 @@ control_dispatch_ext(struct mproc *p, struct imsg *imsg)
> > > }
> > > log_info("info: smtp resumed");
> > > env->sc_flags &= ~SMTPD_SMTP_PAUSED;
> > > -               m_forward(p_pony, imsg);
> > > +               m_forward(p_dispatcher, imsg);
> > > m_compose(p, IMSG_CTL_OK, 0, 0, -1, NULL, 0);
> > > return;
> > >
> > > @@ -655,7 +655,7 @@ control_dispatch_ext(struct mproc *p, struct imsg *imsg)
> > > if (c->euid)
> > > goto badcred;
> > >
> > > -               m_forward(p_pony, imsg);
> > > +               m_forward(p_dispatcher, imsg);
> > > m_compose(p, IMSG_CTL_OK, 0, 0, -1, NULL, 0);
> > > return;
> > >
> > > @@ -682,7 +682,7 @@ control_dispatch_ext(struct mproc *p, struct imsg *imsg)
> > > goto badcred;
> > >
> > > imsg->hdr.peerid = c->id;
> > > -               m_forward(p_pony, imsg);
> > > +               m_forward(p_dispatcher, imsg);
> > > return;
> > >
> > > case IMSG_CTL_SHOW_STATUS:
> > > @@ -701,10 +701,10 @@ control_dispatch_ext(struct mproc *p, struct imsg *imsg)
> > > if (imsg->hdr.len - IMSG_HEADER_SIZE <= sizeof(ss))
> > > goto invalid;
> > > memmove(&ss, imsg->data, sizeof(ss));
> > > -               m_create(p_pony, imsg->hdr.type, c->id, 0, -1);
> > > -               m_add_sockaddr(p_pony, (struct sockaddr *)&ss);
> > > -               m_add_string(p_pony, (char *)imsg->data + sizeof(ss));
> > > -               m_close(p_pony);
> > > +               m_create(p_dispatcher, imsg->hdr.type, c->id, 0, -1);
> > > +               m_add_sockaddr(p_dispatcher, (struct sockaddr *)&ss);
> > > +               m_add_string(p_dispatcher, (char *)imsg->data + sizeof(ss));
> > > +               m_close(p_dispatcher);
> > > return;
> > >
> > > case IMSG_CTL_SCHEDULE:
> > > @@ -780,9 +780,9 @@ control_broadcast_verbose(int msg, int v)
> > > m_add_int(p_lka, v);
> > > m_close(p_lka);
> > >
> > > -       m_create(p_pony, msg, 0, 0, -1);
> > > -       m_add_int(p_pony, v);
> > > -       m_close(p_pony);
> > > +       m_create(p_dispatcher, msg, 0, 0, -1);
> > > +       m_add_int(p_dispatcher, v);
> > > +       m_close(p_dispatcher);
> > >
> > > m_create(p_queue, msg, 0, 0, -1);
> > > m_add_int(p_queue, v);
> > > diff --git a/usr.sbin/smtpd/lka.c b/usr.sbin/smtpd/lka.c
> > > index aa9f233536c..24a748e9de4 100644
> > > --- a/usr.sbin/smtpd/lka.c
> > > +++ b/usr.sbin/smtpd/lka.c
> > > @@ -334,7 +334,7 @@ lka_imsg(struct mproc *p, struct imsg *imsg)
> > >
> > > case IMSG_LKA_AUTHENTICATE:
> > > imsg->hdr.type = IMSG_SMTP_AUTHENTICATE;
> > > -               m_forward(p_pony, imsg);
> > > +               m_forward(p_dispatcher, imsg);
> > > return;
> > >
> > > case IMSG_CTL_VERBOSE:
> > > @@ -701,10 +701,10 @@ lka(void)
> > > config_peer(PROC_PARENT);
> > > config_peer(PROC_QUEUE);
> > > config_peer(PROC_CONTROL);
> > > -       config_peer(PROC_PONY);
> > > +       config_peer(PROC_DISPATCHER);
> > >
> > > /* Ignore them until we get our config */
> > > -       mproc_disable(p_pony);
> > > +       mproc_disable(p_dispatcher);
> > >
> > > lka_report_init();
> > > lka_filter_init();
> > > @@ -729,7 +729,7 @@ proc_timeout(int fd, short event, void *p)
> > > goto reset;
> > >
> > > lka_filter_ready();
> > > -       mproc_enable(p_pony);
> > > +       mproc_enable(p_dispatcher);
> > > return;
> > >
> > > reset:
> > > diff --git a/usr.sbin/smtpd/lka_filter.c b/usr.sbin/smtpd/lka_filter.c
> > > index 9891e6140a3..6771d2fe8a6 100644
> > > --- a/usr.sbin/smtpd/lka_filter.c
> > > +++ b/usr.sbin/smtpd/lka_filter.c
> > > @@ -558,10 +558,10 @@ lka_filter_data_begin(uint64_t reqid)
> > > io_set_callback(fs->io, filter_session_io, fs);
> > >
> > > end:
> > > -       m_create(p_pony, IMSG_FILTER_SMTP_DATA_BEGIN, 0, 0, fd);
> > > -       m_add_id(p_pony, reqid);
> > > -       m_add_int(p_pony, fd != -1 ? 1 : 0);
> > > -       m_close(p_pony);
> > > +       m_create(p_dispatcher, IMSG_FILTER_SMTP_DATA_BEGIN, 0, 0, fd);
> > > +       m_add_id(p_dispatcher, reqid);
> > > +       m_add_int(p_dispatcher, fd != -1 ? 1 : 0);
> > > +       m_close(p_dispatcher);
> > > log_trace(TRACE_FILTERS, "%016"PRIx64" filters data-begin fd=%d", reqid, fd);
> > > }
> > >
> > > @@ -985,49 +985,49 @@ filter_data_query(struct filter *filter, uint64_t token, uint64_t reqid,
> > > const c
> > > static void
> > > filter_result_proceed(uint64_t reqid)
> > > {
> > > -       m_create(p_pony, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
> > > -       m_add_id(p_pony, reqid);
> > > -       m_add_int(p_pony, FILTER_PROCEED);
> > > -       m_close(p_pony);
> > > +       m_create(p_dispatcher, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
> > > +       m_add_id(p_dispatcher, reqid);
> > > +       m_add_int(p_dispatcher, FILTER_PROCEED);
> > > +       m_close(p_dispatcher);
> > > }
> > >
> > > static void
> > > filter_result_junk(uint64_t reqid)
> > > {
> > > -       m_create(p_pony, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
> > > -       m_add_id(p_pony, reqid);
> > > -       m_add_int(p_pony, FILTER_JUNK);
> > > -       m_close(p_pony);
> > > +       m_create(p_dispatcher, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
> > > +       m_add_id(p_dispatcher, reqid);
> > > +       m_add_int(p_dispatcher, FILTER_JUNK);
> > > +       m_close(p_dispatcher);
> > > }
> > >
> > > static void
> > > filter_result_rewrite(uint64_t reqid, const char *param)
> > > {
> > > -       m_create(p_pony, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
> > > -       m_add_id(p_pony, reqid);
> > > -       m_add_int(p_pony, FILTER_REWRITE);
> > > -       m_add_string(p_pony, param);
> > > -       m_close(p_pony);
> > > +       m_create(p_dispatcher, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
> > > +       m_add_id(p_dispatcher, reqid);
> > > +       m_add_int(p_dispatcher, FILTER_REWRITE);
> > > +       m_add_string(p_dispatcher, param);
> > > +       m_close(p_dispatcher);
> > > }
> > >
> > > static void
> > > filter_result_reject(uint64_t reqid, const char *message)
> > > {
> > > -       m_create(p_pony, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
> > > -       m_add_id(p_pony, reqid);
> > > -       m_add_int(p_pony, FILTER_REJECT);
> > > -       m_add_string(p_pony, message);
> > > -       m_close(p_pony);
> > > +       m_create(p_dispatcher, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
> > > +       m_add_id(p_dispatcher, reqid);
> > > +       m_add_int(p_dispatcher, FILTER_REJECT);
> > > +       m_add_string(p_dispatcher, message);
> > > +       m_close(p_dispatcher);
> > > }
> > >
> > > static void
> > > filter_result_disconnect(uint64_t reqid, const char *message)
> > > {
> > > -       m_create(p_pony, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
> > > -       m_add_id(p_pony, reqid);
> > > -       m_add_int(p_pony, FILTER_DISCONNECT);
> > > -       m_add_string(p_pony, message);
> > > -       m_close(p_pony);
> > > +       m_create(p_dispatcher, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
> > > +       m_add_id(p_dispatcher, reqid);
> > > +       m_add_int(p_dispatcher, FILTER_DISCONNECT);
> > > +       m_add_string(p_dispatcher, message);
> > > +       m_close(p_dispatcher);
> > > }
> > >
> > > diff --git a/usr.sbin/smtpd/lka_session.c b/usr.sbin/smtpd/lka_session.c
> > > index ed1fd36fafd..4eb55c04689 100644
> > > --- a/usr.sbin/smtpd/lka_session.c
> > > +++ b/usr.sbin/smtpd/lka_session.c
> > > @@ -215,20 +215,20 @@ lka_resume(struct lka_session *lks)
> > > }
> > > error:
> > > if (lks->error) {
> > > -               m_create(p_pony, IMSG_SMTP_EXPAND_RCPT, 0, 0, -1);
> > > -               m_add_id(p_pony, lks->id);
> > > -               m_add_int(p_pony, lks->error);
> > > +               m_create(p_dispatcher, IMSG_SMTP_EXPAND_RCPT, 0, 0, -1);
> > > +               m_add_id(p_dispatcher, lks->id);
> > > +               m_add_int(p_dispatcher, lks->error);
> > >
> > > if (lks->errormsg)
> > > -                       m_add_string(p_pony, lks->errormsg);
> > > +                       m_add_string(p_dispatcher, lks->errormsg);
> > > else {
> > > if (lks->error == LKA_PERMFAIL)
> > > -                               m_add_string(p_pony, "550 Invalid recipient");
> > > +                               m_add_string(p_dispatcher, "550 Invalid recipient");
> > > else if (lks->error == LKA_TEMPFAIL)
> > > -                               m_add_string(p_pony, "451 Temporary failure");
> > > +                               m_add_string(p_dispatcher, "451 Temporary failure");
> > > }
> > >
> > > -               m_close(p_pony);
> > > +               m_close(p_dispatcher);
> > > while ((ep = TAILQ_FIRST(&lks->deliverylist)) != NULL) {
> > > TAILQ_REMOVE(&lks->deliverylist, ep, entry);
> > > free(ep);
> > > diff --git a/usr.sbin/smtpd/parse.y b/usr.sbin/smtpd/parse.y
> > > index 9f1cb52ec98..b748fabd9ea 100644
> > > --- a/usr.sbin/smtpd/parse.y
> > > +++ b/usr.sbin/smtpd/parse.y
> > > @@ -103,7 +103,7 @@ struct mta_limits   *limits;
> > > static struct pki      *pki;
> > > static struct ca       *sca;
> > >
> > > -struct dispatcher      *dispatcher;
> > > +struct dispatcher      *dsp;
> > > struct rule            *rule;
> > > struct filter_proc     *processor;
> > > struct filter_config   *filter_config;
> > > @@ -582,37 +582,37 @@ SRS KEY STRING {
> > >
> > > dispatcher_local_option:
> > > USER STRING {
> > > -       if (dispatcher->u.local.is_mbox) {
> > > +       if (dsp->u.local.is_mbox) {
> > > yyerror("user may not be specified for this dispatcher");
> > > YYERROR;
> > > }
> > >
> > > -       if (dispatcher->u.local.forward_only) {
> > > +       if (dsp->u.local.forward_only) {
> > > yyerror("user may not be specified for forward-only");
> > > YYERROR;
> > > }
> > >
> > > -       if (dispatcher->u.local.expand_only) {
> > > +       if (dsp->u.local.expand_only) {
> > > yyerror("user may not be specified for expand-only");
> > > YYERROR;
> > > }
> > >
> > > -       if (dispatcher->u.local.user) {
> > > +       if (dsp->u.local.user) {
> > > yyerror("user already specified for this dispatcher");
> > > YYERROR;
> > > }
> > >
> > > -       dispatcher->u.local.user = $2;
> > > +       dsp->u.local.user = $2;
> > > }
> > > > ALIAS tables {
> > > struct table   *t = $2;
> > >
> > > -       if (dispatcher->u.local.table_alias) {
> > > +       if (dsp->u.local.table_alias) {
> > > yyerror("alias mapping already specified for this dispatcher");
> > > YYERROR;
> > > }
> > >
> > > -       if (dispatcher->u.local.table_virtual) {
> > > +       if (dsp->u.local.table_virtual) {
> > > yyerror("virtual mapping already specified for this dispatcher");
> > > YYERROR;
> > > }
> > > @@ -623,17 +623,17 @@ USER STRING {
> > > YYERROR;
> > > }
> > >
> > > -       dispatcher->u.local.table_alias = strdup(t->t_name);
> > > +       dsp->u.local.table_alias = strdup(t->t_name);
> > > }
> > > > VIRTUAL tables {
> > > struct table   *t = $2;
> > >
> > > -       if (dispatcher->u.local.table_virtual) {
> > > +       if (dsp->u.local.table_virtual) {
> > > yyerror("virtual mapping already specified for this dispatcher");
> > > YYERROR;
> > > }
> > >
> > > -       if (dispatcher->u.local.table_alias) {
> > > +       if (dsp->u.local.table_alias) {
> > > yyerror("alias mapping already specified for this dispatcher");
> > > YYERROR;
> > > }
> > > @@ -644,12 +644,12 @@ USER STRING {
> > > YYERROR;
> > > }
> > >
> > > -       dispatcher->u.local.table_virtual = strdup(t->t_name);
> > > +       dsp->u.local.table_virtual = strdup(t->t_name);
> > > }
> > > > USERBASE tables {
> > > struct table   *t = $2;
> > >
> > > -       if (dispatcher->u.local.table_userbase) {
> > > +       if (dsp->u.local.table_userbase) {
> > > yyerror("userbase mapping already specified for this dispatcher");
> > > YYERROR;
> > > }
> > > @@ -660,14 +660,14 @@ USER STRING {
> > > YYERROR;
> > > }
> > >
> > > -       dispatcher->u.local.table_userbase = strdup(t->t_name);
> > > +       dsp->u.local.table_userbase = strdup(t->t_name);
> > > }
> > > > WRAPPER STRING {
> > > if (! dict_get(conf->sc_mda_wrappers, $2)) {
> > > yyerror("no mda wrapper with that name: %s", $2);
> > > YYERROR;
> > > }
> > > -       dispatcher->u.local.mda_wrapper = $2;
> > > +       dsp->u.local.mda_wrapper = $2;
> > > }
> > > ;
> > >
> > > @@ -678,67 +678,67 @@ dispatcher_local_option dispatcher_local_options
> > >
> > > dispatcher_local:
> > > MBOX {
> > > -       dispatcher->u.local.is_mbox = 1;
> > > -       asprintf(&dispatcher->u.local.command, "/usr/libexec/mail.local -f %%{mbox.from} --
> > > %%{user.username}");
> > > +       dsp->u.local.is_mbox = 1;
> > > +       asprintf(&dsp->u.local.command, "/usr/libexec/mail.local -f %%{mbox.from} --
> > > %%{user.username}");
> > > } dispatcher_local_options
> > > > MAILDIR {
> > > -       asprintf(&dispatcher->u.local.command, "/usr/libexec/mail.maildir");
> > > +       asprintf(&dsp->u.local.command, "/usr/libexec/mail.maildir");
> > > } dispatcher_local_options
> > > > MAILDIR JUNK {
> > > -       asprintf(&dispatcher->u.local.command, "/usr/libexec/mail.maildir -j");
> > > +       asprintf(&dsp->u.local.command, "/usr/libexec/mail.maildir -j");
> > > } dispatcher_local_options
> > > > MAILDIR STRING {
> > > if (strncmp($2, "~/", 2) == 0)
> > > -               asprintf(&dispatcher->u.local.command,
> > > +               asprintf(&dsp->u.local.command,
> > > "/usr/libexec/mail.maildir \"%%{user.directory}/%s\"", $2+2);
> > > else
> > > -               asprintf(&dispatcher->u.local.command,
> > > +               asprintf(&dsp->u.local.command,
> > > "/usr/libexec/mail.maildir \"%s\"", $2);
> > > } dispatcher_local_options
> > > > MAILDIR STRING JUNK {
> > > if (strncmp($2, "~/", 2) == 0)
> > > -               asprintf(&dispatcher->u.local.command,
> > > +               asprintf(&dsp->u.local.command,
> > > "/usr/libexec/mail.maildir -j \"%%{user.directory}/%s\"", $2+2);
> > > else
> > > -               asprintf(&dispatcher->u.local.command,
> > > +               asprintf(&dsp->u.local.command,
> > > "/usr/libexec/mail.maildir -j \"%s\"", $2);
> > > } dispatcher_local_options
> > > > LMTP STRING {
> > > -       asprintf(&dispatcher->u.local.command,
> > > +       asprintf(&dsp->u.local.command,
> > > "/usr/libexec/mail.lmtp -d %s -u", $2);
> > > -       dispatcher->u.local.user = SMTPD_USER;
> > > +       dsp->u.local.user = SMTPD_USER;
> > > } dispatcher_local_options
> > > > LMTP STRING RCPT_TO {
> > > -       asprintf(&dispatcher->u.local.command,
> > > +       asprintf(&dsp->u.local.command,
> > > "/usr/libexec/mail.lmtp -d %s -r", $2);
> > > -       dispatcher->u.local.user = SMTPD_USER;
> > > +       dsp->u.local.user = SMTPD_USER;
> > > } dispatcher_local_options
> > > > MDA STRING {
> > > -       asprintf(&dispatcher->u.local.command,
> > > +       asprintf(&dsp->u.local.command,
> > > "/usr/libexec/mail.mda \"%s\"", $2);
> > > } dispatcher_local_options
> > > > FORWARD_ONLY {
> > > -       dispatcher->u.local.forward_only = 1;
> > > +       dsp->u.local.forward_only = 1;
> > > } dispatcher_local_options
> > > > EXPAND_ONLY {
> > > -       dispatcher->u.local.expand_only = 1;
> > > +       dsp->u.local.expand_only = 1;
> > > } dispatcher_local_options
> > >
> > > ;
> > >
> > > dispatcher_remote_option:
> > > HELO STRING {
> > > -       if (dispatcher->u.remote.helo) {
> > > +       if (dsp->u.remote.helo) {
> > > yyerror("helo already specified for this dispatcher");
> > > YYERROR;
> > > }
> > >
> > > -       dispatcher->u.remote.helo = $2;
> > > +       dsp->u.remote.helo = $2;
> > > }
> > > > HELO_SRC tables {
> > > struct table   *t = $2;
> > >
> > > -       if (dispatcher->u.remote.helo_source) {
> > > +       if (dsp->u.remote.helo_source) {
> > > yyerror("helo-source mapping already specified for this dispatcher");
> > > YYERROR;
> > > }
> > > @@ -748,28 +748,28 @@ HELO STRING {
> > > YYERROR;
> > > }
> > >
> > > -       dispatcher->u.remote.helo_source = strdup(t->t_name);
> > > +       dsp->u.remote.helo_source = strdup(t->t_name);
> > > }
> > > > PKI STRING {
> > > -       if (dispatcher->u.remote.pki) {
> > > +       if (dsp->u.remote.pki) {
> > > yyerror("pki already specified for this dispatcher");
> > > YYERROR;
> > > }
> > >
> > > -       dispatcher->u.remote.pki = $2;
> > > +       dsp->u.remote.pki = $2;
> > > }
> > > > CA STRING {
> > > -       if (dispatcher->u.remote.ca) {
> > > +       if (dsp->u.remote.ca) {
> > > yyerror("ca already specified for this dispatcher");
> > > YYERROR;
> > > }
> > >
> > > -       dispatcher->u.remote.ca = $2;
> > > +       dsp->u.remote.ca = $2;
> > > }
> > > > SRC tables {
> > > struct table   *t = $2;
> > >
> > > -       if (dispatcher->u.remote.source) {
> > > +       if (dsp->u.remote.source) {
> > > yyerror("source mapping already specified for this dispatcher");
> > > YYERROR;
> > > }
> > > @@ -780,49 +780,49 @@ HELO STRING {
> > > YYERROR;
> > > }
> > >
> > > -       dispatcher->u.remote.source = strdup(t->t_name);
> > > +       dsp->u.remote.source = strdup(t->t_name);
> > > }
> > > > MAIL_FROM STRING {
> > > -       if (dispatcher->u.remote.mail_from) {
> > > +       if (dsp->u.remote.mail_from) {
> > > yyerror("mail-from already specified for this dispatcher");
> > > YYERROR;
> > > }
> > >
> > > -       dispatcher->u.remote.mail_from = $2;
> > > +       dsp->u.remote.mail_from = $2;
> > > }
> > > > BACKUP MX STRING {
> > > -       if (dispatcher->u.remote.backup) {
> > > +       if (dsp->u.remote.backup) {
> > > yyerror("backup already specified for this dispatcher");
> > > YYERROR;
> > > }
> > > -       if (dispatcher->u.remote.smarthost) {
> > > +       if (dsp->u.remote.smarthost) {
> > > yyerror("backup and host are mutually exclusive");
> > > YYERROR;
> > > }
> > >
> > > -       dispatcher->u.remote.backup = 1;
> > > -       dispatcher->u.remote.backupmx = $3;
> > > +       dsp->u.remote.backup = 1;
> > > +       dsp->u.remote.backupmx = $3;
> > > }
> > > > BACKUP {
> > > -       if (dispatcher->u.remote.backup) {
> > > +       if (dsp->u.remote.backup) {
> > > yyerror("backup already specified for this dispatcher");
> > > YYERROR;
> > > }
> > > -       if (dispatcher->u.remote.smarthost) {
> > > +       if (dsp->u.remote.smarthost) {
> > > yyerror("backup and host are mutually exclusive");
> > > YYERROR;
> > > }
> > >
> > > -       dispatcher->u.remote.backup = 1;
> > > +       dsp->u.remote.backup = 1;
> > > }
> > > > HOST tables {
> > > struct table   *t = $2;
> > >
> > > -       if (dispatcher->u.remote.smarthost) {
> > > +       if (dsp->u.remote.smarthost) {
> > > yyerror("host mapping already specified for this dispatcher");
> > > YYERROR;
> > > }
> > > -       if (dispatcher->u.remote.backup) {
> > > +       if (dsp->u.remote.backup) {
> > > yyerror("backup and host are mutually exclusive");
> > > YYERROR;
> > > }
> > > @@ -833,16 +833,16 @@ HELO STRING {
> > > YYERROR;
> > > }
> > >
> > > -       dispatcher->u.remote.smarthost = strdup(t->t_name);
> > > +       dsp->u.remote.smarthost = strdup(t->t_name);
> > > }
> > > > DOMAIN tables {
> > > struct table   *t = $2;
> > >
> > > -       if (dispatcher->u.remote.smarthost) {
> > > +       if (dsp->u.remote.smarthost) {
> > > yyerror("host mapping already specified for this dispatcher");
> > > YYERROR;
> > > }
> > > -       if (dispatcher->u.remote.backup) {
> > > +       if (dsp->u.remote.backup) {
> > > yyerror("backup and domain are mutually exclusive");
> > > YYERROR;
> > > }
> > > @@ -853,35 +853,35 @@ HELO STRING {
> > > YYERROR;
> > > }
> > >
> > > -       dispatcher->u.remote.smarthost = strdup(t->t_name);
> > > -       dispatcher->u.remote.smarthost_domain = 1;
> > > +       dsp->u.remote.smarthost = strdup(t->t_name);
> > > +       dsp->u.remote.smarthost_domain = 1;
> > > }
> > > > TLS {
> > > -       if (dispatcher->u.remote.tls_required == 1) {
> > > +       if (dsp->u.remote.tls_required == 1) {
> > > yyerror("tls already specified for this dispatcher");
> > > YYERROR;
> > > }
> > >
> > > -       dispatcher->u.remote.tls_required = 1;
> > > +       dsp->u.remote.tls_required = 1;
> > > }
> > > > TLS NO_VERIFY {
> > > -       if (dispatcher->u.remote.tls_required == 1) {
> > > +       if (dsp->u.remote.tls_required == 1) {
> > > yyerror("tls already specified for this dispatcher");
> > > YYERROR;
> > > }
> > >
> > > -       dispatcher->u.remote.tls_required = 1;
> > > -       dispatcher->u.remote.tls_noverify = 1;
> > > +       dsp->u.remote.tls_required = 1;
> > > +       dsp->u.remote.tls_noverify = 1;
> > > }
> > > > AUTH tables {
> > > struct table   *t = $2;
> > >
> > > -       if (dispatcher->u.remote.smarthost == NULL) {
> > > +       if (dsp->u.remote.smarthost == NULL) {
> > > yyerror("auth may not be specified without host on a dispatcher");
> > > YYERROR;
> > > }
> > >
> > > -       if (dispatcher->u.remote.auth) {
> > > +       if (dsp->u.remote.auth) {
> > > yyerror("auth mapping already specified for this dispatcher");
> > > YYERROR;
> > > }
> > > @@ -892,12 +892,12 @@ HELO STRING {
> > > YYERROR;
> > > }
> > >
> > > -       dispatcher->u.remote.auth = strdup(t->t_name);
> > > +       dsp->u.remote.auth = strdup(t->t_name);
> > > }
> > > > FILTER STRING {
> > > struct filter_config *fc;
> > >
> > > -       if (dispatcher->u.remote.filtername) {
> > > +       if (dsp->u.remote.filtername) {
> > > yyerror("filter already specified for this dispatcher");
> > > YYERROR;
> > > }
> > > @@ -908,13 +908,13 @@ HELO STRING {
> > > YYERROR;
> > > }
> > > fc->filter_subsystem |= FILTER_SUBSYSTEM_SMTP_OUT;
> > > -       dispatcher->u.remote.filtername = $2;
> > > +       dsp->u.remote.filtername = $2;
> > > }
> > > > FILTER {
> > > char    buffer[128];
> > > char    *filtername;
> > >
> > > -       if (dispatcher->u.remote.filtername) {
> > > +       if (dsp->u.remote.filtername) {
> > > yyerror("filter already specified for this dispatcher");
> > > YYERROR;
> > > }
> > > @@ -928,9 +928,9 @@ HELO STRING {
> > > filter_config->filter_type = FILTER_TYPE_CHAIN;
> > > filter_config->filter_subsystem |= FILTER_SUBSYSTEM_SMTP_OUT;
> > > dict_init(&filter_config->chain_procs);
> > > -       dispatcher->u.remote.filtername = filtername;
> > > +       dsp->u.remote.filtername = filtername;
> > > } '{' filter_list '}' {
> > > -       dict_set(conf->sc_filters_dict, dispatcher->u.remote.filtername, filter_config);
> > > +       dict_set(conf->sc_filters_dict, dsp->u.remote.filtername, filter_config);
> > > filter_config = NULL;
> > > }
> > > > SRS {
> > > @@ -938,12 +938,12 @@ HELO STRING {
> > > yyerror("an srs key is required for srs to be specified in an action");
> > > YYERROR;
> > > }
> > > -       if (dispatcher->u.remote.srs == 1) {
> > > +       if (dsp->u.remote.srs == 1) {
> > > yyerror("srs already specified for this dispatcher");
> > > YYERROR;
> > > }
> > >
> > > -       dispatcher->u.remote.srs = 1;
> > > +       dsp->u.remote.srs = 1;
> > > }
> > > ;
> > >
> > > @@ -958,22 +958,22 @@ RELAY dispatcher_remote_options
> > >
> > > dispatcher_type:
> > > dispatcher_local {
> > > -       dispatcher->type = DISPATCHER_LOCAL;
> > > +       dsp->type = DISPATCHER_LOCAL;
> > > }
> > > > dispatcher_remote {
> > > -       dispatcher->type = DISPATCHER_REMOTE;
> > > +       dsp->type = DISPATCHER_REMOTE;
> > > }
> > > ;
> > >
> > > dispatcher_option:
> > > TTL STRING {
> > > -       if (dispatcher->ttl) {
> > > +       if (dsp->ttl) {
> > > yyerror("ttl already specified for this dispatcher");
> > > YYERROR;
> > > }
> > >
> > > -       dispatcher->ttl = delaytonum($2);
> > > -       if (dispatcher->ttl == -1) {
> > > +       dsp->ttl = delaytonum($2);
> > > +       if (dsp->ttl == -1) {
> > > yyerror("ttl delay \"%s\" is invalid", $2);
> > > free($2);
> > > YYERROR;
> > > @@ -993,13 +993,13 @@ ACTION STRING {
> > > yyerror("dispatcher already declared with that name: %s", $2);
> > > YYERROR;
> > > }
> > > -       dispatcher = xcalloc(1, sizeof *dispatcher);
> > > +       dsp = xcalloc(1, sizeof *dsp);
> > > } dispatcher_type dispatcher_options {
> > > -       if (dispatcher->type == DISPATCHER_LOCAL)
> > > -               if (dispatcher->u.local.table_userbase == NULL)
> > > -                       dispatcher->u.local.table_userbase = "<getpwnam>";
> > > -       dict_set(conf->sc_dispatchers, $2, dispatcher);
> > > -       dispatcher = NULL;
> > > +       if (dsp->type == DISPATCHER_LOCAL)
> > > +               if (dsp->u.local.table_userbase == NULL)
> > > +                       dsp->u.local.table_userbase = "<getpwnam>";
> > > +       dict_set(conf->sc_dispatchers, $2, dsp);
> > > +       dsp = NULL;
> > > }
> > > ;
> > >
> > > diff --git a/usr.sbin/smtpd/pony.c b/usr.sbin/smtpd/pony.c
> > > index 026d647307a..d533179a5df 100644
> > > --- a/usr.sbin/smtpd/pony.c
> > > +++ b/usr.sbin/smtpd/pony.c
> > > @@ -44,16 +44,16 @@ void mda_imsg(struct mproc *, struct imsg *);
> > > void mta_imsg(struct mproc *, struct imsg *);
> > > void smtp_imsg(struct mproc *, struct imsg *);
> > >
> > > -static void pony_shutdown(void);
> > > +static void dispatcher_shutdown(void);
> > >
> > > void
> > > -pony_imsg(struct mproc *p, struct imsg *imsg)
> > > +dispatcher_imsg(struct mproc *p, struct imsg *imsg)
> > > {
> > > struct msg      m;
> > > int             v;
> > >
> > > if (imsg == NULL)
> > > -               pony_shutdown();
> > > +               dispatcher_shutdown();
> > >
> > > switch (imsg->hdr.type) {
> > >
> > > @@ -143,14 +143,14 @@ pony_imsg(struct mproc *p, struct imsg *imsg)
> > > }
> > >
> > > static void
> > > -pony_shutdown(void)
> > > +dispatcher_shutdown(void)
> > > {
> > > -       log_debug("debug: pony agent exiting");
> > > +       log_debug("debug: dispatcher agent exiting");
> > > _exit(0);
> > > }
> > >
> > > int
> > > -pony(void)
> > > +dispatcher(void)
> > > {
> > > struct passwd   *pw;
> > >
> > > @@ -167,18 +167,18 @@ pony(void)
> > > fatalx("unknown user " SMTPD_USER);
> > >
> > > if (chroot(PATH_CHROOT) == -1)
> > > -               fatal("pony: chroot");
> > > +               fatal("dispatcher: chroot");
> > > if (chdir("/") == -1)
> > > -               fatal("pony: chdir(\"/\")");
> > > +               fatal("dispatcher: chdir(\"/\")");
> > >
> > > -       config_process(PROC_PONY);
> > > +       config_process(PROC_DISPATCHER);
> > >
> > > if (setgroups(1, &pw->pw_gid) ||
> > > setresgid(pw->pw_gid, pw->pw_gid, pw->pw_gid) ||
> > > setresuid(pw->pw_uid, pw->pw_uid, pw->pw_uid))
> > > -               fatal("pony: cannot drop privileges");
> > > +               fatal("dispatcher: cannot drop privileges");
> > >
> > > -       imsg_callback = pony_imsg;
> > > +       imsg_callback = dispatcher_imsg;
> > > event_init();
> > >
> > > mda_postprivdrop();
> > > diff --git a/usr.sbin/smtpd/queue.c b/usr.sbin/smtpd/queue.c
> > > index 3739fe22750..0a621709764 100644
> > > --- a/usr.sbin/smtpd/queue.c
> > > +++ b/usr.sbin/smtpd/queue.c
> > > @@ -152,15 +152,15 @@ queue_imsg(struct mproc *p, struct imsg *imsg)
> > > log_warnx("warn: imsg_queue_submit_envelope: msgid=0, "
> > > "evpid=%016"PRIx64, evp.id);
> > > ret = queue_envelope_create(&evp);
> > > -               m_create(p_pony, IMSG_QUEUE_ENVELOPE_SUBMIT, 0, 0, -1);
> > > -               m_add_id(p_pony, reqid);
> > > +               m_create(p_dispatcher, IMSG_QUEUE_ENVELOPE_SUBMIT, 0, 0, -1);
> > > +               m_add_id(p_dispatcher, reqid);
> > > if (ret == 0)
> > > -                       m_add_int(p_pony, 0);
> > > +                       m_add_int(p_dispatcher, 0);
> > > else {
> > > -                       m_add_int(p_pony, 1);
> > > -                       m_add_evpid(p_pony, evp.id);
> > > +                       m_add_int(p_dispatcher, 1);
> > > +                       m_add_evpid(p_dispatcher, evp.id);
> > > }
> > > -               m_close(p_pony);
> > > +               m_close(p_dispatcher);
> > > if (ret) {
> > > m_create(p_scheduler,
> > > IMSG_QUEUE_ENVELOPE_SUBMIT, 0, 0, -1);
> > > @@ -173,10 +173,10 @@ queue_imsg(struct mproc *p, struct imsg *imsg)
> > > m_msg(&m, imsg);
> > > m_get_id(&m, &reqid);
> > > m_end(&m);
> > > -               m_create(p_pony, IMSG_QUEUE_ENVELOPE_COMMIT, 0, 0, -1);
> > > -               m_add_id(p_pony, reqid);
> > > -               m_add_int(p_pony, 1);
> > > -               m_close(p_pony);
> > > +               m_create(p_dispatcher, IMSG_QUEUE_ENVELOPE_COMMIT, 0, 0, -1);
> > > +               m_add_id(p_dispatcher, reqid);
> > > +               m_add_int(p_dispatcher, 1);
> > > +               m_close(p_dispatcher);
> > > return;
> > >
> > > case IMSG_SCHED_ENVELOPE_REMOVE:
> > > @@ -250,9 +250,9 @@ queue_imsg(struct mproc *p, struct imsg *imsg)
> > > return;
> > > }
> > > evp.lasttry = time(NULL);
> > > -               m_create(p_pony, IMSG_QUEUE_DELIVER, 0, 0, -1);
> > > -               m_add_envelope(p_pony, &evp);
> > > -               m_close(p_pony);
> > > +               m_create(p_dispatcher, IMSG_QUEUE_DELIVER, 0, 0, -1);
> > > +               m_add_envelope(p_dispatcher, &evp);
> > > +               m_close(p_dispatcher);
> > > return;
> > >
> > > case IMSG_SCHED_ENVELOPE_INJECT:
> > > @@ -275,9 +275,9 @@ queue_imsg(struct mproc *p, struct imsg *imsg)
> > > return;
> > > }
> > > evp.lasttry = time(NULL);
> > > -               m_create(p_pony, IMSG_QUEUE_TRANSFER, 0, 0, -1);
> > > -               m_add_envelope(p_pony, &evp);
> > > -               m_close(p_pony);
> > > +               m_create(p_dispatcher, IMSG_QUEUE_TRANSFER, 0, 0, -1);
> > > +               m_add_envelope(p_dispatcher, &evp);
> > > +               m_close(p_dispatcher);
> > > return;
> > >
> > > case IMSG_CTL_LIST_ENVELOPES:
> > > @@ -665,7 +665,7 @@ queue(void)
> > > config_peer(PROC_CONTROL);
> > > config_peer(PROC_LKA);
> > > config_peer(PROC_SCHEDULER);
> > > -       config_peer(PROC_PONY);
> > > +       config_peer(PROC_DISPATCHER);
> > >
> > > /* setup queue loading task */
> > > evtimer_set(&ev_qload, queue_timeout, &ev_qload);
> > > diff --git a/usr.sbin/smtpd/smtpd.c b/usr.sbin/smtpd/smtpd.c
> > > index 854c2ab0cb6..f15411757ee 100644
> > > --- a/usr.sbin/smtpd/smtpd.c
> > > +++ b/usr.sbin/smtpd/smtpd.c
> > > @@ -66,7 +66,7 @@ static int smtpd(void);
> > > static void parent_shutdown(void);
> > > static void parent_send_config(int, short, void *);
> > > static void parent_send_config_lka(void);
> > > -static void parent_send_config_pony(void);
> > > +static void parent_send_config_dispatcher(void);
> > > static void parent_send_config_ca(void);
> > > static void parent_sig_handler(int, short, void *);
> > > static void forkmda(struct mproc *, uint64_t, struct deliver *);
> > > @@ -140,7 +140,7 @@ struct mproc        *p_lka = NULL;
> > > struct mproc   *p_parent = NULL;
> > > struct mproc   *p_queue = NULL;
> > > struct mproc   *p_scheduler = NULL;
> > > -struct mproc   *p_pony = NULL;
> > > +struct mproc   *p_dispatcher = NULL;
> > > struct mproc   *p_ca = NULL;
> > >
> > > const char     *backend_queue = "fs";
> > > @@ -289,7 +289,7 @@ parent_shutdown(void)
> > > pid_t pid;
> > >
> > > mproc_clear(p_ca);
> > > -       mproc_clear(p_pony);
> > > +       mproc_clear(p_dispatcher);
> > > mproc_clear(p_control);
> > > mproc_clear(p_lka);
> > > mproc_clear(p_scheduler);
> > > @@ -309,17 +309,17 @@ static void
> > > parent_send_config(int fd, short event, void *p)
> > > {
> > > parent_send_config_lka();
> > > -       parent_send_config_pony();
> > > +       parent_send_config_dispatcher();
> > > parent_send_config_ca();
> > > purge_config(PURGE_PKI);
> > > }
> > >
> > > static void
> > > -parent_send_config_pony(void)
> > > +parent_send_config_dispatcher(void)
> > > {
> > > -       log_debug("debug: parent_send_config: configuring pony process");
> > > -       m_compose(p_pony, IMSG_CONF_START, 0, 0, -1, NULL, 0);
> > > -       m_compose(p_pony, IMSG_CONF_END, 0, 0, -1, NULL, 0);
> > > +       log_debug("debug: parent_send_config: configuring dispatcher process");
> > > +       m_compose(p_dispatcher, IMSG_CONF_START, 0, 0, -1, NULL, 0);
> > > +       m_compose(p_dispatcher, IMSG_CONF_END, 0, 0, -1, NULL, 0);
> > > }
> > >
> > > void
> > > @@ -437,13 +437,13 @@ parent_sig_handler(int sig, short event, void *p)
> > > "for session %016"PRIx64 ": %s",
> > > child->mda_id, cause);
> > >
> > > -                               m_create(p_pony, IMSG_MDA_DONE, 0, 0,
> > > +                               m_create(p_dispatcher, IMSG_MDA_DONE, 0, 0,
> > > child->mda_out);
> > > -                               m_add_id(p_pony, child->mda_id);
> > > -                               m_add_int(p_pony, mda_status);
> > > -                               m_add_int(p_pony, mda_sysexit);
> > > -                               m_add_string(p_pony, cause);
> > > -                               m_close(p_pony);
> > > +                               m_add_id(p_dispatcher, child->mda_id);
> > > +                               m_add_int(p_dispatcher, mda_status);
> > > +                               m_add_int(p_dispatcher, mda_sysexit);
> > > +                               m_add_string(p_dispatcher, cause);
> > > +                               m_close(p_dispatcher);
> > >
> > > break;
> > >
> > > @@ -698,8 +698,8 @@ main(int argc, char *argv[])
> > > p_lka = start_child(save_argc, save_argv, "lka");
> > > p_lka->proc = PROC_LKA;
> > >
> > > -               p_pony = start_child(save_argc, save_argv, "pony");
> > > -               p_pony->proc = PROC_PONY;
> > > +               p_dispatcher = start_child(save_argc, save_argv, "dispatcher");
> > > +               p_dispatcher->proc = PROC_DISPATCHER;
> > >
> > > p_queue = start_child(save_argc, save_argv, "queue");
> > > p_queue->proc = PROC_QUEUE;
> > > @@ -709,12 +709,12 @@ main(int argc, char *argv[])
> > >
> > > setup_peers(p_control, p_ca);
> > > setup_peers(p_control, p_lka);
> > > -               setup_peers(p_control, p_pony);
> > > +               setup_peers(p_control, p_dispatcher);
> > > setup_peers(p_control, p_queue);
> > > setup_peers(p_control, p_scheduler);
> > > -               setup_peers(p_pony, p_ca);
> > > -               setup_peers(p_pony, p_lka);
> > > -               setup_peers(p_pony, p_queue);
> > > +               setup_peers(p_dispatcher, p_ca);
> > > +               setup_peers(p_dispatcher, p_lka);
> > > +               setup_peers(p_dispatcher, p_queue);
> > > setup_peers(p_queue, p_lka);
> > > setup_peers(p_queue, p_scheduler);
> > >
> > > @@ -730,7 +730,7 @@ main(int argc, char *argv[])
> > > setup_done(p_ca);
> > > setup_done(p_control);
> > > setup_done(p_lka);
> > > -               setup_done(p_pony);
> > > +               setup_done(p_dispatcher);
> > > setup_done(p_queue);
> > > setup_done(p_scheduler);
> > >
> > > @@ -767,11 +767,11 @@ main(int argc, char *argv[])
> > > return lka();
> > > }
> > >
> > > -       else if (!strcmp(rexec, "pony")) {
> > > -               smtpd_process = PROC_PONY;
> > > +       else if (!strcmp(rexec, "dispatcher")) {
> > > +               smtpd_process = PROC_DISPATCHER;
> > > setup_proc();
> > >
> > > -               return pony();
> > > +               return dispatcher();
> > > }
> > >
> > > else if (!strcmp(rexec, "queue")) {
> > > @@ -978,8 +978,8 @@ setup_peer(enum smtp_proc_type proc, pid_t pid, int sock)
> > > case PROC_SCHEDULER:
> > > pp = &p_scheduler;
> > > break;
> > > -       case PROC_PONY:
> > > -               pp = &p_pony;
> > > +       case PROC_DISPATCHER:
> > > +               pp = &p_dispatcher;
> > > break;
> > > case PROC_CA:
> > > pp = &p_ca;
> > > @@ -1050,7 +1050,7 @@ smtpd(void) {
> > > child_add(p_control->pid, CHILD_DAEMON, proc_title(PROC_CONTROL));
> > > child_add(p_lka->pid, CHILD_DAEMON, proc_title(PROC_LKA));
> > > child_add(p_scheduler->pid, CHILD_DAEMON, proc_title(PROC_SCHEDULER));
> > > -       child_add(p_pony->pid, CHILD_DAEMON, proc_title(PROC_PONY));
> > > +       child_add(p_dispatcher->pid, CHILD_DAEMON, proc_title(PROC_DISPATCHER));
> > > child_add(p_ca->pid, CHILD_DAEMON, proc_title(PROC_CA));
> > >
> > > event_init();
> > > @@ -1069,7 +1069,7 @@ smtpd(void) {
> > > config_peer(PROC_LKA);
> > > config_peer(PROC_QUEUE);
> > > config_peer(PROC_CA);
> > > -       config_peer(PROC_PONY);
> > > +       config_peer(PROC_DISPATCHER);
> > >
> > > evtimer_set(&config_ev, parent_send_config, NULL);
> > > memset(&tv, 0, sizeof(tv));
> > > @@ -1421,12 +1421,12 @@ forkmda(struct mproc *p, uint64_t id, struct deliver *deliver)
> > > (void)snprintf(ebuf, sizeof ebuf,
> > > "delivery user '%s' does not exist",
> > > dsp->u.local.user);
> > > -                       m_create(p_pony, IMSG_MDA_DONE, 0, 0, -1);
> > > -                       m_add_id(p_pony, id);
> > > -                       m_add_int(p_pony, MDA_PERMFAIL);
> > > -                       m_add_int(p_pony, EX_NOUSER);
> > > -                       m_add_string(p_pony, ebuf);
> > > -                       m_close(p_pony);
> > > +                       m_create(p_dispatcher, IMSG_MDA_DONE, 0, 0, -1);
> > > +                       m_add_id(p_dispatcher, id);
> > > +                       m_add_int(p_dispatcher, MDA_PERMFAIL);
> > > +                       m_add_int(p_dispatcher, EX_NOUSER);
> > > +                       m_add_string(p_dispatcher, ebuf);
> > > +                       m_close(p_dispatcher);
> > > return;
> > > }
> > > pw_name = pw->pw_name;
> > > @@ -1451,23 +1451,23 @@ forkmda(struct mproc *p, uint64_t id, struct deliver *deliver)
> > > if (pw_uid == 0 && !dsp->u.local.is_mbox) {
> > > (void)snprintf(ebuf, sizeof ebuf, "not allowed to deliver to: %s",
> > > deliver->userinfo.username);
> > > -               m_create(p_pony, IMSG_MDA_DONE, 0, 0, -1);
> > > -               m_add_id(p_pony, id);
> > > -               m_add_int(p_pony, MDA_PERMFAIL);
> > > -               m_add_int(p_pony, EX_NOPERM);
> > > -               m_add_string(p_pony, ebuf);
> > > -               m_close(p_pony);
> > > +               m_create(p_dispatcher, IMSG_MDA_DONE, 0, 0, -1);
> > > +               m_add_id(p_dispatcher, id);
> > > +               m_add_int(p_dispatcher, MDA_PERMFAIL);
> > > +               m_add_int(p_dispatcher, EX_NOPERM);
> > > +               m_add_string(p_dispatcher, ebuf);
> > > +               m_close(p_dispatcher);
> > > return;
> > > }
> > >
> > > if (pipe(pipefd) == -1) {
> > > (void)snprintf(ebuf, sizeof ebuf, "pipe: %s", strerror(errno));
> > > -               m_create(p_pony, IMSG_MDA_DONE, 0, 0, -1);
> > > -               m_add_id(p_pony, id);
> > > -               m_add_int(p_pony, MDA_TEMPFAIL);
> > > -               m_add_int(p_pony, EX_OSERR);
> > > -               m_add_string(p_pony, ebuf);
> > > -               m_close(p_pony);
> > > +               m_create(p_dispatcher, IMSG_MDA_DONE, 0, 0, -1);
> > > +               m_add_id(p_dispatcher, id);
> > > +               m_add_int(p_dispatcher, MDA_TEMPFAIL);
> > > +               m_add_int(p_dispatcher, EX_OSERR);
> > > +               m_add_string(p_dispatcher, ebuf);
> > > +               m_close(p_dispatcher);
> > > return;
> > > }
> > >
> > > @@ -1476,12 +1476,12 @@ forkmda(struct mproc *p, uint64_t id, struct deliver *deliver)
> > > allout = mkstemp(sfn);
> > > if (allout == -1) {
> > > (void)snprintf(ebuf, sizeof ebuf, "mkstemp: %s", strerror(errno));
> > > -               m_create(p_pony, IMSG_MDA_DONE, 0, 0, -1);
> > > -               m_add_id(p_pony, id);
> > > -               m_add_int(p_pony, MDA_TEMPFAIL);
> > > -               m_add_int(p_pony, EX_OSERR);
> > > -               m_add_string(p_pony, ebuf);
> > > -               m_close(p_pony);
> > > +               m_create(p_dispatcher, IMSG_MDA_DONE, 0, 0, -1);
> > > +               m_add_id(p_dispatcher, id);
> > > +               m_add_int(p_dispatcher, MDA_TEMPFAIL);
> > > +               m_add_int(p_dispatcher, EX_OSERR);
> > > +               m_add_string(p_dispatcher, ebuf);
> > > +               m_close(p_dispatcher);
> > > close(pipefd[0]);
> > > close(pipefd[1]);
> > > return;
> > > @@ -1491,12 +1491,12 @@ forkmda(struct mproc *p, uint64_t id, struct deliver *deliver)
> > > pid = fork();
> > > if (pid == -1) {
> > > (void)snprintf(ebuf, sizeof ebuf, "fork: %s", strerror(errno));
> > > -               m_create(p_pony, IMSG_MDA_DONE, 0, 0, -1);
> > > -               m_add_id(p_pony, id);
> > > -               m_add_int(p_pony, MDA_TEMPFAIL);
> > > -               m_add_int(p_pony, EX_OSERR);
> > > -               m_add_string(p_pony, ebuf);
> > > -               m_close(p_pony);
> > > +               m_create(p_dispatcher, IMSG_MDA_DONE, 0, 0, -1);
> > > +               m_add_id(p_dispatcher, id);
> > > +               m_add_int(p_dispatcher, MDA_TEMPFAIL);
> > > +               m_add_int(p_dispatcher, EX_OSERR);
> > > +               m_add_string(p_dispatcher, ebuf);
> > > +               m_close(p_dispatcher);
> > > close(pipefd[0]);
> > > close(pipefd[1]);
> > > close(allout);
> > > @@ -1912,10 +1912,10 @@ proc_title(enum smtp_proc_type proc)
> > > return "control";
> > > case PROC_SCHEDULER:
> > > return "scheduler";
> > > -       case PROC_PONY:
> > > -               return "pony express";
> > > +       case PROC_DISPATCHER:
> > > +               return "dispatcher";
> > > case PROC_CA:
> > > -               return "klondike";
> > > +               return "crypto";
> > > case PROC_CLIENT:
> > > return "client";
> > > case PROC_PROCESSOR:
> > > @@ -1938,8 +1938,8 @@ proc_name(enum smtp_proc_type proc)
> > > return "control";
> > > case PROC_SCHEDULER:
> > > return "scheduler";
> > > -       case PROC_PONY:
> > > -               return "pony";
> > > +       case PROC_DISPATCHER:
> > > +               return "dispatcher";
> > > case PROC_CA:
> > > return "ca";
> > > case PROC_CLIENT:
> > > diff --git a/usr.sbin/smtpd/smtpd.h b/usr.sbin/smtpd/smtpd.h
> > > index 529ff683f76..36c85eb2c18 100644
> > > --- a/usr.sbin/smtpd/smtpd.h
> > > +++ b/usr.sbin/smtpd/smtpd.h
> > > @@ -345,7 +345,7 @@ enum smtp_proc_type {
> > > PROC_QUEUE,
> > > PROC_CONTROL,
> > > PROC_SCHEDULER,
> > > -       PROC_PONY,
> > > +       PROC_DISPATCHER,
> > > PROC_CA,
> > > PROC_PROCESSOR,
> > > PROC_CLIENT,
> > > @@ -1007,7 +1007,7 @@ extern struct mproc *p_parent;
> > > extern struct mproc *p_lka;
> > > extern struct mproc *p_queue;
> > > extern struct mproc *p_scheduler;
> > > -extern struct mproc *p_pony;
> > > +extern struct mproc *p_dispatcher;
> > > extern struct mproc *p_ca;
> > >
> > > extern struct smtpd    *env;
> > > @@ -1580,8 +1580,8 @@ void scheduler_info(struct scheduler_info *, struct envelope *);
> > >
> > > /* pony.c */
> > > -int pony(void);
> > > -void pony_imsg(struct mproc *, struct imsg *);
> > > +int dispatcher(void);
> > > +void dispatcher_imsg(struct mproc *, struct imsg *);
> > >
> > > /* resolver.c */


Reply | Threaded
Open this post in threaded view
|

Re: [diff] src/usr.sbin/smtpd: change process names

Giovanni Bechis-7
In reply to this post by Gilles Chehade-7
On 12/20/20 12:21 AM, [hidden email] wrote:

> December 19, 2020 11:26 PM, "Martijn van Duren" <[hidden email]> wrote:
>
>> Personally I'd rather wait to keep the names in sync, especially since
>> it's an easy 2 line diff that can easily be incorperated in the bigger
>> thing. But it's not something I'm going to loose sleep over if others
>> thing it can go in right now.
>>
>
> Fair enough :-)
>
> Below is the diff that changes all references to pony into dispatcher.
>
> I didn't rename pony.c to dispatcher.c as this would break the diff, but if this gets
> committed I'll submit a diff for the rename + Makefile bit
>
I like it and it reads OK for me.
 Giovanni

Reply | Threaded
Open this post in threaded view
|

Re: [diff] src/usr.sbin/smtpd: change process names

Martijn van Duren-5
On Tue, 2020-12-29 at 08:57 +0100, Giovanni Bechis wrote:

> On 12/20/20 12:21 AM, [hidden email] wrote:
> > December 19, 2020 11:26 PM, "Martijn van Duren" <[hidden email]> wrote:
> >
> > > Personally I'd rather wait to keep the names in sync, especially since
> > > it's an easy 2 line diff that can easily be incorperated in the bigger
> > > thing. But it's not something I'm going to loose sleep over if others
> > > thing it can go in right now.
> > >
> >
> > Fair enough :-)
> >
> > Below is the diff that changes all references to pony into dispatcher.
> >
> > I didn't rename pony.c to dispatcher.c as this would break the diff, but if this gets
> > committed I'll submit a diff for the rename + Makefile bit
> >
> I like it and it reads OK for me.
>  Giovanni
>
Here's the final diff that moves pony.c to dispatcher.c and (including
in smtpd.h).

OK?

martijn@

Index: bounce.c
===================================================================
RCS file: /cvs/src/usr.sbin/smtpd/bounce.c,v
retrieving revision 1.82
diff -u -p -r1.82 bounce.c
--- bounce.c 24 Apr 2020 11:34:07 -0000 1.82
+++ bounce.c 30 Dec 2020 08:25:55 -0000
@@ -290,7 +290,7 @@ bounce_drain()
  }
 
  log_debug("debug: bounce: requesting new enqueue socket...");
- m_compose(p_pony, IMSG_QUEUE_SMTP_SESSION, 0, 0, -1, NULL, 0);
+ m_compose(p_dispatcher, IMSG_QUEUE_SMTP_SESSION, 0, 0, -1, NULL, 0);
 
  running += 1;
  }
Index: ca.c
===================================================================
RCS file: /cvs/src/usr.sbin/smtpd/ca.c,v
retrieving revision 1.36
diff -u -p -r1.36 ca.c
--- ca.c 21 Sep 2019 07:46:53 -0000 1.36
+++ ca.c 30 Dec 2020 08:25:55 -0000
@@ -110,10 +110,10 @@ ca(void)
 
  config_peer(PROC_CONTROL);
  config_peer(PROC_PARENT);
- config_peer(PROC_PONY);
+ config_peer(PROC_DISPATCHER);
 
  /* Ignore them until we get our config */
- mproc_disable(p_pony);
+ mproc_disable(p_dispatcher);
 
  if (pledge("stdio", NULL) == -1)
  err(1, "pledge");
@@ -246,7 +246,7 @@ ca_imsg(struct mproc *p, struct imsg *im
  ca_init();
 
  /* Start fulfilling requests */
- mproc_enable(p_pony);
+ mproc_enable(p_dispatcher);
  return;
 
  case IMSG_CTL_VERBOSE:
@@ -385,7 +385,7 @@ rsae_send_imsg(int flen, const unsigned
  if (n == 0)
  break;
 
- log_imsg(PROC_PONY, PROC_CA, &imsg);
+ log_imsg(PROC_DISPATCHER, PROC_CA, &imsg);
 
  switch (imsg.hdr.type) {
  case IMSG_CA_RSA_PRIVENC:
@@ -393,7 +393,7 @@ rsae_send_imsg(int flen, const unsigned
  break;
  default:
  /* Another imsg is queued up in the buffer */
- pony_imsg(p_ca, &imsg);
+ dispatcher_imsg(p_ca, &imsg);
  imsg_free(&imsg);
  continue;
  }
@@ -569,14 +569,14 @@ ecdsae_send_enc_imsg(const unsigned char
  if (n == 0)
  break;
 
- log_imsg(PROC_PONY, PROC_CA, &imsg);
+ log_imsg(PROC_DISPATCHER, PROC_CA, &imsg);
 
  switch (imsg.hdr.type) {
  case IMSG_CA_ECDSA_SIGN:
  break;
  default:
  /* Another imsg is queued up in the buffer */
- pony_imsg(p_ca, &imsg);
+ dispatcher_imsg(p_ca, &imsg);
  imsg_free(&imsg);
  continue;
  }
Index: config.c
===================================================================
RCS file: /cvs/src/usr.sbin/smtpd/config.c,v
retrieving revision 1.51
diff -u -p -r1.51 config.c
--- config.c 18 Dec 2019 10:00:39 -0000 1.51
+++ config.c 30 Dec 2020 08:25:55 -0000
@@ -325,8 +325,8 @@ config_peer(enum smtp_proc_type proc)
  p = p_queue;
  else if (proc == PROC_SCHEDULER)
  p = p_scheduler;
- else if (proc == PROC_PONY)
- p = p_pony;
+ else if (proc == PROC_DISPATCHER)
+ p = p_dispatcher;
  else if (proc == PROC_CA)
  p = p_ca;
  else
Index: control.c
===================================================================
RCS file: /cvs/src/usr.sbin/smtpd/control.c,v
retrieving revision 1.125
diff -u -p -r1.125 control.c
--- control.c 23 Sep 2020 19:11:50 -0000 1.125
+++ control.c 30 Dec 2020 08:25:55 -0000
@@ -248,7 +248,7 @@ control(void)
  config_peer(PROC_QUEUE);
  config_peer(PROC_PARENT);
  config_peer(PROC_LKA);
- config_peer(PROC_PONY);
+ config_peer(PROC_DISPATCHER);
  config_peer(PROC_CA);
 
  control_listen();
@@ -450,7 +450,7 @@ control_dispatch_ext(struct mproc *p, st
  m_compose(p, IMSG_CTL_FAIL, 0, 0, -1, NULL, 0);
  return;
  }
- m_compose(p_pony, IMSG_CTL_SMTP_SESSION, c->id, 0, -1,
+ m_compose(p_dispatcher, IMSG_CTL_SMTP_SESSION, c->id, 0, -1,
     &c->euid, sizeof(c->euid));
  return;
 
@@ -597,7 +597,7 @@ control_dispatch_ext(struct mproc *p, st
  }
  log_info("info: smtp paused");
  env->sc_flags |= SMTPD_SMTP_PAUSED;
- m_compose(p_pony, IMSG_CTL_PAUSE_SMTP, 0, 0, -1, NULL, 0);
+ m_compose(p_dispatcher, IMSG_CTL_PAUSE_SMTP, 0, 0, -1, NULL, 0);
  m_compose(p, IMSG_CTL_OK, 0, 0, -1, NULL, 0);
  return;
 
@@ -647,7 +647,7 @@ control_dispatch_ext(struct mproc *p, st
  }
  log_info("info: smtp resumed");
  env->sc_flags &= ~SMTPD_SMTP_PAUSED;
- m_forward(p_pony, imsg);
+ m_forward(p_dispatcher, imsg);
  m_compose(p, IMSG_CTL_OK, 0, 0, -1, NULL, 0);
  return;
 
@@ -655,7 +655,7 @@ control_dispatch_ext(struct mproc *p, st
  if (c->euid)
  goto badcred;
 
- m_forward(p_pony, imsg);
+ m_forward(p_dispatcher, imsg);
  m_compose(p, IMSG_CTL_OK, 0, 0, -1, NULL, 0);
  return;
 
@@ -682,7 +682,7 @@ control_dispatch_ext(struct mproc *p, st
  goto badcred;
 
  imsg->hdr.peerid = c->id;
- m_forward(p_pony, imsg);
+ m_forward(p_dispatcher, imsg);
  return;
 
  case IMSG_CTL_SHOW_STATUS:
@@ -701,10 +701,10 @@ control_dispatch_ext(struct mproc *p, st
  if (imsg->hdr.len - IMSG_HEADER_SIZE <= sizeof(ss))
  goto invalid;
  memmove(&ss, imsg->data, sizeof(ss));
- m_create(p_pony, imsg->hdr.type, c->id, 0, -1);
- m_add_sockaddr(p_pony, (struct sockaddr *)&ss);
- m_add_string(p_pony, (char *)imsg->data + sizeof(ss));
- m_close(p_pony);
+ m_create(p_dispatcher, imsg->hdr.type, c->id, 0, -1);
+ m_add_sockaddr(p_dispatcher, (struct sockaddr *)&ss);
+ m_add_string(p_dispatcher, (char *)imsg->data + sizeof(ss));
+ m_close(p_dispatcher);
  return;
 
  case IMSG_CTL_SCHEDULE:
@@ -780,9 +780,9 @@ control_broadcast_verbose(int msg, int v
  m_add_int(p_lka, v);
  m_close(p_lka);
 
- m_create(p_pony, msg, 0, 0, -1);
- m_add_int(p_pony, v);
- m_close(p_pony);
+ m_create(p_dispatcher, msg, 0, 0, -1);
+ m_add_int(p_dispatcher, v);
+ m_close(p_dispatcher);
 
  m_create(p_queue, msg, 0, 0, -1);
  m_add_int(p_queue, v);
Index: dispatcher.c
===================================================================
RCS file: dispatcher.c
diff -N dispatcher.c
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ dispatcher.c 30 Dec 2020 08:25:55 -0000
@@ -0,0 +1,208 @@
+/* $OpenBSD: pony.c,v 1.27 2019/06/13 11:45:35 eric Exp $ */
+
+/*
+ * Copyright (c) 2014 Gilles Chehade <[hidden email]>
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#include <sys/types.h>
+#include <sys/queue.h>
+#include <sys/tree.h>
+#include <sys/socket.h>
+
+#include <ctype.h>
+#include <err.h>
+#include <errno.h>
+#include <event.h>
+#include <imsg.h>
+#include <inttypes.h>
+#include <pwd.h>
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <unistd.h>
+#include <limits.h>
+#include <grp.h>
+
+#include "smtpd.h"
+#include "log.h"
+
+void mda_imsg(struct mproc *, struct imsg *);
+void mta_imsg(struct mproc *, struct imsg *);
+void smtp_imsg(struct mproc *, struct imsg *);
+
+static void dispatcher_shutdown(void);
+
+void
+dispatcher_imsg(struct mproc *p, struct imsg *imsg)
+{
+ struct msg m;
+ int v;
+
+ if (imsg == NULL)
+ dispatcher_shutdown();
+
+ switch (imsg->hdr.type) {
+
+ case IMSG_GETADDRINFO:
+ case IMSG_GETADDRINFO_END:
+ case IMSG_GETNAMEINFO:
+ case IMSG_RES_QUERY:
+ resolver_dispatch_result(p, imsg);
+ return;
+
+ case IMSG_CERT_INIT:
+ case IMSG_CERT_VERIFY:
+ cert_dispatch_result(p, imsg);
+ return;
+
+ case IMSG_CONF_START:
+ return;
+ case IMSG_CONF_END:
+ smtp_configure();
+ return;
+ case IMSG_CTL_VERBOSE:
+ m_msg(&m, imsg);
+ m_get_int(&m, &v);
+ m_end(&m);
+ log_trace_verbose(v);
+ return;
+ case IMSG_CTL_PROFILE:
+ m_msg(&m, imsg);
+ m_get_int(&m, &v);
+ m_end(&m);
+ profiling = v;
+ return;
+
+ /* smtp imsg */
+ case IMSG_SMTP_CHECK_SENDER:
+ case IMSG_SMTP_EXPAND_RCPT:
+ case IMSG_SMTP_LOOKUP_HELO:
+ case IMSG_SMTP_AUTHENTICATE:
+ case IMSG_SMTP_MESSAGE_COMMIT:
+ case IMSG_SMTP_MESSAGE_CREATE:
+ case IMSG_SMTP_MESSAGE_OPEN:
+ case IMSG_FILTER_SMTP_PROTOCOL:
+ case IMSG_FILTER_SMTP_DATA_BEGIN:
+ case IMSG_QUEUE_ENVELOPE_SUBMIT:
+ case IMSG_QUEUE_ENVELOPE_COMMIT:
+ case IMSG_QUEUE_SMTP_SESSION:
+ case IMSG_CTL_SMTP_SESSION:
+ case IMSG_CTL_PAUSE_SMTP:
+ case IMSG_CTL_RESUME_SMTP:
+ smtp_imsg(p, imsg);
+ return;
+
+        /* mta imsg */
+ case IMSG_QUEUE_TRANSFER:
+ case IMSG_MTA_OPEN_MESSAGE:
+ case IMSG_MTA_LOOKUP_CREDENTIALS:
+ case IMSG_MTA_LOOKUP_SMARTHOST:
+ case IMSG_MTA_LOOKUP_SOURCE:
+ case IMSG_MTA_LOOKUP_HELO:
+ case IMSG_MTA_DNS_HOST:
+ case IMSG_MTA_DNS_HOST_END:
+ case IMSG_MTA_DNS_MX_PREFERENCE:
+ case IMSG_CTL_RESUME_ROUTE:
+ case IMSG_CTL_MTA_SHOW_HOSTS:
+ case IMSG_CTL_MTA_SHOW_RELAYS:
+ case IMSG_CTL_MTA_SHOW_ROUTES:
+ case IMSG_CTL_MTA_SHOW_HOSTSTATS:
+ case IMSG_CTL_MTA_BLOCK:
+ case IMSG_CTL_MTA_UNBLOCK:
+ case IMSG_CTL_MTA_SHOW_BLOCK:
+ mta_imsg(p, imsg);
+ return;
+
+        /* mda imsg */
+ case IMSG_MDA_LOOKUP_USERINFO:
+ case IMSG_QUEUE_DELIVER:
+ case IMSG_MDA_OPEN_MESSAGE:
+ case IMSG_MDA_FORK:
+ case IMSG_MDA_DONE:
+ mda_imsg(p, imsg);
+ return;
+ default:
+ break;
+ }
+
+ errx(1, "session_imsg: unexpected %s imsg", imsg_to_str(imsg->hdr.type));
+}
+
+static void
+dispatcher_shutdown(void)
+{
+ log_debug("debug: dispatcher agent exiting");
+ _exit(0);
+}
+
+int
+dispatcher(void)
+{
+ struct passwd *pw;
+
+ mda_postfork();
+ mta_postfork();
+ smtp_postfork();
+
+ /* do not purge listeners and pki, they are purged
+ * in smtp_configure()
+ */
+ purge_config(PURGE_TABLES|PURGE_RULES);
+
+ if ((pw = getpwnam(SMTPD_USER)) == NULL)
+ fatalx("unknown user " SMTPD_USER);
+
+ if (chroot(PATH_CHROOT) == -1)
+ fatal("dispatcher: chroot");
+ if (chdir("/") == -1)
+ fatal("dispatcher: chdir(\"/\")");
+
+ config_process(PROC_DISPATCHER);
+
+ if (setgroups(1, &pw->pw_gid) ||
+    setresgid(pw->pw_gid, pw->pw_gid, pw->pw_gid) ||
+    setresuid(pw->pw_uid, pw->pw_uid, pw->pw_uid))
+ fatal("dispatcher: cannot drop privileges");
+
+ imsg_callback = dispatcher_imsg;
+ event_init();
+
+ mda_postprivdrop();
+ mta_postprivdrop();
+ smtp_postprivdrop();
+
+ signal(SIGINT, SIG_IGN);
+ signal(SIGTERM, SIG_IGN);
+ signal(SIGPIPE, SIG_IGN);
+ signal(SIGHUP, SIG_IGN);
+
+ config_peer(PROC_PARENT);
+ config_peer(PROC_QUEUE);
+ config_peer(PROC_LKA);
+ config_peer(PROC_CONTROL);
+ config_peer(PROC_CA);
+
+ ca_engine_init();
+
+ if (pledge("stdio inet unix recvfd sendfd", NULL) == -1)
+ err(1, "pledge");
+
+ event_dispatch();
+ fatalx("exited event loop");
+
+ return (0);
+}
Index: lka.c
===================================================================
RCS file: /cvs/src/usr.sbin/smtpd/lka.c,v
retrieving revision 1.243
diff -u -p -r1.243 lka.c
--- lka.c 21 Dec 2019 10:23:37 -0000 1.243
+++ lka.c 30 Dec 2020 08:25:55 -0000
@@ -334,7 +334,7 @@ lka_imsg(struct mproc *p, struct imsg *i
 
  case IMSG_LKA_AUTHENTICATE:
  imsg->hdr.type = IMSG_SMTP_AUTHENTICATE;
- m_forward(p_pony, imsg);
+ m_forward(p_dispatcher, imsg);
  return;
 
  case IMSG_CTL_VERBOSE:
@@ -701,10 +701,10 @@ lka(void)
  config_peer(PROC_PARENT);
  config_peer(PROC_QUEUE);
  config_peer(PROC_CONTROL);
- config_peer(PROC_PONY);
+ config_peer(PROC_DISPATCHER);
 
  /* Ignore them until we get our config */
- mproc_disable(p_pony);
+ mproc_disable(p_dispatcher);
 
  lka_report_init();
  lka_filter_init();
@@ -729,7 +729,7 @@ proc_timeout(int fd, short event, void *
  goto reset;
 
  lka_filter_ready();
- mproc_enable(p_pony);
+ mproc_enable(p_dispatcher);
  return;
 
 reset:
Index: lka_filter.c
===================================================================
RCS file: /cvs/src/usr.sbin/smtpd/lka_filter.c,v
retrieving revision 1.65
diff -u -p -r1.65 lka_filter.c
--- lka_filter.c 23 Dec 2020 20:17:49 -0000 1.65
+++ lka_filter.c 30 Dec 2020 08:25:55 -0000
@@ -559,10 +559,10 @@ lka_filter_data_begin(uint64_t reqid)
  io_set_callback(fs->io, filter_session_io, fs);
 
 end:
- m_create(p_pony, IMSG_FILTER_SMTP_DATA_BEGIN, 0, 0, fd);
- m_add_id(p_pony, reqid);
- m_add_int(p_pony, fd != -1 ? 1 : 0);
- m_close(p_pony);
+ m_create(p_dispatcher, IMSG_FILTER_SMTP_DATA_BEGIN, 0, 0, fd);
+ m_add_id(p_dispatcher, reqid);
+ m_add_int(p_dispatcher, fd != -1 ? 1 : 0);
+ m_close(p_dispatcher);
  log_trace(TRACE_FILTERS, "%016"PRIx64" filters data-begin fd=%d", reqid, fd);
 }
 
@@ -981,49 +981,49 @@ filter_data_query(struct filter *filter,
 static void
 filter_result_proceed(uint64_t reqid)
 {
- m_create(p_pony, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
- m_add_id(p_pony, reqid);
- m_add_int(p_pony, FILTER_PROCEED);
- m_close(p_pony);
+ m_create(p_dispatcher, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
+ m_add_id(p_dispatcher, reqid);
+ m_add_int(p_dispatcher, FILTER_PROCEED);
+ m_close(p_dispatcher);
 }
 
 static void
 filter_result_junk(uint64_t reqid)
 {
- m_create(p_pony, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
- m_add_id(p_pony, reqid);
- m_add_int(p_pony, FILTER_JUNK);
- m_close(p_pony);
+ m_create(p_dispatcher, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
+ m_add_id(p_dispatcher, reqid);
+ m_add_int(p_dispatcher, FILTER_JUNK);
+ m_close(p_dispatcher);
 }
 
 static void
 filter_result_rewrite(uint64_t reqid, const char *param)
 {
- m_create(p_pony, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
- m_add_id(p_pony, reqid);
- m_add_int(p_pony, FILTER_REWRITE);
- m_add_string(p_pony, param);
- m_close(p_pony);
+ m_create(p_dispatcher, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
+ m_add_id(p_dispatcher, reqid);
+ m_add_int(p_dispatcher, FILTER_REWRITE);
+ m_add_string(p_dispatcher, param);
+ m_close(p_dispatcher);
 }
 
 static void
 filter_result_reject(uint64_t reqid, const char *message)
 {
- m_create(p_pony, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
- m_add_id(p_pony, reqid);
- m_add_int(p_pony, FILTER_REJECT);
- m_add_string(p_pony, message);
- m_close(p_pony);
+ m_create(p_dispatcher, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
+ m_add_id(p_dispatcher, reqid);
+ m_add_int(p_dispatcher, FILTER_REJECT);
+ m_add_string(p_dispatcher, message);
+ m_close(p_dispatcher);
 }
 
 static void
 filter_result_disconnect(uint64_t reqid, const char *message)
 {
- m_create(p_pony, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
- m_add_id(p_pony, reqid);
- m_add_int(p_pony, FILTER_DISCONNECT);
- m_add_string(p_pony, message);
- m_close(p_pony);
+ m_create(p_dispatcher, IMSG_FILTER_SMTP_PROTOCOL, 0, 0, -1);
+ m_add_id(p_dispatcher, reqid);
+ m_add_int(p_dispatcher, FILTER_DISCONNECT);
+ m_add_string(p_dispatcher, message);
+ m_close(p_dispatcher);
 }
 
 
Index: lka_session.c
===================================================================
RCS file: /cvs/src/usr.sbin/smtpd/lka_session.c,v
retrieving revision 1.93
diff -u -p -r1.93 lka_session.c
--- lka_session.c 20 Sep 2019 17:46:05 -0000 1.93
+++ lka_session.c 30 Dec 2020 08:25:55 -0000
@@ -215,20 +215,20 @@ lka_resume(struct lka_session *lks)
  }
     error:
  if (lks->error) {
- m_create(p_pony, IMSG_SMTP_EXPAND_RCPT, 0, 0, -1);
- m_add_id(p_pony, lks->id);
- m_add_int(p_pony, lks->error);
+ m_create(p_dispatcher, IMSG_SMTP_EXPAND_RCPT, 0, 0, -1);
+ m_add_id(p_dispatcher, lks->id);
+ m_add_int(p_dispatcher, lks->error);
 
  if (lks->errormsg)
- m_add_string(p_pony, lks->errormsg);
+ m_add_string(p_dispatcher, lks->errormsg);
  else {
  if (lks->error == LKA_PERMFAIL)
- m_add_string(p_pony, "550 Invalid recipient");
+ m_add_string(p_dispatcher, "550 Invalid recipient");
  else if (lks->error == LKA_TEMPFAIL)
- m_add_string(p_pony, "451 Temporary failure");
+ m_add_string(p_dispatcher, "451 Temporary failure");
  }
 
- m_close(p_pony);
+ m_close(p_dispatcher);
  while ((ep = TAILQ_FIRST(&lks->deliverylist)) != NULL) {
  TAILQ_REMOVE(&lks->deliverylist, ep, entry);
  free(ep);
Index: parse.y
===================================================================
RCS file: /cvs/src/usr.sbin/smtpd/parse.y,v
retrieving revision 1.281
diff -u -p -r1.281 parse.y
--- parse.y 23 Sep 2020 19:11:50 -0000 1.281
+++ parse.y 30 Dec 2020 08:25:55 -0000
@@ -103,7 +103,7 @@ struct mta_limits *limits;
 static struct pki *pki;
 static struct ca *sca;
 
-struct dispatcher *dispatcher;
+struct dispatcher *dsp;
 struct rule *rule;
 struct filter_proc *processor;
 struct filter_config *filter_config;
@@ -582,37 +582,37 @@ SRS KEY STRING {
 
 dispatcher_local_option:
 USER STRING {
- if (dispatcher->u.local.is_mbox) {
+ if (dsp->u.local.is_mbox) {
  yyerror("user may not be specified for this dispatcher");
  YYERROR;
  }
 
- if (dispatcher->u.local.forward_only) {
+ if (dsp->u.local.forward_only) {
  yyerror("user may not be specified for forward-only");
  YYERROR;
  }
 
- if (dispatcher->u.local.expand_only) {
+ if (dsp->u.local.expand_only) {
  yyerror("user may not be specified for expand-only");
  YYERROR;
  }
 
- if (dispatcher->u.local.user) {
+ if (dsp->u.local.user) {
  yyerror("user already specified for this dispatcher");
  YYERROR;
  }
 
- dispatcher->u.local.user = $2;
+ dsp->u.local.user = $2;
 }
 | ALIAS tables {
  struct table   *t = $2;
 
- if (dispatcher->u.local.table_alias) {
+ if (dsp->u.local.table_alias) {
  yyerror("alias mapping already specified for this dispatcher");
  YYERROR;
  }
 
- if (dispatcher->u.local.table_virtual) {
+ if (dsp->u.local.table_virtual) {
  yyerror("virtual mapping already specified for this dispatcher");
  YYERROR;
  }
@@ -623,17 +623,17 @@ USER STRING {
  YYERROR;
  }
 
- dispatcher->u.local.table_alias = strdup(t->t_name);
+ dsp->u.local.table_alias = strdup(t->t_name);
 }
 | VIRTUAL tables {
  struct table   *t = $2;
 
- if (dispatcher->u.local.table_virtual) {
+ if (dsp->u.local.table_virtual) {
  yyerror("virtual mapping already specified for this dispatcher");
  YYERROR;
  }
 
- if (dispatcher->u.local.table_alias) {
+ if (dsp->u.local.table_alias) {
  yyerror("alias mapping already specified for this dispatcher");
  YYERROR;
  }
@@ -644,12 +644,12 @@ USER STRING {
  YYERROR;
  }
 
- dispatcher->u.local.table_virtual = strdup(t->t_name);
+ dsp->u.local.table_virtual = strdup(t->t_name);
 }
 | USERBASE tables {
  struct table   *t = $2;
 
- if (dispatcher->u.local.table_userbase) {
+ if (dsp->u.local.table_userbase) {
  yyerror("userbase mapping already specified for this dispatcher");
  YYERROR;
  }
@@ -660,14 +660,14 @@ USER STRING {
  YYERROR;
  }
 
- dispatcher->u.local.table_userbase = strdup(t->t_name);
+ dsp->u.local.table_userbase = strdup(t->t_name);
 }
 | WRAPPER STRING {
  if (! dict_get(conf->sc_mda_wrappers, $2)) {
  yyerror("no mda wrapper with that name: %s", $2);
  YYERROR;
  }
- dispatcher->u.local.mda_wrapper = $2;
+ dsp->u.local.mda_wrapper = $2;
 }
 ;
 
@@ -678,67 +678,67 @@ dispatcher_local_option dispatcher_local
 
 dispatcher_local:
 MBOX {
- dispatcher->u.local.is_mbox = 1;
- asprintf(&dispatcher->u.local.command, "/usr/libexec/mail.local -f %%{mbox.from} -- %%{user.username}");
+ dsp->u.local.is_mbox = 1;
+ asprintf(&dsp->u.local.command, "/usr/libexec/mail.local -f %%{mbox.from} -- %%{user.username}");
 } dispatcher_local_options
 | MAILDIR {
- asprintf(&dispatcher->u.local.command, "/usr/libexec/mail.maildir");
+ asprintf(&dsp->u.local.command, "/usr/libexec/mail.maildir");
 } dispatcher_local_options
 | MAILDIR JUNK {
- asprintf(&dispatcher->u.local.command, "/usr/libexec/mail.maildir -j");
+ asprintf(&dsp->u.local.command, "/usr/libexec/mail.maildir -j");
 } dispatcher_local_options
 | MAILDIR STRING {
  if (strncmp($2, "~/", 2) == 0)
- asprintf(&dispatcher->u.local.command,
+ asprintf(&dsp->u.local.command,
     "/usr/libexec/mail.maildir \"%%{user.directory}/%s\"", $2+2);
  else
- asprintf(&dispatcher->u.local.command,
+ asprintf(&dsp->u.local.command,
     "/usr/libexec/mail.maildir \"%s\"", $2);
 } dispatcher_local_options
 | MAILDIR STRING JUNK {
  if (strncmp($2, "~/", 2) == 0)
- asprintf(&dispatcher->u.local.command,
+ asprintf(&dsp->u.local.command,
     "/usr/libexec/mail.maildir -j \"%%{user.directory}/%s\"", $2+2);
  else
- asprintf(&dispatcher->u.local.command,
+ asprintf(&dsp->u.local.command,
     "/usr/libexec/mail.maildir -j \"%s\"", $2);
 } dispatcher_local_options
 | LMTP STRING {
- asprintf(&dispatcher->u.local.command,
+ asprintf(&dsp->u.local.command,
     "/usr/libexec/mail.lmtp -d %s -u", $2);
- dispatcher->u.local.user = SMTPD_USER;
+ dsp->u.local.user = SMTPD_USER;
 } dispatcher_local_options
 | LMTP STRING RCPT_TO {
- asprintf(&dispatcher->u.local.command,
+ asprintf(&dsp->u.local.command,
     "/usr/libexec/mail.lmtp -d %s -r", $2);
- dispatcher->u.local.user = SMTPD_USER;
+ dsp->u.local.user = SMTPD_USER;
 } dispatcher_local_options
 | MDA STRING {
- asprintf(&dispatcher->u.local.command,
+ asprintf(&dsp->u.local.command,
     "/usr/libexec/mail.mda \"%s\"", $2);
 } dispatcher_local_options
 | FORWARD_ONLY {
- dispatcher->u.local.forward_only = 1;
+ dsp->u.local.forward_only = 1;
 } dispatcher_local_options
 | EXPAND_ONLY {
- dispatcher->u.local.expand_only = 1;
+ dsp->u.local.expand_only = 1;
 } dispatcher_local_options
 
 ;
 
 dispatcher_remote_option:
 HELO STRING {
- if (dispatcher->u.remote.helo) {
+ if (dsp->u.remote.helo) {
  yyerror("helo already specified for this dispatcher");
  YYERROR;
  }
 
- dispatcher->u.remote.helo = $2;
+ dsp->u.remote.helo = $2;
 }
 | HELO_SRC tables {
  struct table   *t = $2;
 
- if (dispatcher->u.remote.helo_source) {
+ if (dsp->u.remote.helo_source) {
  yyerror("helo-source mapping already specified for this dispatcher");
  YYERROR;
  }
@@ -748,28 +748,28 @@ HELO STRING {
  YYERROR;
  }
 
- dispatcher->u.remote.helo_source = strdup(t->t_name);
+ dsp->u.remote.helo_source = strdup(t->t_name);
 }
 | PKI STRING {
- if (dispatcher->u.remote.pki) {
+ if (dsp->u.remote.pki) {
  yyerror("pki already specified for this dispatcher");
  YYERROR;
  }
 
- dispatcher->u.remote.pki = $2;
+ dsp->u.remote.pki = $2;
 }
 | CA STRING {
- if (dispatcher->u.remote.ca) {
+ if (dsp->u.remote.ca) {
  yyerror("ca already specified for this dispatcher");
  YYERROR;
  }
 
- dispatcher->u.remote.ca = $2;
+ dsp->u.remote.ca = $2;
 }
 | SRC tables {
  struct table   *t = $2;
 
- if (dispatcher->u.remote.source) {
+ if (dsp->u.remote.source) {
  yyerror("source mapping already specified for this dispatcher");
  YYERROR;
  }
@@ -780,49 +780,49 @@ HELO STRING {
  YYERROR;
  }
 
- dispatcher->u.remote.source = strdup(t->t_name);
+ dsp->u.remote.source = strdup(t->t_name);
 }
 | MAIL_FROM STRING {
- if (dispatcher->u.remote.mail_from) {
+ if (dsp->u.remote.mail_from) {
  yyerror("mail-from already specified for this dispatcher");
  YYERROR;
  }
 
- dispatcher->u.remote.mail_from = $2;
+ dsp->u.remote.mail_from = $2;
 }
 | BACKUP MX STRING {
- if (dispatcher->u.remote.backup) {
+ if (dsp->u.remote.backup) {
  yyerror("backup already specified for this dispatcher");
  YYERROR;
  }
- if (dispatcher->u.remote.smarthost) {
+ if (dsp->u.remote.smarthost) {
  yyerror("backup and host are mutually exclusive");
  YYERROR;
  }
 
- dispatcher->u.remote.backup = 1;
- dispatcher->u.remote.backupmx = $3;
+ dsp->u.remote.backup = 1;
+ dsp->u.remote.backupmx = $3;
 }
 | BACKUP {
- if (dispatcher->u.remote.backup) {
+ if (dsp->u.remote.backup) {
  yyerror("backup already specified for this dispatcher");
  YYERROR;
  }
- if (dispatcher->u.remote.smarthost) {
+ if (dsp->u.remote.smarthost) {
  yyerror("backup and host are mutually exclusive");
  YYERROR;
  }
 
- dispatcher->u.remote.backup = 1;
+ dsp->u.remote.backup = 1;
 }
 | HOST tables {
  struct table   *t = $2;
 
- if (dispatcher->u.remote.smarthost) {
+ if (dsp->u.remote.smarthost) {
  yyerror("host mapping already specified for this dispatcher");
  YYERROR;
  }
- if (dispatcher->u.remote.backup) {
+ if (dsp->u.remote.backup) {
  yyerror("backup and host are mutually exclusive");
  YYERROR;
  }
@@ -833,16 +833,16 @@ HELO STRING {
  YYERROR;
  }
 
- dispatcher->u.remote.smarthost = strdup(t->t_name);
+ dsp->u.remote.smarthost = strdup(t->t_name);
 }
 | DOMAIN tables {
  struct table   *t = $2;
 
- if (dispatcher->u.remote.smarthost) {
+ if (dsp->u.remote.smarthost) {
  yyerror("host mapping already specified for this dispatcher");
  YYERROR;
  }
- if (dispatcher->u.remote.backup) {
+ if (dsp->u.remote.backup) {
  yyerror("backup and domain are mutually exclusive");
  YYERROR;
  }
@@ -853,35 +853,35 @@ HELO STRING {
  YYERROR;
  }
 
- dispatcher->u.remote.smarthost = strdup(t->t_name);
- dispatcher->u.remote.smarthost_domain = 1;
+ dsp->u.remote.smarthost = strdup(t->t_name);
+ dsp->u.remote.smarthost_domain = 1;
 }
 | TLS {
- if (dispatcher->u.remote.tls_required == 1) {
+ if (dsp->u.remote.tls_required == 1) {
  yyerror("tls already specified for this dispatcher");
  YYERROR;
  }
 
- dispatcher->u.remote.tls_required = 1;
+ dsp->u.remote.tls_required = 1;
 }
 | TLS NO_VERIFY {
- if (dispatcher->u.remote.tls_required == 1) {
+ if (dsp->u.remote.tls_required == 1) {
  yyerror("tls already specified for this dispatcher");
  YYERROR;
  }
 
- dispatcher->u.remote.tls_required = 1;
- dispatcher->u.remote.tls_noverify = 1;
+ dsp->u.remote.tls_required = 1;
+ dsp->u.remote.tls_noverify = 1;
 }
 | AUTH tables {
  struct table   *t = $2;
 
- if (dispatcher->u.remote.smarthost == NULL) {
+ if (dsp->u.remote.smarthost == NULL) {
  yyerror("auth may not be specified without host on a dispatcher");
  YYERROR;
  }
 
- if (dispatcher->u.remote.auth) {
+ if (dsp->u.remote.auth) {
  yyerror("auth mapping already specified for this dispatcher");
  YYERROR;
  }
@@ -892,12 +892,12 @@ HELO STRING {
  YYERROR;
  }
 
- dispatcher->u.remote.auth = strdup(t->t_name);
+ dsp->u.remote.auth = strdup(t->t_name);
 }
 | FILTER STRING {
  struct filter_config *fc;
 
- if (dispatcher->u.remote.filtername) {
+ if (dsp->u.remote.filtername) {
  yyerror("filter already specified for this dispatcher");
  YYERROR;
  }
@@ -908,13 +908,13 @@ HELO STRING {
  YYERROR;
  }
  fc->filter_subsystem |= FILTER_SUBSYSTEM_SMTP_OUT;
- dispatcher->u.remote.filtername = $2;
+ dsp->u.remote.filtername = $2;
 }
 | FILTER {
  char buffer[128];
  char *filtername;
 
- if (dispatcher->u.remote.filtername) {
+ if (dsp->u.remote.filtername) {
  yyerror("filter already specified for this dispatcher");
  YYERROR;
  }
@@ -928,9 +928,9 @@ HELO STRING {
  filter_config->filter_type = FILTER_TYPE_CHAIN;
  filter_config->filter_subsystem |= FILTER_SUBSYSTEM_SMTP_OUT;
  dict_init(&filter_config->chain_procs);
- dispatcher->u.remote.filtername = filtername;
+ dsp->u.remote.filtername = filtername;
 } '{' filter_list '}' {
- dict_set(conf->sc_filters_dict, dispatcher->u.remote.filtername, filter_config);
+ dict_set(conf->sc_filters_dict, dsp->u.remote.filtername, filter_config);
  filter_config = NULL;
 }
 | SRS {
@@ -938,12 +938,12 @@ HELO STRING {
  yyerror("an srs key is required for srs to be specified in an action");
  YYERROR;
  }
- if (dispatcher->u.remote.srs == 1) {
+ if (dsp->u.remote.srs == 1) {
  yyerror("srs already specified for this dispatcher");
  YYERROR;
  }
 
- dispatcher->u.remote.srs = 1;
+ dsp->u.remote.srs = 1;
 }
 ;
 
@@ -958,22 +958,22 @@ RELAY dispatcher_remote_options
 
 dispatcher_type:
 dispatcher_local {
- dispatcher->type = DISPATCHER_LOCAL;
+ dsp->type = DISPATCHER_LOCAL;
 }
 | dispatcher_remote {
- dispatcher->type = DISPATCHER_REMOTE;
+ dsp->type = DISPATCHER_REMOTE;
 }
 ;
 
 dispatcher_option:
 TTL STRING {
- if (dispatcher->ttl) {
+ if (dsp->ttl) {
  yyerror("ttl already specified for this dispatcher");
  YYERROR;
  }
 
- dispatcher->ttl = delaytonum($2);
- if (dispatcher->ttl == -1) {
+ dsp->ttl = delaytonum($2);
+ if (dsp->ttl == -1) {
  yyerror("ttl delay \"%s\" is invalid", $2);
  free($2);
  YYERROR;
@@ -993,13 +993,13 @@ ACTION STRING {
  yyerror("dispatcher already declared with that name: %s", $2);
  YYERROR;
  }
- dispatcher = xcalloc(1, sizeof *dispatcher);
+ dsp = xcalloc(1, sizeof *dsp);
 } dispatcher_type dispatcher_options {
- if (dispatcher->type == DISPATCHER_LOCAL)
- if (dispatcher->u.local.table_userbase == NULL)
- dispatcher->u.local.table_userbase = "<getpwnam>";
- dict_set(conf->sc_dispatchers, $2, dispatcher);
- dispatcher = NULL;
+ if (dsp->type == DISPATCHER_LOCAL)
+ if (dsp->u.local.table_userbase == NULL)
+ dsp->u.local.table_userbase = "<getpwnam>";
+ dict_set(conf->sc_dispatchers, $2, dsp);
+ dsp = NULL;
 }
 ;
 
Index: pony.c
===================================================================
RCS file: pony.c
diff -N pony.c
--- pony.c 13 Jun 2019 11:45:35 -0000 1.27
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,208 +0,0 @@
-/* $OpenBSD: pony.c,v 1.27 2019/06/13 11:45:35 eric Exp $ */
-
-/*
- * Copyright (c) 2014 Gilles Chehade <[hidden email]>
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include <sys/types.h>
-#include <sys/queue.h>
-#include <sys/tree.h>
-#include <sys/socket.h>
-
-#include <ctype.h>
-#include <err.h>
-#include <errno.h>
-#include <event.h>
-#include <imsg.h>
-#include <inttypes.h>
-#include <pwd.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <unistd.h>
-#include <limits.h>
-#include <grp.h>
-
-#include "smtpd.h"
-#include "log.h"
-
-void mda_imsg(struct mproc *, struct imsg *);
-void mta_imsg(struct mproc *, struct imsg *);
-void smtp_imsg(struct mproc *, struct imsg *);
-
-static void pony_shutdown(void);
-
-void
-pony_imsg(struct mproc *p, struct imsg *imsg)
-{
- struct msg m;
- int v;
-
- if (imsg == NULL)
- pony_shutdown();
-
- switch (imsg->hdr.type) {
-
- case IMSG_GETADDRINFO:
- case IMSG_GETADDRINFO_END:
- case IMSG_GETNAMEINFO:
- case IMSG_RES_QUERY:
- resolver_dispatch_result(p, imsg);
- return;
-
- case IMSG_CERT_INIT:
- case IMSG_CERT_VERIFY:
- cert_dispatch_result(p, imsg);
- return;
-
- case IMSG_CONF_START:
- return;
- case IMSG_CONF_END:
- smtp_configure();
- return;
- case IMSG_CTL_VERBOSE:
- m_msg(&m, imsg);
- m_get_int(&m, &v);
- m_end(&m);
- log_trace_verbose(v);
- return;
- case IMSG_CTL_PROFILE:
- m_msg(&m, imsg);
- m_get_int(&m, &v);
- m_end(&m);
- profiling = v;
- return;
-
- /* smtp imsg */
- case IMSG_SMTP_CHECK_SENDER:
- case IMSG_SMTP_EXPAND_RCPT:
- case IMSG_SMTP_LOOKUP_HELO:
- case IMSG_SMTP_AUTHENTICATE:
- case IMSG_SMTP_MESSAGE_COMMIT:
- case IMSG_SMTP_MESSAGE_CREATE:
- case IMSG_SMTP_MESSAGE_OPEN:
- case IMSG_FILTER_SMTP_PROTOCOL:
- case IMSG_FILTER_SMTP_DATA_BEGIN:
- case IMSG_QUEUE_ENVELOPE_SUBMIT:
- case IMSG_QUEUE_ENVELOPE_COMMIT:
- case IMSG_QUEUE_SMTP_SESSION:
- case IMSG_CTL_SMTP_SESSION:
- case IMSG_CTL_PAUSE_SMTP:
- case IMSG_CTL_RESUME_SMTP:
- smtp_imsg(p, imsg);
- return;
-
-        /* mta imsg */
- case IMSG_QUEUE_TRANSFER:
- case IMSG_MTA_OPEN_MESSAGE:
- case IMSG_MTA_LOOKUP_CREDENTIALS:
- case IMSG_MTA_LOOKUP_SMARTHOST:
- case IMSG_MTA_LOOKUP_SOURCE:
- case IMSG_MTA_LOOKUP_HELO:
- case IMSG_MTA_DNS_HOST:
- case IMSG_MTA_DNS_HOST_END:
- case IMSG_MTA_DNS_MX_PREFERENCE:
- case IMSG_CTL_RESUME_ROUTE:
- case IMSG_CTL_MTA_SHOW_HOSTS:
- case IMSG_CTL_MTA_SHOW_RELAYS:
- case IMSG_CTL_MTA_SHOW_ROUTES:
- case IMSG_CTL_MTA_SHOW_HOSTSTATS:
- case IMSG_CTL_MTA_BLOCK:
- case IMSG_CTL_MTA_UNBLOCK:
- case IMSG_CTL_MTA_SHOW_BLOCK:
- mta_imsg(p, imsg);
- return;
-
-        /* mda imsg */
- case IMSG_MDA_LOOKUP_USERINFO:
- case IMSG_QUEUE_DELIVER:
- case IMSG_MDA_OPEN_MESSAGE:
- case IMSG_MDA_FORK:
- case IMSG_MDA_DONE:
- mda_imsg(p, imsg);
- return;
- default:
- break;
- }
-
- errx(1, "session_imsg: unexpected %s imsg", imsg_to_str(imsg->hdr.type));
-}
-
-static void
-pony_shutdown(void)
-{
- log_debug("debug: pony agent exiting");
- _exit(0);
-}
-
-int
-pony(void)
-{
- struct passwd *pw;
-
- mda_postfork();
- mta_postfork();
- smtp_postfork();
-
- /* do not purge listeners and pki, they are purged
- * in smtp_configure()
- */
- purge_config(PURGE_TABLES|PURGE_RULES);
-
- if ((pw = getpwnam(SMTPD_USER)) == NULL)
- fatalx("unknown user " SMTPD_USER);
-
- if (chroot(PATH_CHROOT) == -1)
- fatal("pony: chroot");
- if (chdir("/") == -1)
- fatal("pony: chdir(\"/\")");
-
- config_process(PROC_PONY);
-
- if (setgroups(1, &pw->pw_gid) ||
-    setresgid(pw->pw_gid, pw->pw_gid, pw->pw_gid) ||
-    setresuid(pw->pw_uid, pw->pw_uid, pw->pw_uid))
- fatal("pony: cannot drop privileges");
-
- imsg_callback = pony_imsg;
- event_init();
-
- mda_postprivdrop();
- mta_postprivdrop();
- smtp_postprivdrop();
-
- signal(SIGINT, SIG_IGN);
- signal(SIGTERM, SIG_IGN);
- signal(SIGPIPE, SIG_IGN);
- signal(SIGHUP, SIG_IGN);
-
- config_peer(PROC_PARENT);
- config_peer(PROC_QUEUE);
- config_peer(PROC_LKA);
- config_peer(PROC_CONTROL);
- config_peer(PROC_CA);
-
- ca_engine_init();
-
- if (pledge("stdio inet unix recvfd sendfd", NULL) == -1)
- err(1, "pledge");
-
- event_dispatch();
- fatalx("exited event loop");
-
- return (0);
-}
Index: queue.c
===================================================================
RCS file: /cvs/src/usr.sbin/smtpd/queue.c,v
retrieving revision 1.190
diff -u -p -r1.190 queue.c
--- queue.c 22 Apr 2020 11:35:34 -0000 1.190
+++ queue.c 30 Dec 2020 08:25:55 -0000
@@ -152,15 +152,15 @@ queue_imsg(struct mproc *p, struct imsg
  log_warnx("warn: imsg_queue_submit_envelope: msgid=0, "
     "evpid=%016"PRIx64, evp.id);
  ret = queue_envelope_create(&evp);
- m_create(p_pony, IMSG_QUEUE_ENVELOPE_SUBMIT, 0, 0, -1);
- m_add_id(p_pony, reqid);
+ m_create(p_dispatcher, IMSG_QUEUE_ENVELOPE_SUBMIT, 0, 0, -1);
+ m_add_id(p_dispatcher, reqid);
  if (ret == 0)
- m_add_int(p_pony, 0);
+ m_add_int(p_dispatcher, 0);
  else {
- m_add_int(p_pony, 1);
- m_add_evpid(p_pony, evp.id);
+ m_add_int(p_dispatcher, 1);
+ m_add_evpid(p_dispatcher, evp.id);
  }
- m_close(p_pony);
+ m_close(p_dispatcher);
  if (ret) {
  m_create(p_scheduler,
     IMSG_QUEUE_ENVELOPE_SUBMIT, 0, 0, -1);
@@ -173,10 +173,10 @@ queue_imsg(struct mproc *p, struct imsg
  m_msg(&m, imsg);
  m_get_id(&m, &reqid);
  m_end(&m);
- m_create(p_pony, IMSG_QUEUE_ENVELOPE_COMMIT, 0, 0, -1);
- m_add_id(p_pony, reqid);
- m_add_int(p_pony, 1);
- m_close(p_pony);
+ m_create(p_dispatcher, IMSG_QUEUE_ENVELOPE_COMMIT, 0, 0, -1);
+ m_add_id(p_dispatcher, reqid);
+ m_add_int(p_dispatcher, 1);
+ m_close(p_dispatcher);
  return;
 
  case IMSG_SCHED_ENVELOPE_REMOVE:
@@ -250,9 +250,9 @@ queue_imsg(struct mproc *p, struct imsg
  return;
  }
  evp.lasttry = time(NULL);
- m_create(p_pony, IMSG_QUEUE_DELIVER, 0, 0, -1);
- m_add_envelope(p_pony, &evp);
- m_close(p_pony);
+ m_create(p_dispatcher, IMSG_QUEUE_DELIVER, 0, 0, -1);
+ m_add_envelope(p_dispatcher, &evp);
+ m_close(p_dispatcher);
  return;
 
  case IMSG_SCHED_ENVELOPE_INJECT:
@@ -275,9 +275,9 @@ queue_imsg(struct mproc *p, struct imsg
  return;
  }
  evp.lasttry = time(NULL);
- m_create(p_pony, IMSG_QUEUE_TRANSFER, 0, 0, -1);
- m_add_envelope(p_pony, &evp);
- m_close(p_pony);
+ m_create(p_dispatcher, IMSG_QUEUE_TRANSFER, 0, 0, -1);
+ m_add_envelope(p_dispatcher, &evp);
+ m_close(p_dispatcher);
  return;
 
  case IMSG_CTL_LIST_ENVELOPES:
@@ -665,7 +665,7 @@ queue(void)
  config_peer(PROC_CONTROL);
  config_peer(PROC_LKA);
  config_peer(PROC_SCHEDULER);
- config_peer(PROC_PONY);
+ config_peer(PROC_DISPATCHER);
 
  /* setup queue loading task */
  evtimer_set(&ev_qload, queue_timeout, &ev_qload);
Index: smtpd.c
===================================================================
RCS file: /cvs/src/usr.sbin/smtpd/smtpd.c,v
retrieving revision 1.335
diff -u -p -r1.335 smtpd.c
--- smtpd.c 23 Sep 2020 19:11:50 -0000 1.335
+++ smtpd.c 30 Dec 2020 08:25:55 -0000
@@ -66,7 +66,7 @@ static int smtpd(void);
 static void parent_shutdown(void);
 static void parent_send_config(int, short, void *);
 static void parent_send_config_lka(void);
-static void parent_send_config_pony(void);
+static void parent_send_config_dispatcher(void);
 static void parent_send_config_ca(void);
 static void parent_sig_handler(int, short, void *);
 static void forkmda(struct mproc *, uint64_t, struct deliver *);
@@ -140,7 +140,7 @@ struct mproc *p_lka = NULL;
 struct mproc *p_parent = NULL;
 struct mproc *p_queue = NULL;
 struct mproc *p_scheduler = NULL;
-struct mproc *p_pony = NULL;
+struct mproc *p_dispatcher = NULL;
 struct mproc *p_ca = NULL;
 
 const char *backend_queue = "fs";
@@ -289,7 +289,7 @@ parent_shutdown(void)
  pid_t pid;
 
  mproc_clear(p_ca);
- mproc_clear(p_pony);
+ mproc_clear(p_dispatcher);
  mproc_clear(p_control);
  mproc_clear(p_lka);
  mproc_clear(p_scheduler);
@@ -309,17 +309,17 @@ static void
 parent_send_config(int fd, short event, void *p)
 {
  parent_send_config_lka();
- parent_send_config_pony();
+ parent_send_config_dispatcher();
  parent_send_config_ca();
  purge_config(PURGE_PKI);
 }
 
 static void
-parent_send_config_pony(void)
+parent_send_config_dispatcher(void)
 {
- log_debug("debug: parent_send_config: configuring pony process");
- m_compose(p_pony, IMSG_CONF_START, 0, 0, -1, NULL, 0);
- m_compose(p_pony, IMSG_CONF_END, 0, 0, -1, NULL, 0);
+ log_debug("debug: parent_send_config: configuring dispatcher process");
+ m_compose(p_dispatcher, IMSG_CONF_START, 0, 0, -1, NULL, 0);
+ m_compose(p_dispatcher, IMSG_CONF_END, 0, 0, -1, NULL, 0);
 }
 
 void
@@ -437,13 +437,13 @@ parent_sig_handler(int sig, short event,
     "for session %016"PRIx64 ": %s",
     child->mda_id, cause);
 
- m_create(p_pony, IMSG_MDA_DONE, 0, 0,
+ m_create(p_dispatcher, IMSG_MDA_DONE, 0, 0,
     child->mda_out);
- m_add_id(p_pony, child->mda_id);
- m_add_int(p_pony, mda_status);
- m_add_int(p_pony, mda_sysexit);
- m_add_string(p_pony, cause);
- m_close(p_pony);
+ m_add_id(p_dispatcher, child->mda_id);
+ m_add_int(p_dispatcher, mda_status);
+ m_add_int(p_dispatcher, mda_sysexit);
+ m_add_string(p_dispatcher, cause);
+ m_close(p_dispatcher);
 
  break;
 
@@ -698,8 +698,8 @@ main(int argc, char *argv[])
  p_lka = start_child(save_argc, save_argv, "lka");
  p_lka->proc = PROC_LKA;
 
- p_pony = start_child(save_argc, save_argv, "pony");
- p_pony->proc = PROC_PONY;
+ p_dispatcher = start_child(save_argc, save_argv, "dispatcher");
+ p_dispatcher->proc = PROC_DISPATCHER;
 
  p_queue = start_child(save_argc, save_argv, "queue");
  p_queue->proc = PROC_QUEUE;
@@ -709,12 +709,12 @@ main(int argc, char *argv[])
 
  setup_peers(p_control, p_ca);
  setup_peers(p_control, p_lka);
- setup_peers(p_control, p_pony);
+ setup_peers(p_control, p_dispatcher);
  setup_peers(p_control, p_queue);
  setup_peers(p_control, p_scheduler);
- setup_peers(p_pony, p_ca);
- setup_peers(p_pony, p_lka);
- setup_peers(p_pony, p_queue);
+ setup_peers(p_dispatcher, p_ca);
+ setup_peers(p_dispatcher, p_lka);
+ setup_peers(p_dispatcher, p_queue);
  setup_peers(p_queue, p_lka);
  setup_peers(p_queue, p_scheduler);
 
@@ -730,7 +730,7 @@ main(int argc, char *argv[])
  setup_done(p_ca);
  setup_done(p_control);
  setup_done(p_lka);
- setup_done(p_pony);
+ setup_done(p_dispatcher);
  setup_done(p_queue);
  setup_done(p_scheduler);
 
@@ -767,11 +767,11 @@ main(int argc, char *argv[])
  return lka();
  }
 
- else if (!strcmp(rexec, "pony")) {
- smtpd_process = PROC_PONY;
+ else if (!strcmp(rexec, "dispatcher")) {
+ smtpd_process = PROC_DISPATCHER;
  setup_proc();
 
- return pony();
+ return dispatcher();
  }
 
  else if (!strcmp(rexec, "queue")) {
@@ -978,8 +978,8 @@ setup_peer(enum smtp_proc_type proc, pid
  case PROC_SCHEDULER:
  pp = &p_scheduler;
  break;
- case PROC_PONY:
- pp = &p_pony;
+ case PROC_DISPATCHER:
+ pp = &p_dispatcher;
  break;
  case PROC_CA:
  pp = &p_ca;
@@ -1050,7 +1050,7 @@ smtpd(void) {
  child_add(p_control->pid, CHILD_DAEMON, proc_title(PROC_CONTROL));
  child_add(p_lka->pid, CHILD_DAEMON, proc_title(PROC_LKA));
  child_add(p_scheduler->pid, CHILD_DAEMON, proc_title(PROC_SCHEDULER));
- child_add(p_pony->pid, CHILD_DAEMON, proc_title(PROC_PONY));
+ child_add(p_dispatcher->pid, CHILD_DAEMON, proc_title(PROC_DISPATCHER));
  child_add(p_ca->pid, CHILD_DAEMON, proc_title(PROC_CA));
 
  event_init();
@@ -1069,7 +1069,7 @@ smtpd(void) {
  config_peer(PROC_LKA);
  config_peer(PROC_QUEUE);
  config_peer(PROC_CA);
- config_peer(PROC_PONY);
+ config_peer(PROC_DISPATCHER);
 
  evtimer_set(&config_ev, parent_send_config, NULL);
  memset(&tv, 0, sizeof(tv));
@@ -1421,12 +1421,12 @@ forkmda(struct mproc *p, uint64_t id, st
  (void)snprintf(ebuf, sizeof ebuf,
     "delivery user '%s' does not exist",
     dsp->u.local.user);
- m_create(p_pony, IMSG_MDA_DONE, 0, 0, -1);
- m_add_id(p_pony, id);
- m_add_int(p_pony, MDA_PERMFAIL);
- m_add_int(p_pony, EX_NOUSER);
- m_add_string(p_pony, ebuf);
- m_close(p_pony);
+ m_create(p_dispatcher, IMSG_MDA_DONE, 0, 0, -1);
+ m_add_id(p_dispatcher, id);
+ m_add_int(p_dispatcher, MDA_PERMFAIL);
+ m_add_int(p_dispatcher, EX_NOUSER);
+ m_add_string(p_dispatcher, ebuf);
+ m_close(p_dispatcher);
  return;
  }
  pw_name = pw->pw_name;
@@ -1451,23 +1451,23 @@ forkmda(struct mproc *p, uint64_t id, st
  if (pw_uid == 0 && !dsp->u.local.is_mbox) {
  (void)snprintf(ebuf, sizeof ebuf, "not allowed to deliver to: %s",
     deliver->userinfo.username);
- m_create(p_pony, IMSG_MDA_DONE, 0, 0, -1);
- m_add_id(p_pony, id);
- m_add_int(p_pony, MDA_PERMFAIL);
- m_add_int(p_pony, EX_NOPERM);
- m_add_string(p_pony, ebuf);
- m_close(p_pony);
+ m_create(p_dispatcher, IMSG_MDA_DONE, 0, 0, -1);
+ m_add_id(p_dispatcher, id);
+ m_add_int(p_dispatcher, MDA_PERMFAIL);
+ m_add_int(p_dispatcher, EX_NOPERM);
+ m_add_string(p_dispatcher, ebuf);
+ m_close(p_dispatcher);
  return;
  }
 
  if (pipe(pipefd) == -1) {
  (void)snprintf(ebuf, sizeof ebuf, "pipe: %s", strerror(errno));
- m_create(p_pony, IMSG_MDA_DONE, 0, 0, -1);
- m_add_id(p_pony, id);
- m_add_int(p_pony, MDA_TEMPFAIL);
- m_add_int(p_pony, EX_OSERR);
- m_add_string(p_pony, ebuf);
- m_close(p_pony);
+ m_create(p_dispatcher, IMSG_MDA_DONE, 0, 0, -1);
+ m_add_id(p_dispatcher, id);
+ m_add_int(p_dispatcher, MDA_TEMPFAIL);
+ m_add_int(p_dispatcher, EX_OSERR);
+ m_add_string(p_dispatcher, ebuf);
+ m_close(p_dispatcher);
  return;
  }
 
@@ -1476,12 +1476,12 @@ forkmda(struct mproc *p, uint64_t id, st
  allout = mkstemp(sfn);
  if (allout == -1) {
  (void)snprintf(ebuf, sizeof ebuf, "mkstemp: %s", strerror(errno));
- m_create(p_pony, IMSG_MDA_DONE, 0, 0, -1);
- m_add_id(p_pony, id);
- m_add_int(p_pony, MDA_TEMPFAIL);
- m_add_int(p_pony, EX_OSERR);
- m_add_string(p_pony, ebuf);
- m_close(p_pony);
+ m_create(p_dispatcher, IMSG_MDA_DONE, 0, 0, -1);
+ m_add_id(p_dispatcher, id);
+ m_add_int(p_dispatcher, MDA_TEMPFAIL);
+ m_add_int(p_dispatcher, EX_OSERR);
+ m_add_string(p_dispatcher, ebuf);
+ m_close(p_dispatcher);
  close(pipefd[0]);
  close(pipefd[1]);
  return;
@@ -1491,12 +1491,12 @@ forkmda(struct mproc *p, uint64_t id, st
  pid = fork();
  if (pid == -1) {
  (void)snprintf(ebuf, sizeof ebuf, "fork: %s", strerror(errno));
- m_create(p_pony, IMSG_MDA_DONE, 0, 0, -1);
- m_add_id(p_pony, id);
- m_add_int(p_pony, MDA_TEMPFAIL);
- m_add_int(p_pony, EX_OSERR);
- m_add_string(p_pony, ebuf);
- m_close(p_pony);
+ m_create(p_dispatcher, IMSG_MDA_DONE, 0, 0, -1);
+ m_add_id(p_dispatcher, id);
+ m_add_int(p_dispatcher, MDA_TEMPFAIL);
+ m_add_int(p_dispatcher, EX_OSERR);
+ m_add_string(p_dispatcher, ebuf);
+ m_close(p_dispatcher);
  close(pipefd[0]);
  close(pipefd[1]);
  close(allout);
@@ -1912,10 +1912,10 @@ proc_title(enum smtp_proc_type proc)
  return "control";
  case PROC_SCHEDULER:
  return "scheduler";
- case PROC_PONY:
- return "pony express";
+ case PROC_DISPATCHER:
+ return "dispatcher";
  case PROC_CA:
- return "klondike";
+ return "crypto";
  case PROC_CLIENT:
  return "client";
  case PROC_PROCESSOR:
@@ -1938,8 +1938,8 @@ proc_name(enum smtp_proc_type proc)
  return "control";
  case PROC_SCHEDULER:
  return "scheduler";
- case PROC_PONY:
- return "pony";
+ case PROC_DISPATCHER:
+ return "dispatcher";
  case PROC_CA:
  return "ca";
  case PROC_CLIENT:
Index: smtpd.h
===================================================================
RCS file: /cvs/src/usr.sbin/smtpd/smtpd.h,v
retrieving revision 1.659
diff -u -p -r1.659 smtpd.h
--- smtpd.h 23 Sep 2020 19:11:50 -0000 1.659
+++ smtpd.h 30 Dec 2020 08:25:55 -0000
@@ -345,7 +345,7 @@ enum smtp_proc_type {
  PROC_QUEUE,
  PROC_CONTROL,
  PROC_SCHEDULER,
- PROC_PONY,
+ PROC_DISPATCHER,
  PROC_CA,
  PROC_PROCESSOR,
  PROC_CLIENT,
@@ -1007,7 +1007,7 @@ extern struct mproc *p_parent;
 extern struct mproc *p_lka;
 extern struct mproc *p_queue;
 extern struct mproc *p_scheduler;
-extern struct mproc *p_pony;
+extern struct mproc *p_dispatcher;
 extern struct mproc *p_ca;
 
 extern struct smtpd *env;
@@ -1579,9 +1579,9 @@ struct scheduler_backend *scheduler_back
 void scheduler_info(struct scheduler_info *, struct envelope *);
 
 
-/* pony.c */
-int pony(void);
-void pony_imsg(struct mproc *, struct imsg *);
+/* dispatcher.c */
+int dispatcher(void);
+void dispatcher_imsg(struct mproc *, struct imsg *);
 
 
 /* resolver.c */
Index: smtpd/Makefile
===================================================================
RCS file: /cvs/src/usr.sbin/smtpd/smtpd/Makefile,v
retrieving revision 1.109
diff -u -p -r1.109 Makefile
--- smtpd/Makefile 23 Sep 2020 19:11:50 -0000 1.109
+++ smtpd/Makefile 30 Dec 2020 08:25:55 -0000
@@ -35,7 +35,7 @@ SRCS+= mproc.c
 SRCS+= mta.c
 SRCS+= mta_session.c
 SRCS+= parse.y
-SRCS+= pony.c
+SRCS+= dispatcher.c
 SRCS+= proxy.c
 SRCS+= queue.c
 SRCS+= queue_backend.c


Reply | Threaded
Open this post in threaded view
|

Re: [diff] src/usr.sbin/smtpd: change process names

Todd C. Miller-3
On Wed, 30 Dec 2020 09:27:34 +0100, Martijn van Duren wrote:

> On Tue, 2020-12-29 at 08:57 +0100, Giovanni Bechis wrote:
> > On 12/20/20 12:21 AM, [hidden email] wrote:
> > > December 19, 2020 11:26 PM, "Martijn van Duren" <[hidden email]
> alat.at> wrote:
> > >
> > > > Personally I'd rather wait to keep the names in sync, especially since
> > > > it's an easy 2 line diff that can easily be incorperated in the bigger
> > > > thing. But it's not something I'm going to loose sleep over if others
> > > > thing it can go in right now.
> > > >
> > >
> > > Fair enough :-)
> > >
> > > Below is the diff that changes all references to pony into dispatcher.
> > >
> > > I didn't rename pony.c to dispatcher.c as this would break the diff, but
> if this gets
> > > committed I'll submit a diff for the rename + Makefile bit
> > >
> > I like it and it reads OK for me.
> >  Giovanni
> >
> Here's the final diff that moves pony.c to dispatcher.c and (including
> in smtpd.h).

OK millert@

 - todd

Reply | Threaded
Open this post in threaded view
|

Re: [diff] src/usr.sbin/smtpd: change process names

Giovanni Bechis-7
In reply to this post by Martijn van Duren-5
On 12/30/20 9:27 AM, Martijn van Duren wrote:

> On Tue, 2020-12-29 at 08:57 +0100, Giovanni Bechis wrote:
>> On 12/20/20 12:21 AM, [hidden email] wrote:
>>> December 19, 2020 11:26 PM, "Martijn van Duren" <[hidden email]> wrote:
>>>
>>>> Personally I'd rather wait to keep the names in sync, especially since
>>>> it's an easy 2 line diff that can easily be incorperated in the bigger
>>>> thing. But it's not something I'm going to loose sleep over if others
>>>> thing it can go in right now.
>>>>
>>>
>>> Fair enough :-)
>>>
>>> Below is the diff that changes all references to pony into dispatcher.
>>>
>>> I didn't rename pony.c to dispatcher.c as this would break the diff, but if this gets
>>> committed I'll submit a diff for the rename + Makefile bit
>>>
>> I like it and it reads OK for me.
>>  Giovanni
>>
> Here's the final diff that moves pony.c to dispatcher.c and (including
> in smtpd.h).
>
> OK?
>

ok giovanni@

 Cheers
  Giovanni