filefd = fileno(instr);
if (isreg && filesize < (off_t)16 * 1024 * 1024) {
#if 0
buf = mmap(0, filesize, PROT_READ, MAP_SHARED, filefd,
(off_t)0);
if (buf == MAP_FAILED) {
transflag = 0;
munmap(buf, (size_t)filesize);
if (cnt < 0)
goto data_err;
#endif
off_t offset;
int fail;
len = filesize;
offset = 0;
fail = 0;
while (len &&
! (fail = sendfile (filefd, netfd, offset, len,
NULL, &cnt, 0))) {
len -= cnt;
offset += cnt;
}
if (fail < 0) {
if (errno == EINVAL)
goto oldway;
reply(226, "Transfer complete.");
return;