1159 |
int send_ssl_socket(ssl_connection *ssl, void *buffer, int len) { |
int send_ssl_socket(ssl_connection *ssl, void *buffer, int len) { |
1160 |
|
|
1161 |
#ifdef HAVE_OPENSSL |
#ifdef HAVE_OPENSSL |
1162 |
int ssl_error= 0; |
int n= 0; |
|
time_t ssl_time= time(NULL); |
|
|
|
|
|
ASSERT(ssl); |
|
|
|
|
|
while((ssl->ctx != NULL) && |
|
|
(ssl_error= SSL_write (ssl->handler, (void *) buffer, len)) < 0) { |
|
|
|
|
|
if((time(NULL)-ssl_time) > SSL_TIMEOUT) { |
|
1163 |
|
|
1164 |
log("%s: send_ssl_socket(): SSL service timeout\n", prog); |
ASSERT(ssl); |
|
break; |
|
|
|
|
|
} |
|
|
|
|
|
if (!handle_connection_error(ssl_error, ssl, "send_ssl_socket()")) { |
|
|
|
|
|
break; |
|
|
|
|
|
} |
|
1165 |
|
|
1166 |
|
do { |
1167 |
|
n= SSL_write(ssl->handler, buffer, len); |
1168 |
|
} while(n <= 0 && |
1169 |
|
BIO_should_retry(ssl->socket_bio) && |
1170 |
|
can_write(ssl->socket, 5)); |
1171 |
|
|
1172 |
|
if(n <= 0) { |
1173 |
|
return -1; |
1174 |
} |
} |
1175 |
|
|
1176 |
return ssl_error; |
return n; |
1177 |
|
|
1178 |
#else |
#else |
1179 |
|
|
1194 |
int recv_ssl_socket(ssl_connection *ssl, void *buffer, int len) { |
int recv_ssl_socket(ssl_connection *ssl, void *buffer, int len) { |
1195 |
|
|
1196 |
#ifdef HAVE_OPENSSL |
#ifdef HAVE_OPENSSL |
1197 |
int ssl_error; |
int n= 0; |
|
time_t ssl_time= time(NULL); |
|
1198 |
|
|
1199 |
ASSERT(ssl); |
ASSERT(ssl); |
1200 |
|
|
1201 |
while((ssl_error= SSL_read(ssl->handler, (void *) buffer, len)) < 0) { |
do { |
1202 |
|
n= SSL_read(ssl->handler, buffer, len); |
1203 |
if((time(NULL)-ssl_time) > SSL_TIMEOUT) { |
} while(n <= 0 && |
1204 |
|
BIO_should_retry(ssl->socket_bio) && |
1205 |
log("%s: recv_ssl_socket(): SSL service timeout\n", prog); |
can_read(ssl->socket, 1)); |
1206 |
break; |
|
1207 |
|
if(n <= 0) { |
1208 |
} |
return -1; |
|
|
|
|
if (!handle_connection_error(ssl_error, ssl, "recv_ssl_socket()")) { |
|
|
|
|
|
break; |
|
|
|
|
|
} |
|
1209 |
} |
} |
1210 |
|
|
1211 |
return ssl_error; |
return n; |
1212 |
|
|
1213 |
#else |
#else |
1214 |
|
|
1215 |
return -1; |
return -1; |