aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDavid M. Syzdek <david@syzdek.net>2019-11-26 16:13:18 -0900
committerDavid M. Syzdek <david@syzdek.net>2019-11-26 16:14:26 -0900
commit70144c5124fa07bfd12702e7b11b620e8f3e100d (patch)
tree2048fe981ceedce8adbcd01178cca9d945664e5f
parentbc48c001f6893c56c086039084188d4dfc97162d (diff)
downloadldap-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.h4
-rw-r--r--lib/libldapschema/llexer.c47
-rw-r--r--lib/libldapschema/lmemory.c20
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
257LDAPSchemaSyntax *
258ldapschema_syntax_initialize(
259 LDAPSchema * lsd );
260
261char ** 257char **
262ldapschema_value_add( 258ldapschema_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
791LDAPSchemaSyntax * 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
811char ** ldapschema_value_add( char ** vals, const char * val, int * countp) 791char ** ldapschema_value_add( char ** vals, const char * val, int * countp)
812{ 792{
813 int count; 793 int count;