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