ALlow mstoredb to specify a different container class than IPF.Note
authorJulien Kerihuel <j.kerihuel@openchange.org>
Fri, 28 Jan 2011 01:28:42 +0000 (01:28 +0000)
committerJulien Kerihuel <j.kerihuel@openchange.org>
Fri, 28 Jan 2011 01:28:42 +0000 (01:28 +0000)
depending on the root folder we are creating.

mapiproxy/libmapistore/backends/mapistore_mstoredb.c
mapiproxy/libmapistore/backends/mapistore_mstoredb.h

index 05c2d516292419f699156e932bb4fb0db9e6a0f8..414810f18dc044f3f077f815bf6b1a06343e5ed6 100644 (file)
@@ -185,6 +185,7 @@ static enum MAPISTORE_ERROR mstoredb_op_db_mkdir(void *private_data,
        char                            *mapistore_root_folder = NULL;
        int                             i;
        const char                      *cn = NULL;
+       const char                      *container_class = "IPF.Note";
        const char                      *uri;
 
        MSTORE_DEBUG_INFO(MSTORE_LEVEL_DEBUG, MSTORE_SINGLE_MSG, "");
@@ -207,6 +208,7 @@ static enum MAPISTORE_ERROR mstoredb_op_db_mkdir(void *private_data,
                                folder_name = dflt_folders[i].cn;
                        }
                        cn = dflt_folders[i].cn;
+                       container_class = dflt_folders[i].container_class;
                        break;
                }
        }
@@ -222,7 +224,8 @@ static enum MAPISTORE_ERROR mstoredb_op_db_mkdir(void *private_data,
        /* Step 3. Create the LDIF formated entry for the folder */
        mem_ctx = talloc_new(NULL);
        mapistore_root_folder = talloc_asprintf(mem_ctx, MDB_ROOTFOLDER_LDIF_TMPL,
-                                               uri, cn, folder_name, system_idx);
+                                               uri, cn, folder_name, container_class,
+                                               system_idx);
 
        /* Step 3. Create folder entry within mapistore.ldb */
        retval = mapistore_ldb_write_ldif_string_to_store(mstoredb_ctx->ldb_ctx, mapistore_root_folder);
index 6ffca6639e7f43f8ac049c4e3e314197e93e6039..7eeaa72be25bd9c90244ab8cd1bd1b9e5125f633 100644 (file)
@@ -50,46 +50,47 @@ struct mstoredb_context {
        "objectClass: container\n"                      \
        "cn: %s\n"                                      \
        "PidTagDisplayName: %s\n"                       \
-       "PidTagContainerClass: IPF.Note\n"              \
+       "PidTagContainerClass: %s\n"                    \
        "SystemIdx: %d\n\n"
 
 struct mstoredb_dflt_folders {
        enum MAPISTORE_DFLT_FOLDERS     index;
        const char                      *name;
        const char                      *cn;
+       const char                      *container_class;
 };
 
 const struct mstoredb_dflt_folders dflt_folders[] = {
-       { MDB_ROOT_FOLDER,              "CN=Mailbox Root,CN=Folders", "Mailbox Root" },
-       { MDB_DEFERRED_ACTIONS,         "CN=Deferred Actions,CN=Mailbox Root,CN=Folders", "Deferred Actions" },
-       { MDB_SPOOLER_QUEUE,            "CN=Spooler Queue,CN=Mailbox Root,CN=Folders",  "Spooler Queue" },
-       { MDB_TODO_SEARCH,              "CN=To-Do Search,CN=Mailbox Root,CN=Folders", "To-Do Search" },
-       { MDB_IPM_SUBTREE,              "CN=IPM Subtree,CN=Mailbox Root,CN=Folders", "IPM SUbtree" },
-       { MDB_INBOX,                    "CN=Inbox,CN=IPM Subtree,CN=Mailbox Root,CN=Folders", "Inbox" },
-       { MDB_OUTBOX,                   "CN=Outbox,CN=IPM Subtree,CN=Mailbox Root,CN=Folders", "Outbox" },
-       { MDB_SENT_ITEMS,               "CN=Sent Items,CN=IPM Subtree,CN=Mailbox Root,CN=Folders", "Sent Items" },
-       { MDB_DELETED_ITEMS,            "CN=Deleted Items,CN=IPM Subtree,CN=Mailbox Root,CN=Folders", "Deleted Items" },
-       { MDB_COMMON_VIEWS,             "CN=Common Views,CN=Mailbox Root,CN=Folders", "Common Views" },
-       { MDB_SCHEDULE,                 "CN=Schedule,CN=Mailbox Root,CN=Folders", "Schedule" },
-       { MDB_SEARCH,                   "CN=Search,CN=Mailbox Root,CN=Folders", "Search" },
-       { MDB_VIEWS,                    "CN=Views,CN=Mailbox Root,CN=Folders", "Views" },
-       { MDB_SHORTCUTS,                "CN=Shortcuts,CN=Mailbox Root,CN=Folders", "Shortcuts" },
-       { MDB_REMINDERS,                "CN=Reminders,CN=Mailbox Root,CN=Folders", "Reminders" },
-       { MDB_CALENDAR,                 "CN=Calendar,CN=IPM Subtree,CN=Mailbox Root,CN=Folders", "Calendar" },
-       { MDB_CONTACTS,                 "CN=Contacts,CN=IPM Subtree,CN=Mailbox Root,CN=Folders", "Contacts" },
-       { MDB_JOURNAL,                  "CN=Journal,CN=IPM Subtree,CN=Mailbox Root,CN=Folders", "Journal" },
-       { MDB_NOTES,                    "CN=Notes,CN=IPM Subtree,CN=Mailbox Root,CN=Folders", "Notes" },
-       { MDB_TASKS,                    "CN=Tasks,CN=IPM Subtree,CN=Mailbox Root,CN=Folders", "Tasks" },
-       { MDB_DRAFTS,                   "CN=Drafts,CN=IPM Subtree,CN=Mailbox Root,CN=Folders", "Drafts" },
-       { MDB_TRACKED_MAIL,             "CN=Tracked Mail,CN=Mailbox Root,CN=Folders", "Tracked Mail" },
-       { MDB_SYNC_ISSUES,              "CN=Sync Issues,CN=IPM Subtree,CN=Mailbox Root,CN=Folders", "Sync Issues" },
-       { MDB_CONFLICTS,                "CN=Conflicts,CN=Sync Issues,CN=IPM Subtree,CN=Mailbox Root,CN=Folders", "Conflicts" },
-       { MDB_LOCAL_FAILURES,           "CN=Local Failures,CN=Sync Issues,CN=IPM Subtree,CN=Mailbox Root,CN=Folders", "Local Failures" },
-       { MDB_SERVER_FAILURES,          "CN=Server Failures,CN=Sync Issues,CN=IPM Subtree,CN=Mailbox Root,CN=Folders", "Server Failures" },
-       { MDB_JUNK_EMAIL,               "CN=Junk Emails,CN=IPM Subtree,CN=Mailbox Root,CN=Folders", "Junk Emails" },
-       { MDB_RSS_FEEDS,                "CN=RSS Feeds,CN=IPM Subtree,CN=Mailbox Root,CN=Folders", "RSS Feeds" },
-       { MDB_CONVERSATION_ACT,         "CN=Conversation Actions,CN=IPM Subtree,CN=Mailbox Root,CN=Folders", "Conversation Actions" },
-       { MDB_CUSTOM,                   NULL, NULL }
+       { MDB_ROOT_FOLDER,              "CN=Mailbox Root,CN=Folders", "Mailbox Root", "IPF.Note" },
+       { MDB_DEFERRED_ACTIONS,         "CN=Deferred Actions,CN=Mailbox Root,CN=Folders", "Deferred Actions", "IPF.Note" },
+       { MDB_SPOOLER_QUEUE,            "CN=Spooler Queue,CN=Mailbox Root,CN=Folders",  "Spooler Queue", "IPF.Note" },
+       { MDB_TODO_SEARCH,              "CN=To-Do Search,CN=Mailbox Root,CN=Folders", "To-Do Search", "IPF.Note" },
+       { MDB_IPM_SUBTREE,              "CN=IPM Subtree,CN=Mailbox Root,CN=Folders", "IPM SUbtree", "IPF.Note" },
+       { MDB_INBOX,                    "CN=Inbox,CN=IPM Subtree,CN=Mailbox Root,CN=Folders", "Inbox", "IPF.Note" },
+       { MDB_OUTBOX,                   "CN=Outbox,CN=IPM Subtree,CN=Mailbox Root,CN=Folders", "Outbox", "IPF.Note" },
+       { MDB_SENT_ITEMS,               "CN=Sent Items,CN=IPM Subtree,CN=Mailbox Root,CN=Folders", "Sent Items", "IPF.Note" },
+       { MDB_DELETED_ITEMS,            "CN=Deleted Items,CN=IPM Subtree,CN=Mailbox Root,CN=Folders", "Deleted Items", "IPF.Note" },
+       { MDB_COMMON_VIEWS,             "CN=Common Views,CN=Mailbox Root,CN=Folders", "Common Views", "IPF.Note" },
+       { MDB_SCHEDULE,                 "CN=Schedule,CN=Mailbox Root,CN=Folders", "Schedule", "IPF.Note" },
+       { MDB_SEARCH,                   "CN=Search,CN=Mailbox Root,CN=Folders", "Search", "IPF.Note" },
+       { MDB_VIEWS,                    "CN=Views,CN=Mailbox Root,CN=Folders", "Views", "IPF.Note" },
+       { MDB_SHORTCUTS,                "CN=Shortcuts,CN=Mailbox Root,CN=Folders", "Shortcuts", "IPF.Note" },
+       { MDB_REMINDERS,                "CN=Reminders,CN=Mailbox Root,CN=Folders", "Reminders", "Outlook.Reminder" },
+       { MDB_CALENDAR,                 "CN=Calendar,CN=IPM Subtree,CN=Mailbox Root,CN=Folders", "Calendar", "IPF.Appointment" },
+       { MDB_CONTACTS,                 "CN=Contacts,CN=IPM Subtree,CN=Mailbox Root,CN=Folders", "Contacts", "IPF.Contact" },
+       { MDB_JOURNAL,                  "CN=Journal,CN=IPM Subtree,CN=Mailbox Root,CN=Folders", "Journal", "IPF.Journal" },
+       { MDB_NOTES,                    "CN=Notes,CN=IPM Subtree,CN=Mailbox Root,CN=Folders", "Notes", "IPF.StickyNote" },
+       { MDB_TASKS,                    "CN=Tasks,CN=IPM Subtree,CN=Mailbox Root,CN=Folders", "Tasks", "IPF.Task" },
+       { MDB_DRAFTS,                   "CN=Drafts,CN=IPM Subtree,CN=Mailbox Root,CN=Folders", "Drafts", "IPF.Note" },
+       { MDB_TRACKED_MAIL,             "CN=Tracked Mail,CN=Mailbox Root,CN=Folders", "Tracked Mail", "IPF.Note" },
+       { MDB_SYNC_ISSUES,              "CN=Sync Issues,CN=IPM Subtree,CN=Mailbox Root,CN=Folders", "Sync Issues", "IPF.Note" },
+       { MDB_CONFLICTS,                "CN=Conflicts,CN=Sync Issues,CN=IPM Subtree,CN=Mailbox Root,CN=Folders", "Conflicts", "IPF.Note" },
+       { MDB_LOCAL_FAILURES,           "CN=Local Failures,CN=Sync Issues,CN=IPM Subtree,CN=Mailbox Root,CN=Folders", "Local Failures", "IPF.Note" },
+       { MDB_SERVER_FAILURES,          "CN=Server Failures,CN=Sync Issues,CN=IPM Subtree,CN=Mailbox Root,CN=Folders", "Server Failures", "IPF.Note" },
+       { MDB_JUNK_EMAIL,               "CN=Junk Emails,CN=IPM Subtree,CN=Mailbox Root,CN=Folders", "Junk Emails", "IPF.Note" },
+       { MDB_RSS_FEEDS,                "CN=RSS Feeds,CN=IPM Subtree,CN=Mailbox Root,CN=Folders", "RSS Feeds", "IPF.Note" },
+       { MDB_CONVERSATION_ACT,         "CN=Conversation Actions,CN=IPM Subtree,CN=Mailbox Root,CN=Folders", "Conversation Actions", "IPF.Note" },
+       { MDB_CUSTOM,                   NULL, NULL, "IPF.Note" }
 };
 
 __BEGIN_DECLS