ldap/admin/src/scripts/60upgradeschemafiles.pl | 2 +- ldap/schema/60rfc3712.ldif | 9 +-------- ldap/servers/slapd/schema.c | 20 +++++++++++++++++++- ldap/servers/slapd/slapi-plugin.h | 18 ++++++++++++++++++ 4 files changed, 39 insertions(+), 10 deletions(-)
New commits: commit 2d4dc977f64615afcdc1ebbed47a85a7079e6072 Author: Rich Megginson rmeggins@redhat.com Date: Thu Dec 19 10:50:54 2013 -0700
Ticket #47647 remove bogus definition in 60rfc3712.ldif
https://fedorahosted.org/389/ticket/47647 Reviewed by: nhosoi (Thanks!) Branch: master Fix Description: Remove the bogus schema definition. Add 60rfc3712.ldif to the schema upgrade script. Platforms tested: RHEL6 x86_64 Flag Day: no Doc impact: no
diff --git a/ldap/admin/src/scripts/60upgradeschemafiles.pl b/ldap/admin/src/scripts/60upgradeschemafiles.pl index 1208f4d..ba574a5 100644 --- a/ldap/admin/src/scripts/60upgradeschemafiles.pl +++ b/ldap/admin/src/scripts/60upgradeschemafiles.pl @@ -11,7 +11,7 @@ sub runinst {
# these schema files are obsolete, or we want to replace # them with newer versions - my @toremove = qw(00core.ldif 01core389.ldif 01common.ldif 02common.ldif 05rfc2247.ldif 05rfc4523.ldif 05rfc4524.ldif 06inetorgperson.ldif 10presence.ldif 28pilot.ldif 30ns-common.ldif 50ns-directory.ldif 60mozilla.ldif 60pam-plugin.ldif 60sudo.ldif); + my @toremove = qw(00core.ldif 01core389.ldif 01common.ldif 02common.ldif 05rfc2247.ldif 05rfc4523.ldif 05rfc4524.ldif 06inetorgperson.ldif 10presence.ldif 28pilot.ldif 30ns-common.ldif 50ns-directory.ldif 60mozilla.ldif 60pam-plugin.ldif 60sudo.ldif 60rfc3712.ldif);
# these hashes will be used to check for obsolete schema # in 99user.ldif diff --git a/ldap/schema/60rfc3712.ldif b/ldap/schema/60rfc3712.ldif index 4917998..9fc2938 100644 --- a/ldap/schema/60rfc3712.ldif +++ b/ldap/schema/60rfc3712.ldif @@ -420,14 +420,7 @@ attributeTypes: ( ) # ################################################################################ -# -objectClasses: ( - - NAME 'printer-uri' - DESC 'A URI supported by this printer.' - X-ORIGIN 'rfc3712' - ) -# +# objectClass slpServicePrinter not currently supported ################################################################################ # objectClasses: (
commit ee7565f846bbae008d9d71c80ca0db0c33fdc384 Author: Rich Megginson rmeggins@redhat.com Date: Thu Dec 19 10:49:27 2013 -0700
Ticket #47634 support AttributeTypeDescription USAGE userApplications distributedOperation dSAOperation
https://fedorahosted.org/389/ticket/47634 Reviewed by: nhosoi (Thanks!) Branch: master Fix Description: When reading schema, flag the attribute as distributedOperation or dSAOperation. When writing schema, make sure the USAGE is specified correctly based on the flag. Platforms tested: RHEL6 x86_64 Flag Day: no Doc impact: no
diff --git a/ldap/servers/slapd/schema.c b/ldap/servers/slapd/schema.c index 414e7f0..85063a5 100644 --- a/ldap/servers/slapd/schema.c +++ b/ldap/servers/slapd/schema.c @@ -1420,7 +1420,11 @@ schema_attr_enum_callback(struct asyntaxinfo *asip, void *arg) if (asip->asi_flags & SLAPI_ATTR_FLAG_NOUSERMOD ) { outp += strcpy_count( outp, 1 + schema_nousermod_with_spaces ); } - if (asip->asi_flags & SLAPI_ATTR_FLAG_OPATTR) { + if (asip->asi_flags & SLAPI_ATTR_FLAG_DISTRIBUTED_OPERATION) { + outp += strcpy_count(outp, "USAGE distributedOperation "); + } else if (asip->asi_flags & SLAPI_ATTR_FLAG_DSA_OPERATION) { + outp += strcpy_count(outp, "USAGE dSAOperation "); + } else if (asip->asi_flags & SLAPI_ATTR_FLAG_OPATTR) { outp += strcpy_count(outp, "USAGE directoryOperation "); }
@@ -3551,6 +3555,14 @@ read_at_ldif(const char *input, struct asyntaxinfo **asipp, char *errorbuf, strlen("directoryOperation"))) { flags |= SLAPI_ATTR_FLAG_OPATTR; } + if ( !PL_strncmp(ss, "distributedOperation", + strlen("distributedOperation"))) { + flags |= SLAPI_ATTR_FLAG_OPATTR|SLAPI_ATTR_FLAG_DISTRIBUTED_OPERATION; + } + if ( !PL_strncmp(ss, "dSAOperation", + strlen("dSAOperation"))) { + flags |= SLAPI_ATTR_FLAG_OPATTR|SLAPI_ATTR_FLAG_DSA_OPERATION; + } if ( NULL == ( nextinput = strchr( ss, ' ' ))) { nextinput = ss + strlen(ss); } @@ -3885,6 +3897,12 @@ parse_attr_str(const char *input, struct asyntaxinfo **asipp, char *errorbuf, if(atype->at_usage == LDAP_SCHEMA_DIRECTORY_OPERATION){ flags |= SLAPI_ATTR_FLAG_OPATTR; } + if(atype->at_usage == LDAP_SCHEMA_DISTRIBUTED_OPERATION){ + flags |= SLAPI_ATTR_FLAG_OPATTR|SLAPI_ATTR_FLAG_DISTRIBUTED_OPERATION; + } + if(atype->at_usage == LDAP_SCHEMA_DSA_OPERATION){ + flags |= SLAPI_ATTR_FLAG_OPATTR|SLAPI_ATTR_FLAG_DSA_OPERATION; + } /* * Check the superior, and use it fill in any missing oids on this attribute */ diff --git a/ldap/servers/slapd/slapi-plugin.h b/ldap/servers/slapd/slapi-plugin.h index fbd5d9f..f3856ad 100644 --- a/ldap/servers/slapd/slapi-plugin.h +++ b/ldap/servers/slapd/slapi-plugin.h @@ -198,6 +198,24 @@ NSPR_API(PRUint32) PR_fprintf(struct PRFileDesc* fd, const char *fmt, ...) */ #define SLAPI_ATTR_FLAG_NOEXPOSE 0x0800 /* the attr value is not exposed */
+/** + * Flag to indicate that the attribute value is LDAP_SCHEMA_DISTRIBUTED_OPERATION + * If this is set, SLAPI_ATTR_FLAG_OPATTR must also be set + * + * \see slapi_value_set_flags() + * \see slapi_values_set_flags() +*/ +#define SLAPI_ATTR_FLAG_DISTRIBUTED_OPERATION 0x1000 /* USAGE distributedOperation */ + +/** + * Flag to indicate that the attribute value is LDAP_SCHEMA_DSA_OPERATION + * If this is set, SLAPI_ATTR_FLAG_OPATTR must also be set + * + * \see slapi_value_set_flags() + * \see slapi_values_set_flags() + */ +#define SLAPI_ATTR_FLAG_DSA_OPERATION 0x2000 /* USAGE dSAOperation */ + /* operation flags */ #define SLAPI_OP_FLAG_INTERNAL 0x00020 /* An operation generated by the core server or a plugin. */ #define SLAPI_OP_FLAG_NEVER_CHAIN 0x00800 /* Do not chain the operation */
389-commits@lists.fedoraproject.org