Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 61662 Details for
Bug 96728
Kolab use flag for cyrus-imapd
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
Kolab patch #1 for cyrus-imapd
cyrus-imapd-2.2.12-annotate.patch (text/plain), 4.06 KB, created by
Gunnar Wrobel (RETIRED)
on 2005-06-21 13:39:02 UTC
(
hide
)
Description:
Kolab patch #1 for cyrus-imapd
Filename:
MIME Type:
Creator:
Gunnar Wrobel (RETIRED)
Created:
2005-06-21 13:39:02 UTC
Size:
4.06 KB
patch
obsolete
>diff -upr ../cyrus-imapd-2.2.6/imap/annotate.c ./imap/annotate.c >--- ../cyrus-imapd-2.2.6/imap/annotate.c 2004-05-22 05:45:48.000000000 +0200 >+++ ./imap/annotate.c 2004-07-05 11:59:13.000000000 +0200 >@@ -1598,6 +1598,11 @@ const struct annotate_st_entry mailbox_r > { NULL, 0, ANNOTATION_PROXY_T_INVALID, 0, 0, NULL, NULL } > }; > >+const struct annotate_st_entry vendor_entry = >+ { NULL, ATTRIB_TYPE_STRING, BACKEND_ONLY, >+ ATTRIB_VALUE_SHARED | ATTRIB_VALUE_PRIV, >+ ACL_ADMIN, annotation_set_todb, NULL }; >+ > int annotatemore_store(char *mailbox, > struct entryattlist *l, > struct namespace *namespace, >@@ -1610,6 +1615,7 @@ int annotatemore_store(char *mailbox, > struct attvaluelist *av; > struct storedata sdata; > const struct annotate_st_entry *entries; >+ struct annotate_st_entry * working_entry; > time_t now = time(0); > > memset(&sdata, 0, sizeof(struct storedata)); >@@ -1631,37 +1637,55 @@ int annotatemore_store(char *mailbox, > while (e) { > int entrycount, attribs; > struct annotate_st_entry_list *nentry = NULL; >+ struct annotate_st_entry *ientry = NULL; > > /* See if we support this entry */ >+ working_entry = NULL; > for (entrycount = 0; > entries[entrycount].name; > entrycount++) { > if (!strcmp(e->entry, entries[entrycount].name)) { >+ working_entry = &(entries[entrycount]); > break; > } > } >- if (!entries[entrycount].name) { >- /* unknown annotation */ >- return IMAP_PERMISSION_DENIED; >+ if (working_entry==NULL) { >+ /* test for generic vendor annotation */ >+ if ((strncmp("/vendor/", e->entry, strlen("/vendor/"))==0) && >+ (strlen(e->entry)>strlen("/vendor/"))) { >+ working_entry = &(vendor_entry); >+ } >+ else { >+ /* unknown annotation */ >+ return IMAP_PERMISSION_DENIED; >+ } > } > > /* Add this entry to our list only if it > applies to our particular server type */ >- if (entries[entrycount].proxytype == PROXY_AND_BACKEND >+ if (working_entry->proxytype == PROXY_AND_BACKEND > || (proxy_store_func && >- entries[entrycount].proxytype == PROXY_ONLY) >+ working_entry->proxytype == PROXY_ONLY) > || (!proxy_store_func && >- entries[entrycount].proxytype == BACKEND_ONLY)) { >+ working_entry->proxytype == BACKEND_ONLY)) { >+ ientry = xzmalloc(sizeof(struct annotate_st_entry)); >+ ientry->name = e->entry; >+ ientry->type = working_entry->type; >+ ientry->proxytype = working_entry->proxytype; >+ ientry->attribs = working_entry->attribs; >+ ientry->acl = working_entry->acl; >+ ientry->set = working_entry->set; >+ ientry->rock = working_entry->rock; > nentry = xzmalloc(sizeof(struct annotate_st_entry_list)); > nentry->next = sdata.entry_list; >- nentry->entry = &(entries[entrycount]); >+ nentry->entry = ientry; > nentry->shared.modifiedsince = now; > nentry->priv.modifiedsince = now; > sdata.entry_list = nentry; > } > > /* See if we are allowed to set the given attributes. */ >- attribs = entries[entrycount].attribs; >+ attribs = working_entry->attribs; > av = e->attvalues; > while (av) { > const char *value; >@@ -1671,7 +1695,7 @@ int annotatemore_store(char *mailbox, > goto cleanup; > } > value = annotate_canon_value(av->value, >- entries[entrycount].type); >+ working_entry->type); > if (!value) { > r = IMAP_ANNOTATION_BADVALUE; > goto cleanup; >@@ -1697,7 +1721,7 @@ int annotatemore_store(char *mailbox, > goto cleanup; > } > value = annotate_canon_value(av->value, >- entries[entrycount].type); >+ working_entry->type); > if (!value) { > r = IMAP_ANNOTATION_BADVALUE; > goto cleanup; >@@ -1797,6 +1821,12 @@ int annotatemore_store(char *mailbox, > /* Free the entry list */ > while (sdata.entry_list) { > struct annotate_st_entry_list *freeme = sdata.entry_list; >+ if (freeme != NULL){ >+ struct annotate_st_entry *freeme2 = freeme->entry; >+ if (freeme2 != NULL) { >+ free( freeme2 ); >+ } >+ } > sdata.entry_list = sdata.entry_list->next; > free(freeme); > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 96728
:
61661
| 61662 |
61664
|
61665
|
61666
|
61667
|
61668
|
62361
|
68046