New address book.
[claws.git] / src / main.c
index 61f4419a77098556bec331bc8eb6b1eecfe1f86b..90bc4e11b6d281d3797880830a7b8d42eaf62a2e 100644 (file)
@@ -75,6 +75,9 @@
 #if USE_GPGME
 #  include "rfc2015.h"
 #endif
+#if USE_SSL
+#  include "ssl.h"
+#endif
 
 gchar *prog_version;
 gchar *startup_dir;
@@ -83,10 +86,6 @@ gboolean debug_mode = FALSE;
 static gint lock_socket = -1;
 static gint lock_socket_tag = 0;
 
-#if USE_SSL
-SSL_CTX *ssl_ctx;
-#endif
-
 static struct Cmd {
        gboolean receive;
        gboolean receive_all;
@@ -160,6 +159,10 @@ int main(int argc, char *argv[])
        gtk_widget_push_colormap(gdk_imlib_get_colormap());
 #endif
 
+#if USE_SSL
+       ssl_init();
+#endif
+
        srandom((gint)time(NULL));
 
        /* parse gtkrc files */
@@ -237,27 +240,13 @@ int main(int argc, char *argv[])
        gpgme_register_idle(idle_function_for_gpgme);
 #endif
 
-#if USE_SSL
-       {
-               SSL_METHOD *meth;
-               
-               SSLeay_add_ssl_algorithms();
-               meth = SSLv2_client_method();
-               SSL_load_error_strings();
-               ssl_ctx = SSL_CTX_new(meth);
-               if(ssl_ctx == NULL) {
-                       debug_print(_("SSL disabled\n"));
-               } else {
-                       debug_print(_("SSL loaded: \n"));
-               }
-       }
-#endif
-
        prefs_common_save_config();
        prefs_filter_read_config();
        prefs_filter_write_config();
        prefs_display_header_read_config();
        prefs_display_header_write_config();
+       prefs_filtering_read_config();
+       addressbook_read_file();
 
        gtkut_widget_init();
 
@@ -274,11 +263,18 @@ int main(int argc, char *argv[])
        account_read_config_all();
        account_save_config_all();
 
-       if (folder_read_list() < 0) setup(mainwin);
+       if (folder_read_list() < 0) {
+               setup(mainwin);
+               folder_write_list();
+       }
+       if (!account_get_list()) {
+               account_edit_open();
+               account_add();
+       }
+
        account_set_missing_folder();
        folderview_set(folderview);
 
-       prefs_filtering_read_config();
        prefs_scoring_read_config();
 
        inc_autocheck_timer_init(mainwin);
@@ -298,12 +294,6 @@ int main(int argc, char *argv[])
 
        gtk_main();
 
-#if USE_SSL
-       if(ssl_ctx) {
-               SSL_CTX_free(ssl_ctx);
-       }
-#endif
-
        return 0;
 }
 
@@ -410,6 +400,10 @@ void app_will_exit(GtkWidget *widget, gpointer data)
        filename = get_socket_name();
        unlink(filename);
 
+#if USE_SSL
+       ssl_done();
+#endif
+
        gtk_main_quit();
 }