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@gmail.com>
This commit is contained in:
parent
d1b20a3659
commit
63f6fc5c16
@ -5,16 +5,16 @@ START=60
|
|||||||
USE_PROCD=1
|
USE_PROCD=1
|
||||||
|
|
||||||
smb_header() {
|
smb_header() {
|
||||||
local interface
|
config_get samba_iface $1 interface "loopback lan"
|
||||||
config_get interface $1 interface "loopback lan"
|
|
||||||
|
|
||||||
# resolve interfaces
|
# resolve interfaces
|
||||||
local interfaces=$(
|
local interfaces=$(
|
||||||
. /lib/functions/network.sh
|
. /lib/functions/network.sh
|
||||||
|
|
||||||
local net
|
local net
|
||||||
for net in $interface; do
|
for net in $samba_iface; do
|
||||||
local device
|
local device
|
||||||
|
network_is_up $net || continue
|
||||||
network_get_device device "$net" && {
|
network_get_device device "$net" && {
|
||||||
local subnet
|
local subnet
|
||||||
network_get_subnet subnet "$net" && echo -n "$subnet "
|
network_get_subnet subnet "$net" && echo -n "$subnet "
|
||||||
@ -93,14 +93,13 @@ init_config() {
|
|||||||
config_foreach smb_add_share sambashare
|
config_foreach smb_add_share sambashare
|
||||||
}
|
}
|
||||||
|
|
||||||
reload_service() {
|
|
||||||
init_config
|
|
||||||
|
|
||||||
killall -HUP smbd
|
|
||||||
}
|
|
||||||
|
|
||||||
service_triggers() {
|
service_triggers() {
|
||||||
procd_add_reload_trigger samba
|
procd_add_reload_trigger samba
|
||||||
|
|
||||||
|
local i
|
||||||
|
for i in $samba_iface; do
|
||||||
|
procd_add_reload_interface_trigger $i
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
start_service() {
|
start_service() {
|
||||||
@ -109,10 +108,12 @@ start_service() {
|
|||||||
procd_open_instance
|
procd_open_instance
|
||||||
procd_set_param command /usr/sbin/smbd -F
|
procd_set_param command /usr/sbin/smbd -F
|
||||||
procd_set_param respawn
|
procd_set_param respawn
|
||||||
|
procd_set_param file /var/etc/smb.conf
|
||||||
procd_close_instance
|
procd_close_instance
|
||||||
|
|
||||||
procd_open_instance
|
procd_open_instance
|
||||||
procd_set_param command /usr/sbin/nmbd -F
|
procd_set_param command /usr/sbin/nmbd -F
|
||||||
procd_set_param respawn
|
procd_set_param respawn
|
||||||
|
procd_set_param file /var/etc/smb.conf
|
||||||
procd_close_instance
|
procd_close_instance
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user