summaryrefslogtreecommitdiff
path: root/source3/printing
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2003-04-23 00:19:30 +0000
committerJeremy Allison <jra@samba.org>2003-04-23 00:19:30 +0000
commit30418a47c609fdff286bcab4e29e3fe0b244632e (patch)
tree686c03e79accb58f88d118db61b9f6f147b8a04d /source3/printing
parent9c6e58869f45dd2be0904b9ecf9e757b2b3841d6 (diff)
downloadsamba-30418a47c609fdff286bcab4e29e3fe0b244632e.tar.gz
samba-30418a47c609fdff286bcab4e29e3fe0b244632e.tar.bz2
samba-30418a47c609fdff286bcab4e29e3fe0b244632e.zip
Limit the number of outstanding print notify messages for a process to
1000. Jeremy. (This used to be commit 2e5e4c10d2377493913554e7dab79d97a4d16d87)
Diffstat (limited to 'source3/printing')
-rw-r--r--source3/printing/notify.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/source3/printing/notify.c b/source3/printing/notify.c
index 428eb54ce4..ee973da211 100644
--- a/source3/printing/notify.c
+++ b/source3/printing/notify.c
@@ -174,8 +174,15 @@ static void print_notify_send_messages_to_printer(const char *printer, unsigned
if (!print_notify_pid_list(printer, send_ctx, &num_pids, &pid_list))
return;
- for (i = 0; i < num_pids; i++)
+ for (i = 0; i < num_pids; i++) {
+ unsigned int q_len = messages_pending_for_pid(pid_list[i]);
+ if (q_len > 1000) {
+ DEBUG(5, ("print_notify_send_messages_to_printer: discarding notify to printer %s as queue length = %u\n",
+ printer, q_len ));
+ continue;
+ }
message_send_pid_with_timeout(pid_list[i], MSG_PRINTER_NOTIFY2, buf, offset, True, timeout);
+ }
}
/*******************************************************************