cmake: fix unity builds for more build combinations
By using unique static function/variable names in source files implementing these interfaces. - OpenLDAP combined with any SSH backend. - MultiSSL with mbedTLS, OpenSSL, wolfSSL, SecureTransport. Closes #12027
This commit is contained in:
parent
3fd80c7b59
commit
fd328fcaf1
@ -199,11 +199,11 @@ struct ldapreqinfo {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* state()
|
* oldap_state()
|
||||||
*
|
*
|
||||||
* This is the ONLY way to change LDAP state!
|
* This is the ONLY way to change LDAP state!
|
||||||
*/
|
*/
|
||||||
static void state(struct Curl_easy *data, ldapstate newstate)
|
static void oldap_state(struct Curl_easy *data, ldapstate newstate)
|
||||||
{
|
{
|
||||||
struct ldapconninfo *ldapc = data->conn->proto.ldapc;
|
struct ldapconninfo *ldapc = data->conn->proto.ldapc;
|
||||||
|
|
||||||
@ -444,7 +444,7 @@ static CURLcode oldap_perform_bind(struct Curl_easy *data, ldapstate newstate)
|
|||||||
rc = ldap_sasl_bind(li->ld, binddn, LDAP_SASL_SIMPLE, &passwd,
|
rc = ldap_sasl_bind(li->ld, binddn, LDAP_SASL_SIMPLE, &passwd,
|
||||||
NULL, NULL, &li->msgid);
|
NULL, NULL, &li->msgid);
|
||||||
if(rc == LDAP_SUCCESS)
|
if(rc == LDAP_SUCCESS)
|
||||||
state(data, newstate);
|
oldap_state(data, newstate);
|
||||||
else
|
else
|
||||||
result = oldap_map_error(rc,
|
result = oldap_map_error(rc,
|
||||||
data->state.aptr.user?
|
data->state.aptr.user?
|
||||||
@ -467,7 +467,7 @@ static CURLcode oldap_perform_mechs(struct Curl_easy *data)
|
|||||||
(char **) supportedSASLMechanisms, 0,
|
(char **) supportedSASLMechanisms, 0,
|
||||||
NULL, NULL, NULL, 0, &li->msgid);
|
NULL, NULL, NULL, 0, &li->msgid);
|
||||||
if(rc == LDAP_SUCCESS)
|
if(rc == LDAP_SUCCESS)
|
||||||
state(data, OLDAP_MECHS);
|
oldap_state(data, OLDAP_MECHS);
|
||||||
else
|
else
|
||||||
result = oldap_map_error(rc, CURLE_LOGIN_DENIED);
|
result = oldap_map_error(rc, CURLE_LOGIN_DENIED);
|
||||||
return result;
|
return result;
|
||||||
@ -480,7 +480,7 @@ static CURLcode oldap_perform_sasl(struct Curl_easy *data)
|
|||||||
struct ldapconninfo *li = data->conn->proto.ldapc;
|
struct ldapconninfo *li = data->conn->proto.ldapc;
|
||||||
CURLcode result = Curl_sasl_start(&li->sasl, data, TRUE, &progress);
|
CURLcode result = Curl_sasl_start(&li->sasl, data, TRUE, &progress);
|
||||||
|
|
||||||
state(data, OLDAP_SASL);
|
oldap_state(data, OLDAP_SASL);
|
||||||
if(!result && progress != SASL_INPROGRESS)
|
if(!result && progress != SASL_INPROGRESS)
|
||||||
result = CURLE_LOGIN_DENIED;
|
result = CURLE_LOGIN_DENIED;
|
||||||
return result;
|
return result;
|
||||||
@ -503,7 +503,7 @@ static CURLcode oldap_ssl_connect(struct Curl_easy *data, ldapstate newstate)
|
|||||||
|
|
||||||
result = Curl_conn_connect(data, FIRSTSOCKET, FALSE, &ssldone);
|
result = Curl_conn_connect(data, FIRSTSOCKET, FALSE, &ssldone);
|
||||||
if(!result) {
|
if(!result) {
|
||||||
state(data, newstate);
|
oldap_state(data, newstate);
|
||||||
|
|
||||||
if(ssldone) {
|
if(ssldone) {
|
||||||
Sockbuf *sb;
|
Sockbuf *sb;
|
||||||
@ -527,7 +527,7 @@ static CURLcode oldap_perform_starttls(struct Curl_easy *data)
|
|||||||
int rc = ldap_start_tls(li->ld, NULL, NULL, &li->msgid);
|
int rc = ldap_start_tls(li->ld, NULL, NULL, &li->msgid);
|
||||||
|
|
||||||
if(rc == LDAP_SUCCESS)
|
if(rc == LDAP_SUCCESS)
|
||||||
state(data, OLDAP_STARTTLS);
|
oldap_state(data, OLDAP_STARTTLS);
|
||||||
else
|
else
|
||||||
result = oldap_map_error(rc, CURLE_USE_SSL_FAILED);
|
result = oldap_map_error(rc, CURLE_USE_SSL_FAILED);
|
||||||
return result;
|
return result;
|
||||||
@ -682,7 +682,7 @@ static CURLcode oldap_state_sasl_resp(struct Curl_easy *data,
|
|||||||
else {
|
else {
|
||||||
result = Curl_sasl_continue(&li->sasl, data, code, &progress);
|
result = Curl_sasl_continue(&li->sasl, data, code, &progress);
|
||||||
if(!result && progress != SASL_INPROGRESS)
|
if(!result && progress != SASL_INPROGRESS)
|
||||||
state(data, OLDAP_STOP);
|
oldap_state(data, OLDAP_STOP);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(li->servercred)
|
if(li->servercred)
|
||||||
@ -710,7 +710,7 @@ static CURLcode oldap_state_bind_resp(struct Curl_easy *data, LDAPMessage *msg,
|
|||||||
result = oldap_map_error(rc, CURLE_LDAP_CANNOT_BIND);
|
result = oldap_map_error(rc, CURLE_LDAP_CANNOT_BIND);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
state(data, OLDAP_STOP);
|
oldap_state(data, OLDAP_STOP);
|
||||||
|
|
||||||
if(bv)
|
if(bv)
|
||||||
ber_bvfree(bv);
|
ber_bvfree(bv);
|
||||||
@ -804,7 +804,8 @@ static CURLcode oldap_connecting(struct Curl_easy *data, bool *done)
|
|||||||
else if(data->state.aptr.user)
|
else if(data->state.aptr.user)
|
||||||
result = oldap_perform_bind(data, OLDAP_BIND);
|
result = oldap_perform_bind(data, OLDAP_BIND);
|
||||||
else {
|
else {
|
||||||
state(data, OLDAP_STOP); /* Version 3 supported: no bind required */
|
/* Version 3 supported: no bind required */
|
||||||
|
oldap_state(data, OLDAP_STOP);
|
||||||
result = CURLE_OK;
|
result = CURLE_OK;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -156,7 +156,8 @@ static void mbed_debug(void *context, int level, const char *f_name,
|
|||||||
#else
|
#else
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static int bio_cf_write(void *bio, const unsigned char *buf, size_t blen)
|
static int mbedtls_bio_cf_write(void *bio,
|
||||||
|
const unsigned char *buf, size_t blen)
|
||||||
{
|
{
|
||||||
struct Curl_cfilter *cf = bio;
|
struct Curl_cfilter *cf = bio;
|
||||||
struct Curl_easy *data = CF_DATA_CURRENT(cf);
|
struct Curl_easy *data = CF_DATA_CURRENT(cf);
|
||||||
@ -165,7 +166,7 @@ static int bio_cf_write(void *bio, const unsigned char *buf, size_t blen)
|
|||||||
|
|
||||||
DEBUGASSERT(data);
|
DEBUGASSERT(data);
|
||||||
nwritten = Curl_conn_cf_send(cf->next, data, (char *)buf, blen, &result);
|
nwritten = Curl_conn_cf_send(cf->next, data, (char *)buf, blen, &result);
|
||||||
CURL_TRC_CF(data, cf, "bio_cf_out_write(len=%zu) -> %zd, err=%d",
|
CURL_TRC_CF(data, cf, "mbedtls_bio_cf_out_write(len=%zu) -> %zd, err=%d",
|
||||||
blen, nwritten, result);
|
blen, nwritten, result);
|
||||||
if(nwritten < 0 && CURLE_AGAIN == result) {
|
if(nwritten < 0 && CURLE_AGAIN == result) {
|
||||||
nwritten = MBEDTLS_ERR_SSL_WANT_WRITE;
|
nwritten = MBEDTLS_ERR_SSL_WANT_WRITE;
|
||||||
@ -173,7 +174,7 @@ static int bio_cf_write(void *bio, const unsigned char *buf, size_t blen)
|
|||||||
return (int)nwritten;
|
return (int)nwritten;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int bio_cf_read(void *bio, unsigned char *buf, size_t blen)
|
static int mbedtls_bio_cf_read(void *bio, unsigned char *buf, size_t blen)
|
||||||
{
|
{
|
||||||
struct Curl_cfilter *cf = bio;
|
struct Curl_cfilter *cf = bio;
|
||||||
struct Curl_easy *data = CF_DATA_CURRENT(cf);
|
struct Curl_easy *data = CF_DATA_CURRENT(cf);
|
||||||
@ -186,7 +187,7 @@ static int bio_cf_read(void *bio, unsigned char *buf, size_t blen)
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
nread = Curl_conn_cf_recv(cf->next, data, (char *)buf, blen, &result);
|
nread = Curl_conn_cf_recv(cf->next, data, (char *)buf, blen, &result);
|
||||||
CURL_TRC_CF(data, cf, "bio_cf_in_read(len=%zu) -> %zd, err=%d",
|
CURL_TRC_CF(data, cf, "mbedtls_bio_cf_in_read(len=%zu) -> %zd, err=%d",
|
||||||
blen, nread, result);
|
blen, nread, result);
|
||||||
if(nread < 0 && CURLE_AGAIN == result) {
|
if(nread < 0 && CURLE_AGAIN == result) {
|
||||||
nread = MBEDTLS_ERR_SSL_WANT_READ;
|
nread = MBEDTLS_ERR_SSL_WANT_READ;
|
||||||
@ -591,7 +592,9 @@ mbed_connect_step1(struct Curl_cfilter *cf, struct Curl_easy *data)
|
|||||||
|
|
||||||
mbedtls_ssl_conf_rng(&backend->config, mbedtls_ctr_drbg_random,
|
mbedtls_ssl_conf_rng(&backend->config, mbedtls_ctr_drbg_random,
|
||||||
&backend->ctr_drbg);
|
&backend->ctr_drbg);
|
||||||
mbedtls_ssl_set_bio(&backend->ssl, cf, bio_cf_write, bio_cf_read,
|
mbedtls_ssl_set_bio(&backend->ssl, cf,
|
||||||
|
mbedtls_bio_cf_write,
|
||||||
|
mbedtls_bio_cf_read,
|
||||||
NULL /* rev_timeout() */);
|
NULL /* rev_timeout() */);
|
||||||
|
|
||||||
mbedtls_ssl_conf_ciphersuites(&backend->config,
|
mbedtls_ssl_conf_ciphersuites(&backend->config,
|
||||||
|
|||||||
@ -661,7 +661,7 @@ CURLcode Curl_ossl_certchain(struct Curl_easy *data, SSL *ssl)
|
|||||||
#define BIO_set_shutdown(x,v) ((x)->shutdown=(v))
|
#define BIO_set_shutdown(x,v) ((x)->shutdown=(v))
|
||||||
#endif /* USE_PRE_1_1_API */
|
#endif /* USE_PRE_1_1_API */
|
||||||
|
|
||||||
static int bio_cf_create(BIO *bio)
|
static int ossl_bio_cf_create(BIO *bio)
|
||||||
{
|
{
|
||||||
BIO_set_shutdown(bio, 1);
|
BIO_set_shutdown(bio, 1);
|
||||||
BIO_set_init(bio, 1);
|
BIO_set_init(bio, 1);
|
||||||
@ -672,14 +672,14 @@ static int bio_cf_create(BIO *bio)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int bio_cf_destroy(BIO *bio)
|
static int ossl_bio_cf_destroy(BIO *bio)
|
||||||
{
|
{
|
||||||
if(!bio)
|
if(!bio)
|
||||||
return 0;
|
return 0;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static long bio_cf_ctrl(BIO *bio, int cmd, long num, void *ptr)
|
static long ossl_bio_cf_ctrl(BIO *bio, int cmd, long num, void *ptr)
|
||||||
{
|
{
|
||||||
struct Curl_cfilter *cf = BIO_get_data(bio);
|
struct Curl_cfilter *cf = BIO_get_data(bio);
|
||||||
long ret = 1;
|
long ret = 1;
|
||||||
@ -713,7 +713,7 @@ static long bio_cf_ctrl(BIO *bio, int cmd, long num, void *ptr)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int bio_cf_out_write(BIO *bio, const char *buf, int blen)
|
static int ossl_bio_cf_out_write(BIO *bio, const char *buf, int blen)
|
||||||
{
|
{
|
||||||
struct Curl_cfilter *cf = BIO_get_data(bio);
|
struct Curl_cfilter *cf = BIO_get_data(bio);
|
||||||
struct ssl_connect_data *connssl = cf->ctx;
|
struct ssl_connect_data *connssl = cf->ctx;
|
||||||
@ -725,7 +725,7 @@ static int bio_cf_out_write(BIO *bio, const char *buf, int blen)
|
|||||||
|
|
||||||
DEBUGASSERT(data);
|
DEBUGASSERT(data);
|
||||||
nwritten = Curl_conn_cf_send(cf->next, data, buf, blen, &result);
|
nwritten = Curl_conn_cf_send(cf->next, data, buf, blen, &result);
|
||||||
CURL_TRC_CF(data, cf, "bio_cf_out_write(len=%d) -> %d, err=%d",
|
CURL_TRC_CF(data, cf, "ossl_bio_cf_out_write(len=%d) -> %d, err=%d",
|
||||||
blen, (int)nwritten, result);
|
blen, (int)nwritten, result);
|
||||||
BIO_clear_retry_flags(bio);
|
BIO_clear_retry_flags(bio);
|
||||||
backend->io_result = result;
|
backend->io_result = result;
|
||||||
@ -736,7 +736,7 @@ static int bio_cf_out_write(BIO *bio, const char *buf, int blen)
|
|||||||
return (int)nwritten;
|
return (int)nwritten;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int bio_cf_in_read(BIO *bio, char *buf, int blen)
|
static int ossl_bio_cf_in_read(BIO *bio, char *buf, int blen)
|
||||||
{
|
{
|
||||||
struct Curl_cfilter *cf = BIO_get_data(bio);
|
struct Curl_cfilter *cf = BIO_get_data(bio);
|
||||||
struct ssl_connect_data *connssl = cf->ctx;
|
struct ssl_connect_data *connssl = cf->ctx;
|
||||||
@ -752,7 +752,7 @@ static int bio_cf_in_read(BIO *bio, char *buf, int blen)
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
nread = Curl_conn_cf_recv(cf->next, data, buf, blen, &result);
|
nread = Curl_conn_cf_recv(cf->next, data, buf, blen, &result);
|
||||||
CURL_TRC_CF(data, cf, "bio_cf_in_read(len=%d) -> %d, err=%d",
|
CURL_TRC_CF(data, cf, "ossl_bio_cf_in_read(len=%d) -> %d, err=%d",
|
||||||
blen, (int)nread, result);
|
blen, (int)nread, result);
|
||||||
BIO_clear_retry_flags(bio);
|
BIO_clear_retry_flags(bio);
|
||||||
backend->io_result = result;
|
backend->io_result = result;
|
||||||
@ -777,42 +777,42 @@ static int bio_cf_in_read(BIO *bio, char *buf, int blen)
|
|||||||
|
|
||||||
#if USE_PRE_1_1_API
|
#if USE_PRE_1_1_API
|
||||||
|
|
||||||
static BIO_METHOD bio_cf_meth_1_0 = {
|
static BIO_METHOD ossl_bio_cf_meth_1_0 = {
|
||||||
BIO_TYPE_MEM,
|
BIO_TYPE_MEM,
|
||||||
"OpenSSL CF BIO",
|
"OpenSSL CF BIO",
|
||||||
bio_cf_out_write,
|
ossl_bio_cf_out_write,
|
||||||
bio_cf_in_read,
|
ossl_bio_cf_in_read,
|
||||||
NULL, /* puts is never called */
|
NULL, /* puts is never called */
|
||||||
NULL, /* gets is never called */
|
NULL, /* gets is never called */
|
||||||
bio_cf_ctrl,
|
ossl_bio_cf_ctrl,
|
||||||
bio_cf_create,
|
ossl_bio_cf_create,
|
||||||
bio_cf_destroy,
|
ossl_bio_cf_destroy,
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
static BIO_METHOD *bio_cf_method_create(void)
|
static BIO_METHOD *ossl_bio_cf_method_create(void)
|
||||||
{
|
{
|
||||||
return &bio_cf_meth_1_0;
|
return &ossl_bio_cf_meth_1_0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define bio_cf_method_free(m) Curl_nop_stmt
|
#define ossl_bio_cf_method_free(m) Curl_nop_stmt
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
static BIO_METHOD *bio_cf_method_create(void)
|
static BIO_METHOD *ossl_bio_cf_method_create(void)
|
||||||
{
|
{
|
||||||
BIO_METHOD *m = BIO_meth_new(BIO_TYPE_MEM, "OpenSSL CF BIO");
|
BIO_METHOD *m = BIO_meth_new(BIO_TYPE_MEM, "OpenSSL CF BIO");
|
||||||
if(m) {
|
if(m) {
|
||||||
BIO_meth_set_write(m, &bio_cf_out_write);
|
BIO_meth_set_write(m, &ossl_bio_cf_out_write);
|
||||||
BIO_meth_set_read(m, &bio_cf_in_read);
|
BIO_meth_set_read(m, &ossl_bio_cf_in_read);
|
||||||
BIO_meth_set_ctrl(m, &bio_cf_ctrl);
|
BIO_meth_set_ctrl(m, &ossl_bio_cf_ctrl);
|
||||||
BIO_meth_set_create(m, &bio_cf_create);
|
BIO_meth_set_create(m, &ossl_bio_cf_create);
|
||||||
BIO_meth_set_destroy(m, &bio_cf_destroy);
|
BIO_meth_set_destroy(m, &ossl_bio_cf_destroy);
|
||||||
}
|
}
|
||||||
return m;
|
return m;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void bio_cf_method_free(BIO_METHOD *m)
|
static void ossl_bio_cf_method_free(BIO_METHOD *m)
|
||||||
{
|
{
|
||||||
if(m)
|
if(m)
|
||||||
BIO_meth_free(m);
|
BIO_meth_free(m);
|
||||||
@ -1927,7 +1927,7 @@ static void ossl_close(struct Curl_cfilter *cf, struct Curl_easy *data)
|
|||||||
backend->x509_store_setup = FALSE;
|
backend->x509_store_setup = FALSE;
|
||||||
}
|
}
|
||||||
if(backend->bio_method) {
|
if(backend->bio_method) {
|
||||||
bio_cf_method_free(backend->bio_method);
|
ossl_bio_cf_method_free(backend->bio_method);
|
||||||
backend->bio_method = NULL;
|
backend->bio_method = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3817,7 +3817,7 @@ static CURLcode ossl_connect_step1(struct Curl_cfilter *cf,
|
|||||||
Curl_ssl_sessionid_unlock(data);
|
Curl_ssl_sessionid_unlock(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
backend->bio_method = bio_cf_method_create();
|
backend->bio_method = ossl_bio_cf_method_create();
|
||||||
if(!backend->bio_method)
|
if(!backend->bio_method)
|
||||||
return CURLE_OUT_OF_MEMORY;
|
return CURLE_OUT_OF_MEMORY;
|
||||||
bio = BIO_new(backend->bio_method);
|
bio = BIO_new(backend->bio_method);
|
||||||
|
|||||||
@ -830,9 +830,9 @@ static const unsigned char ecDsaSecp384r1SpkiHeader[] = {
|
|||||||
#endif /* SECTRANSP_PINNEDPUBKEY_V1 */
|
#endif /* SECTRANSP_PINNEDPUBKEY_V1 */
|
||||||
#endif /* SECTRANSP_PINNEDPUBKEY */
|
#endif /* SECTRANSP_PINNEDPUBKEY */
|
||||||
|
|
||||||
static OSStatus bio_cf_in_read(SSLConnectionRef connection,
|
static OSStatus sectransp_bio_cf_in_read(SSLConnectionRef connection,
|
||||||
void *buf,
|
void *buf,
|
||||||
size_t *dataLength) /* IN/OUT */
|
size_t *dataLength) /* IN/OUT */
|
||||||
{
|
{
|
||||||
struct Curl_cfilter *cf = (struct Curl_cfilter *)connection;
|
struct Curl_cfilter *cf = (struct Curl_cfilter *)connection;
|
||||||
struct ssl_connect_data *connssl = cf->ctx;
|
struct ssl_connect_data *connssl = cf->ctx;
|
||||||
@ -870,9 +870,9 @@ static OSStatus bio_cf_in_read(SSLConnectionRef connection,
|
|||||||
return rtn;
|
return rtn;
|
||||||
}
|
}
|
||||||
|
|
||||||
static OSStatus bio_cf_out_write(SSLConnectionRef connection,
|
static OSStatus sectransp_bio_cf_out_write(SSLConnectionRef connection,
|
||||||
const void *buf,
|
const void *buf,
|
||||||
size_t *dataLength) /* IN/OUT */
|
size_t *dataLength) /* IN/OUT */
|
||||||
{
|
{
|
||||||
struct Curl_cfilter *cf = (struct Curl_cfilter *)connection;
|
struct Curl_cfilter *cf = (struct Curl_cfilter *)connection;
|
||||||
struct ssl_connect_data *connssl = cf->ctx;
|
struct ssl_connect_data *connssl = cf->ctx;
|
||||||
@ -2100,7 +2100,9 @@ static CURLcode sectransp_connect_step1(struct Curl_cfilter *cf,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
err = SSLSetIOFuncs(backend->ssl_ctx, bio_cf_in_read, bio_cf_out_write);
|
err = SSLSetIOFuncs(backend->ssl_ctx,
|
||||||
|
sectransp_bio_cf_in_read,
|
||||||
|
sectransp_bio_cf_out_write);
|
||||||
if(err != noErr) {
|
if(err != noErr) {
|
||||||
failf(data, "SSL: SSLSetIOFuncs() failed: OSStatus %d", err);
|
failf(data, "SSL: SSLSetIOFuncs() failed: OSStatus %d", err);
|
||||||
return CURLE_SSL_CONNECT_ERROR;
|
return CURLE_SSL_CONNECT_ERROR;
|
||||||
|
|||||||
@ -229,7 +229,7 @@ static const struct group_name_map gnm[] = {
|
|||||||
|
|
||||||
#ifdef USE_BIO_CHAIN
|
#ifdef USE_BIO_CHAIN
|
||||||
|
|
||||||
static int bio_cf_create(WOLFSSL_BIO *bio)
|
static int wolfssl_bio_cf_create(WOLFSSL_BIO *bio)
|
||||||
{
|
{
|
||||||
wolfSSL_BIO_set_shutdown(bio, 1);
|
wolfSSL_BIO_set_shutdown(bio, 1);
|
||||||
wolfSSL_BIO_set_init(bio, 1);
|
wolfSSL_BIO_set_init(bio, 1);
|
||||||
@ -237,14 +237,14 @@ static int bio_cf_create(WOLFSSL_BIO *bio)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int bio_cf_destroy(WOLFSSL_BIO *bio)
|
static int wolfssl_bio_cf_destroy(WOLFSSL_BIO *bio)
|
||||||
{
|
{
|
||||||
if(!bio)
|
if(!bio)
|
||||||
return 0;
|
return 0;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static long bio_cf_ctrl(WOLFSSL_BIO *bio, int cmd, long num, void *ptr)
|
static long wolfssl_bio_cf_ctrl(WOLFSSL_BIO *bio, int cmd, long num, void *ptr)
|
||||||
{
|
{
|
||||||
struct Curl_cfilter *cf = BIO_get_data(bio);
|
struct Curl_cfilter *cf = BIO_get_data(bio);
|
||||||
long ret = 1;
|
long ret = 1;
|
||||||
@ -278,7 +278,8 @@ static long bio_cf_ctrl(WOLFSSL_BIO *bio, int cmd, long num, void *ptr)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int bio_cf_out_write(WOLFSSL_BIO *bio, const char *buf, int blen)
|
static int wolfssl_bio_cf_out_write(WOLFSSL_BIO *bio,
|
||||||
|
const char *buf, int blen)
|
||||||
{
|
{
|
||||||
struct Curl_cfilter *cf = wolfSSL_BIO_get_data(bio);
|
struct Curl_cfilter *cf = wolfSSL_BIO_get_data(bio);
|
||||||
struct ssl_connect_data *connssl = cf->ctx;
|
struct ssl_connect_data *connssl = cf->ctx;
|
||||||
@ -299,7 +300,7 @@ static int bio_cf_out_write(WOLFSSL_BIO *bio, const char *buf, int blen)
|
|||||||
return (int)nwritten;
|
return (int)nwritten;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int bio_cf_in_read(WOLFSSL_BIO *bio, char *buf, int blen)
|
static int wolfssl_bio_cf_in_read(WOLFSSL_BIO *bio, char *buf, int blen)
|
||||||
{
|
{
|
||||||
struct Curl_cfilter *cf = wolfSSL_BIO_get_data(bio);
|
struct Curl_cfilter *cf = wolfSSL_BIO_get_data(bio);
|
||||||
struct ssl_connect_data *connssl = cf->ctx;
|
struct ssl_connect_data *connssl = cf->ctx;
|
||||||
@ -323,27 +324,27 @@ static int bio_cf_in_read(WOLFSSL_BIO *bio, char *buf, int blen)
|
|||||||
return (int)nread;
|
return (int)nread;
|
||||||
}
|
}
|
||||||
|
|
||||||
static WOLFSSL_BIO_METHOD *bio_cf_method = NULL;
|
static WOLFSSL_BIO_METHOD *wolfssl_bio_cf_method = NULL;
|
||||||
|
|
||||||
static void bio_cf_init_methods(void)
|
static void wolfssl_bio_cf_init_methods(void)
|
||||||
{
|
{
|
||||||
bio_cf_method = wolfSSL_BIO_meth_new(BIO_TYPE_MEM, "wolfSSL CF BIO");
|
wolfssl_bio_cf_method = wolfSSL_BIO_meth_new(BIO_TYPE_MEM, "wolfSSL CF BIO");
|
||||||
wolfSSL_BIO_meth_set_write(bio_cf_method, &bio_cf_out_write);
|
wolfSSL_BIO_meth_set_write(wolfssl_bio_cf_method, &wolfssl_bio_cf_out_write);
|
||||||
wolfSSL_BIO_meth_set_read(bio_cf_method, &bio_cf_in_read);
|
wolfSSL_BIO_meth_set_read(wolfssl_bio_cf_method, &wolfssl_bio_cf_in_read);
|
||||||
wolfSSL_BIO_meth_set_ctrl(bio_cf_method, &bio_cf_ctrl);
|
wolfSSL_BIO_meth_set_ctrl(wolfssl_bio_cf_method, &wolfssl_bio_cf_ctrl);
|
||||||
wolfSSL_BIO_meth_set_create(bio_cf_method, &bio_cf_create);
|
wolfSSL_BIO_meth_set_create(wolfssl_bio_cf_method, &wolfssl_bio_cf_create);
|
||||||
wolfSSL_BIO_meth_set_destroy(bio_cf_method, &bio_cf_destroy);
|
wolfSSL_BIO_meth_set_destroy(wolfssl_bio_cf_method, &wolfssl_bio_cf_destroy);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void bio_cf_free_methods(void)
|
static void wolfssl_bio_cf_free_methods(void)
|
||||||
{
|
{
|
||||||
wolfSSL_BIO_meth_free(bio_cf_method);
|
wolfSSL_BIO_meth_free(wolfssl_bio_cf_method);
|
||||||
}
|
}
|
||||||
|
|
||||||
#else /* USE_BIO_CHAIN */
|
#else /* USE_BIO_CHAIN */
|
||||||
|
|
||||||
#define bio_cf_init_methods() Curl_nop_stmt
|
#define wolfssl_bio_cf_init_methods() Curl_nop_stmt
|
||||||
#define bio_cf_free_methods() Curl_nop_stmt
|
#define wolfssl_bio_cf_free_methods() Curl_nop_stmt
|
||||||
|
|
||||||
#endif /* !USE_BIO_CHAIN */
|
#endif /* !USE_BIO_CHAIN */
|
||||||
|
|
||||||
@ -723,7 +724,7 @@ wolfssl_connect_step1(struct Curl_cfilter *cf, struct Curl_easy *data)
|
|||||||
{
|
{
|
||||||
WOLFSSL_BIO *bio;
|
WOLFSSL_BIO *bio;
|
||||||
|
|
||||||
bio = BIO_new(bio_cf_method);
|
bio = BIO_new(wolfssl_bio_cf_method);
|
||||||
if(!bio)
|
if(!bio)
|
||||||
return CURLE_OUT_OF_MEMORY;
|
return CURLE_OUT_OF_MEMORY;
|
||||||
|
|
||||||
@ -1143,14 +1144,14 @@ static int wolfssl_init(void)
|
|||||||
Curl_tls_keylog_open();
|
Curl_tls_keylog_open();
|
||||||
#endif
|
#endif
|
||||||
ret = (wolfSSL_Init() == SSL_SUCCESS);
|
ret = (wolfSSL_Init() == SSL_SUCCESS);
|
||||||
bio_cf_init_methods();
|
wolfssl_bio_cf_init_methods();
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void wolfssl_cleanup(void)
|
static void wolfssl_cleanup(void)
|
||||||
{
|
{
|
||||||
bio_cf_free_methods();
|
wolfssl_bio_cf_free_methods();
|
||||||
wolfSSL_Cleanup();
|
wolfSSL_Cleanup();
|
||||||
#ifdef OPENSSL_EXTRA
|
#ifdef OPENSSL_EXTRA
|
||||||
Curl_tls_keylog_close();
|
Curl_tls_keylog_close();
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user