[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#56046] [PATCH] services: mail: add opensmtpd records to enhance ope
From: |
jbranso |
Subject: |
[bug#56046] [PATCH] services: mail: add opensmtpd records to enhance opensmtpd-configuration. Version 2 |
Date: |
Thu, 07 Jul 2022 17:27:06 +0000 |
July 7, 2022 2:48 AM, "Liliana Marie Prikler" <liliana.prikler@gmail.com> wrote:
> Am Mittwoch, dem 06.07.2022 um 21:51 +0000 schrieb jbranso@dismail.de:
>
>> I do not believe that guile has a file-exists? thunk.
>> I could use (access? file F_OK) every time, but I think
>> file-exists? is easier to use. My two cents.
>
> scheme@(guile-user)> file-exists?
> $1 = #<procedure 7fa4d7da6828 at ice-9/boot-9.scm:1971:6 (str)>
ok. Good to know!
>
>> What is a "listen-on"?
>>
>> "listen-on" refers to the "listen on" in smtpd.conf:
>> https://man.openbsd.org/smtpd.conf
>>
>> lan_addr = "192.168.0.1"
>> listen on $lan_addr
>> listen on $lan_addr tls auth
>
> Okay, but what would you call that? An address maybe?
>
>>> +(define-record-type* <opensmtpd-listen-on-socket-configuration-
>>> configuration>
>>
>> Again, could this just be <opensmtpd-socket-configuration>?
>>
>> I would prefer to have two data types for "listen on" and
>> "listen on socket". "listen on socket" only supports 3 options,
>> where "listen on" supports 19.
>
> I am not questioning whether it makes sense to add a configuration
> record – it probably does – but whether you're using the best name for
> that record. We are not Java programmers here, a little abstraction
> goes a long way.
>
>> From the documentation:
>>
>> listen on interface [family] [options]
>> Listen on the interface for incoming connections, using the same
>> syntax as ifconfig(8). The interface parameter may also be an
>> interface group, an IP address, or a domain name. Listening can
>> optionally be restricted to a specific address family, which can be
>> either inet4 or inet6.
>>
>> listen on socket [options]
>> Listen for incoming SMTP connections on the Unix domain socket
>> /var/run/smtpd.sock. This is done by default, even if the directive
>> is absent.
>
> So you can either have an opensmtp-interface (with family and a bunch
> of options) or an opensmtp-socket (with a bunch of options). Sounds
> like a much nicer ontology, doesn't it?
That does make much more sense! I'll do that.
>
>>> [...]
>>
>> Too much to check, too little time. Maybe return later.
>>
To summarize the updated tasks that you have given me are:
1) Write a proper changelog.
2) define "string-in-list?" with member?
Are there other procedures that could use this?
3) DONE replace [] with ()
4) Shorten the sanitize procedure for opensmtpd-option-configuration
5) Review your class names.
I also don't think it makes too much sense to add -configuration for
anything but the top-level configuration record, it just requires you
to type much more configuration than you probably want.
Also does guix have a style guide for writing services? Do we usually
only put "-configuration" for the top level configuration? Is
that the current style recommendations?
eg: rename opensmtpd-listen-on-configuration and
opensmtpd-listen-on-socket-configuration to opensmtpd-interface
and opensmtpd-socket.