Add dummy file to make sure bin/ directory exists.
[jelmer/openchange.git] / ChangeLog
index e23f93224b90993a0efe645b955611d3cd3d1bc8..92e80a7e040cee0514155ab2b0c526e0863f816b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
+2010-08-29
+    jkerihuel
+       [r2144]
+               Add CopyProfile and DuplicateProfile to IProfAdmin interface
+
+2010-08-27
+    jkerihuel
+       [r2142]
+               Add the localaddress patch prior Samba4 integration. Pending new
+               Samba4 localaddress patch fixing memory leaks in the pipe.
+       [r2141]
+               Include a mapitest test suite / challenge for lzxpress
+               
+               The idea of this test is to check if lzxpress compressed blobs
+               provided by OpenChange are the same than Outlook ones. The test takes
+               a Outlook->Exchange capture file with compressed blob, pull the
+               content, decompressed the content, recompress the content and check
+               the output for differing bytes.
+               
+               This challenge code should give us good information when lzxpress
+               compress code is fixed. Additionally you can uncomment the compression
+               code in libmapi/emsmdb.c to do further testing.
+       [r2140]
+               - Add implementation for EcDoRpcExt2 (0xB) RPC opnum. Current code
+                 doesn't provide compression for request and use obfuscation
+                 instead. However mapi_response makes use of xpress and are
+                 decompressed properly.
+               
+               - EcDoRpcExt2 implemented without subcontexts but uint8_t array
+               
+               - add a wrapper for emsmdb transaction to switch between
+                 EcDoConnect/EcDoRpc and EcDoConnectEx/EcDoRpcExt2 depending on MAPI
+                 profile 'exchange version' attribute.
+               
+               NOTE: emsmdb.c implements the logic for using compressed blob and
+               checks whether compressed or obfuscation should be used depending on
+               blob length. However this behavior has been commented out because
+               comrpessed blobs are rejected by Exchange (ecRpcFormat 0x4B6 error).
+2010-08-26
+    jkerihuel
+       [r2139]
+               Reference profile structure in mapitest structure.
+               
+               Use profile->mailbox instead of szDisplayName for sending mapitest
+               emails. This also fix ResolveNames mapitest issues when conflicts
+               between usernames exist (e.g. user1, user11, user100).
+    bradh
+       [r2137]
+               Prevent segfault if we don't have any appointments.
+               
+               Resolves issue #284.
+               
+               Also prevent leaking talloc context in a couple of error cases.
+       [r2136]
+               Merge Rev 2133 from branches/current-samba4 to trunk.
+               
+               I inadvertently committed this to the wrong branch.
+               
+               This pushes the fix for #229 into trunk.
+
+2010-08-23
+    jelmer
+       [r2134]
+               Update bzr ignores.
+
+2010-08-18
+    jkerihuel
+       [r2131]
+               Add a git update case in installsamba.sh script and make it available
+               within OpenChange Makefile.
+
+2010-08-17
+    jkerihuel
+       [r2127]
+               Manually commit remaining changes from current-samba4 into trunk
+       [r2126]
+               Merge current-samba4 branch back into trunk
+
+2010-08-11
+    bradh
+       [r2117]
+               Microsoft confirmed that RopGetValidAttachments isn't supported in Exchange 2010.
+       [r2114]
+               fix missing part of r2113.
+       [r2113]
+               Fixes to better work with Exchange 2010.
+               
+               Still some open issues to resolving bug 227.
+       [r2112]
+               Fix handling of "not applicable" tests when using --mapi-calls
+               
+               Prior to this, if you asked for a test that was after a test that was
+               flagged as suppressed, the test you asked for didn't get run, and the
+               flagged test was reported instead.
+2010-08-10
+    bradh
+       [r2111]
+               Correctly handle cases where the start date of the range is after the first calendar appointment.
+               
+               Resolves bug:272.
+               
+               Thanks to Eric Reischer for reporting the problem and testing the fix.
+
+2010-08-03
+    bradh
+       [r2107]
+               trivial comment cleanup.
+
+2010-08-01
+    jkerihuel
+       [r2105]
+               Move from auto-generated mapicode.h to static code.
+       [r2104]
+               Add configure.ac support for gthread implementation but give preferences to pthread
+               Add THREAD_CFLAGS to config.mk.in
+               ifdef between pthread and gthread in libmapi_private.h
+       [r2103]
+               Check for libpthread in configure.ac and make this lib optional
+               Add references to config.h in libmapi_private.h
+               Replace references to config.h with libmapi_private.h
+
+2010-07-31
+    jkerihuel
+       [r2101]
+               - Add an exchange-version parameter to mapiprofile structure and tool
+                 which let user choose between 0x0/0x2 or 0xA/0xB
+               - Tweak libmapi implementation to allow EcDoConnectEx usage
+               - Improve mapiprofile --dump to show more useful parameters
+       [r2100]
+               - Add custom NDR implementation for EcDoConnectEx to bypass pointers/array problems
+               - make use of mapi2k7_AuxInfo structure for rgbAuxOut
+               
+               - Create a subcontext for AUX_HEADER structures to jump over unknown cases properly.
+       [r2099]
+               Handle the no obfuscation nor compression RPC_HEADER_EXT flags case 
+    bradh
+       [r2098]
+               Trivial api documentation change.
+
+2010-07-29
+    bradh
+       [r2095]
+               Another trivial API documentation fix.
+       [r2094]
+               More trivial API documentation fixes.
+       [r2093]
+               Minor API documentation fix.
+       [r2092]
+               Implement some null pointer checks.
+               
+               Also rewords some API documentation.
+               
+               Original issue and patch by Erik Hovland - thanks again. I implemented it
+               with some slight changes.
+
+2010-07-28
+    bradh
+       [r2090]
+               Fix RecipientRow IDL to match MS-OXCDATA 2.9.3
+               
+               This allows handling of addresses that contain X400 format content.
+               
+               Patch by Samuel Sieb and I, resolves ticket #250.
+
+2010-07-26
+    jkerihuel
+       [r2087]
+               Fix a crash in openchangeclient vs Exchange 2010:
+               When Queryrows is called on Exchange 2010 and no rows are available, QueryRows returns MAPI_E_NOT_IMPLEMENTED error (0x8004FFFF).
+               Ensure we have at least one message to fetch in openchangeclient --fetchmail prior calling QueryRows.
+
+2010-07-24
+    jkerihuel
+       [r2079]
+               Very basic use of OpenUserMailbox in openchangeclient.
+               Doesn't handle clustered Exchange servers.
+    bradh
+       [r2077]
+               Rename a few function arguments to avoid doxygen warnings.
+               
+               This is a workaround, but will allow easier checking for the future.
+       [r2076]
+               Update doxygen configuration to match latest version
+       [r2075]
+               Add missing doxygen parameter information.
+       [r2074]
+               Fix a couple of doxygen issues.
+
+2010-07-23
+    jkerihuel
+       [r2072]
+               Use sed in Makefile to replace local headers reference in installed headers
+       [r2071]
+               Use local headers rather than installed ones
+               Propagate this behavior to torture test suites and bindings
+       [r2070]
+               Remove libmapi/defs_private.h
+               Remove references to libmapi/defs_private.h in OpenChange tree
+       [r2069]
+               Remove auto-generated headers for libmapi:
+               - Add libmapi_private.h for private definitions
+               - Use libmapi.h for public definitions
+               
+               - Merge libmapi_private.h and defs_private.h
+               
+               Use local headers rather than installed ones
+               
+               Change libmapi compilation list to have ndr_exchange_c.h 
+               available for other libmapi C files.
+               
+               Remove references to libmapi/proto_private.h in OpenChange tree
+               Remove references to libmapi/defs_private.h in OpenChange tree
+
+2010-07-20
+    bradh
+       [r2065]
+               Modify the samba build script to make it more flexible.
+               
+               Heavily based on changes provided by Andrew Tridgell. Thanks!
+
+2010-07-15
+    jkerihuel
+       [r2063]
+               Use local includes rather than installed ones for openchange tools/utils
+       [r2062]
+               Use local includes rather than installed ones for mparse.pl
+       [r2061]
+               Use local includes rather than installed ones for mapiproxy and server components
+       [r2060]
+               Use local includes rather than installed ones
+       [r2059]
+               Use local includes rather than installed ones for libexchange2ical
+               Sanitize function declarations
+       [r2058]
+               Remove proto and proto_private.h from ignore list
+       [r2057]
+               Remove auto-generated headers for libmapiadmin
+               Use local includes rather than installed ones for libmapiadmin
+       [r2056]
+               Remove proto and proto_private.h from ignore list
+       [r2055]
+               Remove auto-generated headers for libocpf
+               Use local includes rather than installed ones for libocpf
+       [r2054]
+               Fix bug #248 misnamed PR_RECIPIENTS_FLAGS
+       [r2053]
+               Add IDL implementation for WritePerUserInformation.
+               
+               Note: This IDL suffers from the same problems than SetMessageReadFlags. It depends on logon_id and Logon flags.
+
+2010-07-14
+    jkerihuel
+       [r2051]
+               Add server-side preliminary ReloadCachedInformation implementation.
+               The Rop only support a specific case and it is expected to work better after
+               integration of the OCPF contexts for message transaction.
+       [r2050]
+               Missing header for stat()
+
+2010-07-06
+    bradh
+       [r2048]
+               Implement RopSetReceiveFolder
+               
+               There is a part of this missing (relating to modification times) that will be implemented
+               as part of the RopGetReceiveFolderTable implementation.
+               
+               This updates the mapitest code, including a change to the function signature for the
+               mapitest_print_retval_step() function to take an explicit MAPISTATUS value instead of
+               relying on GetLastError().
+
+2010-07-04
+    bradh
+       [r2046]
+               Enhance the GetReceiveFolder ROP.
+               
+               This now tries all available MessageClass entries.
+       [r2045]
+               Enhance GetReceiveFolder mapitest.
+
+2010-07-03
+    bradh
+       [r2043]
+               Make sure objects are correctly init()'d and release()'d even in fault condition.
+       [r2042]
+               Make sure objects are correctly init()'d and release()'d even in failure case.
+       [r2041]
+               Make sure all objects are initialised, even in failure cases.
+       [r2040]
+               Trivial comment change.
+       [r2039]
+               Add a few more null pointer protections into fsocpf backend.
+               
+               Trying to get mapitest running...
+
+2010-07-02
+    bradh
+       [r2037]
+               Add mapitest unit test for DeleteMessages with multiple messages.
+       [r2036]
+               Implement DeleteMessages ROP.
+               
+               Adds message deletion support to mapistore core and fsocpf backend.
+               
+               I've been testing this with OXCMSG-SAVE-CHANGES-MESSAGE from mapitest. 
+       [r2035]
+               Make it a bit easier to use alternative GIT tree.
+       [r2034]
+               Ensure we return the correct MID from SaveChangesMessage
+
+2010-06-28
+    jkerihuel
+       [r2031]
+               Fix a segfault when releasing handles. We kept 
+               processing the handles list after releasing the element.
+    bradh
+       [r2030]
+               Add some simple tests for openchangeclient.
+       [r2029]
+               Unbreak compilation problems from previous commit.
+       [r2028]
+               Ensure we don't duplicate folder names.
+               
+               This adds appropriate checks for both system (openchangedb) and normal (mapistore)
+               folders. The mapitest code also checks that the OPEN_IF_EXISTS flag works. 
+               
+               I had to add an additional mapitest_print_retval() variation, since successful operations
+               don't reset errno.
+
+2010-06-26
+    jkerihuel
+       [r2026]
+               add support for PT_CLSID and PT_SVREID in cast_mapi_SPropValue
+       [r2024]
+               Add a memory context argument to cast_mapi_SPropValue to be less
+               dependent to libmapi and allow better memory allocation handling.
+               
+               Propagate API change among OpenChange source tree
+               
+               Add doxygen documentation for cast_mapi_SPropValue
+    bradh
+       [r2025]
+               Make sure we always set the opnum and handle, even for error cases.
+       [r2023]
+               Suppress compilation noise in a few places for consistency with the rest of the Makefile
+2010-06-25
+    jkerihuel
+       [r2022]
+               Add ocpf_write support for PT_MV_STRING8, PT_MV_UNICODE, PR_MV_BINARY
+               and PT_MV_LONG
+       [r2021]
+               - Add documentation for PT_MV_LONG
+               - Update PT_BINARY section
+       [r2020]
+               - Fix PT_BINARY to now parse uint8_t 0x00 - 0xFF instead of previous
+                 (and incorrect) long items
+               
+               - Add implementation for PT_MV_LONG
+               - Clean up useless code
+       [r2018]
+               Add  mapidump_SPropValue for PT_MV_LONG
+       [r2017]
+               Add support for PT_MV_UNICODE type
+       [r2016]
+               Add  mapidump_SPropValue for PT_MV_UNICODE
+       [r2015]
+               Add support for PT_MV_BINARY type
+               
+               This implementation required to add a Binary_r within ocpf_context to
+               union SPropValue_CTR content consistent among recursive parsing.
+       [r2014]
+               Add PT_MV_BINARY support in cast_SPropValue
+       [r2013]
+               Add mapidump_SPropValue entry for PT_MV_BINARY
+       [r2012]
+               Do not search context if context_id is NULL
+       [r2011]
+               - Add a function to synchronize data on filesystem after a write
+                 commit (close/fopen) and change open and context flags depending on
+                 their previous value.
+               
+               - If PR_MESSAGE_CLASS or PR_MESSAGE_CLASS_UNICODE is used for
+                 set_SPropValue, update context type.
+
+2010-06-23
+    jkerihuel
+       [r2009]
+               Fix warnings generating by the incorrect .tp_new first argument type
+       [r2007]
+               - Implement server-side skeleton for ReadPerUserInformation (0x63)
+       [r2006]
+               - Use external TALLOC context for cast_SPropValue rather than
+               global_mapi_ctx->mem_ctx. This was preventing from using this function
+               properly in a context different from libmapi based application
+               (server).
+               
+               - Add cast_SPropValue support for PT_CLSID and PT_MV_LONG
+               
+               - add message path + id in the indexing database for mapistore case in
+                 SaveChangesMessage
+       [r2005]
+               Add default owner/full rights to new root folders created. Works with
+               Outlook 2003 (shift + delete for hard delete)
+       [r2004]
+               Add PT_SRVEID support in SPropValue (0xFB proptype)
+       [r2003]
+               Add owner / full-access rights for mailbox folders. It introduces less
+               stabilitity but offers wider range of available features.
+       [r2002]
+               Generate PidTagRights for PR_RIGHTS (used in openchangedb)
+2010-06-22
+    jkerihuel
+       [r2001]
+               - Complete fsocpf_get_path implementation
+               - Register message into indexing.tdb after SubmitMessage
+       [r2000]
+               Add ocpf_server_set_type python bindings.
+               
+               Ohhh looks like we have reached r2000 ;-)
+               
+                .-.                ,                                                     
+               `._ ,                           
+                  \ \                 o         
+                   \ `-,.                        
+                  .'o .  `.[]           o        
+               <~- - , ,[].'.[] ~>     ___                                               
+                :               :     (-~.)    
+                 `             '       `|'     
+                  `           '         |      
+                   `-.     .-'          |      
+               -----{. _ _ .}-------------------                                         
+       [r1998]
+               - Add SetProps server side implementation for mapistore messages
+               
+               - Add a preliminary set of properties within CreateMessage (not
+                 complete yet) as stated in MS-OXCMSG 3.2.5.2
+               
+               - Add SaveChangeMessages preliminary server side implementation
+               - Add SubmitMessage preliminary server side implementation
+               
+               - add mapistore and fsocpf backend implementation for
+                 SaveChangeMessages and SubmitMessage. Note: SubmitMesage is just a
+                 hack for now.
+       [r1997]
+               - Add a wrapper to set OCPF file TYPE
+               - Free/Allocate type on purpose
+       [r1996]
+               storing a mapistore_message within the message object is useless for
+               the moment. Clean-up this bit introduced with last commit.
+       [r1995]
+               - Add preliminary OCPF API for server purposes (used by
+                 mapistore_fsocpf)
+               
+               - ocpf_server API now allows caller to dynamically update
+                 properties. If the properties was already existing, updates its
+                 value.
+               
+               - Update ocpf_test.py to reflect this behavior
+               
+               - Add preliminary server side implementation for CreateMessage (server
+                 + mapistore + fsocpf backedn)
+               
+               - Add preliminary mapistore + fsocpf backend skeleton for SetProps
+                 operation
+    bradh
+       [r1994]
+               Typo fix in constant name.
+2010-06-21
+    jkerihuel
+       [r1993]
+               - Only prevent file opened in read-only to use write_commit
+               - Position the stream at the beginning of the file before writing
+       [r1992]
+               Defer ocpf file creation (fopen with w+) to ocpf_write_commit
+       [r1990]
+               Add rmdir support to mapistore python bindings
+       [r1989]
+               - Add mapistore python C/API support for:
+                 - add_context_indexing
+                 - add_context_ref_count
+                 - opendir
+                 - closedir
+                 - mkdir
+                 - errstr MAPISTORE error to string conversion
+               
+               - Update mapistore python test script to demonstrate
+               how to create a new folder using mapistore 
+       [r1988]
+               I may be wrong here, but that was the only way I could pass
+               a folderID from python's layer to mapistore C/API
+       [r1987]
+               If context is manually deleted using public API, we need to remove the destructor
+               we set during context init, otherwise talloc_free segfault occurs
+       [r1986]
+               talloc_strdup SPropValue strings
+       [r1985]
+               Add preliminary python bindings for mapistore
+2010-06-20
+    jkerihuel
+       [r1984]
+               Add FILETIME support for SPropValue
+       [r1982]
+               Add TypeCheck on SPropValue rather than blind cast
+       [r1981]
+               Add python binding for ocpf_write
+               Add quick test code to ensure it works as expected
+       [r1980]
+               - Use SPropValue python object in ocpf module
+               - Add a function binding to retrieve SPropValue array from OCPF file
+               - Modify sample to test this behavior
+       [r1979]
+               - Move OCPF python bindings to pyopenchange directory
+               - Install ocpf module within openchange/
+       [r1978]
+               - Check property type for SPropValue
+               - Add auto-generated pyopenchange/pymapi_properties.c to the ignore list
+       [r1977]
+               - Add preliminary OCPF python bindings
+               - Add a new pyopenchange python bindings directory:
+                 - Preliminary handling of SPropValue data structure
+               - Add some python bindings test files
+               - Add a mparse parser to generate python bindings declaration for mapi
+                 properties
+               - Build automatically python bindings ** We need to add Python as a
+                 required dependency **
+    bradh
+       [r1976]
+               Implement EmptyFolder and enhance DeleteFolder.
+               
+               This still has quite a way to go, but it does mostly work for folders, including recursion.
+       [r1975]
+               Add extended test code for folder creation / deletion.
+       [r1974]
+               Add libmapiserver support for EmptyFolder size calculations.
+
+2010-06-19
+    bradh
+       [r1972]
+               Trivial typo fix.
+       [r1971]
+               Fix comment.
+
+2010-06-17
+    jkerihuel
+       [r1969]
+               New test.
+       [r1968]
+               Second test commit.
+       [r1967]
+               Test commit
+
+2010-06-16
+    jkerihuel
+       [r1964]
+               Fix OOM used in sample_appointment.ocpf
+       [r1963]
+               Consolidate PSETID array and rely on libmapi definitions.
+
+2010-06-14
+    jkerihuel
+       [r1958]
+               Add server-side skeleton for WriteStream Rop.
+       [r1957]
+               Add server-side skeleton for SetSearchCriteria and GetSearchCritera
+               Rop.
+               
+               Improve GetSearchCriteria IDL and work around the null restriction
+               response size in GetSearchCriteria reply by tweaking generated code
+               into nopull,nopush,noprint
+               
+               Add generated mapistore ldif file to the ignore list
+       [r1955]
+               - Add preliminary implementation for named properties support in
+                 mapistore. The API is yet very preliminary (init + get mapped
+                 property ID), but is enough to return consistent data to Outlook and
+                 make its behavior more reliable.
+               
+               - mparse.pl now generates a LDIF file for the mapistore namedprops LDB
+                 database which maps named properties within namespaces and store
+                 default values for common/standard named properties Outlook is
+                 using.
+               
+               - add a custom ldb_connect wrapper in mapistore to allow mapistore to
+                 open multiple instances of the same mapi named properties ldb
+                 database.
+               
+               - Complete preliminary implementation of GetIDsFromNames in oxcprpt.c.
+2010-06-13
+    jkerihuel
+       [r1944]
+               - Fix some named properties
+               - Add a referenced propID value once it is mapped.
+               Will be used by mapistore to populate/generate the initial
+               nameid props database
+       [r1938]
+               Fix a bug with unmapped named properties lookup.
+               For convenience purposes GetProps accepts within input SPropTagArray
+               unmapped named properties we internally turn into mapped ones using
+               GetIDsFroNames. This behavior was incorrect cause we were looking for
+               properties within specific ranges. Replace this behavior with a global
+               lookup over named properties we know about.
+               
+               One limitation of this fix is that custom nameid properties (not referenced
+               within libmapi/conf/mapi-named-properties) won't be lookup. However it is
+               acceptable for the moment.
+    bradh
+       [r1943]
+               Fix signed / unsigned issue in openchangebackup utility.
+       [r1942]
+               Fix some signed/unsigned issues in libmapi.
+       [r1941]
+               Fix up signed / unsigned issues with libocpf.
+               
+               This changes the API to allow easy testing of failure vs results.
+       [r1940]
+               make sure that the 0 is interpreted as unsigned.
+       [r1939]
+               Fix a signed / unsigned comparison warning in libmapi.
+       [r1937]
+               Fix some signed / unsigned warnings in torture suite.
+       [r1936]
+               Avoid signed / unsigned comparison in libmapiadmin.
+       [r1935]
+               Avoid signed / unsigned comparison in openchangedb.
+       [r1934]
+               Avoid signed / unsigned comparisions in mapitest
+       [r1933]
+               Avoid signed / unsigned comparisons in FSOCPF backend.
+       [r1932]
+               Fill in initialisers.
+               
+               Avoids warning with gcc's -Wmissing-field-initializers option.
+    jelmer
+       [r1947]
+               Fix imports, clean up.
+       [r1946]
+               Raise exception on invalid arguments to openchange_mapistore_url.
+2010-06-12
+    jkerihuel
+       [r1931]
+               Fix duplicate
+    bradh
+       [r1930]
+               Use calculated len inside the loop, instead of calling strlen each time.
+2010-06-11
+    jkerihuel
+       [r1929]
+               Add new properties and PSETID
+2010-06-10
+    bradh
+       [r1928]
+               Change variable name to avoid shadowed variable name warning with ICC.
+       [r1927]
+               Add newline at end of file to avoid compiler warning with ICC.
+2010-06-09
+    bradh
+       [r1922]
+               Ensure server modules work when building with coverage enabled.
+    jelmer
+       [r1925]
+               Consistently use spaces rather than tabs.
+       [r1924]
+               Remove string exception.
+       [r1923]
+               Remove duplication of openchange name in namespace.
+2010-06-08
+    jkerihuel
+       [r1921]
+               We didn't set a valid error_code for FindRow skeleton.
+       [r1920]
+               - Add server-side skeleton for ReadStream ROP.
+               - Add preliminary sanity checks on server-side FindRow
+2010-06-07
+    jkerihuel
+       [r1919]
+               Activate correct handling of retval in CreateFolder, despite Outlook
+               2007 bad behavior. Currently working on fixing this.
+       [r1918]
+               My small Outlook 2007 'Search missing ROP implementation' shouldn't
+               have been pushed ;-)
+       [r1917]
+               Add server-side skeleton for DeleteProperties Rop.
+       [r1916]
+               Implement server-size skeleton for GetPerUserGuid Rop.
+       [r1915]
+               Add server-side skeleton for GetPerUserLongTermIds Rop.
+       [r1914]
+               Add a preliminary stream object implementation
+               Add stream to emsmdbp convenient functions
+               
+               Create a handle in OpenStream
+       [r1913]
+               Add skeleton server side implementation for OpenStream
+       [r1912]
+               Forgot to redo changes here.
+       [r1911]
+               - Undo the SetMessageReadFlag IDL change and add an explanation, so we
+               don't make the same error twice and have pointers when we want to fix
+               it.
+               - Improve OpenMessage IDL and add the Reserved uint16_t bit.  
+               - Replace sizeof() with known types to prevent from IDL mismatch types
+               getting used.
+       [r1910]
+               For single process implementation, this code was fine.
+               For multi-process/contexts, when we need to cache information
+               to limit disk access, we should be using the ocpf element as
+               a memory context.
+               
+               This patch makes it possible.
+       [r1909]
+               Fix SetMessageReadFlag IDL.
+       [r1908]
+               Add server side skeleton for SetMessageReadFlag Rop.
+       [r1907]
+               the previous "or"ed value used in LogonType union was non handled
+               properly by pidl. Replace them with static values instead. This
+               prevent Outlook rom reconnecting in different situations.
+       [r1906]
+               This was causing the ndr push error. Outlook now receive OpenMessage
+               replies.
+2010-06-06
+    jkerihuel
+       [r1905]
+               With current implementation messages loaded and added to the mapistore
+               fsocpf private list were never released/unloaded/free'd.
+               
+               Similar behavior would have occured in the future with folders.  Add a
+               mapistore release_record function which will free/delete
+               information/data associated to a given folder/message.
+       [r1904]
+               - Add a preliminary OpenMessage reply implementation
+               - Add a function to resolve recipients against AD
+               - Add implementation of GetProps for mapistore messages
+               - Add mapistore getprops semantic
+               - Add fsocpf getprops implementation
+               
+               Note: current implementation does not free message object and memory
+               allocation needs to be revised.
+               
+               Note 2: openchangeclient --fetchmail works with this version :-)
+       [r1903]
+               Fix OpenMessage response size calculation. Subcontext size is already
+               calculated when we add the RecipientRow.length size to the global size.
+       [r1902]
+               - Make ocpf_recipClass public
+               - Turn path to headers to local in the lexer
+    bradh
+       [r1901]
+               Avoid leaking file descriptors on error.
+       [r1900]
+               Check return type for vasprintf in libocpf.
+2010-06-05
+    jkerihuel
+       [r1899]
+               Change mapistore openmessage semantics to fetch/retrieve recipients
+               and properties from mapistore. Modify OpenMessage ROP to dump
+               mapistore_message structure contents retrieved from mapistore.
+       [r1898]
+               Add a function to retrieve recipients from a parsed OCPF message.
+       [r1897]
+               This is a wip commit, so there is a lot of DEBUG across the code. This
+               will go away in further commits when the implementation is complete.
+               
+               - Add indexing API to mapistore. This API adds an indexing.tdb file
+                 within user's mapistore private space and associate MID and FID to
+                 their full mapistore path. Current implementation expects folder and
+                 mid are repsented under their hexadecimal representation and using
+                 the 0.16PRIx64 format string. It is not robust, but should do the
+                 trick for the moment. Among features available:
+                       - create/open the indexing database
+                       - search of existing indexing context
+                       - ref count assessors
+                       - add/delete fid/mid records
+                       - retrieve the list of folders pointing to an element (parsing
+                         of the mapistore URI)
+               
+               - Calls to the API have been added to the emsmdb provider
+                 implementation for initialization and automatic attempt to add
+                 entries whenever we open a folder.
+               
+               - Add preliminary code (relying on indexing API) for OpenMessage when
+                 parent handle is the store object. The entire set of cases for
+                 mailbox have been included.
+               
+               - Add mapistore code for op_openmessage operation.
+               - Add message list to the fsocpf context
+               - Add preliminary fsocpf backend code to open a message and store it
+                 within ocpf_context.
+    bradh
+       [r1896]
+               Refactored some of the FSOCPF backend.
+               
+               Basically some Extract Method refactoring to improve code re-use.
+       [r1895]
+               Use PRIx64 macro to avoid compiler warning.
+
+2010-06-03
+    jkerihuel
+       [r1893]
+               Add a new OCPF error OCPF_E_EXIST returned if a context already exist.
+               Prevent ocpf_new_context from adding a context to the list if it
+               already existed
+       [r1892]
+               Clean up debug code introduced while working on new libocpf version
+       [r1891]
+               - Make libocpf reentrant and use contexts/ref_count: No more globals
+                 are used in libocpf, they are all specific to contexts. libOCPF is
+                 now multi-process/thread friendly.
+               
+               - Remove Makefile bison compiling option with a bison %option in
+                 ocpf.y
+               
+               - Propagate libocpf changes to openchange server and utils
+               
+               - Fix a bug in file/folder listing when we have both folders and
+                 files.
+
+2010-06-01
+    jkerihuel
+       [r1889]
+               Untested code:
+               - add libmapiserver calculation for OpenMessage + related OXCDATA structures
+               - add skeleton implementation for server-side OpenMessage ROP
+               - add preliminary emsmdbp_object_message implementation/initialization
+       [r1888]
+               - Flush ocpf output when an error occurs
+               - Fix retrieval of message list in fsocpf backend
+       [r1887]
+               Add QueryRows implementation for mapistore in fsocpf backend.
+       [r1886]
+               - Add implementation for mapistore GetContentsTable
+               - Fix error reply for GetHierarchyTable
+       [r1885]
+               Fix how PT_DOUBLE data is passed among libmapi layers.
+       [r1884]
+               Fix an issue introduced in r1858. PT_DOUBLE patch is valid
+               for EMSMDB, not for NSPI. Rollback change for SPropValue
+       [r1883]
+               Add IPM.Note as a default receive folder for Inbox. This is used by
+               Outlook 2003 in the Send/Receive process.
+       [r1882]
+               Add server-side skeleton for GetAttachmentTable operation.
+       [r1881]
+               Implement SetSpooler server-side function. The function looks like a
+               skeleton ... and is one until we figure out what should be the
+               associated server-side mechanism when clients tells OpenChange server
+               they want to act as a mail spooler.
+       [r1880]
+               The LogonType cases were not handled properly
+       [r1879]
+               Replace existing method to retrieve emsabp_ctx in NSPI server code
+               with mpm session management API and comparison to actual dce_call structure.
+               
+               Replace MAPI_E_LOGON_FAILED rather than MAPI_E_NOT_ENOUGH_RESOURCES in emsmdb server
+               code when session is not found.
+2010-05-31
+    jkerihuel
+       [r1878]
+               Fix commit typo
+       [r1877]
+               We were adding context the list but were never removing them while the
+               context_id was added to the free list. This was causing
+               inconsistencies in mapistore context management + invalid
+               record/pointers to remain and cause OpenChange server to crash.
+               
+               Also add commented code to CreateFolder ROP that will need to be
+               enabled when we understand related Outlook behavior.
+       [r1875]
+               Patch from Bharath Acharya <abharath@gnome.org>:
+               
+               Print calendar items created at half hours
+       [r1874]
+               Minor warning fix - unused variable, not initialized
+       [r1873]
+               Fix a bug with invalid session leading to OpenChange server crash.
+               
+               We are now retrieving the emsmdbp_context pointer from our session
+               management API, after a comparison check vs dcesrv_call_state rather
+               than blindling and directly from dce_call.
+    bradh
+       [r1876]
+               Add better error path handling for the OXCFOLD-CREATE mapitest module.
+2010-05-30
+    jkerihuel
+       [r1872]
+               Extend mapistore API to have a mapistore URI associated to the backend
+               context. We want to limit creation of new contexts to the strict
+               minimum.
+               
+               Propagate this change to emsmdbp_object_folder_init. Only create a new
+               context if the uri intended to be opened is not already associated to
+               an existing context.
+       [r1870]
+               Handle additional LogonFlags cases for mailbox store in Logon_repl
+       [r1869]
+               Fix empty EcDoRpc replies. Outlook 2007 is now happy and stops from
+               disconnecting untimely.
+       [r1868]
+               Add server-side skeleton implementation for GetPermissionsTable
+       [r1867]
+               Pass parent mapi_handles to emsmdbp_object_folder_init rather than
+               specific parameters.
+               
+               Improve emsmdbp_object_folder_init to handle all the different folder
+               creation cases (root folder, mapistore or not, within mapistore or
+               openchangedb etc.) OpenChange server now passes mapistest folder
+               creation test properly.
+               
+               Fix a bug with context_id and mapistore. We were passing the parent
+               context, then deleting it at some point, causing the parent object to
+               be invalid. Now makes use of a reference counter we manage to keep
+               consistency.
+               
+               Add a convenient function to emsmdbp_object API to retrieve the
+               contextID associated to an object.
+               
+               It looks like we still have some issues when running both Outlook 2007
+               and Outlook 2003 at the same time with OpenChange server. There may be
+               some additional session checks to perform in the future.
+       [r1866]
+               Fix a bug in session management API:
+               
+               The mpm_session API uses id, id2, node and context_id from the dcerpc
+               session to uniquely identify a session context. 
+               
+               However when Outlook calls EcDoConnect multiple times, it still uses
+               the same dcerpc session. With previous API we were freeing the session
+               while it was still in used - which lead in unstable and unpredictable
+               crashes.
+               
+               The following patch adds a ref_count to the mpm_session API and server
+               code has been changed for emsmdb and nspi server to increment the
+               ref_count when the session already exists or create a new session if
+               none is already stored.
+               
+               Also the mpm_session code checks for the ref_count value and ensures
+               it is 0 before calling the destructor.
+       [r1865]
+               Call emsmdbp_object_folder_init in any case when creating a
+               folder. The emsmdbp_object function now do required checks and
+               initialize the folder's object properly.
+    bradh
+       [r1871]
+               trivial comment cleanup.
+       [r1864]
+               Minor cleanups for RopCreateFolder in the server.
+               
+               Prefix the mapistore_uri folder name in the path with "0x"
+               
+               Use ulFolderType (the folder) instead of ulType (ansi vs unicode) when
+               deciding which folder type to create.
+       [r1863]
+               Trivial comment fixes.
+2010-05-29
+    jkerihuel
+       [r1862]
+               Complete the opendir implementation for mapistore folders. Outlook
+               doesn't crash anymore when attempting to open mapistore folders.
+       [r1861]
+               was using the wrong function emsmdbp_is_mapistore instead of
+               mailboxstore.
+       [r1860]
+               Commit Brad Hards's implementation for Public Folders support.
+               Personal changes wrt initial patch:
+               
+               - remove mapistore_uri from openchangedb PF record at
+                 provisioning. Only new created folders should be mapistored.
+               - Add a mailboxstore boolean to folder and mailbox emsmdbp so we can
+                 select the correct basedn for searches.
+               - Fix GetProps to provide an accurate answer to Outlook when fetching
+                 public folder's store specific properties.
+               - Use get_PublicFolderId rather than SpecialFolderId when we open a
+                 public folder store.
+
+2010-05-28
+    jkerihuel
+       [r1858]
+               Patch from Milan Crha <mcrha@readhat.com>:
+               
+               Fix PT_DOUBLE support in openchange
+       [r1857]
+               Fix unicode ocpf format in ocpf_write
+       [r1856]
+               - Fix PT_I8 support in libocpf: PT_I8 support was incorrectly
+               processed as PT_DOUBLE and prevented properties with 0x0014 proptag
+               (e.g. PR_PARENT_FID) to be added properly to ocpf files.
+               
+               - Add PR_PARENT_FID to the set of properties when creating folders
+       [r1855]
+               Fix mkdir prototype in sqlite3 backend
+
+2010-05-27
+    jkerihuel
+       [r1853]
+               Outlook uses GetProps with the PidTagSubFolders property to check if a
+               folder has subfolders. Add this property at provisioning (set to
+               FALSE), then set it to true on system/specialfolders if folder
+               creation in mapistore went OK.
+       [r1852]
+               - Implement mkdir operation at mapistore level
+               
+               - Update PidTagFolderChildCount of parent folder when parent is the
+                 root folder of a mapistore context (folder attributes stored in
+                 openchange.ldb)
+               
+               - Improve RopCreateFolder implementation
+               
+               - Clean-up emsmdb_object_folder_init implementation
+               
+               - Add a convenient function to turn ROPs parameters into MAPI
+                 properties. This prevents from having endless number of parameters.
+               
+               - Commit remaining parts of the provision changes
+       [r1851]
+               This TODO doesn't belong here
+       [r1850]
+               Add a convenient function to retrieve the distinguishedName of a
+               folder given its folder identifier. This function is useful when
+               building dn for openchangedb ldb_add operations.
+       [r1849]
+               Add PidTagComment so it can be used in openchange.ldb when root
+               folders are created with a comment CreateFolder parameter.
+       [r1848]
+               Make it possible to retrieve MailboxRoot folder using
+               olFolderMailboxRoot in GetDefaultFolders.
+       [r1847]
+               Outlook 2007 tries to create a To-Do search folder under user
+               mailbox. Creates the folder at provision time to be kind with it.
+               
+               Set PidTagParentFolderId to 0 for mailbox root
+       [r1846]
+               The wrong index in mapi_repl was causing the crash I've investigated
+               over the past 10 hours.
+               
+               Please always use idx for mapi_response->mapi_repl[] index ;-)
+2010-05-26
+    jkerihuel
+       [r1845]
+               In current architecture, we need to retrieve root mapistore folder properties
+               from openchangedb, then use mapistore for operations such as GetHierarchyTable or
+               GetContentsTable. This was not possible with the current design where we only
+               switch between mapistore: true or false.
+               
+               I have introduced a mapistore_root boolean associated to folder object which we
+               set to true if the folder initializes a mapistore context (otherwise false).
+               
+               This boolean is used in GetProps so we retrieve mapistore container properties
+               from openchangedb and not mapistore.
+    bradh
+       [r1844]
+               Add size calculations for public folder RopLogon
+               response.
+2010-05-25
+    jkerihuel
+       [r1843]
+               We'll change CreateFolder to generic code later.
+               For the moment change from sqlite to fsopcf backend for system folders
+       [r1842]
+               Fix handling of flagged property row in GetProps (Mailbox case).
+       [r1841]
+               Missing break added, now makes Outlook 2003 launhes properly.
+       [r1840]
+               Ensure PidTagAttr is valid and prevent ldb layer from segfaulting
+       [r1839]
+               Send a flagged PropertyRow when GetProps is called with mapistore
+               Add a nasty hack and call this fake MAPI_E_NOT_FOUND property value for
+               GetProps if the object doesn't exist.
+               
+               In openchangeclient we are calling get_container_class using the parent object
+               (Mailbox root folder) and the FID of the 2-level down folder. This causes
+               openchange server to crash. The hack exposed above will help temporary workaround
+               this problem while we figure out/remember the real problem: Why do we have
+               to call the parent to retrieve the container class?
+       [r1838]
+               Remove last references to systemfolder in libmapiproxy API 
+       [r1837]
+               release objects properly in the mailbox recursive function
+       [r1836]
+               After we release ocpf_context, strings are destroyed.
+               Prevent from happening by stealing the overall context and
+               talloc_strdup strings.
+               
+               We'll need to find a better/encapsulated way to do this on long term.
+       [r1835]
+               Add a small hack to handle StandardPropertyRow properly
+               StandardPropertyRow have no errors and have a prefixing flag set to 0
+       [r1834]
+               Get ride of the previous way to detect 
+               systemfolder/mailbox/mapistore folders.
+               
+               This was barely understandable and error prone. 
+               
+               It is now replaced by a mapistore boolean set for every object
+               + a convenient emsmdbp_object function to check mapistore value
+               for given handle quickly.
+2010-05-24
+    jkerihuel
+       [r1833]
+               Add mapistore implementation for QueryRows ROPs relying on
+               GetHierarchyTable objects (folders properties listing).
+               
+               Add fsocpf backend implementation to fetch folders properties from a
+               .properties OCPF file stored within the folder (identified by its
+               PR_FID).
+               
+               Customized emsmdbp table object to have:
+               - a context_id and whether the table is within mapistore or not.
+               - to know if the table comes from GetHierarchyTabke or
+                 GetContentsTable
+               
+               Add a path element to the folder_list structure in fsocpf backend to
+               quickly use the full path and open the .properties file.
+               
+               Note: current code is for developers only. It is known to have bugs
+               (e.g. memory allocation), furthermore there is some manual
+               openchangedb and filesystem operation to perform in order to have the
+               commit intended results.
+       [r1832]
+               Add a convenient function for openchange server that lets build the
+               SPropValue array with known properties.
+       [r1830]
+               Replace the hardcoded fsocpf_ctx->fid with a basic code searching for last elements
+               in mapistore_uri path.
+       [r1829]
+               Fix typo in PidTag name
+       [r1828]
+               Add PidTagFolderChildCount
+       [r1827]
+               Add libocpf as a dependency to mapistore_fsocpf backend
+       [r1826]
+               Add a ulType to emsmdbp table object.
+               We need to make the difference between folders table (hierarchy) and messages ones (contents).
+       [r1825]
+               This is a large work in progress commit:
+               
+               - Do not add mapistore_uri for Mailbox and IPM Subtree. These are only
+                 openchange.ldb containers.
+               
+               - Fix a memory issue with emsmdbp object destruction: use a different
+                 context for folder object. This was preventing from having a valid
+                 DIR * when releasing the object at mapistore layer.
+               
+               - Add preliminary implementation for OpenFolder (GenericFolder) in
+                 emsmdbp server code and mapistore. It can't yet be tested properly
+                 with openchangeclient --mailbox because we need to extend QueryRows
+                 implementation first. This will be achieved in further commits
+               
+                 We are now using mapistore_uri attribute value (valid or NULL) to
+                 detect whether it is a systemfolder (blank container) or if we need
+                 to initialize a mapistore backend context.
+               
+               - Add mapistore implementation of GetHierarchyTable and backend
+                 implementation for fsocpf. Since we don't have a working
+                 Createfolder/mkdir implementation yet, you need to add
+                 PidTagFolderChildCount = 1 to the folder record in openchange.ldb +
+                 manually create the directory on the filesytem.
+       [r1824]
+               Missing mapi_object_release call added
+2010-05-23
+    jkerihuel
+       [r1823]
+               - Add libmapi as a dependency to libmapistore. We need libmapi to
+                 benefit from operations on MAPI properties.
+               
+               - Add a MAPISTORE_RETVAL_IF macro and a MAPISTORE_SANITY_CHECKS one
+                 for common checks.
+               
+               - Refactor the search of the backend context given its context id in a
+                 function and propagate the change to related functions.
+               
+               - Add skeletons for opendir, closedir, mkdir and rmdir. Prototypes of
+                 these function may change in the future.
+       [r1822]
+               Implement create_context and delete_context for fsocpf backend. Patch
+               initially from Brad Hards.
+               
+               Add a double linked list with fid/DIR couples for folders operations
+               to be developed.
+       [r1821]
+               Fix a bug in NSPI server which was preventing NspiGetMatches
+               from retrieving the correct DN from the in-memory tdb database.
+               
+               Should fix the profile creation error users were experiencing.
+                
+       [r1819]
+               Add a reference to the libocpf documentation for ospf backend
+    bradh
+       [r1820]
+               Add forgotten part of r1818.
+       [r1818]
+               Support provisioning mailboxes with either fsocpf or sqlite backends.
+               
+               fsocpf is the default at this stage.
+               
+               OK'd by Julien.
+2010-05-22
+    jkerihuel
+       [r1817]
+               Fix paths to related pages
+       [r1816]
+               Patch from Brad, fix doc typo, grammar - makes it sound more English.
+2010-05-21
+    jkerihuel
+       [r1815]
+               Add API documentation for init, backend connection contexts
+               Add programming samples
+       [r1814]
+               Install libmapistore pc file
+       [r1813]
+               0.2 version of mapistore documentation. 
+               Merge some of the initial mapistore wiki page content.
+               Add a section on FSOCPF backend
+    bradh
+       [r1812]
+               Various API documentation fixes. All trivial.
+       [r1811]
+               Fix some hard-coded formatting in mapitest common code.
+       [r1810]
+               Add a simple create / delete folder test to mapitest.
+               
+               I've been using this to test the basic operations.
+       [r1809]
+               Enable DeleteFolder rop, now we have a partial implementation.
+       [r1808]
+               Implement RopDeleteFolder, and handle the case where a folder already exists in RopCreateFolder
+               
+               This still only works for a top level folder.
+       [r1807]
+               Add convenience API to obtain the FID for a given folder (by name).
+               
+               This is useful to tell if a folder exists, which we need to do before
+               we create it.
+               
+               Also fixes a nuisance warning about printf specifiers. 
+       [r1806]
+               Extend CreateFolder size calculations to handle some of the optional elements
+               
+               We still don't properly handle the variable length server element.
+2010-05-20
+    jkerihuel
+       [r1805]
+               Add general overview of what mapistore is and 
+               how it can be used from a user perspective
+       [r1804]
+               Fix doxygen warnings
+       [r1803]
+               Refactor mapiproxy documentation into a global mapiproxy / openchange server doc.
+               - Add a mapistore documentation skeleton
+               - Add related pictures
+2010-05-19
+    jkerihuel
+       [r1801]
+               Add folder atomic operation to mapistore and skeleton to backends:
+               mkdir,rmdir,opendir,closedir,readdir
+    bradh
+       [r1802]
+               API documentation typo fix.
+
+2010-05-18
+    jkerihuel
+       [r1799]
+               - Push Brad's CreateFolder implementation after turning hardcoded fields to generic one.
+               
+               Note: current implementation is incorrect as it states that any folder is referenced
+               within openchange.ldb while only system/top folders are. We have a mapistore URI for
+               system/top folders, not for subfolders which are stored directly within specified
+               mapistore backend.
+               
+               However the implementation is almost correct when it comes to create folders directly
+               under / in the user mailbox.
+       [r1798]
+               - Add a 'fsocpf' mapistore backend skeleton (FileSystem + OCPF)
+               - Fix some doxygen in mapistore sqlite3 backend
+               - Add an op_mkdir skeleton to mapistore
+               - Add fsocpf:// namespace test to mapistore_test
+               - Compile fsocpf only if libocpf gets compiled
+                
+       [r1797]
+               Add defs_private.h so we can use PRIx64 where appropriate
+       [r1796]
+               It makes more sense to directly return the next available and formated FID rather
+               than the GlobalCount raw value.
+       [r1795]
+               Add exchange username to emsmdbp_ctx structure for convenient purposes
+       [r1794]
+               After openchange_ldb is opened, map attributes of the @ROOTDSE record
+               with ldb_set_opaque so ldb_get_default_basedn and ldb_get_root_basedn work.
 2010-05-17
     jkerihuel
+       [r1793]
+               Implement a convenient function to retrieve the GlobalCount value from
+               the objectClass=server record in openchangedb - which is the next FID
+               to be available.
+               
+               Note: the function currently lacks locking mechanisms. We should
+               introduce some to prevent from race conditions.
+               
+               This code was originally designed by Brad. I've just refactored it.
+       [r1792]
+               Add a rootDSE entry to openchangedb.
+               This change makes possible to call:
+                    - ldb_get_root_basedn() to retrieve CN=server,DC=domain,DC=ext
+                    - ldb_get_default_basedn() to retrieve CN=firstou,CN=firstorg,CN=server,DC=comain,DC=ext
        [r1790]
                Add server-side skeleton for ROPs:
                    - ModifyRecipients