#include <stdio.h>
struct cookiedata {
- fpos_t pos;
+ __off64t pos;
};
-size_t reader(void *cookie, char *buffer, size_t size)
+__ssize_t reader(void *cookie, char *buffer, size_t size)
{ return size; }
-size_t writer(void *cookie, const char *buffer, size_t size)
+__ssize_t writer(void *cookie, const char *buffer, size_t size)
{ return size; }
int closer(void *cookie)
{ return 0; }
-int seeker(void *cookie, fpos_t *position, int whence)
+int seeker(void *cookie, __off64t *position, int whence)
{ ((struct cookiedata*)cookie)->pos = *position; return 0; }
cookie_io_functions_t funcs = {reader, writer, seeker, closer};
struct cookiedata g = { 0 };
FILE *fp = fopencookie(&g, "r", funcs);
- if (fp && fseek(fp, 69, SEEK_SET) == 0 && g.pos == 69)
+ if (fp && fseek(fp, 8192, SEEK_SET) == 0 && g.pos == 8192)
exit(0);
exit(1);
}
],
- [ cookie_io_functions_use_fpos_t=yes ],
+ [ cookie_io_functions_use_off64t=yes ],
[ ] )
else
if test "$have_fopen_cookie" = "yes" ; then
AC_DEFINE(HAVE_FOPENCOOKIE, 1, [ ])
AC_DEFINE_UNQUOTED(COOKIE_IO_FUNCTIONS_T, $cookie_io_functions_t, [ ])
- if test "$cookie_io_functions_use_fpos_t" = "yes" ; then
- AC_DEFINE(COOKIE_SEEKER_USES_FPOS_T, 1, [ ])
+ if test "$cookie_io_functions_use_off64t" = "yes" ; then
+ AC_DEFINE(COOKIE_SEEKER_USES_OFF64T, 1, [ ])
fi
fi
return php_stream_write(((php_stream *)cookie), (char *)buffer, size);
}
-#ifdef COOKIE_SEEKER_USES_FPOS_T
-static int stream_cookie_seeker(void *cookie, fpos_t *position, int whence)
+#ifdef COOKIE_SEEKER_USES_OFF64T
+static int stream_cookie_seeker(void *cookie, __off64t *position, int whence)
{
TSRMLS_FETCH();
- *position = php_stream_seek((php_stream *)cookie, *position, whence);
+ *position = php_stream_seek((php_stream *)cookie, (off_t)*position, whence);
if (*position == -1)
return -1;