]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/acl.c
Added proposed request parameters to Operation. #ifdef'd, not active.
[openldap] / servers / slapd / acl.c
index 404842ad1490a38d181bdb4ca22e2f609593a9cd..0829ec1957190d42005b77511fa9e56019b04d79 100644 (file)
@@ -142,6 +142,9 @@ access_allowed(
 
        assert( attr != NULL );
 
+       if( op && op->o_is_auth_check && (access == ACL_SEARCH || access == ACL_READ)) {
+               access = ACL_AUTH;
+       }
        if( state && state->as_recorded && state->as_vd_ad==desc) { 
                if( state->as_recorded & ACL_STATE_RECORDED_NV &&
                        val == NULL )
@@ -737,6 +740,9 @@ dn_match_cleanup:;
                }
 
                if ( b->a_sockurl_pat.bv_len ) {
+                       if ( !conn->c_listener_url.bv_val ) {
+                               continue;
+                       }
 #ifdef NEW_LOGGING
                        LDAP_LOG( ACL, DETAIL1, 
                                   "acl_mask: conn %lu  check a_sockurl_pat: %s\n",
@@ -761,6 +767,9 @@ dn_match_cleanup:;
                }
 
                if ( b->a_domain_pat.bv_len ) {
+                       if ( !conn->c_peer_domain.bv_val ) {
+                               continue;
+                       }
 #ifdef NEW_LOGGING
                        LDAP_LOG( ACL, DETAIL1, 
                                   "acl_mask: conn %lu  check a_domain_pat: %s\n",
@@ -815,9 +824,12 @@ dn_match_cleanup:;
                }
 
                if ( b->a_peername_pat.bv_len ) {
+                       if ( !conn->c_peer_name.bv_val ) {
+                               continue;
+                       }
 #ifdef NEW_LOGGING
                        LDAP_LOG( ACL, DETAIL1, 
-                                  "acl_mask: conn %lu  check a_perrname_path: %s\n",
+                                  "acl_mask: conn %lu  check a_peername_path: %s\n",
                                   conn->c_connid, b->a_peername_pat.bv_val , 0 );
 #else
                        Debug( LDAP_DEBUG_ACL, "<= check a_peername_path: %s\n",
@@ -838,6 +850,9 @@ dn_match_cleanup:;
                }
 
                if ( b->a_sockname_pat.bv_len ) {
+                       if ( !conn->c_sock_name.bv_val ) {
+                               continue;
+                       }
 #ifdef NEW_LOGGING
                        LDAP_LOG( ACL, DETAIL1, 
                                   "acl_mask: conn %lu  check a_sockname_path: %s\n",