diff options
| author | Ken Raeburn <raeburn@mit.edu> | 2010-03-17 06:00:56 +0000 |
|---|---|---|
| committer | Ken Raeburn <raeburn@mit.edu> | 2010-03-17 06:00:56 +0000 |
| commit | 17d926a4ce8bc2ede57a86f23948a3e9b68266a6 (patch) | |
| tree | f8bcc310d4aae44f23eb49a427655d52a3ad4bf8 /src/kadmin/server/misc.c | |
| parent | 1c2a27e980b7fbce4161579ec61087988fefe9cf (diff) | |
| download | krb5-17d926a4ce8bc2ede57a86f23948a3e9b68266a6.tar.gz krb5-17d926a4ce8bc2ede57a86f23948a3e9b68266a6.tar.xz krb5-17d926a4ce8bc2ede57a86f23948a3e9b68266a6.zip | |
Merge users/raeburn/branches/network-merge
Re-integrates the forked versions of network.c in kdc and
kadmin/server. Server-specific initialization and SIGHUP-reset code
is moved into other source files; the more generic network-servicing
code is merged and moved into apputils library already used by both
programs.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@23811 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/kadmin/server/misc.c')
| -rw-r--r-- | src/kadmin/server/misc.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/kadmin/server/misc.c b/src/kadmin/server/misc.c index 375fbd151..b9212fa0f 100644 --- a/src/kadmin/server/misc.c +++ b/src/kadmin/server/misc.c @@ -9,6 +9,7 @@ #include <kadm5/server_internal.h> #include <kadm5/server_acl.h> #include "misc.h" +#include "net-server.h" /* * Function: chpass_principal_wrapper_3 @@ -224,3 +225,47 @@ trunc_name(size_t *len, char **dots) *dots = *len > MAXPRINCLEN ? "..." : ""; *len = *len > MAXPRINCLEN ? MAXPRINCLEN : *len; } + +krb5_error_code +make_toolong_error (void *handle, krb5_data **out) +{ + krb5_error errpkt; + krb5_error_code retval; + krb5_data *scratch; + kadm5_server_handle_t server_handle = (kadm5_server_handle_t)handle; + + retval = krb5_us_timeofday(server_handle->context, &errpkt.stime, &errpkt.susec); + if (retval) + return retval; + errpkt.error = KRB_ERR_FIELD_TOOLONG; + retval = krb5_build_principal(server_handle->context, &errpkt.server, + strlen(server_handle->params.realm), + server_handle->params.realm, + "kadmin", "changepw", NULL); + if (retval) + return retval; + errpkt.client = NULL; + errpkt.cusec = 0; + errpkt.ctime = 0; + errpkt.text.length = 0; + errpkt.text.data = 0; + errpkt.e_data.length = 0; + errpkt.e_data.data = 0; + scratch = malloc(sizeof(*scratch)); + if (scratch == NULL) + return ENOMEM; + retval = krb5_mk_error(server_handle->context, &errpkt, scratch); + if (retval) { + free(scratch); + return retval; + } + + *out = scratch; + return 0; +} + +krb5_context get_context(void *handle) +{ + kadm5_server_handle_t server_handle = (kadm5_server_handle_t)handle; + return server_handle->context; +} |
