#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,
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,
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;
}