diff options
Diffstat (limited to 'src/socket.c')
-rw-r--r-- | src/socket.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/socket.c b/src/socket.c index 77d7e8855c..423cd90b7d 100644 --- a/src/socket.c +++ b/src/socket.c @@ -471,11 +471,18 @@ socket_open(socket_st * hd, const char *hostname, const char *service, } hd->session = init_tls_session(hostname); - if (hd->rdata.data) { - gnutls_session_set_data(hd->session, hd->rdata.data, hd->rdata.size); + if (hd->session == NULL && !(flags & SOCKET_FLAG_RAW)) { + fprintf(stderr, "error initializing session\n"); + exit(1); } - gnutls_transport_set_int(hd->session, sd); + if (hd->session) { + if (hd->rdata.data) { + gnutls_session_set_data(hd->session, hd->rdata.data, hd->rdata.size); + } + + gnutls_transport_set_int(hd->session, sd); + } if (!(flags & SOCKET_FLAG_RAW)) { err = do_handshake(hd); |