aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSheldon Hearn <sheldonh@FreeBSD.org>2002-04-22 16:15:20 +0000
committerSheldon Hearn <sheldonh@FreeBSD.org>2002-04-22 16:15:20 +0000
commit34ffbc80d69446c64599a878a0a950c9e66f7bf5 (patch)
tree30fb08f9467b786671737c5383f47fef7a800d4e
parent8d4076f0811818b9ead91e01e5aa214ef4a8d7fb (diff)
downloadsrc-34ffbc80d69446c64599a878a0a950c9e66f7bf5.tar.gz
src-34ffbc80d69446c64599a878a0a950c9e66f7bf5.zip
Import smbfs-1.4.4.vendor/smbfs/1.4.4
Notes
Notes: svn path=/vendor/smbfs/dist/; revision=95267 svn path=/vendor/smbfs/1.4.4/; revision=95269; tag=vendor/smbfs/1.4.4
-rw-r--r--contrib/smbfs/CREDITS1
-rw-r--r--contrib/smbfs/HISTORY7
-rw-r--r--contrib/smbfs/Makefile.inc4
-rw-r--r--contrib/smbfs/examples/dot.nsmbrc7
-rw-r--r--contrib/smbfs/lib/smb/ctx.c18
-rw-r--r--contrib/smbfs/mount_smbfs/mount_smbfs.879
-rw-r--r--contrib/smbfs/mount_smbfs/mount_smbfs.c4
-rw-r--r--contrib/smbfs/smbutil/smbutil.199
-rw-r--r--contrib/smbfs/smbutil/view.c18
9 files changed, 135 insertions, 102 deletions
diff --git a/contrib/smbfs/CREDITS b/contrib/smbfs/CREDITS
index e9228afccf31..9d2431bf04b6 100644
--- a/contrib/smbfs/CREDITS
+++ b/contrib/smbfs/CREDITS
@@ -2,6 +2,7 @@
In the development process next sources were used:
Various documents from the Microsoft ftp site.
+
HTML docs published by Thursby Software.
Special thanks to the Samba team for permission to use their source
diff --git a/contrib/smbfs/HISTORY b/contrib/smbfs/HISTORY
index 1395345f88b8..4de0e7b17291 100644
--- a/contrib/smbfs/HISTORY
+++ b/contrib/smbfs/HISTORY
@@ -1,4 +1,9 @@
-26.12.2001 1.4.3
+16.04.2002 1.4.4
+ - Workaround for W2K bug in resource listing.
+ - Minor bug fixes.
+ - Manual pages updated. Thanks to Ruslan Ermilov.
+
+26.12.2001 1.4.3 (interim)
- Additional cleanups for FreeBSD builds.
- Charset specifications now accepted in the [default] section.
diff --git a/contrib/smbfs/Makefile.inc b/contrib/smbfs/Makefile.inc
index d83356e7a0c7..643c9754e849 100644
--- a/contrib/smbfs/Makefile.inc
+++ b/contrib/smbfs/Makefile.inc
@@ -1,4 +1,4 @@
-# $Id: Makefile.inc,v 1.10 2001/05/03 10:05:47 bp Exp $
+# $Id: Makefile.inc,v 1.11 2002/04/16 02:57:46 bp Exp $
.ifmake !clean && !cleandepend
.if !defined(PREFIX)
@@ -26,6 +26,8 @@ CFLAGS += -I../kernel
CFLAGS += -I${SYSDIR}
.endif
+CFLAGS += -I../include
+
.if defined(SMBGDB)
CFLAGS+= -ggdb
.endif
diff --git a/contrib/smbfs/examples/dot.nsmbrc b/contrib/smbfs/examples/dot.nsmbrc
index b630fa8bda40..052c718646f3 100644
--- a/contrib/smbfs/examples/dot.nsmbrc
+++ b/contrib/smbfs/examples/dot.nsmbrc
@@ -1,4 +1,4 @@
-# $Id: dot.nsmbrc,v 1.6 2000/07/16 01:52:06 bp Exp $
+# $Id: dot.nsmbrc,v 1.7 2002/04/10 04:21:11 bp Exp $
#
# Example for .nsmbrc file
#
@@ -20,7 +20,8 @@
# where 'key' represents parameter name and 'value' a value assigned
# to this parameter.
#
-# SMB library uses next forms of section names:
+# SMB library uses next forms of section names (please note that the section
+# name should be in upper case when it refers to server, user or share):
# A) [default]
# B) [SERVER]
# C) [SERVER:USER]
@@ -31,7 +32,7 @@
# keyword/section A B C D Comment
#
# addr - + - - IP or IPX address of SMB server
-# charsets - + + + local:remote charset pair
+# charsets + + + + local:remote charset pair
# nbns + + - - address of NetBIOS name server (WINS)
# nbscope + + - - NetBIOS scope
# nbtimeout + + - - timeout for NetBIOS name servers
diff --git a/contrib/smbfs/lib/smb/ctx.c b/contrib/smbfs/lib/smb/ctx.c
index a9342105fc57..588185f99452 100644
--- a/contrib/smbfs/lib/smb/ctx.c
+++ b/contrib/smbfs/lib/smb/ctx.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, Boris Popov
+ * Copyright (c) 2000-2002, Boris Popov
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -29,7 +29,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: ctx.c,v 1.22 2001/12/26 04:10:52 bp Exp $
+ * $Id: ctx.c,v 1.24 2002/04/13 14:35:28 bp Exp $
*/
#include <sys/param.h>
#include <sys/sysctl.h>
@@ -64,7 +64,9 @@ smb_ctx_init(struct smb_ctx *ctx, int argc, char *argv[],
int minlevel, int maxlevel, int sharetype)
{
int opt, error = 0;
+ uid_t euid;
const char *arg, *cp;
+ struct passwd *pwd;
bzero(ctx,sizeof(*ctx));
error = nb_ctx_create(&ctx->ct_nb);
@@ -92,8 +94,14 @@ smb_ctx_init(struct smb_ctx *ctx, int argc, char *argv[],
ctx->ct_sh.ioc_group = SMBM_ANY_GROUP;
nb_ctx_setscope(ctx->ct_nb, "");
- smb_ctx_setuser(ctx, getpwuid(geteuid())->pw_name);
- endpwent();
+ euid = geteuid();
+ if ((pwd = getpwuid(euid)) != NULL) {
+ smb_ctx_setuser(ctx, pwd->pw_name);
+ endpwent();
+ } else if (euid == 0)
+ smb_ctx_setuser(ctx, "root");
+ else
+ return 0;
if (argv == NULL)
return 0;
for (opt = 1; opt < argc; opt++) {
@@ -564,7 +572,7 @@ smb_ctx_gethandle(struct smb_ctx *ctx)
char buf[20];
/*
- * First try to open as clone
+ * First, try to open as cloned device
*/
fd = open("/dev/"NSMB_NAME, O_RDWR);
if (fd >= 0) {
diff --git a/contrib/smbfs/mount_smbfs/mount_smbfs.8 b/contrib/smbfs/mount_smbfs/mount_smbfs.8
index 4a522595603d..ba69b39fd9fa 100644
--- a/contrib/smbfs/mount_smbfs/mount_smbfs.8
+++ b/contrib/smbfs/mount_smbfs/mount_smbfs.8
@@ -1,18 +1,18 @@
-.\" $Id: mount_smbfs.8,v 1.9 2001/12/20 15:11:45 bp Exp $
-.Dd Mar 10, 2000
+.\" $Id: mount_smbfs.8,v 1.10 2002/04/16 02:47:41 bp Exp $
+.Dd March 10, 2000
.Dt MOUNT_SMBFS 8
-.Os FreeBSD
+.Os
.Sh NAME
.Nm mount_smbfs
-.Nd mounts a shared resource from an SMB file server
+.Nd "mount a shared resource from an SMB file server"
.Sh SYNOPSIS
-.Nm mount_smbfs
-.Op Fl E Ar cs1:cs2
+.Nm
+.Op Fl E Ar cs1 : Ns Ar cs2
.Op Fl I Ar host
.Op Fl L Ar locale
-.Op Fl M Ar crights:srights
+.Op Fl M Ar crights : Ns Ar srights
.Op Fl N
-.Op Fl O Ar cowner:cgroup/sowner:sgroup
+.Op Fl O Ar cowner : Ns Ar cgroup Ns / Ns Ar sowner : Ns Ar sgroup
.Op Fl R Ar retrycount
.Op Fl T Ar timeout
.Op Fl W Ar workgroup
@@ -22,20 +22,22 @@
.Op Fl g Ar gid
.Op Fl n Ar opt
.Op Fl u Ar uid
-.Ar //user@server/share
+.Sm off
+.No // Ar user No @ Ar server No / Ar share
+.Sm on
.Ar node
.Sh DESCRIPTION
The
.Nm
command mounts a share from a remote server using SMB/CIFS protocol.
.Pp
-The options are:
+The options are as follows:
.Bl -tag -width indent
-.It Fl E Ar cs1:cs2
+.It Fl E Ar cs1 : Ns Ar cs2
Specifies local
-.Ar (cs1)
+.Pq Ar cs1
and server's
-.Ar (cs2)
+.Pq Ar cs2
character sets.
.It Fl I Ar host
Do not use NetBIOS name resolver and connect directly to
@@ -46,12 +48,12 @@ Use
.Ar locale
for lower/upper case conversion routines.
Set the locale for case conversion.
-By default
+By default,
.Nm
tries to use an environment variable
-.Ev LC_*
+.Ev LC_*
to determine it.
-.It Fl M Ar crights:srights
+.It Fl M Ar crights : Ns Ar srights
Assign access rights to the newly created connection.
See
.Xr nsmb 8
@@ -63,10 +65,10 @@ At run time,
reads the
.Pa ~/.nsmbrc
file for additional configuration parameters and a password.
-If no password is found the
+If no password is found,
.Nm
prompts for it.
-.It Fl O Ar cowner:cgroup/sowner:sgroup
+.It Fl O Ar cowner : Ns Ar cgroup Ns / Ns Ar sowner : Ns Ar sgroup
Assign owner/group attributes to the newly created connection.
See
.Xr nsmb 8
@@ -80,34 +82,34 @@ Timeout in seconds for each request.
This option specifies the workgroup to be used in the authentication request.
.It Fl c Ar case
Set a
-.Ar case
+.Ar case
option which affects name representation.
-.Ar case
+.Ar case
can be one of the following:
-.Bl -tag -width "ValueXX"
+.Bl -tag -width ".Em Value"
.It Em Value
.Em Meaning
-.It l
-All existing file names converted to lower case.
+.It Cm l
+All existing file names are converted to lower case.
Newly created file gets a lower case.
-.It u
-All existing file names converted to upper case.
-Newly created file gets an upper case unde.
+.It Cm u
+All existing file names are converted to upper case.
+Newly created file gets an upper case.
.El
.It Fl f Ar mode , Fl d Ar mode
Specify permissions that should be assigned to files and directories.
The values must be specified as octal numbers.
Default value for the file mode
-is taken from mount point, default value for the dir mode adds execute
+is taken from mount point, default value for the directory mode adds execute
permission where the file mode gives read permission.
.Pp
Note that these permissions can differ from the rights granted by SMB
-server.
+server.
.It Fl u Ar uid , Fl g Ar gid
-User id and group id assigned to files.
-The default is owner and group id from
-directory where the volume is mounted.
-.It Ar //user@server/share
+User ID and group ID assigned to files.
+The default are owner and group IDs from
+the directory where the volume is mounted.
+.It No // Ns Ar user Ns @ Ns Ar server Ns / Ns Ar share
The
.Nm
command will use
@@ -121,7 +123,7 @@ as the resource name on a remote server.
Path to mount point.
.El
.Sh FILES
-.Bl -tag -width /var/log/wtmp -compact
+.Bl -tag -width ".Pa ~/.nsmbrc" -compact
.It Pa ~/.nsmbrc
Keeps static parameters for connections and other information.
See
@@ -129,10 +131,10 @@ See
for details.
.El
.Sh EXAMPLES
-The following examples illustrate how to connect to a SMB server
+The following example illustrates how to connect to SMB server
.Em SAMBA
as user
-.Em GUEST
+.Em GUEST ,
and mount shares
.Em PUBLIC
and
@@ -145,11 +147,10 @@ mount_smbfs -I 192.168.20.3 -E koi8-r:cp866 //guest@samba/tmp /smb/tmp
It is possible to use
.Xr fstab 5
for smbfs mounts:
-.Bd -literal -offset indent
-//guest@samba/public /smb/public smbfs rw,noauto 0 0
-.Ed
+.Pp
+.Dl "//guest@samba/public /smb/public smbfs rw,noauto 0 0"
.Sh BUGS
Please report bugs to the author.
.Sh AUTHORS
.An Boris Popov Aq bp@butya.kz ,
-.Aq bp@freebsd.org
+.Aq bp@FreeBSD.org
diff --git a/contrib/smbfs/mount_smbfs/mount_smbfs.c b/contrib/smbfs/mount_smbfs/mount_smbfs.c
index f8295e7a5eaf..6c81f0845beb 100644
--- a/contrib/smbfs/mount_smbfs/mount_smbfs.c
+++ b/contrib/smbfs/mount_smbfs/mount_smbfs.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000-2001, Boris Popov
+ * Copyright (c) 2000-2002, Boris Popov
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -29,7 +29,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: mount_smbfs.c,v 1.16 2001/12/26 04:09:57 bp Exp $
+ * $Id: mount_smbfs.c,v 1.17 2002/04/10 04:17:51 bp Exp $
*/
#include <sys/param.h>
#include <sys/stat.h>
diff --git a/contrib/smbfs/smbutil/smbutil.1 b/contrib/smbfs/smbutil/smbutil.1
index 529e4cf8368a..eec61937c7de 100644
--- a/contrib/smbfs/smbutil/smbutil.1
+++ b/contrib/smbfs/smbutil/smbutil.1
@@ -1,51 +1,57 @@
-.\" $Id: smbutil.1,v 1.4 2001/12/20 15:11:34 bp Exp $
-.Dd Feb 14, 2000
+.\" $Id: smbutil.1,v 1.5 2002/04/16 02:48:16 bp Exp $
+.Dd February 14, 2000
.Dt SMBUTIL 1
.Os
.Sh NAME
.Nm smbutil
-.Nd Interface to SMB requester
+.Nd "interface to the SMB requester"
.Sh SYNOPSIS
-.Nm smbutil
+.Nm
.Op Fl hv
.Ar command
-.Op Fl options
+.Op Fl Ar options
.Op Ar args
.Sh DESCRIPTION
The
.Nm
-command used to control SMB requester and issue various commands.
+command is used to control SMB requester and issue various commands.
.Pp
-There are two types of options - global and local to specified command.
+There are two types of options \(em global and local to the specified
+.Ar command .
.Pp
-The global options are:
+Global options are as follows:
.Bl -tag -width indent
.It Fl h
-Print short help message.
+Print a short help message.
.It Fl v
Verbose output.
.El
.Pp
The commands and local options are:
.Bl -tag -width indent
-.It Em crypt Op password
-Slightly encrypt clear text password to use it in the
+.It Cm crypt Op Ar password
+Encrypt clear text password for use in the
.Pa ~/.nsmbrc
-file. The encrypted password starts with '$$1' symbols.
-Warning: the encryption function is very weak and intented only to hide
+file.
+The encrypted password starts with the
+.Ql $$1
+symbols.
+Warning: the encryption function is very weak and intended only to hide
clear text password.
If
.Ar password
-is ommited from command line, program will prompt for one.
-.It Em help Ar command
+is omitted from the command line,
+.Nm
+will prompt for one.
+.It Cm help Ar command
Print usage information about
.Ar command .
-.It Em lc
+.It Cm lc
List active connections and their parameters.
.It Xo
-.Em login
-.Op Fl connection\ options
-.Ar //user@server Ns Op Ar /share
+.Cm login
+.Op Fl Ar connection_options
+.No // Ns Ar user Ns @ Ns Ar server Ns Op / Ns Ar share
.Xc
Login/attach to the specified
.Ar server
@@ -55,17 +61,17 @@ as
.Ar user .
This command will create and authenticate connection to an SMB server, and
will leave it active after exit.
-Thus, one can login only once and then
+Thus, it is possible to login only once and then
use other SMB commands without authentication procedure and additional
connections.
For the description of
-.Op Fl connection\ options
-see
+.Fl Ar connection_options
+refer to the
.Xr mount_smbfs 8
-command (all uppercase options are connection options).
+manpage (all uppercase options are connection options).
.It Xo
-.Em logout
-.Ar //user@server Ns Op Ar /share
+.Cm logout
+.No // Ns Ar user Ns @ Ns Ar server Ns Op / Ns Ar share
.Xc
Logout/detach from the specified
.Ar server
@@ -73,53 +79,56 @@ and/or
.Ar share
as
.Ar user .
-This command will destroy connection created by
-.Ar login
-command. A connection may not be closed immediately if it used by other
+This command will destroy a connection created by the
+.Cm login
+command.
+A connection may not be closed immediately if it is used by other
programs.
.It Xo
-.Em lookup
+.Cm lookup
.Op Fl w Ar host
.Ar name
.Xc
-Resolve given
+Resolve the given
.Ar name
-to IP address.
-NetBIOS name server can be directly specified via
-.Op Fl w
+to an IP address.
+The NetBIOS name server can be directly specified via the
+.Fl w
option.
.It Xo
-.Em print
-.Op Fl connection\ options
-.Ar //user@server/share
+.Cm print
+.Op Fl Ar connection_options
+.No // Ns Ar user Ns @ Ns Ar server Ns / Ns Ar share
.Ar file
.Xc
-Send given
+Send the given
.Ar file
to the specified queue on the remote server.
If
.Ar file
-is '-', then standard input will be used.
+is
+.Pa - ,
+then standard input will be used.
.It Xo
-.Em view
-.Op Fl connection\ options
-.Ar //user@server
+.Cm view
+.Op Fl Ar connection_options
+.No // Ns Ar user Ns @ Ns Ar server
.Xc
-List resources avaliable on the specified
+List resources available on the specified
.Ar server
for the user
.Ar user .
.El
.Sh FILES
-.Bl -tag -width /var/log/wtmp -compact
+.Bl -tag -width ".Pa ~/.nsmbrc" -compact
.It Pa ~/.nsmbrc
-keeps description for each connection.
+Keeps description for each connection.
See
.Pa ./examples/dot.nsmbrc
for details.
.El
.Sh AUTHORS
.An Boris Popov Aq bp@butya.kz ,
-.Aq bp@freebsd.org
+.Aq bp@FreeBSD.org
.Sh BUGS
Please report any bugs to the author.
diff --git a/contrib/smbfs/smbutil/view.c b/contrib/smbfs/smbutil/view.c
index e3e600f57e4d..42450df26593 100644
--- a/contrib/smbfs/smbutil/view.c
+++ b/contrib/smbfs/smbutil/view.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, Boris Popov
+ * Copyright (c) 2000-2002, Boris Popov
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -29,7 +29,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: view.c,v 1.8 2001/08/22 03:33:38 bp Exp $
+ * $Id: view.c,v 1.9 2002/02/20 09:26:42 bp Exp $
*/
#include <sys/param.h>
#include <sys/errno.h>
@@ -44,6 +44,8 @@
#include <cflib.h>
+#include <sys/mchain.h>
+
#include <netsmb/smb_lib.h>
#include <netsmb/smb_conn.h>
#include <netsmb/smb_rap.h>
@@ -53,8 +55,8 @@
static char *shtype[] = {
"disk",
"printer",
- "pipe",
- "comm",
+ "comm", /* Communications device */
+ "pipe", /* IPC Inter process communication */
"unknown"
};
@@ -64,7 +66,9 @@ cmd_view(int argc, char *argv[])
struct smb_ctx sctx, *ctx = &sctx;
struct smb_share_info_1 *rpbuf, *ep;
char *cp;
+ u_int16_t type;
int error, opt, bufsize, i, entries, total;
+
if (argc < 2)
view_usage();
@@ -100,7 +104,7 @@ cmd_view(int argc, char *argv[])
}
printf("Share Type Comment\n");
printf("-------------------------------\n");
- bufsize = 65535;
+ bufsize = 0xffe0; /* samba notes win2k bug with 65535 */
rpbuf = malloc(bufsize);
error = smb_rap_NetShareEnum(ctx, 1, rpbuf, bufsize, &entries, &total);
if (error &&
@@ -109,9 +113,11 @@ cmd_view(int argc, char *argv[])
exit(1);
}
for (ep = rpbuf, i = 0; i < entries; i++, ep++) {
+ type = letohs(ep->shi1_type);
+
cp = (char*)rpbuf + ep->shi1_remark;
printf("%-12s %-10s %s\n", ep->shi1_netname,
- shtype[ep->shi1_type],
+ shtype[min(type, sizeof shtype / sizeof(char *) - 1)],
ep->shi1_remark ? nls_str_toloc(cp, cp) : "");
}
printf("\n%d shares listed from %d available\n", entries, total);