]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - src/initscripts/packages/samba
suricata: Change midstream policy to "pass-flow"
[people/pmueller/ipfire-2.x.git] / src / initscripts / packages / samba
index 2aab399771563a5dfc3ca9cd5de74d0e6d2e1258..3945f4384fd4dcd59961c3dcefa99ba316687e8a 100644 (file)
@@ -1,8 +1,23 @@
 #!/bin/sh
 #!/bin/sh
-# Begin $rc_base/init.d/samba
-
-# Based on sysklogd script from LFS-3.1 and earlier.
-# Rewritten by Gerard Beekmans  - gerard@linuxfromscratch.org
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2024  IPFire Team  <info@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        #
+# the Free Software Foundation, either version 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
 
 . /etc/sysconfig/rc
 . $rc_functions
 
 . /etc/sysconfig/rc
 . $rc_functions
@@ -15,6 +30,8 @@ function fix_permissions() {
        mkdir -p /var/run/samba/{nmbd,ncalrpc,winbindd}
 }
 
        mkdir -p /var/run/samba/{nmbd,ncalrpc,winbindd}
 }
 
+eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings)
+
 case "$1" in
        start)
                fix_permissions
 case "$1" in
        start)
                fix_permissions
@@ -27,17 +44,50 @@ case "$1" in
 
                boot_mesg "Starting winbind..."
                loadproc /usr/sbin/winbindd
 
                boot_mesg "Starting winbind..."
                loadproc /usr/sbin/winbindd
+               
+               # Arguments for wsdd command
+               ARGS=(
+                       # 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+=( "--interface" "${!intf}" )
+                       fi
+               done
+
+               # Create chroot directory for wsdd
+               mkdir -p /var/run/wsdd
+
+               PIDFILE="/var/run/wsdd.pid"
+               boot_mesg "Starting Web Service Discovery Host Daemon..."
+               loadproc -b -p "${PIDFILE}" /usr/bin/wsdd "${ARGS[@]}"
                ;;
 
        stop)
                boot_mesg "Stopping smbd..."
                ;;
 
        stop)
                boot_mesg "Stopping smbd..."
-               killproc -p /var/run/smbd.pid /usr/sbin/smbd
+               killproc /usr/sbin/smbd
 
                boot_mesg "Stopping nmbd..."
 
                boot_mesg "Stopping nmbd..."
-               killproc -p /var/run/nmbd.pid /usr/sbin/nmbd
+               killproc /usr/sbin/nmbd
 
                boot_mesg "Stopping winbind..."
 
                boot_mesg "Stopping winbind..."
-               killproc -p /var/run/winbindd.pid /usr/sbin/winbindd
+               killproc /usr/sbin/winbindd
+
+               PIDFILE="/var/run/wsdd.pid"
+               boot_mesg "Stopping Web Service Discovery Host Daemon..."
+               killproc -p "${PIDFILE}" /usr/bin/wsdd
                 ;;
 
        reload)
                 ;;
 
        reload)
@@ -61,6 +111,9 @@ case "$1" in
                statusproc /usr/sbin/nmbd
                statusproc /usr/sbin/smbd
                statusproc /usr/sbin/winbindd
                statusproc /usr/sbin/nmbd
                statusproc /usr/sbin/smbd
                statusproc /usr/sbin/winbindd
+
+               PIDFILE="/var/run/wsdd.pid"
+               statusproc /usr/bin/wsdd
                ;;
 
        *)
                ;;
 
        *)
@@ -68,5 +121,3 @@ case "$1" in
                exit 1
                ;;
 esac
                exit 1
                ;;
 esac
-
-# End $rc_base/init.d/samba