* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: message.c,v 1.243 2008/04/03 10:45:35 marka Exp $ */
+/* $Id: message.c,v 1.244 2008/07/28 08:39:52 marka Exp $ */
/*! \file */
msg->tsigkey = NULL;
}
+ if (msg->tsigctx != NULL)
+ dst_context_destroy(&msg->tsigctx);
+
if (msg->query.base != NULL) {
if (msg->free_query != 0)
isc_mem_put(msg->mctx, msg->query.base,
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: xfrin.c,v 1.160 2008/07/23 23:27:54 marka Exp $ */
+/* $Id: xfrin.c,v 1.161 2008/07/28 08:39:52 marka Exp $ */
/*! \file */
xfr->nbytes = 0;
isc_time_now(&xfr->start);
msg->id = xfr->id;
+ if (xfr->tsigctx != NULL)
+ dst_context_destroy(&xfr->tsigctx);
CHECK(render(msg, xfr->mctx, &xfr->qbuffer));
CHECK(dns_message_settsigkey(msg, xfr->tsigkey));
CHECK(dns_message_setquerytsig(msg, xfr->lasttsig));
+
msg->tsigctx = xfr->tsigctx;
+ xfr->tsigctx = NULL;
+
if (xfr->nmsg > 0)
msg->tcp_continuation = 1;
xfr->nbytes += tcpmsg->buffer.used;
/*
- * Copy the context back.
+ * Take the context back.
*/
+ INSIST(xfr->tsigctx == NULL);
xfr->tsigctx = msg->tsigctx;
+ msg->tsigctx = NULL;
dns_message_destroy(&msg);
if (xfr->tcpmsg_valid)
dns_tcpmsg_invalidate(&xfr->tcpmsg);
+ if (xfr->tsigctx != NULL)
+ dst_context_destroy(&xfr->tsigctx);
+
if ((xfr->name.attributes & DNS_NAMEATTR_DYNAMIC) != 0)
dns_name_free(&xfr->name, xfr->mctx);