summaryrefslogtreecommitdiff
blob: 543cc16b7b3e2fcc41c580d0d85ec46fcc81efd4 (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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
diff -ruN freenx-server.orig/nxnode freenx-server/nxnode
--- freenx-server.orig/nxnode	2009-03-29 14:07:27.000000000 +0200
+++ freenx-server/nxnode	2009-05-12 19:19:28.090537066 +0200
@@ -85,6 +85,45 @@
 	echo $sessionid
 }
 
+setup_samba()
+{
+	smbport=""
+
+	# We know from protocol traces that client=linux,winnt,macosx are valid values.
+	# I hope with smbclientproto=smb on default and smbclientproto=cifs on all valid
+	# values we get support for all those systems.
+
+	smbproto="$SAMBA_MOUNT_SHARE_PROTOCOL"
+
+	if [ "$smbproto" = "both" ]
+	then
+		smbproto="smbfs"
+
+		[ "$client" = "linux" ] && smbproto="cifs"
+		[ "$client" = "winnt" ] && smbproto="cifs"
+		[ "$client" = "macosx" ] && smbproto="cifs"
+
+		# FIXME: This is a rather wild guess
+		[ "$client" = "win9x" ] && smbproto="smbfs"
+	fi
+
+	if [ "$smbproto" = "cifs" ]
+	then
+		smbport=445
+		COMMAND_SMBMOUNT=$COMMAND_SMBMOUNT_CIFS
+		COMMAND_SMBUMOUNT=$COMMAND_SMBUMOUNT_CIFS
+	elif [ "$smbproto" = "none" ] # none
+	then
+		# we set this to true so that the 
+		# SMB mount does not give an error message.
+
+		COMMAND_SMBMOUNT=/bin/true
+		COMMAND_SMBUMOUNT=/bin/true
+	else # smbfs
+		smbport=139
+	fi
+}
+
 #
 # -----------------------------------------------------------------------------
 # Node functions module
@@ -735,6 +774,7 @@
 
 node_umount_smb()
 {
+	setup_samba
 	[ -e "$USER_FAKE_HOME/.nx/C-$sess_id/scripts/mpoint" ] || return
 	cat "$USER_FAKE_HOME/.nx/C-$sess_id/scripts/mpoint" | while read mpoint
 	do
@@ -1136,39 +1176,7 @@
 
 	if [ "$samba" = "1" ]
 	then
-		# We know from protocol traces that client=linux,winnt,macosx are valid values.
-		# I hope with smbclientproto=smb on default and smbclientproto=cifs on all valid
-		# values we get support for all those systems.
-
-		smbproto="$SAMBA_MOUNT_SHARE_PROTOCOL"
-
-		if [ "$smbproto" = "both" ]
-		then
-			smbproto="smbfs"
-
-			[ "$client" = "linux" ] && smbproto="cifs"
-			[ "$client" = "winnt" ] && smbproto="cifs"
-			[ "$client" = "macosx" ] && smbproto="cifs"
-
-			# FIXME: This is a rather wild guess
-			[ "$client" = "win9x" ] && smbproto="smbfs"
-		fi
-
-		if [ "$smbproto" = "cifs" ]
-		then
-			smbport=445
-			COMMAND_SMBMOUNT=$COMMAND_SMBMOUNT_CIFS
-			COMMAND_SMBUMOUNT=$COMMAND_SMBUMOUNT_CIFS
-		elif [ "$smbproto" = "none" ] # none
-		then
-			# we set this to true so that the 
-			# SMB mount does not give an error message.
-
-			COMMAND_SMBMOUNT=/bin/true
-			COMMAND_SMBUMOUNT=/bin/true
-		else # smbfs
-			smbport=139
-		fi
+		setup_samba
 	fi
 	
 	# FreeNX specific variables
@@ -1430,6 +1438,7 @@
 
 cmd_node_smbmount()
 {
+	setup_samba
 	sessionid=$(getparam_sessionid)
 	port=$(getparam port)
 	username=$(getparam username)