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);
-}
-
/** @} **/
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) {
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) {
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;
+ }
}
}