summaryrefslogtreecommitdiff
path: root/server/class.c
diff options
context:
space:
mode:
authorGravatar John Kohl <jtkohl@mit.edu>1988-07-19 06:16:27 +0000
committerGravatar John Kohl <jtkohl@mit.edu>1988-07-19 06:16:27 +0000
commitb2877fff319beb00978f9c668aec66dd638d9dff (patch)
tree1acc8a231431c5d110e8cc845f740e0ae2254d89 /server/class.c
parentd0553a544500ee433a4419bba318e3338f4cfcc4 (diff)
fix problem in restricting classes which have same hash value
Diffstat (limited to 'server/class.c')
-rw-r--r--server/class.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/server/class.c b/server/class.c
index 8a12b7d..d51a9c1 100644
--- a/server/class.c
+++ b/server/class.c
@@ -394,8 +394,17 @@ ZAcl_t *acl;
class_bucket[hashval] = ptr2;
return(ZERR_NONE);
- } else
- return(ZSRV_CLASSXISTS);
+ } else {
+ for (ptr2 = ptr->q_forw; ptr2 != ptr; ptr2 = ptr2->q_forw)
+ /* walk down the list, looking for a match */
+ if (!strcmp(ptr2->zct_classname, class))
+ return(ZSRV_CLASSXISTS);
+ if (!(ptr2 = class_alloc(class)))
+ return(ENOMEM);
+ ptr2->zct_acl = acl;
+ xinsque(ptr2, ptr);
+ return(ZERR_NONE);
+ }
}
/* private routines */