add heimdal files
This commit is contained in:
70
net-libs/c-client/files/c-client-2006k_GENTOO_Makefile.patch
Normal file
70
net-libs/c-client/files/c-client-2006k_GENTOO_Makefile.patch
Normal file
@@ -0,0 +1,70 @@
|
||||
Fix the Makefile for building on Gentoo.
|
||||
|
||||
diff -r b15554ece4d6 Makefile
|
||||
--- a/Makefile Thu Feb 21 17:49:39 2008 +0100
|
||||
+++ b/Makefile Thu Feb 21 18:51:31 2008 +0100
|
||||
@@ -295,7 +295,7 @@ BUILD=$(MAKE) build EXTRACFLAGS='$(EXTRA
|
||||
|
||||
# Make the IMAP Toolkit
|
||||
|
||||
-all: c-client SPECIALS rebuild bundled
|
||||
+all: c-client SPECIALS rebuild
|
||||
|
||||
c-client:
|
||||
@echo Not processed yet. In a first-time build, you must specify
|
||||
@@ -665,16 +665,9 @@ an ua:
|
||||
$(TOOLS)/$@ "$(LN)" src/ansilib c-client
|
||||
$(TOOLS)/$@ "$(LN)" src/charset c-client
|
||||
$(TOOLS)/$@ "$(LN)" src/osdep/$(SYSTEM) c-client
|
||||
- $(TOOLS)/$@ "$(LN)" src/mtest mtest
|
||||
- $(TOOLS)/$@ "$(LN)" src/ipopd ipopd
|
||||
- $(TOOLS)/$@ "$(LN)" src/imapd imapd
|
||||
- $(TOOLS)/$@ "$(LN)" src/mailutil mailutil
|
||||
- $(TOOLS)/$@ "$(LN)" src/mlock mlock
|
||||
- $(TOOLS)/$@ "$(LN)" src/dmail dmail
|
||||
- $(TOOLS)/$@ "$(LN)" src/tmail tmail
|
||||
$(LN) $(TOOLS)/$@ .
|
||||
|
||||
-build: OSTYPE rebuild rebuildclean bundled
|
||||
+build: OSTYPE rebuild rebuildclean
|
||||
|
||||
OSTYPE:
|
||||
@$(MAKE) ip$(IP)
|
||||
@@ -690,8 +683,6 @@ OSTYPE:
|
||||
echo $(BUILDTYPE) > OSTYPE
|
||||
$(TOUCH) rebuild
|
||||
|
||||
-rebuild:
|
||||
- @$(SH) -c '(test $(BUILDTYPE) = rebuild -o $(BUILDTYPE) = `$(CAT) OSTYPE`) || (echo Already built for `$(CAT) OSTYPE` -- you must do \"make clean\" first && exit 1)'
|
||||
@echo Rebuilding c-client for `$(CAT) OSTYPE`...
|
||||
@$(TOUCH) SPECIALS
|
||||
$(CD) c-client;$(MAKE) all CC=`$(CAT) CCTYPE` \
|
||||
@@ -700,28 +691,6 @@ rebuildclean:
|
||||
rebuildclean:
|
||||
$(SH) -c '$(RM) rebuild || true'
|
||||
|
||||
-bundled:
|
||||
- @echo Building bundled tools...
|
||||
- $(CD) mtest;$(MAKE)
|
||||
- $(CD) ipopd;$(MAKE)
|
||||
- $(CD) imapd;$(MAKE)
|
||||
- $(CD) mailutil;$(MAKE)
|
||||
- @$(SH) -c '(test -f /usr/include/sysexits.h ) || make sysexitwarn'
|
||||
- $(CD) mlock;$(MAKE) || true
|
||||
- $(CD) dmail;$(MAKE) || true
|
||||
- $(CD) tmail;$(MAKE) || true
|
||||
-
|
||||
-
|
||||
-sysexitwarn:
|
||||
- @echo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
- @echo + Hmm...it does not look like /usr/include/sysexits.h exists.
|
||||
- @echo + Either your system is too ancient to have the sysexits.h
|
||||
- @echo + include, or your C compiler gets it from some other location
|
||||
- @echo + than /usr/include. If your system is too old to have the
|
||||
- @echo + sysexits.h include, you will not be able to build the
|
||||
- @echo + following programs.
|
||||
- @echo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
-
|
||||
clean:
|
||||
@echo Removing old processed sources and binaries...
|
||||
$(SH) -c '$(RM) an ua OSTYPE SPECIALS c-client mtest imapd ipopd mailutil mlock dmail tmail || true'
|
||||
@@ -0,0 +1,13 @@
|
||||
diff -r 7c3e6c6ef2ba src/osdep/unix/Makefile
|
||||
--- a/src/osdep/unix/Makefile Thu Feb 21 18:51:32 2008 +0100
|
||||
+++ b/src/osdep/unix/Makefile Thu Feb 21 18:53:15 2008 +0100
|
||||
@@ -962,6 +962,9 @@ onceenv:
|
||||
-DRSHPATH=\"$(RSHPATH)\" -DLOCKPGM=\"$(LOCKPGM)\" > OSCFLAGS
|
||||
echo $(BASELDFLAGS) $(EXTRALDFLAGS) > LDFLAGS
|
||||
echo "$(ARRC) $(ARCHIVE) $(BINARIES);$(RANLIB) $(ARCHIVE)" > ARCHIVE
|
||||
+ echo "`$(CAT) CCTYPE` `$(CAT) CFLAGS` `$(CAT) OSFLAGS` -shared \
|
||||
+ -Wl,-soname,libc-client.so.1 -o libc-client.so.1.0.0 $(BINARIES)" \
|
||||
+ >> ARCHIVE
|
||||
echo $(OS) > OSTYPE
|
||||
./drivers $(EXTRADRIVERS) $(DEFAULTDRIVERS) dummy
|
||||
./mkauths $(EXTRAAUTHENTICATORS) $(DEFAULTAUTHENTICATORS)
|
||||
448
net-libs/c-client/files/c-client-2006k_KOLAB_Annotations.patch
Normal file
448
net-libs/c-client/files/c-client-2006k_KOLAB_Annotations.patch
Normal file
@@ -0,0 +1,448 @@
|
||||
Provides get/set ANNOTATIONS support to the c-client library. [Version: 2006k]
|
||||
|
||||
diff -r 217555555c77 src/c-client/imap4r1.c
|
||||
--- a/src/c-client/imap4r1.c Thu Feb 21 17:37:37 2008 +0100
|
||||
+++ b/src/c-client/imap4r1.c Thu Feb 21 17:38:15 2008 +0100
|
||||
@@ -135,7 +135,8 @@ typedef struct imap_argument {
|
||||
#define MULTIAPPEND 13
|
||||
#define SNLIST 14
|
||||
#define MULTIAPPENDREDO 15
|
||||
-
|
||||
+#define QLIST 16
|
||||
+#define QSTRING 17
|
||||
|
||||
/* Append data */
|
||||
|
||||
@@ -205,12 +206,15 @@ void imap_gc_body (BODY *body);
|
||||
void imap_gc_body (BODY *body);
|
||||
void imap_capability (MAILSTREAM *stream);
|
||||
long imap_acl_work (MAILSTREAM *stream,char *command,IMAPARG *args[]);
|
||||
+long imap_annotation_work (MAILSTREAM *stream,char *command,IMAPARG *args[]);
|
||||
|
||||
IMAPPARSEDREPLY *imap_send (MAILSTREAM *stream,char *cmd,IMAPARG *args[]);
|
||||
IMAPPARSEDREPLY *imap_sout (MAILSTREAM *stream,char *tag,char *base,char **s);
|
||||
long imap_soutr (MAILSTREAM *stream,char *string);
|
||||
IMAPPARSEDREPLY *imap_send_astring (MAILSTREAM *stream,char *tag,char **s,
|
||||
SIZEDTEXT *as,long wildok,char *limit);
|
||||
+IMAPPARSEDREPLY *imap_send_qstring (MAILSTREAM *stream,char *tag,char **s,
|
||||
+ SIZEDTEXT *as,char *limit);
|
||||
IMAPPARSEDREPLY *imap_send_literal (MAILSTREAM *stream,char *tag,char **s,
|
||||
STRING *st);
|
||||
IMAPPARSEDREPLY *imap_send_spgm (MAILSTREAM *stream,char *tag,char *base,
|
||||
@@ -2753,6 +2757,84 @@ long imap_getacl (MAILSTREAM *stream,cha
|
||||
args[0] = &ambx; args[1] = NIL;
|
||||
return imap_acl_work (stream,"GETACL",args);
|
||||
}
|
||||
+
|
||||
+/* IMAP set annotation
|
||||
+ * Accepts: mail stream
|
||||
+ * annotation struct
|
||||
+ * Returns: T on success, NIL on failure
|
||||
+ */
|
||||
+
|
||||
+long imap_setannotation (MAILSTREAM *stream,ANNOTATION *annotation)
|
||||
+{
|
||||
+ IMAPARG *args[4],ambx,apth,aval;
|
||||
+ long ret;
|
||||
+
|
||||
+ ambx.type = ASTRING;
|
||||
+ ambx.text = (void *) annotation->mbox;
|
||||
+ args[0] = &ambx;
|
||||
+
|
||||
+ apth.type = QSTRING;
|
||||
+ apth.text = (void *) annotation->entry;
|
||||
+ args[1] = &apth;
|
||||
+
|
||||
+ STRINGLIST *st,*l;
|
||||
+ ANNOTATION_VALUES *v;
|
||||
+
|
||||
+ l = st = mail_newstringlist();
|
||||
+ v = annotation->values;
|
||||
+ while(v){
|
||||
+ l->text.size = strlen((char *) (l->text.data = (unsigned char*)cpystr(v->attr)));
|
||||
+ l->next = mail_newstringlist();
|
||||
+ l = l->next;
|
||||
+ l->text.size = strlen((char *) (l->text.data = (unsigned char*)cpystr(v->value)));
|
||||
+ if(v->next){
|
||||
+ l->next = mail_newstringlist();
|
||||
+ l = l->next;
|
||||
+ }
|
||||
+ v = v->next;
|
||||
+ }
|
||||
+
|
||||
+ aval.type = QLIST;
|
||||
+ aval.text = (void *)st;
|
||||
+ args[2] = &aval;
|
||||
+ args[3] = NIL;
|
||||
+
|
||||
+ ret = imap_annotation_work(stream, "SETANNOTATION",args);
|
||||
+ mail_free_stringlist(&st);
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+
|
||||
+
|
||||
+/* IMAP get annotation
|
||||
+ * Accepts: mail stream
|
||||
+ * mailbox name
|
||||
+ * annotation entry list
|
||||
+ * annotation attribute list
|
||||
+ * Returns: T on success with data returned via callback, NIL on failure
|
||||
+ */
|
||||
+
|
||||
+long imap_getannotation (MAILSTREAM *stream,char *mailbox,STRINGLIST *entries, STRINGLIST *attributes)
|
||||
+{
|
||||
+ IMAPARG *args[4],ambx,apth,aattr;
|
||||
+ long ret;
|
||||
+ ambx.type = ASTRING;
|
||||
+ ambx.text = (void*) mailbox;
|
||||
+ args[0] = &ambx;
|
||||
+
|
||||
+
|
||||
+ apth.type = QLIST;
|
||||
+ apth.text = (void*) entries;
|
||||
+ args[1] = &apth;
|
||||
+
|
||||
+ aattr.type = QLIST;
|
||||
+ aattr.text = (void*) attributes;
|
||||
+ args[2] = &aattr;
|
||||
+
|
||||
+ args[3] = NIL;
|
||||
+ ret = imap_annotation_work(stream, "GETANNOTATION",args);
|
||||
+ return ret;
|
||||
+}
|
||||
|
||||
/* IMAP list rights
|
||||
* Accepts: mail stream
|
||||
@@ -2805,6 +2887,16 @@ long imap_acl_work (MAILSTREAM *stream,c
|
||||
else mm_log ("ACL not available on this IMAP server",ERROR);
|
||||
return ret;
|
||||
}
|
||||
+ long imap_annotation_work(MAILSTREAM *stream, char *command,IMAPARG *args[])
|
||||
+{
|
||||
+ long ret = NIL;
|
||||
+ IMAPPARSEDREPLY *reply;
|
||||
+ if (imap_OK (stream,reply = imap_send (stream,command,args)))
|
||||
+ ret = LONGT;
|
||||
+ else mm_log (reply->text,ERROR);
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
|
||||
/* IMAP set quota
|
||||
* Accepts: mail stream
|
||||
@@ -2937,6 +3029,11 @@ IMAPPARSEDREPLY *imap_send (MAILSTREAM *
|
||||
if (reply = imap_send_astring (stream,tag,&s,&st,NIL,CMDBASE+MAXCOMMAND))
|
||||
return reply;
|
||||
break;
|
||||
+ case QSTRING: /* atom or string, must be literal? */
|
||||
+ st.size = strlen ((char *) (st.data = (unsigned char *) arg->text));
|
||||
+ if (reply = imap_send_qstring (stream,tag,&s,&st,CMDBASE+MAXCOMMAND))
|
||||
+ return reply;
|
||||
+ break;
|
||||
case LITERAL: /* literal, as a stringstruct */
|
||||
if (reply = imap_send_literal (stream,tag,&s,arg->text)) return reply;
|
||||
break;
|
||||
@@ -2947,6 +3044,18 @@ IMAPPARSEDREPLY *imap_send (MAILSTREAM *
|
||||
do { /* for each list item */
|
||||
*s++ = c; /* write prefix character */
|
||||
if (reply = imap_send_astring (stream,tag,&s,&list->text,NIL,
|
||||
+ CMDBASE+MAXCOMMAND)) return reply;
|
||||
+ c = ' '; /* prefix character for subsequent strings */
|
||||
+ }
|
||||
+ while (list = list->next);
|
||||
+ *s++ = ')'; /* close list */
|
||||
+ break;
|
||||
+ case QLIST: /* list of strings */
|
||||
+ list = (STRINGLIST *) arg->text;
|
||||
+ c = '('; /* open paren */
|
||||
+ do { /* for each list item */
|
||||
+ *s++ = c; /* write prefix character */
|
||||
+ if (reply = imap_send_qstring (stream,tag,&s,&list->text,
|
||||
CMDBASE+MAXCOMMAND)) return reply;
|
||||
c = ' '; /* prefix character for subsequent strings */
|
||||
}
|
||||
@@ -3119,6 +3228,32 @@ IMAPPARSEDREPLY *imap_send (MAILSTREAM *
|
||||
reply = imap_sout (stream,tag,CMDBASE,&s);
|
||||
mail_unlock (stream); /* unlock stream */
|
||||
return reply;
|
||||
+}
|
||||
+
|
||||
+/* IMAP send quoted-string
|
||||
+ * Accepts: MAIL stream
|
||||
+ * reply tag
|
||||
+ * pointer to current position pointer of output bigbuf
|
||||
+ * atom-string to output
|
||||
+ * maximum to write as atom or qstring
|
||||
+ * Returns: error reply or NIL if success
|
||||
+ */
|
||||
+
|
||||
+IMAPPARSEDREPLY *imap_send_qstring (MAILSTREAM *stream,char *tag,char **s,
|
||||
+ SIZEDTEXT *as,char *limit)
|
||||
+{
|
||||
+ unsigned long j;
|
||||
+ char c;
|
||||
+ STRING st;
|
||||
+ /* in case needed */
|
||||
+ INIT (&st,mail_string,(void *) as->data,as->size);
|
||||
+ /* always write literal if no space */
|
||||
+ if ((*s + as->size) > limit) return imap_send_literal (stream,tag,s,&st);
|
||||
+
|
||||
+ *(*s)++ = '"'; /* write open quote */
|
||||
+ for (j = 0; j < as->size; j++) *(*s)++ = as->data[j];
|
||||
+ *(*s)++ = '"'; /* write close quote */
|
||||
+ return NIL;
|
||||
}
|
||||
|
||||
/* IMAP send atom-string
|
||||
@@ -4049,6 +4184,50 @@ void imap_parse_unsolicited (MAILSTREAM
|
||||
}
|
||||
}
|
||||
|
||||
+ else if (!strcmp (reply->key,"ANNOTATION") && (s = reply->text)){
|
||||
+ char * mbox;
|
||||
+ /* response looks like ANNOTATION "mailbox" "entry" ("attr" "value" ["attr" "value"]) ["entry" ("attr "value" ["attr" "value"] )]*/
|
||||
+ getannotation_t an = (getannotation_t) mail_parameters (NIL,GET_ANNOTATION,NIL);
|
||||
+
|
||||
+ mbox = imap_parse_astring (stream, &s, reply,NIL);
|
||||
+
|
||||
+ while(*s){
|
||||
+ ANNOTATION * al = mail_newannotation();
|
||||
+ al->mbox = cpystr(mbox);
|
||||
+ t = imap_parse_astring (stream, &s, reply,NIL);
|
||||
+ al->entry = t;
|
||||
+ STRINGLIST *strlist;
|
||||
+ if (s){while (*s == ' ')s++;}
|
||||
+
|
||||
+ strlist = imap_parse_stringlist(stream, &s,reply);
|
||||
+
|
||||
+ ANNOTATION_VALUES *vlIter, *vlBegin;
|
||||
+ vlIter = vlBegin = NIL;
|
||||
+ if (strlist) {
|
||||
+ while(strlist){
|
||||
+ if(vlIter){
|
||||
+ vlIter->next = mail_newannotationvalue();
|
||||
+ vlIter = vlIter->next;
|
||||
+ }else{
|
||||
+ vlIter = mail_newannotationvalue();
|
||||
+ vlBegin = vlIter;
|
||||
+ }
|
||||
+ if ( strlist->text.size )
|
||||
+ vlIter->attr = cpystr (strlist->text.data);
|
||||
+ strlist = strlist->next;
|
||||
+ if(!strlist) continue;
|
||||
+ if ( strlist->text.size )
|
||||
+ vlIter->value = cpystr (strlist->text.data);
|
||||
+ strlist = strlist->next;
|
||||
+ }
|
||||
+ }
|
||||
+ al->values = vlBegin;
|
||||
+ if (an)
|
||||
+ (*an) (stream,al);
|
||||
+ mail_free_annotation(&al);
|
||||
+ }
|
||||
+ fs_give ((void **)&mbox);
|
||||
+ }
|
||||
else if (!strcmp (reply->key,"ACL") && (s = reply->text) &&
|
||||
(t = imap_parse_astring (stream,&s,reply,NIL))) {
|
||||
getacl_t ar = (getacl_t) mail_parameters (NIL,GET_ACL,NIL);
|
||||
diff -r 217555555c77 src/c-client/imap4r1.h
|
||||
--- a/src/c-client/imap4r1.h Thu Feb 21 17:37:37 2008 +0100
|
||||
+++ b/src/c-client/imap4r1.h Thu Feb 21 17:38:15 2008 +0100
|
||||
@@ -279,3 +279,5 @@ long imap_setquota (MAILSTREAM *stream,c
|
||||
long imap_setquota (MAILSTREAM *stream,char *qroot,STRINGLIST *limits);
|
||||
long imap_getquota (MAILSTREAM *stream,char *qroot);
|
||||
long imap_getquotaroot (MAILSTREAM *stream,char *mailbox);
|
||||
+long imap_getannotation (MAILSTREAM *stream,char *mailbox,STRINGLIST *entries,STRINGLIST *attributes);
|
||||
+long imap_setannotation (MAILSTREAM *stream,ANNOTATION *annotation);
|
||||
diff -r 217555555c77 src/c-client/mail.c
|
||||
--- a/src/c-client/mail.c Thu Feb 21 17:37:37 2008 +0100
|
||||
+++ b/src/c-client/mail.c Thu Feb 21 17:38:15 2008 +0100
|
||||
@@ -69,6 +69,7 @@ static newsrcquery_t mailnewsrcquery = N
|
||||
static newsrcquery_t mailnewsrcquery = NIL;
|
||||
/* ACL results callback */
|
||||
static getacl_t mailaclresults = NIL;
|
||||
+static getannotation_t mailannotationresults = NIL;
|
||||
/* list rights results callback */
|
||||
static listrights_t maillistrightsresults = NIL;
|
||||
/* my rights results callback */
|
||||
@@ -598,6 +599,11 @@ void *mail_parameters (MAILSTREAM *strea
|
||||
ret = (void *) (debugsensitive ? VOIDT : NIL);
|
||||
break;
|
||||
|
||||
+ case SET_ANNOTATION:
|
||||
+ mailannotationresults = (getannotation_t) value;
|
||||
+ case GET_ANNOTATION:
|
||||
+ ret = (void *) mailannotationresults;
|
||||
+ break;
|
||||
case SET_ACL:
|
||||
mailaclresults = (getacl_t) value;
|
||||
case GET_ACL:
|
||||
@@ -5701,7 +5707,15 @@ ACLLIST *mail_newacllist (void)
|
||||
return (ACLLIST *) memset (fs_get (sizeof (ACLLIST)),0,sizeof (ACLLIST));
|
||||
}
|
||||
|
||||
-
|
||||
+ANNOTATION *mail_newannotation (void)
|
||||
+{
|
||||
+ return (ANNOTATION *) memset (fs_get (sizeof (ANNOTATION)),0,sizeof(ANNOTATION));
|
||||
+}
|
||||
+
|
||||
+ANNOTATION_VALUES *mail_newannotationvalue (void)
|
||||
+{
|
||||
+ return (ANNOTATION_VALUES *) memset (fs_get (sizeof (ANNOTATION_VALUES)),0,sizeof(ANNOTATION_VALUES));
|
||||
+}
|
||||
/* Mail instantiate new quotalist
|
||||
* Returns: new quotalist
|
||||
*/
|
||||
@@ -6024,6 +6038,25 @@ void mail_free_acllist (ACLLIST **al)
|
||||
}
|
||||
}
|
||||
|
||||
+static void mail_free_annotation_values(ANNOTATION_VALUES **val)
|
||||
+{
|
||||
+ if (*val) {
|
||||
+ if ((*val)->attr) fs_give ((void**) &(*val)->attr);
|
||||
+ if ((*val)->value) fs_give ((void**) &(*val)->value);
|
||||
+ mail_free_annotation_values (&(*val)->next);
|
||||
+ fs_give ((void **) val);
|
||||
+ }
|
||||
+}
|
||||
+void mail_free_annotation(ANNOTATION **al)
|
||||
+{
|
||||
+ if (*al) {
|
||||
+ if((*al)->mbox) fs_give ((void**) &(*al)->mbox);
|
||||
+ if((*al)->entry) fs_give ((void**) &(*al)->entry);
|
||||
+ if((*al)->values)
|
||||
+ mail_free_annotation_values(&(*al)->values);
|
||||
+ fs_give ((void **) al);
|
||||
+ }
|
||||
+}
|
||||
|
||||
/* Mail garbage collect quotalist
|
||||
* Accepts: pointer to quotalist pointer
|
||||
diff -r 217555555c77 src/c-client/mail.h
|
||||
--- a/src/c-client/mail.h Thu Feb 21 17:37:37 2008 +0100
|
||||
+++ b/src/c-client/mail.h Thu Feb 21 17:38:15 2008 +0100
|
||||
@@ -351,6 +351,8 @@
|
||||
#define SET_SCANCONTENTS (long) 573
|
||||
#define GET_MHALLOWINBOX (long) 574
|
||||
#define SET_MHALLOWINBOX (long) 575
|
||||
+#define GET_ANNOTATION (long) 576
|
||||
+#define SET_ANNOTATION (long) 577
|
||||
|
||||
/* Driver flags */
|
||||
|
||||
@@ -1043,6 +1045,24 @@ ACLLIST {
|
||||
char *identifier; /* authentication identifier */
|
||||
char *rights; /* access rights */
|
||||
ACLLIST *next;
|
||||
+};
|
||||
+
|
||||
+/* ANNOTATION Response */
|
||||
+
|
||||
+#define ANNOTATION_VALUES struct annotation_value_list
|
||||
+
|
||||
+ANNOTATION_VALUES {
|
||||
+ char *attr;
|
||||
+ char *value;
|
||||
+ ANNOTATION_VALUES *next;
|
||||
+};
|
||||
+
|
||||
+#define ANNOTATION struct annotation
|
||||
+
|
||||
+ANNOTATION {
|
||||
+ char *mbox;
|
||||
+ char *entry;
|
||||
+ ANNOTATION_VALUES * values;
|
||||
};
|
||||
|
||||
/* Quota resource list */
|
||||
@@ -1353,6 +1373,7 @@ typedef void (*logouthook_t) (void *data
|
||||
typedef void (*logouthook_t) (void *data);
|
||||
typedef char *(*sslclientcert_t) (void);
|
||||
typedef char *(*sslclientkey_t) (void);
|
||||
+typedef void (*getannotation_t) (MAILSTREAM *stream,ANNOTATION* annot);
|
||||
|
||||
/* Globals */
|
||||
|
||||
@@ -1771,7 +1792,10 @@ SORTPGM *mail_newsortpgm (void);
|
||||
SORTPGM *mail_newsortpgm (void);
|
||||
THREADNODE *mail_newthreadnode (SORTCACHE *sc);
|
||||
ACLLIST *mail_newacllist (void);
|
||||
+ANNOTATION* mail_newannotation(void);
|
||||
+ANNOTATION_VALUES* mail_newannotationvalue(void);
|
||||
QUOTALIST *mail_newquotalist (void);
|
||||
+void mail_free_annotation(ANNOTATION **a);
|
||||
void mail_free_body (BODY **body);
|
||||
void mail_free_body_data (BODY *body);
|
||||
void mail_free_body_parameter (PARAMETER **parameter);
|
||||
diff -r 217555555c77 src/mtest/mtest.c
|
||||
--- a/src/mtest/mtest.c Thu Feb 21 17:37:37 2008 +0100
|
||||
+++ b/src/mtest/mtest.c Thu Feb 21 17:38:15 2008 +0100
|
||||
@@ -145,6 +145,8 @@ int main ()
|
||||
#endif
|
||||
return NIL;
|
||||
}
|
||||
+
|
||||
+void mm_annotation (MAILSTREAM *stream, ANNOTATION *a);
|
||||
|
||||
/* MM command loop
|
||||
* Accepts: MAIL stream
|
||||
@@ -195,6 +197,28 @@ void mm (MAILSTREAM *stream,long debug)
|
||||
mail_setflag (stream,arg,"\\DELETED");
|
||||
else puts ("?Bad message number");
|
||||
break;
|
||||
+ case 'A':
|
||||
+ {
|
||||
+ char parms[MAILTMPLEN];
|
||||
+ prompt("Annotation: ",parms);
|
||||
+ if (parms) {
|
||||
+ mail_parameters(stream,SET_ANNOTATION,mm_annotation);
|
||||
+ STRINGLIST *entries = mail_newstringlist();
|
||||
+ STRINGLIST *cur = entries;
|
||||
+ cur->text.size = strlen((char *) (cur->text.data = (unsigned char*)cpystr (parms)));
|
||||
+ cur->next = NIL;
|
||||
+
|
||||
+ STRINGLIST *attributes = mail_newstringlist();
|
||||
+ cur = attributes;
|
||||
+ cur->text.size = strlen((char *) (cur->text.data = (unsigned char*)cpystr ("*")));
|
||||
+ cur->next = NIL;
|
||||
+
|
||||
+ imap_getannotation(stream,"INBOX",entries,attributes);
|
||||
+ mail_free_stringlist(&entries);
|
||||
+ mail_free_stringlist(&attributes);
|
||||
+ }
|
||||
+ }
|
||||
+ break;
|
||||
case 'E': /* Expunge command */
|
||||
mail_expunge (stream);
|
||||
last = 0;
|
||||
@@ -347,7 +371,7 @@ void mm (MAILSTREAM *stream,long debug)
|
||||
case '?': /* ? command */
|
||||
puts ("Body, Check, Delete, Expunge, Find, GC, Headers, Literal,");
|
||||
puts (" MailboxStatus, New Mailbox, Overview, Ping, Quit, Send, Type,");
|
||||
- puts ("Undelete, Xit, +, -, or <RETURN> for next message");
|
||||
+ puts ("Undelete, Xit,Annotation, +, -, or <RETURN> for next message");
|
||||
break;
|
||||
default: /* bogus command */
|
||||
printf ("?Unrecognized command: %s\n",cmd);
|
||||
@@ -600,6 +624,18 @@ void prompt (char *msg,char *txt)
|
||||
|
||||
/* Interfaces to C-client */
|
||||
|
||||
+void mm_annotation (MAILSTREAM *stream, ANNOTATION *a)
|
||||
+{
|
||||
+ if(a){
|
||||
+ fprintf(stderr,"mailbox: %s\nentry: %s\n",a->mbox,a->entry);
|
||||
+ ANNOTATION_VALUES * v = a->values;
|
||||
+ while(v){
|
||||
+ fprintf(stderr,"attr: %s, value: %s\n",v->attr,v->value);
|
||||
+ v = v->next;
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
|
||||
void mm_searched (MAILSTREAM *stream,unsigned long number)
|
||||
{
|
||||
26
net-libs/c-client/files/c-client-2007e-heimdal.patch
Normal file
26
net-libs/c-client/files/c-client-2007e-heimdal.patch
Normal file
@@ -0,0 +1,26 @@
|
||||
diff -uNr imap-2007e.orig/src/osdep/unix/kerb_mit.c imap-2007e/src/osdep/unix/kerb_mit.c
|
||||
--- imap-2007e.orig/src/osdep/unix/kerb_mit.c 2013-04-19 07:57:41.779870534 +0200
|
||||
+++ imap-2007e/src/osdep/unix/kerb_mit.c 2013-04-19 07:59:14.202715090 +0200
|
||||
@@ -27,8 +27,8 @@
|
||||
*/
|
||||
|
||||
#define PROTOTYPE(x) x
|
||||
-#include <gssapi/gssapi_generic.h>
|
||||
-#include <gssapi/gssapi_krb5.h>
|
||||
+#include <gssapi/gssapi.h>
|
||||
+#include <krb5.h>
|
||||
|
||||
|
||||
long kerberos_server_valid (void);
|
||||
diff -uNr imap-2007e.orig/src/osdep/unix/Makefile.gss imap-2007e/src/osdep/unix/Makefile.gss
|
||||
--- imap-2007e.orig/src/osdep/unix/Makefile.gss 2013-04-19 07:57:41.777870559 +0200
|
||||
+++ imap-2007e/src/osdep/unix/Makefile.gss 2013-04-19 07:58:42.335113489 +0200
|
||||
@@ -29,7 +29,7 @@
|
||||
GSSDIR=/usr/local
|
||||
GSSINCLUDE=$(GSSDIR)/include
|
||||
GSSLIB=$(GSSDIR)/lib
|
||||
-GSSCFLAGS= -I$(GSSINCLUDE) -DGSS_C_NT_HOSTBASED_SERVICE=gss_nt_service_name -DKRB5_DEPRECATED=1
|
||||
+GSSCFLAGS= -I$(GSSINCLUDE) -DKRB5_DEPRECATED=1
|
||||
GSSOLDLDFLAGS= -L$(GSSLIB) -lgssapi_krb5 -lkrb5 -lcrypto -lcom_err
|
||||
GSSNEWLDFLAGS= -L$(GSSLIB) -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err
|
||||
|
||||
33
net-libs/c-client/files/c-client-2007f-ldflags.patch
Normal file
33
net-libs/c-client/files/c-client-2007f-ldflags.patch
Normal file
@@ -0,0 +1,33 @@
|
||||
--- src/osdep/unix/Makefile~ 2011-06-07 16:04:29.000000000 +0300
|
||||
+++ src/osdep/unix/Makefile 2011-06-07 15:55:31.000000000 +0300
|
||||
@@ -954,23 +954,24 @@
|
||||
|
||||
# Once-only environment setup
|
||||
|
||||
-once: onceenv ckp$(PASSWDTYPE) ssl$(SSLTYPE) osdep.c
|
||||
+once: ssl$(SSLTYPE) onceenv ckp$(PASSWDTYPE) osdep.c
|
||||
|
||||
onceenv:
|
||||
@echo Once-only environment setup...
|
||||
echo $(CC) > CCTYPE
|
||||
- echo $(BASECFLAGS) '$(EXTRACFLAGS)' -DCHUNKSIZE=$(CHUNKSIZE) > CFLAGS
|
||||
- echo -DCREATEPROTO=$(CREATEPROTO) -DEMPTYPROTO=$(EMPTYPROTO) \
|
||||
+ echo `$(CAT) CFLAGS` $(BASECFLAGS) '$(EXTRACFLAGS)' -DCHUNKSIZE=$(CHUNKSIZE) > CFLAGS
|
||||
+ echo `$(CAT) OSCFLAGS` -DCREATEPROTO=$(CREATEPROTO) -DEMPTYPROTO=$(EMPTYPROTO) \
|
||||
-DMD5ENABLE=\"$(MD5PWD)\" -DMAILSPOOL=\"$(MAILSPOOL)\" \
|
||||
-DANONYMOUSHOME=\"$(MAILSPOOL)/anonymous\" \
|
||||
-DACTIVEFILE=\"$(ACTIVEFILE)\" -DNEWSSPOOL=\"$(NEWSSPOOL)\" \
|
||||
-DRSHPATH=\"$(RSHPATH)\" -DLOCKPGM=\"$(LOCKPGM)\" \
|
||||
-DLOCKPGM1=\"$(LOCKPGM1)\" -DLOCKPGM2=\"$(LOCKPGM2)\" \
|
||||
-DLOCKPGM3=\"$(LOCKPGM3)\" > OSCFLAGS
|
||||
- echo $(BASELDFLAGS) $(EXTRALDFLAGS) > LDFLAGS
|
||||
+ echo $(EXTRALIBS) `$(CAT) LDFLAGS` > LIBS
|
||||
+ echo $(EXTRALDFLAGS) `$(CAT) LDFLAGS` -lcrypt $(BASELDFLAGS) > LDFLAGS
|
||||
echo "$(ARRC) $(ARCHIVE) $(BINARIES);$(RANLIB) $(ARCHIVE)" > ARCHIVE
|
||||
- echo "`$(CAT) CCTYPE` `$(CAT) CFLAGS` `$(CAT) OSFLAGS` -shared \
|
||||
- -Wl,-soname,libc-client.so.1 -o libc-client.so.1.0.0 $(BINARIES)" \
|
||||
+ echo "`$(CAT) CCTYPE` `$(CAT) CFLAGS` $(EXTRALDFLAGS) `$(CAT) OSFLAGS` -shared \
|
||||
+ -Wl,-soname,libc-client.so.1 -o libc-client.so.1.0.0 $(BINARIES)" `$(CAT) LIBS` $(BASELDFLAGS) \
|
||||
>> ARCHIVE
|
||||
echo $(OS) > OSTYPE
|
||||
./drivers $(EXTRADRIVERS) $(DEFAULTDRIVERS) dummy
|
||||
27
net-libs/c-client/files/c-client-2007f-topal.patch
Normal file
27
net-libs/c-client/files/c-client-2007f-topal.patch
Normal file
@@ -0,0 +1,27 @@
|
||||
diff -cr alpine-2.00.orig/imap/src/c-client/mail.h alpine-2.00.new/imap/src/c-client/mail.h
|
||||
*** src/c-client/mail.h 2008-08-08 18:34:22.000000000 +0100
|
||||
--- src/c-client/mail.h 2009-05-01 13:40:37.000000000 +0100
|
||||
***************
|
||||
*** 775,780 ****
|
||||
--- 775,781 ----
|
||||
unsigned long bytes; /* size of text in octets */
|
||||
} size;
|
||||
char *md5; /* MD5 checksum */
|
||||
+ unsigned short topal_hack; /* set to 1 if topal has wrecked the sending */
|
||||
void *sparep; /* spare pointer reserved for main program */
|
||||
};
|
||||
|
||||
diff -cr alpine-2.00.orig/imap/src/c-client/mail.c alpine-2.00.new/imap/src/c-client/mail.c
|
||||
*** src/c-client/mail.c 2008-06-04 19:39:54.000000000 +0100
|
||||
--- src/c-client/mail.c 2009-04-30 22:34:13.000000000 +0100
|
||||
***************
|
||||
*** 2712,2717 ****
|
||||
--- 2712,2719 ----
|
||||
BODY *b = NIL;
|
||||
PART *pt;
|
||||
unsigned long i;
|
||||
+ /* Topal hack 2 */
|
||||
+ mail_fetchstructure (stream,msgno,&b);
|
||||
/* make sure have a body */
|
||||
if (section && *section && mail_fetchstructure (stream,msgno,&b) && b)
|
||||
while (*section) { /* find desired section */
|
||||
Reference in New Issue
Block a user