| 1684 | | log_error_write(srv, __FILE__, __LINE__, "sds", "SSL:", |
|---|
| 1685 | | SSL_get_error(con->ssl, ret), |
|---|
| 1686 | | ERR_error_string(ERR_get_error(), NULL)); |
|---|
| 1687 | | return -1; |
|---|
| | 1684 | |
|---|
| | 1685 | switch ((ssl_r = SSL_get_error(con->ssl, ret))) { |
|---|
| | 1686 | case SSL_ERROR_WANT_WRITE: |
|---|
| | 1687 | case SSL_ERROR_WANT_READ: |
|---|
| | 1688 | break; |
|---|
| | 1689 | case SSL_ERROR_SYSCALL: |
|---|
| | 1690 | /* perhaps we have error waiting in our error-queue */ |
|---|
| | 1691 | if (0 != (err = ERR_get_error())) { |
|---|
| | 1692 | do { |
|---|
| | 1693 | log_error_write(srv, __FILE__, __LINE__, "sdds", "SSL:", |
|---|
| | 1694 | ssl_r, ret, |
|---|
| | 1695 | ERR_error_string(err, NULL)); |
|---|
| | 1696 | } while((err = ERR_get_error())); |
|---|
| | 1697 | } else { |
|---|
| | 1698 | log_error_write(srv, __FILE__, __LINE__, "sddds", "SSL (error):", |
|---|
| | 1699 | ssl_r, r, errno, |
|---|
| | 1700 | strerror(errno)); |
|---|
| | 1701 | } |
|---|
| | 1702 | |
|---|
| | 1703 | break; |
|---|
| | 1704 | default: |
|---|
| | 1705 | while((err = ERR_get_error())) { |
|---|
| | 1706 | log_error_write(srv, __FILE__, __LINE__, "sdds", "SSL:", |
|---|
| | 1707 | ssl_r, ret, |
|---|
| | 1708 | ERR_error_string(err, NULL)); |
|---|
| | 1709 | } |
|---|
| | 1710 | |
|---|
| | 1711 | break; |
|---|
| | 1712 | } |
|---|