• Omar Polo [2023-12-14 23:33]:
> On 2023/12/14 21:36:44 +0100, Kirill Miazine <k...@krot.org> wrote:
> > [...]
> > cvs checkout took looong time, so I took src.tar.gz from 7.4, applied 
> > patch there.
> > 
> > diff worked for static maps, at least. tested on this config:
> 
> thanks for testing the diff
> 
> > [...]
> > 
> > but didn't work with "table helo-names file:/etc/mail/helo-names", 
> > however, which contained:
> > 
> > 127.0.0.1 localhost1
> > ::1 localhost2
> > [::1] localhost3
> > ipv6:::1 localhost4
> 
> Unfortunately this is expected,

You mentioned that you didn't think makemap as-is supports ipv6
addresses, but that diff should at least fix the usage in other tables,
so I gave plain file-based tables a try, too.

> see table_static.c around line 172. File tables are split on ":" too
> so "::1 localhost2" becomes "" -> ":1 localhost2"
> 
> It's not clearly documented, but table(5) says
> 
> : A file table can be converted to a Berkeley database using the makemap(8)
> : utility with no syntax change.
>         
> and makemap(8) then specifies
> 
> : The database key and value may optionally be separated by the colon
> : character.
>     
> It sucks, it should be documented in table(5) too at least.  (and even
> then, I'm failing to see the value of splitting on : too given that it
> breaks ipv6 addresses.)

Yup, I noticed that too, and mentioned in my original email.

Until being bitten by the bug, I was sure that keys and values in
a file based table are separated by spaces:

     A mapping will be written with each key and value on a line,
     whitespaces separating both columns.

Actually, here table(5) also contradicts with aliases(5):

     In a primary domain context, the key is the user part of the
     recipient address, whilst the value is one or many recipients as described 
in
     aliases(5):

           user1   otheruser
           user2   otheruser1,otheruser2
           user3   otheru...@example.com

No colons... But in aliases(5)

     Within the file, ‘#’ is a comment delimiter; anything placed after it is
     discarded.  The file consists of key/value mappings of the form:

           key: value1, value2, value3, ...

Default /etc/aliases has colons, so colon can't be removed for aliases
easily...

> After a closer look I noticed that there might be something wrong with
> my diff, tracing table_static_priv_add() i noticed a weird 'pattern':
> 
> : adding [fe80::fce1:baff:fed3:6e35%tap0] -> (null)
> : adding [[fe80::fce1:baff:fed3:6e35%tap0]] -> (null)
> : adding [ipv6:[fe80::fce1:baff:fed3:6e35%tap0]] -> (null)
> 
> that I'm not sure was present also before, so I'll have to take a closer
> look.
> 

-- 
    -- Kirill Miazine <k...@krot.org>

Reply via email to