mirror of
https://git.openafs.org/openafs.git
synced 2025-01-21 00:10:15 +00:00
Windows: fix parameters and return value from nt_seek
SetFilePointerEx takes specific values (FILE_BEGIN/FILE_CURRENT/FILE_END) whilse fseek requires SEEK_SET, SEK_END, SEEK_CUR. It turns out that these overlap, but we should not let that pass unchallenged. SetFilePointerEx returns nonzero for success zero for failure. fseek returns the other way around. Neither of these changes currently matter, but we should fix them. Change-Id: Ib31cf6265fa1e714232ff0d2e099c657e41f17e9 Reviewed-on: http://gerrit.openafs.org/3746 Reviewed-by: Andrew Deason <adeason@sinenomine.net> Reviewed-by: Jeffrey Altman <jaltman@openafs.org> Tested-by: Jeffrey Altman <jaltman@openafs.org>
This commit is contained in:
parent
6d2636b886
commit
4f838b03bb
@ -322,15 +322,30 @@ nt_fsync(FD_t fd)
|
||||
|
||||
|
||||
int
|
||||
nt_seek(FD_t fd, afs_foff_t off, int where)
|
||||
nt_seek(FD_t fd, afs_foff_t off, int whence)
|
||||
{
|
||||
int code;
|
||||
LARGE_INTEGER offset;
|
||||
int where;
|
||||
|
||||
if (SEEK_SET == whence) {
|
||||
where = FILE_BEGIN;
|
||||
} else if (SEEK_END == whence) {
|
||||
where = FILE_END;
|
||||
} else if (SEEK_CUR == whence) {
|
||||
where = FILE_CURRENT;
|
||||
} else {
|
||||
errno = EINVAL;
|
||||
return -1;
|
||||
}
|
||||
offset.QuadPart = off;
|
||||
|
||||
code = SetFilePointerEx(fd, offset, NULL, where);
|
||||
return code;
|
||||
if (0 == code) {
|
||||
errno = nterr_nt2unix(GetLastError(), EBADF);
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* nt_DevToDrive
|
||||
|
@ -34,7 +34,7 @@ extern int nt_setFileCreationTime(FD_t fd, FILETIME * ftime);
|
||||
extern int nt_sync(int cdrive);
|
||||
extern int nt_ftruncate(FD_t fd, afs_foff_t len);
|
||||
extern int nt_fsync(FD_t fd);
|
||||
extern int nt_seek(FD_t fd, afs_foff_t off, int where);
|
||||
extern int nt_seek(FD_t fd, afs_foff_t off, int whence);
|
||||
extern FILE *nt_fdopen(IHandle_t * h, char *fdperms);
|
||||
extern int nt_unlink(char *name);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user