]> andersk Git - gssapi-openssh.git/blobdiff - openssh/gss-serv-gsi.c
fix decl of ssh_gssapi_gsi_updatecreds() to match defn
[gssapi-openssh.git] / openssh / gss-serv-gsi.c
index 7eec0548548760c727a97736f49f878ef63a32f6..196f4b6cc52884a97350ad8ca11b26de8a708882 100644 (file)
@@ -49,6 +49,8 @@ extern ServerOptions options;
 static int ssh_gssapi_gsi_userok(ssh_gssapi_client *client, char *name);
 static int ssh_gssapi_gsi_localname(ssh_gssapi_client *client, char **user);
 static void ssh_gssapi_gsi_storecreds(ssh_gssapi_client *client);
+static int ssh_gssapi_gsi_updatecreds(ssh_gssapi_ccache *store,
+                                      ssh_gssapi_client *client);
 
 ssh_gssapi_mech gssapi_gsi_mech = {
        "dZuIebMjgUqaxvbF7hDbAw==",
@@ -57,7 +59,8 @@ ssh_gssapi_mech gssapi_gsi_mech = {
        NULL,
        &ssh_gssapi_gsi_userok,
        &ssh_gssapi_gsi_localname,
-       &ssh_gssapi_gsi_storecreds
+       &ssh_gssapi_gsi_storecreds,
+       &ssh_gssapi_gsi_updatecreds
 };
 
 /*
@@ -89,7 +92,7 @@ ssh_gssapi_gsi_userok(ssh_gssapi_client *client, char *name)
         (res = globus_gss_assist_map_and_authorize(client->context, "ssh",
                                                    name, lname, 256))) {
         debug("%s", globus_error_print_chain(globus_error_get(res)));
-    } else if (strcmp(name, lname) != 0) {
+    } else if (lname && lname[0] && strcmp(name, lname) != 0) {
         debug("GSI user maps to %s, not %s", lname, name);
     } else {
         authorized = 1;
@@ -221,5 +224,15 @@ ssh_gssapi_gsi_storecreds(ssh_gssapi_client *client)
        gss_release_buffer(&minor_status, &export_cred);
 }
 
+/*
+ * Export updated GSI credentials to disk.
+ */
+static int
+ssh_gssapi_gsi_updatecreds(ssh_gssapi_ccache *store,ssh_gssapi_client *client)
+{
+       ssh_gssapi_gsi_storecreds(client);
+       return 1;
+}
+
 #endif /* GSI */
 #endif /* GSSAPI */
This page took 0.043324 seconds and 4 git commands to generate.