PERFORCE change 165836 for review

Tatsiana Severyna tatsianka at FreeBSD.org
Wed Jul 8 20:07:01 UTC 2009


http://perforce.freebsd.org/chv.cgi?CH=165836

Change 165836 by tatsianka at tatsianka_zonder on 2009/07/08 20:06:06

	psshfs port

Affected files ...

.. //depot/projects/soc2009/tatsianka_puffs/mount_psshfs/Makefile#2 edit
.. //depot/projects/soc2009/tatsianka_puffs/mount_psshfs/fs.c#2 edit
.. //depot/projects/soc2009/tatsianka_puffs/mount_psshfs/psbuf.c#2 edit
.. //depot/projects/soc2009/tatsianka_puffs/mount_psshfs/psshfs.c#2 edit
.. //depot/projects/soc2009/tatsianka_puffs/mount_psshfs/subr.c#2 edit
.. //depot/projects/soc2009/tatsianka_puffs/mount_psshfs/util_compat.h#1 add

Differences ...

==== //depot/projects/soc2009/tatsianka_puffs/mount_psshfs/Makefile#2 (text+ko) ====

@@ -1,9 +1,13 @@
-#	$NetBSD: Makefile,v 1.4 2009/04/22 15:23:07 lukem Exp $
-
 PROG=	mount_psshfs
-SRCS=	psshfs.c fs.c node.c psbuf.c subr.c
-LDADD+= -lpuffs -lutil
+SRCS=	psshfs.c fs.c node.c psbuf.c subr.c getmntopts.c
+LDADD+= -lpuffs
 
 MAN=	mount_psshfs.8
 
+MOUNT=	/usr/src/sbin/mount
+.PATH:  ${MOUNT}
+
+CFLAGS+= -g -I${.CURDIR}/../libpuffs -I${.CURDIR}/../puffs -I${.CURDIR}/../putter -I${MOUNT}
+LDFLAGS+= -L${.OBJDIR}/../libpuffs
+
 .include <bsd.prog.mk>

==== //depot/projects/soc2009/tatsianka_puffs/mount_psshfs/fs.c#2 (text+ko) ====

@@ -173,14 +173,18 @@
 }
 
 int
-psshfs_fs_statvfs(struct puffs_usermount *pu, struct statvfs *sbp)
+psshfs_fs_statvfs(struct puffs_usermount *pu, struct statfs *sbp)
 {
 	PSSHFSAUTOVAR(pu);
 	uint64_t tmpval;
 	uint8_t type;
 
 	memset(sbp, 0, sizeof(*sbp));
+#ifdef XXX_TS
 	sbp->f_bsize = sbp->f_frsize = sbp->f_iosize = 512;
+#else
+	sbp->f_bsize = sbp->f_iosize = 512;
+#endif
 
 	if ((pctx->extensions & SFTP_EXT_STATVFS) == 0)
 		goto out;
@@ -198,13 +202,19 @@
 	psbuf_get_8(pb, &tmpval);
 	sbp->f_bsize = tmpval;
 	psbuf_get_8(pb, &tmpval);
+#ifdef XXX_TS
 	sbp->f_frsize = tmpval;
+#endif
 	psbuf_get_8(pb, &sbp->f_blocks);
 	psbuf_get_8(pb, &sbp->f_bfree);
 	psbuf_get_8(pb, &sbp->f_bavail);
 	psbuf_get_8(pb, &sbp->f_files);
 	psbuf_get_8(pb, &sbp->f_ffree);
+#ifdef XXX_TS
 	psbuf_get_8(pb, &sbp->f_favail);
+#else
+	psbuf_get_8(pb, &tmpval);
+#endif
 
 	psbuf_get_8(pb, &tmpval); /* fsid */
 	psbuf_get_8(pb, &tmpval); /* flag */

==== //depot/projects/soc2009/tatsianka_puffs/mount_psshfs/psbuf.c#2 (text+ko) ====

@@ -37,17 +37,19 @@
  */
 
 #include <sys/types.h>
+#include <sys/endian.h>
 #include <sys/time.h>
+#include <sys/socket.h>
 #include <sys/vnode.h>
 
 #include <err.h>
 #include <errno.h>
 #include <stdlib.h>
-#include <util.h>
 #include <unistd.h>
 
 #include "psshfs.h"
 #include "sftp_proto.h"
+#include "util_compat.h"
 
 #define FAILRV(x) do { int rv; if ((rv=x)) return (rv); } while (/*CONSTCOND*/0)
 #define READSTATE_LENGTH(off) (off < 4)
@@ -58,6 +60,22 @@
 
 #define CHECK(v) if (!(v)) abort()
 
+#ifndef HTOBE16
+#if BYTE_ORDER == BIG_ENDIAN
+#define HTOBE16(x)		(void) (x)
+#define HTOBE32(x)		(void) (x)
+#define HTOBE64(x)		(void) (x)
+#else /* LITTLE_ENDIAN */
+#define HTOBE16(x)		(x) = htobe16((uint16_t)(x))
+#define HTOBE32(x)		(x) = htobe32((uint32_t)(x))
+#define HTOBE64(x)		(x) = htobe64((uint64_t)(x))
+#endif
+
+#define BE16TOH(x)		HTOBE16(x)
+#define BE32TOH(x)		HTOBE32(x)
+#define BE64TOH(x)		HTOBE64(x)
+#endif
+
 uint8_t
 psbuf_get_type(struct puffs_framebuf *pb)
 {
@@ -265,7 +283,7 @@
 		flags |= SSH_FILEXFER_ATTR_SIZE;
 	if (va->va_uid != PUFFS_VNOVAL)
 		flags |= SSH_FILEXFER_ATTR_UIDGID;
-	if (va->va_mode != PUFFS_VNOVAL)
+	if (va->va_mode != (u_short) PUFFS_VNOVAL)
 		flags |= SSH_FILEXFER_ATTR_PERMISSIONS;
 
 	if (va->va_atime.tv_sec != PUFFS_VNOVAL)
@@ -357,6 +375,7 @@
 {
 	uint32_t flags;
 	uint32_t val;
+	uint32_t tmpval; 
 
 	puffs_vattr_null(vap);
 
@@ -371,7 +390,8 @@
 		FAILRV(psbuf_get_4(pb, &vap->va_gid));
 	}
 	if (flags & SSH_FILEXFER_ATTR_PERMISSIONS) {
-		FAILRV(psbuf_get_4(pb, &vap->va_mode));
+		FAILRV(psbuf_get_4(pb, &tmpval));
+		vap->va_mode = tmpval;
 		vap->va_type = puffs_mode2vt(vap->va_mode);
 	}
 	if (flags & SSH_FILEXFER_ATTR_ACCESSTIME) {

==== //depot/projects/soc2009/tatsianka_puffs/mount_psshfs/psshfs.c#2 (text+ko) ====

@@ -46,17 +46,19 @@
 
 #include <sys/types.h>
 #include <sys/wait.h>
+#include <sys/ioctl.h>
+#include <sys/socket.h>
+#include <sys/uio.h>
 
 #include <assert.h>
 #include <err.h>
 #include <errno.h>
-#include <mntopts.h>
 #include <paths.h>
 #include <poll.h>
 #include <puffs.h>
 #include <signal.h>
 #include <stdlib.h>
-#include <util.h>
+#include <stdio.h>
 #include <unistd.h>
 
 #include "psshfs.h"
@@ -111,7 +113,6 @@
 	struct puffs_node *pn_root;
 	puffs_framev_fdnotify_fn notfn;
 	struct vattr *rva;
-	mntoptparse_t mp;
 	char **sshargs;
 	char *userhost;
 	char *hostpath;
@@ -158,10 +159,7 @@
 			add_ssharg(&sshargs, &nargs, optarg);
 			break;
 		case 'o':
-			mp = getmntopts(optarg, puffsmopts, &mntflags, &pflags);
-			if (mp == NULL)
-				err(1, "getmntopts");
-			freemntopts(mp);
+			getmntopts(optarg, puffsmopts, &mntflags, &pflags);
 			break;
 		case 'p':
 			notfn = psshfs_notify;

==== //depot/projects/soc2009/tatsianka_puffs/mount_psshfs/subr.c#2 (text+ko) ====

@@ -35,10 +35,11 @@
 #include <errno.h>
 #include <puffs.h>
 #include <stdlib.h>
-#include <util.h>
+#include <stdio.h>
 
 #include "psshfs.h"
 #include "sftp_proto.h"
+#include "util_compat.h"
 
 static void
 freedircache(struct psshfs_dir *base, size_t count)


More information about the p4-projects mailing list