• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10.1/postfix-255/postfix/src/oqmgr/

Lines Matching defs:transport

11 /*	QMGR_QUEUE *qmgr_queue_create(transport, name, nexthop)
12 /* QMGR_TRANSPORT *transport;
19 /* QMGR_QUEUE *qmgr_queue_find(transport, name)
20 /* QMGR_TRANSPORT *transport;
23 /* QMGR_QUEUE *qmgr_queue_select(transport)
24 /* QMGR_TRANSPORT *transport;
38 /* Each queue corresponds to a specific transport and destination.
46 /* transport and destination. The queue is given an initial
49 /* provided that it does not exceed the transport-specific
57 /* transport. A null result means that the queue was not found.
60 /* from the named transport one per-destination queue with a
72 /* limit specified for the transport. This routine implements
115 (strcmp(queue->transport->name, MAIL_SERVICE_RETRY) == 0 \
116 || strcmp(queue->transport->name, MAIL_SERVICE_ERROR) == 0)
125 myname, queue->name, queue->transport->dest_concurrency_limit, \
142 * We can't simply force delivery on this queue: the transport's pending
201 QMGR_TRANSPORT *transport = queue->transport;
235 queue->window = transport->init_dest_concurrency;
243 * transport's concurrency limit. Allow for a margin the size of the
256 if (transport->dest_concurrency_limit == 0
257 || transport->dest_concurrency_limit > queue->window)
258 if (queue->window < queue->busy_refcount + transport->init_dest_concurrency) {
259 feedback = QMGR_FEEDBACK_VAL(transport->pos_feedback, queue->window);
263 while (queue->success + feedback / 2 >= transport->pos_feedback.hysteresis) {
264 queue->window += transport->pos_feedback.hysteresis;
265 queue->success -= transport->pos_feedback.hysteresis;
269 if (transport->dest_concurrency_limit > 0
270 && queue->window > transport->dest_concurrency_limit)
271 queue->window = transport->dest_concurrency_limit;
281 QMGR_TRANSPORT *transport = queue->transport;
310 if (transport->fail_cohort_limit > 0
311 && queue->fail_cohorts >= transport->fail_cohort_limit)
325 feedback = QMGR_FEEDBACK_VAL(transport->neg_feedback, queue->window);
330 queue->window -= transport->neg_feedback.hysteresis;
332 queue->failure += transport->neg_feedback.hysteresis;
353 QMGR_QUEUE *qmgr_queue_select(QMGR_TRANSPORT *transport)
361 for (queue = transport->queue_list.next; queue; queue = queue->peers.next) {
363 QMGR_LIST_ROTATE(transport->queue_list, queue);
377 QMGR_TRANSPORT *transport = queue->transport;
397 QMGR_LIST_UNLINK(transport->queue_list, QMGR_QUEUE *, queue);
398 htable_delete(transport->queue_byname, queue->name, (void (*) (char *)) 0);
407 QMGR_QUEUE *qmgr_queue_create(QMGR_TRANSPORT *transport, const char *name,
425 queue->transport = transport;
426 queue->window = transport->init_dest_concurrency;
432 QMGR_LIST_PREPEND(transport->queue_list, queue);
433 htable_enter(transport->queue_byname, name, (char *) queue);
439 QMGR_QUEUE *qmgr_queue_find(QMGR_TRANSPORT *transport, const char *name)
441 return ((QMGR_QUEUE *) htable_find(transport->queue_byname, name));