{
size_t bcount = 0;
int ready = 0;
+ char buf[8192];
#ifdef HAVE_MMAP
if(!issock) {
size_t len;
fd = fileno(fp);
- off = ftell(fp);
fstat(fd, &sbuf);
- len = sbuf.st_size - off;
-
- p = mmap(0, len, PROT_READ, MAP_PRIVATE, fd, off);
- if(p!=MAP_FAILED) {
- PHPWRITE(p, len);
- munmap(p, len);
- bcount += len;
- ready = 1;
+ if(sbuf.st_size > sizeof(buf)) {
+ off = ftell(fp);
+ len = sbuf.st_size - off;
+ p = mmap(0, len, PROT_READ, MAP_PRIVATE, fd, off);
+ if(p!=MAP_FAILED) {
+ PHPWRITE(p, len);
+ munmap(p, len);
+ bcount += len;
+ ready = 1;
+ }
}
}
#endif
if(!ready) {
- char buf[8192];
int b;
while ((b = FP_FREAD(buf, sizeof(buf), socketd, fp, issock)) > 0) {