]> 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)
committerAmitay Isaacs <amitay@samba.org>
Thu, 2 Jan 2020 22:36:34 +0000 (22:36 +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>
ctdb/config/functions

index 994a30162fe5fa36e3937de793025109288c8ffe..2395d8d4dc85fb64e0b14faf2259e34cc7997db5 100755 (executable)
@@ -975,10 +975,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