Make ot_recv less voracious.
[u/mdw/putty] / mac / otnet.c
index 7881e02..61c7fa5 100644 (file)
@@ -234,7 +234,7 @@ Socket ot_register(void *sock, Plug plug)
 }
 
 Socket ot_new(SockAddr addr, int port, int privport, int oobinline,
-             int nodelay, Plug plug)
+             int nodelay, int keepalive, Plug plug)
 {
     static struct socket_function_table fn_table = {
        ot_tcp_plug,
@@ -281,7 +281,7 @@ Socket ot_new(SockAddr addr, int port, int privport, int oobinline,
        return (Socket) ret;
     }
 
-    /* TODO: oobinline, nodelay */
+    /* TODO: oobinline, nodelay, keepalive */
 
     /*
      * Bind to local address.
@@ -468,18 +468,16 @@ void ot_poll(void)
 void ot_recv(Actual_Socket s)
 {
     OTResult o;
-    char buf[20480];
+    char buf[2048];
     OTFlags flags;
 
     if (s->frozen) return;
 
-    do {
-       o = OTRcv(s->ep, buf, sizeof(buf), &flags);
-       if (o > 0)
-           plug_receive(s->plug, 0, buf, o);
-       if (o < 0 && o != kOTNoDataErr)
-           plug_closing(s->plug, NULL, 0, 0); /* XXX Error msg */
-    } while (o > 0);
+    o = OTRcv(s->ep, buf, sizeof(buf), &flags);
+    if (o > 0)
+        plug_receive(s->plug, 0, buf, o);
+    if (o < 0 && o != kOTNoDataErr)
+        plug_closing(s->plug, NULL, 0, 0); /* XXX Error msg */
 }