- Trim an unused and bogus Makefile for mount_smbfs.

- Reconnect with some minor modifications, in particular now selsocket()
internals are adapted to use sbintime units after recent'ish calloutng
switch.
This commit is contained in:
Davide Italiano 2013-06-28 21:00:08 +00:00
parent bbc6d2c1af
commit 237abf0c56
41 changed files with 142 additions and 32 deletions

View File

@ -1,18 +0,0 @@
# $Id: Makefile,v 1.7 2001/04/16 04:34:26 bp Exp $
PROG= mount_smbfs
SRCS= mount_smbfs.c getmntopts.c
MAN8= mount_smbfs.8
BINDIR= /sbin
#NOSHARED=yes
MOUNT= ${.CURDIR}/../mount
CFLAGS+= -DSMBFS -I${MOUNT}
.PATH: ${MOUNT}
LDADD+= -lsmb
DPADD+= ${LIBSMB}
.include <bsd.prog.mk>

View File

@ -88,7 +88,7 @@ fsck_y_enable="NO" # Set to YES to do fsck -y if the initial preen fails.
fsck_y_flags="" # Additional flags for fsck -y
background_fsck="YES" # Attempt to run fsck in the background where possible.
background_fsck_delay="60" # Time to wait (seconds) before starting the fsck.
netfs_types="nfs:NFS oldnfs:OLDNFS" # Net filesystems.
netfs_types="nfs:NFS oldnfs:OLDNFS smbfs:SMB" # Net filesystems.
extra_netfs_types="NO" # List of network extra filesystem types for delayed
# mount at startup (or NO).

View File

@ -176,6 +176,8 @@
..
procfs
..
smbfs
..
udf
..
unionfs

View File

@ -309,6 +309,10 @@
srcs
..
..
smbfs
print
..
..
sunrpc
dir
..

View File

@ -37,7 +37,7 @@ LHDRS= aio.h errno.h fcntl.h linker_set.h poll.h stdatomic.h stdint.h \
syslog.h ucontext.h
LDIRS= bsm cam geom net net80211 netatalk netgraph netinet netinet6 \
netipsec ${_netipx} netnatm \
netipsec ${_netipx} netnatm netsmb \
nfs nfsclient nfsserver \
sys vm
@ -48,7 +48,7 @@ LSUBDIRS= cam/ata cam/scsi \
dev/ofw dev/pbio dev/pci ${_dev_powermac_nvram} dev/ppbus dev/smbus \
dev/speaker dev/usb dev/utopia dev/vkbd dev/wi \
fs/devfs fs/fdescfs fs/msdosfs fs/nandfs fs/nfs fs/nullfs \
fs/procfs fs/udf fs/unionfs \
fs/procfs fs/smbfs fs/udf fs/unionfs \
geom/cache geom/concat geom/eli geom/gate geom/journal geom/label \
geom/mirror geom/mountver geom/multipath geom/nop \
geom/raid geom/raid3 geom/shsec geom/stripe geom/virstor \
@ -80,6 +80,7 @@ INCS+= iconv.h
LSUBSUBDIRS+= netgraph/bluetooth/include
.endif
# XXX unconditionally needed by <netsmb/netbios.h>
#.if ${MK_IPX} != "no"
_netipx= netipx
#.endif

View File

@ -102,6 +102,7 @@ SUBDIR= ${SUBDIR_ORDERED} \
${_librtld_db} \
${_libsdp} \
${_libsm} \
${_libsmb} \
${_libsmdb} \
${_libsmutil} \
libstand \
@ -205,6 +206,7 @@ _libypclnt= libypclnt
.endif
.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
_libsmb= libsmb
_libvgl= libvgl
_libproc= libproc
_librtld_db= librtld_db
@ -216,6 +218,7 @@ _libvmmapi= libvmmapi
.if ${MACHINE_CPUARCH} == "ia64"
_libefi= libefi
_libsmb= libsmb
.endif
.if ${MACHINE_CPUARCH} == "mips"
@ -226,6 +229,11 @@ _librtld_db= librtld_db
.if ${MACHINE_CPUARCH} == "powerpc"
_libproc= libproc
_librtld_db= librtld_db
_libsmb= libsmb
.endif
.if ${MACHINE_CPUARCH} == "sparc64"
_libsmb= libsmb
.endif
.if ${MK_OPENSSL} != "no"

View File

@ -9,6 +9,7 @@ SRCS= cd9660.c \
core.c \
libprocstat.c \
msdosfs.c \
smbfs.c \
udf.c
VERSION_DEF= ${.CURDIR}/Versions.def

View File

@ -41,6 +41,7 @@ int devfs_filestat(kvm_t *kd, struct vnode *vp, struct vnstat *vn);
int isofs_filestat(kvm_t *kd, struct vnode *vp, struct vnstat *vn);
int msdosfs_filestat(kvm_t *kd, struct vnode *vp, struct vnstat *vn);
int nfs_filestat(kvm_t *kd, struct vnode *vp, struct vnstat *vn);
int smbfs_filestat(kvm_t *kd, struct vnode *vp, struct vnstat *vn);
int udf_filestat(kvm_t *kd, struct vnode *vp, struct vnstat *vn);
int ufs_filestat(kvm_t *kd, struct vnode *vp, struct vnstat *vn);
int zfs_filestat(kvm_t *kd, struct vnode *vp, struct vnstat *vn);

View File

@ -1220,6 +1220,7 @@ procstat_get_vnode_info_kvm(kvm_t *kd, struct filestat *fst,
FSTYPE(isofs),
FSTYPE(msdosfs),
FSTYPE(nfs),
FSTYPE(smbfs),
FSTYPE(udf),
FSTYPE(ufs),
#ifdef LIBPROCSTAT_ZFS

View File

@ -130,6 +130,8 @@ CRUNCH_LIBS+= -lgeom -lbsdxml -lkiconv -lmd -lsbuf -lufs -lz
.if ${MACHINE_CPUARCH} == "i386"
CRUNCH_PROGS_sbin+= bsdlabel sconfig fdisk
CRUNCH_ALIAS_bsdlabel= disklabel
#CRUNCH_PROGS+= mount_smbfs
#CRUNCH_LIBS+= -lsmb
.endif
.if ${MACHINE} == "pc98"

View File

@ -450,6 +450,7 @@ However, for the following file system types:
.Cm nfs ,
.Cm nullfs ,
.Cm oldnfs ,
.Cm smbfs ,
.Cm udf ,
and
.Cm unionfs .
@ -544,6 +545,7 @@ support for a particular file system might be provided either on a static
.Xr mount_msdosfs 8 ,
.Xr mount_nfs 8 ,
.Xr mount_nullfs 8 ,
.Xr mount_smbfs 8 ,
.Xr mount_udf 8 ,
.Xr mount_unionfs 8 ,
.Xr umount 8 ,

View File

@ -143,7 +143,7 @@ use_mountprog(const char *vfstype)
unsigned int i;
const char *fs[] = {
"cd9660", "mfs", "msdosfs", "nfs",
"nullfs", "oldnfs", "udf", "unionfs",
"nullfs", "oldnfs", "smbfs", "udf", "unionfs",
NULL
};

View File

@ -240,6 +240,7 @@ etc-examples:
.endif
.if ${SHARED} != "symlinks"
SUBDIR= smbfs
.if ${MK_ATF} != "no"
SUBDIR+=atf
.endif

View File

@ -40,6 +40,7 @@ netstart - network startup script run from /etc/rc
network.subr - routines for network configuration scripts
networks - see networks(5)
newsyslog.conf - configuration for system log file rotator newsyslog(8)
nsmb.conf - smbfs lookups configuration file
opieaccess - OPIE database of trusted networks
pf.conf - pf(4) example configuration file
pf.os - SYN fingerprint database

View File

@ -149,6 +149,7 @@ LIBRT?= ${DESTDIR}${LIBDIR}/librt.a
LIBRTLD_DB?= ${DESTDIR}${LIBDIR}/librtld_db.a
LIBSBUF?= ${DESTDIR}${LIBDIR}/libsbuf.a
LIBSDP?= ${DESTDIR}${LIBDIR}/libsdp.a
LIBSMB?= ${DESTDIR}${LIBDIR}/libsmb.a
LIBSSH?= ${DESTDIR}${LIBDIR}/libssh.a
LIBSSL?= ${DESTDIR}${LIBDIR}/libssl.a
LIBSTAND?= ${DESTDIR}${LIBDIR}/libstand.a

View File

@ -602,6 +602,12 @@ options IPX #IPX/SPX communications protocols
options NETATALK #Appletalk communications protocols
options NETATALKDEBUG #Appletalk debugging
#
# SMB/CIFS requester
# NETSMB enables support for SMB protocol, it requires LIBMCHAIN and LIBICONV
# options.
options NETSMB #SMB/CIFS requester
# mchain library. It can be either loaded as KLD or compiled into kernel
options LIBMCHAIN
@ -1038,6 +1044,7 @@ options NULLFS #NULL filesystem
options PROCFS #Process filesystem (requires PSEUDOFS)
options PSEUDOFS #Pseudo-filesystem framework
options PSEUDOFS_TRACE #Debugging support for PSEUDOFS
options SMBFS #SMB/CIFS filesystem
options TMPFS #Efficient memory filesystem
options UDF #Universal Disk Format
options UNIONFS #Union filesystem

View File

@ -536,8 +536,8 @@ crypto/blowfish/bf_ecb.c optional ipsec
crypto/blowfish/bf_skey.c optional crypto | ipsec
crypto/camellia/camellia.c optional crypto | ipsec
crypto/camellia/camellia-api.c optional crypto | ipsec
crypto/des/des_ecb.c optional crypto | ipsec
crypto/des/des_setkey.c optional crypto | ipsec
crypto/des/des_ecb.c optional crypto | ipsec | netsmb
crypto/des/des_setkey.c optional crypto | ipsec | netsmb
crypto/rc4/rc4.c optional netgraph_mppc_encryption | kgssapi
crypto/rijndael/rijndael-alg-fst.c optional crypto | geom_bde | \
ipsec | random | wlan_ccmp
@ -2509,6 +2509,12 @@ fs/pseudofs/pseudofs.c optional pseudofs
fs/pseudofs/pseudofs_fileno.c optional pseudofs
fs/pseudofs/pseudofs_vncache.c optional pseudofs
fs/pseudofs/pseudofs_vnops.c optional pseudofs
fs/smbfs/smbfs_io.c optional smbfs
fs/smbfs/smbfs_node.c optional smbfs
fs/smbfs/smbfs_smb.c optional smbfs
fs/smbfs/smbfs_subr.c optional smbfs
fs/smbfs/smbfs_vfsops.c optional smbfs
fs/smbfs/smbfs_vnops.c optional smbfs
fs/udf/osta.c optional udf
fs/udf/udf_iconv.c optional udf_iconv
fs/udf/udf_vfsops.c optional udf
@ -2746,6 +2752,7 @@ kern/kern_uuid.c standard
kern/kern_xxx.c standard
kern/link_elf.c standard
kern/linker_if.m standard
kern/md4c.c optional netsmb
kern/md5c.c standard
kern/p1003_1b.c standard
kern/posix4_mib.c standard
@ -3279,6 +3286,15 @@ netpfil/pf/pf_osfp.c optional pf inet
netpfil/pf/pf_ruleset.c optional pf inet
netpfil/pf/pf_table.c optional pf inet
netpfil/pf/in4_cksum.c optional pf inet
netsmb/smb_conn.c optional netsmb
netsmb/smb_crypt.c optional netsmb
netsmb/smb_dev.c optional netsmb
netsmb/smb_iod.c optional netsmb
netsmb/smb_rq.c optional netsmb
netsmb/smb_smb.c optional netsmb
netsmb/smb_subr.c optional netsmb
netsmb/smb_trantcp.c optional netsmb
netsmb/smb_usr.c optional netsmb
nfs/bootp_subr.c optional bootp nfsclient | bootp nfscl
nfs/krpc_subr.c optional bootp nfsclient | bootp nfscl
nfs/nfs_common.c optional nfsclient | nfsserver

View File

@ -136,7 +136,7 @@ crypto/aesni/aeskeys_amd64.S optional aesni
crypto/aesni/aesni.c optional aesni
crypto/aesni/aesni_wrap.c optional aesni
crypto/blowfish/bf_enc.c optional crypto | ipsec
crypto/des/des_enc.c optional crypto | ipsec
crypto/des/des_enc.c optional crypto | ipsec | netsmb
crypto/via/padlock.c optional padlock
crypto/via/padlock_cipher.c optional padlock
crypto/via/padlock_hash.c optional padlock

View File

@ -61,7 +61,7 @@ board_id.h standard \
clean "board_id.h"
cddl/compat/opensolaris/kern/opensolaris_atomic.c optional zfs compile-with "${ZFS_C}"
crypto/blowfish/bf_enc.c optional crypto | ipsec
crypto/des/des_enc.c optional crypto | ipsec
crypto/des/des_enc.c optional crypto | ipsec | netsmb
dev/fb/fb.c optional sc
dev/hwpmc/hwpmc_arm.c optional hwpmc
dev/kbd/kbd.c optional sc

View File

@ -122,7 +122,7 @@ crypto/aesni/aesencdec_i386.S optional aesni
crypto/aesni/aeskeys_i386.S optional aesni
crypto/aesni/aesni.c optional aesni
crypto/aesni/aesni_wrap.c optional aesni
crypto/des/arch/i386/des_enc.S optional crypto | ipsec
crypto/des/arch/i386/des_enc.S optional crypto | ipsec | netsmb
crypto/via/padlock.c optional padlock
crypto/via/padlock_cipher.c optional padlock
crypto/via/padlock_hash.c optional padlock

View File

@ -41,7 +41,7 @@ contrib/ia64/libuwx/src/uwx_trace.c standard
contrib/ia64/libuwx/src/uwx_uinfo.c standard
contrib/ia64/libuwx/src/uwx_utable.c standard
crypto/blowfish/bf_enc.c optional crypto | ipsec
crypto/des/des_enc.c optional crypto | ipsec
crypto/des/des_enc.c optional crypto | ipsec | netsmb
dev/atkbdc/atkbd.c optional atkbd atkbdc
dev/atkbdc/atkbd_atkbdc.c optional atkbd atkbdc
dev/atkbdc/atkbdc.c optional atkbdc

View File

@ -77,7 +77,7 @@ dev/uart/uart_cpu_fdt.c optional uart fdt
# crypto support -- use generic
crypto/blowfish/bf_enc.c optional crypto | ipsec
crypto/des/des_enc.c optional crypto | ipsec
crypto/des/des_enc.c optional crypto | ipsec | netsmb
# AP common nvram interface MIPS specific, but maybe should be more generic
dev/nvram2env/nvram2env.c optional nvram2env

View File

@ -77,7 +77,7 @@ bf_enc.o optional crypto | ipsec \
dependency "$S/crypto/blowfish/arch/i386/bf_enc.S $S/crypto/blowfish/arch/i386/bf_enc_586.S $S/crypto/blowfish/arch/i386/bf_enc_686.S" \
compile-with "${CC} -c -I$S/crypto/blowfish/arch/i386 ${ASM_CFLAGS} ${WERROR} ${.IMPSRC}" \
no-implicit-rule
crypto/des/arch/i386/des_enc.S optional crypto | ipsec
crypto/des/arch/i386/des_enc.S optional crypto | ipsec | netsmb
dev/agp/agp_ali.c optional agp
dev/agp/agp_amd.c optional agp
dev/agp/agp_i810.c optional agp

View File

@ -18,7 +18,7 @@ font.h optional sc \
cddl/compat/opensolaris/kern/opensolaris_atomic.c optional zfs powerpc compile-with "${ZFS_C}"
cddl/contrib/opensolaris/common/atomic/powerpc64/opensolaris_atomic.S optional zfs powerpc64 compile-with "${ZFS_S}"
crypto/blowfish/bf_enc.c optional crypto | ipsec
crypto/des/des_enc.c optional crypto | ipsec
crypto/des/des_enc.c optional crypto | ipsec | netsmb
dev/bm/if_bm.c optional bm powermac
dev/adb/adb_bus.c optional adb
dev/adb/adb_kbd.c optional adb

View File

@ -24,7 +24,7 @@ ukbdmap.h optional ukbd_dflt_keymap \
#
cddl/contrib/opensolaris/common/atomic/sparc64/opensolaris_atomic.S optional zfs compile-with "${ZFS_S}"
crypto/blowfish/bf_enc.c optional crypto | ipsec
crypto/des/des_enc.c optional crypto | ipsec
crypto/des/des_enc.c optional crypto | ipsec | netsmb
dev/atkbdc/atkbd.c optional atkbd atkbdc
dev/atkbdc/atkbd_atkbdc.c optional atkbd atkbdc
dev/atkbdc/atkbdc.c optional atkbdc

View File

@ -222,6 +222,7 @@ NULLFS opt_dontuse.h
PROCFS opt_dontuse.h
PSEUDOFS opt_dontuse.h
REISERFS opt_dontuse.h
SMBFS opt_dontuse.h
TMPFS opt_dontuse.h
UDF opt_dontuse.h
UNIONFS opt_dontuse.h
@ -287,6 +288,9 @@ UFS_GJOURNAL opt_ufs.h
# they won't make any difference yet).
NFS_ROOT opt_nfsroot.h
# SMB/CIFS requester
NETSMB opt_netsmb.h
# Options used only in subr_param.c.
HZ opt_param.h
MAXFILES opt_param.h

View File

@ -30,6 +30,7 @@ COMM= ${SYS}/dev/advansys/*.[ch] \
${SYS}/fs/msdosfs/*.[ch] \
${SYS}/fs/nullfs/*.[ch] \
${SYS}/fs/procfs/*.[ch] \
${SYS}/fs/smbfs/*.[ch] \
${SYS}/fs/udf/*.[ch] \
${SYS}/fs/unionfs/*.[ch] \
${SYS}/geom/*.[ch] \

View File

@ -1497,6 +1497,61 @@ sys_openbsd_poll(td, uap)
return (sys_poll(td, (struct poll_args *)uap));
}
/*
* XXX This was created specifically to support netncp and netsmb. This
* allows the caller to specify a socket to wait for events on. It returns
* 0 if any events matched and an error otherwise. There is no way to
* determine which events fired.
*/
int
selsocket(struct socket *so, int events, struct timeval *tvp, struct thread *td)
{
struct timeval rtv;
sbintime_t asbt, precision, rsbt;
int error;
if (tvp != NULL) {
rtv = *tvp;
if (rtv.tv_sec < 0 || rtv.tv_usec < 0 ||
rtv.tv_usec >= 1000000)
return (EINVAL);
if (!timevalisset(&rtv))
asbt = 0;
else if (rtv.tv_sec <= INT32_MAX) {
rsbt = tvtosbt(rtv);
precision = rsbt;
precision >>= tc_precexp;
if (TIMESEL(&asbt, rsbt))
asbt += tc_tick_sbt;
if (asbt <= INT64_MAX - rsbt)
asbt += rsbt;
else
asbt = -1;
} else
asbt = -1;
} else
asbt = -1;
seltdinit(td);
/*
* Iterate until the timeout expires or the socket becomes ready.
*/
for (;;) {
selfdalloc(td, NULL);
error = sopoll(so, events, NULL, td);
/* error here is actually the ready events. */
if (error)
return (0);
error = seltdwait(td, asbt, precision);
if (error)
break;
}
seltdclear(td);
/* XXX Duplicates ncp/smb behavior. */
if (error == ERESTART)
error = 0;
return (error);
}
/*
* Preallocate two selfds associated with 'cookie'. Some fo_poll routines
* have two select sets, one for read and another for write.

View File

@ -301,6 +301,7 @@ SUBDIR= \
siis \
sis \
sk \
${_smbfs} \
${_sn} \
${_snc} \
snp \
@ -520,6 +521,7 @@ _rdma= rdma
_safe= safe
_sbni= sbni
_scsi_low= scsi_low
_smbfs= smbfs
_sound= sound
_speaker= speaker
_splash= splash
@ -722,6 +724,7 @@ _s3= s3
_safe= safe
_scsi_low= scsi_low
_sfxge= sfxge
_smbfs= smbfs
_sound= sound
_speaker= speaker
_splash= splash
@ -779,6 +782,7 @@ _ips= ips
_mly= mly
_pccard= pccard
_scsi_low= scsi_low
_smbfs= smbfs
_sound= sound
_splash= splash
_sppp= sppp
@ -801,6 +805,7 @@ _drm= drm
_exca= exca
_nvram= powermac_nvram
_pccard= pccard
_smbfs= smbfs
_sound= sound
_cyclic= cyclic
_dtrace= dtrace
@ -827,6 +832,7 @@ _igb= igb
.if ${MK_CDDL} != "no" || defined(ALL_MODULES)
_opensolaris= opensolaris
.endif
_smbfs= smbfs
_sound= sound
.if ${MK_ZFS} != "no" || defined(ALL_MODULES)
_zfs= zfs

View File

@ -371,6 +371,8 @@ void soupcall_clear(struct socket *so, int which);
void soupcall_set(struct socket *so, int which,
int (*func)(struct socket *, void *, int), void *arg);
void sowakeup(struct socket *so, struct sockbuf *sb);
int selsocket(struct socket *so, int events, struct timeval *tv,
struct thread *td);
/*
* Accept filter functions (duh).

View File

@ -1,2 +1,3 @@
# $FreeBSD$
SUBDIR+= smbutil

View File

@ -1,2 +1,3 @@
# $FreeBSD$
SUBDIR+= smbutil

View File

@ -1,2 +1,3 @@
# $FreeBSD$
SUBDIR+= smbutil

View File

@ -1,2 +1,3 @@
# $FreeBSD$
SUBDIR+= smbutil

View File

@ -1,2 +1,3 @@
# $FreeBSD$
SUBDIR+= smbutil

View File

@ -1482,6 +1482,8 @@ ktrsockaddr(struct sockaddr *sa)
TODO: Support additional address families
#include <netnatm/natm.h>
struct sockaddr_natm *natm;
#include <netsmb/netbios.h>
struct sockaddr_nb *nb;
*/
char addr[64];

View File

@ -20,6 +20,7 @@ SUBDIR+= btxld
SUBDIR+= cpucontrol
SUBDIR+= kgmon
SUBDIR+= lptcontrol
SUBDIR+= mount_smbfs
SUBDIR+= mptable
.if ${MK_NDIS} != "no"
SUBDIR+= ndiscvt

View File

@ -12,6 +12,7 @@ SUBDIR+= cpucontrol
SUBDIR+= kgmon
SUBDIR+= kgzip
SUBDIR+= lptcontrol
SUBDIR+= mount_smbfs
SUBDIR+= mptable
.if ${MK_NDIS} != "no"
SUBDIR+= ndiscvt

View File

@ -4,5 +4,6 @@
SUBDIR+= acpi
.endif
SUBDIR+= kgmon
SUBDIR+= mount_smbfs
SUBDIR:= ${SUBDIR:Nuathload}
SUBDIR+= zzz

View File

@ -1,4 +1,5 @@
# $FreeBSD$
SUBDIR+= mount_smbfs
SUBDIR+= nvram
SUBDIR+= ofwdump

View File

@ -1,4 +1,5 @@
# $FreeBSD$
SUBDIR+= eeprom
SUBDIR+= mount_smbfs
SUBDIR+= ofwdump