[lkml]   [2001]   [Apr]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: Socket hack question.
On Wed, Apr 18, 2001 at 11:31:00PM +0200, Andi Kleen wrote:
> On Thu, Apr 19, 2001 at 12:28:52AM +0200, Joel Eriksson wrote:
> > Hello,
> >
> > I am a kernel hacking newbie and am struggling to understand the
> > networking subsystem. I would like to be able to add a systemcall,
> > preferably asynchronous, that connects a socket with a filedescriptor
> > (proxy(srcsd, dstfd)) so that everything received on srcsd is directly
> > written to dstfd. The proxy should close when srcsd is closed or when
> > a zero-size packet is sent (or something like that..).
> That syscall already exists -- it's called sendfile.

Actually, I realised the similarities with sendfile() after I made the
post. :-) But I thought sendfile() could only be used for sending data
from a "regular" file descriptor to another file- or socket descriptor..?

The syscall I would like to implement is kind of the reverse to sendfile()
since it should be used to copy data _from_ a socket descriptor to a
file descriptor.

Hmm, I made a small test program and from what I can understand it seems
to verify what I thought:

#include <sys/types.h>
#include <sys/socket.h>
#include <unistd.h>
#include <errno.h>
#include <stdio.h>

int main(void)
pid_t pid;
int fdarr[2];

if (socketpair(AF_UNIX, SOCK_STREAM, 0, fdarr) ÿ-1) {
return 1;

if ((pid ÿork()) ÿ-1) {
return 1;
} else if (pid) {
if (sendfile(1, fdarr[1], NULL, 5) ÿ-1) {
return 1;
} else {
write(fdarr[0], "Test\n", 5);

return 0;

The output from the program is "sendfile: Invalid argument"..

> -Andi

Joel Eriksson
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:26    [W:0.031 / U:0.592 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site