Lines Matching defs:forward

613  *	Hold forward state.
4495 * if there happens to be a journal file, we can roll forward from
10514 dns_forward_t *forward;
10522 for (forward = ISC_LIST_HEAD(zone->forwards);
10523 forward != NULL;
10524 forward = ISC_LIST_NEXT(forward, link)) {
10525 if (forward->request != NULL)
10526 dns_request_cancel(forward->request);
15622 forward_destroy(dns_forward_t *forward) {
15624 forward->magic = 0;
15625 if (forward->request != NULL)
15626 dns_request_destroy(&forward->request);
15627 if (forward->msgbuf != NULL)
15628 isc_buffer_free(&forward->msgbuf);
15629 if (forward->zone != NULL) {
15630 LOCK(&forward->zone->lock);
15631 if (ISC_LINK_LINKED(forward, link))
15632 ISC_LIST_UNLINK(forward->zone->forwards, forward, link);
15633 UNLOCK(&forward->zone->lock);
15634 dns_zone_idetach(&forward->zone);
15636 isc_mem_putanddetach(&forward->mctx, forward, sizeof(*forward));
15640 sendtomaster(dns_forward_t *forward) {
15645 LOCK_ZONE(forward->zone);
15647 if (DNS_ZONE_FLAG(forward->zone, DNS_ZONEFLG_EXITING)) {
15648 UNLOCK_ZONE(forward->zone);
15652 if (forward->which >= forward->zone->masterscnt) {
15653 UNLOCK_ZONE(forward->zone);
15657 forward->addr = forward->zone->masters[forward->which];
15664 switch (isc_sockaddr_pf(&forward->addr)) {
15666 src = forward->zone->xfrsource4;
15667 dscp = forward->zone->xfrsource4dscp;
15670 src = forward->zone->xfrsource6;
15671 dscp = forward->zone->xfrsource6dscp;
15677 result = dns_request_createraw4(forward->zone->view->requestmgr,
15678 forward->msgbuf,
15679 &src, &forward->addr, dscp,
15680 forward->options, 15 /* XXX */,
15681 0, 0, forward->zone->task,
15682 forward_callback, forward,
15683 &forward->request);
15685 if (!ISC_LINK_LINKED(forward, link))
15686 ISC_LIST_APPEND(forward->zone->forwards, forward, link);
15690 UNLOCK_ZONE(forward->zone);
15701 dns_forward_t *forward;
15706 forward = revent->ev_arg;
15707 INSIST(DNS_FORWARD_VALID(forward));
15708 zone = forward->zone;
15713 isc_sockaddr_format(&forward->addr, master, sizeof(master));
15717 "could not forward dynamic update to %s: %s",
15779 (forward->callback)(forward->callback_arg, ISC_R_SUCCESS, msg);
15781 dns_request_destroy(&forward->request);
15782 forward_destroy(forward);
15790 forward->which++;
15791 dns_request_destroy(&forward->request);
15792 result = sendtomaster(forward);
15797 (forward->callback)(forward->callback_arg, result, NULL);
15798 forward_destroy(forward);
15806 dns_forward_t *forward;
15814 forward = isc_mem_get(zone->mctx, sizeof(*forward));
15815 if (forward == NULL)
15818 forward->request = NULL;
15819 forward->zone = NULL;
15820 forward->msgbuf = NULL;
15821 forward->which = 0;
15822 forward->mctx = 0;
15823 forward->callback = callback;
15824 forward->callback_arg = callback_arg;
15825 ISC_LINK_INIT(forward, link);
15826 forward->magic = FORWARD_MAGIC;
15827 forward->options = DNS_REQUESTOPT_TCP;
15833 forward->options |= DNS_REQUESTOPT_FIXEDID;
15841 result = isc_buffer_allocate(zone->mctx, &forward->msgbuf, mr->length);
15844 result = isc_buffer_copyregion(forward->msgbuf, mr);
15848 isc_mem_attach(zone->mctx, &forward->mctx);
15849 dns_zone_iattach(zone, &forward->zone);
15850 result = sendtomaster(forward);
15854 forward_destroy(forward);