chiark / gitweb /
Now seems to work.
authorian <ian>
Sun, 19 Sep 1999 19:09:43 +0000 (19:09 +0000)
committerian <ian>
Sun, 19 Sep 1999 19:09:43 +0000 (19:09 +0000)
ipif/service.c

index b76c75473b04a5a1e98129c7997fc6f750beec92..5ed6014893495b65ecae6459bcaf24e144d14e11 100644 (file)
@@ -695,18 +695,6 @@ static void netconfigure(void) {
     sysfatal("cannot exec ifconfig");
   }
 
     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,
   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) __attribute__((noreturn));
-static void copydata(void) {  
+static void copydata(void) {
+  int r;
+  
   pids.byname.cin= makesubproc(cin_entry);
   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);
   pids.byname.cout= makesubproc(cout_entry);
 
   for (;;) sigsuspend(&emptyset);