On Tue, Sep 5, 2017 at 3:52 AM, David Bremner <da...@tethera.net> wrote:

> Felix Lechner <felix.lech...@lease-up.com> writes:
>
> > David,
> >
> > I found the bug affecting the tests. (It was an issue only when TLS was
> > enabled, and there were some race conditions.) I packaged version 2.0
> > and uploaded
> > it to Mentors <https://mentors.debian.net/package/nullmailer>.
> >
> > You are still welcome to adopt the package. Or, you can sponsor me---I
> > really don't care. Just trying to help.
>
> OK, I'm (slowly) looking at your patches. My current plan is to
> integrate (most of) your changes and add you as an Uploader to the
> package in collab-maint. That's mostly symbolic but it might help get a
> sponsor in the future if I'm not available.
>
>
That's a great solution. Thank you!


> > Some of the open items in my version are:
> >
> > 1. Syslog code (and therefore '--daemon') not adopted from prior version.
> > It probably would be a good idea, but is complicated, and the package
> works
> > without it.
>
> I think this is probably gone for good. We do have to take a bit more
> care: I think /etc/init.d/nullmailer probably needs to be dropped from
> the package, since it relies on -s. A NEWS item for those people relying
> on non-systemd inits seems also needed.
>
>
Thank you for catching that. It's probably the right thing to do.


> >
> > 2. I slightly modified the interplay between '/etc/mailname', 'me' and
> > 'defaulthost' to allow the tests to complete. Not sure if that broke the
> > '/etc/mailname' behavior. I don't use that feature.
> >
>
> Was there more than just grouping patches here?
>

Yes, I honored 'me' when '/etc/mailname' does not exist; the previous
maintainer ignored 'me'. (Now the tests complete and testing for a
Debian-compliant '/etc/mailname' may not be necessary.) Also, the patched
man pages substitute '/etc/mailname' for 'me', so the fallback behavior is
undocumented.

-  if (!config_read("me", me)) {
+  if (!config_read("../mailname", me) && !config_read("me", me)) {

vs.

-  if (!config_read("me", me)) {
+  if (!config_read("../mailname", me)) {

In addition, I did not follow the previous maintainer when he no longer
required at least one dot in the domain part of an email address. He
commented out a call in src/queue.cc to upstream's function find_first(),
which is replicated here for your convenience. The check takes place after
a possible remapping of 'localhost' and seemed reasonable, so I kept it.

int mystring::find_first(char ch, size_t offset[default 0]) const
{
  if(offset >= rep->length)
    return -1;
  char* ptr = strchr(rep->buf+offset, ch);
  return ptr ? ptr-rep->buf : -1;
}

bool validate_addr(mystring& addr, bool doremap)
{
  int i = addr.find_last('@');
  if(i < 0)
    return false;
  mystring hostname = addr.right(i+1);
  if(doremap && remapadmin) {
    if(hostname == me || hostname == "localhost")
      addr = adminaddr;
  }
  // else if(hostname.find_first('.') < 0) [NOT ADOPTED]
    // return false; [NOT ADOPTED]
  return true;
}

Best regards,
Felix

Reply via email to