]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/stored/btape.c
Apply Joao's patch to SQLite tables to make chars work.
[bacula/bacula] / bacula / src / stored / btape.c
index 95ecfc43e175ca4308d15135cad3b4dfae87a969..1908cbda0515d4f45378c3d87ebe87a620641c19 100644 (file)
@@ -20,7 +20,7 @@
    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.
@@ -50,6 +50,7 @@
 
 /* Dummy functions */
 int generate_daemon_event(JCR *jcr, const char *event) { return 1; }
+extern bool parse_sd_config(CONFIG *config, const char *configfile, int exit_code);
 
 /* External subroutines */
 extern void free_config_resources();
@@ -102,6 +103,7 @@ static void do_unfill();
 
 
 /* Static variables */
+static CONFIG *config;
 #define CONFIG_FILE "bacula-sd.conf"
 char *configfile = NULL;
 
@@ -269,8 +271,8 @@ int main(int margc, char *margv[])
 
    daemon_start_time = time(NULL);
 
-   parse_config(configfile);
-
+   config = new_config_parser();
+   parse_sd_config(config, configfile, M_ERROR_TERM);
 
    /* See if we can open a device */
    if (margc == 0) {
@@ -321,7 +323,11 @@ static void terminate_btape(int stat)
    if (configfile) {
       free(configfile);
    }
-   free_config_resources();
+   if (config) {
+      config->free_resources();
+      free(config);
+      config = NULL;
+   }
    if (args) {
       free_pool_memory(args);
       args = NULL;
@@ -338,12 +344,12 @@ static void terminate_btape(int stat)
    free_jcr(jcr);
    jcr = NULL;
 
+   free_volume_lists();
+
    if (dev) {
       dev->term();
    }
 
-   free_volume_list();
-
    if (debug_level > 10)
       print_memory_pool_stats();
 
@@ -2577,7 +2583,7 @@ do_tape_cmds()
             found = true;
             break;
          }
-      if (!found) {
+      if (*cmd && !found) {
          Pmsg1(0, _("\"%s\" is an invalid command\n"), cmd);
       }
    }