Move DTLS context into the endpoint structure

This is a step towards making mbedtls_test_ssl_endpoint_init() and
mbedtls_test_ssl_endpoint_free() more self-contained.

No behavior change.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
diff --git a/tests/src/test_helpers/ssl_helpers.c b/tests/src/test_helpers/ssl_helpers.c
index 0141fb4..580cc9b 100644
--- a/tests/src/test_helpers/ssl_helpers.c
+++ b/tests/src/test_helpers/ssl_helpers.c
@@ -741,10 +741,12 @@
     mbedtls_test_ssl_message_queue *input_queue,
     mbedtls_test_ssl_message_queue *output_queue)
 {
+    (void) dtls_context; // no longer used
+
     int ret = -1;
     uintptr_t user_data_n;
 
-    if (dtls_context != NULL &&
+    if (options->dtls &&
         (input_queue == NULL || output_queue == NULL)) {
         return MBEDTLS_ERR_SSL_BAD_INPUT_DATA;
 
@@ -760,6 +762,7 @@
 
     mbedtls_ssl_init(&(ep->ssl));
     mbedtls_ssl_config_init(&(ep->conf));
+    mbedtls_test_message_socket_init(&ep->dtls_context);
 
     TEST_ASSERT(mbedtls_ssl_conf_get_user_data_p(&ep->conf) == NULL);
     TEST_EQUAL(mbedtls_ssl_conf_get_user_data_n(&ep->conf), 0);
@@ -772,17 +775,17 @@
     mbedtls_ssl_conf_set_user_data_n(&ep->conf, user_data_n);
     mbedtls_ssl_set_user_data_n(&ep->ssl, user_data_n);
 
-    if (dtls_context != NULL) {
+    if (options->dtls) {
         TEST_EQUAL(mbedtls_test_message_socket_setup(input_queue, output_queue,
                                                      100, &(ep->socket),
-                                                     dtls_context), 0);
+                                                     &ep->dtls_context), 0);
     } else {
         mbedtls_test_mock_socket_init(&(ep->socket));
     }
 
     /* Non-blocking callbacks without timeout */
-    if (dtls_context != NULL) {
-        mbedtls_ssl_set_bio(&(ep->ssl), dtls_context,
+    if (options->dtls) {
+        mbedtls_ssl_set_bio(&(ep->ssl), &ep->dtls_context,
                             mbedtls_test_mock_tcp_send_msg,
                             mbedtls_test_mock_tcp_recv_msg,
                             NULL);
@@ -799,7 +802,7 @@
     }
 
     ret = mbedtls_ssl_config_defaults(&(ep->conf), endpoint_type,
-                                      (dtls_context != NULL) ?
+                                      options->dtls ?
                                       MBEDTLS_SSL_TRANSPORT_DATAGRAM :
                                       MBEDTLS_SSL_TRANSPORT_STREAM,
                                       MBEDTLS_SSL_PRESET_DEFAULT);
@@ -867,7 +870,7 @@
     }
 
 #if defined(MBEDTLS_SSL_PROTO_DTLS) && defined(MBEDTLS_SSL_SRV_C)
-    if (endpoint_type == MBEDTLS_SSL_IS_SERVER && dtls_context != NULL) {
+    if (endpoint_type == MBEDTLS_SSL_IS_SERVER && options->dtls) {
         mbedtls_ssl_conf_dtls_cookies(&(ep->conf), NULL, NULL, NULL);
     }
 #endif
@@ -914,6 +917,8 @@
     mbedtls_test_ssl_endpoint *ep,
     mbedtls_test_message_socket_context *context)
 {
+    (void) context; // no longer used
+
     mbedtls_ssl_free(&(ep->ssl));
     mbedtls_ssl_config_free(&(ep->conf));
 
@@ -921,8 +926,8 @@
     ep->ciphersuites = NULL;
     test_ssl_endpoint_certificate_free(ep);
 
-    if (context != NULL) {
-        mbedtls_test_message_socket_close(context);
+    if (ep->dtls_context.socket != NULL) {
+        mbedtls_test_message_socket_close(&ep->dtls_context);
     } else {
         mbedtls_test_mock_socket_close(&(ep->socket));
     }
@@ -2125,9 +2130,6 @@
     mbedtls_platform_zeroize(&client, sizeof(client));
     mbedtls_platform_zeroize(&server, sizeof(server));
     mbedtls_test_ssl_message_queue server_queue, client_queue;
-    mbedtls_test_message_socket_context server_context, client_context;
-    mbedtls_test_message_socket_init(&server_context);
-    mbedtls_test_message_socket_init(&client_context);
 
 #if defined(MBEDTLS_DEBUG_C)
     if (options->cli_log_fun || options->srv_log_fun) {
@@ -2139,7 +2141,7 @@
     if (options->dtls != 0) {
         TEST_EQUAL(mbedtls_test_ssl_endpoint_init(&client,
                                                   MBEDTLS_SSL_IS_CLIENT,
-                                                  options, &client_context,
+                                                  options, NULL,
                                                   &client_queue,
                                                   &server_queue), 0);
     } else {
@@ -2155,7 +2157,7 @@
     if (options->dtls != 0) {
         TEST_EQUAL(mbedtls_test_ssl_endpoint_init(&server,
                                                   MBEDTLS_SSL_IS_SERVER,
-                                                  options, &server_context,
+                                                  options, NULL,
                                                   &server_queue,
                                                   &client_queue), 0);
     } else {
@@ -2312,7 +2314,7 @@
 
         TEST_EQUAL(mbedtls_ssl_setup(&(server.ssl), &(server.conf)), 0);
 
-        mbedtls_ssl_set_bio(&(server.ssl), &server_context,
+        mbedtls_ssl_set_bio(&(server.ssl), &server.dtls_context,
                             mbedtls_test_mock_tcp_send_msg,
                             mbedtls_test_mock_tcp_recv_msg,
                             NULL);
@@ -2426,10 +2428,8 @@
     TEST_ASSERT(mbedtls_ssl_get_user_data_p(&server.ssl) == &server);
 
 exit:
-    mbedtls_test_ssl_endpoint_free(&client,
-                                   options->dtls != 0 ? &client_context : NULL);
-    mbedtls_test_ssl_endpoint_free(&server,
-                                   options->dtls != 0 ? &server_context : NULL);
+    mbedtls_test_ssl_endpoint_free(&client, NULL);
+    mbedtls_test_ssl_endpoint_free(&server, NULL);
 #if defined(MBEDTLS_DEBUG_C)
     if (options->cli_log_fun || options->srv_log_fun) {
         mbedtls_debug_set_threshold(0);