• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/router/samba-3.0.25b/packaging/Debian/debian-unstable/patches/
1diff -uNr samba-3.0alpha22.orig/source/client/smbmnt.c samba-3.0alpha22/source/client/smbmnt.c
2--- samba-3.0alpha22.orig/source/client/smbmnt.c	2003-03-15 12:11:39.000000000 -0600
3+++ samba-3.0alpha22/source/client/smbmnt.c	2003-03-15 12:11:49.000000000 -0600
4@@ -28,6 +28,7 @@
5 static uid_t mount_uid;
6 static gid_t mount_gid;
7 static int mount_ro;
8+static int no_mtab;
9 static unsigned mount_fmask;
10 static unsigned mount_dmask;
11 static int user_mount;
12@@ -40,6 +41,7 @@
13         printf("Usage: smbmnt mount-point [options]\n");
14 	printf("Version %s\n\n",VERSION);
15         printf("-s share       share name on server\n"
16+               "-n             don't update /etc/mtab\n"
17                "-r             mount read-only\n"
18                "-u uid         mount as uid\n"
19                "-g gid         mount as gid\n"
20@@ -54,7 +56,7 @@
21 {
22         int opt;
23 
24-        while ((opt = getopt (argc, argv, "s:u:g:rf:d:o:")) != EOF)
25+        while ((opt = getopt (argc, argv, "s:u:g:nrf:d:o:")) != EOF)
26 	{
27                 switch (opt)
28 		{
29@@ -71,6 +73,9 @@
30 				mount_gid = strtol(optarg, NULL, 0);
31 			}
32                         break;
33+		case 'n':
34+			no_mtab = 1;
35+			break;
36                 case 'r':
37                         mount_ro = 1;
38                         break;
39@@ -274,36 +279,38 @@
40 		return -1;
41 	}
42 	
43-        if ((fd = open(MOUNTED"~", O_RDWR|O_CREAT|O_EXCL, 0600)) == -1)
44-        {
45-                fprintf(stderr, "Can't get "MOUNTED"~ lock file");
46-                return 1;
47-        }
48-        close(fd);
49+	if (!no_mtab) {
50+		if ((fd = open(MOUNTED"~", O_RDWR|O_CREAT|O_EXCL, 0600)) == -1)
51+		{
52+			fprintf(stderr, "Can't get "MOUNTED"~ lock file");
53+			return 1;
54+		}
55+		close(fd);
56 	
57-        if ((mtab = setmntent(MOUNTED, "a+")) == NULL)
58-        {
59-                fprintf(stderr, "Can't open " MOUNTED);
60-                return 1;
61-        }
62+		if ((mtab = setmntent(MOUNTED, "a+")) == NULL)
63+		{
64+			fprintf(stderr, "Can't open " MOUNTED);
65+			return 1;
66+		}
67 
68-        if (addmntent(mtab, &ment) == 1)
69-        {
70-                fprintf(stderr, "Can't write mount entry");
71-                return 1;
72-        }
73-        if (fchmod(fileno(mtab), 0644) == -1)
74-        {
75-                fprintf(stderr, "Can't set perms on "MOUNTED);
76-                return 1;
77-        }
78-        endmntent(mtab);
79+		if (addmntent(mtab, &ment) == 1)
80+		{
81+			fprintf(stderr, "Can't write mount entry");
82+			return 1;
83+		}
84+		if (fchmod(fileno(mtab), 0644) == -1)
85+		{
86+			fprintf(stderr, "Can't set perms on "MOUNTED);
87+			return 1;
88+		}
89+		endmntent(mtab);
90 
91-        if (unlink(MOUNTED"~") == -1)
92-        {
93-                fprintf(stderr, "Can't remove "MOUNTED"~");
94-                return 1;
95-        }
96+		if (unlink(MOUNTED"~") == -1)
97+		{
98+			fprintf(stderr, "Can't remove "MOUNTED"~");
99+			return 1;
100+		}
101+	}
102 
103 	return 0;
104 }	
105diff -uNr samba-3.0alpha22.orig/source/client/smbmount.c samba-3.0alpha22/source/client/smbmount.c
106--- samba-3.0alpha22.orig/source/client/smbmount.c	2003-03-15 12:04:29.000000000 -0600
107+++ samba-3.0alpha22/source/client/smbmount.c	2003-03-15 12:15:10.000000000 -0600
108@@ -48,6 +48,7 @@
109 static int mount_ro;
110 static unsigned mount_fmask;
111 static unsigned mount_dmask;
112+static BOOL no_mtab = False;
113 static BOOL use_kerberos;
114 /* TODO: Add code to detect smbfs version in kernel */
115 static BOOL status32_smbfs = False;
116@@ -273,6 +274,9 @@
117                 return;
118         }
119 
120+	if (no_mtab)
121+		return;
122+
123         if ((fd = open(MOUNTED"~", O_RDWR|O_CREAT|O_EXCL, 0600)) == -1) {
124                 DEBUG(0,("%d: Can't get "MOUNTED"~ lock file", sys_getpid()));
125                 return;
126@@ -467,6 +471,9 @@
127 	args[i++] = "-s";
128 	args[i++] = svc2;
129 
130+	if (no_mtab) {
131+		args[i++] = "-n";
132+	}
133 	if (mount_ro) {
134 		args[i++] = "-r";
135 	}
136@@ -662,7 +669,7 @@
137 ****************************************************************************/
138 static void usage(void)
139 {
140-	printf("Usage: mount.smbfs service mountpoint [-o options,...]\n");
141+	printf("Usage: mount.smbfs service mountpoint [-n] [-o options,...]\n");
142 
143 	printf("Version %s\n\n",VERSION);
144 
145@@ -740,8 +747,13 @@
146 	argc -= 2;
147 	argv += 2;
148 
149-	opt = getopt(argc, argv, "o:");
150-	if(opt != 'o') {
151+	opt = getopt(argc, argv, "no:");
152+	if (opt == 'n') {
153+		DEBUG(3,("No mtab!\n"));
154+		no_mtab = True;
155+		opt = getopt(argc, argv, "o:");
156+	}
157+	if (opt != 'o') {
158 		return;
159 	}
160 
161