summaryrefslogtreecommitdiffstats
path: root/source/printing/printing.c
diff options
context:
space:
mode:
authorGerald Carter <jerry@samba.org>2002-10-09 19:50:33 +0000
committerGerald Carter <jerry@samba.org>2002-10-09 19:50:33 +0000
commit0849906f13deb460b3f897934a1d63374e35a548 (patch)
tree90ce8f67d81fb1aeb1d79bfc3ab0cc2b4162275c /source/printing/printing.c
parentd7ae4079e7f8b75064dbf84c0989208c2d0b4674 (diff)
downloadsamba-0849906f13deb460b3f897934a1d63374e35a548.tar.gz
samba-0849906f13deb460b3f897934a1d63374e35a548.tar.xz
samba-0849906f13deb460b3f897934a1d63374e35a548.zip
sync with SAMBA_2_2 for 2.2.6rc1
Diffstat (limited to 'source/printing/printing.c')
-rw-r--r--source/printing/printing.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/source/printing/printing.c b/source/printing/printing.c
index 4ac2cfcb148..e499dc8d7ec 100644
--- a/source/printing/printing.c
+++ b/source/printing/printing.c
@@ -64,7 +64,7 @@ BOOL print_backend_init(void)
local_pid = sys_getpid();
/* handle a Samba upgrade */
- tdb_lock_bystring(tdb, sversion);
+ tdb_lock_bystring(tdb, sversion, 0);
if (tdb_fetch_int32(tdb, sversion) != PRINT_DATABASE_VERSION) {
tdb_traverse(tdb, tdb_traverse_delete_fn, NULL);
tdb_store_int32(tdb, sversion, PRINT_DATABASE_VERSION);
@@ -378,7 +378,11 @@ static void print_queue_update(int snum)
/* Lock the queue for the database update */
slprintf(keystr, sizeof(keystr) - 1, "LOCK/%s", printer_name);
- tdb_lock_bystring(tdb, keystr);
+ /* Only wait 10 seconds for this. */
+ if (tdb_lock_bystring(tdb, keystr, 10) == -1) {
+ DEBUG(0,("print_queue_update: Failed to lock printing database\n" ));
+ return;
+ }
/*
* Ensure that no one else got in here.
@@ -1000,8 +1004,11 @@ int print_job_start(struct current_user *user, int snum, char *jobname)
fstrcpy(pjob.queuename, lp_servicename(snum));
- /* lock the database */
- tdb_lock_bystring(tdb, "INFO/nextjob");
+ /* Lock the database - only wait 20 seconds. */
+ if (tdb_lock_bystring(tdb, "INFO/nextjob", 20) == -1) {
+ DEBUG(0,("print_job_start: failed to lock printing database.\n"));
+ return -1;
+ }
next_jobid = tdb_fetch_int32(tdb, "INFO/nextjob");
if (next_jobid == -1)