Date: Sun, 30 Oct 2005 16:21:07 +0200 From: Niki Denev <nike_d@cytexbg.com> To: freebsd-stable@freebsd.org Subject: Re: sendfile + non local filesystem + lighttpd = EOPNOTSUPP Message-ID: <4364D6D3.6010508@cytexbg.com> In-Reply-To: <4363E333.5000803@cytexbg.com> References: <436311C2.6090708@cytexbg.com> <20051029061513.GG36235@tnn.dglawrence.com> <43631721.50504@cytexbg.com> <4363E333.5000803@cytexbg.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Niki Denev wrote:
>
>
> I get the same behaviour also with 6.0-RC1 (cvsupped an hour ago)
>
Ok,
In this awful piece of code created for testing purposes
if i set FILETOSEND to local file it works ok,
but if the file is located on smbfs sendfile returns "Operation
not supported".
If this is not a bug, maybe it should be documented? (also the
error code that sendfile returns)
(again, the machine is 6.0-RC1 cvsupped yesterday, with SMP kernel)
---[sendfile_test.c]---
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#define FILETOSEND "/var/log/messages"
//#define FILETOSEND "/mnt/smb/somefile.dat"
int main() {
int fd;
int sock;
int result;
struct sockaddr_in sa;
fd = open(FILETOSEND, O_RDONLY);
sock = socket(PF_INET, SOCK_STREAM, 0);
memset(&sa, 0, sizeof(sa));
sa.sin_family = AF_INET;
sa.sin_port = htons(9); /* discard enabled in inetd */
inet_aton("127.0.0.1", &sa.sin_addr);
printf("connecting socket ... ");
errno = 0;
result = connect(sock, (struct sockaddr *)&sa, sizeof(sa));
printf("%s\n", errno?strerror(errno):"ok");
printf("calling sendfile ... ");
errno = 0;
result = sendfile(fd, sock, 0, 0, NULL, NULL, 0);
printf("%s\n", errno?strerror(errno):"ok");
close(fd);
close(sock);
return(0);
}
---[end of sendfile_test.c]---
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4364D6D3.6010508>
