- result = gnutls_init(session, GNUTLS_SERVER);
- if (result != GNUTLS_E_SUCCESS) {
- LOG(ERROR,
- "initialize_tls_session_client(): gnutls_init(): %s",
- gnutls_strerror(result));
- gnutls_certificate_free_credentials(*x509_cred);
- return -1;
- }
- result = gnutls_priority_set(*session, global_tls_priority_cache);
- if (result != GNUTLS_E_SUCCESS) {
- LOG(ERROR,
- "initialize_tls_session_client(): gnutls_priority_set(): %s",
- gnutls_strerror(result));
- gnutls_deinit(*session);
- gnutls_certificate_free_credentials(*x509_cred);
- return -1;
- }
- result = gnutls_credentials_set(*session,
- GNUTLS_CRD_CERTIFICATE, *x509_cred);
- if (result != GNUTLS_E_SUCCESS) {
- LOG(ERROR,
- "initialize_tls_session_client(): gnutls_credentials_set(): %s",
- gnutls_strerror(result));
- gnutls_deinit(*session);
- gnutls_certificate_free_credentials(*x509_cred);
- return -1;
- }
-
- gnutls_transport_set_ptr(*session, (gnutls_transport_ptr_t)peer_socket);
-
- return 0;
+ return initialize_tls_session_both(GNUTLS_SERVER,
+ peer_socket, session, x509_cred);