Make socket read (SSL_read) error handling more resilient: log and continue instead of exit

This commit is contained in:
Olof hagsand 2022-05-16 19:34:00 +02:00
parent 3a336838f7
commit 50fcedafac

View file

@ -505,7 +505,7 @@ read_ssl(restconf_conn *rc,
int retval = -1; int retval = -1;
int sslerr; int sslerr;
if ((*np = SSL_read(rc->rc_ssl, buf, sz)) < 0){ if ((*np = SSL_read(rc->rc_ssl, buf, sz)) <= 0){
sslerr = SSL_get_error(rc->rc_ssl, *np); sslerr = SSL_get_error(rc->rc_ssl, *np);
clicon_debug(1, "%s SSL_read() n:%zd errno:%d sslerr:%d", __FUNCTION__, *np, errno, sslerr); clicon_debug(1, "%s SSL_read() n:%zd errno:%d sslerr:%d", __FUNCTION__, *np, errno, sslerr);
switch (sslerr){ switch (sslerr){
@ -520,12 +520,17 @@ read_ssl(restconf_conn *rc,
*again = 1; *again = 1;
break; break;
default: default:
clicon_err(OE_XML, errno, "SSL_read"); #if 1 /* Make socket read error handling more resilient: log and continue instead of exit */
clicon_log(LOG_WARNING, "%s SSL_read(): %s", __FUNCTION__, strerror(errno));
*np = 0;
#else
clicon_err(OE_XML, errno, "SSL_read %d", sslerr);
goto done; goto done;
#endif
} /* switch */ } /* switch */
} }
retval = 0; retval = 0;
done: // done:
clicon_debug(1, "%s %d", __FUNCTION__, retval); clicon_debug(1, "%s %d", __FUNCTION__, retval);
return retval; return retval;
} }