diff options
author | Jeremy Allison <jra@samba.org> | 2003-04-04 01:02:50 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2003-04-04 01:02:50 +0000 |
commit | 5dc3150ff3fc05e71faad76e83079c60f62bac4f (patch) | |
tree | 899db6b905ce2a1fcb5bc5e48ae3ad3641c0d319 | |
parent | 67bc6bccc22e22e2a6e5cae7c57a1b2b53f49dfd (diff) | |
download | samba-5dc3150ff3fc05e71faad76e83079c60f62bac4f.tar.gz samba-5dc3150ff3fc05e71faad76e83079c60f62bac4f.tar.xz samba-5dc3150ff3fc05e71faad76e83079c60f62bac4f.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.
-rw-r--r-- | source/printing/printing.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/source/printing/printing.c b/source/printing/printing.c index 06941c67ddf..79cab3d9fae 100644 --- a/source/printing/printing.c +++ b/source/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, |