Shut down printing tdb correctly - this will be more important when I go
authorJeremy Allison <jra@samba.org>
Fri, 28 Jun 2002 23:11:31 +0000 (23:11 +0000)
committerJeremy Allison <jra@samba.org>
Fri, 28 Jun 2002 23:11:31 +0000 (23:11 +0000)
to a tdb per-queue for scalability.
Jeremy.
(This used to be commit e808eb2758ff4ad1eed7b50a02865b87ba0c068e)

source3/printing/printing.c
source3/smbd/server.c

index 6ecaf3c9bfa031967f38a556b21209f7ebd78596..f8b3c9cef09b3f7c7672076a5bbbe4338f16b053 100644 (file)
@@ -81,6 +81,18 @@ BOOL print_backend_init(void)
        return nt_printing_init();
 }
 
+/****************************************************************************
+ Shut down printing backend. Called once at shutdown to close the tdb.
+****************************************************************************/
+
+void printing_end(void)
+{
+       if (tdb) {
+               tdb_close(tdb);
+               tdb = NULL;
+       }
+}
+
 /****************************************************************************
  Useful function to generate a tdb key.
 ****************************************************************************/
@@ -253,8 +265,9 @@ static BOOL pjob_store(int jobid, struct printjob *pjob)
 }
 
 /****************************************************************************
-remove a job structure from the database
+ Remove a job structure from the database.
 ****************************************************************************/
+
 static void pjob_delete(int jobid)
 {
        int snum;
@@ -486,7 +499,7 @@ static void set_updating_pid(fstring printer_name, BOOL delete)
 }
 
 /****************************************************************************
-update the internal database from the system print queue for a queue
+ Update the internal database from the system print queue for a queue.
 ****************************************************************************/
 
 static void print_queue_update(int snum)
@@ -1494,7 +1507,8 @@ BOOL print_queue_resume(struct current_user *user, int snum, WERROR *errcode)
        }
 
        /* make sure the database is up to date */
-       if (print_cache_expired(snum)) print_queue_update(snum);
+       if (print_cache_expired(snum))
+               print_queue_update(snum);
 
        /* Send a printer notify message */
 
index 107282d36c3dfcdb441cd771f11e08a7e2ea20b3..7d2c62d8391de862b349a31441472bba901b0743 100644 (file)
@@ -531,6 +531,7 @@ void exit_server(char *reason)
        }    
 
        locking_end();
+       printing_end();
 
        DEBUG(3,("Server exit (%s)\n", (reason ? reason : "")));
        exit(0);