r9451: some fixes now core.schema and cosine.schema are also read properly
authorSimo Sorce <idra@samba.org>
Sun, 21 Aug 2005 17:20:34 +0000 (17:20 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:34:16 +0000 (13:34 -0500)
(This used to be commit 0a26ee04322a06069be48dbc33307e4997700f74)

source4/lib/ldb/tools/oLschema2ldif.c

index c24d160c3a93e39e96eacf04dbe853bbcc122a49..0a88ba6b713c43b1faaf53cc495843062491e9c6 100644 (file)
 #define SCHEMA_MAY 7
 #define SCHEMA_SINGLE_VALUE 8
 #define SCHEMA_EQUALITY 9
-#define SCHEMA_SUBSTR 10
-#define SCHEMA_SYNTAX 11
-#define SCHEMA_DESC 12
+#define SCHEMA_ORDERING 10
+#define SCHEMA_SUBSTR 11
+#define SCHEMA_SYNTAX 12
+#define SCHEMA_DESC 13
 
 
 struct schema_conv {
@@ -181,7 +182,15 @@ static struct token *get_next_schema_token(TALLOC_CTX *ctx, char **string)
                talloc_free(type);
                token->type = SCHEMA_SUP;
 
-               token->value = get_def_value(ctx, &c);
+               if (*c == '(') {
+                       c++;
+                       n = strcspn(c, ")");
+                       token->value = talloc_strndup(ctx, c, n);
+                       c += n;
+                       c++;
+               } else {
+                       token->value = get_def_value(ctx, &c);
+               }
 
                c = skip_spaces(c);
                *string = c;
@@ -265,6 +274,17 @@ static struct token *get_next_schema_token(TALLOC_CTX *ctx, char **string)
                return token;
        }
 
+       if (strcasecmp("ORDERING", type) == 0) {
+               talloc_free(type);
+               token->type = SCHEMA_ORDERING;
+
+               token->value = get_def_value(ctx, &c);
+
+               c = skip_spaces(c);
+               *string = c;
+               return token;
+       }
+
        if (strcasecmp("SUBSTR", type) == 0) {
                talloc_free(type);
                token->type = SCHEMA_SUBSTR;
@@ -381,7 +401,7 @@ static struct ldb_message *process_entry(TALLOC_CTX *mem_ctx, const char *entry)
                        break;
 
                case SCHEMA_SUP:
-                       MSG_ADD_STRING("subClassOf", token->value);
+                       MSG_ADD_M_STRING("subClassOf", token->value);
                        break;
 
                case SCHEMA_STRUCTURAL:
@@ -412,6 +432,10 @@ static struct ldb_message *process_entry(TALLOC_CTX *mem_ctx, const char *entry)
                        /* TODO */
                        break;
 
+               case SCHEMA_ORDERING:
+                       /* TODO */
+                       break;
+
                case SCHEMA_SUBSTR:
                        /* TODO */
                        break;