diff options
Diffstat (limited to 'source3')
-rw-r--r-- | source3/printing/printing.c | 8 | ||||
-rw-r--r-- | source3/printing/tests/vlp.c | 17 |
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 */ |