From 496ed80bd65d44912cb134403605596fbd8ec71f Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Wed, 5 Dec 2007 20:33:30 +0000 Subject: [PATCH] DEVEL15-cbd-20071205 LICENSE IPL10 Windows requires open() to be called with O_BINARY otherwise Ctrl-Z means EOF which breaks dumpfile processing. Be consistent about writing/reading time as afs_uint32 instead of writing as afs_uint32 and reading as time_t since time_t can be 32-bit or 64-bit depending on the platform. (cherry picked from commit 946f416577914aef5b31e398994fb8876b4ee5e9) --- src/viced/callback.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/viced/callback.c b/src/viced/callback.c index 05fd5b9192..efef03b3db 100644 --- a/src/viced/callback.c +++ b/src/viced/callback.c @@ -2640,11 +2640,14 @@ cb_OldToNew(struct fs_dump_state * state, afs_uint32 old, afs_uint32 * new) int DumpCallBackState(void) { - int fd; + int fd, oflag; afs_uint32 magic = MAGIC, now = FT_ApproxTime(), freelisthead; - fd = open(AFSDIR_SERVER_CBKDUMP_FILEPATH, O_WRONLY | O_CREAT | O_TRUNC, - 0666); + oflag = O_WRONLY | O_CREAT | O_TRUNC; +#ifdef AFS_NT40_ENV + oflag |= O_BINARY; +#endif + fd = open(AFSDIR_SERVER_CBKDUMP_FILEPATH, oflag, 0666); if (fd < 0) { ViceLog(0, ("Couldn't create callback dump file %s\n", @@ -2678,11 +2681,15 @@ DumpCallBackState(void) time_t ReadDump(char *file) { - int fd; + int fd, oflag; afs_uint32 magic, freelisthead; - time_t now; + afs_uint32 now; - fd = open(file, O_RDONLY); + oflag = O_RDONLY; +#ifdef AFS_NT40_ENV + oflag |= O_BINARY; +#endif + fd = open(file, oflag); if (fd < 0) { fprintf(stderr, "Couldn't read dump file %s\n", file); exit(1);