done = 0;
}
- while (!done) {
- if (data_available(ftp, fd)) {
- ERR_clear_error();
- nread = SSL_read(ssl_handle, buf, sizeof(buf));
+ while (!done && data_available(ftp, fd)) {
+ ERR_clear_error();
+ nread = SSL_read(ssl_handle, buf, sizeof(buf));
+ if (nread <= 0) {
err = SSL_get_error(ssl_handle, nread);
switch (err) {
case SSL_ERROR_NONE: /* this is not an error */
break;
default:
if ((sslerror = ERR_get_error())) {
- ERR_error_string_n(sslerror, buf, sizeof(buf));
+ ERR_error_string_n(sslerror, buf, sizeof(buf));
+ php_error_docref(NULL, E_WARNING, "SSL_read on shutdown: %s", buf);
+ } else if (errno) {
+ php_error_docref(NULL, E_WARNING, "SSL_read on shutdown: %s (%d)", strerror(errno), errno);
}
- php_error_docref(NULL, E_WARNING, "SSL_read on shutdown: %s (%d)", (sslerror ? buf : strerror(errno)), errno);
done = 1;
break;
}