diff -uNr samba-3.0alpha22.orig/source/client/smbmnt.c samba-3.0alpha22/source/client/smbmnt.c --- samba-3.0alpha22.orig/source/client/smbmnt.c 2003-03-15 12:11:39.000000000 -0600 +++ samba-3.0alpha22/source/client/smbmnt.c 2003-03-15 12:11:49.000000000 -0600 @@ -28,6 +28,7 @@ static uid_t mount_uid; static gid_t mount_gid; static int mount_ro; +static int no_mtab; static unsigned mount_fmask; static unsigned mount_dmask; static int user_mount; @@ -40,6 +41,7 @@ printf("Usage: smbmnt mount-point [options]\n"); printf("Version %s\n\n",VERSION); printf("-s share share name on server\n" + "-n don't update /etc/mtab\n" "-r mount read-only\n" "-u uid mount as uid\n" "-g gid mount as gid\n" @@ -54,7 +56,7 @@ { int opt; - while ((opt = getopt (argc, argv, "s:u:g:rf:d:o:")) != EOF) + while ((opt = getopt (argc, argv, "s:u:g:nrf:d:o:")) != EOF) { switch (opt) { @@ -71,6 +73,9 @@ mount_gid = strtol(optarg, NULL, 0); } break; + case 'n': + no_mtab = 1; + break; case 'r': mount_ro = 1; break; @@ -274,36 +279,38 @@ return -1; } - if ((fd = open(MOUNTED"~", O_RDWR|O_CREAT|O_EXCL, 0600)) == -1) - { - fprintf(stderr, "Can't get "MOUNTED"~ lock file"); - return 1; - } - close(fd); + if (!no_mtab) { + if ((fd = open(MOUNTED"~", O_RDWR|O_CREAT|O_EXCL, 0600)) == -1) + { + fprintf(stderr, "Can't get "MOUNTED"~ lock file"); + return 1; + } + close(fd); - if ((mtab = setmntent(MOUNTED, "a+")) == NULL) - { - fprintf(stderr, "Can't open " MOUNTED); - return 1; - } + if ((mtab = setmntent(MOUNTED, "a+")) == NULL) + { + fprintf(stderr, "Can't open " MOUNTED); + return 1; + } - if (addmntent(mtab, &ment) == 1) - { - fprintf(stderr, "Can't write mount entry"); - return 1; - } - if (fchmod(fileno(mtab), 0644) == -1) - { - fprintf(stderr, "Can't set perms on "MOUNTED); - return 1; - } - endmntent(mtab); + if (addmntent(mtab, &ment) == 1) + { + fprintf(stderr, "Can't write mount entry"); + return 1; + } + if (fchmod(fileno(mtab), 0644) == -1) + { + fprintf(stderr, "Can't set perms on "MOUNTED); + return 1; + } + endmntent(mtab); - if (unlink(MOUNTED"~") == -1) - { - fprintf(stderr, "Can't remove "MOUNTED"~"); - return 1; - } + if (unlink(MOUNTED"~") == -1) + { + fprintf(stderr, "Can't remove "MOUNTED"~"); + return 1; + } + } return 0; } diff -uNr samba-3.0alpha22.orig/source/client/smbmount.c samba-3.0alpha22/source/client/smbmount.c --- samba-3.0alpha22.orig/source/client/smbmount.c 2003-03-15 12:04:29.000000000 -0600 +++ samba-3.0alpha22/source/client/smbmount.c 2003-03-15 12:15:10.000000000 -0600 @@ -48,6 +48,7 @@ static int mount_ro; static unsigned mount_fmask; static unsigned mount_dmask; +static BOOL no_mtab = False; static BOOL use_kerberos; /* TODO: Add code to detect smbfs version in kernel */ static BOOL status32_smbfs = False; @@ -273,6 +274,9 @@ return; } + if (no_mtab) + return; + if ((fd = open(MOUNTED"~", O_RDWR|O_CREAT|O_EXCL, 0600)) == -1) { DEBUG(0,("%d: Can't get "MOUNTED"~ lock file", sys_getpid())); return; @@ -466,6 +470,9 @@ args[i++] = "-s"; args[i++] = svc2; + if (no_mtab) { + args[i++] = "-n"; + } if (mount_ro) { args[i++] = "-r"; } @@ -661,7 +668,7 @@ ****************************************************************************/ static void usage(void) { - printf("Usage: mount.smbfs service mountpoint [-o options,...]\n"); + printf("Usage: mount.smbfs service mountpoint [-n] [-o options,...]\n"); printf("Version %s\n\n",VERSION); @@ -739,8 +746,13 @@ argc -= 2; argv += 2; - opt = getopt(argc, argv, "o:"); - if(opt != 'o') { + opt = getopt(argc, argv, "no:"); + if (opt == 'n') { + DEBUG(3,("No mtab!\n")); + no_mtab = True; + opt = getopt(argc, argv, "o:"); + } + if (opt != 'o') { return; }