2020-04-04 05:25:26

by Rosen Penev

[permalink] [raw]
Subject: [PATCH 1/2] nfs-utils: print time in 64-bit

musl 1.2.0 defines time_t as 64-bit, even under 32-bit OSes.

Fixes -Wformat errors.

Signed-off-by: Rosen Penev <[email protected]>
---
support/nfs/cacheio.c | 3 ++-
utils/idmapd/idmapd.c | 11 ++++++-----
2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/support/nfs/cacheio.c b/support/nfs/cacheio.c
index 7c4cf373..126c1283 100644
--- a/support/nfs/cacheio.c
+++ b/support/nfs/cacheio.c
@@ -20,6 +20,7 @@
#endif

#include <nfslib.h>
+#include <inttypes.h>
#include <stdio.h>
#include <stdio_ext.h>
#include <string.h>
@@ -238,7 +239,7 @@ cache_flush(int force)
stb.st_mtime > now)
stb.st_mtime = time(0);

- sprintf(stime, "%ld\n", stb.st_mtime);
+ sprintf(stime, "%" PRId64 "\n", (int64_t)stb.st_mtime);
for (c=0; cachelist[c]; c++) {
int fd;
sprintf(path, "/proc/net/rpc/%s/flush", cachelist[c]);
diff --git a/utils/idmapd/idmapd.c b/utils/idmapd/idmapd.c
index c187e7d7..893159f1 100644
--- a/utils/idmapd/idmapd.c
+++ b/utils/idmapd/idmapd.c
@@ -54,6 +54,7 @@
#include <dirent.h>
#include <unistd.h>
#include <netdb.h>
+#include <inttypes.h>
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
@@ -172,7 +173,7 @@ flush_nfsd_cache(char *path, time_t now)
int fd;
char stime[32];

- sprintf(stime, "%ld\n", now);
+ sprintf(stime, "%" PRId64 "\n", (int64_t)now);
fd = open(path, O_RDWR);
if (fd == -1)
return -1;
@@ -625,8 +626,8 @@ nfsdcb(int UNUSED(fd), short which, void *data)
/* Name */
addfield(&bp, &bsiz, im.im_name);
/* expiry */
- snprintf(buf1, sizeof(buf1), "%lu",
- time(NULL) + cache_entry_expiration);
+ snprintf(buf1, sizeof(buf1), "%" PRId64,
+ (int64_t)time(NULL) + cache_entry_expiration);
addfield(&bp, &bsiz, buf1);
/* Note that we don't want to write the id if the mapping
* failed; instead, by leaving it off, we write a negative
@@ -653,8 +654,8 @@ nfsdcb(int UNUSED(fd), short which, void *data)
snprintf(buf1, sizeof(buf1), "%u", im.im_id);
addfield(&bp, &bsiz, buf1);
/* expiry */
- snprintf(buf1, sizeof(buf1), "%lu",
- time(NULL) + cache_entry_expiration);
+ snprintf(buf1, sizeof(buf1), "%" PRId64,
+ (int64_t)time(NULL) + cache_entry_expiration);
addfield(&bp, &bsiz, buf1);
/* Note we're ignoring the status field in this case; we'll
* just map to nobody instead. */
--
2.25.1


2020-04-04 05:26:04

by Rosen Penev

[permalink] [raw]
Subject: [PATCH 2/2] nfs-utils: tools: use nls.h

libintl.h is not available everywhere. This fixes compilation.

Signed-off-by: Rosen Penev <[email protected]>
---
tools/rpcgen/rpc_main.c | 2 +-
tools/rpcgen/rpc_scan.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/rpcgen/rpc_main.c b/tools/rpcgen/rpc_main.c
index 1b26e522..e97940b9 100644
--- a/tools/rpcgen/rpc_main.c
+++ b/tools/rpcgen/rpc_main.c
@@ -42,7 +42,6 @@
#include <stdio.h>
#include <string.h>
#include <unistd.h>
-#include <libintl.h>
#include <locale.h>
#include <ctype.h>
#include <sys/types.h>
@@ -54,6 +53,7 @@
#include "rpc_util.h"
#include "rpc_scan.h"
#include "proto.h"
+#include "nls.h"

#ifndef _
#define _(String) gettext (String)
diff --git a/tools/rpcgen/rpc_scan.c b/tools/rpcgen/rpc_scan.c
index 79eba964..7de61120 100644
--- a/tools/rpcgen/rpc_scan.c
+++ b/tools/rpcgen/rpc_scan.c
@@ -37,11 +37,11 @@
#include <stdio.h>
#include <ctype.h>
#include <string.h>
-#include <libintl.h>
#include "rpc_scan.h"
#include "rpc_parse.h"
#include "rpc_util.h"
#include "proto.h"
+#include "nls.h"

#ifndef _
#define _(String) gettext (String)
--
2.25.1

2020-04-14 16:12:50

by Steve Dickson

[permalink] [raw]
Subject: Re: [PATCH 1/2] nfs-utils: print time in 64-bit



On 4/4/20 1:24 AM, Rosen Penev wrote:
> musl 1.2.0 defines time_t as 64-bit, even under 32-bit OSes.
>
> Fixes -Wformat errors.
>
> Signed-off-by: Rosen Penev <[email protected]>
Committed... (tag: nfs-utils-2-4-4-rc3)

steved.
> ---
> support/nfs/cacheio.c | 3 ++-
> utils/idmapd/idmapd.c | 11 ++++++-----
> 2 files changed, 8 insertions(+), 6 deletions(-)
>
> diff --git a/support/nfs/cacheio.c b/support/nfs/cacheio.c
> index 7c4cf373..126c1283 100644
> --- a/support/nfs/cacheio.c
> +++ b/support/nfs/cacheio.c
> @@ -20,6 +20,7 @@
> #endif
>
> #include <nfslib.h>
> +#include <inttypes.h>
> #include <stdio.h>
> #include <stdio_ext.h>
> #include <string.h>
> @@ -238,7 +239,7 @@ cache_flush(int force)
> stb.st_mtime > now)
> stb.st_mtime = time(0);
>
> - sprintf(stime, "%ld\n", stb.st_mtime);
> + sprintf(stime, "%" PRId64 "\n", (int64_t)stb.st_mtime);
> for (c=0; cachelist[c]; c++) {
> int fd;
> sprintf(path, "/proc/net/rpc/%s/flush", cachelist[c]);
> diff --git a/utils/idmapd/idmapd.c b/utils/idmapd/idmapd.c
> index c187e7d7..893159f1 100644
> --- a/utils/idmapd/idmapd.c
> +++ b/utils/idmapd/idmapd.c
> @@ -54,6 +54,7 @@
> #include <dirent.h>
> #include <unistd.h>
> #include <netdb.h>
> +#include <inttypes.h>
> #include <signal.h>
> #include <stdio.h>
> #include <stdlib.h>
> @@ -172,7 +173,7 @@ flush_nfsd_cache(char *path, time_t now)
> int fd;
> char stime[32];
>
> - sprintf(stime, "%ld\n", now);
> + sprintf(stime, "%" PRId64 "\n", (int64_t)now);
> fd = open(path, O_RDWR);
> if (fd == -1)
> return -1;
> @@ -625,8 +626,8 @@ nfsdcb(int UNUSED(fd), short which, void *data)
> /* Name */
> addfield(&bp, &bsiz, im.im_name);
> /* expiry */
> - snprintf(buf1, sizeof(buf1), "%lu",
> - time(NULL) + cache_entry_expiration);
> + snprintf(buf1, sizeof(buf1), "%" PRId64,
> + (int64_t)time(NULL) + cache_entry_expiration);
> addfield(&bp, &bsiz, buf1);
> /* Note that we don't want to write the id if the mapping
> * failed; instead, by leaving it off, we write a negative
> @@ -653,8 +654,8 @@ nfsdcb(int UNUSED(fd), short which, void *data)
> snprintf(buf1, sizeof(buf1), "%u", im.im_id);
> addfield(&bp, &bsiz, buf1);
> /* expiry */
> - snprintf(buf1, sizeof(buf1), "%lu",
> - time(NULL) + cache_entry_expiration);
> + snprintf(buf1, sizeof(buf1), "%" PRId64,
> + (int64_t)time(NULL) + cache_entry_expiration);
> addfield(&bp, &bsiz, buf1);
> /* Note we're ignoring the status field in this case; we'll
> * just map to nobody instead. */
>

2020-04-14 16:14:51

by Steve Dickson

[permalink] [raw]
Subject: Re: [PATCH 2/2] nfs-utils: tools: use nls.h



On 4/4/20 1:24 AM, Rosen Penev wrote:
> libintl.h is not available everywhere. This fixes compilation.
>
> Signed-off-by: Rosen Penev <[email protected]>

Committed... (tag: nfs-utils-2-4-4-rc3)

steved.
> ---
> tools/rpcgen/rpc_main.c | 2 +-
> tools/rpcgen/rpc_scan.c | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/tools/rpcgen/rpc_main.c b/tools/rpcgen/rpc_main.c
> index 1b26e522..e97940b9 100644
> --- a/tools/rpcgen/rpc_main.c
> +++ b/tools/rpcgen/rpc_main.c
> @@ -42,7 +42,6 @@
> #include <stdio.h>
> #include <string.h>
> #include <unistd.h>
> -#include <libintl.h>
> #include <locale.h>
> #include <ctype.h>
> #include <sys/types.h>
> @@ -54,6 +53,7 @@
> #include "rpc_util.h"
> #include "rpc_scan.h"
> #include "proto.h"
> +#include "nls.h"
>
> #ifndef _
> #define _(String) gettext (String)
> diff --git a/tools/rpcgen/rpc_scan.c b/tools/rpcgen/rpc_scan.c
> index 79eba964..7de61120 100644
> --- a/tools/rpcgen/rpc_scan.c
> +++ b/tools/rpcgen/rpc_scan.c
> @@ -37,11 +37,11 @@
> #include <stdio.h>
> #include <ctype.h>
> #include <string.h>
> -#include <libintl.h>
> #include "rpc_scan.h"
> #include "rpc_parse.h"
> #include "rpc_util.h"
> #include "proto.h"
> +#include "nls.h"
>
> #ifndef _
> #define _(String) gettext (String)
>