Module Name:    src
Committed By:   manu
Date:           Mon Oct 11 05:37:59 UTC 2010

Modified Files:
        src/lib/libperfuse: ops.c perfuse.c perfuse_if.h perfuse_priv.h subr.c
        src/usr.sbin/perfused: msg.c perfused.c

Log Message:
Remove code supporting SOCK_STREAM, as SOCK_DGRAM works fine


To generate a diff of this commit:
cvs rdiff -u -r1.22 -r1.23 src/lib/libperfuse/ops.c
cvs rdiff -u -r1.10 -r1.11 src/lib/libperfuse/perfuse.c
cvs rdiff -u -r1.9 -r1.10 src/lib/libperfuse/perfuse_if.h \
    src/lib/libperfuse/subr.c
cvs rdiff -u -r1.15 -r1.16 src/lib/libperfuse/perfuse_priv.h
cvs rdiff -u -r1.8 -r1.9 src/usr.sbin/perfused/msg.c
cvs rdiff -u -r1.10 -r1.11 src/usr.sbin/perfused/perfused.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libperfuse/ops.c
diff -u src/lib/libperfuse/ops.c:1.22 src/lib/libperfuse/ops.c:1.23
--- src/lib/libperfuse/ops.c:1.22	Mon Oct 11 01:52:05 2010
+++ src/lib/libperfuse/ops.c	Mon Oct 11 05:37:58 2010
@@ -1,4 +1,4 @@
-/*  $NetBSD: ops.c,v 1.22 2010/10/11 01:52:05 manu Exp $ */
+/*  $NetBSD: ops.c,v 1.23 2010/10/11 05:37:58 manu Exp $ */
 
 /*-
  *  Copyright (c) 2010 Emmanuel Dreyfus. All rights reserved.

Index: src/lib/libperfuse/perfuse.c
diff -u src/lib/libperfuse/perfuse.c:1.10 src/lib/libperfuse/perfuse.c:1.11
--- src/lib/libperfuse/perfuse.c:1.10	Sun Oct  3 05:46:47 2010
+++ src/lib/libperfuse/perfuse.c	Mon Oct 11 05:37:58 2010
@@ -1,4 +1,4 @@
-/*  $NetBSD: perfuse.c,v 1.10 2010/10/03 05:46:47 manu Exp $ */
+/*  $NetBSD: perfuse.c,v 1.11 2010/10/11 05:37:58 manu Exp $ */
 
 /*-
  *  Copyright (c) 2010 Emmanuel Dreyfus. All rights reserved.
@@ -115,7 +115,7 @@
 	if (strcmp(path, _PATH_FUSE) != 0)
 		return open(path, flags, mode);
 
-	if ((sv[0] = socket(PF_LOCAL, PERFUSE_SOCKTYPE, 0)) == -1) {
+	if ((sv[0] = socket(PF_LOCAL, SOCK_DGRAM, 0)) == -1) {
 #ifdef PERFUSE_DEBUG
 		DWARN("%s:%d socket failed: %s", __func__, __LINE__);
 #endif
@@ -149,7 +149,7 @@
 	 * we will talk using a socketpair 
 	 * instead of /dev/fuse.
 	 */
-	if (socketpair(PF_LOCAL, PERFUSE_SOCKTYPE, 0, sv) != 0) {
+	if (socketpair(PF_LOCAL, SOCK_DGRAM, 0, sv) != 0) {
 		DWARN("%s:%d: socketpair failed", __func__, __LINE__);
 		return -1;
 	}
@@ -218,12 +218,10 @@
 	int s;
 	size_t len;
 	struct perfuse_mount_out *pmo;
-#if (PERFUSE_SOCKTYPE == SOCK_DGRAM)
 	struct sockaddr_storage ss;
 	struct sockaddr_un *sun;
 	struct sockaddr *sa;
 	socklen_t sa_len;
-#endif
 	size_t sock_len;
 	char *frame;
 	char *cp;
@@ -244,7 +242,6 @@
 	 * XXX This socket is not removed at exit time yet
 	 */
 	sock_len = 0;
-#if (PERFUSE_SOCKTYPE == SOCK_DGRAM)
 	sa = (struct sockaddr *)(void *)&ss;
 	sun = (struct sockaddr_un *)(void *)&ss;
 	sa_len = sizeof(ss);
@@ -263,7 +260,6 @@
 
 		sock_len = strlen(sun->sun_path) + 1;
 	}
-#endif /* PERFUSE_SOCKTYPE */
 		
 	len = sizeof(*pmo);
 	len += source ? (uint32_t)strlen(source) + 1 : 0;

Index: src/lib/libperfuse/perfuse_if.h
diff -u src/lib/libperfuse/perfuse_if.h:1.9 src/lib/libperfuse/perfuse_if.h:1.10
--- src/lib/libperfuse/perfuse_if.h:1.9	Thu Sep 23 16:02:34 2010
+++ src/lib/libperfuse/perfuse_if.h	Mon Oct 11 05:37:58 2010
@@ -1,4 +1,4 @@
-/*  $NetBSD: perfuse_if.h,v 1.9 2010/09/23 16:02:34 manu Exp $ */
+/*  $NetBSD: perfuse_if.h,v 1.10 2010/10/11 05:37:58 manu Exp $ */
 
 /*-
  *  Copyright (c) 2010 Emmanuel Dreyfus. All rights reserved.
@@ -36,7 +36,6 @@
 #define PERFUSE_MOUNT_MAGIC "noFuseRq"
 #define PERFUSE_UNKNOWN_INO 0xffffffff
 
-#define PERFUSE_SOCKTYPE SOCK_DGRAM
 /* 
  * Diagnostic flags. This global is used only for DPRINTF/DERR/DWARN
  */
Index: src/lib/libperfuse/subr.c
diff -u src/lib/libperfuse/subr.c:1.9 src/lib/libperfuse/subr.c:1.10
--- src/lib/libperfuse/subr.c:1.9	Mon Oct 11 01:08:26 2010
+++ src/lib/libperfuse/subr.c	Mon Oct 11 05:37:58 2010
@@ -1,4 +1,4 @@
-/*  $NetBSD: subr.c,v 1.9 2010/10/11 01:08:26 manu Exp $ */
+/*  $NetBSD: subr.c,v 1.10 2010/10/11 05:37:58 manu Exp $ */
 
 /*-
  *  Copyright (c) 2010 Emmanuel Dreyfus. All rights reserved.
@@ -44,12 +44,9 @@
 	const char *name;
 	struct puffs_node *parent;
 {
-	struct perfuse_state *ps;
 	struct puffs_node *pn;
 	struct perfuse_node_data *pnd;
 
-	ps = puffs_getspecific(pu);
-
 	if ((pnd = malloc(sizeof(*pnd))) == NULL)
 		DERR(EX_OSERR, "malloc failed");
 
@@ -84,10 +81,8 @@
 	struct puffs_usermount *pu;
 	struct puffs_node *pn;
 {
-	struct perfuse_state *ps;
 	struct perfuse_node_data *pnd;
 
-	ps = puffs_getspecific(pu);
 	pnd = PERFUSE_NODE_DATA(pn);
 
 	if (pnd->pnd_parent != NULL) {

Index: src/lib/libperfuse/perfuse_priv.h
diff -u src/lib/libperfuse/perfuse_priv.h:1.15 src/lib/libperfuse/perfuse_priv.h:1.16
--- src/lib/libperfuse/perfuse_priv.h:1.15	Mon Oct 11 01:08:26 2010
+++ src/lib/libperfuse/perfuse_priv.h	Mon Oct 11 05:37:58 2010
@@ -1,4 +1,4 @@
-/*  $NetBSD: perfuse_priv.h,v 1.15 2010/10/11 01:08:26 manu Exp $ */
+/*  $NetBSD: perfuse_priv.h,v 1.16 2010/10/11 05:37:58 manu Exp $ */
 
 /*-
  *  Copyright (c) 2010 Emmanuel Dreyfus. All rights reserved.

Index: src/usr.sbin/perfused/msg.c
diff -u src/usr.sbin/perfused/msg.c:1.8 src/usr.sbin/perfused/msg.c:1.9
--- src/usr.sbin/perfused/msg.c:1.8	Mon Oct 11 01:12:25 2010
+++ src/usr.sbin/perfused/msg.c	Mon Oct 11 05:37:58 2010
@@ -1,4 +1,4 @@
-/*  $NetBSD: msg.c,v 1.8 2010/10/11 01:12:25 manu Exp $ */
+/*  $NetBSD: msg.c,v 1.9 2010/10/11 05:37:58 manu Exp $ */
 
 /*-
  *  Copyright (c) 2010 Emmanuel Dreyfus. All rights reserved.
@@ -59,7 +59,7 @@
 
 	(void)unlink(_PATH_FUSE);
 
-	if ((s = socket(AF_LOCAL, PERFUSE_SOCKTYPE, 0)) == -1)
+	if ((s = socket(AF_LOCAL, SOCK_DGRAM, 0)) == -1)
 		err(EX_OSERR, "socket failed");
 
 	sa = (const struct sockaddr *)(void *)&sun;
@@ -90,13 +90,8 @@
 	if (bind(s, sa, (socklen_t )sun.sun_len) == -1)
 		err(EX_OSERR, "cannot open \"%s\" socket", _PATH_FUSE);
 
-#if (PERFUSE_SOCKTYPE == SOCK_DGRAM)
 	if (connect(s, sa, (socklen_t )sun.sun_len) == -1)
 		err(EX_OSERR, "cannot open \"%s\" socket", _PATH_FUSE);
-#else
-	if (listen(s, 1) == -1)	
-		err(EX_OSERR, "listen failed");
-#endif
 
 	return s;
 }
@@ -475,117 +470,86 @@
 	int *done;
 {
 	struct fuse_out_header foh;
-	size_t offset;
-	size_t remain;
+	size_t len;
 	ssize_t readen;
 	void *data;
-	int peek = 0;
-
-#if (PERFUSE_SOCKTYPE == SOCK_DGRAM)
-	peek = MSG_PEEK;
-#endif
-	offset = puffs_framebuf_telloff(pufbuf);
 
 	/*
 	 * Read the header 
-	 * MSG_PEEK is used so that this code works for SOCK_DGRAM
-	 * socket. The loop is only needed to work with SOCK_STREAM. 
 	 */
-	while (offset < sizeof(foh)) {
-		remain = sizeof(foh) - offset;
-		PUFFS_FRAMEBUF_GETWINDOW(pufbuf, offset, &data, &remain);
-
-		switch (readen = recv(fd, data, remain, MSG_NOSIGNAL|peek)) {
-		case 0:
-			DWARNX("%s: recv retunred 0", __func__);
-			return ECONNRESET;
-			/* NOTREACHED */
-			break;
-		case -1:
-			if (errno == EAGAIN)
-				return 0;
-			DWARN("%s: recv retunred -1", __func__);
-			return errno;
-			/* NOTREACHED */
-			break;
-		default:
-#if defined(PERFUSE_DEBUG) && (PERFUSE_SOCKTYPE == SOCK_DGRAM)
-			if (readen != remain)
-				DERRX(EX_SOFTWARE, "%s: short recv %zd/%zd",
-				      __func__, readen, remain);
-#endif
-			break;
-		}
+	len = sizeof(foh);
+	PUFFS_FRAMEBUF_GETWINDOW(pufbuf, 0, &data, &len);
 
-		offset += readen;
-		if (puffs_framebuf_seekset(pufbuf, offset) == -1)
-			DERR(EX_OSERR, "puffs_framebuf_seekset failed");
+	switch (readen = recv(fd, data, len, MSG_NOSIGNAL|MSG_PEEK)) {
+	case 0:
+		DWARNX("%s: recv retunred 0", __func__);
+		return ECONNRESET;
+		/* NOTREACHED */
+		break;
+	case -1:
+		if (errno == EAGAIN)
+			return 0;
+		DWARN("%s: recv retunred -1", __func__);
+		return errno;
+		/* NOTREACHED */
+		break;
+	default:
+		break;
 	}
 
-#if (PERFUSE_SOCKTYPE == SOCK_DGRAM)
-	/*
-	 * We had a peek at the header, now really read it.
-	 */
-	offset = 0;
+#ifdef PERFUSE_DEBUG
+	if (readen != len)
+		DERRX(EX_SOFTWARE, "%s: short recv %zd/%zd",
+		      __func__, readen, len);
 #endif
-	
+
 	/*
 	 * We have a header, get remaing length to read
 	 */
 	if (puffs_framebuf_getdata_atoff(pufbuf, 0, &foh, sizeof(foh)) != 0)
 		DERR(EX_SOFTWARE, "puffs_framebuf_getdata_atoff failed");
-;
+
+	len = foh.len;
+
 #ifdef PERFUSE_DEBUG
-		if (foh.len > FUSE_BUFSIZE)
-			DERRX(EX_SOFTWARE, "%s: foh.len = %d (this is huge!)", 
-			      __func__, foh.len);
+	if (len > FUSE_BUFSIZE)
+		DERRX(EX_SOFTWARE, "%s: foh.len = %d", __func__, len);
 #endif
 
 	/*
-	 * If we have only readen the header so far, 
-	 * this is time to reserve space.
+	 * This is time to reserve space.
 	 */
-	remain = foh.len - offset;
-	if (offset == sizeof(foh))
-		if (puffs_framebuf_reserve_space(pufbuf, remain) == -1)
-			DERR(EX_OSERR, "puffs_framebuf_reserve_space failed");
-
+	if (puffs_framebuf_reserve_space(pufbuf, len) == -1)
+		DERR(EX_OSERR, "puffs_framebuf_reserve_space failed");
 
 	/*
 	 * And read the remaining data
 	 */ 
-	while (remain != 0) {
-		PUFFS_FRAMEBUF_GETWINDOW(pufbuf, offset, &data, &remain);
-
-		switch (readen = recv(fd, data, remain, MSG_NOSIGNAL)) {
-		case 0:
-			DWARNX("%s: recv retunred 0", __func__);
-			return ECONNRESET;
-			/* NOTREACHED */
-			break;
-		case -1:
-			if (errno == EAGAIN)
-				return 0;
-			DWARN("%s: recv retunred -1", __func__);
-			return errno;
-			/* NOTREACHED */
-			break;
-		default:
-#if defined(PERFUSE_DEBUG) && (PERFUSE_SOCKTYPE == SOCK_DGRAM)
-			if (readen != remain)
-				DERRX(EX_SOFTWARE, "%s: short recv %zd/%zd",
-				      __func__, readen, remain);
-#endif
-			break;
-		}
+	PUFFS_FRAMEBUF_GETWINDOW(pufbuf, 0, &data, &len);
 
-		offset += readen;
-		remain -= readen;
-
-		if (puffs_framebuf_seekset(pufbuf, offset) == -1)
-			DERR(EX_OSERR, "puffs_framebuf_seekset failed");
+	switch (readen = recv(fd, data, len, MSG_NOSIGNAL)) {
+	case 0:
+		DWARNX("%s: recv retunred 0", __func__);
+		return ECONNRESET;
+		/* NOTREACHED */
+		break;
+	case -1:
+		if (errno == EAGAIN)
+			return 0;
+		DWARN("%s: recv retunred -1", __func__);
+		return errno;
+		/* NOTREACHED */
+		break;
+	default:
+		break;
 	}
 
+#ifdef PERFUSE_DEBUG
+	if (readen != len)
+		DERRX(EX_SOFTWARE, "%s: short recv %zd/%zd",
+		      __func__, readen, len);
+#endif
+
 	*done = 1;
 	return 0;
 }
@@ -598,48 +562,36 @@
 	int fd;
 	int *done;
 {
-	size_t offset;
 	size_t len;
 	ssize_t written;
-	size_t remain;
 	void *data;
 
-	offset = puffs_framebuf_telloff(pufbuf);
-	len = puffs_framebuf_tellsize(pufbuf) - offset;
-	remain = len;
-
-	while (remain != 0) {
-		PUFFS_FRAMEBUF_GETWINDOW(pufbuf, offset, &data, &len);
-
-		switch (written = send(fd, data, remain, MSG_NOSIGNAL)) {
-		case 0:
-			DWARNX("%s: send retunred 0", __func__);
-			return ECONNRESET;
-			/* NOTREACHED */
-			break;
-		case -1:
-			if (errno == EAGAIN)
-				return 0;
-			DWARN("%s: send retunred -1", __func__);
-			return errno;
-			/* NOTREACHED */
-			break;
-		default:
-#if defined(PERFUSE_DEBUG) && (PERFUSE_SOCKTYPE == SOCK_DGRAM)
-			if (written != remain)
-				DERRX(EX_SOFTWARE, "%s: short send %zd/%zd",
-				      __func__, written, remain);
-#endif
-			break;
-		}
-
-		remain -= written;
-		offset += written;
+	len = puffs_framebuf_tellsize(pufbuf);
+	PUFFS_FRAMEBUF_GETWINDOW(pufbuf, 0, &data, &len);
 
-		if (puffs_framebuf_seekset(pufbuf, offset) == -1)
-			DERR(EX_OSERR, "puffs_framebuf_seekset failed");
+	switch (written = send(fd, data, len, MSG_NOSIGNAL)) {
+	case 0:
+		DWARNX("%s: send retunred 0", __func__);
+		return ECONNRESET;
+		/* NOTREACHED */
+		break;
+	case -1:
+		if (errno == EAGAIN)
+			return 0;
+		DWARN("%s: send retunred -1", __func__);
+		return errno;
+		/* NOTREACHED */
+		break;
+	default:
+		break;
 	}
 
+#ifdef PERFUSE_DEBUG
+	if (written != len)
+		DERRX(EX_SOFTWARE, "%s: short send %zd/%zd",
+		      __func__, written, len);
+#endif
+
 	*done = 1;
 	return 0;
 }

Index: src/usr.sbin/perfused/perfused.c
diff -u src/usr.sbin/perfused/perfused.c:1.10 src/usr.sbin/perfused/perfused.c:1.11
--- src/usr.sbin/perfused/perfused.c:1.10	Thu Sep 23 16:02:34 2010
+++ src/usr.sbin/perfused/perfused.c	Mon Oct 11 05:37:58 2010
@@ -1,4 +1,4 @@
-/*  $NetBSD: perfused.c,v 1.10 2010/09/23 16:02:34 manu Exp $ */
+/*  $NetBSD: perfused.c,v 1.11 2010/10/11 05:37:58 manu Exp $ */
 
 /*-
  *  Copyright (c) 2010 Emmanuel Dreyfus. All rights reserved.
@@ -400,33 +400,11 @@
 	s = perfuse_open_sock();
 	
 	do {
-#if (PERFUSE_SOCKTYPE != SOCK_DGRAM)
-		struct sockaddr *sa;
-		struct sockaddr_storage ss;
-		socklen_t ss_len;
-#endif
-		int fd;
-
 #ifdef PERFUSE_DEBUG
 		if (perfuse_diagflags & PDF_MISC)
-			DPRINTF("waiting connexion\n");
+			DPRINTF("perfused ready\n");
 #endif
-#if (PERFUSE_SOCKTYPE == SOCK_DGRAM)
-		fd = s;
-#else
-		sa = (struct sockaddr *)(void *)&ss;
-		ss_len = sizeof(ss);
-
-		if ((fd = accept(s, sa, &ss_len)) == -1)
-			DERR(EX_OSERR,  "accept failed");
-
-#ifdef PERFUSE_DEBUG
-		if (perfuse_diagflags & PDF_MISC)
-			DPRINTF("connexion accepted\n");
-#endif /* PERFUSE_DEBUG */
-#endif /* PERFUSE_SOCKTYPE */
-
-		new_mount(fd, PMNT_DEVFUSE);
+		new_mount(s, PMNT_DEVFUSE);
 	} while (1 /* CONSTCOND */);
 		
 	/* NOTREACHED */

Reply via email to