diff options
author | David Timber <mieabby@gmail.com> | 2021-11-13 22:35:31 +0800 |
---|---|---|
committer | David Timber <mieabby@gmail.com> | 2021-11-13 22:35:31 +0800 |
commit | f5d9956c3e2343455a3025b9d38c539b680da8f5 (patch) | |
tree | 717c48f651899623f818a76f9d08ed7cb0aaee43 /src/mbedtls.c | |
parent | d19a792e58eba8f13d9c7a0160cc5f1402e7f117 (diff) |
Doc progress, improve prne_mbedtls_pth_handle() ..
* Add param to prne_mbedtls_pth_handle() for returning return value from
the function or poll().
Diffstat (limited to 'src/mbedtls.c')
-rw-r--r-- | src/mbedtls.c | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/src/mbedtls.c b/src/mbedtls.c index d2e0dfa..30c031e 100644 --- a/src/mbedtls.c +++ b/src/mbedtls.c @@ -176,15 +176,19 @@ bool prne_mbedtls_pth_handle ( mbedtls_ssl_context *ssl, int(*mbedtls_f)(mbedtls_ssl_context*), const int fd, - pth_event_t ev) + pth_event_t ev, + int *f_ret_out) { - int pollret; + int f_ret; + bool ret; struct pollfd pfd; pfd.fd = fd; while (true) { - switch (mbedtls_f(ssl)) { + f_ret = mbedtls_f(ssl); + + switch (f_ret) { case MBEDTLS_ERR_SSL_WANT_READ: pfd.events = POLLIN; break; @@ -192,18 +196,23 @@ bool prne_mbedtls_pth_handle ( pfd.events = POLLOUT; break; case 0: - return true; + ret = true; + goto END; default: - return false; + ret = false; + goto END; } - do { - pollret = prne_pth_poll(&pfd, 1, -1, ev); - if (pollret < 0) { - return false; - } - } while (false); + f_ret = prne_pth_poll(&pfd, 1, -1, ev); + if (f_ret < 0) { + ret = false; + goto END; + } } + +END: + prne_chk_assign(f_ret_out, f_ret); + return ret; } bool prne_mbedtls_verify_alp ( |