loudmouth/lm-ssl-openssl.c
changeset 263 23192c7973c0
parent 169 10bcf8e0e443
equal deleted inserted replaced
262:d372a2b61b1d 263:23192c7973c0
   178 _lm_ssl_begin (LmSSL *ssl, gint fd, const gchar *server, GError **error)
   178 _lm_ssl_begin (LmSSL *ssl, gint fd, const gchar *server, GError **error)
   179 {
   179 {
   180 	BIO       *sbio;
   180 	BIO       *sbio;
   181 	GIOStatus  status;
   181 	GIOStatus  status;
   182 
   182 
       
   183 	if (!ssl->ctx) {
       
   184 		g_set_error (error,
       
   185 			     LM_ERROR, LM_ERROR_CONNECTION_OPEN,
       
   186 			     "No SSL Context for OpenSSL");
       
   187 		return FALSE;
       
   188 	}
       
   189 
   183 	ssl->session = SSL_new (ssl->ctx);
   190 	ssl->session = SSL_new (ssl->ctx);
       
   191 	if (ssl->session == NULL) {
       
   192 		g_set_error (error,
       
   193 			     LM_ERROR, LM_ERROR_CONNECTION_OPEN,
       
   194 			     "Failed to create an SSL session through OpenSSL");
       
   195 		return FALSE;
       
   196 	}
       
   197 	
   184 	sbio = BIO_new_socket (fd, BIO_NOCLOSE);
   198 	sbio = BIO_new_socket (fd, BIO_NOCLOSE);
   185 	SSL_set_bio (ssl->session, sbio, sbio);
   199 	SSL_set_bio (ssl->session, sbio, sbio);
   186 
   200 
   187 	while (TRUE) {
   201 	while (TRUE) {
   188 		gint ret;
   202 		gint ret;