Lines Matching refs:request
11 /* the queue manager. Each request specifies a queue file, a sender
21 /* in the delivery request using the "next-hop" information
60 /* request before it is terminated by a built-in watchdog timer.
138 static int deliver_message(DELIVER_REQUEST *request, const char *def_dsn,
152 msg_info("deliver_message: from %s", request->sender);
157 if (request->nexthop[0] == 0)
159 if (request->rcpt_list.len <= 0)
160 msg_fatal("recipient count: %d", request->rcpt_list.len);
168 src = mail_queue_open(request->queue_name, request->queue_id,
172 request->queue_name, request->queue_id);
179 #define BOUNCE_FLAGS(request) DEL_REQ_TRACE_FLAGS(request->flags)
181 dsn_split(&dp, def_dsn, request->nexthop);
183 for (nrcpt = 0; nrcpt < request->rcpt_list.len; nrcpt++) {
184 rcpt = request->rcpt_list.info + nrcpt;
185 status = append(BOUNCE_FLAGS(request), request->queue_id,
186 &request->msg_stats, rcpt, "none", &dsn);
196 msg_warn("close %s %s: %m", request->queue_name, request->queue_id);
205 DELIVER_REQUEST *request;
217 * to (1) tell the queue manager that we are ready, (2) read a request
219 * request. All connection-management stuff is handled by the common code
222 if ((request = deliver_request_read(client_stream)) != 0) {
224 status = deliver_message(request, "5.0.0", bounce_append);
226 status = deliver_message(request, "4.0.0", defer_append);
229 deliver_request_done(client_stream, request, status);