if ( strncasecmp( type, LDAPI_MOD_URLEXT "=", sizeof(LDAPI_MOD_URLEXT "=") - 1 ) == 0 ) {
char *value = type + sizeof(LDAPI_MOD_URLEXT "=") - 1;
mode_t p = 0;
+ int j;
-#if 0
- if ( strlen( value ) != 9 ) {
- return LDAP_OTHER;
- }
-
- switch ( value[ 0 ] ) {
- case 'r':
- p |= S_IRUSR;
- break;
- case '-':
- break;
- default:
- return LDAP_OTHER;
- }
-
- switch ( value[ 1 ] ) {
- case 'w':
- p |= S_IWUSR;
- break;
- case '-':
- break;
- default:
- return LDAP_OTHER;
- }
-
- switch ( value[ 2 ] ) {
- case 'x':
- p |= S_IXUSR;
- break;
- case '-':
- break;
- default:
- return LDAP_OTHER;
- }
-
- switch ( value[ 3 ] ) {
- case 'r':
- p |= S_IRGRP;
- break;
- case '-':
- break;
- default:
- return LDAP_OTHER;
- }
-
- switch ( value[ 4 ] ) {
- case 'w':
- p |= S_IWGRP;
- break;
- case '-':
- break;
- default:
- return LDAP_OTHER;
- }
-
- switch ( value[ 5 ] ) {
- case 'x':
- p |= S_IXGRP;
- break;
- case '-':
- break;
- default:
- return LDAP_OTHER;
- }
-
- switch ( value[ 6 ] ) {
- case 'r':
- p |= S_IROTH;
- break;
- case '-':
- break;
- default:
- return LDAP_OTHER;
- }
-
- switch ( value[ 7 ] ) {
- case 'w':
- p |= S_IWOTH;
- break;
- case '-':
- break;
- default:
- return LDAP_OTHER;
- }
-
- switch ( value[ 8 ] ) {
- case 'x':
- p |= S_IXOTH;
- break;
- case '-':
- break;
- default:
- return LDAP_OTHER;
- }
-#else
if ( strlen(value) != 3 ) {
return LDAP_OTHER;
}
- switch ( value[ 0 ] ) {
- case 'w':
- p |= S_IRWXU;
- break;
- case '-':
- break;
- default:
- return LDAP_OTHER;
- }
-
- switch ( value[ 1 ] ) {
- case 'w':
- p |= S_IRWXG;
- break;
- case '-':
- break;
- default:
- return LDAP_OTHER;
- }
+ for ( j = 0; j < 3; j++ ) {
+ static mode_t m[ 3 ]
+ = { S_IRWXU, S_IRWXG, S_IRWXO };
- switch ( value[ 2 ] ) {
- case 'w':
- p |= S_IRWXO;
- break;
- case '-':
- break;
- default:
- return LDAP_OTHER;
+ switch ( value[ j ] ) {
+ case 'w':
+ p |= m[ j ];
+ break;
+ case '-':
+ break;
+ default:
+ return LDAP_OTHER;
+ }
}
-#endif
*crit = c;
*perms = p;
return LDAP_SUCCESS;
}
}
+
+ return LDAP_OTHER;
}
#endif /* LDAP_PF_LOCAL */
#endif
) {
#ifdef SLAPD_RLOOKUPS
+ if ( use_reverse_lookup ) {
# ifdef LDAP_PF_INET6
- if ( from.sa_addr.sa_family == AF_INET6 )
- hp = gethostbyaddr(
- (char *)&(from.sa_in6_addr.sin6_addr),
- sizeof(from.sa_in6_addr.sin6_addr),
- AF_INET6 );
- else
+ if ( from.sa_addr.sa_family == AF_INET6 )
+ hp = gethostbyaddr(
+ (char *)&(from.sa_in6_addr.sin6_addr),
+ sizeof(from.sa_in6_addr.sin6_addr),
+ AF_INET6 );
+ else
# endif /* LDAP_PF_INET6 */
- hp = gethostbyaddr(
- (char *) &(from.sa_in_addr.sin_addr),
- sizeof(from.sa_in_addr.sin_addr),
- AF_INET );
- dnsname = hp ? ldap_pvt_str2lower( hp->h_name ) : NULL;
+ hp = gethostbyaddr(
+ (char *) &(from.sa_in_addr.sin_addr),
+ sizeof(from.sa_in_addr.sin_addr),
+ AF_INET );
+ dnsname = hp ? ldap_pvt_str2lower( hp->h_name ) : NULL;
+ }
#else
dnsname = NULL;
#endif /* SLAPD_RLOOKUPS */