amqp_socket_t * amqp_ssl_socket_new(amqp_connection_state_t state) { struct amqp_ssl_socket_t *self = calloc(1, sizeof(*self)); int status; if (!self) { return NULL; } self->sockfd = -1; self->klass = &amqp_ssl_socket_class; self->verify = 1; status = initialize_openssl(); if (status) { goto error; } self->ctx = SSL_CTX_new(SSLv23_client_method()); if (!self->ctx) { goto error; } amqp_set_socket(state, (amqp_socket_t *)self); return (amqp_socket_t *)self; error: amqp_ssl_socket_delete((amqp_socket_t *)self); return NULL; }
amqp_socket_t * amqp_ssl_socket_new(amqp_connection_state_t state) { struct amqp_ssl_socket_t *self = calloc(1, sizeof(*self)); int status; if (!self) { return NULL; } self->sockfd = -1; self->klass = &amqp_ssl_socket_class; self->verify_peer = 1; self->verify_hostname = 1; status = initialize_openssl(); if (status) { goto error; } self->ctx = SSL_CTX_new(SSLv23_client_method()); if (!self->ctx) { goto error; } /* Disable SSLv2 and SSLv3 */ SSL_CTX_set_options(self->ctx, SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3); amqp_set_socket(state, (amqp_socket_t *)self); return (amqp_socket_t *)self; error: amqp_ssl_socket_delete((amqp_socket_t *)self); return NULL; }