diff options
| author | David M. Syzdek <david@syzdek.net> | 2019-11-26 15:38:58 -0900 |
|---|---|---|
| committer | David M. Syzdek <david@syzdek.net> | 2019-11-26 15:38:58 -0900 |
| commit | 2cb14a8f12f2063b491d92a151ae2c2dd15f27c1 (patch) | |
| tree | 1718da63c9689d1eb3574ac69d716c8bbfdf367e | |
| parent | ac31dd14b7ddcb4013894dd91ce07378e1635b87 (diff) | |
| download | ldap-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.c | 39 |
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 | ||
