]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
De-inline some dtls functions.
authorSimon Josefsson <simon@josefsson.org>
Fri, 2 Mar 2012 12:18:18 +0000 (13:18 +0100)
committerSimon Josefsson <simon@josefsson.org>
Fri, 2 Mar 2012 12:19:17 +0000 (13:19 +0100)
Avoids compiler error on gcc 4.4.5 (Debian Squeeze) that complains about
"call is unlikely and code size would grow".

lib/gnutls_dtls.c
lib/gnutls_dtls.h

index 93ba467a07cf5f93abb3053ca447a4559ac4849f..f07b300cbcdb02744fad28d395b7eb4a0c79e69b 100644 (file)
 #include <gnutls/dtls.h>
 #include <timespec.h>
 
+/* returns a-b in ms */
+unsigned int
+_dtls_timespec_sub_ms (struct timespec *a, struct timespec *b)
+{
+  return (a->tv_sec * 1000 + a->tv_nsec / (1000 * 1000) -
+          (b->tv_sec * 1000 + b->tv_nsec / (1000 * 1000)));
+}
+
+void
+_dtls_async_timer_delete (gnutls_session_t session)
+{
+  if (session->internals.dtls.async_term != 0)
+    {
+      _gnutls_dtls_log ("DTLS[%p]: Deinitializing previous handshake state.\n", session);
+      session->internals.dtls.async_term = 0; /* turn off "timer" */
+
+      _dtls_reset_hsk_state(session);
+      _gnutls_handshake_io_buffer_clear (session);
+      _gnutls_epoch_gc(session);
+    }
+}
+
 /* This function fragments and transmits a previously buffered
  * outgoing message. It accepts mtu_data which is a buffer to
  * be reused (should be set to NULL initially).
@@ -233,7 +255,7 @@ unsigned int timeout;
             {
               /* if no retransmission is required yet just return 
                */
-              if (timespec_sub_ms(&now, &session->internals.dtls.last_retransmit) < TIMER_WINDOW)
+              if (_dtls_timespec_sub_ms(&now, &session->internals.dtls.last_retransmit) < TIMER_WINDOW)
                 {
                   gnutls_assert();
                   goto nb_timeout;
@@ -264,7 +286,7 @@ unsigned int timeout;
     {
       timeout = TIMER_WINDOW;
 
-      diff = timespec_sub_ms(&now, &session->internals.dtls.handshake_start_time);
+      diff = _dtls_timespec_sub_ms(&now, &session->internals.dtls.handshake_start_time);
       if (diff >= session->internals.dtls.total_timeout_ms) 
         {
           _gnutls_dtls_log("Session timeout: %u ms\n", diff);
@@ -272,7 +294,7 @@ unsigned int timeout;
           goto end_flight;
         }
 
-      diff = timespec_sub_ms(&now, &session->internals.dtls.last_retransmit);
+      diff = _dtls_timespec_sub_ms(&now, &session->internals.dtls.last_retransmit);
       if (session->internals.dtls.flight_init == 0 || diff >= TIMER_WINDOW)
         {
           _gnutls_dtls_log ("DTLS[%p]: %sStart of flight transmission.\n", session,  (session->internals.dtls.flight_init == 0)?"":"re-");
@@ -621,7 +643,7 @@ unsigned int diff;
 
   gettime(&now);
   
-  diff = timespec_sub_ms(&now, &session->internals.dtls.last_retransmit);
+  diff = _dtls_timespec_sub_ms(&now, &session->internals.dtls.last_retransmit);
   if (diff >= TIMER_WINDOW)
     return 0;
   else
index 8ba67bf7b40f44963804f35fca0824978d196d05..cd15f89643a2089139104dbd346889f79fc03bef 100644 (file)
@@ -37,19 +37,14 @@ void _dtls_reset_hsk_state(gnutls_session_t session);
 
 #define MAX_DTLS_TIMEOUT 60000
 
-/* returns a-b in ms */
-inline static unsigned int timespec_sub_ms(struct timespec *a, struct timespec *b)
-{
-  return (a->tv_sec * 1000 + a->tv_nsec / (1000 * 1000) -
-          (b->tv_sec * 1000 + b->tv_nsec / (1000 * 1000)));
-}
+unsigned int _dtls_timespec_sub_ms (struct timespec *a, struct timespec *b);
 
 #define RETURN_DTLS_EAGAIN_OR_TIMEOUT(session, r) { \
   struct timespec now; \
   unsigned int diff; \
   gettime(&now); \
    \
-  diff = timespec_sub_ms(&now, &session->internals.dtls.handshake_start_time); \
+  diff = _dtls_timespec_sub_ms(&now, &session->internals.dtls.handshake_start_time); \
   if (diff > session->internals.dtls.total_timeout_ms) \
     { \
       _gnutls_dtls_log("Session timeout: %u ms\n", diff); \
@@ -97,18 +92,7 @@ inline static void _dtls_async_timer_init(gnutls_session_t session)
     }
 }
 
-inline static void _dtls_async_timer_delete(gnutls_session_t session)
-{
-  if (session->internals.dtls.async_term != 0)
-    {
-      _gnutls_dtls_log ("DTLS[%p]: Deinitializing previous handshake state.\n", session);
-      session->internals.dtls.async_term = 0; /* turn off "timer" */
-
-      _dtls_reset_hsk_state(session);
-      _gnutls_handshake_io_buffer_clear (session);
-      _gnutls_epoch_gc(session);
-    }
-}
+void _dtls_async_timer_delete(gnutls_session_t session);
 
 /* Checks whether it is time to terminate the timer
  */