+ keyfile = g_key_file_new ();
+
+ error = NULL;
+ if (g_key_file_load_from_file (keyfile, configfile,
+ G_KEY_FILE_NONE, &error) == FALSE)
+ {
+ g_critical ("Could not load configuration file %s: %s.",
+ configfile, error->message);
+ g_error_free (error);
+ exit (1);
+ }
+
+ error = NULL;
+ certfile = g_key_file_get_string (keyfile, "global", "certfile",
+ &error);
+ if (certfile == NULL && error != NULL)
+ {
+ g_critical ("No certification file specified: %s.",
+ error->message);
+ g_error_free (error);
+ exit (1);
+ }
+ error = NULL;
+ ssl_keyfile = g_key_file_get_string (keyfile, "global", "keyfile",
+ &error);
+ if (ssl_keyfile == NULL && error != NULL)
+ {
+ ssl_keyfile = g_strdup (certfile);
+ g_error_free (error);
+ }
+
+
+ error = NULL;
+ conf_address = g_key_file_get_string (keyfile, "global", "address",
+ &error);
+ if (conf_address == NULL && error != NULL)
+ {
+ conf_address = g_strdup ("0.0.0.0");
+ g_error_free (error);
+ }
+ error = NULL;
+ port = g_key_file_get_string (keyfile, "global", "port", &error);
+ if (port == NULL && error != NULL)
+ {
+ port = g_strdup ("110");
+ g_error_free (error);
+ }
+ error = NULL;
+ server_address = g_key_file_get_string (keyfile, "global", "server",
+ &error);
+ if (server_address == NULL && error != NULL)
+ {
+ server_address = g_strdup ("127.0.0.1");
+ g_error_free (error);
+ }
+ error = NULL;
+ server_port = g_key_file_get_string (keyfile, "global", "server_port",
+ &error);
+ if (server_port == NULL && error != NULL)
+ {
+ server_port = g_strdup ("995");
+ g_error_free (error);
+ }
+ error = NULL;
+ server_ssl = g_key_file_get_boolean (keyfile, "global", "server_ssl",
+ &error);
+ if (server_ssl == 0 && error != NULL)
+ {
+ server_ssl = 0;
+ g_error_free (error);
+ }
+
+ error = NULL;
+ policy = g_key_file_get_string (keyfile, "global", "policy",
+ &error);
+ if (policy == NULL && error != NULL)
+ {
+ policy = g_strdup ("deny");
+ g_error_free (error);
+ }
+
+ if (!strcmp (policy, "allow"))
+ ACCESS_DEFAULT = ACCESS_ALLOW;
+ g_free (policy);