From mboxrd@z Thu Jan 1 00:00:00 1970 From: Adolf Belka <adolf.belka@ipfire.org> To: development@lists.ipfire.org Subject: [PATCH 1/4] samba: Integrate wsdd initscript into samba initscript - bug#13445 Date: Mon, 18 Mar 2024 19:43:11 +0100 Message-ID: <20240318184314.3683-1-adolf.belka@ipfire.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============3364037909149077407==" List-Id: <development.lists.ipfire.org> --===============3364037909149077407== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable - This integrates the wsdd initscript functions into the samba initscript. Wh= en samba is started or stopped or the status requested then wsdd is part of that proce= ss. - Tested in my vm testbed and confirmed to work for start, stop and status. C= onfirmed pid's shown with status command are in the appropriate pid files. Fixes: bug#13445 Tested-by: Adolf Belka <adolf.belka(a)ipfire.org> Signed-off-by: Adolf Belka <adolf.belka(a)ipfire.org> --- src/initscripts/packages/samba | 40 +++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/src/initscripts/packages/samba b/src/initscripts/packages/samba index 93f14cd29..3945f4384 100644 --- a/src/initscripts/packages/samba +++ b/src/initscripts/packages/samba @@ -2,7 +2,7 @@ ############################################################################= ### # = # # IPFire.org - A linux based firewall = # -# Copyright (C) 2007-2022 IPFire Team <info(a)ipfire.org> = # +# Copyright (C) 2007-2024 IPFire Team <info(a)ipfire.org> = # # = # # This program is free software: you can redistribute it and/or modify = # # it under the terms of the GNU General Public License as published by = # @@ -30,6 +30,8 @@ function fix_permissions() { mkdir -p /var/run/samba/{nmbd,ncalrpc,winbindd} } =20 +eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings) + case "$1" in start) fix_permissions @@ -42,6 +44,35 @@ case "$1" in =20 boot_mesg "Starting winbind..." loadproc /usr/sbin/winbindd + =09 + # Arguments for wsdd command + ARGS=3D( + # Launch as non-privileged user + "--user" "wsdd:wsdd" + + # Launch in chroot + "--chroot" "/var/run/wsdd" + + # Only use IPv4 + "--ipv4only" + + # Configure the workgroup + "--workgroup" "$(testparm -s --parameter-name workgroup 2>/dev/null)" + ) + + # Conditionally add the GREEN/BLUE interface + for intf in GREEN_DEV BLUE_DEV; do + if [ -n "${!intf}" ]; then + ARGS+=3D( "--interface" "${!intf}" ) + fi + done + + # Create chroot directory for wsdd + mkdir -p /var/run/wsdd + + PIDFILE=3D"/var/run/wsdd.pid" + boot_mesg "Starting Web Service Discovery Host Daemon..." + loadproc -b -p "${PIDFILE}" /usr/bin/wsdd "${ARGS[@]}" ;; =20 stop) @@ -53,6 +84,10 @@ case "$1" in =20 boot_mesg "Stopping winbind..." killproc /usr/sbin/winbindd + + PIDFILE=3D"/var/run/wsdd.pid" + boot_mesg "Stopping Web Service Discovery Host Daemon..." + killproc -p "${PIDFILE}" /usr/bin/wsdd ;; =20 reload) @@ -76,6 +111,9 @@ case "$1" in statusproc /usr/sbin/nmbd statusproc /usr/sbin/smbd statusproc /usr/sbin/winbindd + + PIDFILE=3D"/var/run/wsdd.pid" + statusproc /usr/bin/wsdd ;; =20 *) --=20 2.44.0 --===============3364037909149077407==--