Преглед изворни кода

test_https_time_out: fixed test, now testing is real

Evgeny Grin (Karlson2k) пре 4 година
родитељ
комит
54e83ba5ee
1 измењених фајлова са 30 додато и 3 уклоњено
  1. 30 3
      src/testcurl/https/test_https_time_out.c

+ 30 - 3
src/testcurl/https/test_https_time_out.c

@@ -44,7 +44,33 @@
 extern const char srv_key_pem[];
 extern const char srv_self_signed_cert_pem[];
 
-static const int TIME_OUT = 3;
+static const int TIME_OUT = 2;
+
+static unsigned int num_connects = 0;
+static unsigned int num_disconnects = 0;
+
+void
+socket_cb (void *cls,
+           struct MHD_Connection *c,
+           void **socket_context,
+           enum MHD_ConnectionNotificationCode toe)
+{
+  struct sckt_notif_cb_param *param = (struct sckt_notif_cb_param *) cls;
+  if (NULL == socket_context)
+    abort ();
+  if (NULL == c)
+    abort ();
+  if (NULL == param)
+    abort ();
+
+  if (MHD_CONNECTION_NOTIFY_STARTED == toe)
+    num_connects++;
+  else if (MHD_CONNECTION_NOTIFY_CLOSED == toe)
+    num_disconnects++;
+  else
+    abort ();
+}
+
 
 static int
 test_tls_session_time_out (gnutls_session_t session, int port)
@@ -87,13 +113,14 @@ test_tls_session_time_out (gnutls_session_t session, int port)
   (void) sleep (TIME_OUT + 1);
 
   /* check that server has closed the connection */
-  /* TODO better RST trigger */
-  if (send (sd, "", 1, 0) >= 0)
+  if (1 == num_disconnects)
   {
     fprintf (stderr, "Connection failed to time-out\n");
     MHD_socket_close_chk_ (sd);
     return -1;
   }
+  else if (0 != num_disconnects)
+    abort ();
 
   MHD_socket_close_chk_ (sd);
   return 0;