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 */
#else
s = inet_ntoa( ((struct sockaddr_in *) *sal)->sin_addr );
#endif
- port = ((struct sockaddr_in *)*sal) ->sin_port;
+ port = ntohs( ((struct sockaddr_in *)*sal) ->sin_port );
l.sl_name = ch_malloc( sizeof("IP=255.255.255.255:65535") );
sprintf( l.sl_name, "IP=%s:%d",
s != NULL ? s : "unknown" , port );
char addr[INET6_ADDRSTRLEN];
inet_ntop( AF_INET6, &((struct sockaddr_in6 *)*sal)->sin6_addr,
addr, sizeof addr);
- port = ((struct sockaddr_in6 *)*sal)->sin6_port;
+ port = ntohs( ((struct sockaddr_in6 *)*sal)->sin6_port );
l.sl_name = ch_malloc( strlen(addr) + sizeof("IP= 65535") );
sprintf( l.sl_name, "IP=%s %d", addr, port );
} break;
#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 */