diff options
author | obrien <obrien@FreeBSD.org> | 1999-09-15 02:50:52 +0000 |
---|---|---|
committer | obrien <obrien@FreeBSD.org> | 1999-09-15 02:50:52 +0000 |
commit | 422815db966fe7dc38dfc5df2be5e83d5ea9f48c (patch) | |
tree | babaa2d3f02bbec865446438f974c81f18ae2607 /contrib/amd/libamu/mount_fs.c | |
parent | c9384f1d982e4695904ef82271714a049cd32827 (diff) | |
download | FreeBSD-src-422815db966fe7dc38dfc5df2be5e83d5ea9f48c.zip FreeBSD-src-422815db966fe7dc38dfc5df2be5e83d5ea9f48c.tar.gz |
Virgin import of AMD (am-utils) v6.0.1
Diffstat (limited to 'contrib/amd/libamu/mount_fs.c')
-rw-r--r-- | contrib/amd/libamu/mount_fs.c | 51 |
1 files changed, 42 insertions, 9 deletions
diff --git a/contrib/amd/libamu/mount_fs.c b/contrib/amd/libamu/mount_fs.c index 49e6c2d..3556f8e 100644 --- a/contrib/amd/libamu/mount_fs.c +++ b/contrib/amd/libamu/mount_fs.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997-1998 Erez Zadok + * Copyright (c) 1997-1999 Erez Zadok * Copyright (c) 1990 Jan-Simon Pendry * Copyright (c) 1990 Imperial College of Science, Technology & Medicine * Copyright (c) 1990 The Regents of the University of California. @@ -38,7 +38,7 @@ * * %W% (Berkeley) %G% * - * $Id: mount_fs.c,v 1.1.1.1 1998/11/05 02:04:45 ezk Exp $ + * $Id: mount_fs.c,v 1.7 1999/08/22 21:12:33 ezk Exp $ * */ @@ -109,6 +109,7 @@ struct opt_tab mnt_flags[] = }; +/* compute generic mount flags */ int compute_mount_flags(mntent_t *mntp) { @@ -146,6 +147,20 @@ compute_mount_flags(mntent_t *mntp) } +/* compute generic mount flags for automounter mounts */ +int +compute_automounter_mount_flags(mntent_t *mntp) +{ + int flags = 0; + +#ifdef MNT2_GEN_OPT_IGNORE + flags |= MNT2_GEN_OPT_IGNORE; +#endif /* not MNT2_GEN_OPT_IGNORE */ + + return flags; +} + + int mount_fs(mntent_t *mnt, int flags, caddr_t mnt_data, int retry, MTYPE_TYPE type, u_long nfs_version, const char *nfs_proto, const char *mnttabname) { @@ -528,12 +543,16 @@ compute_nfs_args(nfs_args_t *nap, mntent_t *mntp, int genflags, struct sockaddr_ * conf/nfs_prot/nfs_prot_*.h files. */ # ifdef USE_UNCONNECTED_NFS_SOCKETS - nap->flags |= MNT2_NFS_OPT_NOCONN; - plog(XLOG_WARNING, "noconn option exists, and was turned ON! (May cause NFS hangs on some systems...)"); + if (!(nap->flags & MNT2_NFS_OPT_NOCONN)) { + nap->flags |= MNT2_NFS_OPT_NOCONN; + plog(XLOG_WARNING, "noconn option not specified, and was just turned ON (OS override)! (May cause NFS hangs on some systems...)"); + } # endif /* USE_UNCONNECTED_NFS_SOCKETS */ # ifdef USE_CONNECTED_NFS_SOCKETS - nap->flags &= ~MNT2_NFS_OPT_NOCONN; - plog(XLOG_WARNING, "noconn option exists, and was turned OFF! (May cause NFS hangs on some systems...)"); + if (nap->flags & MNT2_NFS_OPT_NOCONN) { + nap->flags &= ~MNT2_NFS_OPT_NOCONN; + plog(XLOG_WARNING, "noconn option specified, and was just turned OFF (OS override)! (May cause NFS hangs on some systems...)"); + } # endif /* USE_CONNECTED_NFS_SOCKETS */ } #endif /* MNT2_NFS_OPT_NOCONN */ @@ -750,6 +769,13 @@ compute_automounter_nfs_args(nfs_args_t *nap, mntent_t *mntp) nap->flags |= MNT2_NFS_OPT_ACDIRMIN | MNT2_NFS_OPT_ACDIRMAX; # endif /* defined(MNT2_NFS_OPT_ACDIRMIN) && defined(MNT2_NFS_OPT_ACDIRMAX) */ #endif /* not MNT2_NFS_OPT_NOAC */ + /* + * Provide a slight bit more security by requiring the kernel to use + * reserved ports. + */ +#ifdef MNT2_NFS_OPT_RESVPORT + nap->flags |= MNT2_NFS_OPT_RESVPORT; +#endif /* MNT2_NFS_OPT_RESVPORT */ } @@ -812,7 +838,7 @@ print_nfs_args(const nfs_args_t *nap, u_long nfs_version) nbp = nap->syncaddr; plog(XLOG_DEBUG, "NA->syncaddr {netbuf} 0x%x", (int) nbp); kncp = nap->knconf; - plog(XLOG_DEBUG, "NA->knconf->semantics %lu", kncp->knc_semantics); + plog(XLOG_DEBUG, "NA->knconf->semantics %lu", (unsigned long) kncp->knc_semantics); plog(XLOG_DEBUG, "NA->knconf->protofmly \"%s\"", kncp->knc_protofmly); plog(XLOG_DEBUG, "NA->knconf->proto \"%s\"", kncp->knc_proto); plog(XLOG_DEBUG, "NA->knconf->rdev %lu", kncp->knc_rdev); @@ -820,9 +846,9 @@ print_nfs_args(const nfs_args_t *nap, u_long nfs_version) #else /* not HAVE_TRANSPORT_TYPE_TLI */ sap = (struct sockaddr_in *) &nap->addr; plog(XLOG_DEBUG, "NA->addr {sockaddr_in} (len=%d) = \"%s\"", - sizeof(struct sockaddr_in), + (int) sizeof(struct sockaddr_in), get_hex_string(sizeof(struct sockaddr_in), (const char *)sap)); -#ifdef HAVE_FIELD_STRUCT_SOCKADDR_SA_LEN_off +#ifdef HAVE_FIELD_STRUCT_SOCKADDR_SA_LEN plog(XLOG_DEBUG, "NA->addr.sin_len = \"%d\"", sap->sin_len); #endif /* HAVE_FIELD_STRUCT_SOCKADDR_SA_LEN */ plog(XLOG_DEBUG, "NA->addr.sin_family = \"%d\"", sap->sin_family); @@ -832,6 +858,10 @@ print_nfs_args(const nfs_args_t *nap, u_long nfs_version) #endif /* not HAVE_TRANSPORT_TYPE_TLI */ plog(XLOG_DEBUG, "NA->hostname = \"%s\"", nap->hostname ? nap->hostname : "null"); +#ifdef HAVE_FIELD_NFS_ARGS_T_NAMLEN + plog(XLOG_DEBUG, "NA->namlen = %d", nap->namlen); +#endif /* HAVE_FIELD_NFS_ARGS_T_NAMLEN */ + #ifdef MNT2_NFS_OPT_FSNAME plog(XLOG_DEBUG, "NA->fsname = \"%s\"", nap->fsname ? nap->fsname : "null"); #endif /* MNT2_NFS_OPT_FSNAME */ @@ -868,6 +898,9 @@ print_nfs_args(const nfs_args_t *nap, u_long nfs_version) plog(XLOG_DEBUG, "NA->rsize = %d", nap->rsize); plog(XLOG_DEBUG, "NA->wsize = %d", nap->wsize); +#ifdef HAVE_FIELD_NFS_ARGS_T_BSIZE + plog(XLOG_DEBUG, "NA->bsize = %d", nap->bsize); +#endif /* HAVE_FIELD_NFS_ARGS_T_BSIZE */ plog(XLOG_DEBUG, "NA->timeo = %d", nap->timeo); plog(XLOG_DEBUG, "NA->retrans = %d", nap->retrans); |