]> git.ipfire.org Git - thirdparty/bacula.git/commitdiff
Add 'db_name_handler' for getting resource name from the catalog
authorMichal Rakowski <michal.rakowski@baculasystems.com>
Thu, 31 Dec 2020 13:53:20 +0000 (14:53 +0100)
committerEric Bollengier <eric@baculasystems.com>
Thu, 24 Mar 2022 08:02:59 +0000 (09:02 +0100)
bacula/src/cats/protos.h
bacula/src/cats/sql.c

index 915d599fe6483ba1d3ec2b644a430da459b732de..505fc30c5a360ab0b367d96830e698bbbc578e42 100644 (file)
@@ -84,6 +84,7 @@ BDB *db_init_database(JCR *jcr, const char *db_driver, const char *db_name,
 int db_int64_handler(void *ctx, int num_fields, char **row);
 int db_strtime_handler(void *ctx, int num_fields, char **row);
 int db_list_handler(void *ctx, int num_fields, char **row);
+int db_name_handler(void *ctx, int num_fields, char **row);
 int db_string_list_handler(void *ctx, int num_fields, char **row);
 int db_int_handler(void *ctx, int num_fields, char **row);
 void bdb_debug_print(JCR *jcr, FILE *fp);
index 0d7b5532e25a003f893bd09c41173fbb04d06c87..57e35ce5d27e04fbf57ba9f0b4fbe1c58ca6472b 100644 (file)
@@ -57,6 +57,23 @@ dbid_list::~dbid_list()
    free(DBId); 
 } 
  
+/* 
+ * Called here to retrieve an resource name (e.g. Storage name) from the database 
+ */ 
+int db_name_handler(void *ctx, int num_fields, char **row) 
+{
+   char *name = (char *)ctx;
+
+   // Retrieved name is longer than it should be
+   if (strlen(row[0]) > (MAX_NAME_LENGTH - 1)) {
+      return 1;
+   }
+
+   bstrncpy(name, row[0], MAX_NAME_LENGTH);
+
+   return 0;
+}
+
 /* 
  * Called here to retrieve an string list from the database 
  */