session_t *tls_listener, *app_session;
tls_ctx_t *lctx, *ctx;
u32 ctx_handle;
+ int rv;
tls_listener =
listen_session_get_from_handle (tls_session->listener_handle);
TLS_DBG (1, "Accept on listener %u new connection [%u]%x",
tls_listener->opaque, vlib_get_thread_index (), ctx_handle);
- return tls_ctx_init_server (ctx);
+ rv = tls_ctx_init_server (ctx);
+ if (rv)
+ {
+ session_free (app_session);
+ tls_ctx_free (ctx);
+ }
+
+ return rv;
}
int
tls_ctx_t *ho_ctx, *ctx;
session_type_t st;
u32 ctx_handle;
+ int rv;
ho_ctx = tls_ctx_half_open_get (ho_ctx_index);
app_session->session_type = st;
app_session->connection_index = ctx->tls_ctx_handle;
- return tls_ctx_init_client (ctx);
+ rv = tls_ctx_init_client (ctx);
+ if (rv)
+ {
+ session_free (app_session);
+ tls_ctx_free (ctx);
+ }
+
+ return rv;
}
int