lcb_error_t lcbio_sslify_if_needed(lcbio_SOCKET *sock, lcb_settings *settings) { if (!(settings->sslopts & LCB_SSL_ENABLED)) { return LCB_SUCCESS; /*not needed*/ } if (lcbio_ssl_check(sock)) { return LCB_SUCCESS; /*already ssl*/ } return lcbio_ssl_apply(sock, settings->ssl_ctx); }
static lcb_error_t convert_lcberr(const lcbio_CTX *ctx, lcbio_IOSTATUS status) { const lcb_settings *settings = ctx->sock->settings; lcbio_OSERR oserr = IOT_ERRNO(ctx->sock->io); if (lcbio_ssl_check(ctx->sock)) { lcb_error_t err = lcbio_ssl_get_error(ctx->sock); if (err) { return err; } } if (status == LCBIO_SHUTDOWN) { return lcbio_mklcberr(0, settings); } else if (oserr != 0) { return lcbio_mklcberr(oserr, settings); } else { return LCB_NETWORK_ERROR; } }