* Do not generate an error response in this case
* Drop a TCP connection if we are not going to respond to it.
kdc: add KRB5KDC_ERR_DISCARD
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@24406
dc483132-0cff-0310-8789-
dd5450dbe970
if (status == 0) {
status = emsg;
}
+ if (errcode == KRB5KDC_ERR_DISCARD)
+ goto discard;
errcode -= ERROR_TABLE_BASE_krb5;
if (errcode < 0 || errcode > 128)
errcode = KRB_ERR_GENERIC;
status = 0;
}
- if (emsg)
+discard: if (emsg)
krb5_free_error_message(kdc_context, emsg);
if (enc_tkt_reply.authorization_data != NULL)
krb5_free_authdata(kdc_context, enc_tkt_reply.authorization_data);
case KRB5KDC_ERR_REVOCATION_STATUS_UNAVAILABLE:
/* This value is shared with KRB5KDC_ERR_DH_KEY_PARAMETERS_NOT_ACCEPTED. */
/* case KRB5KDC_ERR_KEY_TOO_WEAK: */
+ case KRB5KDC_ERR_DISCARD:
return retval;
default:
return KRB5KDC_ERR_PREAUTH_FAILED;
com_err(prog, err, "while dispatching (tcp)");
goto kill_tcp_connection;
}
+ if (conn->u.tcp.response == NULL)
+ goto kill_tcp_connection;
have_response:
queue_tcp_outgoing_response(conn);
FD_CLR(conn->fd, &sstate.rfds);
error_code KRB5_PLUGIN_VER_NOTSUPP, "Plugin does not support interface version"
error_code KRB5_PLUGIN_BAD_MODULE_SPEC, "Invalid module specifier"
error_code KRB5_PLUGIN_NAME_NOTFOUND, "Plugin module name not found"
-
+error_code KRB5KDC_ERR_DISCARD, "The KDC should discard this request"
end