]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/qt-console/main.cpp
Fix bug #1486 -- bat doesn't show any errors on command-line
[bacula/bacula] / bacula / src / qt-console / main.cpp
index 8a2f01667d2732ab8f47786c9caf06249110676f..f212c03b19adba81c3a6704458e6cbfa8447fa35 100644 (file)
@@ -1,7 +1,7 @@
 /*
    Bacula® - The Network Backup Solution
 
-   Copyright (C) 2007-2008 Free Software Foundation Europe e.V.
+   Copyright (C) 2007-2010 Free Software Foundation Europe e.V.
 
    The main author of Bacula is Kern Sibbald, with contributions from
    many others, a complete list can be found in the file AUTHORS.
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   Bacula® is a registered trademark of John Walker.
+   Bacula® is a registered trademark of Kern Sibbald.
    The licensor of Bacula is the Free Software Foundation Europe
    (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich,
    Switzerland, email:ftf@fsfeurope.org.
 */
 /*
- *   Version $Id$
- *
  *  Main program for bat (qt-console)
  *
  *   Kern Sibbald, January MMVII
@@ -35,9 +33,9 @@
  */ 
 
 
+#include "bat.h"
 #include <QApplication>
 #include <QTranslator>
-#include "bat.h"
 
 MainWin *mainWin;
 QApplication *app;
@@ -47,9 +45,14 @@ void terminate_console(int sig);
 static void usage();
 static int check_resources();
 
-#define CONFIG_FILE "./bat.conf"   /* default configuration file */
+extern bool parse_bat_config(CONFIG *config, const char *configfile, int exit_code);
+extern void message_callback(int /* type */, char *msg);
+
+
+#define CONFIG_FILE "bat.conf"     /* default configuration file */
 
 /* Static variables */
+static CONFIG *config;
 static char *configfile = NULL;
 
 int main(int argc, char *argv[])
@@ -71,7 +74,7 @@ int main(int argc, char *argv[])
    batTranslator.load(QString("bat_") + QLocale::system().name());
    app->installTranslator(&batTranslator);
 
-
+   register_message_callback(message_callback);
 
 #ifdef xENABLE_NLS
    setlocale(LC_ALL, "");
@@ -81,6 +84,7 @@ int main(int argc, char *argv[])
 
    init_stack_dump();
    my_name_is(argc, argv, "bat");
+   lmgr_init_thread();
    init_msg(NULL, NULL);
    working_directory  = "/tmp";
 
@@ -132,11 +136,17 @@ int main(int argc, char *argv[])
       usage();
    }
 
+   OSDependentInit();
+#ifdef HAVE_WIN32
+   WSA_Init();                        /* Initialize Windows sockets */
+#endif
+
    if (configfile == NULL) {
       configfile = bstrdup(CONFIG_FILE);
    }
 
-   parse_config(configfile);
+   config = new_config_parser();
+   parse_bat_config(config, configfile, M_ERROR_TERM);
 
    if (init_crypto() != 0) {
       Emsg0(M_ERROR_TERM, 0, _("Cryptography library initialization failed.\n"));
@@ -154,6 +164,7 @@ int main(int argc, char *argv[])
 
 void terminate_console(int /*sig*/)
 {
+// WSA_Cleanup();                  /* TODO: check when we have to call it */
    exit(0);
 }
 
@@ -173,28 +184,6 @@ PROG_COPYRIGHT
    exit(1);
 }
 
-#ifdef xxx
-/*
- * Call-back for reading a passphrase for an encrypted PEM file
- * This function uses getpass(), which uses a static buffer and is NOT thread-safe.
- */
-static int tls_pem_callback(char *buf, int size, const void *userdata)
-{
-#ifdef HAVE_TLS
-   const char *prompt = (const char *) userdata;
-   char *passwd;
-
-   passwd = getpass(prompt);
-   bstrncpy(buf, passwd, size);
-   return (strlen(buf));
-#else
-   buf[0] = 0;
-   return 0;
-#endif
-}
-#endif
-
-
 /*
  * Make a quick check to see that we have all the
  * resources needed.