# Copyright (C) 2008-2012 OpenWrt.org
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_get_device device "$net" && {
- local subnet
- network_get_subnet subnet "$net" && echo -n "$subnet "
- network_get_subnet6 subnet "$net" && echo -n "$subnet "
- }
-
+ network_is_up $net || continue
+ network_get_device device "$net"
echo -n "${device:-$net} "
done
)
[ -n "$browseable" ] && echo -e "\tbrowseable = $browseable" >> /var/etc/smb.conf
}
-start() {
+init_config() {
config_load samba
config_foreach smb_header samba
config_foreach smb_add_share sambashare
- service_start /usr/sbin/smbd -D
- service_start /usr/sbin/nmbd -D
}
-stop() {
- service_stop /usr/sbin/smbd
- service_stop /usr/sbin/nmbd
+service_triggers() {
+ procd_add_reload_trigger samba
+
+ local i
+ for i in $samba_iface; do
+ procd_add_reload_interface_trigger $i
+ done
+}
+
+start_service() {
+ init_config
+
+ 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
}