On Mon, 2009-01-12 at 23:44 +0100, Julien Kerihuel wrote:
> I have run (with a few modifications) you test locally and I also have
> OpenFolder returning MAPI_E_NOT_FOUND when user's permissions (the one
> used in the profile) are set to none.
> 
> As soon as I change permissions from let's say None to Reviewer on Inbox
> folder and use olFolderInbox, OpenFolder returns MAPI_E_SUCCESS.

I was obviously meaning the other user's Inbox folder.

In attachment, you'll find:
        - OpenUserMailbox_py_output.txt: debug output of your script
        (network traces)
        - debug_assessors.diff: the diff to apply to get previous script
        - openmailuser.py: the modified script using debug assessors
        
Cheers,
Julien.

-- 
Julien Kerihuel
[email protected]
OpenChange Project Manager

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

[jkerih...@mapiproxy trunk]$ python openmailuser.py 
Using binding ncacn_ip_tcp:192.168.102.236[,print]
Mapped to DCERPC endpoint 135
added interface ip=192.168.122.1 nmask=255.255.255.0
added interface ip=192.168.0.10 nmask=255.255.255.0
added interface ip=192.168.122.1 nmask=255.255.255.0
added interface ip=192.168.0.10 nmask=255.255.255.0
rpc request data:
[0000] 01 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00   ........ ........
[0010] 00 00 00 00 02 00 00 00   4B 00 00 00 4B 00 00 00   ........ K...K...
[0020] 05 00 13 00 0D E0 F5 44   15 3C 61 D1 11 93 DF 00   .......D .<a.....
[0030] C0 4F D7 BD 09 01 00 02   00 00 00 13 00 0D 04 5D   .O...... .......]
[0040] 88 8A EB 1C C9 11 9F E8   08 00 2B 10 48 60 02 00   ........ ..+.H`..
[0050] 02 00 00 00 01 00 0B 02   00 00 00 01 00 07 02 00   ........ ........
[0060] 00 00 01 00 09 04 00 C0   A8 66 EC 00 00 00 00 00   ........ .f......
[0070] 00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00   ........ ........
[0080] 01 00 00 00                                       .... 
rpc reply data:
[0000] 00 00 00 00 3B F4 87 40   E3 4C 08 4F 80 96 53 EB   ....;..@ .L.O..S.
[0010] 66 BC B0 EB 01 00 00 00   01 00 00 00 00 00 00 00   f....... ........
[0020] 01 00 00 00 03 00 00 00   4B 00 00 00 4B 00 00 00   ........ K...K...
[0030] 05 00 13 00 0D E0 F5 44   15 3C 61 D1 11 93 DF 00   .......D .<a.....
[0040] C0 4F D7 BD 09 01 00 02   00 00 00 13 00 0D 04 5D   .O...... .......]
[0050] 88 8A EB 1C C9 11 9F E8   08 00 2B 10 48 60 02 00   ........ ..+.H`..
[0060] 02 00 00 00 01 00 0B 02   00 00 00 01 00 07 02 00   ........ ........
[0070] 04 0B 01 00 09 04 00 C0   A8 66 EC 00 00 00 00 00   ........ .f......
Mapped to DCERPC endpoint 1035
added interface ip=192.168.122.1 nmask=255.255.255.0
added interface ip=192.168.0.10 nmask=255.255.255.0
added interface ip=192.168.122.1 nmask=255.255.255.0
added interface ip=192.168.0.10 nmask=255.255.255.0
Starting GENSEC mechanism spnego
Starting GENSEC submechanism gssapi_krb5
Cannot do GSSAPI to an IP address
Failed to start GENSEC client mech gssapi_krb5: NT_STATUS_INVALID_PARAMETER
Starting GENSEC submechanism ntlmssp
Got challenge flags:
Got NTLMSSP neg_flags=0x62898205
  NTLMSSP_NEGOTIATE_UNICODE
  NTLMSSP_REQUEST_TARGET
  NTLMSSP_NEGOTIATE_NTLM
  NTLMSSP_NEGOTIATE_ALWAYS_SIGN
  NTLMSSP_NEGOTIATE_NTLM2
  NTLMSSP_CHAL_TARGET_INFO
  NTLMSSP_NEGOTIATE_128
  NTLMSSP_NEGOTIATE_KEY_EXCH
NTLMSSP challenge set by NTLM2
challenge is: 
[0000] 96 73 A3 A2 35 77 DA 2E                            .s..5w.. 
NTLMSSP: Set final flags:
Got NTLMSSP neg_flags=0x60088205
  NTLMSSP_NEGOTIATE_UNICODE
  NTLMSSP_REQUEST_TARGET
  NTLMSSP_NEGOTIATE_NTLM
  NTLMSSP_NEGOTIATE_ALWAYS_SIGN
  NTLMSSP_NEGOTIATE_NTLM2
  NTLMSSP_NEGOTIATE_128
  NTLMSSP_NEGOTIATE_KEY_EXCH
    RfrGetNewDSA: struct RfrGetNewDSA
        in: struct RfrGetNewDSA
            ulFlags                  : 0x00000000 (0)
            pUserDN                  : *
                pUserDN                  : '/o=First Organization/ou=First 
Administrative Group/cn=Recipients/cn=jkerihuel'
            ppszUnused               : NULL
            ppszServer               : *
                ppszServer               : NULL
rpc request data:
[0000] 00 00 00 00 4F 00 00 00   00 00 00 00 4F 00 00 00   ....O... ....O...
[0010] 2F 6F 3D 46 69 72 73 74   20 4F 72 67 61 6E 69 7A   /o=First  Organiz
[0020] 61 74 69 6F 6E 2F 6F 75   3D 46 69 72 73 74 20 41   ation/ou =First A
[0030] 64 6D 69 6E 69 73 74 72   61 74 69 76 65 20 47 72   dministr ative Gr
[0040] 6F 75 70 2F 63 6E 3D 52   65 63 69 70 69 65 6E 74   oup/cn=R ecipient
[0050] 73 2F 63 6E 3D 6A 6B 65   72 69 68 75 65 6C 00 00   s/cn=jke rihuel..
[0060] 00 00 00 00 00 00 02 00   00 00 00 00              ........ ....
rpc reply data:
[0000] 00 00 00 00 00 00 02 00   04 00 02 00 1D 00 00 00   ........ ........
[0010] 00 00 00 00 1D 00 00 00   65 78 63 68 32 6B 33 2E   ........ exch2k3.
[0020] 6F 70 65 6E 63 68 61 6E   67 65 32 30 30 33 2E 6C   openchan ge2003.l
[0030] 6F 63 61 6C 00 04 00 00   00 00 00 00              ocal.... ....
    RfrGetNewDSA: struct RfrGetNewDSA
        out: struct RfrGetNewDSA
            ppszUnused               : NULL
            ppszServer               : *
                ppszServer               : *
                    ppszServer               : 'exch2k3.openchange2003.local'
            result                   : MAPI_E_SUCCESS (0x0)
Using binding ncacn_ip_tcp:192.168.102.236[,print]
Mapped to DCERPC endpoint 135
added interface ip=192.168.122.1 nmask=255.255.255.0
added interface ip=192.168.0.10 nmask=255.255.255.0
added interface ip=192.168.122.1 nmask=255.255.255.0
added interface ip=192.168.0.10 nmask=255.255.255.0
rpc request data:
[0000] 01 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00   ........ ........
[0010] 00 00 00 00 02 00 00 00   4B 00 00 00 4B 00 00 00   ........ K...K...
[0020] 05 00 13 00 0D 18 5A CC   F5 64 42 1A 10 8C 59 08   ......Z. .dB...Y.
[0030] 00 2B 2F 84 26 38 00 02   00 00 00 13 00 0D 04 5D   .+/.&8.. .......]
[0040] 88 8A EB 1C C9 11 9F E8   08 00 2B 10 48 60 02 00   ........ ..+.H`..
[0050] 02 00 00 00 01 00 0B 02   00 00 00 01 00 07 02 00   ........ ........
[0060] 00 00 01 00 09 04 00 C0   A8 66 EC 00 00 00 00 00   ........ .f......
[0070] 00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00   ........ ........
[0080] 01 00 00 00                                       .... 
rpc reply data:
[0000] 00 00 00 00 62 95 B3 D0   17 CE 5C 45 85 FC D2 6C   ....b... ..\E...l
[0010] 9D 52 35 4A 01 00 00 00   01 00 00 00 00 00 00 00   .R5J.... ........
[0020] 01 00 00 00 03 00 00 00   4B 00 00 00 4B 00 00 00   ........ K...K...
[0030] 05 00 13 00 0D 18 5A CC   F5 64 42 1A 10 8C 59 08   ......Z. .dB...Y.
[0040] 00 2B 2F 84 26 38 00 02   00 00 00 13 00 0D 04 5D   .+/.&8.. .......]
[0050] 88 8A EB 1C C9 11 9F E8   08 00 2B 10 48 60 02 00   ........ ..+.H`..
[0060] 02 00 00 00 01 00 0B 02   00 00 00 01 00 07 02 00   ........ ........
[0070] 04 01 01 00 09 04 00 C0   A8 66 EC 00 00 00 00 00   ........ .f......
Mapped to DCERPC endpoint 1025
added interface ip=192.168.122.1 nmask=255.255.255.0
added interface ip=192.168.0.10 nmask=255.255.255.0
added interface ip=192.168.122.1 nmask=255.255.255.0
added interface ip=192.168.0.10 nmask=255.255.255.0
Starting GENSEC mechanism spnego
Starting GENSEC submechanism gssapi_krb5
Cannot do GSSAPI to an IP address
Failed to start GENSEC client mech gssapi_krb5: NT_STATUS_INVALID_PARAMETER
Starting GENSEC submechanism ntlmssp
Got challenge flags:
Got NTLMSSP neg_flags=0x62898205
  NTLMSSP_NEGOTIATE_UNICODE
  NTLMSSP_REQUEST_TARGET
  NTLMSSP_NEGOTIATE_NTLM
  NTLMSSP_NEGOTIATE_ALWAYS_SIGN
  NTLMSSP_NEGOTIATE_NTLM2
  NTLMSSP_CHAL_TARGET_INFO
  NTLMSSP_NEGOTIATE_128
  NTLMSSP_NEGOTIATE_KEY_EXCH
NTLMSSP challenge set by NTLM2
challenge is: 
[0000] 98 CA BC 58 F2 BB 87 E0                            ...X.... 
NTLMSSP: Set final flags:
Got NTLMSSP neg_flags=0x60088205
  NTLMSSP_NEGOTIATE_UNICODE
  NTLMSSP_REQUEST_TARGET
  NTLMSSP_NEGOTIATE_NTLM
  NTLMSSP_NEGOTIATE_ALWAYS_SIGN
  NTLMSSP_NEGOTIATE_NTLM2
  NTLMSSP_NEGOTIATE_128
  NTLMSSP_NEGOTIATE_KEY_EXCH
    NspiBind: struct NspiBind
        in: struct NspiBind
            dwFlags                  : 0x00000000 (0)
                   0: fAnonymousLogin          
            pStat                    : *
                pStat: struct STAT
                    SortType                 : SortTypeDisplayName (0)
                    ContainerID              : 0x00000000 (0)
                    CurrentRec               : 0x00000000 (0)
                    Delta                    : 0x00000000 (0)
                    NumPos                   : 0x00000000 (0)
                    TotalRecs                : 0x00000000 (0)
                    CodePage                 : 0x000004e4 (1252)
                    TemplateLocale           : 0x00000409 (1033)
                    SortLocale               : 0x00000409 (1033)
            mapiuid                  : *
                mapiuid                  : 00000000-0000-0000-0000-000000000000
rpc request data:
[0000] 00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00   ........ ........
[0010] 00 00 00 00 00 00 00 00   00 00 00 00 E4 04 00 00   ........ ........
[0020] 09 04 00 00 09 04 00 00   00 00 02 00 00 00 00 00   ........ ........
[0030] 00 00 00 00 00 00 00 00   00 00 00 00              ........ ....
rpc reply data:
[0000] 00 00 02 00 71 BE BB DD   4F 44 55 40 A1 51 E8 F8   ....q... [email protected]..
[0010] 5A A4 C4 57 00 00 00 00   5F 5B E3 2B 8A 02 85 47   Z..W.... _[.+...G
[0020] 9A 71 BD D4 ED E5 C4 D0   00 00 00 00              .q...... ....
    NspiBind: struct NspiBind
        out: struct NspiBind
            mapiuid                  : *
                mapiuid                  : ddbbbe71-444f-4055-a151-e8f85aa4c457
            handle                   : *
                handle: struct policy_handle
                    handle_type              : 0x00000000 (0)
                    uuid                     : 
2be35b5f-028a-4785-9a71-bdd4ede5c4d0
            result                   : MAPI_E_SUCCESS (0x0)
Using binding ncacn_ip_tcp:192.168.102.236[,print]
Mapped to DCERPC endpoint 135
added interface ip=192.168.122.1 nmask=255.255.255.0
added interface ip=192.168.0.10 nmask=255.255.255.0
added interface ip=192.168.122.1 nmask=255.255.255.0
added interface ip=192.168.0.10 nmask=255.255.255.0
rpc request data:
[0000] 01 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00   ........ ........
[0010] 00 00 00 00 02 00 00 00   4B 00 00 00 4B 00 00 00   ........ K...K...
[0020] 05 00 13 00 0D 00 DB F1   A4 47 CA 67 10 B3 1F 00   ........ .G.g....
[0030] DD 01 06 62 DA 00 00 02   00 00 00 13 00 0D 04 5D   ...b.... .......]
[0040] 88 8A EB 1C C9 11 9F E8   08 00 2B 10 48 60 02 00   ........ ..+.H`..
[0050] 02 00 00 00 01 00 0B 02   00 00 00 01 00 07 02 00   ........ ........
[0060] 00 00 01 00 09 04 00 C0   A8 66 EC 00 00 00 00 00   ........ .f......
[0070] 00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00   ........ ........
[0080] 01 00 00 00                                       .... 
rpc reply data:
[0000] 00 00 00 00 7B FE 47 EC   26 1A 6C 4A AA A7 2C 35   ....{.G. &.lJ..,5
[0010] 8D 23 9B D8 01 00 00 00   01 00 00 00 00 00 00 00   .#...... ........
[0020] 01 00 00 00 03 00 00 00   4B 00 00 00 4B 00 00 00   ........ K...K...
[0030] 05 00 13 00 0D 00 DB F1   A4 47 CA 67 10 B3 1F 00   ........ .G.g....
[0040] DD 01 06 62 DA 00 00 02   00 51 00 13 00 0D 04 5D   ...b.... .Q.....]
[0050] 88 8A EB 1C C9 11 9F E8   08 00 2B 10 48 60 02 00   ........ ..+.H`..
[0060] 02 00 00 00 01 00 0B 02   00 00 00 01 00 07 02 00   ........ ........
[0070] 04 61 01 00 09 04 00 C0   A8 66 EC 00 00 00 00 00   .a...... .f......
Mapped to DCERPC endpoint 1121
added interface ip=192.168.122.1 nmask=255.255.255.0
added interface ip=192.168.0.10 nmask=255.255.255.0
added interface ip=192.168.122.1 nmask=255.255.255.0
added interface ip=192.168.0.10 nmask=255.255.255.0
Starting GENSEC mechanism spnego
Starting GENSEC submechanism gssapi_krb5
Cannot do GSSAPI to an IP address
Failed to start GENSEC client mech gssapi_krb5: NT_STATUS_INVALID_PARAMETER
Starting GENSEC submechanism ntlmssp
Got challenge flags:
Got NTLMSSP neg_flags=0x62898205
  NTLMSSP_NEGOTIATE_UNICODE
  NTLMSSP_REQUEST_TARGET
  NTLMSSP_NEGOTIATE_NTLM
  NTLMSSP_NEGOTIATE_ALWAYS_SIGN
  NTLMSSP_NEGOTIATE_NTLM2
  NTLMSSP_CHAL_TARGET_INFO
  NTLMSSP_NEGOTIATE_128
  NTLMSSP_NEGOTIATE_KEY_EXCH
NTLMSSP challenge set by NTLM2
challenge is: 
[0000] 1E 72 97 BF AD 8F 8E 3F                            .r.....? 
NTLMSSP: Set final flags:
Got NTLMSSP neg_flags=0x60088205
  NTLMSSP_NEGOTIATE_UNICODE
  NTLMSSP_REQUEST_TARGET
  NTLMSSP_NEGOTIATE_NTLM
  NTLMSSP_NEGOTIATE_ALWAYS_SIGN
  NTLMSSP_NEGOTIATE_NTLM2
  NTLMSSP_NEGOTIATE_128
  NTLMSSP_NEGOTIATE_KEY_EXCH
    EcDoConnect: struct EcDoConnect
        in: struct EcDoConnect
            szUserDN                 : '/o=First Organization/ou=First 
Administrative Group/cn=Recipients/cn=jkerihuel'
            ulFlags                  : 0x00000000 (0)
            ulConMod                 : 0xa2dd4f7e (2732412798)
            cbLimit                  : 0x00000000 (0)
            ulCpid                   : 0x000004e4 (1252)
            ulLcidString             : 0x00000409 (1033)
            ulLcidSort               : 0x00000409 (1033)
            ulIcxrLink               : 0xffffffff (4294967295)
            usFCanConvertCodePages   : 0x0001 (1)
            rgwClientVersion: ARRAY(3)
                rgwClientVersion         : 0x000c (12)
                rgwClientVersion         : 0x183e (6206)
                rgwClientVersion         : 0x03e8 (1000)
            pullTimeStamp            : *
                pullTimeStamp            : 0x00000000 (0)
rpc request data:
[0000] 4F 00 00 00 00 00 00 00   4F 00 00 00 2F 6F 3D 46   O....... O.../o=F
[0010] 69 72 73 74 20 4F 72 67   61 6E 69 7A 61 74 69 6F   irst Org anizatio
[0020] 6E 2F 6F 75 3D 46 69 72   73 74 20 41 64 6D 69 6E   n/ou=Fir st Admin
[0030] 69 73 74 72 61 74 69 76   65 20 47 72 6F 75 70 2F   istrativ e Group/
[0040] 63 6E 3D 52 65 63 69 70   69 65 6E 74 73 2F 63 6E   cn=Recip ients/cn
[0050] 3D 6A 6B 65 72 69 68 75   65 6C 00 00 00 00 00 00   =jkerihu el......
[0060] 7E 4F DD A2 00 00 00 00   E4 04 00 00 09 04 00 00   ~O...... ........
[0070] 09 04 00 00 FF FF FF FF   01 00 0C 00 3E 18 E8 03   ........ ....>...
[0080] 00 00 00 00                                       .... 
rpc reply data:
[0000] 00 00 00 00 B8 F8 F8 A0   C6 9F E1 4F 99 B8 67 93   ........ ...O..g.
[0010] 99 05 68 19 60 EA 00 00   06 00 00 00 10 27 00 00   ..h.`... .....'..
[0020] 14 00 00 00 00 00 02 00   46 00 00 00 00 00 00 00   ........ F.......
[0030] 46 00 00 00 2F 4F 3D 46   49 52 53 54 20 4F 52 47   F.../O=F IRST ORG
[0040] 41 4E 49 5A 41 54 49 4F   4E 2F 4F 55 3D 46 49 52   ANIZATIO N/OU=FIR
[0050] 53 54 20 41 44 4D 49 4E   49 53 54 52 41 54 49 56   ST ADMIN ISTRATIV
[0060] 45 20 47 52 4F 55 50 2F   43 4E 3D 52 45 43 49 50   E GROUP/ CN=RECIP
[0070] 49 45 4E 54 53 2F 43 4E   3D 00 0F 00 04 00 02 00   IENTS/CN =.......
[0080] 10 00 00 00 00 00 00 00   10 00 00 00 4A 75 6C 69   ........ ....Juli
[0090] 65 6E 20 4B 65 72 69 68   75 65 6C 00 06 00 20 1B   en Kerih uel... .
[00A0] 03 00 0C 00 3E 18 E8 03   A0 DF 5E 08 00 00 00 00   ....>... ..^.....
    EcDoConnect: struct EcDoConnect
        out: struct EcDoConnect
            handle                   : *
                handle: struct policy_handle
                    handle_type              : 0x00000000 (0)
                    uuid                     : 
a0f8f8b8-9fc6-4fe1-99b8-679399056819
            pcmsPollsMax             : *
                pcmsPollsMax             : 0x0000ea60 (60000)
            pcRetry                  : *
                pcRetry                  : 0x00000006 (6)
            pcmsRetryDelay           : *
                pcmsRetryDelay           : 0x00002710 (10000)
            picxr                    : *
                picxr                    : 0x00000014 (20)
            szDNPrefix               : *
                szDNPrefix               : '/O=FIRST ORGANIZATION/OU=FIRST 
ADMINISTRATIVE GROUP/CN=RECIPIENTS/CN='
            szDisplayName            : *
                szDisplayName            : 'Julien Kerihuel'
            rgwServerVersion: ARRAY(3)
                rgwServerVersion         : 0x0006 (6)
                rgwServerVersion         : 0x1b20 (6944)
                rgwServerVersion         : 0x0003 (3)
            rgwClientVersion: ARRAY(3)
                rgwClientVersion         : 0x000c (12)
                rgwClientVersion         : 0x183e (6206)
                rgwClientVersion         : 0x03e8 (1000)
            pullTimeStamp            : *
                pullTimeStamp            : 0x085edfa0 (140435360)
            result                   : MAPI_E_SUCCESS (0x0)
    EcDoRpc: struct EcDoRpc
        in: struct EcDoRpc
            handle                   : *
                handle: struct policy_handle
                    handle_type              : 0x00000000 (0)
                    uuid                     : 
a0f8f8b8-9fc6-4fe1-99b8-679399056819
            size                     : 0x0000fff0 (65520)
            offset                   : 0x00000000 (0)
            mapi_request             : *
                mapi_len                 : 0x00000067 (103)
                length                   : 0x0063 (99)
                    mapi_request: struct EcDoRpc_MAPI_REQ
                        opnum                    : 0xfe (254)
                        logon_id                 : 0x00 (0)
                        handle_idx               : 0x00 (0)
                        u                        : union 
EcDoRpc_MAPI_REQ_UNION(case 254)
                        mapi_Logon: struct Logon_req
                            LogonFlags               : 0x01 (1)
                                   1: LogonPrivate             
                                   0: UnderCover               
                                   0: Ghosted                  
                                   0: SpIProcess               
                            OpenFlags                : 0x0000040c (1036)
                                   0: PUBLIC                   
                                   1: HOME_LOGON               
                                   1: TAKE_OWNERSHIP           
                                   0: ALTERNATE_SERVER         
                                   0: IGNORE_HOME_MDB          
                                   1: NO_MAIL                  
                                   0: USE_PER_MDB_REPLID_MAPPING
                            StoreState               : 0x00000000 (0)
                                   0: STORE_HAS_SEARCHES       
                            EssDN                    : '/o=First 
Organization/ou=First Administrative Group/cn=Recipients/cn=Administrator'
                    mapi_request             : (handles) number=1
                        handle                   : 0xffffffff (4294967295)
                length                   : *
                    length                   : 0x0067 (103)
                max_data                 : 0xfff0 (65520)
rpc request data:
[0000] 00 00 00 00 B8 F8 F8 A0   C6 9F E1 4F 99 B8 67 93   ........ ...O..g.
[0010] 99 05 68 19 F0 FF 00 00   00 00 00 00 67 00 00 00   ..h..... ....g...
[0020] C6 A5 5B A5 A5 A4 A9 A1   A5 A5 A5 A5 A5 A5 F6 A5   ..[..... ........
[0030] 8A CA 98 E3 CC D7 D6 D1   85 EA D7 C2 C4 CB CC DF   ........ ........
[0040] C4 D1 CC CA CB 8A CA D0   98 E3 CC D7 D6 D1 85 E4   ........ ........
[0050] C1 C8 CC CB CC D6 D1 D7   C4 D1 CC D3 C0 85 E2 D7   ........ ........
[0060] CA D0 D5 8A C6 CB 98 F7   C0 C6 CC D5 CC C0 CB D1   ........ ........
[0070] D6 8A C6 CB 98 E4 C1 C8   CC CB CC D6 D1 D7 C4 D1   ........ ........
[0080] CA D7 A5 5A 5A 5A 5A 00   67 00 F0 FF              ...ZZZZ. g...
rpc reply data:
[0000] 00 00 00 00 B8 F8 F8 A0   C6 9F E1 4F 99 B8 67 93   ........ ...O..g.
[0010] 99 05 68 19 F0 FF 00 00   00 00 00 00 AC 00 00 00   ..h..... ........
[0020] 0D A5 5B A5 A5 A5 A5 A5   A4 A4 A5 A5 A5 A5 A5 85   ..[..... ........
[0030] EC A4 A5 A5 A5 A5 A5 85   EE A4 A5 A5 A5 A5 A5 85   ........ ........
[0040] E9 A4 A5 A5 A5 A5 A5 85   EF A4 A5 A5 A5 A5 A5 85   ........ ........
[0050] E8 A4 A5 A5 A5 A5 A5 85   EB A4 A5 A5 A5 A5 A5 85   ........ ........
[0060] EA A4 A5 A5 A5 A5 A5 85   F5 A4 A5 A5 A5 A5 A5 85   ........ ........
[0070] F6 A4 A5 A5 A5 A5 A5 85   F1 A4 A5 A5 A5 A5 A5 85   ........ ........
[0080] F4 A4 A5 A5 A5 A5 A5 85   F7 A4 A5 A5 A5 A5 A5 85   ........ ........
[0090] F0 A4 2F 98 14 20 67 E1   47 E5 10 7E 34 14 A8 59   ../.. g. G..~4..Y
[00A0] 99 5F A4 A5 E5 04 42 F0   7E 68 58 E1 29 2C 92 3F   ._....B. ~hX.),.?
[00B0] F3 5F B2 37 BA 94 B3 A4   A9 A4 7C A2 15 A8 E5 58   ._.7.... ..|....X
[00C0] 06 D4 6C A4 A5 A5 A5 A4   9B A5 A5 A5 AC 00 00 00   ..l..... ........
[00D0] 00 00 00 00                                       .... 
    EcDoRpc: struct EcDoRpc
        out: struct EcDoRpc
            handle                   : *
                handle: struct policy_handle
                    handle_type              : 0x00000000 (0)
                    uuid                     : 
a0f8f8b8-9fc6-4fe1-99b8-679399056819
            size                     : 0x0000fff0 (65520)
            offset                   : 0x00000000 (0)
            mapi_response            : *
                mapi_response            : length=168
                mapi_response: ARRAY(166)
                    mapi_repl: struct EcDoRpc_MAPI_REPL
                        opnum                    : 0xfe (254)
                        handle_idx               : 0x00 (0)
                        error_code               : MAPI_E_SUCCESS (0x0)
                        u                        : union 
EcDoRpc_MAPI_REPL_UNION(case 254)
                        mapi_Logon: struct Logon_repl
                            LogonFlags               : 0x01 (1)
                                   1: LogonPrivate             
                                   0: UnderCover               
                                   0: Ghosted                  
                                   0: SpIProcess               
                            LogonType                : union LogonType(case 1)
                            store_mailbox: struct store_mailbox
                                FolderIds: ARRAY(13)
                                    FolderIds                : 
0x4920000000000001 (5269211564023480321)
                                    FolderIds                : 
0x4b20000000000001 (5413326752099336193)
                                    FolderIds                : 
0x4c20000000000001 (5485384346137264129)
                                    FolderIds                : 
0x4a20000000000001 (5341269158061408257)
                                    FolderIds                : 
0x4d20000000000001 (5557441940175192065)
                                    FolderIds                : 
0x4e20000000000001 (5629499534213120001)
                                    FolderIds                : 
0x4f20000000000001 (5701557128251047937)
                                    FolderIds                : 
0x5020000000000001 (5773614722288975873)
                                    FolderIds                : 
0x5320000000000001 (5989787504402759681)
                                    FolderIds                : 
0x5420000000000001 (6061845098440687617)
                                    FolderIds                : 
0x5120000000000001 (5845672316326903809)
                                    FolderIds                : 
0x5220000000000001 (5917729910364831745)
                                    FolderIds                : 
0x5520000000000001 (6133902692478615553)
                                ResponseFlags            : 0x01 (1)
                                       1: ResponseFlags_Reserved   
                                       0: ResponseFlags_OwnerRight 
                                       0: ResponseFlags_SendAsRight
                                       0: ResponseFlags_OOF        
                                MailboxGuid              : 
85b13d8a-44c2-40e2-b5db-91b10dfc3cfa
                                ReplId                   : 0x0001 (1)
                                ReplGUID                 : 
55e7a140-cddb-44fd-8c89-379a56fa1792
                                LogonTime: struct LogonTime
                                    Seconds                  : 0x1f (31)
                                    Minutes                  : 0x31 (49)
                                    Hour                     : 0x16 (22)
                                    DayOfWeek                : DayOfWeek_Monday 
(1)
                                    Day                      : 0x0c (12)
                                    Month                    : 0x01 (1)
                                    Year                     : 0x07d9 (2009)
                                GwartTime                : 0x01c971a3fd400db0 
(128759013499211184)
                                StoreState               : 0x01000000 (16777216)
                                       0: STORE_HAS_SEARCHES       
                mapi_response            : (handles) number=1
                    handle id                : 0x0000003e (62)
            length                   : *
                length                   : 0x00ac (172)
            result                   : MAPI_E_SUCCESS (0x0)
Fid: 0x4d20000000000001
    EcDoRpc: struct EcDoRpc
        in: struct EcDoRpc
            handle                   : *
                handle: struct policy_handle
                    handle_type              : 0x00000000 (0)
                    uuid                     : 
a0f8f8b8-9fc6-4fe1-99b8-679399056819
            size                     : 0x0000fff0 (65520)
            offset                   : 0x00000000 (0)
            mapi_request             : *
                mapi_len                 : 0x00000017 (23)
                length                   : 0x000f (15)
                    mapi_request: struct EcDoRpc_MAPI_REQ
                        opnum                    : 0x02 (2)
                        logon_id                 : 0x00 (0)
                        handle_idx               : 0x00 (0)
                        u                        : union 
EcDoRpc_MAPI_REQ_UNION(case 2)
                        mapi_OpenFolder: struct OpenFolder_req
                            handle_idx               : 0x01 (1)
                            folder_id                : 0x4d20000000000001 
(5557441940175192065)
                            OpenModeFlags            : OpenModeFlags_Folder (0)
                    mapi_request             : (handles) number=2
                        handle                   : 0x0000003e (62)
                        handle                   : 0xffffffff (4294967295)
                length                   : *
                    length                   : 0x0017 (23)
                max_data                 : 0xfff0 (65520)
rpc request data:
[0000] 00 00 00 00 B8 F8 F8 A0   C6 9F E1 4F 99 B8 67 93   ........ ...O..g.
[0010] 99 05 68 19 F0 FF 00 00   00 00 00 00 17 00 00 00   ..h..... ........
[0020] AA A5 A7 A5 A5 A4 A4 A5   A5 A5 A5 A5 85 E8 A5 9B   ........ ........
[0030] A5 A5 A5 5A 5A 5A 5A 00   17 00 F0 FF              ...ZZZZ. ....
rpc reply data:
[0000] 00 00 00 00 B8 F8 F8 A0   C6 9F E1 4F 99 B8 67 93   ........ ...O..g.
[0010] 99 05 68 19 F0 FF 00 00   00 00 00 00 12 00 00 00   ..h..... ........
[0020] AF A5 A7 A4 A5 A5 A5 A5   A5 A5 9B A5 A5 A5 FD A5   ........ ........
[0030] A5 A5 12 00 00 00 00 00                            ........ 
    EcDoRpc: struct EcDoRpc
        out: struct EcDoRpc
            handle                   : *
                handle: struct policy_handle
                    handle_type              : 0x00000000 (0)
                    uuid                     : 
a0f8f8b8-9fc6-4fe1-99b8-679399056819
            size                     : 0x0000fff0 (65520)
            offset                   : 0x00000000 (0)
            mapi_response            : *
                mapi_response            : length=10
                mapi_response: ARRAY(8)
                    mapi_repl: struct EcDoRpc_MAPI_REPL
                        opnum                    : 0x02 (2)
                        handle_idx               : 0x01 (1)
                        error_code               : MAPI_E_SUCCESS (0x0)
                        u                        : union 
EcDoRpc_MAPI_REPL_UNION(case 2)
                        mapi_OpenFolder: struct OpenFolder_repl
                            HasRules                 : 0x00 (0)
                            IsGhosted                : 0x00 (0)
                            Ghost                    : union IsGhosted(case 0)
                mapi_response            : (handles) number=2
                    handle id                : 0x0000003e (62)
                    handle id                : 0x00000058 (88)
            length                   : *
                length                   : 0x0012 (18)
            result                   : MAPI_E_SUCCESS (0x0)
Index: libmapi/simple_mapi.c
===================================================================
--- libmapi/simple_mapi.c	(revision 985)
+++ libmapi/simple_mapi.c	(working copy)
@@ -20,6 +20,7 @@
 #include <libmapi/libmapi.h>
 #include <libmapi/proto_private.h>
 #include <gen_ndr/ndr_exchange.h>
+#include <param.h>
 
 
 /**
@@ -860,3 +861,27 @@
 
 	OPENCHANGE_RETVAL_ERR(MAPI_E_NOT_FOUND, 0);
 }
+
+
+enum MAPISTATUS SetOpenChangeDebugLevel(uint32_t debuglevel)
+{
+	char	*level;
+	bool	ret;
+
+	OPENCHANGE_RETVAL_IF(!global_mapi_ctx, MAPI_E_NOT_INITIALIZED, NULL);
+	
+	level = talloc_asprintf(global_mapi_ctx->mem_ctx, "%d", debuglevel);
+	ret = lp_set_cmdline(global_mapi_ctx->lp_ctx, "log level", level);
+	talloc_free(level);
+
+	return (ret == true) ? MAPI_E_SUCCESS : MAPI_E_INVALID_PARAMETER;
+}
+
+enum MAPISTATUS SetOpenChangeDebug(bool debug)
+{
+	OPENCHANGE_RETVAL_IF(!global_mapi_ctx, MAPI_E_NOT_INITIALIZED, NULL);
+
+	global_mapi_ctx->dumpdata = debug;
+
+	return MAPI_E_SUCCESS;
+}
from ctypes import *

MAPI_E_SUCCESS = 0
olFolderTopInformationStore = 1
olFolderInbox		    = 6

def e(error):
    lib.mapi_errstr(error, lib.GetLastError())

    import sys
    sys.exit()


class mapi_object_t(Structure):
    _fields_ = [
        ('id',              c_uint64),
        ('handler',         c_uint32),
        ('session',         c_void_p),
        ('private_data',    c_void_p)
    ]


lib = CDLL('libmapi.so')

session = c_void_p()

if lib.MAPIInitialize('profiles.ldb') != MAPI_E_SUCCESS:
    e('MAPIInitialize')

lib.SetOpenChangeDebug(bool(1))
lib.SetOpenChangeDebugLevel(10)

if lib.MapiLogonEx(pointer(session), 'office', 'openchange') != MAPI_E_SUCCESS:
    e('MapiLogonEx')

store = mapi_object_t()

if lib.OpenUserMailbox(session, 'Administrator', pointer(store)) != MAPI_E_SUCCESS:
    e('OpenUserMailbox')

fid = c_uint64()

if lib.GetDefaultFolder(pointer(store), pointer(fid), olFolderInbox) != MAPI_E_SUCCESS:
    e('GetDefaultFolder')

print "Fid: 0x%lx" % fid.value

folder = mapi_object_t()

if lib.OpenFolder(pointer(store), fid, pointer(folder)) != MAPI_E_SUCCESS:
    e('OpenFolder')

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