Mercurial > dovecot > original-hg > dovecot-1.2
changeset 1849:83c635deda0b HEAD
pread/pwrite fixes
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Wed, 29 Oct 2003 15:50:36 +0200 |
parents | 8222937d4434 |
children | e19d3d8632b7 |
files | configure.in src/lib-index/mail-cache.c src/lib/compat.c src/lib/compat.h src/lib/istream-file.c |
diffstat | 5 files changed, 23 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/configure.in Wed Oct 29 15:37:33 2003 +0200 +++ b/configure.in Wed Oct 29 15:50:36 2003 +0200 @@ -227,9 +227,13 @@ dnl * after -lsocket and -lnsl tests, inet_aton() may be in them AC_CHECK_FUNCS(fcntl flock inet_aton sigaction getpagesize madvise \ - strcasecmp stricmp vsnprintf vsyslog writev pwrite \ + strcasecmp stricmp vsnprintf vsyslog writev pread \ setrlimit setproctitle) +if test `uname` = "Linux"; then + AC_DEFINE(PREAD_WRAPPERS,, Define if pread/pwrite needs _XOPEN_SOURCE 500) +fi + dnl * poll/select? AC_CHECK_FUNC(poll, [
--- a/src/lib-index/mail-cache.c Wed Oct 29 15:37:33 2003 +0200 +++ b/src/lib-index/mail-cache.c Wed Oct 29 15:50:36 2003 +0200 @@ -1,7 +1,5 @@ /* Copyright (C) 2003 Timo Sirainen */ -#define _XOPEN_SOURCE 500 /* for pwrite() / Linux */ - #include "lib.h" #include "buffer.h" #include "byteorder.h"
--- a/src/lib/compat.c Wed Oct 29 15:37:33 2003 +0200 +++ b/src/lib/compat.c Wed Oct 29 15:50:36 2003 +0200 @@ -2,6 +2,10 @@ #include "lib.h" +#ifdef PREAD_WRAPPERS +# define _XOPEN_SOURCE 500 /* Linux */ +#endif + #include <stdio.h> #include <ctype.h> #include <unistd.h> @@ -96,7 +100,7 @@ } #endif -#ifndef HAVE_PWRITE +#ifndef HAVE_PREAD ssize_t my_pread(int fd, void *buf, size_t count, off_t offset) { ssize_t ret; @@ -129,3 +133,15 @@ return ret; } #endif + +#ifdef PREAD_WRAPPERS +ssize_t my_pread(int fd, void *buf, size_t count, off_t offset) +{ + return pread(fd, buf, count, offset); +} + +ssize_t my_pwrite(int fd, const void *buf, size_t count, off_t offset) +{ + return pwrite(fd, buf, count, offset); +} +#endif
--- a/src/lib/compat.h Wed Oct 29 15:37:33 2003 +0200 +++ b/src/lib/compat.h Wed Oct 29 15:50:36 2003 +0200 @@ -94,7 +94,7 @@ ssize_t my_writev(int fd, const struct iovec *iov, int iov_len); #endif -#ifndef HAVE_PWRITE +#if !defined (HAVE_PREAD) || defined (PREAD_WRAPPERS) # define pread my_pread # define pwrite my_pwrite ssize_t my_pread(int fd, void *buf, size_t count, off_t offset);