39 lines · 622 B · C
RawDownload
#include <u.h>#include <libc.h>#include <dat.h>#include <fns.h> // This started life as a straight rip-off from dial(2)voidmain(){	int dfd, acfd, lcfd;	char adir[40], ldir[40]; 	acfd = announce("tcp!*!8080", adir);	if (acfd < 0)		exits("announce failed"); 	for (;;) {		lcfd = listen(adir, ldir);		if (lcfd < 0)			exits("listen failed"); 		switch (fork()) {		case -1:			perror("fork failed");			close(lcfd);			break;		case 0:			dfd = accept(lcfd, ldir);			if (dfd < 0)				exits("accept failed"); 			handler(dfd);			exits(0); // should never get here		default:			close(lcfd);			break;		}	}}