(feat) now possible to log EAS commands using the SOGoEASDebugEnabled system defaults

pull/85/head
Ludovic Marcotte 2015-05-14 15:26:18 -04:00
parent fbf5c4f6c2
commit 5412599832
5 changed files with 26 additions and 3 deletions

View File

@ -113,6 +113,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#import <Foundation/NSObject.h> #import <Foundation/NSObject.h>
#import <Foundation/NSString.h> #import <Foundation/NSString.h>
#import <Foundation/NSUserDefaults.h>
#include "iCalEvent+ActiveSync.h" #include "iCalEvent+ActiveSync.h"
#include "iCalToDo+ActiveSync.h" #include "iCalToDo+ActiveSync.h"
@ -138,10 +139,13 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@implementation SOGoActiveSyncDispatcher @implementation SOGoActiveSyncDispatcher
static BOOL debugOn = NO;
- (id) init - (id) init
{ {
[super init]; [super init];
debugOn = [[SOGoSystemDefaults sharedSystemDefaults] easDebugEnabled];
folderTableURL = nil; folderTableURL = nil;
return self; return self;
} }
@ -2607,7 +2611,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
pool = [[NSAutoreleasePool alloc] init]; pool = [[NSAutoreleasePool alloc] init];
ASSIGN(context, theContext); ASSIGN(context, theContext);
// Get the device ID, device type and "stash" them // Get the device ID, device type and "stash" them
deviceId = [[theRequest uri] deviceId]; deviceId = [[theRequest uri] deviceId];
[context setObject: deviceId forKey: @"DeviceId"]; [context setObject: deviceId forKey: @"DeviceId"];
@ -2670,6 +2674,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
if (d) if (d)
{ {
if (debugOn)
[self logWithFormat: @"EAS - request for device %@: %@", [context objectForKey: @"DeviceId"], [[[NSString alloc] initWithData: d encoding: NSUTF8StringEncoding] autorelease]];
builder = [[[NSClassFromString(@"DOMSaxBuilder") alloc] init] autorelease]; builder = [[[NSClassFromString(@"DOMSaxBuilder") alloc] init] autorelease];
dom = [builder buildFromData: d]; dom = [builder buildFromData: d];
documentElement = [dom documentElement]; documentElement = [dom documentElement];
@ -2699,6 +2706,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
[theResponse setHeader: @"Sync,SendMail,SmartForward,SmartReply,GetAttachment,GetHierarchy,CreateCollection,DeleteCollection,MoveCollection,FolderSync,FolderCreate,FolderDelete,FolderUpdate,MoveItems,GetItemEstimate,MeetingResponse,Search,Settings,Ping,ItemOperations,ResolveRecipients,ValidateCert" forKey: @"MS-ASProtocolCommands"]; [theResponse setHeader: @"Sync,SendMail,SmartForward,SmartReply,GetAttachment,GetHierarchy,CreateCollection,DeleteCollection,MoveCollection,FolderSync,FolderCreate,FolderDelete,FolderUpdate,MoveItems,GetItemEstimate,MeetingResponse,Search,Settings,Ping,ItemOperations,ResolveRecipients,ValidateCert" forKey: @"MS-ASProtocolCommands"];
[theResponse setHeader: @"2.5,12.0,12.1,14.0,14.1" forKey: @"MS-ASProtocolVersions"]; [theResponse setHeader: @"2.5,12.0,12.1,14.0,14.1" forKey: @"MS-ASProtocolVersions"];
if (debugOn && [[theResponse content] length])
[self logWithFormat: @"EAS - response for device %@: %@", [context objectForKey: @"DeviceId"], [[[NSString alloc] initWithData: [[theResponse content] wbxml2xml] encoding: NSUTF8StringEncoding] autorelease]];
RELEASE(context); RELEASE(context);
RELEASE(pool); RELEASE(pool);

View File

@ -2439,6 +2439,11 @@ Defaults to `0`, which means no overwrite is performed.
Setting this parameter to a value greater than `512` will Setting this parameter to a value greater than `512` will
have unexpected behaviour with various ActiveSync clients. have unexpected behaviour with various ActiveSync clients.
|S |SOGoEASDebugEnabled
|Parameter used to log the complete request and response of every single
EAS command.
Defaults to `NO`, which means no logging is performed.
|======================================================================= |=======================================================================
Please be aware of the following limitations: Please be aware of the following limitations:

1
NEWS
View File

@ -18,6 +18,7 @@ Enhancements
- during login, we now extract the domain from the user to accelerate authentication requests on sources - during login, we now extract the domain from the user to accelerate authentication requests on sources
- make sure sure email invitations can always be read by EAS clients - make sure sure email invitations can always be read by EAS clients
- now able to print event/task's description (new components only) in the list view (#2881) - now able to print event/task's description (new components only) in the list view (#2881)
- now possible to log EAS commands using the SOGoEASDebugEnabled system defaults
Bug fixes Bug fixes
- now keep the BodyPreference for future EAS use and default to MIME if none set (#3146) - now keep the BodyPreference for future EAS use and default to MIME if none set (#3146)

View File

@ -1,6 +1,6 @@
/* SOGoSystemDefaults.h - this file is part of SOGo /* SOGoSystemDefaults.h - this file is part of SOGo
* *
* Copyright (C) 2009-2014 Inverse inc. * Copyright (C) 2009-2015 Inverse inc.
* *
* This file is free software; you can redistribute it and/or modify * This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -64,6 +64,8 @@
- (BOOL) uixAdditionalPreferences; - (BOOL) uixAdditionalPreferences;
- (BOOL) uixDebugEnabled; - (BOOL) uixDebugEnabled;
- (BOOL) easDebugEnabled;
- (NSString *) pageTitle; - (NSString *) pageTitle;
- (NSArray *) supportedLanguages; - (NSArray *) supportedLanguages;

View File

@ -1,6 +1,6 @@
/* SOGoSystemDefaults.m - this file is part of SOGo /* SOGoSystemDefaults.m - this file is part of SOGo
* *
* Copyright (C) 2009-2014 Inverse inc. * Copyright (C) 2009-2015 Inverse inc.
* Copyright (C) 2012 Jeroen Dekkers <jeroen@dekkers.ch> * Copyright (C) 2012 Jeroen Dekkers <jeroen@dekkers.ch>
* *
* This file is free software; you can redistribute it and/or modify * This file is free software; you can redistribute it and/or modify
@ -427,6 +427,11 @@ _injectConfigurationFromFile (NSMutableDictionary *defaultsDict,
return [self boolForKey: @"SOGoUIxDebugEnabled"]; return [self boolForKey: @"SOGoUIxDebugEnabled"];
} }
- (BOOL) easDebugEnabled
{
return [self boolForKey: @"SOGoEASDebugEnabled"];
}
- (NSString *) pageTitle - (NSString *) pageTitle
{ {
return [self stringForKey: @"SOGoPageTitle"]; return [self stringForKey: @"SOGoPageTitle"];