]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/acl.c
streamline group attr specification/diagnostics
[openldap] / servers / slapd / acl.c
index 39857052f8244932f2286658f8f3640c1cfc8031..f557f50fc8c2b3527b24e8a6799615d910ba3b51 100644 (file)
@@ -2,7 +2,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 1998-2006 The OpenLDAP Foundation.
+ * Copyright 1998-2007 The OpenLDAP Foundation.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -1326,7 +1326,7 @@ slap_acl_mask(
                                                char            buf[] = "FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF";
                                                struct berval   ip;
                                                struct in6_addr addr;
-                                               int             port_number = -1, i;
+                                               int             port_number = -1;
                                                
                                                if ( strncasecmp( op->o_conn->c_peer_name.bv_val, 
                                                                        acl_bv_ipv6_eq.bv_val,
@@ -1359,15 +1359,7 @@ slap_acl_mask(
                                                        continue;
 
                                                /* check mask */
-                                               for ( i = 0; i < 4; i++ ) {
-                                                       if ( ( addr.s6_addr32[i] & b->a_peername_mask6.s6_addr32[i] )
-                                                               != b->a_peername_addr6.s6_addr32[i] )
-                                                       {
-                                                               break;
-                                                       }
-                                               }
-
-                                               if ( i != 4 )
+                                               if ( !slap_addr6_mask( &addr, &b->a_peername_mask6, &b->a_peername_addr6 ) )
                                                        continue;
 #endif /* LDAP_PF_INET6 */