summaryrefslogtreecommitdiff
path: root/source3/client/smbmnt.c
diff options
context:
space:
mode:
authorVolker Lendecke <vlendec@samba.org>1998-01-22 03:47:48 +0000
committerVolker Lendecke <vlendec@samba.org>1998-01-22 03:47:48 +0000
commit0b2e57592c8ad3811efca20e3678a11889a8bfdf (patch)
treed650358176965a121b2b9179faaae157c1383dbc /source3/client/smbmnt.c
parent2d1ff641f09e06c8ddf62814b12a3f2fa3851244 (diff)
downloadsamba-0b2e57592c8ad3811efca20e3678a11889a8bfdf.tar.gz
samba-0b2e57592c8ad3811efca20e3678a11889a8bfdf.tar.bz2
samba-0b2e57592c8ad3811efca20e3678a11889a8bfdf.zip
*** empty log message ***
(This used to be commit 1e1b0c80f84657f89ffcd4132887cd9f8a26885a)
Diffstat (limited to 'source3/client/smbmnt.c')
-rw-r--r--source3/client/smbmnt.c36
1 files changed, 17 insertions, 19 deletions
diff --git a/source3/client/smbmnt.c b/source3/client/smbmnt.c
index 9bb7f56672..2891ea709c 100644
--- a/source3/client/smbmnt.c
+++ b/source3/client/smbmnt.c
@@ -53,18 +53,18 @@ help(void)
"-f mode permission the files get (octal notation)\n"
"-d mode permission the dirs get (octal notation)\n"
"-P pid connection handler's pid\n\n"
+ "-s share share name on server\n\n"
"-h print this help text\n");
}
static int
-parse_args(int argc, char *argv[], struct smb_mount_data *data)
+parse_args(int argc, char *argv[], struct smb_mount_data *data, char **share)
{
int opt;
struct passwd *pwd;
struct group *grp;
- while ((opt = getopt (argc, argv, "u:g:f:d:"))
- != EOF)
+ while ((opt = getopt (argc, argv, "u:g:f:d:s:")) != EOF)
{
switch (opt)
{
@@ -108,6 +108,9 @@ parse_args(int argc, char *argv[], struct smb_mount_data *data)
case 'd':
data->dir_mode = strtol(optarg, NULL, 8);
break;
+ case 's':
+ *share = optarg;
+ break;
default:
return -1;
}
@@ -157,17 +160,13 @@ mount_ok(struct stat *st)
int
main(int argc, char *argv[])
{
- struct smb_mount_data data;
- struct stat st;
-
- int fd;
- int um;
+ char *mount_point, *share_name = NULL;
+ FILE *mtab;
+ int fd, um;
unsigned int flags;
-
- char *mount_point;
-
- struct mntent ment;
- FILE *mtab;
+ struct smb_mount_data data;
+ struct stat st;
+ struct mntent ment;
progname = argv[0];
@@ -222,7 +221,7 @@ main(int argc, char *argv[])
data.file_mode = (S_IRWXU|S_IRWXG|S_IRWXO) & ~um;
data.dir_mode = 0;
- if (parse_args(argc, argv, &data) != 0) {
+ if (parse_args(argc, argv, &data, &share_name) != 0) {
usage();
return -1;
}
@@ -239,15 +238,14 @@ main(int argc, char *argv[])
flags = MS_MGC_VAL;
- if (mount(NULL, mount_point, "smbfs",
- flags, (char *)&data) < 0) {
+ if (mount(share_name, mount_point, "smbfs", flags, (char *)&data) < 0)
+ {
perror("mount error");
- printf("Please look at smbmount's manual page for "
- "possible reasons\n");
+ printf("Please refer to the smbmnt(8) manual page\n");
return -1;
}
- ment.mnt_fsname = "none";
+ ment.mnt_fsname = share_name ? share_name : "none";
ment.mnt_dir = fullpath(mount_point);
ment.mnt_type = "smbfs";
ment.mnt_opts = "";