]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
simplified DB storing
authorNikos Mavrogiannopoulos <nmav@gnutls.org>
Fri, 1 Feb 2013 19:22:09 +0000 (20:22 +0100)
committerNikos Mavrogiannopoulos <nmav@gnutls.org>
Fri, 1 Feb 2013 19:22:09 +0000 (20:22 +0100)
lib/gnutls_db.c

index 03bc5a0806e200668f4c1624d6651acbae8c79bc..471f920670f7818f0ad1641d1bc03e503f81e151 100644 (file)
@@ -215,8 +215,7 @@ store_session (gnutls_session_t session,
     }
 
   /* if we can't read why bother writing? */
-  if (session->internals.db_store_func != NULL)
-    ret = session->internals.db_store_func (session->internals.db_ptr,
+  ret = session->internals.db_store_func (session->internals.db_ptr,
                                            session_id, session_data);
 
   return (ret == 0 ? ret : GNUTLS_E_DB_ERROR);
@@ -258,26 +257,6 @@ _gnutls_server_register_current_session (gnutls_session_t session)
   return ret;
 }
 
-/* Retrieves session data from the db backend.
- */
-static gnutls_datum_t
-retrieve_session (gnutls_session_t session, gnutls_datum_t session_id)
-{
-  gnutls_datum_t ret = { NULL, 0 };
-
-  if (session_id.data == NULL || session_id.size == 0)
-    {
-      gnutls_assert ();
-      return ret;
-    }
-
-  if (session->internals.db_retrieve_func != NULL)
-    ret = session->internals.db_retrieve_func (session->internals.db_ptr,
-                                              session_id);
-
-  return ret;
-}
-
 int
 _gnutls_server_restore_session (gnutls_session_t session,
                                 uint8_t * session_id, int session_id_size)
@@ -286,6 +265,12 @@ _gnutls_server_restore_session (gnutls_session_t session,
   gnutls_datum_t key;
   int ret;
 
+  if (session_id == NULL || session_id_size == 0)
+    {
+      gnutls_assert ();
+      return GNUTLS_E_INVALID_REQUEST;
+    }
+
   if (session->internals.premaster_set != 0) 
     { /* hack for CISCO's DTLS-0.9 */
       if (session_id_size == session->internals.resumed_security_parameters.session_id_size &&
@@ -302,7 +287,8 @@ _gnutls_server_restore_session (gnutls_session_t session,
       return GNUTLS_E_INVALID_SESSION;
     }
 
-  data = retrieve_session (session, key);
+  data = session->internals.db_retrieve_func (session->internals.db_ptr,
+                                              key);
 
   if (data.data == NULL)
     {
@@ -344,7 +330,7 @@ gnutls_db_remove_session (gnutls_session_t session)
   session_id.data = session->security_parameters.session_id;
   session_id.size = session->security_parameters.session_id_size;
 
-  if (session->internals.db_remove_func != NULL)
+  if (session->internals.db_remove_func == NULL)
     {
       gnutls_assert ();
       return /* GNUTLS_E_DB_ERROR */;
@@ -357,11 +343,8 @@ gnutls_db_remove_session (gnutls_session_t session)
     }
 
   /* if we can't read why bother writing? */
-  if (session->internals.db_remove_func != NULL)
-    {
-      ret = session->internals.db_remove_func (session->internals.db_ptr,
+  ret = session->internals.db_remove_func (session->internals.db_ptr,
                                               session_id);
-      if (ret != 0)
-       gnutls_assert ();
-    }
+  if (ret != 0)
+    gnutls_assert ();
 }