summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2003-04-04 01:02:50 +0000
committerJeremy Allison <jra@samba.org>2003-04-04 01:02:50 +0000
commitb1b9adebb07f43988f467406a3de43cac2ab5d41 (patch)
tree6c9f8196eb263f402f4d6074beee5a570e636f07 /source3
parent0bcc0c343f9ca1616026fb3ee7dae8bd9615ccf9 (diff)
downloadsamba-b1b9adebb07f43988f467406a3de43cac2ab5d41.tar.gz
samba-b1b9adebb07f43988f467406a3de43cac2ab5d41.tar.bz2
samba-b1b9adebb07f43988f467406a3de43cac2ab5d41.zip
Fix the new storage code to correctly convert from system queue info to
pjob info. Ensure we retrieve more than one job from the storage code. Jeremy. (This used to be commit 5dc3150ff3fc05e71faad76e83079c60f62bac4f)
Diffstat (limited to 'source3')
-rw-r--r--source3/printing/printing.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/source3/printing/printing.c b/source3/printing/printing.c
index 06941c67dd..79cab3d9fa 100644
--- a/source3/printing/printing.c
+++ b/source3/printing/printing.c
@@ -713,9 +713,20 @@ static int traverse_fn_delete(TDB_CONTEXT *t, TDB_DATA key, TDB_DATA data, void
pjob_delete(ts->snum, jobid);
} else
ts->total_jobs++;
+ return 0;
}
- else
- ts->total_jobs++;
+
+ /* Save the pjob attributes we will store. */
+ ts->queue[i].job = jobid;
+ ts->queue[i].size = pjob.size;
+ ts->queue[i].page_count = pjob.page_count;
+ ts->queue[i].status = pjob.status;
+ ts->queue[i].priority = 1;
+ ts->queue[i].time = pjob.starttime;
+ fstrcpy(ts->queue[i].fs_user, pjob.user);
+ fstrcpy(ts->queue[i].fs_file, pjob.jobname);
+
+ ts->total_jobs++;
return 0;
}
@@ -2088,6 +2099,7 @@ static BOOL get_stored_queue_info(struct tdb_print_db *pdb, int snum, int *pcoun
uint32 qcount = 0;
uint32 extra_count = 0;
int total_count = 0;
+ size_t len = 0;
uint32 i;
int max_reported_jobs = lp_max_reported_jobs(snum);
BOOL ret = False;
@@ -2130,8 +2142,8 @@ static BOOL get_stored_queue_info(struct tdb_print_db *pdb, int snum, int *pcoun
goto out;
/* Retrieve the linearised queue data. */
+ len = 0;
for( i = 0; i < qcount; i++) {
- size_t len = 0;
uint32 qjob, qsize, qpage_count, qstatus, qpriority, qtime;
len += tdb_unpack(data.dptr + 4 + len, data.dsize - len, NULL, "ddddddff",
&qjob,