[OpenAFS-devel] "unable to authenticate to AFS" error- linux distribution, specific?

Christof Hanke hanke@rzg.mpg.de
Thu, 25 Nov 2004 15:50:19 +0100


Hi,

Following your advice, here's a temporary patch for using fixed args and 
making use of a proper
prototype so that compiling with a wrong parameter list fails.
I'm not sure if "varargs" is such a good idea, since it's already 
superseded by "stdargs", but
I don't know if that's supported by all platforms.

Just to clarify some confusion I've read on the (info) list :
My previous snippet was not meant as patch and it was clear to me it's 
just masking the symptom.

Christof

--- openafs-1.3.74/src/ubik/ubik.p.h    2004-11-09 18:09:41.000000000 +0100
+++ openafs-1.3.74-new/src/ubik/ubik.p.h        2004-11-25 
11:55:24.572814026 +0100
@@ -354,6 +354,8 @@

 extern afs_int32 ubik_ClientDestroy(struct ubik_client *aclient);

+extern afs_int32 ubik_CallIter(int (*aproc) (),struct ubik_client 
*aclient,afs_int32 aflags,int *apos,long p1,long p2,long p3,long p4,long 
p5,long p6,long p7,long p8,long p9,long p10,long p11,long p12,long 
p13,long p14,long p15,long p16);
+
 /* ubik.c */
 extern int ubik_BeginTrans(register struct ubik_dbase *dbase,
                           afs_int32 transMode, struct ubik_trans 
**transPtr);
--- openafs-1.3.74/src/ubik/ubikclient.c        2004-08-25 
09:09:43.000000000 +0200
+++ openafs-1.3.74-new/src/ubik/ubikclient.c    2004-11-25 
10:55:34.631683987 +0100
@@ -46,7 +46,7 @@
 #endif /* defined(UKERNEL) */


-afs_int32 ubik_CallIter();
+
 short ubik_initializationState;        /* initial state is zero */


--- openafs-1.3.74/src/kauth/admin_tools.c      2004-08-25 
09:03:39.000000000 +0200
+++ openafs-1.3.74-new/src/kauth/admin_tools.c  2004-11-25 
15:32:49.729347344 +0100
@@ -514,7 +514,7 @@
        code =
            ubik_CallIter(KAM_LockStatus, conn, UPUBIKONLY, &count, name,
                          instance, &tempwhen, /*spares */ 0, 0, 0,
-                         0);
+                          0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
        if (code) {
            if (seriouserror(code))
                com_err(whoami, code, "");
@@ -550,7 +550,8 @@
     count = 0;
     do {
        code = ubik_CallIter(KAM_Unlock, conn, 0, &count, name, instance,
-                            /*spares */ 0, 0, 0, 0);
+                            /*spares */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                              0, 0, 0);
        if (code && (code != UNOSERVERS)) {
            server = 0;
            if (conn && conn->conns[count - 1]
--- openafs-1.3.74/src/kauth/authclient.c       2004-08-25 
09:09:38.000000000 +0200
+++ openafs-1.3.74-new/src/kauth/authclient.c   2004-11-25 
15:33:36.020205995 +0100
@@ -476,7 +476,8 @@
            lcode = code;
            code =
                ubik_CallIter(aproc, aclient, aflags, &count, p1, p2, 
p3, p4,
-                             p5, p6, p7, p8);
+                             p5, p6, p7, p8 /*spares */, 0, 0, 0, 0, 0, 0,
+                              0, 0);
        } while ((code == UNOQUORUM) || (code == UNOTSYNC)
                 || (code == KALOCKED) || (code == -1));

--- openafs-1.3.74/src/libadmin/kas/afs_kasAdmin.c      2003-12-07 
23:49:30.000000000 +0100
+++ openafs-1.3.74-new/src/libadmin/kas/afs_kasAdmin.c  2004-11-25 
15:34:39.839360503 +0100
@@ -718,7 +718,7 @@
        tst =
            ubik_CallIter(KAM_LockStatus, kaserver->servers, UPUBIKONLY,
                         &count, who->principal, who->instance, &locked, 0,
-                         0, 0, 0);
+                         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
        if (tst == 0) {
            if (locked) {
                if ((locked < *lockedUntil) || !once) {
@@ -1274,7 +1274,8 @@
     do {
        tst =
            ubik_CallIter(KAM_Unlock, kaserver.servers, 0, &count,
-                         who->principal, who->instance, 0, 0, 0, 0);
+                         who->principal, who->instance, 0, 0, 0, 0,
+                          0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
        if (tst && (tst != UNOSERVERS)) {
            if (save_tst == 0) {
                save_tst = tst; /* save the first failure */