Properly escape folder/file names and fixed date representation in emails
parent
fc0c580fe1
commit
ea86f136b7
|
@ -73,7 +73,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// mail/
|
// mail/
|
||||||
realCollectionId = [self substringFromIndex: 5];
|
realCollectionId = [[self stringByUnescapingURL] substringFromIndex: 5];
|
||||||
*folderType = ActiveSyncMailFolder;
|
*folderType = ActiveSyncMailFolder;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -455,8 +455,8 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
}
|
}
|
||||||
|
|
||||||
[s appendFormat: @"<Add><ServerId>%@</ServerId><ParentId>%@</ParentId><Type>%d</Type><DisplayName>%@</DisplayName></Add>",
|
[s appendFormat: @"<Add><ServerId>%@</ServerId><ParentId>%@</ParentId><Type>%d</Type><DisplayName>%@</DisplayName></Add>",
|
||||||
serverId,
|
[serverId stringByEscapingURL],
|
||||||
parentId,
|
[parentId stringByEscapingURL],
|
||||||
type,
|
type,
|
||||||
name];
|
name];
|
||||||
}
|
}
|
||||||
|
@ -606,7 +606,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
SOGoMicrosoftActiveSyncFolderType folderType;
|
SOGoMicrosoftActiveSyncFolderType folderType;
|
||||||
|
|
||||||
fileReference = [[(id)[theDocumentElement getElementsByTagName: @"FileReference"] lastObject] textValue];
|
fileReference = [[[(id)[theDocumentElement getElementsByTagName: @"FileReference"] lastObject] textValue] stringByUnescapingURL];
|
||||||
|
|
||||||
realCollectionId = [fileReference realCollectionIdWithFolderType: &folderType];
|
realCollectionId = [fileReference realCollectionIdWithFolderType: &folderType];
|
||||||
|
|
||||||
|
@ -649,7 +649,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
[s appendString: @"<Fetch>"];
|
[s appendString: @"<Fetch>"];
|
||||||
[s appendString: @"<Status>1</Status>"];
|
[s appendString: @"<Status>1</Status>"];
|
||||||
[s appendFormat: @"<FileReference xmlns=\"AirSyncBase:\">%@</FileReference>", fileReference];
|
[s appendFormat: @"<FileReference xmlns=\"AirSyncBase:\">%@</FileReference>", [fileReference stringByEscapingURL]];
|
||||||
[s appendString: @"<Properties>"];
|
[s appendString: @"<Properties>"];
|
||||||
|
|
||||||
[s appendFormat: @"<ContentType xmlns=\"AirSyncBase:\">%@/%@</ContentType>", [[currentBodyPart partInfo] objectForKey: @"type"], [[currentBodyPart partInfo] objectForKey: @"subtype"]];
|
[s appendFormat: @"<ContentType xmlns=\"AirSyncBase:\">%@/%@</ContentType>", [[currentBodyPart partInfo] objectForKey: @"type"], [[currentBodyPart partInfo] objectForKey: @"subtype"]];
|
||||||
|
|
|
@ -226,7 +226,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
// DateReceived
|
// DateReceived
|
||||||
value = [self date];
|
value = [self date];
|
||||||
if (value)
|
if (value)
|
||||||
[s appendFormat: @"<DateReceived xmlns=\"Email:\">%@</DateReceived>", [value activeSyncRepresentation]];
|
[s appendFormat: @"<DateReceived xmlns=\"Email:\">%@</DateReceived>", [value activeSyncRepresentationWithoutSeparators]];
|
||||||
|
|
||||||
// Importance - FIXME
|
// Importance - FIXME
|
||||||
[s appendFormat: @"<Importance xmlns=\"Email:\">%@</Importance>", @"1"];
|
[s appendFormat: @"<Importance xmlns=\"Email:\">%@</Importance>", @"1"];
|
||||||
|
@ -338,7 +338,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
// FileReference must be a unique identifier across the whole store. We use the following structure:
|
// FileReference must be a unique identifier across the whole store. We use the following structure:
|
||||||
// mail/<foldername>/<message UID/<pathofpart>
|
// mail/<foldername>/<message UID/<pathofpart>
|
||||||
// mail/INBOX/2
|
// mail/INBOX/2
|
||||||
[s appendFormat: @"<FileReference>mail/%@/%@/%@</FileReference>", [[self container] relativeImap4Name], [self nameInContainer], [value objectForKey: @"path"]];
|
[s appendFormat: @"<FileReference>mail/%@/%@/%@</FileReference>", [[[self container] relativeImap4Name] stringByEscapingURL], [self nameInContainer], [value objectForKey: @"path"]];
|
||||||
|
|
||||||
[s appendFormat: @"<Method>%d</Method>", 1]; // See: http://msdn.microsoft.com/en-us/library/ee160322(v=exchg.80).aspx
|
[s appendFormat: @"<Method>%d</Method>", 1]; // See: http://msdn.microsoft.com/en-us/library/ee160322(v=exchg.80).aspx
|
||||||
[s appendFormat: @"<EstimatedDataSize>%d</EstimatedDataSize>", [[value objectForKey: @"size"] intValue]];
|
[s appendFormat: @"<EstimatedDataSize>%d</EstimatedDataSize>", [[value objectForKey: @"size"] intValue]];
|
||||||
|
@ -369,7 +369,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
nativeBodyType = 1;
|
nativeBodyType = 1;
|
||||||
|
|
||||||
[s appendFormat: @"<NativeBodyType xmlns=\"AirSyncBase:\">%d</NativeBodyType>", nativeBodyType];
|
[s appendFormat: @"<NativeBodyType xmlns=\"AirSyncBase:\">%d</NativeBodyType>", nativeBodyType];
|
||||||
|
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue