summaryrefslogtreecommitdiff
path: root/source4/heimdal/lib/krb5/kcm.c
diff options
context:
space:
mode:
Diffstat (limited to 'source4/heimdal/lib/krb5/kcm.c')
-rw-r--r--source4/heimdal/lib/krb5/kcm.c45
1 files changed, 28 insertions, 17 deletions
diff --git a/source4/heimdal/lib/krb5/kcm.c b/source4/heimdal/lib/krb5/kcm.c
index d5f38c5aaf..8a8f1efc11 100644
--- a/source4/heimdal/lib/krb5/kcm.c
+++ b/source4/heimdal/lib/krb5/kcm.c
@@ -67,7 +67,7 @@ try_door(krb5_context context,
int ret;
memset(&arg, 0, sizeof(arg));
-
+
fd = open(k->door_path, O_RDWR);
if (fd < 0)
return KRB5_CC_IO;
@@ -114,13 +114,13 @@ try_unix_socket(krb5_context context,
close(fd);
return KRB5_CC_IO;
}
-
+
ret = _krb5_send_and_recv_tcp(fd, context->kdc_timeout,
request_data, response_data);
close(fd);
return ret;
}
-
+
static krb5_error_code
kcm_send_request(krb5_context context,
krb5_kcmcache *k,
@@ -136,7 +136,7 @@ kcm_send_request(krb5_context context,
ret = krb5_storage_to_data(request, &request_data);
if (ret) {
- krb5_clear_error_string(context);
+ krb5_clear_error_message(context);
return KRB5_CC_NOMEM;
}
@@ -154,7 +154,7 @@ kcm_send_request(krb5_context context,
krb5_data_free(&request_data);
if (ret) {
- krb5_clear_error_string(context);
+ krb5_clear_error_message(context);
ret = KRB5_CC_NOSUPP;
}
@@ -173,7 +173,7 @@ kcm_storage_request(krb5_context context,
sp = krb5_storage_emem();
if (sp == NULL) {
- krb5_set_error_message(context, KRB5_CC_NOMEM, "malloc: out of memory");
+ krb5_set_error_message(context, KRB5_CC_NOMEM, N_("malloc: out of memory", ""));
return KRB5_CC_NOMEM;
}
@@ -191,11 +191,12 @@ kcm_storage_request(krb5_context context,
*storage_p = sp;
fail:
if (ret) {
- krb5_set_error_message(context, ret, "Failed to encode request");
+ krb5_set_error_message(context, ret,
+ N_("Failed to encode KCM request", ""));
krb5_storage_free(sp);
}
-
- return ret;
+
+ return ret;
}
static krb5_error_code
@@ -206,7 +207,7 @@ kcm_alloc(krb5_context context, const char *name, krb5_ccache *id)
k = malloc(sizeof(*k));
if (k == NULL) {
- krb5_set_error_message(context, KRB5_CC_NOMEM, "malloc: out of memory");
+ krb5_set_error_message(context, KRB5_CC_NOMEM, N_("malloc: out of memory", ""));
return KRB5_CC_NOMEM;
}
@@ -214,7 +215,8 @@ kcm_alloc(krb5_context context, const char *name, krb5_ccache *id)
k->name = strdup(name);
if (k->name == NULL) {
free(k);
- krb5_set_error_message(context, KRB5_CC_NOMEM, "malloc: out of memory");
+ krb5_set_error_message(context, KRB5_CC_NOMEM,
+ N_("malloc: out of memory", ""));
return KRB5_CC_NOMEM;
}
} else
@@ -222,16 +224,16 @@ kcm_alloc(krb5_context context, const char *name, krb5_ccache *id)
path = krb5_config_get_string_default(context, NULL,
_PATH_KCM_SOCKET,
- "libdefaults",
+ "libdefaults",
"kcm_socket",
NULL);
-
+
k->path.sun_family = AF_UNIX;
strlcpy(k->path.sun_path, path, sizeof(k->path.sun_path));
path = krb5_config_get_string_default(context, NULL,
_PATH_KCM_DOOR,
- "libdefaults",
+ "libdefaults",
"kcm_door",
NULL);
k->door_path = strdup(path);
@@ -738,7 +740,7 @@ kcm_end_get (krb5_context context,
krb5_storage_free(request);
return ret;
}
-
+
krb5_storage_free(request);
KCMCURSOR(*cursor) = 0;
@@ -865,11 +867,18 @@ kcm_move(krb5_context context, krb5_ccache from, krb5_ccache to)
static krb5_error_code
kcm_default_name(krb5_context context, char **str)
{
- return _krb5_expand_default_cc_name(context,
+ return _krb5_expand_default_cc_name(context,
KRB5_DEFAULT_CCNAME_KCM,
str);
}
+static krb5_error_code
+kcm_lastchange(krb5_context context, krb5_ccache id, krb5_timestamp *mtime)
+{
+ *mtime = time(NULL);
+ return 0;
+}
+
/**
* Variable containing the KCM based credential cache implemention.
*
@@ -898,7 +907,9 @@ KRB5_LIB_VARIABLE const krb5_cc_ops krb5_kcm_ops = {
NULL,
NULL,
kcm_move,
- kcm_default_name
+ kcm_default_name,
+ NULL,
+ kcm_lastchange
};
krb5_boolean