Upgrade to 2.72.alpha
[platform/upstream/glib-networking.git] / tls / gnutls / gtlsfiledatabase-gnutls.c
index 19996d8..d9a22f5 100755 (executable)
 #include "gtlsfiledatabase-gnutls.h"
 
 #include <gio/gio.h>
+#include <glib/gi18n-lib.h>
 
 #include "gtlscertificate-gnutls.h"
 
-#include <TIZEN.h>
-
-#if ENABLE(TIZEN_TV_MULTIPLE_CERTIFICATE)
-#include <dirent.h>
-#include <stdio.h>
-#include <sys/stat.h>
-#endif
-
 enum
 {
   PROP_0,
@@ -55,44 +48,6 @@ struct _GTlsFileDatabaseGnutls
   gchar *anchor_filename;
 };
 
-#if ENABLE(TIZEN_TV_MULTIPLE_CERTIFICATE)
-static gboolean
-traverse_load_anchor_file (const gchar *filename,
-                           GHashTable  *subjects,
-                           GHashTable  *issuers,
-                           GHashTable  *complete,
-                           GError     **error)
-{
-  struct stat buf;
-  gboolean result = FALSE;
-  if (!stat(filename, &buf))
-    {
-      if (S_ISREG(buf.st_mode))
-          result = load_anchor_file (filename, subjects, issuers, complete, error);
-      else if (S_ISDIR(buf.st_mode))
-        {
-          DIR *pDir = opendir(filename);
-          if (pDir != NULL)
-            {
-              struct dirent *dp;
-              char *stFileName;
-              while ((dp = readdir(pDir)) != NULL)
-                {
-                  if (!g_ascii_strcasecmp(dp->d_name, ".") || !g_ascii_strcasecmp(dp->d_name, ".."))
-                      continue;
-
-                  stFileName = g_strconcat (filename, "/", dp->d_name, NULL);
-                  if (stFileName && !stat(stFileName, &buf) && S_ISREG(buf.st_mode))
-                      result = load_anchor_file (stFileName, subjects, issuers, complete, error);
-                  g_free (stFileName);
-                }
-              closedir(pDir);
-            }
-        }
-    }
-  return result;
-}
-#endif
 static void g_tls_file_database_gnutls_file_database_interface_init (GTlsFileDatabaseInterface *iface);
 
 G_DEFINE_TYPE_WITH_CODE (GTlsFileDatabaseGnutls, g_tls_file_database_gnutls, G_TYPE_TLS_DATABASE_GNUTLS,
@@ -188,9 +143,18 @@ g_tls_file_database_gnutls_populate_trust_list (GTlsDatabaseGnutls        *self,
                                                 gnutls_x509_trust_list_t   trust_list,
                                                 GError                   **error)
 {
-  gnutls_x509_trust_list_add_trust_file (trust_list,
-                                         G_TLS_FILE_DATABASE_GNUTLS (self)->anchor_filename,
-                                         NULL, GNUTLS_X509_FMT_PEM, 0, 0);
+  int ret = gnutls_x509_trust_list_add_trust_file (trust_list,
+                                                   G_TLS_FILE_DATABASE_GNUTLS (self)->anchor_filename,
+                                                   NULL, GNUTLS_X509_FMT_PEM, 0, 0);
+
+  if (ret < 0)
+    {
+      g_set_error (error, G_TLS_ERROR, G_TLS_ERROR_MISC,
+                   _("Failed to populate trust list from %s: %s"),
+                   G_TLS_FILE_DATABASE_GNUTLS (self)->anchor_filename, gnutls_strerror (ret));
+      return FALSE;
+    }
+
   return TRUE;
 }