Fix the new storage code to correctly convert from system queue info to
authorJeremy Allison <jra@samba.org>
Fri, 4 Apr 2003 01:02:50 +0000 (01:02 +0000)
committerJeremy Allison <jra@samba.org>
Fri, 4 Apr 2003 01:02:50 +0000 (01:02 +0000)
pjob info. Ensure we retrieve more than one job from the storage code.
Jeremy.
(This used to be commit 5dc3150ff3fc05e71faad76e83079c60f62bac4f)

source3/printing/printing.c

index 06941c67ddf9d75d901703e191d4cd2ca7fa67e6..79cab3d9faed163a2f057743ec07e7a0618b4a05 100644 (file)
@@ -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,