The branch, master has been updated via 0159c48e897 ctdb-scripts: Do not de-duplicate the interfaces list from 7a5e7b82125 python: Fix NtVer check for site_dn_for_machine()
https://git.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 0159c48e897a7c07c399767f5ffddbb11d80ab5d Author: Martin Schwenke <mschwe...@ddn.com> Date: Thu Apr 18 14:13:11 2024 +1000 ctdb-scripts: Do not de-duplicate the interfaces list Using xargs with sort -u to de-duplicate this list was my idea and causes a couple of things to go wrong. The use of xargs causes double-quotes to be lost. The resulting $public_ifaces value also contains newlines. The newlines could be removed with an additional xargs at the end of the pipeline... but that would add an extra level of quote stripping. I have unsuccessfully tried to find an alternative, but still elegant, command pipeline that de-duplicates the list, while maintaining quoting. So, just drop the de-duplication. This might make interface_ifindex_exists_with_options() slightly less efficient. However, that function walks the whole list, only terminating early when a match is found on both interface and options, so at least it will be correct. Include an extra testcase. Signed-off-by: Martin Schwenke <mschwe...@ddn.com> Reviewed-by: Andrew Bartlett <abart...@samba.org> Autobuild-User(master): Martin Schwenke <mart...@samba.org> Autobuild-Date(master): Thu Apr 18 09:08:34 UTC 2024 on atb-devel-224 ----------------------------------------------------------------------- Summary of changes: ctdb/config/events/legacy/50.samba.script | 1 - .../UNIT/eventscripts/50.samba.startup.012.sh | 25 ++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100755 ctdb/tests/UNIT/eventscripts/50.samba.startup.012.sh Changeset truncated at 500 lines: diff --git a/ctdb/config/events/legacy/50.samba.script b/ctdb/config/events/legacy/50.samba.script index 90de6a3f31b..c9d34cd2245 100755 --- a/ctdb/config/events/legacy/50.samba.script +++ b/ctdb/config/events/legacy/50.samba.script @@ -40,7 +40,6 @@ generate_smb_interfaces_config() if [ -n "$CTDB_SAMBA_INTERFACES_EXTRA" ]; then public_ifaces="$public_ifaces $CTDB_SAMBA_INTERFACES_EXTRA" fi - public_ifaces=$(echo "$public_ifaces" | xargs -n 1 | sort -u) cat <<EOT > "$CTDB_SAMBA_INTERFACES_FILE" bind interfaces only = yes diff --git a/ctdb/tests/UNIT/eventscripts/50.samba.startup.012.sh b/ctdb/tests/UNIT/eventscripts/50.samba.startup.012.sh new file mode 100755 index 00000000000..fb7627c5898 --- /dev/null +++ b/ctdb/tests/UNIT/eventscripts/50.samba.startup.012.sh @@ -0,0 +1,25 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "startup, with interfaces list generation" + +setup + +interfaces_file="${CTDB_TEST_TMP_DIR}/interfaces.conf" + +setup_script_options <<EOF +CTDB_SAMBA_INTERFACES_FILE=${interfaces_file} +CTDB_SAMBA_INTERFACES_EXTRA='"devX123;options=nodynamic" "devX456;options=dynamic"' +EOF + +ok <<EOF +Starting smb: OK +EOF +simple_test + +ok <<EOF + bind interfaces only = yes + interfaces = lo "dev123;options=dynamic" "dev456;options=dynamic" "devX123;options=nodynamic" "devX456;options=dynamic" +EOF +simple_test_command cat "$interfaces_file" -- Samba Shared Repository