Module Name: src
Committed By: christos
Date: Tue Oct 18 17:56:31 UTC 2016
Modified Files:
src/lib/libperfuse: fuse.h perfuse.c perfuse_if.h
Log Message:
make this compile again, and simplify.
To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/lib/libperfuse/fuse.h
cvs rdiff -u -r1.38 -r1.39 src/lib/libperfuse/perfuse.c
cvs rdiff -u -r1.20 -r1.21 src/lib/libperfuse/perfuse_if.h
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/fuse.h
diff -u src/lib/libperfuse/fuse.h:1.6 src/lib/libperfuse/fuse.h:1.7
--- src/lib/libperfuse/fuse.h:1.6 Fri Oct 31 11:12:15 2014
+++ src/lib/libperfuse/fuse.h Tue Oct 18 13:56:31 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: fuse.h,v 1.6 2014/10/31 15:12:15 manu Exp $ */
+/* $NetBSD: fuse.h,v 1.7 2016/10/18 17:56:31 christos Exp $ */
/*-
* Copyright (c) 2010 Emmanuel Dreyfus. All rights reserved.
@@ -34,8 +34,8 @@
#define FUSE_UNKNOWN_FH (uint64_t)0
#ifndef FUSE_BUFSIZE
-#define FUSE_MIN_BUFSIZE 0x21000
-#define FUSE_PREF_BUFSIZE (sysconf(_SC_PAGESIZE) + 0x1000)
+#define FUSE_MIN_BUFSIZE ((size_t)0x21000)
+#define FUSE_PREF_BUFSIZE ((size_t)(sysconf(_SC_PAGESIZE) + 0x1000))
#define FUSE_BUFSIZE MAX(FUSE_PREF_BUFSIZE /* CONSTCOND */, FUSE_MIN_BUFSIZE)
#endif /* FUSE_BUFSIZE */
Index: src/lib/libperfuse/perfuse.c
diff -u src/lib/libperfuse/perfuse.c:1.38 src/lib/libperfuse/perfuse.c:1.39
--- src/lib/libperfuse/perfuse.c:1.38 Tue Oct 18 11:06:17 2016
+++ src/lib/libperfuse/perfuse.c Tue Oct 18 13:56:31 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: perfuse.c,v 1.38 2016/10/18 15:06:17 manu Exp $ */
+/* $NetBSD: perfuse.c,v 1.39 2016/10/18 17:56:31 christos Exp $ */
/*-
* Copyright (c) 2010-2011 Emmanuel Dreyfus. All rights reserved.
@@ -32,6 +32,7 @@
#include <string.h>
#include <errno.h>
#include <puffs.h>
+#include <inttypes.h>
#include <sys/types.h>
#include <sys/mman.h>
#include <sys/resource.h>
@@ -51,7 +52,7 @@ extern char **environ;
static struct perfuse_state *init_state(void);
static int get_fd(const char *);
-static uint32_t bufvar_from_env(const char *, const uint32_t);
+static uint32_t bufvar_from_env(const char *, uint32_t);
static struct perfuse_state *
@@ -148,32 +149,22 @@ get_fd(const char *data)
}
static uint32_t
-bufvar_from_env(name, defval)
- const char *name;
- const uint32_t defval;
+bufvar_from_env(const char *name, uint32_t defval)
{
char valstr[1024];
- uint32_t retval = defval;
+ int e;
+ uint32_t retval;
- if (getenv_r(name, valstr, sizeof(valstr)) != -1) {
- long int val;
- char *ep;
-
- errno = 0;
- val = (int)strtol(valstr, &ep, 10);
- if (*valstr == '\0' || *ep != '\0')
- DWARNX("bad %s value \"%s\"", name, valstr);
- else if (errno != 0)
- DWARN("bad %s value \"%s\"", name, valstr);
- else if (val <= 0L ||
- (unsigned long int)val > (unsigned long int)UINT32_MAX)
- DWARNX("%s value %ld out of "
- "uint32_t bounds", name, val);
- else
- retval = val;
- }
+ if (getenv_r(name, valstr, sizeof(valstr)) == -1)
+ return defval;
- return retval;
+ retval = (uint32_t)strtoi(valstr, NULL, 0, 0, UINT32_MAX, &e);
+ if (!e)
+ return retval;
+
+ DWARNC(e, "conversion from `%s' to uint32_t failed, using %u",
+ valstr, defval);
+ return defval;
}
int
@@ -213,7 +204,7 @@ perfuse_open(const char *path, int flags
* Set a buffer lentgh large enough so that enough FUSE packets
* will fit.
*/
- opt = bufvar_from_env("PERFUSE_BUFSIZE", 16 * FUSE_BUFSIZE);
+ opt = bufvar_from_env("PERFUSE_BUFSIZE", (uint32_t)(16 * FUSE_BUFSIZE));
optlen = sizeof(opt);
if (setsockopt(sv[0], SOL_SOCKET, SO_SNDBUF, &opt, optlen) != 0)
DWARN("%s: setsockopt SO_SNDBUF to %d failed", __func__, opt);
@@ -244,7 +235,7 @@ perfuse_open(const char *path, int flags
* Set a buffer lentgh large enough so that enough FUSE packets
* will fit.
*/
- opt = bufvar_from_env("PERFUSE_BUFSIZE", 16 * FUSE_BUFSIZE);
+ opt = bufvar_from_env("PERFUSE_BUFSIZE", (uint32_t)(16 * FUSE_BUFSIZE));
optlen = sizeof(opt);
if (setsockopt(sv[0], SOL_SOCKET, SO_SNDBUF, &opt, optlen) != 0)
DWARN("%s: setsockopt SO_SNDBUF to %d failed", __func__, opt);
Index: src/lib/libperfuse/perfuse_if.h
diff -u src/lib/libperfuse/perfuse_if.h:1.20 src/lib/libperfuse/perfuse_if.h:1.21
--- src/lib/libperfuse/perfuse_if.h:1.20 Sat Jul 21 01:49:42 2012
+++ src/lib/libperfuse/perfuse_if.h Tue Oct 18 13:56:31 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: perfuse_if.h,v 1.20 2012/07/21 05:49:42 manu Exp $ */
+/* $NetBSD: perfuse_if.h,v 1.21 2016/10/18 17:56:31 christos Exp $ */
/*-
* Copyright (c) 2010-2011 Emmanuel Dreyfus. All rights reserved.
@@ -103,13 +103,20 @@ extern int perfuse_diagflags;
} while (0 /* CONSTCOND */)
#define DWARN(fmt, ...) do { \
- \
if (perfuse_diagflags & PDF_SYSLOG) \
syslog(LOG_WARNING, fmt ": %m", ## __VA_ARGS__); \
\
warn(fmt, ## __VA_ARGS__); \
} while (0 /* CONSTCOND */)
+#define DWARNC(e, fmt, ...) do { \
+ if (perfuse_diagflags & PDF_SYSLOG) { \
+ errno = e; \
+ syslog(LOG_WARNING, fmt ": %m", ## __VA_ARGS__); \
+ } \
+ warnc(e, fmt, ## __VA_ARGS__); \
+} while (0 /* CONSTCOND */)
+
/*
* frame handling callbacks
*/