|
|
|
@ -61,6 +61,12 @@ int network_write_chunkqueue_openssl(server *srv, connection *con, chunkqueue *c
|
|
|
|
|
switch ((ssl_r = SSL_get_error(con->ssl, r))) { |
|
|
|
|
case SSL_ERROR_WANT_WRITE: |
|
|
|
|
break; |
|
|
|
|
case SSL_ERROR_ZERO_RETURN: |
|
|
|
|
/* clean shutdown on the remote side */ |
|
|
|
|
|
|
|
|
|
if (r == 0) return -2; |
|
|
|
|
|
|
|
|
|
/* fall thourgh */ |
|
|
|
|
default: |
|
|
|
|
log_error_write(srv, __FILE__, __LINE__, "sdds", "SSL:",
|
|
|
|
|
ssl_r, r, |
|
|
|
@ -88,7 +94,6 @@ int network_write_chunkqueue_openssl(server *srv, connection *con, chunkqueue *c
|
|
|
|
|
char *p; |
|
|
|
|
# endif |
|
|
|
|
|
|
|
|
|
WP(); |
|
|
|
|
if (HANDLER_GO_ON != file_cache_get_entry(srv, con, c->data.file.name, &(con->fce))) { |
|
|
|
|
log_error_write(srv, __FILE__, __LINE__, "sb", |
|
|
|
|
strerror(errno), c->data.file.name); |
|
|
|
@ -124,6 +129,17 @@ int network_write_chunkqueue_openssl(server *srv, connection *con, chunkqueue *c
|
|
|
|
|
switch ((ssl_r = SSL_get_error(con->ssl, r))) { |
|
|
|
|
case SSL_ERROR_WANT_WRITE: |
|
|
|
|
break; |
|
|
|
|
case SSL_ERROR_ZERO_RETURN: |
|
|
|
|
/* clean shutdown on the remote side */ |
|
|
|
|
|
|
|
|
|
if (r == 0) { |
|
|
|
|
#if defined USE_MMAP |
|
|
|
|
munmap(p, c->data.file.length); |
|
|
|
|
#endif |
|
|
|
|
return -2; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* fall thourgh */ |
|
|
|
|
default: |
|
|
|
|
log_error_write(srv, __FILE__, __LINE__, "sdds", "SSL:",
|
|
|
|
|
ssl_r, r,
|
|
|
|
|