static int sock_write(BIO *b, const char *in, int inl) { int ret; bio_clear_socket_error(); ret = send(b->num, in, inl, 0); BIO_clear_retry_flags(b); if (ret <= 0) { if (bio_fd_should_retry(ret)) { BIO_set_retry_write(b); } } return ret; }
static int sock_write(BIO *b, const char *in, int inl) { int ret; bio_clear_socket_error(); #if defined(OPENSSL_WINDOWS) ret = send(b->num, in, inl, 0); #else ret = write(b->num, in, inl); #endif BIO_clear_retry_flags(b); if (ret <= 0) { if (bio_fd_should_retry(ret)) { BIO_set_retry_write(b); } } return ret; }
static int sock_read(BIO *b, char *out, int outl) { int ret = 0; if (out == NULL) { return 0; } bio_clear_socket_error(); ret = recv(b->num, out, outl, 0); BIO_clear_retry_flags(b); if (ret <= 0) { if (bio_fd_should_retry(ret)) { BIO_set_retry_read(b); } } return ret; }
static int sock_read(BIO *b, char *out, int outl) { int ret = 0; if (out == NULL) { return 0; } bio_clear_socket_error(); #if defined(OPENSSL_WINDOWS) ret = recv(b->num, out, outl, 0); #else ret = read(b->num, out, outl); #endif BIO_clear_retry_flags(b); if (ret <= 0) { if (bio_fd_should_retry(ret)) { BIO_set_retry_read(b); } } return ret; }
static int conn_write(BIO *bio, const char *in, int in_len) { int ret; BIO_CONNECT *data; data = (BIO_CONNECT *)bio->ptr; if (data->state != BIO_CONN_S_OK) { ret = conn_state(bio, data); if (ret <= 0) { return ret; } } bio_clear_socket_error(); ret = send(bio->num, in, in_len, 0); BIO_clear_retry_flags(bio); if (ret <= 0) { if (bio_fd_should_retry(ret)) { BIO_set_retry_write(bio); } } return ret; }
static int conn_read(BIO *bio, char *out, int out_len) { int ret = 0; BIO_CONNECT *data; data = (BIO_CONNECT *)bio->ptr; if (data->state != BIO_CONN_S_OK) { ret = conn_state(bio, data); if (ret <= 0) { return ret; } } bio_clear_socket_error(); ret = recv(bio->num, out, out_len, 0); BIO_clear_retry_flags(bio); if (ret <= 0) { if (bio_fd_should_retry(ret)) { BIO_set_retry_read(bio); } } return ret; }