added parameter to indicate type of credentials to require
authorMichal Voců <michal@ruk.cuni.cz>
Thu, 23 Aug 2012 13:28:14 +0000 (13:28 +0000)
committerMichal Voců <michal@ruk.cuni.cz>
Thu, 23 Aug 2012 13:28:14 +0000 (13:28 +0000)
org.glite.lbjp-common.gss/interface/glite_gss.h
org.glite.lbjp-common.gss/src/glite_gss.c

index 6fffffb..87b8e0e 100644 (file)
@@ -83,10 +83,15 @@ edg_wll_gss_finalize(void);
 int
 edg_wll_gss_acquire_cred(const char *cert_file,
                         const char *key_file,
+                        const gss_cred_usage_t cred_usage,
                         edg_wll_GssCred *cred,
                         edg_wll_GssStatus* gss_code);
 
-#define edg_wll_gss_acquire_cred_gsi edg_wll_gss_acquire_cred
+int
+edg_wll_gss_acquire_cred_gsi(const char *cert_file,
+                            const char *key_file,
+                            edg_wll_GssCred *cred,
+                            edg_wll_GssStatus* gss_code);
 
 int
 edg_wll_gss_release_cred(edg_wll_GssCred *cred,
index eae4691..7f61b4a 100644 (file)
@@ -694,14 +694,15 @@ int
 edg_wll_gss_acquire_cred_gsi(const char *cert_file, const char *key_file, edg_wll_GssCred *cred,
                         edg_wll_GssStatus* gss_code)
 {
-       return edg_wll_gss_acquire_cred(cert_file, key_file, cred, gss_code);
+       return edg_wll_gss_acquire_cred(cert_file, key_file, GSS_C_BOTH, cred, gss_code);
 }
 
 /** Load or reload credentials. It should be called regularly (credential files can be changed).
  @see edg_wll_gss_watch_creds
  */
 int
-edg_wll_gss_acquire_cred(const char *cert_file, const char *key_file, edg_wll_GssCred *cred,
+edg_wll_gss_acquire_cred(const char *cert_file, const char *key_file, const gss_cred_usage_t cred_usage,
+                        edg_wll_GssCred *cred,
                         edg_wll_GssStatus* gss_code)
 {
    OM_uint32 major_status = 0, minor_status, minor_status2;
@@ -747,7 +748,7 @@ edg_wll_gss_acquire_cred(const char *cert_file, const char *key_file, edg_wll_Gs
       mechs.elements = get_oid(mech_name);
       
       major_status = gss_acquire_cred(&minor_status, GSS_C_NO_NAME, 0,
-                                     &mechs, GSS_C_BOTH,
+                                     &mechs, cred_usage,
                                      &gss_cred, NULL, NULL);
       if (GSS_ERROR(major_status)) {
         ret = EDG_WLL_GSS_ERROR_GSS;