htparser: Use bufio instead of stdio for greater responsiveness.
[ashd.git] / src / plaintcp.c
index 6524955..de99dcd 100644 (file)
@@ -150,13 +150,13 @@ 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;
@@ -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;
            }