Update WiFiClient.cpp (#3608)
fixed the connected() function so that it only checks errno if recv returns a value of -1. "in the even of an error, errno is set to indicate the error" --manpage This fixes the ESP32 Webserver when dealing with a modern webserver with a slow SD card.
This commit is contained in:
		
							parent
							
								
									86de90fe24
								
							
						
					
					
						commit
						89351e3ade
					
				@ -495,6 +495,8 @@ uint8_t WiFiClient::connected()
 | 
			
		||||
        int res = recv(fd(), &dummy, 0, MSG_DONTWAIT);
 | 
			
		||||
        // avoid unused var warning by gcc
 | 
			
		||||
        (void)res;
 | 
			
		||||
        // recv only sets errno if res is -1
 | 
			
		||||
        if (res < 0){
 | 
			
		||||
          switch (errno) {
 | 
			
		||||
              case EWOULDBLOCK:
 | 
			
		||||
              case ENOENT: //caused by vfs
 | 
			
		||||
@ -513,6 +515,9 @@ uint8_t WiFiClient::connected()
 | 
			
		||||
                  _connected = true;
 | 
			
		||||
                  break;
 | 
			
		||||
          }
 | 
			
		||||
        } else {
 | 
			
		||||
          _connected = true;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    return _connected;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user