]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/qt-console/main.cpp
Suppress incorrect 'Will not descend from x into y' messages
[bacula/bacula] / bacula / src / qt-console / main.cpp
index 1933a0b94989232ef0f8543a83a77bdcb19438ef..8a2f01667d2732ab8f47786c9caf06249110676f 100644 (file)
@@ -1,14 +1,14 @@
 /*
    Bacula® - The Network Backup Solution
 
-   Copyright (C) 2007 Free Software Foundation Europe e.V.
+   Copyright (C) 2007-2008 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.
    This program is Free Software; you can redistribute it and/or
    modify it under the terms of version two of the GNU General Public
-   License as published by the Free Software Foundation plus additions
-   that are listed in the file LICENSE.
+   License as published by the Free Software Foundation and included
+   in the file LICENSE.
 
    This program is distributed in the hope that it will be useful, but
    WITHOUT ANY WARRANTY; without even the implied warranty of
    (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
+ *
+ */ 
 
-#include "mainwindow.h"
-#include <QApplication>
-#include "config.h"
-#include "bacula.h"
-#include "console_conf.h"
-#include "jcr.h"
 
+#include <QApplication>
+#include <QTranslator>
+#include "bat.h"
 
-/* Imported functions */
-int authenticate_director(JCR *jcr, DIRRES *director, CONRES *cons);
+MainWin *mainWin;
+QApplication *app;
 
 /* Forward referenced functions */
 void terminate_console(int sig);                                
 static void usage();
 static int check_resources();
 
-#define CONFIG_FILE "./qt-console.conf"   /* default configuration file */
+#define CONFIG_FILE "./bat.conf"   /* default configuration file */
 
 /* Static variables */
 static char *configfile = NULL;
 
-MainWindow *mainWin;
-
 int main(int argc, char *argv[])
 {
-
    int ch;
    bool no_signals = true;
    bool test_config = false;
 
 
-   QApplication app(argc, argv);        
-   app.setQuitOnLastWindowClosed(true);
+   app = new QApplication(argc, argv);        
+   app->setQuitOnLastWindowClosed(true);
+   QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
+     
+   QTranslator qtTranslator;
+   qtTranslator.load(QString("qt_") + QLocale::system().name());
+   app->installTranslator(&qtTranslator);
 
-   mainWin = new MainWindow;
+   QTranslator batTranslator;
+   batTranslator.load(QString("bat_") + QLocale::system().name());
+   app->installTranslator(&batTranslator);
 
-   mainWin->show();
 
-#ifdef ENABLE_NLS
+
+#ifdef xENABLE_NLS
    setlocale(LC_ALL, "");
    bindtextdomain("bacula", LOCALEDIR);
    textdomain("bacula");
 #endif
 
    init_stack_dump();
-   my_name_is(argc, argv, "gnome-console");
+   my_name_is(argc, argv, "bat");
    init_msg(NULL, NULL);
    working_directory  = "/tmp";
 
@@ -80,6 +89,8 @@ int main(int argc, char *argv[])
    sigignore.sa_handler = SIG_IGN;
    sigfillset(&sigignore.sa_mask);
    sigaction(SIGPIPE, &sigignore, NULL);
+   sigaction(SIGUSR2, &sigignore, NULL);
+
 
    while ((ch = getopt(argc, argv, "bc:d:r:st?")) != -1) {
       switch (ch) {
@@ -126,7 +137,6 @@ int main(int argc, char *argv[])
    }
 
    parse_config(configfile);
-   set_text("Configuration read.\n");
 
    if (init_crypto() != 0) {
       Emsg0(M_ERROR_TERM, 0, _("Cryptography library initialization failed.\n"));
@@ -136,12 +146,14 @@ int main(int argc, char *argv[])
       Emsg1(M_ERROR_TERM, 0, _("Please correct configuration file: %s\n"), configfile);
    }
 
-   return app.exec();
+   mainWin = new MainWin;
+   mainWin->show();
+
+   return app->exec();
 }
 
-void terminate_console(int sig)
+void terminate_console(int /*sig*/)
 {
-   (void)sig;                         /* avoid compiler complaints */
    exit(0);
 }
 
@@ -150,7 +162,7 @@ static void usage()
    fprintf(stderr, _(
 PROG_COPYRIGHT
 "\nVersion: %s (%s) %s %s %s\n\n"
-"Usage: qt-console [-s] [-c config_file] [-d debug_level] [config_file]\n"
+"Usage: bat [-s] [-c config_file] [-d debug_level] [config_file]\n"
 "       -c <file>   set configuration file to file\n"
 "       -dnn        set debug level to nn\n"
 "       -s          no signals\n"
@@ -161,6 +173,7 @@ 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.
@@ -179,6 +192,7 @@ static int tls_pem_callback(char *buf, int size, const void *userdata)
    return 0;
 #endif
 }
+#endif
 
 
 /*
@@ -190,6 +204,7 @@ static int check_resources()
    bool ok = true;
    DIRRES *director;
    int numdir;
+   bool tls_needed;
 
    LockRes();
 
@@ -206,8 +221,9 @@ static int check_resources()
             continue;
          }
       }
+      tls_needed = director->tls_enable || director->tls_authenticate;
 
-      if ((!director->tls_ca_certfile && !director->tls_ca_certdir) && director->tls_enable) {
+      if ((!director->tls_ca_certfile && !director->tls_ca_certdir) && tls_needed) {
          Emsg2(M_FATAL, 0, _("Neither \"TLS CA Certificate\""
                              " or \"TLS CA Certificate Dir\" are defined for Director \"%s\" in %s."
                              " At least one CA certificate store is required.\n"),
@@ -235,8 +251,9 @@ static int check_resources()
             continue;
          }
       }
+      tls_needed = cons->tls_enable || cons->tls_authenticate;
 
-      if ((!cons->tls_ca_certfile && !cons->tls_ca_certdir) && cons->tls_enable) {
+      if ((!cons->tls_ca_certfile && !cons->tls_ca_certdir) && tls_needed) {
          Emsg2(M_FATAL, 0, _("Neither \"TLS CA Certificate\""
                              " or \"TLS CA Certificate Dir\" are defined for Console \"%s\" in %s.\n"),
                              cons->hdr.name, configfile);