summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
Diffstat (limited to 'source3')
-rw-r--r--source3/printing/printing.c8
-rw-r--r--source3/printing/tests/vlp.c17
2 files changed, 20 insertions, 5 deletions
diff --git a/source3/printing/printing.c b/source3/printing/printing.c
index 83b5ac8b43..ce98792096 100644
--- a/source3/printing/printing.c
+++ b/source3/printing/printing.c
@@ -2313,11 +2313,15 @@ static bool allocate_print_jobid(struct tdb_print_db *pdb, int snum, const char
if (tdb_error(pdb->tdb) != TDB_ERR_NOEXIST) {
DEBUG(0, ("allocate_print_jobid: failed to fetch INFO/nextjob for print queue %s\n",
sharename));
+ tdb_unlock_bystring(pdb->tdb, "INFO/nextjob");
return False;
}
+ DEBUG(10,("allocate_print_jobid: no existing jobid in %s\n", sharename));
jobid = 0;
}
+ DEBUG(10,("allocate_print_jobid: read jobid %u from %s\n", jobid, sharename));
+
jobid = NEXT_JOBID(jobid);
if (tdb_store_int32(pdb->tdb, "INFO/nextjob", jobid)==-1) {
@@ -2329,8 +2333,10 @@ static bool allocate_print_jobid(struct tdb_print_db *pdb, int snum, const char
/* We've finished with the INFO/nextjob lock. */
tdb_unlock_bystring(pdb->tdb, "INFO/nextjob");
- if (!print_job_exists(sharename, jobid))
+ if (!print_job_exists(sharename, jobid)) {
break;
+ }
+ DEBUG(10,("allocate_print_jobid: found jobid %u in %s\n", jobid, sharename));
}
if (i > 2) {
diff --git a/source3/printing/tests/vlp.c b/source3/printing/tests/vlp.c
index 286e4a4b39..ec610d94e5 100644
--- a/source3/printing/tests/vlp.c
+++ b/source3/printing/tests/vlp.c
@@ -21,7 +21,6 @@
#include "includes.h"
-#define PRINT_TDB "/tmp/vlp.tdb"
#define PRINT_FIRSTJOB "100"
static TDB_CONTEXT *tdb;
@@ -376,6 +375,7 @@ static int lpresume_command(int argc, char **argv)
int main(int argc, char **argv)
{
/* Parameter check */
+ char *printdb_path = NULL;
if (argc == 1) {
usage();
@@ -384,15 +384,24 @@ int main(int argc, char **argv)
/* Initialise */
- if (!(tdb = tdb_open(PRINT_TDB, 0, 0, O_RDWR | O_CREAT,
+#if 0
+ printdb_path = "/tmp/vlp.tdb";
+#else
+ if (asprintf(&printdb_path, "%svlp.tdb",
+ cache_path("printing/"))) {
+ return 1;
+ }
+#endif
+
+ if (!(tdb = tdb_open(printdb_path, 0, 0, O_RDWR | O_CREAT,
0666))) {
- printf("%s: unable to open %s\n", argv[0], PRINT_TDB);
+ printf("%s: unable to open %s\n", argv[0], printdb_path);
return 1;
}
/* Ensure we are modes 666 */
- chmod(PRINT_TDB, 0666);
+ chmod(printdb_path, 0666);
/* Do commands */