48 lines · 1.0 KB · Text
RawDownload
--- /sys/src/cmd/aux/listen.c	Mon Nov  5 07:29:45 2018+++ ../patched/gridlisten.c	Fri Dec  7 23:24:27 2018@@ -31,6 +31,7 @@ void	scandir(char*, char*, char*, char*); void	becomenone(void); void	listendir(char*, char*, char*, int);+void	doregister(char*);  char	listenlog[] = "listen"; @@ -215,6 +216,8 @@ 						else 							exits("ctl"); 					}+					fprint(2, "registering %s\n", a->a);+					doregister(a->a); 					dolisten(proto, dir, ctl, srvdir, ds, &childs); 					close(ctl); 				}@@ -346,6 +349,28 @@ 	close(fd); 	if(newns("none", namespace) < 0) 		error("can't build namespace");+}++void+doregister(char *announce)+{+	int regfd;+	char *loc;++	switch(rfork(RFPROC|RFFDG)) {+	case -1:+		error("fork");+	case 0:+		if((loc=getenv("myip")) == 0)+			loc=getenv("sysname");+		regfd=open("/mnt/registry/new", OWRITE);+		fprint(regfd, "tcp!%s!%s sys %s user %s", loc, announce+6, getenv("sysname"), getenv("user"));+		for(;;)+			sleep(1000);+		break;+	default:+		return;+	} }  void