summaryrefslogtreecommitdiff
path: root/ipif/service.c
diff options
context:
space:
mode:
authorian <ian>1999-09-19 19:09:43 +0000
committerian <ian>1999-09-19 19:09:43 +0000
commit5f1c67ff94a72191a92c02205b91c321bc96695b (patch)
tree9e5327f064f62cb98a93f711c69ab928e4e73ddb /ipif/service.c
parent6d360a536b98cfa65d6ff447c666ecc66312d86e (diff)
downloaduserv-utils-5f1c67ff94a72191a92c02205b91c321bc96695b.tar.gz
Now seems to work.
Diffstat (limited to 'ipif/service.c')
-rw-r--r--ipif/service.c20
1 files changed, 7 insertions, 13 deletions
diff --git a/ipif/service.c b/ipif/service.c
index b76c754..5ed6014 100644
--- a/ipif/service.c
+++ b/ipif/service.c
@@ -695,18 +695,6 @@ static void netconfigure(void) {
sysfatal("cannot exec ifconfig");
}
- if (task()) {
- execlp("route","route", "add", "-host",localtxt,
- "dev",ifname, (char*)0);
- sysfatal("cannot exec route (for local)");
- }
-
- if (task()) {
- execlp("route","route", "add", "-host",peertxt,
- "dev",ifname, (char*)0);
- sysfatal("cannot exec route (for peer)");
- }
-
for (i=0; i<nexroutes; i++) {
if (task()) {
execlp("route","route", "add", "-net",exroutes[i].prefixtxt,
@@ -718,8 +706,14 @@ static void netconfigure(void) {
}
static void copydata(void) __attribute__((noreturn));
-static void copydata(void) {
+static void copydata(void) {
+ int r;
+
pids.byname.cin= makesubproc(cin_entry);
+ for (;;) {
+ r= write(1, "\300", 1); if (r==1) break;
+ assert(r==-1); if (errno != EINTR) sysfatal("send initial delim to confirm");
+ }
pids.byname.cout= makesubproc(cout_entry);
for (;;) sigsuspend(&emptyset);