doc: Documented htpipe.
[ashd.git] / src / plaintcp.c
index 6524955..56fc81c 100644 (file)
@@ -150,19 +150,19 @@ void servetcp(struct muth *muth, va_list args)
     vavar(int, fd);
     vavar(struct sockaddr_storage, name);
     vavar(struct tcpport *, stcp);
-    FILE *in;
+    struct bufio *in;
     struct conn conn;
     struct tcpconn tcp;
     
     memset(&conn, 0, sizeof(conn));
     memset(&tcp, 0, sizeof(tcp));
-    in = mtstdopen(fd, 1, 60, "r+");
+    in = mtbioopen(fd, 1, 60, "r+", NULL);
     conn.pdata = &tcp;
     conn.initreq = initreq;
     tcp.fd = fd;
     tcp.name = name;
     tcp.port = stcp;
-    serve(in, &conn);
+    serve(in, fd, &conn);
 }
 
 static void listenloop(struct muth *muth, va_list args)
@@ -183,6 +183,8 @@ static void listenloop(struct muth *muth, va_list args)
            if(ns < 0) {
                if(errno == EAGAIN)
                    break;
+               if(errno == ECONNABORTED)
+                   continue;
                flog(LOG_ERR, "accept: %s", strerror(errno));
                goto out;
            }