From 43ac9d946e9ad4141d55f785b8d1790981ec422c Mon Sep 17 00:00:00 2001 From: jow Date: Fri, 30 Mar 2012 09:46:16 +0000 Subject: [PATCH] [packages] samba36: update init script and config template (#11106) git-svn-id: svn://svn.openwrt.org/openwrt/packages@31150 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- net/samba36/Makefile | 5 +-- net/samba36/files/samba.init | 85 ++++++++++++++++++++++++++----------- net/samba36/files/smb.conf.template | 28 +++++------- 3 files changed, 73 insertions(+), 45 deletions(-) diff --git a/net/samba36/Makefile b/net/samba36/Makefile index 65418690b..6875d2b89 100644 --- a/net/samba36/Makefile +++ b/net/samba36/Makefile @@ -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) diff --git a/net/samba36/files/samba.init b/net/samba36/files/samba.init index 8ec62778e..2656e8337 100755 --- a/net/samba36/files/samba.init +++ b/net/samba36/files/samba.init @@ -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 <> /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() { diff --git a/net/samba36/files/smb.conf.template b/net/samba36/files/smb.conf.template index 47f2f9c5b..38a385574 100644 --- a/net/samba36/files/smb.conf.template +++ b/net/samba36/files/smb.conf.template @@ -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 @@ -17,24 +22,13 @@ 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 - + -- 2.11.0