summaryrefslogtreecommitdiff
path: root/src/socket.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/socket.c')
-rw-r--r--src/socket.c13
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);