summaryrefslogtreecommitdiff
path: root/source3/rpc_server
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2003-03-01 02:39:14 +0000
committerJeremy Allison <jra@samba.org>2003-03-01 02:39:14 +0000
commite2366787aea4c1a083eb481dc3e58ec09a33c9e8 (patch)
treefaa1dc7fd30095a79bc7c5634f48db86374447e5 /source3/rpc_server
parent4e5439438c452e7153f122de2ca7428e885b4c6a (diff)
downloadsamba-e2366787aea4c1a083eb481dc3e58ec09a33c9e8.tar.gz
samba-e2366787aea4c1a083eb481dc3e58ec09a33c9e8.tar.bz2
samba-e2366787aea4c1a083eb481dc3e58ec09a33c9e8.zip
Added limit to number of jobs enumerated. Set to 0 (means no limit).
Yes I will add the docs.... Jeremy. (This used to be commit 4a739d914bb87a3c8d071dfd0f275a9aab1cf90a)
Diffstat (limited to 'source3/rpc_server')
-rw-r--r--source3/rpc_server/srv_spoolss_nt.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/source3/rpc_server/srv_spoolss_nt.c b/source3/rpc_server/srv_spoolss_nt.c
index 4006d0c08e..b321832930 100644
--- a/source3/rpc_server/srv_spoolss_nt.c
+++ b/source3/rpc_server/srv_spoolss_nt.c
@@ -6323,6 +6323,7 @@ WERROR _spoolss_enumjobs( pipes_struct *p, SPOOL_Q_ENUMJOBS *q_u, SPOOL_R_ENUMJO
int snum;
print_status_struct prt_status;
print_queue_struct *queue=NULL;
+ int max_rep_jobs;
/* that's an [in out] buffer */
spoolss_move_buffer(q_u->buffer, &r_u->buffer);
@@ -6336,6 +6337,8 @@ WERROR _spoolss_enumjobs( pipes_struct *p, SPOOL_Q_ENUMJOBS *q_u, SPOOL_R_ENUMJO
if (!get_printer_snum(p, handle, &snum))
return WERR_BADFID;
+ max_rep_jobs = lp_max_reported_jobs(snum);
+
*returned = print_queue_status(snum, &queue, &prt_status);
DEBUGADD(4,("count:[%d], status:[%d], [%s]\n", *returned, prt_status.status, prt_status.message));
@@ -6344,6 +6347,9 @@ WERROR _spoolss_enumjobs( pipes_struct *p, SPOOL_Q_ENUMJOBS *q_u, SPOOL_R_ENUMJO
return WERR_OK;
}
+ if (max_rep_jobs && (*returned > max_rep_jobs))
+ *returned = max_rep_jobs;
+
switch (level) {
case 1:
return enumjobs_level1(queue, snum, buffer, offered, needed, returned);