Re: How do I make a circular pipe?

johan.adolfsson@axis.com
Tue, 17 Apr 2001 10:02:19 +0200


Can't you do it like this?
# mkfifo fifo
# pppd notty < fifo | pppoe -I eth1 >fifo
/Johan

----- Original Message -----
From: Rob Landley <telomerase@yahoo.com>
To: <linux-kernel@vger.kernel.org>
Sent: Saturday, April 14, 2001 3:05 AM
Subject: How do I make a circular pipe?

> How do I do the following:
>
> # --> pppd notty | pppoe -I eth1 | --
> |_________________________________|
>
> I.E. connect the stdout of a process (or chain
> thereof) to its own stdin?
>
> So I wrote a program to do it, along the lines of:
>
> sixty-nine /bin/sh -c "pppd notty | pppoe -I eth1"
>
> With an executable approximately along the lines of
> (warning, pseudo-code, the other machine isn't hooked
> up to the internet at the moment for obvious reasons):
>
> int main(int argc, char *argv[], char *envp[])
> {
> int fd[2];
> pipe(fd);
> dup2(fd[0],0);
> dup2(fd[0],1);
> execve(argv[1],argv+1,envp);
> fprintf(stderr,"Bad.\n");
> exit(1);
> }
>
> And it didn't work. I made a little test program that
> writes to stdout and reads from stdin and reports to
> stderr, and it gets nothing. Apparently, the pipe
> fd's evaporate when the process does an execve.
>
> What do I do? (If anybody else knows an easier way to
> get pppoe working, that would be helpful too.
>
> Rob
>
> (P.S. WHY does pppd want to talk to a tty by default
> instead of stdin and stdout? Were the people who
> wrote it at all familiar with the unix philosophy?
> Just curious...)
>
> __________________________________________________
> Do You Yahoo!?
> Get email at your own domain with Yahoo! Mail.
> http://personal.mail.yahoo.com/
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/