diff options
Diffstat (limited to 'source3')
-rw-r--r-- | source3/lib/messages.c | 10 | ||||
-rw-r--r-- | source3/printing/notify.c | 18 |
2 files changed, 13 insertions, 15 deletions
diff --git a/source3/lib/messages.c b/source3/lib/messages.c index 30056de716..479a6952a6 100644 --- a/source3/lib/messages.c +++ b/source3/lib/messages.c @@ -872,14 +872,4 @@ NTSTATUS messaging_send_buf(struct messaging_context *msg_ctx, return messaging_send(msg_ctx, server, msg_type, &blob); } -NTSTATUS messaging_send_buf_with_timeout(struct messaging_context *msg_ctx, - struct server_id server, - uint32_t msg_type, - const uint8 *buf, size_t len, - int timeout) -{ - return message_send_pid_internal(server, msg_type, buf, len, - True, timeout); -} - /** @} **/ diff --git a/source3/printing/notify.c b/source3/printing/notify.c index 1285ca23a8..37ae003783 100644 --- a/source3/printing/notify.c +++ b/source3/printing/notify.c @@ -126,6 +126,7 @@ static void print_notify_send_messages_to_printer(struct messaging_context *msg_ size_t num_pids = 0; size_t i; pid_t *pid_list = NULL; + struct timeval end_time = timeval_zero(); /* Count the space needed to send the messages. */ for (pq = notify_queue_head; pq; pq = pq->next) { @@ -177,6 +178,10 @@ static void print_notify_send_messages_to_printer(struct messaging_context *msg_ if (!print_notify_pid_list(printer, send_ctx, &num_pids, &pid_list)) return; + if (timeout != 0) { + end_time = timeval_current_ofs(timeout, 0); + } + for (i = 0; i < num_pids; i++) { unsigned int q_len = messages_pending_for_pid(pid_to_procid(pid_list[i])); if (q_len > 1000) { @@ -184,11 +189,14 @@ static void print_notify_send_messages_to_printer(struct messaging_context *msg_ printer, q_len )); continue; } - messaging_send_buf_with_timeout(msg_ctx, - pid_to_procid(pid_list[i]), - MSG_PRINTER_NOTIFY2, - (uint8 *)buf, offset, - timeout); + messaging_send_buf(msg_ctx, + pid_to_procid(pid_list[i]), + MSG_PRINTER_NOTIFY2, + (uint8 *)buf, offset); + + if ((timeout != 0) && timeval_expired(&end_time)) { + break; + } } } |