summaryrefslogtreecommitdiff
path: root/packaging/Debian/debian-sarge/samba-common.dhcp
blob: 3b5a05ff5732473d4b9834f2e9d27efdb143dbe2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/bin/sh

SAMBA_DHCP_CONF=/etc/samba/dhcp.conf

netbios_setup() {
	# No need to continue if we're called with an unsupported option

	if [ "$reason" != BOUND ] && [ "$reason" != RENEW ] \
	   && [ "$reason" != REBIND ] && [ "$reason" != REBOOT ] \
	   && [ "$reason" != EXPIRE ] && [ "$reason" != FAIL ]
	then
		return
	fi

	# Nor should we continue if no settings have changed
	if [ "$new_netbios_name_servers" = "$old_netbios_name_servers" ] \
	   && [ "$new_netbios_scope" = "$old_netbios_scope" ]
	then
		return
	fi

	# reparse our own file
	local other_servers=`sed -n -e"s/[[:space:]]$interface:[^[:space:]]*//g; \
		s/^[[:space:]]*wins server[[:space:]]*=[[:space:]]*//pi" \
		$SAMBA_DHCP_CONF`

	umask 022

	local serverlist="$other_servers"
	for server in $new_netbios_name_servers
	do
		serverlist="$serverlist $interface:$server"
	done

	echo -n > $SAMBA_DHCP_CONF

	# If we're updating on failure/expire, AND there are no WINS
	# servers for other interfaces, leave the file empty.
	if [ -z "$other_servers" ]
	then
		if [ "$reason" = FAIL ] || [ "$reason" = EXPIRE ]
		then
			return
		fi
	fi

	if [ -n "$serverlist" ]
	then
		echo "   wins server =$serverlist" >> $SAMBA_DHCP_CONF
	fi
	if [ -n "$new_netbios_scope" ]
	then
		echo "   netbios scope = $new_netbios_scope" >> $SAMBA_DHCP_CONF
	fi
}

netbios_setup