]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
ctdb-scripts: update_tickles() should use the public IPs cache
authorMartin Schwenke <mschwenke@ddn.com>
Thu, 19 Sep 2024 04:32:46 +0000 (14:32 +1000)
committerMartin Schwenke <martins@samba.org>
Wed, 6 Nov 2024 23:03:42 +0000 (23:03 +0000)
This avoids duplicating logic.

Signed-off-by: Martin Schwenke <mschwenke@ddn.com>
Reviewed-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jerry Heyman <jheyman@ddn.com>
ctdb/config/functions

index bff96303020cb3db79d197c845b11b4848b39e6e..fb5a1d909351e50cccca476043786346c3968b44 100755 (executable)
@@ -1186,19 +1186,16 @@ update_tickles()
        tickledir="${CTDB_SCRIPT_VARDIR}/tickles"
        mkdir -p "$tickledir"
 
-       # What public IPs do I hold?
-       _pnn=$(ctdb_get_pnn)
-       _ips=$($CTDB -X ip | awk -F'|' -v pnn="$_pnn" '$3 == pnn {print $2}')
        # If not hosting any public IPs then can't have any connections...
-       if [ -z "$_ips" ]; then
+       if [ ! -s "$CTDB_MY_PUBLIC_IPS_CACHE" ]; then
                return
        fi
 
        # IPs and port as ss filters
        _ip_filter=""
-       for _ip in $_ips; do
+       while read -r _ip; do
                _ip_filter="${_ip_filter}${_ip_filter:+ || }src [${_ip}]"
-       done
+       done <"$CTDB_MY_PUBLIC_IPS_CACHE"
        _port_filter="sport == :${_port}"
 
        # Record connections to our public IPs in a temporary file.
@@ -1222,10 +1219,10 @@ update_tickles()
 
        # Record our current tickles in a temporary file
        _my_tickles="${tickledir}/${_port}.tickles.$$"
-       for _i in $_ips; do
+       while read -r _i; do
                $CTDB -X gettickles "$_i" "$_port" |
                        awk -F'|' 'NR > 1 { printf "%s:%s %s:%s\n", $2, $3, $4, $5 }'
-       done |
+       done <"$CTDB_MY_PUBLIC_IPS_CACHE" |
                sort >"$_my_tickles"
 
        # Add tickles for connections that we haven't already got tickles for