diff --git a/buffer.c b/buffer.c index 497b8b5a..eb2d84b2 100644 --- a/buffer.c +++ b/buffer.c @@ -2642,7 +2642,7 @@ done: */ int evbuffer_add_file(struct evbuffer *outbuf, int fd, - off_t offset, off_t length) + ev_off_t offset, ev_off_t length) { #if defined(USE_SENDFILE) || defined(_EVENT_HAVE_MMAP) struct evbuffer_chain *chain; @@ -2738,7 +2738,7 @@ evbuffer_add_file(struct evbuffer *outbuf, int fd, return (-1); #ifdef WIN32 -#define lseek _lseek +#define lseek _lseeki64 #endif if (lseek(fd, offset, SEEK_SET) == -1) { evbuffer_free(tmp); diff --git a/include/event2/buffer.h b/include/event2/buffer.h index b5feefae..d6538071 100644 --- a/include/event2/buffer.h +++ b/include/event2/buffer.h @@ -375,8 +375,8 @@ int evbuffer_add_reference(struct evbuffer *outbuf, @return 0 if successful, or -1 if an error occurred */ -int evbuffer_add_file(struct evbuffer *output, int fd, off_t offset, - off_t length); +int evbuffer_add_file(struct evbuffer *output, int fd, ev_off_t offset, + ev_off_t length); /** Append a formatted string to the end of an evbuffer. diff --git a/include/event2/util.h b/include/event2/util.h index 7e21410d..11807784 100644 --- a/include/event2/util.h +++ b/include/event2/util.h @@ -161,6 +161,12 @@ extern "C" { #define ev_ssize_t ssize_t #endif +#ifdef WIN32 +#define ev_off_t ev_int64_t +#else +#define ev_off_t off_t +#endif + /* Limits for integer types. We're making two assumptions here: