+4462. [bug] Don't describe a returned EDNS COOKIE as "good"
+ when there isn't a valid server cookie. [RT #43167]
+
4461. [bug] win32: not all external data was properly marked
as external data for windows dll. [RT #43161]
isc_buffer_forward(&optbuf, optlen);
if (optcode == DNS_OPT_COOKIE) {
- if (msg->cc_ok)
+ /*
+ * Valid server cookie?
+ */
+ if (msg->cc_ok && optlen >= 16)
ADD_STRING(target, " (good)");
+ /*
+ * Server cookie is not valid but
+ * we had our cookie echoed back.
+ */
+ if (msg->cc_ok && optlen < 16)
+ ADD_STRING(target, " (echoed)");
+ /*
+ * We didn't get our cookie echoed
+ * back.
+ */
if (msg->cc_bad)
ADD_STRING(target, " (bad)");
ADD_STRING(target, "\n");