aboutsummaryrefslogtreecommitdiff
path: root/muswd.c
diff options
context:
space:
mode:
Diffstat (limited to 'muswd.c')
-rw-r--r--muswd.c26
1 files changed, 23 insertions, 3 deletions
diff --git a/muswd.c b/muswd.c
index 6b0cdf2..88d1bb7 100644
--- a/muswd.c
+++ b/muswd.c
@@ -29,9 +29,28 @@ iolisten(Ioproc *io, char *adir, char *ldir)
}
void
+procnetrecv(void *arg)
+{
+ uchar buf[1024];
+ int fd, n;
+ ulong kdown;
+ Ioproc *io;
+
+ fd = *(int*)arg;
+ io = ioproc();
+
+ while((n = ioread(io, fd, buf, sizeof buf)) > 0){
+ unpack(buf, n, "k", &kdown);
+ fprint(2, "%d (%d) [%d] rcvd %.*lub\n", threadid(), threadpid(threadid()), getpid(), sizeof(kdown)*8, kdown);
+ }
+ closeioproc(io);
+ threadexits(nil);
+}
+
+void
threadlisten(void *arg)
{
- int lcfd, dfd;
+ int lcfd, dfd, pid;
char *adir, ldir[40];
Ioproc *io;
@@ -56,9 +75,10 @@ threadlisten(void *arg)
lobby->takeseat(lobby, ldir, lcfd, dfd);
+ pid = proccreate(procnetrecv, &dfd, 4096);
+
if(debug)
- fprint(2, "added conn for %lud conns at %lud max\n",
- lobby->nseats, lobby->cap);
+ fprint(2, "forked %d for new conn\n", pid);
}
}