Jelajahi Sumber

Revert "socket/netconn recv: FIN should only be reported once (as '0' for sockets, as 'ERR_CLSD' for netconns)"

This reverts commit db3a4e31586f8614b0a27b482406b0c212a4e08a.

See description of regression in bug #52417
Joel Cunningham 8 tahun lalu
induk
melakukan
ebcae98ae6
1 mengubah file dengan 2 tambahan dan 2 penghapusan
  1. 2 2
      src/api/api_lib.c

+ 2 - 2
src/api/api_lib.c

@@ -646,8 +646,8 @@ netconn_recv_data_tcp(struct netconn *conn, struct pbuf **new_buf, u8_t apiflags
 #endif /* LWIP_TCP */
 
   if (!sys_mbox_valid(&conn->recvmbox)) {
-    /* This only happens when calling this function more than once *after* receiving FIN */
-    return ERR_CONN;
+    /* This happens when calling this function after receiving FIN */
+    return sys_mbox_valid(&conn->acceptmbox) ? ERR_CONN : ERR_CLSD;
   }
 
   if (!(apiflags & NETCONN_NOAUTORCVD)) {