]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/cats/mysql.c
Massive SD calling sequence reorganization
[bacula/bacula] / bacula / src / cats / mysql.c
index d327927c442bb6c81202fca03a8058981297946b..1fd12e0157aebc0fc773a8cc9f195e3874138256 100644 (file)
@@ -57,7 +57,8 @@ static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
  */
 B_DB *
 db_init_database(JCR *jcr, const char *db_name, const char *db_user, const char *db_password, 
-                const char *db_address, int db_port, const char *db_socket) 
+                const char *db_address, int db_port, const char *db_socket,
+                int mult_db_connections)
 {
    B_DB *mdb;
 
@@ -67,12 +68,14 @@ db_init_database(JCR *jcr, const char *db_name, const char *db_user, const char
    }
    P(mutex);                         /* lock DB queue */
    /* Look to see if DB already open */
-   for (mdb=NULL; (mdb=(B_DB *)qnext(&db_list, &mdb->bq)); ) {
-      if (strcmp(mdb->db_name, db_name) == 0) {
-         Dmsg2(100, "DB REopen %d %s\n", mdb->ref_count, db_name);
-        mdb->ref_count++;
-        V(mutex);
-        return mdb;                  /* already open */
+   if (!mult_db_connections) {
+      for (mdb=NULL; (mdb=(B_DB *)qnext(&db_list, &mdb->bq)); ) {
+        if (strcmp(mdb->db_name, db_name) == 0) {
+            Dmsg2(100, "DB REopen %d %s\n", mdb->ref_count, db_name);
+           mdb->ref_count++;
+           V(mutex);
+           return mdb;                  /* already open */
+        }
       }
    }
    Dmsg0(100, "db_open first time\n");