Hi Garry,

Does the attached patch fix makes things better?

patch -p0 < x86_64_fid_patch.diff
sudo make install
openchangeclient --fetch-items=Appointment

On Thu, 2008-02-14 at 13:03 +0100, Julien Kerihuel wrote:
> Hi Garry,
> 
> Sorry for the delay. 
> 
> I may be wrong, but I'm still convinced this may be an alignment problem
> in libmapi/simple_mapi.c. Basically you can display the mailbox
> hierarchy using folder identifiers returned by Exchange, but can't
> access any of the messages folders - except Inbox fetched from
> OpenMsgStore - when they are built in OpenChange from Inbox EntryIDs.
> 
> The easiest way to proceed, for the moment, would be to send me an
> Outlook-Exchange capture so I can check what is the expected folder ID
> value. If you choose this method, please meet the MAPI clients
> requirements exposed below. If you don't feel comfortable sending a
> wireshark capture, see the latest part of the email.
> 
> Capture communication between Exchange and one of the following MAPI
> client: Outlook 2002,XP, mdbvu32.exe or MFCMAPI. The last 2 tools are
> freely available from Microsoft Website. The main objective is to
> capture the "OpenFolder Calendar" operation. Click or double-click
> (depending on the used tool) on the calendar folder will generate the
> related and needed MAPI calls.
> 
> Otherwise, I can propose you to wait a couple of days until I push
> preliminary MAPI dissector code on OC repository. This way we will be
> able to filter MAPI traffic to the minimum and avoid you to send any
> sensitive data.
> 
> Btw, there is a last method we "should" be able to provide when we have
> time. Given that Outlook 2003 will try to negotiate a recent EMSMDB
> version with Exchange (one with compression), we could setup a
> transparent proxy which would negotiate a lower version of the protocol
> and force Outlook to use the old and classic EcDoRpc call. IIRC we had
> been working on such proxy a couple of months ... or years ago ;-)
> 
> Cheers,
> Julien.
> 
> On Wed, 2008-02-13 at 12:06 +0000, Gary Rigg wrote:
> > Hi Julien,
> > 
> > The CPUs are certainly 64 bit... but the Linux installation is 32
> > bit...
> > 
> > [EMAIL PROTECTED] bin]# file /sbin/init
> > /sbin/init: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),
> > for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for
> > GNU/Linux 2.6.9, stripped
> > 
> > [EMAIL PROTECTED] bin]# uname -a
> > Linux localhost.localdomain 2.6.15-1.2054_FC5smp #1 SMP Tue Mar 14
> > 16:05:46 EST 2006 i686 i686 i386 GNU/Linux
> > 
> > [EMAIL PROTECTED] bin]# cat /proc/cpuinfo
> > processor       : 0
> > vendor_id       : GenuineIntel
> > cpu family      : 15
> > model           : 4
> > model name      : Intel(R) Xeon(TM) CPU 3.00GHz
> > stepping        : 1
> > cpu MHz         : 3000.898
> > cache size      : 1024 KB
> > physical id     : 0
> > siblings        : 2
> > core id         : 0
> > cpu cores       : 1
> > fdiv_bug        : no
> > hlt_bug         : no
> > f00f_bug        : no
> > coma_bug        : no
> > fpu             : yes
> > fpu_exception   : yes
> > cpuid level     : 5
> > wp              : yes
> > flags           : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca
> > cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe lm
> > constant_tsc pni monitor ds_cpl cid cx16 xtpr
> > bogomips        : 6011.53
> > 
> > processor       : 1
> > vendor_id       : GenuineIntel
> > cpu family      : 15
> > model           : 4
> > model name      : Intel(R) Xeon(TM) CPU 3.00GHz
> > stepping        : 1
> > cpu MHz         : 3000.898
> > cache size      : 1024 KB
> > physical id     : 0
> > siblings        : 2
> > core id         : 0
> > cpu cores       : 1
> > fdiv_bug        : no
> > hlt_bug         : no
> > f00f_bug        : no
> > coma_bug        : no
> > fpu             : yes
> > fpu_exception   : yes
> > cpuid level     : 5
> > wp              : yes
> > flags           : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca
> > cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe lm
> > constant_tsc pni monitor ds_cpl cid cx16 xtpr
> > bogomips        : 6000.81
> > 
> 
> _______________________________________________
> devel mailing list
> [email protected]
> http://mailman.openchange.org/listinfo/devel
-- 
Julien Kerihuel
[EMAIL PROTECTED]
OpenChange Project Manager

GPG Fingerprint: 0B55 783D A781 6329 108A  B609 7EF6 FE11 A35F 1F79

Index: libmapi/simple_mapi.c
===================================================================
--- libmapi/simple_mapi.c	(revision 343)
+++ libmapi/simple_mapi.c	(working copy)
@@ -115,9 +115,7 @@
 	mapi_object_t			obj_inbox;
 	mapi_id_t			id_inbox;
 	struct mapi_SPropValue_array	properties_array;
-	const struct SBinary_short		*entryid;
-	uint32_t			low;
-	uint32_t			high;
+	const struct SBinary_short     	*entryid;
 
 	MAPI_RETVAL_IF(!global_mapi_ctx, MAPI_E_NOT_INITIALIZED, NULL);
 	MAPI_RETVAL_IF(!obj_store, MAPI_E_INVALID_PARAMETER, NULL);
@@ -185,20 +183,13 @@
 	MAPI_RETVAL_IF(!entryid, MAPI_E_NOT_FOUND, mem_ctx);
 	MAPI_RETVAL_IF(entryid->cb < 8, MAPI_E_INVALID_PARAMETER, mem_ctx);
 
-	low = 0;
-	low += entryid->lpb[entryid->cb - 1] << 24;
-	low += entryid->lpb[entryid->cb - 2] << 16;
-	low += entryid->lpb[entryid->cb - 3] << 8;
-	low += entryid->lpb[entryid->cb - 4];
-	
-	high = 0;
-	high += entryid->lpb[entryid->cb - 5] << 24;
-	high += entryid->lpb[entryid->cb - 6] << 16;
-	high += entryid->lpb[entryid->cb - 7] << 8;
-	high += entryid->lpb[entryid->cb - 8];
-	
-	*folder = high;
-	*folder = ((uint64_t)low) << 48;
+	*folder = 0;
+	*folder += ((uint64_t)entryid->lpb[entryid->cb - 3] << 56);
+	*folder += ((uint64_t)entryid->lpb[entryid->cb - 4] << 48);
+	*folder += ((uint64_t)entryid->lpb[entryid->cb - 5] << 40);
+	*folder += ((uint64_t)entryid->lpb[entryid->cb - 6] << 32);
+	*folder += ((uint64_t)entryid->lpb[entryid->cb - 7] << 24);
+	*folder += ((uint64_t)entryid->lpb[entryid->cb - 8] << 16);
 	/* the lowest byte of folder id is set to 1 while entryid one is not */
 	*folder += 1;
 
@@ -423,7 +414,7 @@
 	for (i = 0; i < rowset.cRows; i++) {
 		lpProp = get_SPropValue_SRow(&rowset.aRow[i], PR_MEMBER_NAME);
 		if (lpProp && lpProp->value.lpszA) {
-			if (!strcmp(lpProp->value.lpszA, user)) {
+		  if (!strcmp((const char *)lpProp->value.lpszA, user)) {
 				rowList.cEntries = 1;
 				rowList.aEntries = talloc_array(mem_ctx, struct mapi_SRow, 1);
 				rowList.aEntries[0].ulRowFlags = ROW_MODIFY;
@@ -522,7 +513,7 @@
 	for (i = 0; i < rowset.cRows; i++) {
 		lpProp = get_SPropValue_SRow(&rowset.aRow[i], PR_MEMBER_NAME);
 		if (lpProp && lpProp->value.lpszA) {
-			if (!strcmp(lpProp->value.lpszA, user)) {
+		  if (!strcmp((const char *)lpProp->value.lpszA, user)) {
 				rowList.cEntries = 1;
 				rowList.aEntries = talloc_array(mem_ctx, struct mapi_SRow, 1);
 				rowList.aEntries[0].ulRowFlags = ROW_REMOVE;

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
devel mailing list
[email protected]
http://mailman.openchange.org/listinfo/devel

Reply via email to