Greg Troxel wrote in
 <rmijzuhkoa4....@s1.lexort.com>:
 |Hauke Fath <ha...@espresso.rhein-neckar.de> writes:
 |> attached is a diff with services that for some reason or other got 
 |> dropped from /etc/services - in particular Amanda* and AppleTalk.
 |
 |The really big question here is the relationship between our
 |/etc/services and
 |
 |  https://www.iana.org/assignments/service-names-port-numbers/service-name\
 |  s-port-numbers.txt
 |
 |The format you don't like seems to be sort of similar to the one from
 |IANA.  But we are quite out of sync from that, so I wonder about the
 |other BSDs.
 ...
 |So I would talk to them and see what they did and why; it seems like
 |there must be a script from an iana file, and then there's supposed to
 |be the "local additions" section.  Probably the real bug is losing that
 |and it can be put back.  But editing without understanding that flow
 |seems unwise.

Anything amanda like but amanda itself is missing from IANA, at
least it is not here either, and we also have a script.  (I once
posted it, as below.)

 |Files generated like this usually have a Big Scary Warning, and this
 |doesn't; probably someone(tm) should fix that.
 |
 |On the substance:
 |
 |The use of mail for port 465 was apparently assigned briefly and then
 |not (we have STARTTLS now), and how is assigned to urd.  I never thought
 |it was for submission.  It is not in the current IANA file.  So it's a
 |good question why it remains at all.  I am therefore not ok with adding \
 |smtps.

submissions is a standard, RFC 8314:

  3.3.  Implicit TLS for SMTP Submission

     When a TCP connection is established for the "submissions" service
     (default port 465), a TLS handshake begins immediately.  Clients MUST
     implement the certificate validation mechanism described in
     [RFC7817].  Once the TLS session is established, Message Submission
     protocol data [RFC6409] is exchanged as TLS application data for the
     remainder of the TCP connection.  (Note: The "submissions" service
     name is defined in Section 7.3 of this document and follows the usual
     convention that the name of a service layered on top of Implicit TLS
     consists of the name of the service as used without TLS, with an "s"
     appended.)

  ...

#!/bin/sh -
#@ Update protocols and services from IANA.
#@ Taken from ArchLinux script written by Gaetan Bisson.  Adjusted for CRUX.

awk=awk
curl=curl
url_pn='https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xml'
url_snpn="https://www.iana.org/assignments/service-names-port-numbers/\
service-names-port-numbers.xml"

download() {
        datetime=`date +'%FT%T%z'`
        echo 'Downloading protocols'
        ${curl} -o protocols.xml ${url_pn}
        [ ${?} -eq 0 ] || exit 20
        echo 'Downloading services'
        ${curl} -o services.xml ${url_snpn}
        [ ${?} -eq 0 ] || exit 21
}

process() {
        echo 'Processing protocols'
        ${awk} -F "[<>]" -v URL="${url_pn}" -v DT="${datetime}" '
                BEGIN{
                        print "# /etc/protocols, created " DT
                        print "# Source: " URL
                }
                /<record/ {v = n = ""}
                /<value/ {v = $3}
                /<name/ && $3!~/ / {n = $3}
                /<\/record/ && n && v != ""{
                        printf "%-12s %3i %s\n", tolower(n), v, n
                }
        ' < protocols.xml > protocols.new
        [ ${?} -eq 0 ] || exit 30

        echo 'Processing services'
        ${awk} -F "[<>]" -v URL="${url_snpn}" -v DT="${datetime}" '
                BEGIN{
                        print "# /etc/services, created " DT
                        print "# Source: " URL
                }
                /<record/ {n = u = p = c = ""}
                /<name/ && !/\(/ {n = $3}
                /<number/ {u = $3}
                /<protocol/ {p = $3}
                /Unassigned/ || /Reserved/ || /historic/ {c = 1}
                /<\/record/ && n && u && p && !c{
                        printf "%-15s %5i/%s\n", n, u, p
                }
        ' < services.xml > services.new
        [ ${?} -eq 0 ] || exit 31
}

update() {
        mv protocols.new protocols
        [ ${?} -eq 0 ] || exit 40
        mv services.new services
        [ ${?} -eq 0 ] || exit 41
        rm -f protocols.xml services.xml
        [ ${?} -eq 0 ] || exit 42
}

download
process
update

--steffen
|
|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)

Reply via email to