Topic: What wolfSSL_recv will return when the network is broken
I have a server and client connected though wifi.
server receive code:
    int32_t recv_len = 0;
    char errbuffer[WOLFSSL_MAX_ERROR_SZ];
    unsigned int err;
    unsigned int rc = 0;
    do
    {
        recv_len = wolfSSL_recv(ssl, buffer, length, flags);
        Tr_Wrn("wolfSSL_read->recv_len:%d", recv_len);
        if (recv_len < 0)
        {
            err = wolfSSL_get_error(ssl, 0);
            Tr_Err("err = %d, %s\n", err, wolfSSL_ERR_error_string(err, errbuffer));
            if ((err == SSL_ERROR_WANT_READ) || (err == SSL_ERROR_WANT_WRITE))
            {
                Tr_Wrn("err SSL_ERROR_WANT_READ / SSL_ERROR_WANT_WRITE");
            }
            else
            {
                return -1;
            }
        }
        else if (recv_len == 0 )
        {
            Tr_Wrn("peer socket closed!!!");
            return 0;
        }
        else
        {
            rc += recv_len;
            buffer += recv_len;
        }
    } while((recv_len < 0) && ((err == SSL_ERROR_WANT_READ) || (err == SSL_ERROR_WANT_WRITE)));
The flags is set MSG_DONTWAIT. When server is receiving a big data from client, the wifi is broken suddenly.
Print log is:
viwi: 26037048-[viwi soc]-W-00:13:23.800-SSLSocket.cpp-79-wolfSSL_read->recv_len:-1
viwi: 26037049-[viwi soc]-E-00:13:23.800-SSLSocket.cpp-83-err = 2, non-blocking socket wants data to be read
viwi: 26037050-[viwi soc]-W-00:13:23.800-SSLSocket.cpp-86-err SSL_ERROR_WANT_READ / SSL_ERROR_WANT_WRITE
viwi: 26037051-[viwi soc]-W-00:13:23.801-SSLSocket.cpp-79-wolfSSL_read->recv_len:-1
viwi: 26037052-[viwi soc]-E-00:13:23.801-SSLSocket.cpp-83-err = 2, non-blocking socket wants data to be read
viwi: 26037053-[viwi soc]-W-00:13:23.801-SSLSocket.cpp-86-err SSL_ERROR_WANT_READ / SSL_ERROR_WANT_WRITE
viwi: 26037054-[viwi soc]-W-00:13:23.801-SSLSocket.cpp-79-wolfSSL_read->recv_len:-1
viwi: 26037055-[viwi soc]-E-00:13:23.801-SSLSocket.cpp-83-err = 2, non-blocking socket wants data to be read
viwi: 26037056-[viwi soc]-W-00:13:23.801-SSLSocket.cpp-86-err SSL_ERROR_WANT_READ / SSL_ERROR_WANT_WRITE
viwi: 26037057-[viwi soc]-W-00:13:23.801-SSLSocket.cpp-79-wolfSSL_read->recv_len:-1
viwi: 26037058-[viwi soc]-E-00:13:23.801-SSLSocket.cpp-83-err = 2, non-blocking socket wants data to be read
viwi: 26037059-[viwi soc]-W-00:13:23.801-SSLSocket.cpp-86-err SSL_ERROR_WANT_READ / SSL_ERROR_WANT_WRITE
viwi: 26037060-[viwi soc]-W-00:13:23.801-SSLSocket.cpp-79-wolfSSL_read->recv_len:-1
viwi: 26037061-[viwi soc]-E-00:13:23.801-SSLSocket.cpp-83-err = 2, non-blocking socket wants data to be read
viwi: 26037062-[viwi soc]-W-00:13:23.801-SSLSocket.cpp-86-err SSL_ERROR_WANT_READ / SSL_ERROR_WANT_WRITE
viwi: 26037063-[viwi soc]-W-00:13:23.801-SSLSocket.cpp-79-wolfSSL_read->recv_len:-1
viwi: 26037064-[viwi soc]-E-00:13:23.801-SSLSocket.cpp-83-err = 2, non-blocking socket wants data to be read
viwi: 26037065-[viwi soc]-W-00:13:23.801-SSLSocket.cpp-86-err SSL_ERROR_WANT_READ / SSL_ERROR_WANT_WRITE
viwi: 26037066-[viwi soc]-W-00:13:23.801-SSLSocket.cpp-79-wolfSSL_read->recv_len:-1
viwi: 26037067-[viwi soc]-E-00:13:23.801-SSLSocket.cpp-83-err = 2, non-blocking socket wants data to be read
viwi: 26037068-[viwi soc]-W-00:13:23.801-SSLSocket.cpp-86-err SSL_ERROR_WANT_READ / SSL_ERROR_WANT_WRITE
viwi: 26037069-[viwi soc]-W-00:13:23.801-SSLSocket.cpp-79-wolfSSL_read->recv_len:-1
viwi: 26037070-[viwi soc]-E-00:13:23.801-SSLSocket.cpp-83-err = 2, non-blocking socket wants data to be read
viwi: 26037071-[viwi soc]-W-00:13:23.801-SSLSocket.cpp-86-err SSL_ERROR_WANT_READ / SSL_ERROR_WANT_WRITE
viwi: 26037072-[viwi soc]-W-00:13:23.801-SSLSocket.cpp-79-wolfSSL_read->recv_len:-1
viwi: 26037073-[viwi soc]-E-00:13:23.801-SSLSocket.cpp-83-err = 2, non-blocking socket wants data to be read
viwi: 26037074-[viwi soc]-W-00:13:23.801-SSLSocket.cpp-86-err SSL_ERROR_WANT_READ / SSL_ERROR_WANT_WRITE
viwi: 26037075-[viwi soc]-W-00:13:23.801-SSLSocket.cpp-79-wolfSSL_read->recv_len:-1
viwi: 26037076-[viwi soc]-E-00:13:23.801-SSLSocket.cpp-83-err = 2, non-blocking socket wants data to be read
viwi: 26037077-[viwi soc]-W-00:13:23.801-SSLSocket.cpp-86-err SSL_ERROR_WANT_READ / SSL_ERROR_WANT_WRITE
viwi: 26037078-[viwi soc]-W-00:13:23.801-SSLSocket.cpp-79-wolfSSL_read->recv_len:-1
viwi: 26037079-[viwi soc]-E-00:13:23.801-SSLSocket.cpp-83-err = 2, non-blocking socket wants data to be read
viwi: 26037080-[viwi soc]-W-00:13:23.801-SSLSocket.cpp-86-err SSL_ERROR_WANT_READ / SSL_ERROR_WANT_WRITE
And will not stop printing this log.
So I want to know how can i know the connecting is broken and stop receiving.