]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/tools/bvfs_test.c
Change copyright as per agreement with FSFE + update copyright year
[bacula/bacula] / bacula / src / tools / bvfs_test.c
index 87555e50e4a8029befb2555fb7b455e806b439d5..6037faa1043a3196b7316e64d2f4a821ffa8e284 100644 (file)
@@ -1,39 +1,29 @@
+/*
+   Bacula(R) - The Network Backup Solution
+
+   Copyright (C) 2000-2016 Kern Sibbald
+
+   The original author of Bacula is Kern Sibbald, with contributions
+   from many others, a complete list can be found in the file AUTHORS.
+
+   You may use this file and others of this release according to the
+   license defined in the LICENSE file, which includes the Affero General
+   Public License, v3.0 ("AGPLv3") and some additional permissions and
+   terms pursuant to its AGPLv3 Section 7.
+
+   This notice must be preserved when any source code is 
+   conveyed and/or propagated.
+
+   Bacula(R) is a registered trademark of Kern Sibbald.
+*/
 /*
  *
  *  Program to test cache path
  *
- *   Eric Bollengier, March 2007
+ *   Eric Bollengier, August 2009
  *
  *
- *   Version $Id$
  */
-/*
-   Bacula® - The Network Backup Solution
-
-   Copyright (C) 2001-2006 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 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
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-   General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-   02110-1301, USA.
-
-   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.
-*/
 
 #include "bacula.h"
 #include "cats/cats.h"
 #include "findlib/find.h"
  
 /* Local variables */
-static B_DB *db;
-static char *file="COPYRIGHT";
+static BDB *db;
+static const char *file = "COPYRIGHT";
 static DBId_t fnid=0;
 static const char *db_name = "regress";
 static const char *db_user = "regress";
 static const char *db_password = "";
 static const char *db_host = NULL;
+static const char *db_ssl_key = NULL;
+static const char *db_ssl_cert = NULL;
+static const char *db_ssl_ca = NULL;
+static const char *db_ssl_capath = NULL;
+static const char *db_ssl_cipher = NULL;
 
 static void usage()
 {
    fprintf(stderr, _(
 PROG_COPYRIGHT
-"\nVersion: %s (%s)\n"
+"\n%sVersion: %s (%s)\n"
 "       -d <nn>           set debug level to <nn>\n"
 "       -dt               print timestamp in debug output\n"
 "       -n <name>         specify the database name (default bacula)\n"
 "       -u <user>         specify database user name (default bacula)\n"
 "       -P <password      specify database password (default none)\n"
 "       -h <host>         specify database host (default NULL)\n"
+"       -k <sslkey>       path name to the key file (default NULL)\n"
+"       -e <sslcert>      path name to the certificate file (default NULL)\n"
+"       -a <sslca>        path name to the CA certificate file (default NULL)\n"
 "       -w <working>      specify working directory\n"
 "       -j <jobids>       specify jobids\n"
 "       -p <path>         specify path\n"
@@ -67,7 +65,7 @@ PROG_COPYRIGHT
 "       -l <limit>        maximum tuple to fetch\n"
 "       -T                truncate cache table before starting\n"
 "       -v                verbose\n"
-"       -?                print this message\n\n"), 2001, VERSION, BDATE);
+"       -?                print this message\n\n"), 2001, "", VERSION, BDATE);
    exit(1);
 }
 
@@ -75,21 +73,21 @@ static int result_handler(void *ctx, int fields, char **row)
 {
    Bvfs *vfs = (Bvfs *)ctx;
    ATTR *attr = vfs->get_attr();
-   char *empty = "A A A A A A A A A A A A A A";
+   char empty[] = "A A A A A A A A A A A A A A";
 
    memset(&attr->statp, 0, sizeof(struct stat));
    decode_stat((row[BVFS_LStat] && row[BVFS_LStat][0])?row[BVFS_LStat]:empty,
-               &attr->statp, &attr->LinkFI);
+               &attr->statp, sizeof(attr->statp),  &attr->LinkFI);
 
-   if (fields == BVFS_DIR_RECORD || fields == BVFS_FILE_RECORD) {
+   if (bvfs_is_dir(row) || bvfs_is_file(row)) {
       /* display clean stuffs */
 
-      if (fields == BVFS_DIR_RECORD) {
+      if (bvfs_is_dir(row)) {
          pm_strcpy(attr->ofname, bvfs_basename_dir(row[BVFS_Name]));   
       } else {
          /* if we see the requested file, note his filenameid */
          if (bstrcmp(row[BVFS_Name], file)) {
-            fnid = str_to_int64(row[BVFS_Id]);
+            fnid = str_to_int64(row[BVFS_FilenameId]);
          }
          pm_strcpy(attr->ofname, row[BVFS_Name]);   
       }
@@ -97,7 +95,7 @@ static int result_handler(void *ctx, int fields, char **row)
 
    } else {
       Pmsg5(0, "JobId=%s FileId=%s\tMd5=%s\tVolName=%s\tVolInChanger=%s\n",
-            row[BVFS_JobId], row[BVFS_Id], row[BVFS_Md5], row[BVFS_VolName],
+            row[BVFS_JobId], row[BVFS_FileId], row[BVFS_Md5], row[BVFS_VolName],
             row[BVFS_VolInchanger]);
 
       pm_strcpy(attr->ofname, file);
@@ -112,7 +110,8 @@ static int result_handler(void *ctx, int fields, char **row)
 int main (int argc, char *argv[])
 {
    int ch;
-   char *jobids="1", *path=NULL, *client=NULL;
+   char *jobids = (char *)"1";
+   char *path=NULL, *client=NULL;
    uint64_t limit=0;
    bool clean=false;
    setlocale(LC_ALL, "");
@@ -127,7 +126,7 @@ int main (int argc, char *argv[])
 
    OSDependentInit();
 
-   while ((ch = getopt(argc, argv, "h:c:l:d:n:P:Su:vf:w:?j:p:f:T")) != -1) {
+   while ((ch = getopt(argc, argv, "h:k:e:a:c:l:d:n:P:Su:vf:w:?j:p:f:T")) != -1) {
       switch (ch) {
       case 'd':                    /* debug level */
          if (*optarg == 't') {
@@ -151,6 +150,18 @@ int main (int argc, char *argv[])
          db_host = optarg;
          break;
 
+      case 'k':
+         db_ssl_key= optarg;
+         break;
+
+      case 'e':
+         db_ssl_cert= optarg;
+         break;
+
+      case 'a':
+         db_ssl_ca= optarg;
+         break;
+
       case 'n':
          db_name = optarg;
          break;
@@ -202,18 +213,21 @@ int main (int argc, char *argv[])
    }
    JCR *bjcr = new_jcr(sizeof(JCR), NULL);
    bjcr->JobId = getpid();
-   bjcr->set_JobType(JT_CONSOLE);
-   bjcr->set_JobLevel(L_FULL);
+   bjcr->setJobType(JT_CONSOLE);
+   bjcr->setJobLevel(L_FULL);
    bjcr->JobStatus = JS_Running;
    bjcr->client_name = get_pool_memory(PM_FNAME);
    pm_strcpy(bjcr->client_name, "Dummy.Client.Name");
    bstrncpy(bjcr->Job, "bvfs_test", sizeof(bjcr->Job));
    
-   if ((db=db_init_database(NULL, db_name, db_user, db_password,
-                            db_host, 0, NULL, 0)) == NULL) {
+   if ((db = db_init_database(NULL, NULL, db_name, db_user, db_password, 
+                              db_host, 0, NULL,
+                              db_ssl_key, db_ssl_cert, db_ssl_ca,
+                              db_ssl_capath, db_ssl_cipher,
+                              false, false)) == NULL) {
       Emsg0(M_ERROR_TERM, 0, _("Could not init Bacula database\n"));
    }
-   Dmsg1(0, "db_type=%s\n", db_get_type());
+   Dmsg1(0, "db_type=%s\n", db_get_engine_name(db));
 
    if (!db_open_database(NULL, db)) {
       Emsg0(M_ERROR_TERM, 0, db_strerror(db));
@@ -227,9 +241,9 @@ int main (int argc, char *argv[])
 
    if (clean) {
       Pmsg0(0, "Clean old table\n");
-      db_sql_query(db, "DELETE FROM brestore_pathhierarchy", NULL, NULL);
-      db_sql_query(db, "DELETE FROM brestore_knownjobid", NULL, NULL);
-      db_sql_query(db, "DELETE FROM brestore_pathvisibility", NULL, NULL);
+      db_sql_query(db, "DELETE FROM PathHierarchy", NULL, NULL);
+      db_sql_query(db, "UPDATE Job SET HasCache=0", NULL, NULL);
+      db_sql_query(db, "DELETE FROM PathVisibility", NULL, NULL);
       bvfs_update_cache(bjcr, db);
    }