aklog-deal-without-524-20070711
authorDouglas Engert <deengert@anl.gov>
Wed, 11 Jul 2007 05:29:36 +0000 (05:29 +0000)
committerDerrick Brashear <shadow@dementia.org>
Wed, 11 Jul 2007 05:29:36 +0000 (05:29 +0000)
patch in a way of dealing with no krb524

src/aklog/aklog.h
src/aklog/aklog_main.c

index 47acfc7..c3d0ce6 100644 (file)
@@ -51,6 +51,10 @@ void aklog ARGS((int, char *[]));
 #define INST_SZ 40
 #endif /* INST_SZ */
 
+#ifndef u_int32_t
+#define u_int32_t uint32_t
+#endif
+
 struct ktext {
     unsigned int length;
     unsigned char dat[MAX_KTXT_LEN];
index bef2418..18417b5 100644 (file)
@@ -202,7 +202,7 @@ static int get_user_realm(krb5_context, char *);
 #if !defined(HAVE_KRB5_524_CONVERT_CREDS) && defined(HAVE_KRB524_CONVERT_CREDS_KDC)
 #define krb5_524_convert_creds krb524_convert_creds_kdc
 #elif !defined(HAVE_KRB5_524_CONVERT_CREDS) && !defined(HAVE_KRB524_CONVERT_CREDS_KDC)
-#error "You must have one of krb5_524_convert_creds or krb524_convert_creds_kdc available"
+#define HAVE_NO_KRB5_524
 #endif
 
 #endif /* WINDOWS */
@@ -657,6 +657,7 @@ static int auth_to_cell(krb5_context context, char *cell, char *realm)
                   get_cred_keylen(v5cred));
            atoken.ticketLen = v5cred->ticket.length;
            memcpy(atoken.ticket, v5cred->ticket.data, atoken.ticketLen);
+#ifndef HAVE_NO_KRB5_524
        } else {
            CREDENTIALS cred;
 
@@ -691,6 +692,7 @@ static int auth_to_cell(krb5_context context, char *cell, char *realm)
            memcpy(&atoken.sessionKey, cred.session, 8);
            atoken.ticketLen = cred.ticket_st.length;
            memcpy(atoken.ticket, cred.ticket_st.dat, atoken.ticketLen);
+#endif /* HAVE_NO_KRB5_524 */
        }
        
        if (!force &&
@@ -1213,7 +1215,11 @@ static void usage(void)
            "[-d] [[-cell | -c] cell [-k krb_realm]] ",
            "[[-p | -path] pathname]\n",
            "    [-zsubs] [-hosts] [-noauth] [-noprdb] [-force] [-setpag] \n"
-           "    [-linked] [-524]\n");
+               "    [-linked]"
+#ifndef HAVE_NO_KRB5_524
+               " [-524]"
+#endif
+               "\n");
     fprintf(stderr, "    -d gives debugging information.\n");
     fprintf(stderr, "    krb_realm is the kerberos realm of a cell.\n");
     fprintf(stderr, "    pathname is the name of a directory to which ");
@@ -1225,7 +1231,9 @@ static void usage(void)
     fprintf(stderr, "    -force means replace identical tickets. \n");
     fprintf(stderr, "    -linked means if AFS node is linked, try both. \n");
     fprintf(stderr, "    -setpag set the AFS process authentication group.\n");
+#ifndef HAVE_NO_KRB5_524
     fprintf(stderr, "    -524 means use the 524 converter instead of V5 directly\n");
+#endif
     fprintf(stderr, "    No commandline arguments means ");
     fprintf(stderr, "authenticate to the local cell.\n");
     fprintf(stderr, "\n");
@@ -1298,8 +1306,10 @@ void aklog(int argc, char *argv[])
                linked++;
        else if (strcmp(argv[i], "-force") == 0)
            force++;
+#ifndef HAVE_NO_KRB5_524
        else if (strcmp(argv[i], "-524") == 0)
            do524++;
+#endif
     else if (strcmp(argv[i], "-setpag") == 0)
            afssetpag++;
        else if (((strcmp(argv[i], "-cell") == 0) ||