char *existing_ccache = NULL;
bool auth_requested;
NTSTATUS status;
- int ret;
+ krb5_error_code ret;
+ enum credentials_obtained obtained;
req = tevent_req_create(mem_ctx, &state,
struct cli_credentials_krb5_refresh_ccache_state);
return tevent_req_post(req, ev);
}
- ret = cli_credentials_get_named_ccache(cred,
- ev,
- lp_ctx,
- ccache_name,
- &ccc,
- &error_string);
+ ret = cli_credentials_new_ccache(cred,
+ lp_ctx,
+ ccache_name,
+ &ccc,
+ &error_string);
+ status = krb5_to_nt_status(ret);
+ if (tevent_req_nterror(req, status)) {
+ return tevent_req_post(req, ev);
+ }
+
+ ret = kinit_to_ccache(cred,
+ cred,
+ ccc->smb_krb5_context,
+ ev,
+ ccc->ccache,
+ &obtained, &error_string);
switch (ret) {
case 0:
status = NT_STATUS_OK;
return tevent_req_post(req, ev);
}
+ ret = cli_credentials_set_from_ccache(cred,
+ ccc,
+ obtained,
+ &error_string);
+ status = krb5_to_nt_status(ret);
+ if (tevent_req_nterror(req, status)) {
+ return tevent_req_post(req, ev);
+ }
+
tevent_req_done(req);
return tevent_req_post(req, ev);
}