[source] samba: add file/interface reload triggers & filter interfaces

LEDE Commits lede-commits at lists.infradead.org
Mon Aug 15 06:54:13 PDT 2016


blogic pushed a commit to source.git, branch master:
https://git.lede-project.org/?p=source.git;a=commitdiff;h=63f6fc5c16996cc47369bb0d6ef28ccd39845e7b

commit 63f6fc5c16996cc47369bb0d6ef28ccd39845e7b
Author: Conn O'Griofa <connogriofa at gmail.com>
AuthorDate: Thu Aug 4 01:31:50 2016 +0100

    samba: add file/interface reload triggers & filter interfaces
    
    * Only parse interfaces that are up during init_config (as the
      script depends on this to determine the proper IP/subnet range)
    * Add reload interface triggers for samba-designated interfaces
    * Force full service restart upon config change to ensure Samba
      binds to new interfaces (sending HUP signal doesn't work)
    * Rename "interface" variable to "samba_iface" and move into
      global scope
    
    Needed to fix Samba connectivity for clients connecting from a
    different LAN subnet (e.g. pseudobridge configurations) due to the
    'bind interfaces only' setting.
    
    Signed-off-by: Conn O'Griofa <connogriofa at gmail.com>
---
 package/network/services/samba36/files/samba.init | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/package/network/services/samba36/files/samba.init b/package/network/services/samba36/files/samba.init
index bc1dbf8..c841324 100755
--- a/package/network/services/samba36/files/samba.init
+++ b/package/network/services/samba36/files/samba.init
@@ -5,16 +5,16 @@ START=60
 USE_PROCD=1
 
 smb_header() {
-	local interface
-	config_get interface $1 interface "loopback lan"
+	config_get samba_iface $1 interface "loopback lan"
 
 	# resolve interfaces
 	local interfaces=$(
 		. /lib/functions/network.sh
 
 		local net
-		for net in $interface; do
+		for net in $samba_iface; do
 			local device
+			network_is_up $net || continue
 			network_get_device device "$net" && {
 				local subnet
 				network_get_subnet  subnet "$net" && echo -n "$subnet "
@@ -93,14 +93,13 @@ init_config() {
 	config_foreach smb_add_share sambashare
 }
 
-reload_service() {
-	init_config
-
-	killall -HUP smbd
-}
-
 service_triggers() {
 	procd_add_reload_trigger samba
+
+	local i
+	for i in $samba_iface; do
+		procd_add_reload_interface_trigger $i
+	done
 }
 
 start_service() {
@@ -109,10 +108,12 @@ start_service() {
 	procd_open_instance
 	procd_set_param command /usr/sbin/smbd -F
 	procd_set_param respawn
+	procd_set_param file /var/etc/smb.conf
 	procd_close_instance
 
 	procd_open_instance
 	procd_set_param command /usr/sbin/nmbd -F
 	procd_set_param respawn
+	procd_set_param file /var/etc/smb.conf
 	procd_close_instance
 }



More information about the lede-commits mailing list