diff options
| author | David M. Syzdek <david@syzdek.net> | 2019-11-26 16:13:18 -0900 |
|---|---|---|
| committer | David M. Syzdek <david@syzdek.net> | 2019-11-26 16:14:26 -0900 |
| commit | 70144c5124fa07bfd12702e7b11b620e8f3e100d (patch) | |
| tree | 2048fe981ceedce8adbcd01178cca9d945664e5f | |
| parent | bc48c001f6893c56c086039084188d4dfc97162d (diff) | |
| download | ldap-utils-70144c5124fa07bfd12702e7b11b620e8f3e100d.tar.gz ldap-utils-70144c5124fa07bfd12702e7b11b620e8f3e100d.tar.bz2 ldap-utils-70144c5124fa07bfd12702e7b11b620e8f3e100d.tar.xz ldap-utils-70144c5124fa07bfd12702e7b11b620e8f3e100d.zip | |
libldapschema: replacing ldapschema_syntax_initialize()
Replacing ldapschema_syntax_initialize() with commo function
ldapschema_model_initialize().
| -rw-r--r-- | lib/libldapschema/libldapschema.h | 4 | ||||
| -rw-r--r-- | lib/libldapschema/llexer.c | 47 | ||||
| -rw-r--r-- | lib/libldapschema/lmemory.c | 20 |
3 files changed, 13 insertions, 58 deletions
diff --git a/lib/libldapschema/libldapschema.h b/lib/libldapschema/libldapschema.h index 73c572f..3d0eeaa 100644 --- a/lib/libldapschema/libldapschema.h +++ b/lib/libldapschema/libldapschema.h | |||
| @@ -254,10 +254,6 @@ ldapschema_oid( | |||
| 254 | const char * oid, | 254 | const char * oid, |
| 255 | size_t type ); | 255 | size_t type ); |
| 256 | 256 | ||
| 257 | LDAPSchemaSyntax * | ||
| 258 | ldapschema_syntax_initialize( | ||
| 259 | LDAPSchema * lsd ); | ||
| 260 | |||
| 261 | char ** | 257 | char ** |
| 262 | ldapschema_value_add( | 258 | ldapschema_value_add( |
| 263 | char ** vals, | 259 | char ** vals, |
diff --git a/lib/libldapschema/llexer.c b/lib/libldapschema/llexer.c index f7e440e..66d7054 100644 --- a/lib/libldapschema/llexer.c +++ b/lib/libldapschema/llexer.c | |||
| @@ -1107,37 +1107,17 @@ LDAPSchemaSyntax * ldapschema_parse_syntax(LDAPSchema * lsd, const struct berval | |||
| 1107 | int err; | 1107 | int err; |
| 1108 | LDAPSchemaSyntax * syntax; | 1108 | LDAPSchemaSyntax * syntax; |
| 1109 | 1109 | ||
| 1110 | syntax = NULL; | ||
| 1111 | argv = NULL; | ||
| 1112 | |||
| 1113 | // initialize syntax | ||
| 1114 | if ((syntax = ldapschema_syntax_initialize(lsd)) == NULL) | ||
| 1115 | return(syntax); | ||
| 1116 | |||
| 1117 | // parses definition | 1110 | // parses definition |
| 1118 | if ((argc = ldapschema_definition_split_len(lsd, &syntax->model, def, &argv)) == -1) | 1111 | argv = NULL; |
| 1119 | { | 1112 | if ((argc = ldapschema_definition_split_len(lsd, NULL, def, &argv)) == -1) |
| 1120 | ldapschema_syntax_free(syntax); | ||
| 1121 | return(NULL); | 1113 | return(NULL); |
| 1122 | }; | ||
| 1123 | 1114 | ||
| 1124 | // copy definition and oid into syntax | 1115 | // initialize syntax |
| 1125 | if ((syntax->model.oid = strdup(argv[0])) == NULL) | 1116 | if ((syntax = (LDAPSchemaSyntax *)ldapschema_model_initialize(lsd, argv[0], LDAPSCHEMA_SYNTAX, def)) == NULL) |
| 1126 | { | ||
| 1127 | lsd->errcode = LDAPSCHEMA_NO_MEMORY; | ||
| 1128 | ldapschema_value_free(argv); | ||
| 1129 | ldapschema_syntax_free(syntax); | ||
| 1130 | return(NULL); | ||
| 1131 | }; | ||
| 1132 | if ((syntax->model.definition = malloc(def->bv_len+1)) == NULL) | ||
| 1133 | { | 1117 | { |
| 1134 | lsd->errcode = LDAPSCHEMA_NO_MEMORY; | ||
| 1135 | ldapschema_value_free(argv); | 1118 | ldapschema_value_free(argv); |
| 1136 | ldapschema_syntax_free(syntax); | ||
| 1137 | return(NULL); | 1119 | return(NULL); |
| 1138 | }; | 1120 | }; |
| 1139 | memcpy(syntax->model.definition, def->bv_val, def->bv_len); | ||
| 1140 | syntax->model.definition[def->bv_len] = '\0'; | ||
| 1141 | 1121 | ||
| 1142 | // processes attribute definition | 1122 | // processes attribute definition |
| 1143 | for(pos = 1; pos < argc; pos++) | 1123 | for(pos = 1; pos < argc; pos++) |
| @@ -1187,20 +1167,19 @@ LDAPSchemaSyntax * ldapschema_parse_syntax(LDAPSchema * lsd, const struct berval | |||
| 1187 | }; | 1167 | }; |
| 1188 | ldapschema_value_free(argv); | 1168 | ldapschema_value_free(argv); |
| 1189 | 1169 | ||
| 1190 | // adds specification to syntax | 1170 | // copies information from specification |
| 1191 | if ((syntax->model.spec = ldapschema_spec_search(syntax->model.oid)) != NULL) | 1171 | if ((syntax->model.spec)) |
| 1192 | { | 1172 | { |
| 1193 | syntax->model.flags |= syntax->model.spec->flags; | ||
| 1194 | syntax->data_class = syntax->model.spec->subtype; | 1173 | syntax->data_class = syntax->model.spec->subtype; |
| 1195 | }; | ||
| 1196 | 1174 | ||
| 1197 | // compiles regular expression, if available | 1175 | // compiles regular expression, if available |
| 1198 | if ( ((syntax->model.spec)) && ((syntax->model.spec->re_posix)) ) | 1176 | if ((syntax->model.spec->re_posix)) |
| 1199 | { | ||
| 1200 | if ((regcomp(&syntax->re, syntax->model.spec->re_posix, REG_EXTENDED | REG_NOSUB))) | ||
| 1201 | { | 1177 | { |
| 1202 | regfree(&syntax->re); | 1178 | if ((regcomp(&syntax->re, syntax->model.spec->re_posix, REG_EXTENDED | REG_NOSUB))) |
| 1203 | bzero(&syntax->re, sizeof(syntax->re)); | 1179 | { |
| 1180 | regfree(&syntax->re); | ||
| 1181 | bzero(&syntax->re, sizeof(syntax->re)); | ||
| 1182 | }; | ||
| 1204 | }; | 1183 | }; |
| 1205 | }; | 1184 | }; |
| 1206 | 1185 | ||
diff --git a/lib/libldapschema/lmemory.c b/lib/libldapschema/lmemory.c index 1ed4694..c754f2e 100644 --- a/lib/libldapschema/lmemory.c +++ b/lib/libldapschema/lmemory.c | |||
| @@ -788,26 +788,6 @@ void ldapschema_syntax_free(LDAPSchemaSyntax * syntax) | |||
| 788 | } | 788 | } |
| 789 | 789 | ||
| 790 | 790 | ||
| 791 | LDAPSchemaSyntax * ldapschema_syntax_initialize(LDAPSchema * lsd) | ||
| 792 | { | ||
| 793 | LDAPSchemaSyntax * syntax; | ||
| 794 | |||
| 795 | assert(lsd != NULL); | ||
| 796 | |||
| 797 | // initialize syntax | ||
| 798 | if ((syntax = malloc(sizeof(LDAPSchemaSyntax))) == NULL) | ||
| 799 | { | ||
| 800 | lsd->errcode = LDAPSCHEMA_NO_MEMORY; | ||
| 801 | return(syntax); | ||
| 802 | }; | ||
| 803 | bzero(syntax, sizeof(LDAPSchemaSyntax)); | ||
| 804 | syntax->model.size = sizeof(LDAPSchemaSyntax); | ||
| 805 | syntax->model.type = LDAPSCHEMA_SYNTAX; | ||
| 806 | |||
| 807 | return(syntax); | ||
| 808 | } | ||
| 809 | |||
| 810 | |||
| 811 | char ** ldapschema_value_add( char ** vals, const char * val, int * countp) | 791 | char ** ldapschema_value_add( char ** vals, const char * val, int * countp) |
| 812 | { | 792 | { |
| 813 | int count; | 793 | int count; |
