diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/core/abstract/MCAbstractPart.cc | 51 | ||||
-rw-r--r-- | src/core/abstract/MCAbstractPart.h | 7 | ||||
-rw-r--r-- | src/core/abstract/MCMessageHeader.cc | 35 | ||||
-rw-r--r-- | src/core/abstract/MCMessageHeader.h | 1 | ||||
-rw-r--r-- | src/core/basetypes/MCIterator.h | 4 | ||||
-rw-r--r-- | src/core/rfc822/MCAttachment.cc | 63 | ||||
-rw-r--r-- | src/core/rfc822/MCAttachment.h | 7 | ||||
-rw-r--r-- | src/core/rfc822/MCMessageBuilder.cc | 44 | ||||
-rw-r--r-- | src/core/rfc822/MCMessageBuilder.h | 3 | ||||
-rw-r--r-- | src/objc/abstract/MCOAbstractPart.h | 12 | ||||
-rw-r--r-- | src/objc/abstract/MCOAbstractPart.mm | 20 | ||||
-rw-r--r-- | src/objc/rfc822/MCOAttachment.h | 12 | ||||
-rw-r--r-- | src/objc/rfc822/MCOAttachment.mm | 19 | ||||
-rw-r--r-- | src/objc/rfc822/MCOMessageBuilder.h | 3 | ||||
-rw-r--r-- | src/objc/rfc822/MCOMessageBuilder.mm | 5 |
15 files changed, 146 insertions, 140 deletions
diff --git a/src/core/abstract/MCAbstractPart.cc b/src/core/abstract/MCAbstractPart.cc index 50f12249..5b7a1c9a 100644 --- a/src/core/abstract/MCAbstractPart.cc +++ b/src/core/abstract/MCAbstractPart.cc @@ -27,6 +27,7 @@ AbstractPart::AbstractPart(AbstractPart * other) setContentDescription(other->mContentDescription); setInlineAttachment(other->mInlineAttachment); setPartType(other->mPartType); + setContentTypeParameters(other->mContentTypeParameters); } void AbstractPart::init() @@ -40,6 +41,7 @@ void AbstractPart::init() mContentDescription = NULL; mInlineAttachment = false; mPartType = PartTypeSingle; + mContentTypeParameters = NULL; } AbstractPart::~AbstractPart() @@ -51,6 +53,7 @@ AbstractPart::~AbstractPart() MC_SAFE_RELEASE(mContentID); MC_SAFE_RELEASE(mContentLocation); MC_SAFE_RELEASE(mContentDescription); + MC_SAFE_RELEASE(mContentTypeParameters); } String * AbstractPart::description() @@ -76,6 +79,11 @@ String * AbstractPart::description() result->appendUTF8Format("content-description: %s\n", mContentDescription->UTF8Characters()); } result->appendUTF8Format("inline: %i\n", mInlineAttachment); + if (mContentTypeParameters != NULL) { + mc_foreachhashmapKeyAndValue(String, key, String, value, mContentTypeParameters) { + result->appendUTF8Format("%s: %s\n", key->UTF8Characters(), value->UTF8Characters()); + } + } result->appendUTF8Format(">"); return result; @@ -395,3 +403,46 @@ void AbstractPart::importSerializable(HashMap * serializable) } } } + +void AbstractPart::setContentTypeParameters(HashMap * parameters) +{ + MC_SAFE_REPLACE_COPY(HashMap, mContentTypeParameters, parameters); +} + +Array * AbstractPart::allContentTypeParametersNames() +{ + if (mContentTypeParameters == NULL) + return Array::array(); + return mContentTypeParameters->allKeys(); +} + +void AbstractPart::setContentTypeParameter(String * name, String * object) +{ + if (mContentTypeParameters == NULL) { + mContentTypeParameters = new HashMap(); + } + removeContentTypeParameter(name); + mContentTypeParameters->setObjectForKey(name, object); +} + +void AbstractPart::removeContentTypeParameter(String * name) +{ + if (mContentTypeParameters == NULL) + return; + mc_foreachhashmapKey(String, key, mContentTypeParameters) { + if (key->isEqualCaseInsensitive(name)) { + mContentTypeParameters->removeObjectForKey(key); + break; + } + } +} + +String * AbstractPart::contentTypeParameterValueForName(String * name) +{ + mc_foreachhashmapKey(String, key, mContentTypeParameters) { + if (key->isEqualCaseInsensitive(name)) { + return (String *) mContentTypeParameters->objectForKey(key); + } + } + return NULL; +} diff --git a/src/core/abstract/MCAbstractPart.h b/src/core/abstract/MCAbstractPart.h index 7f641205..0fcbf279 100644 --- a/src/core/abstract/MCAbstractPart.h +++ b/src/core/abstract/MCAbstractPart.h @@ -48,6 +48,12 @@ namespace mailcore { virtual String * decodedStringForData(Data * data); + void setContentTypeParameters(HashMap * parameters); + Array * allContentTypeParametersNames(); + void setContentTypeParameter(String * name, String * object); + void removeContentTypeParameter(String * name); + String * contentTypeParameterValueForName(String * name); + public: // subclass behavior AbstractPart(AbstractPart * other); virtual String * description(); @@ -70,6 +76,7 @@ namespace mailcore { String * mContentDescription; bool mInlineAttachment; PartType mPartType; + HashMap * mContentTypeParameters; void init(); }; diff --git a/src/core/abstract/MCMessageHeader.cc b/src/core/abstract/MCMessageHeader.cc index 6e8d2c09..89dec15c 100644 --- a/src/core/abstract/MCMessageHeader.cc +++ b/src/core/abstract/MCMessageHeader.cc @@ -62,7 +62,6 @@ void MessageHeader::init(bool generateDate, bool generateMessageID) mDate = (time_t) -1; mReceivedDate = (time_t) -1; mExtraHeaders = NULL; - mlcExtraHeaders = NULL; if (generateDate) { time_t date; @@ -116,7 +115,6 @@ MessageHeader::~MessageHeader() MC_SAFE_RELEASE(mReplyTo); MC_SAFE_RELEASE(mSubject); MC_SAFE_RELEASE(mExtraHeaders); - MC_SAFE_RELEASE(mlcExtraHeaders); } String * MessageHeader::description() @@ -307,13 +305,6 @@ String * MessageHeader::userAgent() void MessageHeader::setExtraHeaders(HashMap * headers) { MC_SAFE_REPLACE_COPY(HashMap, mExtraHeaders, headers); - MC_SAFE_RELEASE(mlcExtraHeaders); - if (mExtraHeaders != NULL) { - mlcExtraHeaders = new HashMap(); - mc_foreachhashmapKeyAndValue(String, key, String, value, mExtraHeaders) { - mlcExtraHeaders->setObjectForKey(key->lowercaseString(), value); - } - } } Array * MessageHeader::allExtraHeadersNames() @@ -328,30 +319,30 @@ void MessageHeader::setExtraHeader(String * name, String * object) if (mExtraHeaders == NULL) { mExtraHeaders = new HashMap(); } - if (mlcExtraHeaders == NULL) { - mlcExtraHeaders = new HashMap(); - } - if (object == NULL) { - removeExtraHeader(name); - return; - } + removeExtraHeader(name); mExtraHeaders->setObjectForKey(name, object); - mlcExtraHeaders->setObjectForKey(name->lowercaseString(), object); } void MessageHeader::removeExtraHeader(String * name) { if (mExtraHeaders == NULL) return; - mExtraHeaders->removeObjectForKey(name); - mlcExtraHeaders->removeObjectForKey(name); + mc_foreachhashmapKey(String, key, mExtraHeaders) { + if (key->isEqualCaseInsensitive(name)) { + mExtraHeaders->removeObjectForKey(key); + break; + } + } } String * MessageHeader::extraHeaderValueForName(String * name) { - if (mlcExtraHeaders == NULL) - return NULL; - return (String *) mlcExtraHeaders->objectForKey(name->lowercaseString()); + mc_foreachhashmapKey(String, key, mExtraHeaders) { + if (key->isEqualCaseInsensitive(name)) { + return (String *) mExtraHeaders->objectForKey(key); + } + } + return NULL; } String * MessageHeader::extractedSubject() diff --git a/src/core/abstract/MCMessageHeader.h b/src/core/abstract/MCMessageHeader.h index 51b1e2f7..4018343c 100644 --- a/src/core/abstract/MCMessageHeader.h +++ b/src/core/abstract/MCMessageHeader.h @@ -99,7 +99,6 @@ namespace mailcore { time_t mDate; time_t mReceivedDate; HashMap * mExtraHeaders; - HashMap * mlcExtraHeaders; void init(bool generateDate, bool generateMessageID); void setExtraHeaders(HashMap *headers); Array * recipientWithReplyAll(bool replyAll, bool includeTo, bool includeCc, Array * senderEmails); diff --git a/src/core/basetypes/MCIterator.h b/src/core/basetypes/MCIterator.h index c8b23fab..e1f258d4 100644 --- a/src/core/basetypes/MCIterator.h +++ b/src/core/basetypes/MCIterator.h @@ -32,13 +32,13 @@ for (unsigned int __index = 0; NULL != (__variable = (type *) mailcore::ArrayIte keyType * __key; \ HashMapIterator __key##__iterator = HashMapIteratorInit(__hashmap, true, false); \ while (HashMapIteratorRun(&__key##__iterator)) \ -while (HashMapIteratorNext(&__key##__iterator, &__key, NULL)) +while (HashMapIteratorNext(&__key##__iterator, (Object **) &__key, (Object **) NULL)) #define mc_foreachhashmapValue(valueType, __value, __hashmap) \ valueType * __value; \ HashMapIterator __value##__iterator = HashMapIteratorInit(__hashmap, false, true); \ while (HashMapIteratorRun(&__value##__iterator)) \ -while (HashMapIteratorNext(&__value##__iterator, NULL, (Object **) &__value)) +while (HashMapIteratorNext(&__value##__iterator, (Object **) NULL, (Object **) &__value)) #define mc_foreachhashmapKeyAndValue(keyType, __key, valueType, __value, __hashmap) \ keyType * __key; \ diff --git a/src/core/rfc822/MCAttachment.cc b/src/core/rfc822/MCAttachment.cc index 172881cb..63551b6a 100644 --- a/src/core/rfc822/MCAttachment.cc +++ b/src/core/rfc822/MCAttachment.cc @@ -87,6 +87,9 @@ HashMap * Attachment::readMimeTypesFile(String * filename) String * Attachment::mimeTypeForFilename(String * filename) { + if (filename == NULL) { + return NULL; + } static HashMap * mimeTypes = NULL; static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; pthread_mutex_lock(&lock); @@ -211,8 +214,6 @@ Attachment * Attachment::attachmentWithText(String * text) void Attachment::init() { mData = NULL; - mContentTypeParameters = NULL; - mlcContentTypeParameters = NULL; setMimeType(MCSTR("application/octet-stream")); } @@ -225,14 +226,11 @@ Attachment::Attachment(Attachment * other) : AbstractPart(other) { init(); MC_SAFE_REPLACE_RETAIN(Data, mData, other->mData); - setContentTypeParameters(other->mContentTypeParameters); } Attachment::~Attachment() { MC_SAFE_RELEASE(mData); - MC_SAFE_RELEASE(mContentTypeParameters); - MC_SAFE_RELEASE(mlcContentTypeParameters); } String * Attachment::description() @@ -261,11 +259,6 @@ String * Attachment::description() else { result->appendUTF8Format("no data\n"); } - if (mContentTypeParameters != NULL) { - mc_foreachhashmapKeyAndValue(String, key, String, value, mContentTypeParameters) { - result->appendUTF8Format("%s: %s\n", key->UTF8Characters(), value->UTF8Characters()); - } - } result->appendUTF8Format(">"); return result; @@ -296,56 +289,6 @@ String * Attachment::decodedString() } } -void Attachment::setContentTypeParameters(HashMap * parameters) -{ - MC_SAFE_REPLACE_COPY(HashMap, mContentTypeParameters, parameters); - MC_SAFE_RELEASE(mlcContentTypeParameters); - if (mContentTypeParameters != NULL) { - mlcContentTypeParameters = new HashMap(); - mc_foreachhashmapKeyAndValue(String, key, String, value, mContentTypeParameters) { - mlcContentTypeParameters->setObjectForKey(key->lowercaseString(), value); - } - } -} - -Array * Attachment::allContentTypeParametersNames() -{ - if (mContentTypeParameters == NULL) - return Array::array(); - return mContentTypeParameters->allKeys(); -} - -void Attachment::setContentTypeParameter(String * name, String * object) -{ - if (mContentTypeParameters == NULL) { - mContentTypeParameters = new HashMap(); - } - if (mlcContentTypeParameters == NULL) { - mlcContentTypeParameters = new HashMap(); - } - if (object == NULL) { - removeContentTypeParameter(name); - return; - } - mContentTypeParameters->setObjectForKey(name, object); - mlcContentTypeParameters->setObjectForKey(name->lowercaseString(), object); -} - -void Attachment::removeContentTypeParameter(String * name) -{ - if (mContentTypeParameters == NULL) - return; - mContentTypeParameters->removeObjectForKey(name); - mlcContentTypeParameters->removeObjectForKey(name); -} - -String * Attachment::contentTypeParameterValueForName(String * name) -{ - if (mlcContentTypeParameters == NULL) - return NULL; - return (String *) mlcContentTypeParameters->objectForKey(name->lowercaseString()); -} - AbstractPart * Attachment::attachmentsWithMIME(struct mailmime * mime) { return attachmentsWithMIMEWithMain(mime, true); diff --git a/src/core/rfc822/MCAttachment.h b/src/core/rfc822/MCAttachment.h index 069688f2..2217bc4c 100644 --- a/src/core/rfc822/MCAttachment.h +++ b/src/core/rfc822/MCAttachment.h @@ -29,11 +29,6 @@ namespace mailcore { virtual Data * data(); virtual String * decodedString(); - virtual void setContentTypeParameter(String * name, String * value); - virtual void removeContentTypeParameter(String * name); - virtual String * contentTypeParameterValueForName(String *name); - virtual Array * allContentTypeParametersNames(); - public: // subclass behavior Attachment(Attachment * other); virtual String * description(); @@ -44,8 +39,6 @@ namespace mailcore { private: Data * mData; - HashMap * mContentTypeParameters; - HashMap * mlcContentTypeParameters; void init(); static void fillMultipartSubAttachments(AbstractMultipart * multipart, struct mailmime * mime); static AbstractPart * attachmentsWithMIMEWithMain(struct mailmime * mime, bool isMain); diff --git a/src/core/rfc822/MCMessageBuilder.cc b/src/core/rfc822/MCMessageBuilder.cc index 3e63ce4a..933a022b 100644 --- a/src/core/rfc822/MCMessageBuilder.cc +++ b/src/core/rfc822/MCMessageBuilder.cc @@ -177,15 +177,21 @@ static struct mailmime * get_text_part(const char * mime_type, const char * char static struct mailmime * get_plain_text_part(const char * mime_type, const char * charset, const char * content_id, const char * description, - const char * text, size_t length, clist * contentTypeParameters) + const char * text, size_t length, clist * contentTypeParameters, bool forEncryption) { bool needsQuotedPrintable; int mechanism; needsQuotedPrintable = false; - for(size_t i = 0 ; i < length ; i ++) { - if ((text[i] & (1 << 7)) != 0) { - needsQuotedPrintable = true; + if (forEncryption) { + needsQuotedPrintable = true; + } + if (!needsQuotedPrintable) { + for(size_t i = 0 ; i < length ; i ++) { + if ((text[i] & (1 << 7)) != 0) { + needsQuotedPrintable = true; + break; + } } } @@ -272,7 +278,7 @@ static clist * content_type_parameters_from_attachment(Attachment * att) return contentTypeParameters; } -static struct mailmime * mime_from_attachment(Attachment * att) +static struct mailmime * mime_from_attachment(Attachment * att, bool forEncryption) { struct mailmime * mime; Data * data; @@ -295,7 +301,8 @@ static struct mailmime * mime_from_attachment(Attachment * att) MCUTF8(att->contentID()), MIME_ENCODED_STR(att->contentDescription()), data->bytes(), data->length(), - contentTypeParameters); + contentTypeParameters, + forEncryption); } else if (att->isInlineAttachment() && att->mimeType()->lowercaseString()->hasPrefix(MCSTR("text/"))) { mime = get_other_text_part(MCUTF8(att->mimeType()), MCUTF8(att->charset()), @@ -320,7 +327,7 @@ static struct mailmime * mime_from_attachment(Attachment * att) } static struct mailmime * multipart_related_from_attachments(Attachment * htmlAttachment, - Array * attachments, const char * boundary_prefix) + Array * attachments, const char * boundary_prefix, bool forEncryption) { if ((attachments != NULL) && (attachments->count() > 0)) { struct mailmime * submime; @@ -328,14 +335,14 @@ static struct mailmime * multipart_related_from_attachments(Attachment * htmlAtt mime = get_multipart_related(boundary_prefix); - submime = mime_from_attachment(htmlAttachment); + submime = mime_from_attachment(htmlAttachment, forEncryption); add_attachment(mime, submime, boundary_prefix); for(unsigned int i = 0 ; i < attachments->count() ; i ++) { Attachment * attachment; attachment = (Attachment *) attachments->objectAtIndex(i); - submime = mime_from_attachment(attachment); + submime = mime_from_attachment(attachment, forEncryption); add_attachment(mime, submime, boundary_prefix); } @@ -344,7 +351,7 @@ static struct mailmime * multipart_related_from_attachments(Attachment * htmlAtt else { struct mailmime * mime; - mime = mime_from_attachment(htmlAttachment); + mime = mime_from_attachment(htmlAttachment, forEncryption); return mime; } @@ -655,7 +662,7 @@ String * MessageBuilder::boundaryPrefix() return mBoundaryPrefix; } -Data * MessageBuilder::dataAndFilterBcc(bool filterBcc) +Data * MessageBuilder::dataAndFilterBccAndForEncryption(bool filterBcc, bool forEncryption) { Data * data; MMAPString * str; @@ -676,20 +683,20 @@ Data * MessageBuilder::dataAndFilterBcc(bool filterBcc) htmlAttachment = Attachment::attachmentWithHTMLString(htmlBody()); htmlPart = multipart_related_from_attachments(htmlAttachment, mRelatedAttachments, - MCUTF8(mBoundaryPrefix)); + MCUTF8(mBoundaryPrefix), forEncryption); } if (textBody() != NULL) { Attachment * textAttachment; textAttachment = Attachment::attachmentWithText(textBody()); - textPart = mime_from_attachment(textAttachment); + textPart = mime_from_attachment(textAttachment, forEncryption); } else if (htmlBody() != NULL) { Attachment * textAttachment; textAttachment = Attachment::attachmentWithText(htmlBody()->flattenHTML()); - textPart = mime_from_attachment(textAttachment); + textPart = mime_from_attachment(textAttachment, forEncryption); } if ((textPart != NULL) && (htmlPart != NULL)) { @@ -724,7 +731,7 @@ Data * MessageBuilder::dataAndFilterBcc(bool filterBcc) struct mailmime * submime; attachment = (Attachment *) attachments()->objectAtIndex(i); - submime = mime_from_attachment(attachment); + submime = mime_from_attachment(attachment, forEncryption); add_attachment(mime, submime, MCUTF8(mBoundaryPrefix)); } } @@ -741,7 +748,12 @@ Data * MessageBuilder::dataAndFilterBcc(bool filterBcc) Data * MessageBuilder::data() { - return dataAndFilterBcc(false); + return dataAndFilterBccAndForEncryption(false, false); +} + +Data * MessageBuilder::dataForEncryption() +{ + return dataAndFilterBccAndForEncryption(false, true); } String * MessageBuilder::htmlRendering(HTMLRendererTemplateCallback * htmlCallback) diff --git a/src/core/rfc822/MCMessageBuilder.h b/src/core/rfc822/MCMessageBuilder.h index 413d1a4d..d3b32a4f 100644 --- a/src/core/rfc822/MCMessageBuilder.h +++ b/src/core/rfc822/MCMessageBuilder.h @@ -39,6 +39,7 @@ namespace mailcore { virtual String * boundaryPrefix(); virtual Data * data(); + virtual Data * dataForEncryption(); virtual String * htmlRendering(HTMLRendererTemplateCallback * htmlCallback = NULL); virtual String * htmlBodyRendering(); @@ -58,7 +59,7 @@ namespace mailcore { Array * /* Attachment */ mRelatedAttachments; String * mBoundaryPrefix; void init(); - Data * dataAndFilterBcc(bool filterBcc); + Data * dataAndFilterBccAndForEncryption(bool filterBcc, bool forEncryption); }; }; diff --git a/src/objc/abstract/MCOAbstractPart.h b/src/objc/abstract/MCOAbstractPart.h index e30f09bf..30dd8f5f 100644 --- a/src/objc/abstract/MCOAbstractPart.h +++ b/src/objc/abstract/MCOAbstractPart.h @@ -82,6 +82,18 @@ typedef NS_ENUM(NSInteger, MCOPartType) { /** Returns a string representation of the data according to charset.*/ - (NSString *) decodedStringForData:(NSData *)data; +/** Adds a content type parameter.*/ +- (void) setContentTypeParameterValue:(NSString *)value forName:(NSString *)name; + +/** Remove a given content type parameter.*/ +- (void) removeContentTypeParameterForName:(NSString *)name; + +/** Returns the value of a given content type parameter.*/ +- (NSString *) contentTypeParameterValueForName:(NSString *)name; + +/** Returns an array with the names of all content type parameters.*/ +- (NSArray * /* NSString */) allContentTypeParametersNames; + @end #endif diff --git a/src/objc/abstract/MCOAbstractPart.mm b/src/objc/abstract/MCOAbstractPart.mm index d55422d5..8608ec61 100644 --- a/src/objc/abstract/MCOAbstractPart.mm +++ b/src/objc/abstract/MCOAbstractPart.mm @@ -87,4 +87,24 @@ MCO_OBJC_SYNTHESIZE_BOOL(setInlineAttachment, isInlineAttachment) { return [NSString mco_stringWithMCString:MCO_NATIVE_INSTANCE->decodedStringForData([data mco_mcData])]; } + +- (void) setContentTypeParameterValue:(NSString *)value forName:(NSString *)name +{ + MCO_NATIVE_INSTANCE->setContentTypeParameter(MCO_FROM_OBJC(mailcore::String, name), MCO_FROM_OBJC(mailcore::String, value)); +} + +- (NSString *) contentTypeParameterValueForName:(NSString *)name +{ + return MCO_TO_OBJC(MCO_NATIVE_INSTANCE->contentTypeParameterValueForName((MCO_FROM_OBJC(mailcore::String, name)))); +} +- (void) removeContentTypeParameterForName:(NSString *)name +{ + MCO_NATIVE_INSTANCE->removeContentTypeParameter(MCO_FROM_OBJC(mailcore::String, name)); +} + +- (NSArray * /* NSString */) allContentTypeParametersNames +{ + return MCO_TO_OBJC(MCO_NATIVE_INSTANCE->allContentTypeParametersNames()); +} + @end diff --git a/src/objc/rfc822/MCOAttachment.h b/src/objc/rfc822/MCOAttachment.h index 954a825c..eec1bd19 100644 --- a/src/objc/rfc822/MCOAttachment.h +++ b/src/objc/rfc822/MCOAttachment.h @@ -42,18 +42,6 @@ /** Returns string representation according to charset*/ - (NSString *) decodedString; -/** Adds a content type parameter.*/ -- (void) setContentTypeParameterValue:(NSString *)value forName:(NSString *)name; - -/** Remove a given content type parameter.*/ -- (void) removeContentTypeParameterForName:(NSString *)name; - -/** Returns the value of a given content type parameter.*/ -- (NSString *) contentTypeParameterValueForName:(NSString *)name; - -/** Returns an array with the names of all content type parameters.*/ -- (NSArray * /* NSString */) allContentTypeParametersNames; - @end #endif diff --git a/src/objc/rfc822/MCOAttachment.mm b/src/objc/rfc822/MCOAttachment.mm index 18c13693..afaf96af 100644 --- a/src/objc/rfc822/MCOAttachment.mm +++ b/src/objc/rfc822/MCOAttachment.mm @@ -90,23 +90,4 @@ MCO_OBJC_SYNTHESIZE_DATA(setData, data) return [NSString mco_stringWithMCString:result]; } -- (void) setContentTypeParameterValue:(NSString *)value forName:(NSString *)name -{ - MCO_NATIVE_INSTANCE->setContentTypeParameter(MCO_FROM_OBJC(mailcore::String, name), MCO_FROM_OBJC(mailcore::String, value)); -} - -- (NSString *) contentTypeParameterValueForName:(NSString *)name -{ - return MCO_TO_OBJC(MCO_NATIVE_INSTANCE->contentTypeParameterValueForName((MCO_FROM_OBJC(mailcore::String, name)))); -} -- (void) removeContentTypeParameterForName:(NSString *)name -{ - MCO_NATIVE_INSTANCE->removeContentTypeParameter(MCO_FROM_OBJC(mailcore::String, name)); -} - -- (NSArray * /* NSString */) allContentTypeParametersNames -{ - return MCO_TO_OBJC(MCO_NATIVE_INSTANCE->allContentTypeParametersNames()); -} - @end diff --git a/src/objc/rfc822/MCOMessageBuilder.h b/src/objc/rfc822/MCOMessageBuilder.h index a52afc0f..93e2a387 100644 --- a/src/objc/rfc822/MCOMessageBuilder.h +++ b/src/objc/rfc822/MCOMessageBuilder.h @@ -58,6 +58,9 @@ /** RFC 822 formatted message.*/ - (NSData *) data; +/** RFC 822 formatted message for encryption.*/ +- (NSData *) dataForEncryption; + /** HTML rendering of the message to be displayed in a web view. The delegate can be nil.*/ - (NSString *) htmlRenderingWithDelegate:(id <MCOHTMLRendererDelegate>)delegate; diff --git a/src/objc/rfc822/MCOMessageBuilder.mm b/src/objc/rfc822/MCOMessageBuilder.mm index c884386f..023697e3 100644 --- a/src/objc/rfc822/MCOMessageBuilder.mm +++ b/src/objc/rfc822/MCOMessageBuilder.mm @@ -66,6 +66,11 @@ MCO_OBJC_SYNTHESIZE_STRING(setBoundaryPrefix, boundaryPrefix) return MCO_OBJC_BRIDGE_GET(data); } +- (NSData *) dataForEncryption +{ + return MCO_OBJC_BRIDGE_GET(dataForEncryption); +} + - (NSString *) htmlRenderingWithDelegate:(id <MCOHTMLRendererDelegate>)delegate { MCOAbstractMessageRendererCallback * htmlRenderCallback = new MCOAbstractMessageRendererCallback(self, delegate, NULL); |