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)
This commit is contained in:
Jeffrey Altman 2007-12-05 20:33:30 +00:00
parent 4956f41b85
commit 496ed80bd6

View File

@ -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);