aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDavid M. Syzdek <david@syzdek.net>2019-11-26 16:18:06 -0900
committerDavid M. Syzdek <david@syzdek.net>2019-11-26 16:18:06 -0900
commit96d37633238442133afaaf54bd0c7eb72b2990e0 (patch)
treecc286954d57785a2d12fd6dae8b05bc9bc0b37b8
parent70144c5124fa07bfd12702e7b11b620e8f3e100d (diff)
downloadldap-utils-96d37633238442133afaaf54bd0c7eb72b2990e0.tar.gz
ldap-utils-96d37633238442133afaaf54bd0c7eb72b2990e0.tar.bz2
ldap-utils-96d37633238442133afaaf54bd0c7eb72b2990e0.tar.xz
ldap-utils-96d37633238442133afaaf54bd0c7eb72b2990e0.zip
libldapschema: replacing ldapschema_objectclass_initialize()
Replacing ldapschema_objectclass_initialize() with commo function ldapschema_model_initialize().
-rw-r--r--lib/libldapschema/llexer.c31
-rw-r--r--lib/libldapschema/lmemory.c20
-rw-r--r--lib/libldapschema/lmemory.h4
3 files changed, 4 insertions, 51 deletions
diff --git a/lib/libldapschema/llexer.c b/lib/libldapschema/llexer.c
index 66d7054..9c64991 100644
--- a/lib/libldapschema/llexer.c
+++ b/lib/libldapschema/llexer.c
@@ -805,37 +805,17 @@ LDAPSchemaObjectclass * ldapschema_parse_objectclass(LDAPSchema * lsd, const str
805 int err; 805 int err;
806 LDAPSchemaObjectclass * objcls; 806 LDAPSchemaObjectclass * objcls;
807 807
808 objcls = NULL;
809 argv = NULL;
810
811 // initialize objectClass
812 if ((objcls = ldapschema_objectclass_initialize(lsd)) == NULL)
813 return(NULL);
814
815 // parses definition 808 // parses definition
816 if ((argc = ldapschema_definition_split_len(lsd, &objcls->model, def, &argv)) == -1) 809 argv = NULL;
817 { 810 if ((argc = ldapschema_definition_split_len(lsd, NULL, def, &argv)) == -1)
818 ldapschema_objectclass_free(objcls);
819 return(NULL); 811 return(NULL);
820 };
821 812
822 // copy definition and oid into syntax 813 // initialize objectClass
823 if ((objcls->model.oid = strdup(argv[0])) == NULL) 814 if ((objcls = (LDAPSchemaObjectclass *)ldapschema_model_initialize(lsd, argv[0], LDAPSCHEMA_OBJECTCLASS, def)) == NULL)
824 {
825 lsd->errcode = LDAPSCHEMA_NO_MEMORY;
826 ldapschema_value_free(argv);
827 ldapschema_objectclass_free(objcls);
828 return(NULL);
829 };
830 if ((objcls->model.definition = malloc(def->bv_len+1)) == NULL)
831 { 815 {
832 lsd->errcode = LDAPSCHEMA_NO_MEMORY;
833 ldapschema_value_free(argv); 816 ldapschema_value_free(argv);
834 ldapschema_objectclass_free(objcls);
835 return(NULL); 817 return(NULL);
836 }; 818 };
837 memcpy(objcls->model.definition, def->bv_val, def->bv_len);
838 objcls->model.definition[def->bv_len] = '\0';
839 819
840 // processes attribute definition 820 // processes attribute definition
841 for(pos = 1; pos < argc; pos++) 821 for(pos = 1; pos < argc; pos++)
@@ -979,9 +959,6 @@ LDAPSchemaObjectclass * ldapschema_parse_objectclass(LDAPSchema * lsd, const str
979 }; 959 };
980 ldapschema_value_free(argv); 960 ldapschema_value_free(argv);
981 961
982 // adds specification to syntax
983 objcls->model.spec = ldapschema_spec_search(objcls->model.oid);
984
985 // register objectClass 962 // register objectClass
986 if ((err = ldapschema_model_register(lsd, &objcls->model)) != LDAP_SUCCESS) 963 if ((err = ldapschema_model_register(lsd, &objcls->model)) != LDAP_SUCCESS)
987 { 964 {
diff --git a/lib/libldapschema/lmemory.c b/lib/libldapschema/lmemory.c
index c754f2e..372841b 100644
--- a/lib/libldapschema/lmemory.c
+++ b/lib/libldapschema/lmemory.c
@@ -710,26 +710,6 @@ void ldapschema_objectclass_free(LDAPSchemaObjectclass * objectclass)
710} 710}
711 711
712 712
713LDAPSchemaObjectclass * ldapschema_objectclass_initialize(LDAPSchema * lsd)
714{
715 LDAPSchemaObjectclass * objectclass;
716
717 assert(lsd != NULL);
718
719 // initialize syntax
720 if ((objectclass = malloc(sizeof(LDAPSchemaObjectclass))) == NULL)
721 {
722 lsd->errcode = LDAPSCHEMA_NO_MEMORY;
723 return(objectclass);
724 };
725 bzero(objectclass, sizeof(LDAPSchemaObjectclass));
726 objectclass->model.size = sizeof(LDAPSchemaObjectclass);
727 objectclass->model.type = LDAPSCHEMA_OBJECTCLASS;
728
729 return(objectclass);
730}
731
732
733void * ldapschema_oid(LDAPSchema * lsd, const char * oid, size_t type) 713void * ldapschema_oid(LDAPSchema * lsd, const char * oid, size_t type)
734{ 714{
735 size_t low; 715 size_t low;
diff --git a/lib/libldapschema/lmemory.h b/lib/libldapschema/lmemory.h
index 3579e71..639f21c 100644
--- a/lib/libldapschema/lmemory.h
+++ b/lib/libldapschema/lmemory.h
@@ -89,10 +89,6 @@ void
89ldapschema_objectclass_free( 89ldapschema_objectclass_free(
90 LDAPSchemaObjectclass * objectclass ); 90 LDAPSchemaObjectclass * objectclass );
91 91
92LDAPSchemaObjectclass *
93ldapschema_objectclass_initialize(
94 LDAPSchema * lsd );
95
96char ** 92char **
97ldapschema_value_dup( 93ldapschema_value_dup(
98 char ** vals ); 94 char ** vals );