Skip to content

Commit

Permalink
Remove kdc_context, tgs_server macros in KDC
Browse files Browse the repository at this point in the history
Eliminate the last two kdc_active_realm macros from realm_data.h (left
behind after commits 0a2f14f and
e987546).  Where code is affected,
use the names "context" and "realm".  Pass contexts instead of realm
data structures to several functions which only need a context.
  • Loading branch information
greghudson committed Jul 21, 2022
1 parent 6c2ee5a commit 8ecb797
Show file tree
Hide file tree
Showing 10 changed files with 495 additions and 581 deletions.
17 changes: 8 additions & 9 deletions src/kdc/dispatch.c
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,7 @@
#include <arpa/inet.h>
#include <string.h>

static krb5_error_code make_too_big_error(kdc_realm_t *kdc_active_realm,
krb5_data **out);
static krb5_error_code make_too_big_error(kdc_realm_t *realm, krb5_data **out);

struct dispatch_state {
loop_respond_fn respond;
Expand All @@ -51,13 +50,12 @@ finish_dispatch(struct dispatch_state *state, krb5_error_code code,
{
loop_respond_fn oldrespond = state->respond;
void *oldarg = state->arg;
kdc_realm_t *kdc_active_realm = state->active_realm;

if (state->is_tcp == 0 && response &&
response->length > (unsigned int)max_dgram_reply_size) {
krb5_free_data(kdc_context, response);
krb5_free_data(NULL, response);
response = NULL;
code = make_too_big_error(kdc_active_realm, &response);
code = make_too_big_error(state->active_realm, &response);
if (code)
krb5_klog_syslog(LOG_ERR, "error constructing "
"KRB_ERR_RESPONSE_TOO_BIG error: %s",
Expand Down Expand Up @@ -178,20 +176,21 @@ dispatch(void *cb, const krb5_fulladdr *local_addr,
}

static krb5_error_code
make_too_big_error(kdc_realm_t *kdc_active_realm, krb5_data **out)
make_too_big_error(kdc_realm_t *realm, krb5_data **out)
{
krb5_context context = realm->realm_context;
krb5_error errpkt;
krb5_error_code retval;
krb5_data *scratch;

*out = NULL;
memset(&errpkt, 0, sizeof(errpkt));

retval = krb5_us_timeofday(kdc_context, &errpkt.stime, &errpkt.susec);
retval = krb5_us_timeofday(context, &errpkt.stime, &errpkt.susec);
if (retval)
return retval;
errpkt.error = KRB_ERR_RESPONSE_TOO_BIG;
errpkt.server = tgs_server;
errpkt.server = realm->realm_tgsprinc;
errpkt.client = NULL;
errpkt.text.length = 0;
errpkt.text.data = 0;
Expand All @@ -200,7 +199,7 @@ make_too_big_error(kdc_realm_t *kdc_active_realm, krb5_data **out)
scratch = malloc(sizeof(*scratch));
if (scratch == NULL)
return ENOMEM;
retval = krb5_mk_error(kdc_context, &errpkt, scratch);
retval = krb5_mk_error(context, &errpkt, scratch);
if (retval) {
free(scratch);
return retval;
Expand Down

0 comments on commit 8ecb797

Please sign in to comment.