Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
openldap
OpenLDAP
Commits
53d6d3c9
Commit
53d6d3c9
authored
Jan 11, 2007
by
Pierangelo Masarati
Browse files
streamline group attr specification/diagnostics
parent
fb2e448e
Changes
3
Hide whitespace changes
Inline
Side-by-side
servers/slapd/aclparse.c
View file @
53d6d3c9
...
...
@@ -1110,6 +1110,7 @@ parse_acl(
if
(
strncasecmp
(
left
,
"group"
,
STRLENOF
(
"group"
)
)
==
0
)
{
char
*
name
=
NULL
;
char
*
value
=
NULL
;
char
*
attr_name
=
SLAPD_GROUP_ATTR
;
switch
(
sty
)
{
case
ACL_STYLE_REGEX
:
...
...
@@ -1227,50 +1228,41 @@ parse_acl(
}
if
(
name
&&
*
name
)
{
rc
=
slap_str2ad
(
name
,
&
b
->
a_group_at
,
&
text
);
if
(
rc
!=
LDAP_SUCCESS
)
{
char
buf
[
SLAP_TEXT_BUFLEN
];
snprintf
(
buf
,
sizeof
(
buf
),
"group
\"
%s
\"
: %s."
,
right
,
text
);
Debug
(
LDAP_DEBUG_ANY
,
"%s: line %d: %s
\n
"
,
fname
,
lineno
,
buf
);
goto
fail
;
}
attr_name
=
name
;
*--
name
=
'/'
;
}
else
{
rc
=
slap_str2ad
(
SLAPD_GROUP_ATTR
,
&
b
->
a_group_at
,
&
text
);
}
if
(
rc
!=
LDAP_SUCCESS
)
{
char
buf
[
SLAP_TEXT_BUFLEN
];
rc
=
slap_str2ad
(
attr_name
,
&
b
->
a_group_at
,
&
text
);
if
(
rc
!=
LDAP_SUCCESS
)
{
char
buf
[
SLAP_TEXT_BUFLEN
];
snprintf
(
buf
,
sizeof
(
buf
),
"group
\"
%s
\"
: %s."
,
SLAPD_GROUP_ATTR
,
text
);
Debug
(
LDAP_DEBUG_ANY
,
"%s: line %d: %s
\n
"
,
fname
,
lineno
,
buf
);
goto
fail
;
}
snprintf
(
buf
,
sizeof
(
buf
),
"group
\"
%s
\"
: %s."
,
right
,
text
);
Debug
(
LDAP_DEBUG_ANY
,
"%s: line %d: %s
\n
"
,
fname
,
lineno
,
buf
);
goto
fail
;
}
if
(
!
is_at_syntax
(
b
->
a_group_at
->
ad_type
,
SLAPD_DN_SYNTAX
)
&&
!
is_at_syntax
(
b
->
a_group_at
->
ad_type
,
SLAPD_NAMEUID_SYNTAX
)
&&
!
is_at_subtype
(
b
->
a_group_at
->
ad_type
,
slap_schema
.
si_ad_labeledURI
->
ad_type
)
)
SLAPD_DN_SYNTAX
)
/* e.g. "member" */
&&
!
is_at_syntax
(
b
->
a_group_at
->
ad_type
,
SLAPD_NAMEUID_SYNTAX
)
/* e.g. memberUID */
&&
!
is_at_subtype
(
b
->
a_group_at
->
ad_type
,
slap_schema
.
si_ad_labeledURI
->
ad_type
)
/* e.g. memberURL */
)
{
char
buf
[
SLAP_TEXT_BUFLEN
];
snprintf
(
buf
,
sizeof
(
buf
),
"group
\"
%s
\"
: inappropriate syntax: %s."
,
"group
\"
%s
\"
attr
\"
%s
\"
: inappropriate syntax: %s; "
"must be "
SLAPD_DN_SYNTAX
" (DN), "
SLAPD_NAMEUID_SYNTAX
" (NameUID) "
"or a subtype of labeledURI."
,
right
,
b
->
a_group_at
->
ad_type
->
sat_syntax_oid
);
attr_name
,
at_syntax
(
b
->
a_group_at
->
ad_type
)
);
Debug
(
LDAP_DEBUG_ANY
,
"%s: line %d: %s
\n
"
,
fname
,
lineno
,
buf
);
...
...
servers/slapd/at.c
View file @
53d6d3c9
...
...
@@ -27,16 +27,32 @@
#include
"slap.h"
int
is_at_syntax
(
AttributeType
*
at
,
const
char
*
oid
)
const
char
*
at_syntax
(
AttributeType
*
at
)
{
for
(
;
at
!=
NULL
;
at
=
at
->
sat_sup
)
{
if
(
at
->
sat_syntax_oid
)
{
return
(
strcmp
(
at
->
sat_syntax_oid
,
oid
)
==
0
)
;
for
(
;
at
!=
NULL
;
at
=
at
->
sat_sup
)
{
if
(
at
->
sat_syntax_oid
)
{
return
at
->
sat_syntax_oid
;
}
}
assert
(
0
);
return
NULL
;
}
int
is_at_syntax
(
AttributeType
*
at
,
const
char
*
oid
)
{
const
char
*
syn_oid
=
at_syntax
(
at
);
if
(
syn_oid
)
{
return
strcmp
(
syn_oid
,
oid
)
==
0
;
}
return
0
;
}
...
...
servers/slapd/proto-slap.h
View file @
53d6d3c9
...
...
@@ -230,6 +230,8 @@ LDAP_SLAPD_F (int) is_at_subtype LDAP_P((
AttributeType
*
sub
,
AttributeType
*
super
));
LDAP_SLAPD_F
(
const
char
*
)
at_syntax
LDAP_P
((
AttributeType
*
at
));
LDAP_SLAPD_F
(
int
)
is_at_syntax
LDAP_P
((
AttributeType
*
at
,
const
char
*
oid
));
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment