]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
ctdb-scripts: Strip square brackets when gathering connection info
authorMartin Schwenke <martin@meltin.net>
Fri, 13 Dec 2019 00:09:04 +0000 (11:09 +1100)
committerKarolin Seeger <kseeger@samba.org>
Tue, 14 Jan 2020 08:30:25 +0000 (08:30 +0000)
ss added square brackets around IPv6 addresses in versions > 4.12.0
via commit aba9c23a6e1cb134840c998df14888dca469a485.  CentOS 7 added
this feature somewhere mid-release.  So, backward compatibility is
obviously needed.

As per the comment protocol/protocol_util.c should probably print and
parse such square brackets.  However, for backward compatibility the
brackets would have to be stripped in both places in
update_tickles()...  or added to the ss output when missing.  Best to
leave this until we have a connection tracking daemon.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=14227

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
(cherry picked from commit 693080abe4d8bec96280af5a6aa668251a98ec5d)

ctdb/config/functions

index 1dc165328902ac583000d2c6b1b2aea4def8c958..2e9c3ef6bf0cea337c6eb9162b96dfe5ec5c2a79 100755 (executable)
@@ -977,10 +977,16 @@ update_tickles ()
        _my_connections="${tickledir}/${_port}.connections.$$"
        # Parentheses are needed around the filters for precedence but
        # the parentheses can't be empty!
+       #
+       # Recent versions of ss print square brackets around IPv6
+       # addresses.  While it is desirable to update CTDB's address
+       # parsing and printing code, something needs to be done here
+       # for backward compatibility, so just delete the brackets.
        ss -tn state established \
           "${_ip_filter:+( ${_ip_filter} )}" \
           "${_port_filter:+( ${_port_filter} )}" |
        awk 'NR > 1 {print $4, $3}' |
+       tr -d '][' |
        sort >"$_my_connections"
 
        # Record our current tickles in a temporary file