[packages] samba36: update init script and config template (#11106)
authorJo-Philipp Wich <jow@openwrt.org>
Fri, 30 Mar 2012 09:46:16 +0000 (09:46 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Fri, 30 Mar 2012 09:46:16 +0000 (09:46 +0000)
SVN-Revision: 31150

net/samba36/Makefile
net/samba36/files/samba.init
net/samba36/files/smb.conf.template

index 65418690b4f8f1c0abfbc4190ec47d6d33ef34b9..6875d2b89a707bfdcd30e06774c7dd532f87d163 100644 (file)
@@ -1,16 +1,15 @@
 #
-# Copyright (C) 2007 OpenWrt.org
+# Copyright (C) 2007-2012 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
 #
-# $Id$
 
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=samba
 PKG_VERSION:=3.6.3
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE_URL_SUBDIR:=/
 PKG_SOURCE_URL:=http://ftp.samba.org/pub/samba$(PKG_SOURCE_URL_SUBDIR)
index 8ec62778e2d887450f5c1364883877f66546ee1a..2656e83374e7fff7b71cf84a7de208800e7dfb9d 100755 (executable)
@@ -4,28 +4,63 @@
 START=60
 
 smb_header() {
-       local name
-       local workgroup
-       local description
+       local interface
+       config_get interface $1 interface "loopback lan"
+
+       # resolve interfaces
+       local interfaces=$(
+               include /lib/network
+               scan_interfaces
+
+               local net
+               for net in $interface; do
+                       local ifname
+                       config_get ifname "$net" ifname
+                       [ -n "$ifname" ] && {
+                               local ipaddr netmask
+                               config_get ipaddr  "$net" ipaddr
+                               config_get netmask "$net" netmask
+                               [ -n "$ipaddr" ] && echo -n "$ipaddr/${netmask:-255.255.255.255} "
+
+                               local ip6addr
+                               config_get ip6addr "$net" ip6addr
+                               [ -n "$ip6addr" ] && echo -n "$ip6addr "
+                       }
+
+                       echo -n "${ifname:-$net} "
+               done
+       )
+
+       local name workgroup description charset
+       local hostname="$(uci_get system.@system[0].hostname)"
+
+       config_get name        $1 name        "${hostname:-OpenWrt}"
+       config_get workgroup   $1 workgroup   "${hostname:-OpenWrt}"
+       config_get description $1 description "Samba on ${hostname:-OpenWrt}"
+       config_get charset     $1 charset     "UTF-8"
+
+       mkdir -p /var/etc
+       sed -e "s#|NAME|#$name#g" \
+           -e "s#|WORKGROUP|#$workgroup#g" \
+           -e "s#|DESCRIPTION|#$description#g" \
+           -e "s#|INTERFACES|#$interfaces#g" \
+           -e "s#|CHARSET|#$charset#g" \
+           /etc/samba/smb.conf.template > /var/etc/smb.conf
+
        local homes
+       config_get_bool homes $1 homes 0
+       [ $homes -gt 0 ] && {
+               cat <<EOT >> /var/etc/smb.conf
 
-       config_get name $1 name
-       config_get workgroup $1 workgroup
-       config_get description $1 description
-       config_get homes $1 homes
-
-       [ -z "$name" ] && name=openwrt
-       [ -z "$workgroup" ] && workgroup=openwrt
-       [ -z "$description" ] && description=openwrt
-
-       cp /etc/samba/smb.conf.template /tmp/smb.conf
-       [ -L /etc/samba/smb.conf ] || ln -nsf /tmp/smb.conf /etc/samba/smb.conf
-       sed -i "s/|NAME|/$name/g" /tmp/smb.conf
-       sed -i "s/|WORKGROUP|/$workgroup/g" /tmp/smb.conf
-       sed -i "s/|DESCRIPTION|/$description/g" /tmp/smb.conf
-       [ "$homes" == "1" ] && {
-               echo -e "\n[homes]\n\tcomment = Home Directories\n\tbrowseable = no\n\tread only = no\n\tcreate mode = 0750" >> /tmp/smb.conf
+[homes]
+       comment     = Home Directories
+       browsable   = no
+       read only   = no
+       create mode = 0750
+EOT
        }
+
+       [ -L /etc/samba/smb.conf ] || ln -nsf /var/etc/smb.conf /etc/samba/smb.conf
 }
 
 smb_add_share() {
@@ -47,12 +82,12 @@ smb_add_share() {
 
        [ -z "$name" -o -z "$path" ] && return
 
-       echo -e "\n[$name]\n\tpath = $path" >> /tmp/smb.conf
-       [ -n "$users" ] && echo -e "\tvalid users = $users" >> /tmp/smb.conf
-       [ -n "$read_only" ] && echo -e "\tread only = $read_only" >> /tmp/smb.conf
-       [ -n "$guest_ok" ] && echo -e "\tguest ok = $guest_ok" >> /tmp/smb.conf
-       [ -n "$create_mask" ] && echo -e "\tcreate mask = $create_mask" >> /tmp/smb.conf
-       [ -n "$dir_mask" ] && echo -e "\tdirectory mask = $dir_mask" >> /tmp/smb.conf
+       echo -e "\n[$name]\n\tpath = $path" >> /var/etc/smb.conf
+       [ -n "$users" ] && echo -e "\tvalid users = $users" >> /var/etc/smb.conf
+       [ -n "$read_only" ] && echo -e "\tread only = $read_only" >> /var/etc/smb.conf
+       [ -n "$guest_ok" ] && echo -e "\tguest ok = $guest_ok" >> /var/etc/smb.conf
+       [ -n "$create_mask" ] && echo -e "\tcreate mask = $create_mask" >> /var/etc/smb.conf
+       [ -n "$dir_mask" ] && echo -e "\tdirectory mask = $dir_mask" >> /var/etc/smb.conf
 }
 
 start() {
index 47f2f9c5b681ca002e5be4f74d4243f30fb6f283..38a385574b7374f492aa1ef908fb12ce00272641 100644 (file)
@@ -1,15 +1,20 @@
 [global]
        netbios name = |NAME| 
-       workgroup = |WORKGROUP|
+       display charset = |CHARSET|
+       interfaces = |INTERFACES|
        server string = |DESCRIPTION|
+       unix charset = |CHARSET|
+       workgroup = |WORKGROUP|
        browseable = yes
-       deadtime = 15
+       deadtime = 30
+       domain master = yes
        encrypt passwords = true
        enable core files = no
        guest account = nobody
+       guest ok = yes
        invalid users = root
-       load printers = no
        local master = yes
+       load printers = no
        map to guest = Bad User
        max protocol = SMB2
        min receivefile size = 16384
        obey pam restrictions = yes
        os level = 20
        passdb backend = smbpasswd
-       #passdb backend = tdbsam
        preferred master = yes
        printable = no
-       reset on zero vc = yes
-       remote announce = 192.168.1.255
        security = user
-       smb encrypt = disableennounce = 192.168.1.255
-        security = user
-        smb encrypt = disabled
+       smb encrypt = disabled
        smb passwd file = /etc/samba/smbpasswd
-       socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=65535 SO_SNDBUF=65535
+       socket options = TCP_NODELAY IPTOS_LOWDELAY
        syslog = 2
-       writeable = yes
-       unix charset = UTF-8
        use sendfile = yes
-
-[template]
-       browseable = yes
-       guest ok = yes
        writeable = yes
-
+