aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDavid M. Syzdek <david@syzdek.net>2019-11-26 15:38:58 -0900
committerDavid M. Syzdek <david@syzdek.net>2019-11-26 15:38:58 -0900
commit2cb14a8f12f2063b491d92a151ae2c2dd15f27c1 (patch)
tree1718da63c9689d1eb3574ac69d716c8bbfdf367e
parentac31dd14b7ddcb4013894dd91ce07378e1635b87 (diff)
downloadldap-utils-2cb14a8f12f2063b491d92a151ae2c2dd15f27c1.tar.gz
ldap-utils-2cb14a8f12f2063b491d92a151ae2c2dd15f27c1.tar.bz2
ldap-utils-2cb14a8f12f2063b491d92a151ae2c2dd15f27c1.tar.xz
ldap-utils-2cb14a8f12f2063b491d92a151ae2c2dd15f27c1.zip
libldapschema: refactoring ldapschema_parse_syntax() registrations
-rw-r--r--lib/libldapschema/llexer.c39
1 files changed, 2 insertions, 37 deletions
diff --git a/lib/libldapschema/llexer.c b/lib/libldapschema/llexer.c
index 7931ec3..f7e440e 100644
--- a/lib/libldapschema/llexer.c
+++ b/lib/libldapschema/llexer.c
@@ -1106,7 +1106,6 @@ LDAPSchemaSyntax * ldapschema_parse_syntax(LDAPSchema * lsd, const struct berval
1106 int argc; 1106 int argc;
1107 int err; 1107 int err;
1108 LDAPSchemaSyntax * syntax; 1108 LDAPSchemaSyntax * syntax;
1109 LDAPSchemaAlias * alias;
1110 1109
1111 syntax = NULL; 1110 syntax = NULL;
1112 argv = NULL; 1111 argv = NULL;
@@ -1205,47 +1204,13 @@ LDAPSchemaSyntax * ldapschema_parse_syntax(LDAPSchema * lsd, const struct berval
1205 }; 1204 };
1206 }; 1205 };
1207 1206
1208 // adds syntax into OID list 1207 // register ldapSyntax
1209 if ((ldapschema_insert(lsd, (void ***)&lsd->oids, &lsd->oids_len, syntax, ldapschema_compar_models)) != LDAP_SUCCESS) 1208 if ((err = ldapschema_model_register(lsd, &syntax->model)) != LDAP_SUCCESS)
1210 { 1209 {
1211 ldapschema_syntax_free(syntax); 1210 ldapschema_syntax_free(syntax);
1212 return(NULL); 1211 return(NULL);
1213 }; 1212 };
1214 1213
1215 // adds syntax into syntax list using OID and desc
1216 if ((alias = malloc(sizeof(LDAPSchemaAlias *))) == NULL)
1217 {
1218 lsd->errcode = LDAPSCHEMA_NO_MEMORY;
1219 return(NULL);
1220 };
1221 alias->alias = syntax->model.oid;
1222 alias->syntax = syntax;
1223 if ((err = ldapschema_insert(lsd, (void ***)&lsd->syntaxes, &lsd->syntaxes_len, alias, ldapschema_compar_aliases)) > 0)
1224 {
1225 free(alias);
1226 return(NULL);
1227 };
1228 if (err == -1)
1229 ldapschema_schema_err(lsd, &syntax->model, " ldapSyntax with duplicate oid '%s' found", syntax->model.oid);
1230 if ((syntax->model.desc))
1231 {
1232 if ((alias = malloc(sizeof(LDAPSchemaAlias *))) == NULL)
1233 {
1234 lsd->errcode = LDAPSCHEMA_NO_MEMORY;
1235 return(NULL);
1236 };
1237 alias->alias = syntax->model.desc;
1238 alias->syntax = syntax;
1239 if ((ldapschema_insert(lsd, (void ***)&lsd->syntaxes, &lsd->syntaxes_len, alias, ldapschema_compar_aliases)) > 0)
1240 {
1241 free(alias);
1242 return(NULL);
1243 };
1244 if (err == -1)
1245 ldapschema_schema_err(lsd, &syntax->model, " ldapSyntax with duplicate desc '%s' found", syntax->model.desc);
1246 };
1247
1248
1249 return(syntax); 1214 return(syntax);
1250} 1215}
1251 1216