4 Add CopyProfile and DuplicateProfile to IProfAdmin interface
9 Add the localaddress patch prior Samba4 integration. Pending new
10 Samba4 localaddress patch fixing memory leaks in the pipe.
12 Include a mapitest test suite / challenge for lzxpress
14 The idea of this test is to check if lzxpress compressed blobs
15 provided by OpenChange are the same than Outlook ones. The test takes
16 a Outlook->Exchange capture file with compressed blob, pull the
17 content, decompressed the content, recompress the content and check
18 the output for differing bytes.
20 This challenge code should give us good information when lzxpress
21 compress code is fixed. Additionally you can uncomment the compression
22 code in libmapi/emsmdb.c to do further testing.
24 - Add implementation for EcDoRpcExt2 (0xB) RPC opnum. Current code
25 doesn't provide compression for request and use obfuscation
26 instead. However mapi_response makes use of xpress and are
27 decompressed properly.
29 - EcDoRpcExt2 implemented without subcontexts but uint8_t array
31 - add a wrapper for emsmdb transaction to switch between
32 EcDoConnect/EcDoRpc and EcDoConnectEx/EcDoRpcExt2 depending on MAPI
33 profile 'exchange version' attribute.
35 NOTE: emsmdb.c implements the logic for using compressed blob and
36 checks whether compressed or obfuscation should be used depending on
37 blob length. However this behavior has been commented out because
38 comrpessed blobs are rejected by Exchange (ecRpcFormat 0x4B6 error).
42 Reference profile structure in mapitest structure.
44 Use profile->mailbox instead of szDisplayName for sending mapitest
45 emails. This also fix ResolveNames mapitest issues when conflicts
46 between usernames exist (e.g. user1, user11, user100).
49 Prevent segfault if we don't have any appointments.
53 Also prevent leaking talloc context in a couple of error cases.
55 Merge Rev 2133 from branches/current-samba4 to trunk.
57 I inadvertently committed this to the wrong branch.
59 This pushes the fix for #229 into trunk.
69 Add a git update case in installsamba.sh script and make it available
70 within OpenChange Makefile.
75 Manually commit remaining changes from current-samba4 into trunk
77 Merge current-samba4 branch back into trunk
82 Microsoft confirmed that RopGetValidAttachments isn't supported in Exchange 2010.
84 fix missing part of r2113.
86 Fixes to better work with Exchange 2010.
88 Still some open issues to resolving bug 227.
90 Fix handling of "not applicable" tests when using --mapi-calls
92 Prior to this, if you asked for a test that was after a test that was
93 flagged as suppressed, the test you asked for didn't get run, and the
94 flagged test was reported instead.
98 Correctly handle cases where the start date of the range is after the first calendar appointment.
102 Thanks to Eric Reischer for reporting the problem and testing the fix.
107 trivial comment cleanup.
112 Move from auto-generated mapicode.h to static code.
114 Add configure.ac support for gthread implementation but give preferences to pthread
115 Add THREAD_CFLAGS to config.mk.in
116 ifdef between pthread and gthread in libmapi_private.h
118 Check for libpthread in configure.ac and make this lib optional
119 Add references to config.h in libmapi_private.h
120 Replace references to config.h with libmapi_private.h
125 - Add an exchange-version parameter to mapiprofile structure and tool
126 which let user choose between 0x0/0x2 or 0xA/0xB
127 - Tweak libmapi implementation to allow EcDoConnectEx usage
128 - Improve mapiprofile --dump to show more useful parameters
130 - Add custom NDR implementation for EcDoConnectEx to bypass pointers/array problems
131 - make use of mapi2k7_AuxInfo structure for rgbAuxOut
133 - Create a subcontext for AUX_HEADER structures to jump over unknown cases properly.
135 Handle the no obfuscation nor compression RPC_HEADER_EXT flags case
138 Trivial api documentation change.
143 Another trivial API documentation fix.
145 More trivial API documentation fixes.
147 Minor API documentation fix.
149 Implement some null pointer checks.
151 Also rewords some API documentation.
153 Original issue and patch by Erik Hovland - thanks again. I implemented it
154 with some slight changes.
159 Fix RecipientRow IDL to match MS-OXCDATA 2.9.3
161 This allows handling of addresses that contain X400 format content.
163 Patch by Samuel Sieb and I, resolves ticket #250.
168 Fix a crash in openchangeclient vs Exchange 2010:
169 When Queryrows is called on Exchange 2010 and no rows are available, QueryRows returns MAPI_E_NOT_IMPLEMENTED error (0x8004FFFF).
170 Ensure we have at least one message to fetch in openchangeclient --fetchmail prior calling QueryRows.
175 Very basic use of OpenUserMailbox in openchangeclient.
176 Doesn't handle clustered Exchange servers.
179 Rename a few function arguments to avoid doxygen warnings.
181 This is a workaround, but will allow easier checking for the future.
183 Update doxygen configuration to match latest version
185 Add missing doxygen parameter information.
187 Fix a couple of doxygen issues.
192 Use sed in Makefile to replace local headers reference in installed headers
194 Use local headers rather than installed ones
195 Propagate this behavior to torture test suites and bindings
197 Remove libmapi/defs_private.h
198 Remove references to libmapi/defs_private.h in OpenChange tree
200 Remove auto-generated headers for libmapi:
201 - Add libmapi_private.h for private definitions
202 - Use libmapi.h for public definitions
204 - Merge libmapi_private.h and defs_private.h
206 Use local headers rather than installed ones
208 Change libmapi compilation list to have ndr_exchange_c.h
209 available for other libmapi C files.
211 Remove references to libmapi/proto_private.h in OpenChange tree
212 Remove references to libmapi/defs_private.h in OpenChange tree
217 Modify the samba build script to make it more flexible.
219 Heavily based on changes provided by Andrew Tridgell. Thanks!
224 Use local includes rather than installed ones for openchange tools/utils
226 Use local includes rather than installed ones for mparse.pl
228 Use local includes rather than installed ones for mapiproxy and server components
230 Use local includes rather than installed ones
232 Use local includes rather than installed ones for libexchange2ical
233 Sanitize function declarations
235 Remove proto and proto_private.h from ignore list
237 Remove auto-generated headers for libmapiadmin
238 Use local includes rather than installed ones for libmapiadmin
240 Remove proto and proto_private.h from ignore list
242 Remove auto-generated headers for libocpf
243 Use local includes rather than installed ones for libocpf
245 Fix bug #248 misnamed PR_RECIPIENTS_FLAGS
247 Add IDL implementation for WritePerUserInformation.
249 Note: This IDL suffers from the same problems than SetMessageReadFlags. It depends on logon_id and Logon flags.
254 Add server-side preliminary ReloadCachedInformation implementation.
255 The Rop only support a specific case and it is expected to work better after
256 integration of the OCPF contexts for message transaction.
258 Missing header for stat()
263 Implement RopSetReceiveFolder
265 There is a part of this missing (relating to modification times) that will be implemented
266 as part of the RopGetReceiveFolderTable implementation.
268 This updates the mapitest code, including a change to the function signature for the
269 mapitest_print_retval_step() function to take an explicit MAPISTATUS value instead of
270 relying on GetLastError().
275 Enhance the GetReceiveFolder ROP.
277 This now tries all available MessageClass entries.
279 Enhance GetReceiveFolder mapitest.
284 Make sure objects are correctly init()'d and release()'d even in fault condition.
286 Make sure objects are correctly init()'d and release()'d even in failure case.
288 Make sure all objects are initialised, even in failure cases.
290 Trivial comment change.
292 Add a few more null pointer protections into fsocpf backend.
294 Trying to get mapitest running...
299 Add mapitest unit test for DeleteMessages with multiple messages.
301 Implement DeleteMessages ROP.
303 Adds message deletion support to mapistore core and fsocpf backend.
305 I've been testing this with OXCMSG-SAVE-CHANGES-MESSAGE from mapitest.
307 Make it a bit easier to use alternative GIT tree.
309 Ensure we return the correct MID from SaveChangesMessage
314 Fix a segfault when releasing handles. We kept
315 processing the handles list after releasing the element.
318 Add some simple tests for openchangeclient.
320 Unbreak compilation problems from previous commit.
322 Ensure we don't duplicate folder names.
324 This adds appropriate checks for both system (openchangedb) and normal (mapistore)
325 folders. The mapitest code also checks that the OPEN_IF_EXISTS flag works.
327 I had to add an additional mapitest_print_retval() variation, since successful operations
333 add support for PT_CLSID and PT_SVREID in cast_mapi_SPropValue
335 Add a memory context argument to cast_mapi_SPropValue to be less
336 dependent to libmapi and allow better memory allocation handling.
338 Propagate API change among OpenChange source tree
340 Add doxygen documentation for cast_mapi_SPropValue
343 Make sure we always set the opnum and handle, even for error cases.
345 Suppress compilation noise in a few places for consistency with the rest of the Makefile
349 Add ocpf_write support for PT_MV_STRING8, PT_MV_UNICODE, PR_MV_BINARY
352 - Add documentation for PT_MV_LONG
353 - Update PT_BINARY section
355 - Fix PT_BINARY to now parse uint8_t 0x00 - 0xFF instead of previous
356 (and incorrect) long items
358 - Add implementation for PT_MV_LONG
359 - Clean up useless code
361 Add mapidump_SPropValue for PT_MV_LONG
363 Add support for PT_MV_UNICODE type
365 Add mapidump_SPropValue for PT_MV_UNICODE
367 Add support for PT_MV_BINARY type
369 This implementation required to add a Binary_r within ocpf_context to
370 union SPropValue_CTR content consistent among recursive parsing.
372 Add PT_MV_BINARY support in cast_SPropValue
374 Add mapidump_SPropValue entry for PT_MV_BINARY
376 Do not search context if context_id is NULL
378 - Add a function to synchronize data on filesystem after a write
379 commit (close/fopen) and change open and context flags depending on
380 their previous value.
382 - If PR_MESSAGE_CLASS or PR_MESSAGE_CLASS_UNICODE is used for
383 set_SPropValue, update context type.
388 Fix warnings generating by the incorrect .tp_new first argument type
390 - Implement server-side skeleton for ReadPerUserInformation (0x63)
392 - Use external TALLOC context for cast_SPropValue rather than
393 global_mapi_ctx->mem_ctx. This was preventing from using this function
394 properly in a context different from libmapi based application
397 - Add cast_SPropValue support for PT_CLSID and PT_MV_LONG
399 - add message path + id in the indexing database for mapistore case in
402 Add default owner/full rights to new root folders created. Works with
403 Outlook 2003 (shift + delete for hard delete)
405 Add PT_SRVEID support in SPropValue (0xFB proptype)
407 Add owner / full-access rights for mailbox folders. It introduces less
408 stabilitity but offers wider range of available features.
410 Generate PidTagRights for PR_RIGHTS (used in openchangedb)
414 - Complete fsocpf_get_path implementation
415 - Register message into indexing.tdb after SubmitMessage
417 Add ocpf_server_set_type python bindings.
419 Ohhh looks like we have reached r2000 ;-)
426 <~- - , ,[].'.[] ~> ___
431 -----{. _ _ .}-------------------
433 - Add SetProps server side implementation for mapistore messages
435 - Add a preliminary set of properties within CreateMessage (not
436 complete yet) as stated in MS-OXCMSG 3.2.5.2
438 - Add SaveChangeMessages preliminary server side implementation
439 - Add SubmitMessage preliminary server side implementation
441 - add mapistore and fsocpf backend implementation for
442 SaveChangeMessages and SubmitMessage. Note: SubmitMesage is just a
445 - Add a wrapper to set OCPF file TYPE
446 - Free/Allocate type on purpose
448 storing a mapistore_message within the message object is useless for
449 the moment. Clean-up this bit introduced with last commit.
451 - Add preliminary OCPF API for server purposes (used by
454 - ocpf_server API now allows caller to dynamically update
455 properties. If the properties was already existing, updates its
458 - Update ocpf_test.py to reflect this behavior
460 - Add preliminary server side implementation for CreateMessage (server
461 + mapistore + fsocpf backedn)
463 - Add preliminary mapistore + fsocpf backend skeleton for SetProps
467 Typo fix in constant name.
471 - Only prevent file opened in read-only to use write_commit
472 - Position the stream at the beginning of the file before writing
474 Defer ocpf file creation (fopen with w+) to ocpf_write_commit
476 Add rmdir support to mapistore python bindings
478 - Add mapistore python C/API support for:
479 - add_context_indexing
480 - add_context_ref_count
484 - errstr MAPISTORE error to string conversion
486 - Update mapistore python test script to demonstrate
487 how to create a new folder using mapistore
489 I may be wrong here, but that was the only way I could pass
490 a folderID from python's layer to mapistore C/API
492 If context is manually deleted using public API, we need to remove the destructor
493 we set during context init, otherwise talloc_free segfault occurs
495 talloc_strdup SPropValue strings
497 Add preliminary python bindings for mapistore
501 Add FILETIME support for SPropValue
503 Add TypeCheck on SPropValue rather than blind cast
505 Add python binding for ocpf_write
506 Add quick test code to ensure it works as expected
508 - Use SPropValue python object in ocpf module
509 - Add a function binding to retrieve SPropValue array from OCPF file
510 - Modify sample to test this behavior
512 - Move OCPF python bindings to pyopenchange directory
513 - Install ocpf module within openchange/
515 - Check property type for SPropValue
516 - Add auto-generated pyopenchange/pymapi_properties.c to the ignore list
518 - Add preliminary OCPF python bindings
519 - Add a new pyopenchange python bindings directory:
520 - Preliminary handling of SPropValue data structure
521 - Add some python bindings test files
522 - Add a mparse parser to generate python bindings declaration for mapi
524 - Build automatically python bindings ** We need to add Python as a
525 required dependency **
528 Implement EmptyFolder and enhance DeleteFolder.
530 This still has quite a way to go, but it does mostly work for folders, including recursion.
532 Add extended test code for folder creation / deletion.
534 Add libmapiserver support for EmptyFolder size calculations.
555 Fix OOM used in sample_appointment.ocpf
557 Consolidate PSETID array and rely on libmapi definitions.
562 Add server-side skeleton for WriteStream Rop.
564 Add server-side skeleton for SetSearchCriteria and GetSearchCritera
567 Improve GetSearchCriteria IDL and work around the null restriction
568 response size in GetSearchCriteria reply by tweaking generated code
569 into nopull,nopush,noprint
571 Add generated mapistore ldif file to the ignore list
573 - Add preliminary implementation for named properties support in
574 mapistore. The API is yet very preliminary (init + get mapped
575 property ID), but is enough to return consistent data to Outlook and
576 make its behavior more reliable.
578 - mparse.pl now generates a LDIF file for the mapistore namedprops LDB
579 database which maps named properties within namespaces and store
580 default values for common/standard named properties Outlook is
583 - add a custom ldb_connect wrapper in mapistore to allow mapistore to
584 open multiple instances of the same mapi named properties ldb
587 - Complete preliminary implementation of GetIDsFromNames in oxcprpt.c.
591 - Fix some named properties
592 - Add a referenced propID value once it is mapped.
593 Will be used by mapistore to populate/generate the initial
594 nameid props database
596 Fix a bug with unmapped named properties lookup.
597 For convenience purposes GetProps accepts within input SPropTagArray
598 unmapped named properties we internally turn into mapped ones using
599 GetIDsFroNames. This behavior was incorrect cause we were looking for
600 properties within specific ranges. Replace this behavior with a global
601 lookup over named properties we know about.
603 One limitation of this fix is that custom nameid properties (not referenced
604 within libmapi/conf/mapi-named-properties) won't be lookup. However it is
605 acceptable for the moment.
608 Fix signed / unsigned issue in openchangebackup utility.
610 Fix some signed/unsigned issues in libmapi.
612 Fix up signed / unsigned issues with libocpf.
614 This changes the API to allow easy testing of failure vs results.
616 make sure that the 0 is interpreted as unsigned.
618 Fix a signed / unsigned comparison warning in libmapi.
620 Fix some signed / unsigned warnings in torture suite.
622 Avoid signed / unsigned comparison in libmapiadmin.
624 Avoid signed / unsigned comparison in openchangedb.
626 Avoid signed / unsigned comparisions in mapitest
628 Avoid signed / unsigned comparisons in FSOCPF backend.
630 Fill in initialisers.
632 Avoids warning with gcc's -Wmissing-field-initializers option.
635 Fix imports, clean up.
637 Raise exception on invalid arguments to openchange_mapistore_url.
644 Use calculated len inside the loop, instead of calling strlen each time.
648 Add new properties and PSETID
652 Change variable name to avoid shadowed variable name warning with ICC.
654 Add newline at end of file to avoid compiler warning with ICC.
658 Ensure server modules work when building with coverage enabled.
661 Consistently use spaces rather than tabs.
663 Remove string exception.
665 Remove duplication of openchange name in namespace.
669 We didn't set a valid error_code for FindRow skeleton.
671 - Add server-side skeleton for ReadStream ROP.
672 - Add preliminary sanity checks on server-side FindRow
676 Activate correct handling of retval in CreateFolder, despite Outlook
677 2007 bad behavior. Currently working on fixing this.
679 My small Outlook 2007 'Search missing ROP implementation' shouldn't
682 Add server-side skeleton for DeleteProperties Rop.
684 Implement server-size skeleton for GetPerUserGuid Rop.
686 Add server-side skeleton for GetPerUserLongTermIds Rop.
688 Add a preliminary stream object implementation
689 Add stream to emsmdbp convenient functions
691 Create a handle in OpenStream
693 Add skeleton server side implementation for OpenStream
695 Forgot to redo changes here.
697 - Undo the SetMessageReadFlag IDL change and add an explanation, so we
698 don't make the same error twice and have pointers when we want to fix
700 - Improve OpenMessage IDL and add the Reserved uint16_t bit.
701 - Replace sizeof() with known types to prevent from IDL mismatch types
704 For single process implementation, this code was fine.
705 For multi-process/contexts, when we need to cache information
706 to limit disk access, we should be using the ocpf element as
709 This patch makes it possible.
711 Fix SetMessageReadFlag IDL.
713 Add server side skeleton for SetMessageReadFlag Rop.
715 the previous "or"ed value used in LogonType union was non handled
716 properly by pidl. Replace them with static values instead. This
717 prevent Outlook rom reconnecting in different situations.
719 This was causing the ndr push error. Outlook now receive OpenMessage
724 With current implementation messages loaded and added to the mapistore
725 fsocpf private list were never released/unloaded/free'd.
727 Similar behavior would have occured in the future with folders. Add a
728 mapistore release_record function which will free/delete
729 information/data associated to a given folder/message.
731 - Add a preliminary OpenMessage reply implementation
732 - Add a function to resolve recipients against AD
733 - Add implementation of GetProps for mapistore messages
734 - Add mapistore getprops semantic
735 - Add fsocpf getprops implementation
737 Note: current implementation does not free message object and memory
738 allocation needs to be revised.
740 Note 2: openchangeclient --fetchmail works with this version :-)
742 Fix OpenMessage response size calculation. Subcontext size is already
743 calculated when we add the RecipientRow.length size to the global size.
745 - Make ocpf_recipClass public
746 - Turn path to headers to local in the lexer
749 Avoid leaking file descriptors on error.
751 Check return type for vasprintf in libocpf.
755 Change mapistore openmessage semantics to fetch/retrieve recipients
756 and properties from mapistore. Modify OpenMessage ROP to dump
757 mapistore_message structure contents retrieved from mapistore.
759 Add a function to retrieve recipients from a parsed OCPF message.
761 This is a wip commit, so there is a lot of DEBUG across the code. This
762 will go away in further commits when the implementation is complete.
764 - Add indexing API to mapistore. This API adds an indexing.tdb file
765 within user's mapistore private space and associate MID and FID to
766 their full mapistore path. Current implementation expects folder and
767 mid are repsented under their hexadecimal representation and using
768 the 0.16PRIx64 format string. It is not robust, but should do the
769 trick for the moment. Among features available:
770 - create/open the indexing database
771 - search of existing indexing context
772 - ref count assessors
773 - add/delete fid/mid records
774 - retrieve the list of folders pointing to an element (parsing
775 of the mapistore URI)
777 - Calls to the API have been added to the emsmdb provider
778 implementation for initialization and automatic attempt to add
779 entries whenever we open a folder.
781 - Add preliminary code (relying on indexing API) for OpenMessage when
782 parent handle is the store object. The entire set of cases for
783 mailbox have been included.
785 - Add mapistore code for op_openmessage operation.
786 - Add message list to the fsocpf context
787 - Add preliminary fsocpf backend code to open a message and store it
791 Refactored some of the FSOCPF backend.
793 Basically some Extract Method refactoring to improve code re-use.
795 Use PRIx64 macro to avoid compiler warning.
800 Add a new OCPF error OCPF_E_EXIST returned if a context already exist.
801 Prevent ocpf_new_context from adding a context to the list if it
804 Clean up debug code introduced while working on new libocpf version
806 - Make libocpf reentrant and use contexts/ref_count: No more globals
807 are used in libocpf, they are all specific to contexts. libOCPF is
808 now multi-process/thread friendly.
810 - Remove Makefile bison compiling option with a bison %option in
813 - Propagate libocpf changes to openchange server and utils
815 - Fix a bug in file/folder listing when we have both folders and
822 - add libmapiserver calculation for OpenMessage + related OXCDATA structures
823 - add skeleton implementation for server-side OpenMessage ROP
824 - add preliminary emsmdbp_object_message implementation/initialization
826 - Flush ocpf output when an error occurs
827 - Fix retrieval of message list in fsocpf backend
829 Add QueryRows implementation for mapistore in fsocpf backend.
831 - Add implementation for mapistore GetContentsTable
832 - Fix error reply for GetHierarchyTable
834 Fix how PT_DOUBLE data is passed among libmapi layers.
836 Fix an issue introduced in r1858. PT_DOUBLE patch is valid
837 for EMSMDB, not for NSPI. Rollback change for SPropValue
839 Add IPM.Note as a default receive folder for Inbox. This is used by
840 Outlook 2003 in the Send/Receive process.
842 Add server-side skeleton for GetAttachmentTable operation.
844 Implement SetSpooler server-side function. The function looks like a
845 skeleton ... and is one until we figure out what should be the
846 associated server-side mechanism when clients tells OpenChange server
847 they want to act as a mail spooler.
849 The LogonType cases were not handled properly
851 Replace existing method to retrieve emsabp_ctx in NSPI server code
852 with mpm session management API and comparison to actual dce_call structure.
854 Replace MAPI_E_LOGON_FAILED rather than MAPI_E_NOT_ENOUGH_RESOURCES in emsmdb server
855 code when session is not found.
861 We were adding context the list but were never removing them while the
862 context_id was added to the free list. This was causing
863 inconsistencies in mapistore context management + invalid
864 record/pointers to remain and cause OpenChange server to crash.
866 Also add commented code to CreateFolder ROP that will need to be
867 enabled when we understand related Outlook behavior.
869 Patch from Bharath Acharya <abharath@gnome.org>:
871 Print calendar items created at half hours
873 Minor warning fix - unused variable, not initialized
875 Fix a bug with invalid session leading to OpenChange server crash.
877 We are now retrieving the emsmdbp_context pointer from our session
878 management API, after a comparison check vs dcesrv_call_state rather
879 than blindling and directly from dce_call.
882 Add better error path handling for the OXCFOLD-CREATE mapitest module.
886 Extend mapistore API to have a mapistore URI associated to the backend
887 context. We want to limit creation of new contexts to the strict
890 Propagate this change to emsmdbp_object_folder_init. Only create a new
891 context if the uri intended to be opened is not already associated to
894 Handle additional LogonFlags cases for mailbox store in Logon_repl
896 Fix empty EcDoRpc replies. Outlook 2007 is now happy and stops from
897 disconnecting untimely.
899 Add server-side skeleton implementation for GetPermissionsTable
901 Pass parent mapi_handles to emsmdbp_object_folder_init rather than
904 Improve emsmdbp_object_folder_init to handle all the different folder
905 creation cases (root folder, mapistore or not, within mapistore or
906 openchangedb etc.) OpenChange server now passes mapistest folder
907 creation test properly.
909 Fix a bug with context_id and mapistore. We were passing the parent
910 context, then deleting it at some point, causing the parent object to
911 be invalid. Now makes use of a reference counter we manage to keep
914 Add a convenient function to emsmdbp_object API to retrieve the
915 contextID associated to an object.
917 It looks like we still have some issues when running both Outlook 2007
918 and Outlook 2003 at the same time with OpenChange server. There may be
919 some additional session checks to perform in the future.
921 Fix a bug in session management API:
923 The mpm_session API uses id, id2, node and context_id from the dcerpc
924 session to uniquely identify a session context.
926 However when Outlook calls EcDoConnect multiple times, it still uses
927 the same dcerpc session. With previous API we were freeing the session
928 while it was still in used - which lead in unstable and unpredictable
931 The following patch adds a ref_count to the mpm_session API and server
932 code has been changed for emsmdb and nspi server to increment the
933 ref_count when the session already exists or create a new session if
934 none is already stored.
936 Also the mpm_session code checks for the ref_count value and ensures
937 it is 0 before calling the destructor.
939 Call emsmdbp_object_folder_init in any case when creating a
940 folder. The emsmdbp_object function now do required checks and
941 initialize the folder's object properly.
944 trivial comment cleanup.
946 Minor cleanups for RopCreateFolder in the server.
948 Prefix the mapistore_uri folder name in the path with "0x"
950 Use ulFolderType (the folder) instead of ulType (ansi vs unicode) when
951 deciding which folder type to create.
953 Trivial comment fixes.
957 Complete the opendir implementation for mapistore folders. Outlook
958 doesn't crash anymore when attempting to open mapistore folders.
960 was using the wrong function emsmdbp_is_mapistore instead of
963 Commit Brad Hards's implementation for Public Folders support.
964 Personal changes wrt initial patch:
966 - remove mapistore_uri from openchangedb PF record at
967 provisioning. Only new created folders should be mapistored.
968 - Add a mailboxstore boolean to folder and mailbox emsmdbp so we can
969 select the correct basedn for searches.
970 - Fix GetProps to provide an accurate answer to Outlook when fetching
971 public folder's store specific properties.
972 - Use get_PublicFolderId rather than SpecialFolderId when we open a
978 Patch from Milan Crha <mcrha@readhat.com>:
980 Fix PT_DOUBLE support in openchange
982 Fix unicode ocpf format in ocpf_write
984 - Fix PT_I8 support in libocpf: PT_I8 support was incorrectly
985 processed as PT_DOUBLE and prevented properties with 0x0014 proptag
986 (e.g. PR_PARENT_FID) to be added properly to ocpf files.
988 - Add PR_PARENT_FID to the set of properties when creating folders
990 Fix mkdir prototype in sqlite3 backend
995 Outlook uses GetProps with the PidTagSubFolders property to check if a
996 folder has subfolders. Add this property at provisioning (set to
997 FALSE), then set it to true on system/specialfolders if folder
998 creation in mapistore went OK.
1000 - Implement mkdir operation at mapistore level
1002 - Update PidTagFolderChildCount of parent folder when parent is the
1003 root folder of a mapistore context (folder attributes stored in
1006 - Improve RopCreateFolder implementation
1008 - Clean-up emsmdb_object_folder_init implementation
1010 - Add a convenient function to turn ROPs parameters into MAPI
1011 properties. This prevents from having endless number of parameters.
1013 - Commit remaining parts of the provision changes
1015 This TODO doesn't belong here
1017 Add a convenient function to retrieve the distinguishedName of a
1018 folder given its folder identifier. This function is useful when
1019 building dn for openchangedb ldb_add operations.
1021 Add PidTagComment so it can be used in openchange.ldb when root
1022 folders are created with a comment CreateFolder parameter.
1024 Make it possible to retrieve MailboxRoot folder using
1025 olFolderMailboxRoot in GetDefaultFolders.
1027 Outlook 2007 tries to create a To-Do search folder under user
1028 mailbox. Creates the folder at provision time to be kind with it.
1030 Set PidTagParentFolderId to 0 for mailbox root
1032 The wrong index in mapi_repl was causing the crash I've investigated
1033 over the past 10 hours.
1035 Please always use idx for mapi_response->mapi_repl[] index ;-)
1039 In current architecture, we need to retrieve root mapistore folder properties
1040 from openchangedb, then use mapistore for operations such as GetHierarchyTable or
1041 GetContentsTable. This was not possible with the current design where we only
1042 switch between mapistore: true or false.
1044 I have introduced a mapistore_root boolean associated to folder object which we
1045 set to true if the folder initializes a mapistore context (otherwise false).
1047 This boolean is used in GetProps so we retrieve mapistore container properties
1048 from openchangedb and not mapistore.
1051 Add size calculations for public folder RopLogon
1056 We'll change CreateFolder to generic code later.
1057 For the moment change from sqlite to fsopcf backend for system folders
1059 Fix handling of flagged property row in GetProps (Mailbox case).
1061 Missing break added, now makes Outlook 2003 launhes properly.
1063 Ensure PidTagAttr is valid and prevent ldb layer from segfaulting
1065 Send a flagged PropertyRow when GetProps is called with mapistore
1066 Add a nasty hack and call this fake MAPI_E_NOT_FOUND property value for
1067 GetProps if the object doesn't exist.
1069 In openchangeclient we are calling get_container_class using the parent object
1070 (Mailbox root folder) and the FID of the 2-level down folder. This causes
1071 openchange server to crash. The hack exposed above will help temporary workaround
1072 this problem while we figure out/remember the real problem: Why do we have
1073 to call the parent to retrieve the container class?
1075 Remove last references to systemfolder in libmapiproxy API
1077 release objects properly in the mailbox recursive function
1079 After we release ocpf_context, strings are destroyed.
1080 Prevent from happening by stealing the overall context and
1081 talloc_strdup strings.
1083 We'll need to find a better/encapsulated way to do this on long term.
1085 Add a small hack to handle StandardPropertyRow properly
1086 StandardPropertyRow have no errors and have a prefixing flag set to 0
1088 Get ride of the previous way to detect
1089 systemfolder/mailbox/mapistore folders.
1091 This was barely understandable and error prone.
1093 It is now replaced by a mapistore boolean set for every object
1094 + a convenient emsmdbp_object function to check mapistore value
1095 for given handle quickly.
1099 Add mapistore implementation for QueryRows ROPs relying on
1100 GetHierarchyTable objects (folders properties listing).
1102 Add fsocpf backend implementation to fetch folders properties from a
1103 .properties OCPF file stored within the folder (identified by its
1106 Customized emsmdbp table object to have:
1107 - a context_id and whether the table is within mapistore or not.
1108 - to know if the table comes from GetHierarchyTabke or
1111 Add a path element to the folder_list structure in fsocpf backend to
1112 quickly use the full path and open the .properties file.
1114 Note: current code is for developers only. It is known to have bugs
1115 (e.g. memory allocation), furthermore there is some manual
1116 openchangedb and filesystem operation to perform in order to have the
1117 commit intended results.
1119 Add a convenient function for openchange server that lets build the
1120 SPropValue array with known properties.
1122 Replace the hardcoded fsocpf_ctx->fid with a basic code searching for last elements
1123 in mapistore_uri path.
1125 Fix typo in PidTag name
1127 Add PidTagFolderChildCount
1129 Add libocpf as a dependency to mapistore_fsocpf backend
1131 Add a ulType to emsmdbp table object.
1132 We need to make the difference between folders table (hierarchy) and messages ones (contents).
1134 This is a large work in progress commit:
1136 - Do not add mapistore_uri for Mailbox and IPM Subtree. These are only
1137 openchange.ldb containers.
1139 - Fix a memory issue with emsmdbp object destruction: use a different
1140 context for folder object. This was preventing from having a valid
1141 DIR * when releasing the object at mapistore layer.
1143 - Add preliminary implementation for OpenFolder (GenericFolder) in
1144 emsmdbp server code and mapistore. It can't yet be tested properly
1145 with openchangeclient --mailbox because we need to extend QueryRows
1146 implementation first. This will be achieved in further commits
1148 We are now using mapistore_uri attribute value (valid or NULL) to
1149 detect whether it is a systemfolder (blank container) or if we need
1150 to initialize a mapistore backend context.
1152 - Add mapistore implementation of GetHierarchyTable and backend
1153 implementation for fsocpf. Since we don't have a working
1154 Createfolder/mkdir implementation yet, you need to add
1155 PidTagFolderChildCount = 1 to the folder record in openchange.ldb +
1156 manually create the directory on the filesytem.
1158 Missing mapi_object_release call added
1162 - Add libmapi as a dependency to libmapistore. We need libmapi to
1163 benefit from operations on MAPI properties.
1165 - Add a MAPISTORE_RETVAL_IF macro and a MAPISTORE_SANITY_CHECKS one
1168 - Refactor the search of the backend context given its context id in a
1169 function and propagate the change to related functions.
1171 - Add skeletons for opendir, closedir, mkdir and rmdir. Prototypes of
1172 these function may change in the future.
1174 Implement create_context and delete_context for fsocpf backend. Patch
1175 initially from Brad Hards.
1177 Add a double linked list with fid/DIR couples for folders operations
1180 Fix a bug in NSPI server which was preventing NspiGetMatches
1181 from retrieving the correct DN from the in-memory tdb database.
1183 Should fix the profile creation error users were experiencing.
1186 Add a reference to the libocpf documentation for ospf backend
1189 Add forgotten part of r1818.
1191 Support provisioning mailboxes with either fsocpf or sqlite backends.
1193 fsocpf is the default at this stage.
1199 Fix paths to related pages
1201 Patch from Brad, fix doc typo, grammar - makes it sound more English.
1205 Add API documentation for init, backend connection contexts
1206 Add programming samples
1208 Install libmapistore pc file
1210 0.2 version of mapistore documentation.
1211 Merge some of the initial mapistore wiki page content.
1212 Add a section on FSOCPF backend
1215 Various API documentation fixes. All trivial.
1217 Fix some hard-coded formatting in mapitest common code.
1219 Add a simple create / delete folder test to mapitest.
1221 I've been using this to test the basic operations.
1223 Enable DeleteFolder rop, now we have a partial implementation.
1225 Implement RopDeleteFolder, and handle the case where a folder already exists in RopCreateFolder
1227 This still only works for a top level folder.
1229 Add convenience API to obtain the FID for a given folder (by name).
1231 This is useful to tell if a folder exists, which we need to do before
1234 Also fixes a nuisance warning about printf specifiers.
1236 Extend CreateFolder size calculations to handle some of the optional elements
1238 We still don't properly handle the variable length server element.
1242 Add general overview of what mapistore is and
1243 how it can be used from a user perspective
1245 Fix doxygen warnings
1247 Refactor mapiproxy documentation into a global mapiproxy / openchange server doc.
1248 - Add a mapistore documentation skeleton
1249 - Add related pictures
1253 Add folder atomic operation to mapistore and skeleton to backends:
1254 mkdir,rmdir,opendir,closedir,readdir
1257 API documentation typo fix.
1262 - Push Brad's CreateFolder implementation after turning hardcoded fields to generic one.
1264 Note: current implementation is incorrect as it states that any folder is referenced
1265 within openchange.ldb while only system/top folders are. We have a mapistore URI for
1266 system/top folders, not for subfolders which are stored directly within specified
1269 However the implementation is almost correct when it comes to create folders directly
1270 under / in the user mailbox.
1272 - Add a 'fsocpf' mapistore backend skeleton (FileSystem + OCPF)
1273 - Fix some doxygen in mapistore sqlite3 backend
1274 - Add an op_mkdir skeleton to mapistore
1275 - Add fsocpf:// namespace test to mapistore_test
1276 - Compile fsocpf only if libocpf gets compiled
1279 Add defs_private.h so we can use PRIx64 where appropriate
1281 It makes more sense to directly return the next available and formated FID rather
1282 than the GlobalCount raw value.
1284 Add exchange username to emsmdbp_ctx structure for convenient purposes
1286 After openchange_ldb is opened, map attributes of the @ROOTDSE record
1287 with ldb_set_opaque so ldb_get_default_basedn and ldb_get_root_basedn work.
1291 Implement a convenient function to retrieve the GlobalCount value from
1292 the objectClass=server record in openchangedb - which is the next FID
1295 Note: the function currently lacks locking mechanisms. We should
1296 introduce some to prevent from race conditions.
1298 This code was originally designed by Brad. I've just refactored it.
1300 Add a rootDSE entry to openchangedb.
1301 This change makes possible to call:
1302 - ldb_get_root_basedn() to retrieve CN=server,DC=domain,DC=ext
1303 - ldb_get_default_basedn() to retrieve CN=firstou,CN=firstorg,CN=server,DC=comain,DC=ext
1305 Add server-side skeleton for ROPs:
1309 - GetTransportFolder
1311 NOTE: GetTransportFolder is using hardcoded data that will be removed
1314 Add libmapiserver size calculation for ROPs:
1316 - RopModifyRecipients
1318 - RopGetTransportFolder
1322 Fix provisioning script and push a master-git samba4 version known to compile
1323 and work properly with openchange.
1325 There is probably a small typo left in installsamba.sh post_install script to fix
1328 Update docs for new samba version.
1330 Looks like we now have real complexity requirements for passwords...
1334 Fix the container class for the Drafts folder.
1336 This is per MS-OXCSFLD
1338 Add PT_I8 for cast_SPropValue().
1342 Fix openchange vs latest samba4 git-master branch
1344 - Fix OpenChange schema: Had to split our 1-file schema into multiple
1345 files in order to be compliant with Samba4 LDB schema validation
1348 - Fix openchange provision script
1349 - Fix calls to smb_iconv_convenience_init
1350 - Fix the copied libmapi/socket code to work with latest samba4 code
1351 - Fix openchange server SIGSEGV when EcDoConnectEx is called
1353 I have tested the following to ensure nothing is broken:
1354 - mapitest with Exchange 2003. All tests are OK
1355 - openchangepfadmin (user creation/deletion OK)
1356 - openchange server provisioning
1357 - openchange server vs Outlook 2003:
1358 - profile creation OK
1359 - Outlook can open the user mailbox and display it properly
1363 Skeleton server code for DeleteFolder ROP
1365 Just add more skeleton code to select between available folder types
1367 Server side skeleton for CreateFolder operation
1372 Implement some more properties for cast_mapi_SPropValue().
1374 Patch mostly by Milan Crha, some changes by me.
1376 Use retval instead of GetLastError() in a couple of places.
1378 Add missing failure path handling.
1380 Avoid assigning a boolean result to an enum MAPISTATUS.
1382 Fixes problem noted with mapitest on OXCFOLD-MOVECOPY-MESSAGES.
1387 Add comment about the number for each ROP in the server.
1392 Make sure we can load a server module when it is built with coverage testing enabled.
1397 Fix some mapitest issues reported by valgrind.
1399 These only occur when running against the openchange server - mostly problems with failure paths.
1401 Fix up a few segfaults found when running against openchange server.
1406 Add support for EcDoRpc GetAddressTypes (0x49) and OptionsData (0x6f) to server.
1408 This is completely driven by the server provisioning - no hard coding.
1410 This makes a binary incompatible change, so if you get crashes, please try a
1416 Add PT_DOUBLE support for set_SPropValue().
1421 Add support for PT_ERROR in mapi_SPropValue casting function.
1423 Add support for a couple more types in the casting code.
1425 Also adds a development-version "OPENCHANGE_ASSERT()" that flags incomplete code.
1430 Add a convenient function to retrieve the total
1431 number of records in the Global Address List.
1433 Modify openchangeclient to expose this change in
1434 the --userlist option.
1439 Fix OpenChange notification subsystem to handle multiple session properly
1440 Patch OpenChange trunk to reflect this API change
1442 Add quick and dirty doc/examples/multiple_notif.c to show how to setup
1443 multiple sessions + notifications with threads.
1445 Add PidTag for transport message headers
1450 One more server API documentation fix.
1452 More server side api documentation work.
1457 Mix of api documentation fixes for server side.
1459 Add MAPI_E_NOT_IMPLEMENTED.
1461 This is based on information at
1462 http://social.msdn.microsoft.com/Forums/en-US/os_exchangeprotocols/thread/d3c860a8-f131-4c7a-aa11-b9ec328d06c4
1467 Implement RopOptionsData (0x6F).
1469 Updates IDL, adds implementation and mapitest coverage.
1471 This has no practical use, but might be useful for testing the server.
1476 Add talloc leak checking options to mapitest.
1481 Update man page for mapiprofile to reflect new --language option format.
1486 Add special handling for PS_MAPI property name mapping.
1488 This fixes a long-standing mapitest failure.
1490 The logic is based on MS-OXCPRPT, section 2.2.12.2.2 PropertyIds.
1492 Minor API documentation fix.
1497 Build fix for example code
1502 Fix format string problem #184 ticket
1505 Add status reporter classes to allow redirecting the progress
1508 Update man page to reflect mapitest --subunit option.
1510 Implement basic subunit output protocol format for mapitest.
1512 There are a couple of documentation bits to follow.
1517 Trivial API dox addition.
1522 Update the IDL and implementation for RopGetPermissionsTable (0x3e)
1523 and RopModifyPermissions (0x40) to match MS-OXCPERM.
1525 The function signature for GetTable() and ModifyTable() has changed.
1526 They are now called GetPermissionsTable() and ModifyPermissions()
1527 respectively, and there is an additional "flags" argument, which you
1528 almost certainly want to pass as 0x00 if you are porting from some
1529 older implementation.
1531 Updates all users, and adds mapitest unit tests.
1536 Add country codes to codepage-lcid description file
1539 Remove copied code from samba (ldb) and just use the ldb
1542 Resolves ticket #167
1544 Allow building if popt isn't available.
1547 - remove unnecessary include in libmapiadmin
1548 - only build mapistore test tool if popt is available
1549 - only build torture tests if popt is available.
1551 The last change could be finer (e.g. only leaving out the
1552 part of the torture test that actually requires popt) but
1553 that seemed more fragile and generally unnecessary.
1555 Resolves ticket #233.
1563 Ensure we always initialise before trying to cleanup (e.g. in a failure scenario).
1565 Issue identified and patch provided by Erik Hovland, minor changes by me.
1567 Resolves ticket #236.
1569 prop is declared within the switch statement.
1571 Fix by Erik Hovland - thanks very much.
1573 Resolves ticket #239.
1575 Use strncpy instead of strcpy.
1577 Patch by Erik Hovland, plus a minor change by me to ensure the string is null terminated.
1579 Resolves ticket #237.
1581 Add missing break statements
1583 Patch by Erik Hovland <erik@hovland.org>
1585 Resolves ticket #238.
1587 Mark appropriate constructors as explicit.
1589 Patch by Erik Hovland - thanks very much.
1591 Resolves ticket #240.
1595 Patch from Erik Hovland - thanks again.
1597 Resolves ticket #242.
1599 Fix spelling errors.
1601 Patch by Erik Hovland - thanks very much.
1603 Resolves ticket #241.
1605 Make sure we actually can compile when using --enable-openchange-qt4
1607 This patch ensures that $(MOC) gets set in the Makefile.
1612 Add canonical names for codepage related properties (involved in
1613 PT_STRING8 encoding/decoding)
1618 - Add parser for codepage-lcid
1620 - Add entire set of conversion functions for lcid, codepage, language
1623 - mapiprofile now uses codepage/lcid matching LC_CTYPE environment
1624 variable for language detection, otherwise codepage/lcid matching
1625 language list. Language list is now dumped from codepage-lcid
1628 - Remove deprecated util and tests directory from libmapi and from
1629 build system. We now only rely on codepage_lcid.c
1631 - Update openchange code (utils, mapiprofile, mapitest and
1632 exchange2ical libs) to use this new API.
1634 - I have not looked into icalparameter_get_language, but assuming it
1635 is relying on previous API, I may have introduced a bug here. Looks
1636 like the function outputs for example "en-US" while we now checks
1637 for "en_US" to match setlocale output.
1640 Minor API documentation adds.
1642 Add unit test coverage for the GetGALTable() function.
1644 This is mostly lifted from utils/openchangeclient.c
1646 Switch to only building Qt4 bindings if specifically asked for.
1648 This is a bit experimental for now, so lets go safer...
1653 In this particular case (error returned, mapi_response shouldn't
1656 Fix bug 605827 - SRowSet was free'd while still needed
1661 Template file which associates Language, LCID, Locale and Codepage.
1662 Furthermore commits will implement the mparse parser which will
1663 auto-generate the associated C files. This should give us a reliable
1664 way to use it in mapiprofile, MAPI profiles database and for
1665 PT_STRING8 proper conversion purposes.
1667 If anything is missing or is incorrect, updating the file will
1673 Fix bug where you couldn't select another messages in the default folder without
1674 changing folder first.
1676 Looks like this is just a bit I forgot to update when changing from an initial
1677 cut to the "more working" implementation.
1682 - Fix trac ticket #183: PT_UNICODE properties are now turned to UTF-8
1685 - Remove deprecated utf8_convert lexer and windows_to_utf8 routine
1687 - Change openchange tools to use _UNICODE tag version instead
1689 - octool_get_propval now prefer UNICODE properties over PT_STRING8
1690 ones (default behavior).
1692 - Change mapidump_message API to take an optional mapi_object_t
1693 message parameter. If the message object is specified, we can have
1694 access to the subject, and recipients (to, cc, bcc) without having
1695 to query them within a GetProps call.
1698 Fix an ugly cut-n-paste error.
1700 Add pkg-config support for libmapi++.
1705 Fix ticket #123 (known as 562948 on gnome bugzilla):
1706 "Unable to send mails containing UTF8 strings"
1708 OpenChange was using strlen(str) * 2 + 2 to calculate the
1709 expected size for utf16 string. This patch fixes this and
1710 replaces it with a function that make proper utf8 to utf16
1713 This commit also replaces PT_STRING8 properties in openchangeclient.c
1714 with PT_UNICODE ones to ensure utf8 strings get converted properly.
1719 - Add NormalizedSubject and SubjectPrefix strings to object_message_t
1721 - Add a function to retrieve TypedString value
1722 - Add a mapidump function for obj_message (only retrieve subject and
1724 - Add --fetchsummary option to openchangeclient: Dumps properties from
1725 OpenMessage response only (subject and recipients) rather than going
1726 through GetProps and dumping a more complete version.
1729 Move make distclean to the end again.
1734 Remove a copy of the dlinklist.h header, and just use the samba
1740 Install missing file.
1745 Allow us to find samba python code on 64-bit machines.
1750 Update EcDoConnectEx IDL to match latest specifications
1753 Minor additions to "make clean" / "make distclean" to remove
1754 generated python bits, and also the config.h file.
1759 Implement IsMailboxFolder for public folder types.
1761 Involves some refactoring of the way we handled the mapi_object_store_t,
1762 such that we now talloc_zero the structure.
1764 Adds mapitest coverage for these.
1766 Resolves Ticket #134.
1771 Add unit tests for IsMailboxFolder
1773 Also use 0xFFFFFFFFF instead of -1 for no-such-mailbox, consistent with the unsigned data type.
1778 Change location of .cpp.o and .ccp.po to the correct location
1779 and inhibit compilation line output for moc and cpp compilation.
1782 Try harder to clean up libmapi++ bits.
1787 Ignore moc files and generated binary
1789 Update OpenChange version to 0.10 NOMAD
1791 Nomad is a mechanical explorer sent from Earth in 2002.
1792 It was melded with an alien device named Tan Ru and the resulting robotic
1793 hybrid began destroying anything that was imperfect including, in 2267,
1797 Add documentation for qt/ subdirectory.
1799 Try harder to find moc.
1801 Initial commit of some Qt-style bindings.
1803 This is mostly for testing, although hopefully the library will
1804 emerge with a set of mostly-useful widgets for implementing
1810 Quiet the build here.
1812 Inadvertent removal in a previous patch.
1814 Some support for ReviewBoard.
1819 Update OpenMessage flags to match specification values.
1821 Cleanup libmapi++ code when we "make clean".
1823 Add svn ignore entries.
1825 Remove inline from shared library class.
1827 Fixes build on Intel C++ compiler.
1832 libmapi++ is no longer a header-only library
1837 Add first part of Restrictions support.
1839 A little more documentation fixes.
1843 Fix MAPIUninitialize() crash when leaving after an unsuccessful call.
1844 In such situation, mapi_response is not allocated but has a destructor
1845 associated. This fix removes the destructor whenever the error code is
1846 different from MAPI_E_SUCCESS.
1848 Also add a minor (probably useless) check on mapi_response pointer validity
1849 before attempting any other child's free.
1852 A couple of minor API documentation fixes.
1857 Rename libmapi into openchange in our release script.
1858 Makes more sense given the scope of our releases.
1860 Fix format string warnings.
1862 New ModifyRecipients IDL and implementation.
1864 This patch improves the logic within the RecipientFlags bitmask
1865 calculation function and make use of different MAPI properties for
1868 Fix trac ticket #125 and https://bugzilla.gnome.org/show_bug.cgi?id=568763
1871 Minor API documentation fix.
1875 Fix some exchange2ical memory leaks / "still reachable" memory.
1877 Fix property tag array count, so we get the language in Summary
1878 lines in the ical output.
1880 Add protection against null CN values.
1882 Resolves ticket #232.
1884 Thanks to Arnout Engelen for the bug report and the patch to fix the problem.
1886 Handle all day events for UTC+ timezones.
1888 This resolves ticket #217. Thanks to Arnout Engelen for both reporting
1889 the problem, and providing a patch. In the end I heavily modified the
1890 patch, and implemented a much simpler version while we sort out the
1891 timezone identifier problems.
1896 Minor documentation update to reflect GSoC exchange2ical merge.
1898 temporary fix for building on FreeBSD 7.2.
1900 Remove this file - converted it to trac tasks.
1904 Patch from Johnny Jacob <johnnyjacob@gmail.com>:
1906 Changed MonitorNotification to be non-blocking.
1907 Also checks whether to process notifications using a callback.
1909 Open Profile Store using global_mapi_ctx for the memory context. This
1910 fix removes 20 context errors when running valgrind on mapitest.
1912 - Fix important memory leaks in OpenChange NSPI stack. The memory
1913 context modifications applied to the EMSMDB stack have been
1914 propagated to the NSPI one. NSPI dcerpc_* functions now rely on a
1915 temporary context passed in parameter to the nspi_* functions from
1918 - Changes propagated to torture, mapitest, IProfAdmin interface and
1919 ResolveNames function to match the internal API.
1921 - Add missing MAPIFreeBuffer call in mapitest modules
1923 Minor cosmetic change
1925 Minor changes to match our coding convention more closely
1927 Return (const void *) instead of (void *) where missing
1929 - Fix important memory leaks within the OpenChange stack. Most of the
1930 leaks came from the pipe memory context used in emsmdb_transaction
1931 which was only released on MAPIUninitialize and sometimes leaded in
1932 lost blocks. This fix makes extensive usage of the temporary memory
1933 context used in top MAPI calls implementation. This context is
1934 passed in argument to emsmdb_transaction and used for dcerpc_*
1937 When we return from any libmapi call implementation, this context is
1938 destroyed. This guarantee no extra memory within NDR layer is kept.
1940 The only requirement for this patch to work is to make sure the data
1941 we return from MAPI calls is either reparent to another memory
1942 context or copied properly.
1945 Add support for skipping tests that don't apply to some
1948 Change the format of the server version, so it matches the Microsoft
1949 way of doing versions.
1954 Fix store version info assignment - Exchange version now works again
1957 Clarify the developer's task when using GetPropList.
1959 We were allocating the SPropTag proptag array with the session context
1960 pointer, which was not released with a MAPIFreeBuffer(SPropTagArray).
1962 We are now using SPropTagArray pointer as parent context and clarify
1963 that the developer must pass an allocated SPropTagArray pointer to the
1966 Missing mapi_object_release leading in small leaks.
1968 Sanitize RfrGetNewDSA function and memory usage.
1970 The function was returning either a const char * passed in parameter
1971 or the string returned by RfrGetNewDSA call. Furthermore we were using
1972 the session pointer for the memory context. Finally the function description
1973 was not matching its behavior.
1975 What this patch does:
1976 - use a named memory context for RfrGetNewDSA call
1977 - return an allocated string on success otherwise NULL
1978 - release RFR memory context properly
1980 valgrind before patch (mapitest):
1981 ==28876== LEAK SUMMARY:
1982 ==28876== definitely lost: 0 bytes in 0 blocks
1983 ==28876== indirectly lost: 0 bytes in 0 blocks
1984 ==28876== possibly lost: 3,193,529 bytes in 23,296 blocks
1985 ==28876== still reachable: 345 bytes in 2 blocks
1986 ==28876== suppressed: 0 bytes in 0 blocks
1988 ==28876== For counts of detected and suppressed errors, rerun with: -v
1989 ==28876== ERROR SUMMARY: 2351 errors from 2351 contexts (suppressed: 45 from 10)
1991 valgrind after patch (mapitest):
1992 ==29083== LEAK SUMMARY:
1993 ==29083== definitely lost: 0 bytes in 0 blocks
1994 ==29083== indirectly lost: 0 bytes in 0 blocks
1995 ==29083== possibly lost: 3,190,285 bytes in 23,256 blocks
1996 ==29083== still reachable: 345 bytes in 2 blocks
1997 ==29083== suppressed: 0 bytes in 0 blocks
1999 ==29083== For counts of detected and suppressed errors, rerun with: -v
2000 ==29083== ERROR SUMMARY: 2338 errors from 2338 contexts (suppressed: 45 from 10)
2002 This patch fixes most of the leaks coming from pull_emsmdb_property() function.
2003 pull_emsmdb_property is using pointers and allocate memory to prevent from
2004 returning a local variable address. Such pointers include PT_I2, PT_I8, PT_LONG,
2005 PT_ERROR or PT_BOOLEAN. Pointer's values are assigned in set_SPropValue but were
2006 never released/free'd. This patch implements free_emsmdb_property to fix this problem.
2008 valgrind before patch (mapitest):
2009 ==26674== LEAK SUMMARY:
2010 ==26674== definitely lost: 0 bytes in 0 blocks
2011 ==26674== indirectly lost: 0 bytes in 0 blocks
2012 ==26674== possibly lost: 3,264,485 bytes in 23,387 blocks
2013 ==26674== still reachable: 345 bytes in 2 blocks
2014 ==26674== suppressed: 0 bytes in 0 blocks
2016 ==26674== For counts of detected and suppressed errors, rerun with: -v
2017 ==26674== ERROR SUMMARY: 2370 errors from 2370 contexts (suppressed: 45 from 10)
2019 valgrind after patch (mapitest):
2020 ==27270== LEAK SUMMARY:
2021 ==27270== definitely lost: 0 bytes in 0 blocks
2022 ==27270== indirectly lost: 0 bytes in 0 blocks
2023 ==27270== possibly lost: 3,127,733 bytes in 23,293 blocks
2024 ==27270== still reachable: 345 bytes in 2 blocks
2025 ==27270== suppressed: 0 bytes in 0 blocks
2027 ==27270== For counts of detected and suppressed errors, rerun with: -v
2028 ==27270== ERROR SUMMARY: 2348 errors from 2348 contexts (suppressed: 45 from 10)
2031 Minor API documentation fixes.
2036 - Add a macro to mparse.pl to free both mapi_response
2037 and mem_ctx within OpenChange calls implementation.
2038 For the moment it is only implemented in OpenUserMailbox call.
2040 - Fix a memory leak in OpenUserMailbox: When the call failed
2041 (ecUnknownUser or ecUseEnryption) mapi_response was not free'd
2044 Minor indentation fix
2047 Add some missing newlines to reduce compilation noise.
2049 Merge in Ryan Lepinski's Google Summer of Code work on exchange2ical.
2051 See the gsoc_exchange2ical branch history for commits.
2053 I also made a change to address ticket #216, and
2054 fixed a couple of typos.
2059 Minor updates to provisioning instructions.
2061 Thanks to Girish Venkatachalam for some suggestions.
2066 Fix 'unused variable' warning on FreeBSD for exchange2mbox
2069 Add documentation for the --freebusy option.
2076 Fix segfaults in mapitest launched with exchange2010
2078 Fix compilation warnings
2081 Add missing -L directory specifier.
2083 Looks like this was tolerated by gnu ld, but not by opensolaris ld.
2085 Patch by Brian Lu (Sun). Thanks again.
2087 Add documentation for new mapiprofile --encrypt option, introduced in r1602.
2089 Fix a couple of typos that trash CFLAGS during build.
2094 Automatically switch from connect to seal on the emsmdb pipe if
2095 ecNotEncrypted is returned by EcDoConnect.
2097 - Make OpenChange natively working with Exchange 2010
2098 - Factorize binding string construction code within a single function
2099 - the seal flag is mandatory to connect to Exchange 2010
2100 - add seal boolean value to MAPI profile creation and mapi_profile
2102 - add --encrypt option to mapiprofile to set the seal value
2107 Add documentation for set_SPropTagArray().
2109 Thanks to Brian Lu (Sun) for reporting.
2114 This doesn't really fix ticket #149, but this should
2115 at least prevent from triggering segmentation fault when
2116 PR_EMAIL_ADDRESS_UNICODE doesn't have any cn=Recipients,cn= substring
2119 Trivial fix (newline) for warning on FreeBSD compiler.
2121 Add support for manually creating the library symlinks for FreeBSD
2123 This is a somewhat speculative commit.
2125 Also fixes a couple of cosmetic whitespace issues.
2130 Patch from Bryan Lu <brian.lu@sun.com>:
2132 Create symbol link only on Solaris
2134 This closes ticket #221 and makes it possible to compile openchange
2137 Temporary bug fix in emsabp.c - If restrictions are NULL in
2138 emsabp_search, return MAPI_E_INVALID_OBJECT. This prevents from using
2139 invalid res pointer leading in segmentation fault.
2141 Initial fix proposed by Erik Hovland <erik@hovland.org>
2143 Patch from Erik Hovland <erik@hovland.org>:
2145 fid might be null. Check it before dereferencing in the
2146 ocpf_folder_lookup() call. Similar behavior fixed in openchangeclient
2147 folder_lookup() function.
2149 Patch from Erik Hovland <erik@hovland.org>:
2151 NotificationData 'could' be null. Check it before handing it to
2152 notification-callback(). This is important because eventually
2153 NotificationData will be dereferenced in the code path.
2155 Patch from Kamen Mazdrashki <kamen.mazdrashki@postpath.com>:
2157 Fix MAPI Warning error codes
2159 Patch from Kamen Mazdrashki <kamen.mazdrashki@postpath.com>:
2161 bugfix: Bugs in abp_tdb layer fixed.
2163 emsabp_tdb_traverse_MId() returns 'false' (i.e. not found) in most of
2166 Patch from Kamen Mazdrashki <kamen.mazdrashki@postpath.com>:
2168 Implement NspiQueryRows() address list enumeration
2170 We can now run openchangeclient --userlist on OpenChange NSPI server
2171 and Outlook 2003 is able to query GAL.
2173 Note: the initial patch was proposing:
2174 "(&%s(showInAddressBook=*))", purportedSearch
2176 I replaced it with "%s", purportedSearch only since we don't have yet
2177 any showInAddressBook attribute in AD.
2179 Patch from Kamen Mazdrashki <kamen.mazdrashki@postpath.com>:
2181 - Add server side implementation for NspiResolveNamesW
2182 - Refactor and split emsabp_verify_user in two functions
2184 A new function emsabp_get_account_info() implemented to fetch info
2185 about given user name. emsabp_verify_user() uses the above function
2186 check if authenticated account_name is valid mail account and if so,
2187 account_name is cached in emsabp context for future use
2189 Patch from Kamen Mazdrashki <kamen.mazdrashki@postpath.com>:
2191 NspiGetProps() reimplemented to match [MS-NSPI] specification more
2194 As a side-effect, emsabp_fetch_attrs() was altered to return
2195 MAPI_E_INVALID_BOOKMARK in case requested MId is not found. This way
2196 the function returns more meaningful error codes - if requested MId is
2197 not found this surely means InvalidBookmark rather than CorruptStore
2202 Path from Kamen Mazdrashki <kamen.mazdrashki@postpath.com>:
2204 Propagate dwFlags for incoming call to get EntryIDs correctly.
2206 Actually we need to propagate dwFlags so that emsabp_query()
2207 function to be able to determine whether EphemeralEntryID
2208 or PermanentEntryID is requested to be built.
2210 Patch from Kamen Mazdrashki <kamen.mazdrashki@postpath.com>:
2212 Implement PR_SEARCH_KEY attribute getter
2214 Patch from Kamen Mazdrashki <kamen.mazdrashki@postpath.com>
2216 Add PR_ADDRTYPE_UNICODE and PR_EMS_AB_PROXY_ADDRESSES_UNICODE getters.
2218 Patch from Kamen Mazdrashki <kamen.mazdrashki@postpath.com>:
2220 - Extend NspiDNToMId() to search in Configuration and Domain
2223 - NspiDNToMId() has been extended to cache returned data properly,
2224 i.e. DNs from Configuration partition are cached in ttb_ctx db, DNs
2225 from Domain partition are cached in in-memory db ttdb_ctx.
2227 Patch from Kamen Mazdrashki <kamen.mazdrashki@postpath.com>:
2229 emsabp_set_PermanentEntryID() implements MS specification more
2230 closely. For reference: [MS-NSPI] and [MS-OXOABK]
2232 - Replace emsabp_get_server_GUID with samdb_ntds_objectGUID Samba4
2234 - Change the way we initially fetched server GUID
2236 Credits to Kamen Mazdrashki <kamen.mazdrashki@postpath.com> for
2237 initial patch and associated research:
2239 It turns out MS implementation for NSPI reads the guid from: "CN=NTDS
2240 Settings,CN=<NETBIOS_NAME>,CN=Servers,CN=Default-First-Site-Name,CN=Sites,<CONFIG_DN>" entry.
2242 Fix samdb_connect warning.
2243 Add function prototype to nsp,emsmdb header files.
2244 Change samdb_ctx from void * to ldb_context *
2247 Update docs to match those in mapiproxy doxygen docs.
2249 Roll to the latest Samba4 version.
2251 This should have no noticeable difference over the
2252 Samba4 alpha9 release, but its nice to use the latest
2253 version, and it might make a difference on the server
2258 Fix OpenChange server code and access to Samba4 databases.
2259 Starting with samba4-alpha9, there is no more configuration.ldb or users.ldb.
2260 All information can be accessed through a single access to SamDB and configuration records
2261 accessed through ldb_get_config_basedn.
2263 The following implementation has been tested and is working with:
2264 - mapiprofile profile creation
2265 - openchangeclient --mailbox
2266 - Outlook 2003 account creation
2267 - Outlook 2003 mailbox opening
2272 Fix openchange user provisioning scripts
2274 Forgot to commit this LDIF modifications for openchange provisioning
2279 - Fix OpenChange server provisioning (exchange classes and attribute only)
2280 - Remove deprecated provisioning steps
2281 - OpenChange user provisioning is still broken at this point, but will be
2282 fixed in further revisions.
2287 Fix a cast warning at compilation time for libmapi++
2289 - Update openchange libraries to 0.9: close trac ticket #165
2290 - Propagate pkgconfig solution in trac ticket #94 to other libs
2292 - Update openchange code to work with samba4-alpha9 release
2293 - Apply minor fix to ldb_wrap_connect (number of parameters)
2294 - Update mapiproxy code to handle new Samba4 assoc_group implementation properly
2295 - Update samba4 version script to match alpha9 and related git commit
2300 Ensure we get output if sqlite3 isn't found at configure time.
2302 Now outputs "no" instead of a blank.
2307 Fix attribution, per IRC discussion.
2312 Ensure API documentation gets generated for utilities functions.
2314 Some undocumented stuff in here to look at later.
2316 Add additional mapidump functions for notifications
2318 This is a patch from Johnny Jacob (Novell), with unit tests and some extra checks by me.
2320 Maintains good test coverage for this file.
2325 Avoid use-after-free for the number of rows in the SRowSet.
2327 Resolves issue #212, which has the valgrind error.
2332 Add test for get_proptag_value().
2334 Minor cleanups for mapidump functions.
2336 - Add support for dumping property tags using PT_SHORT.
2337 - Modify the tag for PR_whatever_ERROR results to include the _ERROR bit
2338 - Minor format change for PT_BINARY (training colon)
2339 - Ensure PT_SYSTIME respects the seperator value (API change)
2340 - Add a conditional assert() using infrastructure introduced in r1553.
2342 Implement mapitest support for all of libmapi/mapidump.c
2344 Update openchangeclient for the API change.
2346 Introduce a compile time definition that is set for SVN snapshot releases.
2348 The intent is to use this to protect assert() calls that indicate incomplete code.
2353 Improved Sun Studio compiler support.
2355 Patch by Brian Lu (Sun) - thanks again.
2357 Revert inadvertent part from previous commit (r1549)
2359 Add coverage testing support.
2361 ./configure now supports --enable-coverage, which builds with the right options
2362 to support gcov. Also adds a new makefile target ("coverage") that runs the
2363 required post-processing steps.
2365 Also added a test script that does a range of openchange related (client side)
2366 operations. This is useful for generating the test load for coverage checks.
2368 So the basic recipe here is
2369 1. Add the --enable-coverage option at configure time.
2371 3. Install it, or otherwise ensure that coverage-enabled libs are used
2372 4. generate the test load (e.g. run ./script/smoketest.sh)
2374 6. Inspect the results in ./covresults
2379 Add support for the SunStudio compiler.
2381 I previously special-cased the Intel C compiler, and relied on some ugly ordering requirements to
2382 ensure it all worked.
2384 This approach is cleaner, allowing options to be build up separately for each compiler, and for
2385 the C and C++ versions.
2387 Tested on Linux with all three compilers.
2392 Adding missing include.
2396 Patch from Brian Lu (Sun). Thanks very much.
2401 Additional portability fixes for SunOS.
2403 Based on a patch (ticket #220) by Brian Lu (Sun). Thanks very much.
2405 I modified the patch to try to use autoconf where possible.
2407 Resolves ticket #220.
2409 Remove MAP_FILE flag from mmap(). Looks like this is only required on really
2410 old unix systems (e.g. NetBSD prior to 1.0), which we probably won't ever support.
2412 Patch by Brian Lu (Sun) - thanks very much.
2414 Partly resolves ticket #220 - still need to handle the first patch.
2419 Fix build problem using Sun Studio compiler.
2421 Reported by Brian Lu (Sun), including a patch (Ticket #219)
2423 I slightly modified the patch, but nothing substantial.
2428 Patches provided by raboof:
2429 - Ticket #213 deprecated include directive removal
2430 - Ticket #214 missing sanity check
2431 - Ticket #215 fix some DEBUG macro level for sain ouput
2441 Use mapi_profile_get_ldif_path to find ldif path when one is not given
2446 Added libmapi++ wrapper function for CreateProfileStore
2451 Update buildsystem to avoid using bash-specific (well, not sh-supported) +=
2454 Should allow FreeBSD to be supported.
2459 Alternative solution to ticket #179, provided by Alan Alvarez.
2461 This alternative avoids the need for the user to clean up the string returned by what().
2463 Also includes a test case, which I've used to validate that the original (prior to r1524) code
2464 is faulty, and that both fixes (From Erik Hovland and from Alan Alvarez) deal with it.
2466 Resolves Ticket #179 (again).
2471 Make sure that the string given by what() can be used.
2473 Patch by Erik Hovland - thanks very much.
2475 Resolves ticket #179.
2477 Ensure that the libmapi++ messages example works even if there is no
2478 PR_CONVERSATION_TOPIC (subject).
2486 Modify mapi_object_set_logon_id() to be able to report errors.
2488 Original patch by Erik Hovland, I made some changes.
2493 Implement RopReloadCachedInformation (0x10).
2495 Minor change to IDL (previously implemented), and adds
2496 implementaiton and mapitest code.
2498 Also editorial comment fix in some related mapitest stuff.
2500 Resolves ticket #186
2502 Implement GetValidAttachments ROP (0x52).
2504 Includes IDL, implementation and mapitest.
2506 mapitest also checks DeleteAttach behaviour, which I don't think we previously
2509 Also includes a comment fix in the mapitest code.
2516 Patch by Erik Hovland <erik at hovland.org>
2521 Update the properties list.
2523 Patch from Girish Venkatachalam <girish at gayatri-hitech.com>
2528 Update API to use MAPITAGS enum.
2530 Update to match API change.
2532 Use appropriate enum here.
2534 Use enum for OpenEmbeddedMessage call.
2536 Use enums where appropriate.
2538 Update users of FindRow to use enums.
2540 We are supposed to be returning a MAPISTATUS, so switch to using
2541 the OPENCHANGE_RETVAL_ERR macro here.
2543 Use appropriate enums instead of int types.
2545 Use enums instead of ints / hardcoded values.
2547 Use enum types where appropriate.
2549 Fixes warnings from Intel C compiler.
2551 Return a suitable MAPISTATUS if we can't talloc sufficient memory here.
2553 Fixes warning from Intel compiler.
2558 Only pass "-Wmissing-prototypes -Wstrict-prototypes" to CFLAGS,
2559 not to CXXFLAGS as well.
2561 Avoids g++ warnings.
2563 Use enumerated type instead of integer.
2565 Remove unreachable code.
2567 Add "static" to avoid the need for additional declarations.
2569 Avoids noise from the intel c compiler.
2571 Namespace variable in macro, so we don't get noise about shadowing a
2574 Help icc find comparison_fn_t.
2576 Match up data types in argument and format string.
2578 Remove unused variable, and change a name to avoid a "shadowed declaration"
2584 Portability fixes for Intel C Compiler.
2586 Set CFLAGS early, otherwise AC_PROG_CC will set
2587 CFLAGS to "-O2 -g", which later has -O3 appended, which
2588 icc complains about.
2590 Check if we're really icc, and if so, turn off some warnings.
2591 Also turn off the "FORTIFY_SOURCE" define which causes problems
2592 with missing builtins.
2594 The warnings can (and should) be turned back on later, after we
2595 fix the current issues.
2600 Correct diagnostics messages.
2605 Remove explicit -Wstrict-aliasing=3 from command line.
2607 This is implied by gcc -Wall option, and icc produces nuisance warnings
2608 with it enabled (related to the -W option, not the code being compiled).
2610 Fix some memory leaks and a bug in mapiprofile.
2612 I introduced the bug in r1467, there could be others that are similar.
2617 Minor rewording of description
2624 Move initialisation up, to make sure everything is valid in the failure paths
2626 Patch by Erik Hovland. Thanks once again.
2628 This closes out ticket #178.
2630 Remove unreachable code.
2632 Patch by Erik Hovland. Thanks again.
2634 This is the second part of ticket #177. This completes the checkin of that ticket.
2636 Remove unreachable code.
2638 Patch by Erik Hovland. Thanks very much.
2640 This is the first part of ticket #177.
2645 Ensure that we check the result of the operation we just performed.
2647 Patch by Erik Hovland. Thanks very much for continuing to provide these.
2649 This is the third part of the patch in ticket #177. The first two parts are yet to be addressed.
2651 Make sure that return values are checked and report that given status if there is an error.
2653 Patch from Erik Hovland, with minor additional changes. Thanks again for the patch.
2657 More cleanups of memory leaks for setting up database and an associated failure case.
2659 fix leak in openchangeclient
2661 (as seen with valgrind of "openchangeclient -m")
2663 Fix memory leak in mapiprofile utility
2668 Ensure that when we pass --profile to mapitest, that profile
2669 gets used instead of the default.
2671 Also fix a small memory leak when using --profile, and add some
2674 Fix error handling case.
2676 Patch from Erik Hovland - thanks very much.
2678 Resolves ticket #175.
2683 Remove unused enum values.
2685 Remove unused code - no simple tests.
2690 Update the script version of samba4 to alpha8.
2695 Add tevent to dependencies.
2700 Remove unused headers.
2702 Patch by Erik Hovland - thanks very much,
2704 Resolves ticket #164.
2706 Apply patch from Erik Hovland, from ticket #162.
2708 From the original patch:
2709 "The problem is that when you do stat first w/ a file string anyone can
2710 exploit the time in between to do whatever they want with the file that
2711 the string is a name for. Instead, try to open straight away. Then fstat
2712 w/ the file descriptor."
2714 I think the patch is fine, although I didn't run the torture test.
2719 Avoid duplicate call to mapi_object_get_logon_id
2721 Based on a patch proposed by Erik Hovland, but adapted to follow the
2722 pattern used in OpenStream().
2724 Resolves issue #163.
2726 Applied modified version of patch from Erik Hovland to address unused variables.
2728 See http://trac.openchange.org/attachment/ticket/160/unused-values for
2733 My version removes variables (rather than commenting them out) since we don't need
2734 them now. I also updated the documentation for options that are no longer available
2736 The origin of the unused PR_FOLDER_CHILD_COUNT is a bit strange. It was introduced
2737 in r808 (to resolve #103), and looks like it might have been used for debugging - no
2738 impact on the code. I pulled out the whole lot.
2740 Tested with openchangeclient --fetchmail --folder="Sent Mail" and mapitest.
2742 Use array form of delete (error identified with libmapixx-attach test, using valgrind).
2744 Fix potentially unused variable.
2746 Tested with mapitest (even though nothing should have been affected) and
2747 with libmapixx-test and libmapixx-attach under valgrind.
2749 Patch is remaining part of http://trac.openchange.org/ticket/153
2751 Thanks to Erik Hovland for the patch.
2756 Remove dead / unused code.
2758 See http://trac.openchange.org/ticket/152#comment:1 for rationale.
2760 Original patch by Erik Hovland - thanks again.
2762 Update test case to reflect new behaviour
2767 Link libmapistore against tdb.
2769 Update copies of config.guess and config.sub.
2771 Link libmapiproxy against tdb.
2773 Declare a SOVERSION for libmapistore.
2775 Use LDFLAGS when linking exchange2ical.
2777 Create symlink for libmapistore.
2779 Link libmapi against tevent since it uses tevent_context_init, link ndr_exchange.po into libmapiserver since it uses some ndr_push_* symbols.
2781 Fix typo in variable name.
2786 Fix typo in Python variable name.
2788 Keep separate flags for libraries around in config.mk.
2790 Link libmapiserver against all libraries.
2795 Add some PidTag* mapping involved with Recipients and RecipientRow
2800 Patch from Erik Hovland <erik@hovland.org>:
2802 Initializes variables to make sure they aren't used uninitialized.
2806 - Add sanity check on mapitest_common creation routines within
2809 - Apply patch from Erik Hovland <erik@hovland.org>: check return
2812 Patch From Erik Hovland <erik@hovland.org>
2814 In torture_rpc_mapi_sendattach a call is made to the system function
2815 read at line 199. The return value of read is assigned to read_size,
2816 which happens to be of unsigned type. So if read returns -1 (which it
2817 can) it will not be noticed. The patch changes the type to ssize_t
2818 (signed) and checks for -1 as well as zero to break out of the loop.
2822 Patch from Erik Hovland <erik@hovland.org>
2824 1. In mapiproxy, the directory handle dir will be leaked after it is
2826 2. exchange2mbox main() should use exit at line 785 just like all of
2827 the other error paths so that we don't leak anything
2831 Patch from Erik Hovland <erik@hovland.org>
2833 Adds a #include config.h to suppress compiler warnings for vasprintf
2835 Patch from Erik Hovland <erik@hovland.org>:
2837 Make sure pointers are valid before dereferencing
2838 1. lpProps 'might' be null
2839 2. Add folder to variables checked before moving on.
2840 4. Check nprop->guid before giving to strcmp, two times
2841 6. Check definition before handing to strlen (which will dereference
2842 it) Reworked this one to include talloc_free
2843 7. Check MessageClass? before handing to strncasecmp
2844 8. Check backend, return if null.
2845 10. Don't print out anything if lpProp is null
2846 11. Check attach_size before dereferencing
2851 Fix pull structure for QueryRows reply when no RowData is available
2856 - Add preliminary IDL support for Exchange 2003/2007 EMSMDB RPC calls:
2860 - Add LZxpress and XorMagic support to EcDoRpcExt2 request/reply
2861 blob. However it doesn't yet support Chained calls.
2863 - Add AuxInfo/AUX_HEADER structures and IDL
2865 - Refactor mapi_request and mapi_response: move obfuscate_data calls
2866 up to the EcDoRpc layer
2871 Patch from Paolo Abeni <paolo.abeni@gmail.com>:
2873 call ProcessNotification() after each successful
2874 emsmdb_transaction() in all the libmapi calls.
2876 Patch from Paolo Abeni <paolo.abeni@gmail.com>:
2878 Mapi notifications can occurs inside any emsmdb_transaction; currently
2879 only the notification send by the server inside the
2880 emsmdb_transaction_null() in MonitorNotification() are
2881 parsed/processed/delivered to the appropriate callback.
2883 To be able to process all the received notifications, the notification
2884 structure must comprise the private data to be passed to the
2885 notification callback, since in the average mapi call this data is not
2886 available. This patch modifies the Subscribe() call and the
2887 mapi_notification structure, adding the private_data parameter (also the
2888 related Subscribe() calls are update) and add a libmapi call
2889 (DispatchNotifications) to force the notification dispatching in
2890 a [quite] non blocking way
2895 Patch from Paolo Abeni <paolo.abeni@gmail.com>:
2897 ProcessNotification() is ignoring the handle value contained into the
2898 processed notifications. This means that if many Subscribe() calls are
2899 performed on different folders but with the same flags, all the
2900 registered callback are [incorrectly] signaled with each received
2903 The attached patch match the handler contained into the notification
2904 message against the notification object handle to avoid such
2910 Make sure delayed authenication is not called when server mode is enabled
2913 Update property list to reflect current OAB props.
2915 This deletes a few incompatible properties. Cannot determine the history of the PR_MAILBEAT_ props.
2917 Fix display of Folder ID values (one is filled with ., the other is prefixed with .16 instead of being filled.
2919 Also remove duplicate close() of file descriptor.
2931 Implement RopTransportNewMail (0x51).
2933 Includes IDL, libmapi implementation, and basic mapitest coverage.
2935 Also fix a few doxygen / formatting things.
2940 - Add Redirect buffer support for OpenMsgStore and OpenPublicFolder.
2941 This commit fixes the ecWrongServer (0x478) error users encounter
2942 while running openchange based software in a clustered Exchange
2948 Implement RopCloneStream (0x3b) and RopWriteAndCommitStream (0x90).
2950 Includes IDL, implementation and mapitest tests.
2955 Fix Search notifications.
2957 MS concurred that the docs are wrong.
2959 Patch by Paolo Abeni - thanks very much for the
2960 investigation and the patch.
2962 Update GetStoreState documentation.
2964 Implement RopSetPropertiesNoReplicate (0x79).
2966 IDL was already done. mapitest for DeletePropertiesNoReplicate was
2972 Implement (IDL, libmapi, mapitest) RopHardDeleteMessagesAndSubfolders (0x92)
2974 Also fix some bugs in mapitest common code, and an incorrect sanity check in CreateFolder().
2979 Implement RopHardDeleteMessages (0x91).
2981 Includes IDL, implementation and mapitest.
2984 Ignore generated property file.
2989 Add PT_ACTIONS to list of data types.
2991 Not fully/correctly handled yet.
2996 - Add dcerpc_mapiproxy:delegated_auth option
2997 This option delays mapiproxy-remote server authentication when
2998 the client sends the first request on a given pipe. This is
2999 mandatory in order to have delegated credentials to work.
3001 - Factor remote connection into mapiproxy_op_connect
3006 Add session state to the notification.
3007 Patch by Paolo Abeni - thanks for the investigation and fix.
3009 Also remove a stray debug message.
3011 Add a new mapitest suite for OXCNOTIF (Core Notifications).
3013 Add a test to the OXCNOTIF suite based on test case provided by Paolo Abeni.
3018 Update IDL for ModifyRules (0x41) and add IDL for
3019 UpdateDeferredActionMessages (0x57).
3021 This is a checkpoint commit, pending further investigation
3022 into how we handle PtypRestriction and PtypRuleAction.
3027 Mapitest cleanups - remove GetLastError(), and other minor edits.
3029 Implement LockRegionStream and UnlockRegionStream ROPs.
3031 These appear to be a relatively recent addition to the
3032 documentation, possibly only used in Exchange 2007 / Outlook
3035 This is complete except for testing of whether the locking
3041 Use parent folder full replica ID: 2 bytes instead of 1 byte
3043 - Add Implementation for Logon redirect response buffer in OpenChange IDL
3044 - Update libmapiserver size calculation routine for Logon call to handle this case
3049 Add session and logon_id to the list of parameters to copy between objects.
3050 This patch fixes a problem in openchangeclient when using the --folder parameter.
3053 Remove code relating to free'ing the bookmark returned
3054 by SetCollapseState. Initial investigations with MS
3055 lead me to believe that you can't free that resource.
3057 May be more work in this area as investigation continues.
3062 Fix memory leaks for functions relying on pull_emsmdb_property
3067 Fix emsabp valgrind errors
3072 Make it possible to specify a version number for release different
3073 from major/minor from configure.ac
3078 Make it possible to open and control up to 255 mailboxes within a
3079 single MAPI session.
3081 It implements an internal management of a logon_id array at session
3082 level + enable transparent transport/copy of current logon_id value
3083 among MAPI calls + finally transparently free the logon_id value when
3084 the store object (PF or mailbox) is being released.
3086 - Retrieve recipients from OpenEmbeddedMessage reply
3087 - Test the implementation in mapitest
3088 - Avoid potential memory leak: steal context for returned ulPropTags.
3093 Be more tolerant with Logon request flags
3095 Set retval to MAPI_E_INVALID_BOOKMARK rather than returning.
3096 This case still needs to be fixed though.
3098 Delete debug message
3100 Create a default GetProps reply on error
3105 Fix retval problem in libmapi/nspi.c for GetIDsFromNames.
3106 Function returns MAPI_E_SUCCESS, but errno is set to 0x0000000b.
3107 Set errno to retval to work around this problem.
3110 NSPI-GETIDSFROMNAMES
3112 OXCPRPT-NAME-ID mapitest now passes: The QueryNamedProperties ecMemory retval
3113 has been worked-around by setting QueryFlags to NoStrings to limite the results
3114 scope. This means the MNID_STRING case is not fully checked anymore. We should maybe
3115 add additional tests to do full coverage.
3117 Fix GetNamesFromIDs IDL and implementation.
3119 Note: We should probably update the function prototype
3120 so it takes a mapi_SPropTagArray rather than a single property.
3123 Protect against bad results from GetGALTable().
3125 Resolves ticket #142
3130 Patch from Paolo Abeni: Add sanity check to Subscribe
3131 and prevent applications from crashing if notify context
3137 Ensure NSPI server functions have a valid dcesrv_handle
3139 Add quick/additional configuration information on how to setup openchange server
3141 This commit adds a retval check on private data retrieval function and prevents QueryPosition from causing a
3142 segfault when parent object is meant to come from GetContentsTable.
3144 - Fix NspiGetMatches server reply when specified username is invalid and
3146 - Make use of talloc hierarchy for NspiGetProps properties fetch + fix
3147 a talloc_free bug leading to segfault on failure.
3149 Prevent from registering same mapistore backend multiple times
3157 Add skeleton for GetRulesTable
3159 - return MAPI_E_SUCCESS when QueryRows reply count is 0
3160 - Move Reminders from IPM Subtree to Mailbox root
3162 - Add QueryPosition implementation
3163 - Move from offset to numerator/denominator couple for table objects
3165 Outlook now opens properly using openchange server and display the
3166 mailbox folder list with icons ;-)
3168 - Add skeletons for Restrict, SortTable, FindRow calls
3169 - Introduce emsmdb provider table object
3170 - Add preliminary table implementation for system/special folders
3171 - Add preliminary implementation of GetHierarchyTable, SetColumns and QueryRows
3172 - Improve creation of GetProps reply blob for Mailbox folder
3173 - Fix bug in EcRRegisterPushNotification when associated handle is invalid
3174 - Remove some usage of ldb_filter and use format string instead
3175 - Update libmapiserver sanity checks and look for error_code != MAPI_E_SUCCESS
3176 so openchange server is able to return failed replies to MAPI clients
3177 - Introduce flaggedPropertyRows in libmapiserver_push_property (needed by QueryRows)
3179 This commit makes openchange server work with "openchangeclient --mailbox" ;-)
3181 Still preliminary but anyway worthwhile enough to be mentioned ...
3183 - Add a function to count subfolders of a container
3184 - Add a function to wrap MAPI tables over openchangedb
3185 - Factorize code used to fetch property values from LDB records
3187 - Add default properties to folder records while provisioning mailbox
3188 - Add few more mapping for PR_* to PidTag
3189 - Add a new MAPI property to the list
3191 Avoid openchangeclient --mailbox to segfault when run vs openchange server
3194 Remove some ldb_filters, and just use varargs into ldb_search
3196 warning fix for 64-bit arch.
3198 Revert previous commit.
3200 Experimental commit to fix build problems resulting
3201 from property changes.
3206 - Add PidTagDisplayName property to Mailbox object
3207 - Add PidTagParentFolderId to all system/special folders
3209 - handles array depends if a valid mapi_repl exists. This commit
3210 fixes the destructor semantics.
3211 - Fix a mapitest segfault encountered while run vs openchange server
3212 - Return 1 in SRowSet_propcpy if an error was encountered.
3214 Fix libmapi stack segfault when MAPI calls returns
3215 with error_code different from MAPI_E_SUCCESS.
3217 Do not process NSPI request if we can't find the handle
3219 Remove unnecessary ldb_filter parameter and replace it
3220 with ldb_search format string.
3225 - GetPropertyIdsFromNames skeleton added
3227 - Fix how Release replies are handled in mapi_repl[] array
3228 - Remove Release size calculation
3229 - Fix QueryRows size in libmapiserver
3230 - Add a dummy/skeleton GetPropertiesSpecific function for mapistore objects.
3231 - GetHierarchyTable skeleton added
3232 - SetProperties skeleton added
3233 - CreateMessage skeleton added
3234 - SaveChangesMessage skeleton added
3240 Set mapi_response to NULL upon init ... just to get sure
3242 Fix MAPIUninitialize segfault
3250 - Add skeleton for GetContentsTable Rop
3251 - Add skeleton for some [MS-OXCTABL] Rops: SetColumns, SortTable, QueryRows, SeekRows
3252 - Add libmapiserver size calculation functions for all the above
3253 - Ensure we only set objects parameter if it exists
3254 - Return when dcesrv handle is not available
3256 Merge s4-alpha7 branch back into trunk
3261 - Add several PidTag to openchange.ldb folders
3262 - Add provisioning convenient function which adds attribute/value pair
3263 to a given folder record
3264 - Replace existing special folders reference within Inbox with PidTagIpm* tags
3265 - Add new PidTag values to mapi-properties
3266 - Add a function to libmapiproxy to build a folder EntryID as described in MS-OXODATA
3267 - Add a function which builds special properties for openchangedb folders
3268 - Add PT_BOOLEAN case to openchangedb folder get property function
3269 - Keep a reference to the mailbox username within emsmdb provider context
3270 - Create and return a handle in RegisterNotification
3275 Wrong MessageClass size calculation fixed
3278 Remove duplicate _GNU_SOURCE definition (already specified by Makefile)
3280 Ignore new binary and trial output.
3285 - Fix systemfolder value for System/Special folders
3286 - Add GetProps support to System/Special folders
3288 Add auto-generated parser to the ignore list
3290 - Add auto-generated parser for MAPI property to PidTag mapping
3291 - Add some PidTag values
3292 - Add a lookup and get property functions on system folders
3294 - tuple SystemIdx in the dictionnary to workaround the ordering problem
3295 - Add ParentFolderId attribute to System Folders
3297 - Add creation of "Special folders" to mailbox provisioning
3298 - Rename fid attribute to PidTagFolderId
3299 - Rename name attribute to PidTagDisplayName
3300 - Rename ExplicitContainerClass to PidTagContainerClass
3302 Fix GlobalCount increment
3304 Fix mailbox provisioning
3307 Add test for FILETIME structure.
3309 Update docs for mapiproxy entry.
3312 Fix handling of fids.
3316 - Fix openchangedb mailbox hierarchy and introduces subfolders
3317 as described in [MS-OXOFOLDS] specifications.
3318 - Update openchangedb API to reflect this change.
3320 Rename private mailbox folder "non_ipm_subtree" to "mailbox_root"
3321 to fit with MS-OXOFOLDS specifications.
3323 - Add provisioning code for GetReceiveFolder defaults
3324 - Check if mapistore content repository already exists for the user
3325 - Make mailbox creation verbose
3328 Fix parentfolder reference.
3332 Use recursive call to create folders.
3334 Simplify list iteration, PEP8, avoid using string exceptions.
3339 Fix 'dereferencing type-punned pointer' warnings
3341 - Add strict-aliasing compiler flags
3342 - Fix format string warnings on ubuntu buildbot
3344 - Add _FORTIFY_SOURCE=2 to the compiler CFLAGS
3345 - Fix warnings introduced by -D_FORTIFY_SOURCE
3348 I might have been a bit hasty with that last commit...
3352 Try harder to find sqlite3.
3354 Seems to be in sqlite.pc on Ubuntu.
3356 Fix warning on 64-bit arch.
3360 - Add RopGetReceiveFolder (0x27) implementation
3361 The function respects should respect the semantics and behavior
3362 as described in MS-OXCSTOR specifications. However the python's
3363 code modification required: add ExplicitMessageClass attributes
3364 to folder records is not yet effective.
3366 - Add GetReceiveFolder size calculation function to libmapiserver
3367 - Add a function to openchangedb API to retrieve the FID/ExplicitMessageClass
3368 couple for a given SystemFolder within user's mailbox.
3370 - Provision scripts: create a mapistore default storage space within ${private}/mapistore/${username}
3371 - Provision scripts: add default sqlite:// mapistore URI for system folders
3372 - Add mapistore context initialization when calling OpenFolder on SystemFolder
3373 - Add mapistore context release for folders in emsmdbp object destructor
3375 Factorize emsmdbp objects
3376 Add emsmdbp_object generic talloc destructor
3379 Add test for PT_MV_LONG.
3381 Add tests for PT_I8 and PT_BINARY
3383 Fix warning about no newline at end of file.
3385 Remove most recently added tests from "to be done" list.
3387 Add a couple more mapi_SPropValue tests.
3392 - Initialize mapistore within emsmdb provider context
3393 - Add destructors for MAPI handles and mapistore contexts
3394 - Remove emsmdbp_ctx memory context structure member and
3395 allocate directly with emsmdbp_ctx
3397 I don't see any good reason why we would pad MAPI replies with some bytes.
3398 I guess it comes from some prehistoric openchange code.
3400 Fix systemfolder assignment depending on IsSystemFolder value
3402 - Initialize OpenFolder server reply
3404 - Wrap TDB connections to mapistore (code from samba4) so
3405 multiple instances can open read/write to the same TDB database
3406 - Remove static id_mapping_context (replaced with tdb_wrap calls)
3407 - Update mapistore linkage rules so mapistore can be used with exchange_emsmdb server
3408 - Link mapistore with exchange_emsmdb
3410 Fix aclocal warning for AC_DEFINE comparison_fn_t
3412 Remove useless GetProfilePtr from IProfAdmin interface
3413 Closes trac ticket #131
3415 Add missing script - prevent configure from generating warning vs missing file.
3417 Remove stamp-h1 file during distclean and add it
3420 - Add server-side GetReceiveFolder (0x27) skeleton
3422 Work around the comparison_fn_t redefinition problem
3423 between libocpf and ndr.h
3425 FreeBSD doesn't have time.h daylight global variable
3428 start testing mapi_SPropValue_array.
3429 This also tests some underlying functions.
3434 Add comparison_fn_t support to ndr.h
3435 This was the latest change require to make openchange compiles under FreeBSD
3437 = samba4/openchange FreeBSD support completed =
3442 Remove duplicated post_install call
3444 Add a post_install operation on FreeBSD
3445 Make sure pidl is installed properly.
3447 Patch samba4 tarball so it compiles properly on FreeBSD 7.0
3448 Note: this is a dirty hack which needs to be removed in the future
3450 Install Samba4 correctly although user's PKG_CONFIG_PATH env variable
3451 may not be adjusted properly.
3453 Avoid download samba4 release tarball if already available
3454 in current directory.
3456 - Add test for comparison_fn_t in configure.ac
3457 - libocpf auto-generated files include stdlib.h and prevent from
3458 having the proper comparison_fn_t typedef. This commit works around this
3459 problem and define comparison_fn_t within a private header.
3461 getline is a stdio GNU_SOURCE extension not available under FreeBSD.
3462 Use fgetln instead when it is compiled on this OS.
3464 FreeBSD doesn't define sighandler_t but sig_t
3466 Replace open() call with O_DIRECTORY flag (Linux specific) with opendir
3468 - Add non-default search path /usr/local/{include,lib} to
3469 CFLAGS and LDFLAGS when compiling OpenChange under FreeBSD
3470 - Make use of LDFLAGS while compiling openchange tools
3473 A few improvements for property handling.
3475 Also add unit tests to verify behaviour is correct.
3477 The implementation for the FlatUID (GUID) structure appears broken. Perhaps I'm not using it correctly.
3479 Microsoft confirmed the LCID is wrong in the spec, and will be updated in the next rev.
3484 Check for Flex version < 2.5.35
3485 Make sure users can define the FLEX environment variable
3487 Add automake scripts for AC_CANONICAL_HOST support
3488 Needed for FreeBSD OS detection in configure.ac
3493 Fix warnings from lexer output.
3495 Fixes for warnings on 64-bit architectures.
3497 Fix warning on 64-bit architecture.
3500 Add some more tests for openchange.mailbox.
3502 Fix creation of new mailbox after provision.
3504 Always use the same URL when connecting to openchangedb.
3506 Fix arguments to openchangedb_provision.
3511 Fix libmapi 64-bit machine cast warnings mentioned in Brad's devel email
3514 Warning fix for 64-bit arch.
3519 Add doxygen definition for RopRelease
3521 - Add server-side skeleton implementation for RopOpenFolder and RopRegisterNotification
3522 - Add preliminary size calculation functions in libmapiserver for the 2 calls above
3523 - Fix size bug for serialized requests
3524 - Add skeleton case for RopGetPropertiesSpecific on SystemFolders
3525 - Make sure the GetProps reply blob is initialized whatever happen
3526 - Add a skeleton emsmdbp folder object init function
3531 Remove debug strings for GetPropertiesSpecific Rop
3533 Enable verbose output in server mode - useful during development
3535 Implement preliminary server-side RopGetPropertiesSpecific call for mailbox object.
3537 - Fix GetProps blob for PT_BINARY: use SBinary_short instead of Binary_r
3538 - Fix GetProps size: subcontext is not added to the fixed size calculation
3540 - GetPropsSpecific size calculation function added to libmapiserver
3541 - Function to create a GetProps reply property blob added to libmapiserver
3544 Add tests for provisioning.
3546 Several cleanups in python code, add tests for schema use.
3548 Don't clear PYTHONPATH override.
3550 Remove unused imports, add extra tests.
3552 Use member variable for Ldb, rather than subclassing.
3554 Remove print statements to avoid cluttering test output.
3556 Add simple and incomplete testcase for OpenChangeDB.
3558 Move wipe of data to mailbox.py, simplify arguments to add_root_mailbox.
3560 Move adding a server to mailbox.py.
3562 Move ldif from oc_provision_openchange.ldif into Python.
3564 Stop providing setup_path to OpenChangeDB, as it's no longer used.
3566 Avoid using separate LDIF file when creating folder mailboxes.
3568 Avoid using separate LDIF file when creating mailboxes.
3570 Avoid passing full names object.
3572 Add check-python target.
3577 fix openchange_newuser.
3579 Use SamDB for actual SAM databases, Ldb otherwise.
3581 Remove unused parameters, don't make parameters optional if they are mandatory.
3583 remove unused parameters.
3585 make mailbox object-oriented, remove creds/lp parameters.
3587 Fix OpenChangeDB syntax.
3592 - Add a systemfolder member to the MAPI handle structure to make a difference
3593 between objects managed by mapistore and those stored within openchange.ldb
3594 (root mailbox folders).
3596 - Add opaque functions to set/get private_data and systemfolder to the MAPI
3599 Minor doxygen fix/improvement
3601 Add libmapistore object files to the ignore list
3603 - Add a very preliminary and light libmapistore implementation.
3604 mapistore only supplies init/release and add/del backend contexts.
3605 This commit also includes a sqlite3 backend skeleton (open/close sqlite db)
3606 - A temporary mapistore testing tool has been added locally for implementation checks.
3609 Use convenience function for connecting to openchange.ldb.
3611 Use standard LDB functions - openchange.ldb is not a SAM database.
3616 Implement support the SUMMARY language tag.
3618 Initial checking of libical based exchange2ical code.
3620 This has a long way to go, so think of this as more of a checkpoint
3623 See http://sourceforge.net/projects/freeassociation/ for the library, or
3624 see if your distro has a package.
3628 Add missing parameter to API documentation.
3630 Resolves ticket #130.
3632 API documentation fixes for OpenEmbeddedMessage()
3634 Implement OpenEmbeddedMessage ROP (0x46).
3638 Factor out message creation and message fill actions.
3640 Also remove GetLastError() where appropriate.
3642 Add some API documentation.
3647 Update openchangepfadmin description
3648 Fix tool relying on libmapiadmin
3655 Add more explanation for README
3657 Reimplement RTF decompression.
3659 Add unit tests from MS-OXRTFCP.
3661 Fix warnings in example code
3663 Add description for libmapiadmin
3665 Add description for libmapi / libmapi++
3667 Start on the directory descriptions.
3673 Add overview. Extracted from API docs.
3677 Outline of README file.
3679 (also using this to test buildbot without changing real code)
3683 Add Version field - avoid breaking pkg-config --list-all
3685 Fix warnings (gcc 4.2.4)
3688 Use variable for package version rather than hardcoding it.
3698 - Add an implementation of the MAPI handles management API. The API
3699 internally uses an in-memory TDB database to keep object hierarchy
3700 and a doubled chained list to associate private data to handles.
3702 The API currently provides add, search and delete facilities. Note
3703 that while untested, the delete operation is designed to recursively
3704 delete children of the 'meant to be deleted' handle.
3706 Finally the API doesn't remove TDB records but mark them as free so
3707 they can be reused across MAPI session and prevent from handle counter
3708 growing indefinitely.
3710 - Add a preliminary implementation of the Release call
3711 - Add Release size calculation to libmapiserver
3712 - Update EMSMDB provider to use MAPI handles API
3715 Minor api documentation fix.
3721 Minor API docs tweak.
3723 Token commit of tiny API docs fix.
3726 Look for GNU make harder (gmake on BSDs).
3731 - Add preliminary EMSMDB provider implementation for RopLogon (0xFE)
3732 - Add common routines for OpenChange LDB context init and search
3734 - Add libmapiserver skeleton with size calculation routine for RopLogon
3735 - Change DSO linking dependencies for mapiproxy shared libraries
3736 - Propagate _GNU_SOURCE change from libmapi.h to mapiproxy
3740 Remove .po and .o objects within libmapiproxy subdirectory
3742 Move libmapiproxy into its own directory and rebase mapiproxy headers accordingly
3743 Fix make uninstall for AD and profiles directories
3747 Add python code and ldif files needed to create and populate the experimental
3748 openchange dispatcher database.
3750 Add 5-Minute configuration documentation for OpenChange server mode
3752 - Rebase ldif files into sub directories:
3753 * AD for OpenChange AD modifications
3754 * profiles for OpenChange IProfAdmin interface
3755 - Makes it easier figuring out LDIF files scope
3756 - Prepare setup folder for LDIF openchangedb files integration
3757 - Update install/uninstall Makefile rules for ldif files and
3758 make sure everything got removed
3763 Add support for short language names (e.g. en-AU) for lcid.
3768 Delete deprecated libmapi setup Perl script
3771 Add summary report for tests.
3773 Make mapitest return the number of failed tests.
3778 - Add pkg-config pc file for libmapiproxy
3779 - Improve mapiproxy rules so libmapiproxy gets installed and cleaned properly
3781 Free memory allocated by the fake subcontext in
3782 ndr_pull_mapi_response.
3784 This fix saves 300kb of memory and removes 700 loss records while
3785 valgrinding mapitest.
3787 Fix segfault - Add sanity check - when SPropTagArray is NULL in
3788 NspiQueryRows request
3790 Fix openchange_newuser name typo
3792 Fix server provisioning command line examples
3794 Fix several libmapi leaks.
3796 mapi_response was allocated using emsmdb_ctx->mem_ctx memory context
3797 and was not free'd when libmapi function released their
3798 context. Furthermore we need to release mapi_response->mapi_repl and
3799 mapi_response->handles which are now automatically free'd when
3800 mapi_response destructor is called.
3802 However note that this fix is not perfect: mapi_response memory is not
3803 free'd properly when calls exit with an error.
3805 This commit also make use of talloc_steal where necessary to keep
3806 returned fields allocated.
3810 Use named context rather than autofree
3812 Fix memory leak in emsmdb.c: Use a temporary memory context for
3813 request and length allocation in emsmdb_transaction.
3815 - This removes 827 loss records and approximatively saves 41kb of
3816 memory while valgrinding mapitest
3818 - Fix memory leak in GetDefaultProfile and GetProfileTable.
3819 - Save from 10 loss records while valgrinding mapitest
3820 - Developers are now responsible from freeing the GetDefaultProfile
3821 string the function allocates.
3822 - Apply changes to all openchange tools.
3824 Add blackbox subunit tests for mapiprofile tool
3827 One more trivial fix.
3831 (Yep, more trivial changes)
3833 Fix incorrect LCID for en-CA.
3835 (OK, its token, I admit).
3838 Don't define _GNU_SOURCE unconditionally.
3842 Prevent mapiproxy from multiple init and modules/server register
3843 when an smb client connect to the server (e.g. windows browser or smbclient)
3847 According to [MS-OXOCAL] Section 2.2.1.44.1
3848 "RecurrencePattern Structure", a monthly recurrence
3849 also has a Day specific parameter.
3854 Simply run autogen.sh rather than replicating it inside the Makefile.
3856 need to run aclocal before autoconf for the pkg-config macros.
3860 Use a autofree context rather than a named one - makes sure memory is free'd when we exit the test.
3861 Saves from 4 loss records while valgrind'ing mapitest.
3863 Use temporary memory context for EcDoConnect.
3864 Saves from 20 loss records when valgrind'ing mapitest.
3866 Free PropertyProblem structures returned by CopyTo.
3868 Replace deprecated talloc_init calls with talloc_named
3869 This commit removes some valgrind loss records talloc_init was responsible for
3872 Free everything when running mapitest --list-all.
3873 Valgrind however shows a loss record related to talloc_init ...
3876 Minor Intel C compiler warning fixes.
3878 Minor apidocs cleanups.
3882 Use double pointer for lp_ctx in GetLoadparmContext assessor
3884 Fix memory leak in utf8 lexer.
3886 - Remove custom iconv_convenience from pull_emsmdb_property and use
3887 lp_iconv_convenience on loadparm_context argument instead.
3889 - Change OpenChange libmapi API to reflect this change
3891 - Introduce a lp_ctx assessor in libmapi/cdo_mapi.c
3892 (mostly for mapitest modules). libmapi/mapiproxy developers
3893 should never have to make use of it.
3895 - Remove pointless duplicated call to lp_load_default in MAPIInitialize.
3897 Free lpProps returned by GetProps, Fix context error in valgrind
3899 - Fix memory leak bug: release ndr context in pull_emsmdb_property before returning
3900 - Terminate SPropValue and SPropTagArray using an element with ulPropTag = 0. This
3901 prevent from "invalid read size of 4" messages from valgrind and remove context errors.
3904 Don't install mapiproxy if python wasn't found, since
3905 we wouldn't know where to install the provisioning scripts or be able
3910 Merge libmapi-0.8 branch r1015 to 1017 into trunk
3912 ** Start libmapi-0.9 COCHRANE development **
3914 Merge libmapi-0.8 branch changes into trunk
3918 Add python install/uninstall rules to provision rather than mapiproxy-servers
3920 - Remove server Makefile rules
3923 Note: server and providers have been merged within mapiproxy,
3924 so there is no reason keeping this deprecated code.
3928 Undoing change committed in r1004.
3930 Use .po files instead of .o files for openchange tools
3932 Add --version to openchange tools
3934 Add COPYING file with GPLv3 license
3938 - Add RenameProfile function to IProfAdmin API
3939 - Remove pointless CopyProfile from IProfAdmin API
3940 - Add --rename option to mapiprofile tool
3941 - Update man page to reflect this addition
3943 (close trac ticket #124)
3945 Fix libmapi from crashing when mapi_repl is NULL.
3947 Update Samba4 git rev to fix the charcnv segfault met in openchange
3951 Try to find the Samba python modules if they're not installed in the system
3956 - Fix Subscribe semantic bug and add WholeStore boolean parameter
3957 - propagate API change to tools/torture callers
3959 - Add assessor functions to set dumpdata and debug level in libmapi
3960 (SetMAPIDumpData and SetMAPIDebugLevel)
3961 - OpenChange tools modified to use these function rather than set these
3962 parameters on their own
3964 - Fix --debuglevel segfault in openchange tools
3965 - Enable logging to stdout in MAPIInitialize
3969 * OpenChange libmapi function now returns MAPI error instead of -1
3970 - use OPENCHANGE_RETVAL_IF instead of MAPI_RETVAL_IF
3971 - add doxygen documentation for some missing functions/files
3973 - Missed this event->tevent change in previous commit
3975 - Update openchange to use latest Samba4 master git rev (990491d)
3976 - Fix references to tevent_context structures
3977 - Fix iconv_convenience init in MAPIInitialize
3978 - Remove errorchecks mapitest module warning
3981 Use tevent_context_init.
3987 Some Exchange server (stand-alone) return MAPI_E_LOGON_FAILED when setting EssDN with username rather than
3988 using profile's mailbox string directly. This commit fixes the bug.
3990 - Add EcDoConnect and EcDoDisconnect preliminary support to
3991 dcesrv_exchange_emsmdb.c
3992 - Add internal session management mechanism to EMSMDB server
3993 - Add init and unbind modules function to EMSMDB server
3994 - Add emsmdbp_context and session to dcesrv_exchange_emsmdb.h
3997 Fix valgrind errors caused by using free'd memory.
4001 Implement 'mapiproxy downgrade' behavior in EMSMDB server and force
4002 Outlook to use EcDoConnect (0x0) and EcDoRpc (0x2) rather than 0xA and
4003 0xB (opnums using LZ based compression).
4005 - Add Preliminary implementation for RfrGetFQDNFromLegacyDN DS RFR server
4009 - Preliminary implementation of NspiGetProps NSPI server function
4010 - Makes sure emsabp_tdb_traverse_MId uses the correct dbuf size
4011 - Use correct ldb context (users or conf) depending on where MId is
4012 located (on-memory or on-disk)
4013 - Add PR_EMS_AB_NETWORK_ADDRESS mapping to emsabp_property
4015 *** Outlook is now able to create MAPI profile using OpenChange Server ONLY! ***
4017 - Preliminary implementation of NspiDNToMId NSPI server function
4018 - Add emsabp_search_legacyExchangeDN to search for a record given its
4019 legacyExchangeDN attribute.
4021 - Preliminary implementation of NspiQueryRows NSPI server function added
4022 - fix a bug in the MID TDB traversal routine: cut dptr to dsize length
4023 rather assuming it is NULL terminated
4024 - Add support for "referenced" property tags
4025 - Add support for PR_MV_STRING8
4026 - Add emsabp_search_dn which search for a DN within AD and return the
4027 associated LDB message
4028 - Add PR_EMS_AB_HOME_MDB and PR_EMS_AB_PROXY_ADDRESSES to
4029 emsabp_property array
4031 Prevent from trying to add a NULL element to profile database and segfault on strlen
4033 Prevent x500_get_dn_element from segfaulting when an incorrect DN string parameter is supplied
4035 - Preliminary implementation of NspiGetMatches NSPI server function
4036 - Make use of a on-memory TDB database for Ephemeral Entry IDs
4037 - Add TDB traversal routines to retrieve DN associated to MId
4038 - Move lp_ctx within emsabp_ctx for convenience
4039 - Add EphemeralEntryID to Binary_r routine
4040 - add emsabp_query (Find attribute matching given property tag and
4041 return associated data)
4042 - add emsabp_fetch_attrs which builds a SRow array given a MId and
4043 requested property tags.
4044 - add emsabp_search which searches AD given input search criteria
4045 - add a preliminary Property Tag to AD attribute mapping + associated
4046 functions in emsabp_property.c
4048 Note: This NspiGetMatches is limited to MAILUSER which means we only
4049 look for users (located within users.ldb). This limitation will be
4050 removed when we have a preliminary working emsmdb server, so we can do
4051 more extensive NSPI server tests.
4053 Add sanity check to get_SPropValue_SRowSet, prevents the function
4054 from segfault when RowSet is NULL (e.g. crafted NspiQueryRows replies)
4056 Prevent IProfAdmin based code from crashing when a crafted NspiGetMatches reply
4057 with NULL ppOutMIds is returned.
4062 - Preliminary NspiGetSpecialTable implementation added to NSPI
4063 server/EMSABP provider: Hierarchy Table supported (required during
4065 - add PT_BINARY support for mapidump_SPropValue
4066 - fix a bug when PT_STRING8 or PT_UNICODE pointer is set to
4072 Add new Display Type values (used by EMSABP provider)
4074 Change DEBUGLEVEL for RfrGetNewDSA
4076 - preliminary implementation of RFR server (RfrGetNewDSA): makes Outlook happy
4077 - mapiproxy-servers-install now installs openchange python scripts and ldif file
4081 Move auth_serversupplied_info structure from dcesrv_exchange_nsp.h to libmapiproxy.h
4082 This structure is required for NTLM_AUTH_IS_OK macro
4084 - Add doxygen comments for all OpenChange server modules
4085 - Fix doxygen return value for exchange_nsp
4087 - Add mapiproxy server unbind function and hook in dcesrv_mapiproxy.c
4088 - Add exchange handle enum to dcesrv_mapiproxy.h
4089 - Add authentication verifier macro to libmapiproxy.h
4090 - Add preliminary EMSABP Address Book Provider implementation:
4091 * supports initialization, destructor (talloc)
4092 * implements user and codepage check routines
4093 * retrieve NSPI server GUID
4094 - Add NspiBind and NspiUnbind support to dcesrv_exchange_nsp.c
4095 - Add internal session mechanism management to NSPI server
4096 - Add init and unbind modules function to NSPI server
4097 - Add doxygen comments to all dcesrv_exchange_nsp.c functions
4098 - Add emsabp_context, session and non-exported Samba structure to dcesrv_exchange_nsp.h
4100 OpenChange configuration schema updated with Addressing schema
4101 (Address-Templates, Address-Types and Display-Templates - Exchange 2003 based)
4103 Execute server modules init function when loaded
4106 A few API documentation fixes.
4111 Add documentation for MAPIProxy 'server mode'
4116 - Implement mapiproxy server mode architecture
4117 - Add server modules management API
4118 - Add skeletons for default OpenChange servers (nspi, emsmdb, ds_rfr)
4119 - Add temporary provision Makefile rule
4124 Initial text was correct - rollback
4129 Ensure that GetLastError() also returns the correct value.
4131 Start changing the MAPI_RETVAL_IF() usage to two new macros:
4132 OPENCHANGE_RETVAL_IF() and OPENCHANGE_RETVAL_ERR().
4134 simple_mapi.c is the only one converted at this stage.
4136 Also added a set of unit tests that verify at least some initial
4139 Remove unreachable code.
4141 Partly resolves ticket #124
4146 Remove references to ldap.h header file - not installed anymore with samba4 git rev openchange uses
4148 mapiproxy documentation update: 3 questions added to FAQ section
4150 Patch from Corentin Chary:
4151 - Add PR_CONTENT_FILTER_SCL property to libmapi
4153 - Update openchange to work with samba4 master git rev f308c2f
4154 - Replace reference to events.h with tevent.h
4155 - Update installsamba4.sh script to reflect latest samba4 compilation changes/requirements
4160 Fix mapidump date/month when freebusy period covers end of one year - beginning of next year
4161 Update openchangeclient to reflect these changes.
4166 Export PKG_CONFIG_PATH if it wasn't exported yet. Patch by Metze
4168 Fix PIC object flags for SWIG build. Patch by metze.
4173 User %u format specifier for unsigned integer.
4175 Make return value match signature.
4177 Miscellaneous minor cleanups. Mainly making return types
4178 match signatues, format conversion (%u for unsigned values) and
4179 matching up result variable types (bool instead of enum MAPISTATUS).
4181 Return an enum MAPISTATUS, instead of a bool, to match function signature.
4183 Use %u instead of %d for unsigned values.
4188 Another minor APIdox edit.
4190 API documentation tweak.
4198 More apidox triviality.
4200 Trivial APIdox edits.
4202 Supplement the user's PKG_CONFIG_PATH rather than
4206 Add bindings for GetBestBody(), GetDefaultFolder(), GetDefaultPublicFolder(), AddUserPermission(), ModifyUserPermission().
4208 Add bindings for create_message, delete_messages, get_message_status, set_read_flags.
4210 Add Python bindings for Unsubscribe(), get_task_status(), get_importance(), get_proptag_name(), get_proptag_value(), DeleteFolder(), CreateFolder(), EmptyFolder(), RemoveUserPermissions(), IsMailboxFolder().
4215 Actually use pymapi variables in Makefile.
4217 Add configure flags for building and installing Python MAPI bindings (disabled by default).
4222 Add namespace prefix to scanner.
4227 - spnego / gssapi_krb5 authentication now available for mapiprofile
4228 - add the --realm | -R option
4229 - update mapiprofile man page
4234 Remove entries for --properties and --priority, which have been removed from the openchangeclient utility.
4238 Don't generate / install man3 pages for libmapi++ or mapitest.
4240 Resolves ticket #121.
4242 Also don't install man3 pages that are just copies of the C implementation files, or just document bugs / todo items.
4245 Allow retrieving id and session of MAPI objects.
4247 Add MessageStore and Object Python classes, add bindings for OpenMsgStore, OpenUserMailbox, OpenPublicFolder.
4249 Add stubs for Session class.
4251 Add infrastructure for MAPI python module.
4253 Look for python and python-config binaries.
4255 Remove empty directory.
4259 Remove obsolete --properties option and related code
4264 Fix RecipientRow member's order
4269 - Update to latest samba4 git master revision (3508a66)
4270 - Fix references to samr info24 struct
4271 - Add support for assoc_group_id proxy
4272 - Add support in mapiproxy for bind/alter connections using assoc_group_id
4273 - Update mapiproxy documentation
4278 Improve building. Partially addresses #94.
4280 More work required on this as we work on the
4281 portability in the future.
4283 Expose the underlying session.
4288 Remove unused --priority option.
4290 These offsets / values can be negative, so we shouldn't
4291 use unsigned int type to represent them.
4296 Fix Logon problem for users running Exchange 2k7 in a clustered Exchange environment.
4298 This patch first tries to forge EssDN Logon string from "o" and "ou"
4299 attributes stored in the profile. If Logon fails with ecUnknownUser,
4300 then try to open the mailbox using the mailbox attribute stored in
4306 Document the --label option.
4311 Make openchange compile and work against latest samba4 master git rev (58db2be)
4314 Remove check for unused type 'uint_t'.
4319 More tweaks on the openchangeclient man1 page.
4321 More updates for man1 page for openchangeclient.
4322 Still doesn't fully address #113.
4324 Update the openchangeclient man1 page.
4326 Partly addresses ticket #113.
4328 There is still some work to do on this.
4330 Fix a typo, and try to make the descriptions more
4336 Initial version of man1 page for mapitest
4338 Initial man1 page for exchange2ical utility.
4343 Update man1 page for openchangepfadmin
4345 Minor updates for the man pages.
4350 Fix build errors: wrong number of arguments for ocpf_propvalue
4352 Fix warnings when compiling with -Wextra
4354 Fix warnings when compiling with -Wextra
4356 Fix warnings when compiling with -Wextra
4359 Complete initializers here.
4364 Update to reflect latest state of mapiprofile.
4369 Prevent segfault when running mapitest. Looks like the we can
4370 return MAPI_E_SUCCESS even if one of the property values is
4371 MAPI_E_NOTFOUND. That error then get turned into a char*, and
4374 Also fix a possible bug relating to operator precedence, and
4375 a couple of warnings (one for signed / unsigned comparison, and
4376 the other for an unsigned value never being less than zero).
4381 Enable output to stdout.
4383 Resolves ticket #106.
4385 Thanks to raboof for the report and fix.
4390 Fix missing initialisers (issue #110).
4392 Also fix some signed/unsigned warnings.
4394 Fix problems with incorrect initialisers (#110) and
4395 operator precedence.
4397 Also fix a couple of places with signed/unsigned confusion.
4399 Partial fix for issue #110, and a couple of very minor cleanups.
4406 We probably want to return here, not do nothing.
4411 Fix empty patch function problem: add a retval
4416 Explain the boost-thread trick.
4418 Minor documentation tweaks.
4423 - remove usage of global_loadparm in libmapiadmin
4424 - make use of session context rather than global_mapi_ctx in libmapiadmin
4425 - use local context rather than mapiadmin context in libmapiadmin
4426 - libmapiadmin now uses ldb helper rather than raw implementation (ldb async code)
4427 - libmapiadmin and openchangepfadmin now works again (user creation/deletion) !! ;-)
4428 - remove global_loadparm in torture test and replace it with torture context
4429 - fix dcerpc_init to match latest samba4 API
4430 - update samba4 version required to build openchange
4433 More API documentation tweaks.
4435 More API documentation tweaks.
4437 Some API dox fixes for libmapi++.
4440 Remove unnecessary patching of lib/events/events.h.
4445 Update to a more recent Samba4.
4448 Remove some usages of deprecated global_loadparm.
4450 Cope with new argument to dcerpc_log_packet().
4455 Fix includes for DEBUG(), fix some more warnings.
4457 Use same_net_v4 rather than deprecated same_net().
4459 Fix Samba 4 git revision.
4461 Fix includes - debug.h can only be included once.
4463 Include debug header.
4465 Cope with API changes in Samba functions.
4467 Use new function is_zero_ip_v4 rather than removed is_zero_ip.
4472 Fix OpenMsgStore binding in swig perl and fetchmail script
4477 Fix pointless const definition for GetFreeBusyYear return type
4481 - Add the IsFreeBusyConflict convenient function which checks if a
4482 given date conflicts with existing FreeBusy Busy/OOF events
4484 - Modify openchangeclient --sendappointment behavior to check whether
4485 start or end date conflicts with FreeBusy published data for the
4488 - Add the --force option to openchangeclient to override this behavior
4490 - Fix a counter bug in mapidump_freebusy_events
4492 Fix doxygen typo error
4494 - Add GetUserFreeBusyData convenient function which retrieves FreeBusy
4495 data in public folders for a given user. Note: Ambiguous name is not
4496 supported at the moment.
4498 - Add convenient FreeBusy mapidump routines
4500 - Add FreeBusy read support to openchangelient
4502 - Add PT_MV_LONG and PT_MV_BINARY support to pull_emsmdb_property and
4503 property.c functions
4505 - Add OpenUserMailbox which let developers open other mailboxes
4506 instead of the default profile one.
4508 - Add GetABRecipientInfo: convenient function which retrieves Address
4509 Book information for a given recipient
4514 - Add libmapi implementation for DeletePropertiesNoReplicate
4515 - Add mapitest test units for DeleteProps and DeletePropertiesNoReplicate
4517 Fix doxygen documentation
4522 - Implement multisession into libmapi
4523 - Update openchange tools and suite to reflect these changes
4524 - Fix SRow_addprop behavior
4526 NOTE: OpenMsgStore, ResolveNames, GetGALTable and RFR functions
4527 now take a mapi_session parameter.
4530 Use my openchange.org email address.
4535 - Add a session management API for mapiproxy modules. Similar code
4536 already existed for mpm_cache module. Common functions are now
4537 available to all mapiproxy modules through libmapiproxy
4539 - replace smbd with samba in mapiproxy documentation
4541 - Cache calendar, contact, journal, note, task and drafts folders IDs
4542 when GetDefaultFolder call is performed on one of these folders and
4543 keep them until obj_store is released.
4545 - Add a reverse lookup routine which says whether a given FID belongs
4546 to a default folder and which olFolderType it is.
4548 - Remove pointless memory context in GetDefaultFolder
4549 - Move entryID to FID code into a separated routine (GetFIDFromEntryID)
4551 Restore install rule for mapi profiles ldif files in
4552 libmapi-installscript. Fix the MAPI_E_NO_ACCESS bug when mapiprofile
4553 tries to create a new mapi profile store.
4557 - Ticket #103 resolved. openchangeclient can now perform custom folder lookup, fetch, mkdir and rmdir.
4558 - mapi_object_copy routine added to mapi_object.c
4563 Fix missing Month field in LogonTime structure
4567 propagate IDL warning fix to property.idl
4570 Add target for building python API documentation.
4574 Fix samba4 release and git revision
4576 Fix installsamba4.sh script paths
4581 Install OpenChange python modules.
4583 Check for python dir during configure.
4585 ignore generated files.
4587 Stop installing js files.
4589 Use autoconf cache prefix.
4591 Use newer version of Samba 4.
4595 Remove dcesrv_exchange.so from server Makefile rule and
4596 move mapiproxy from TOOLS to SERVER.
4598 dcesrv_exchange and providers Makefile rules are orphan, planned
4599 to be removed (with their associated code) when emsabp merge process
4600 into mapiproxy is over.
4604 Export the Binary_r structure.
4608 Use more descriptive variable names in messages example code.
4610 Add a description of messages to libmapi++ API documentation.
4612 Add messages binary to the ignore list.
4614 Add new example showing libmapi++ message handling, and
4615 associated API documentation and build system changes.
4619 Update the API documentation main page for libmapi++
4623 Add foldertree binary to the ignore list
4625 - Add missing Input parameter
4626 - Add sanity check on ppNames
4629 - Fix a bug in NspiUpdateStat: make plDelta mandatory and use it for in,out
4630 - Add a NspiGetSpecialTable test for Address Creation Template
4633 Fix valgrind-reported error, per ticket #101.
4635 Make sure we clean up after mapitest runs.
4641 - Add msExchUserAccountControl attribute to extended user record
4642 - openchange_newuser can now create/enable/disable an OpenChange account
4644 Exit the test if the WriteStream operation fails
4646 Fix ncacn_ip_tcp binding string for OpenChange server object
4648 With new NSPI IDL, using cValues - 1 is incorrect and lead to errors. Use cValues directly instead
4650 Fix pipe function check and use ndr autogenerated defines rather than static strings
4651 Fix calls to NspiDNToMId
4654 Make sure we set the body and body format properties, to
4655 ensure that the message is shown correctly with
4656 openchangeclient -F.
4661 - Rename oc_* python scripts to openchange_*
4662 - Add Full Exchange 2003 schema (classes and attributes)
4663 - Full Exchange 2003 modified classes and attributes support
4664 - Add prefixmap OID for some Exchange classes and attributes
4665 - Add missing ADSC classes and attributes
4666 - Improve configuration LDIF file with new objects
4668 NOTE: provision.py should find a way to handle firstorg properly
4669 NOTE: oc_provision_configuration.ldif is still incomplete
4672 API documentation improvements.
4676 Add an example to the libmapi++ documentation, and
4677 the right build magic and doxygen linkage.
4679 Minor API documentation fix
4683 Add forgotten part of API documentation fixes for mapitest.
4685 Improve mapitest API documentation.
4689 Use new DeleteFolder flags to clean up folders on deletion.
4691 This doesn't completely resolve ticket #84, but it does help.
4693 Ignore API documentation.
4695 Add Doxyfile to ignore list.
4697 Add initial support for Doxygen API documentation
4702 Implement the remainder of the standard public folders.
4706 Only do header line removal at the start of the file
4707 (lines 20 through 40 seems like a good compromise).
4709 libmapi++ is C++, not C, so we should not optimise
4710 Doxygen output for C.
4714 - Update the Logon_repl IDL (0xFE) and implementation
4715 - Add new folders to the mapi_obj_store for PF folders
4716 - rename pf_finder to pf_search
4719 Suppress some more unwanted headers.
4723 - Add GetStoreState (0x7b) IDL, implementation and mapitest unit
4727 - Update the EmptyFolder IDL
4729 - Update the SearchFlags enum, GetSearchCriteria and SetSearchCriteria IDL
4730 - Add mapitest units for GetSearchCriteria and SetSearchCriteria
4732 Link libmapi++ documentation to main apidocs page
4734 Update GetAttachmentTable IDL and remove the unknown field
4736 - Update DeleteFolder IDL and implementation
4737 - It now supports DeleteFolderFlags as input parameter and can return the ParticalCompletion state
4738 - Sanity checks added at the beginning of the function
4740 - Rename GetRowCount to QueryPosition
4741 - IDL, implementation, documentation and openchange code updated
4742 - ActionType enum fields prefixed with 'ActionType_'. Original
4743 values were causing conflicts while building Perl bindings with
4744 'i386-linux-thread-multi/CORE/opnames.h where OP_DELETE was already defined'
4746 Change enum SaveFlags to uint8_t for doxygen documentation to be generated properly
4748 - Update SaveChangesMessage IDL and implementation
4749 - Add a SaveFlags parameter to SaveChangesMessage function
4750 - update openchange code to reflect this change
4753 Build fix / fix for ticket #99.
4755 Filter out some new #include lines.
4757 This needs to be applied to other modules too.
4761 Update SRow and SRowSet IDL
4763 Delete obsolete input_locale and instance_key structures
4765 Fix WStringArray_r IDL
4767 - Move from MV_UNICODE_STRUCT and LPWSTR to WStringArray
4768 - LPWSTR structure removed
4770 Rename SDateTimeArray to DateTimeArray_r
4772 Rename SGuidArray to FlatUIDArray_r and fix the IDL
4774 Rename MV_LONG_STRUCT to LongArray_r
4776 Rename SBinary to Binary_r
4778 - Add removal of libmapi++ Doxyfile in make distclean rule
4779 - Add Doxyfile to svn:ignore
4781 Rename SShortArray to ShortArray_r
4783 - Move from SLPSTRArray to StringArray_r
4784 - LPSTR structure removed
4786 Rename MAPIUID to FlatUID_r
4788 Fix lexer warnings during compilation (ticket #100)
4790 - Update the EcDoConnect IDL (ref. ticket #99)
4791 - Add new fields to the emsmdb info structure
4792 - Add doxygen comments to libmapi/emsmdb.c
4795 Reduce warnings when compiling with 64-bit arch.
4797 Initial checkin of infrastructure for libmapi++ API documentation.
4801 - MAJOR NSPI protocol and libmapi stack update
4802 - All NSPI protocol functions implemented
4803 - NSPI stack fully documented
4804 - NspiGetHierarchyInfo renamed to NspiGetSpecialTable
4805 - NspiDNToEph renamed to NspiDNToMId
4806 - instance_key removed from nspi_context and set as a parameter to NSPI functions
4807 - SPropertyRestriction renamed to PropertyRestriction_r
4808 - FlagList structure removed and replaced by a SPropTagArray
4809 - MAPI_SETTINGS removed and replaced by a STAT structure
4810 - new MAPI property tags added to libmapi/conf/mapi-properties
4811 - NSPI module added to mapitest
4814 Clean up on failure.
4816 Clean up on failure.
4818 Minor improvements to ensure cleanup on failure.
4820 API documentation fix
4822 API documentation fix.
4824 API documentation fix.
4826 API documentation fix.
4828 API documentation fixes.
4832 API documentation fixes.
4836 Fix EMSMDB 0xb function name
4838 - update EcRRegisterPushNotification IDL
4840 - implement complete MAPI notifications
4841 - update libmapi to reflect these changes
4842 - make openchangeclient prints a brief summary for each notification found
4843 - update ulEventMask used in openchangeclient
4847 - Rename Advise MAPI call to RegisterNotification
4848 - Update RegisterNotification IDL and implementation
4852 - Fix Restrict IDL and implementation
4853 - Add a new parameter to the Restrict function
4856 Add mapi_nameid.h to the ignore list
4858 - Replace libmapi/mapi_nameid.h with a generated mparse file
4859 - Add a mapi_nameid.h parser to mparse.pl
4860 - Add canonical names for named properties
4861 - GetProps and SetProps resolves named properties if they exist
4862 - named properties can now be set directly and make mapi_nameid API be
4864 - replace named property tags hex value with their canonimal names
4865 - replace several use of the mapi_nameid API with smaller code
4867 - Add new IDL file (property.idl) to push/pull structures from binary
4868 blobs and not directly related to any MAPI calls. Include the
4869 generated property.h file into libmapi.h
4871 - Add PT_MV_STRING8 support in pull_emsmdb_property (GetProps reply
4872 parsing) and mapidump_SPropValue
4874 - Add functions to property.c to retrieve RecurrencePattern,
4875 TimeZoneStruct and GlobalObjectId structures (see property.idl).
4877 - add a preliminary version of exchange2ical tool. This version only
4878 dumps calendar folder appointments into ICS file on standard output.
4882 - Update mapi-nameid-properties with a more complete set of properties
4883 - Add a header to mapi-nameid-properties for sanity purposes
4884 - Move named properties with PT_STRING8 type to PT_UNICODE
4885 - update openchange code to reflect these changes
4886 - Add PSETID_Attachment to mapidefs.h
4890 Add missing check on password for the create command
4892 Fix incorrect usage of realm in mapiproxy
4896 Check for provider_rpc_connection retval for RFR functions.
4898 Update Doxyfile to parse mapiproxy/modules files and
4899 include documentation on static functions.
4901 - Add NSPI hook on NspiQueryRows and NspiDNToEph and replace the
4902 Exchange server name with mapiproxy one.
4903 - documentation updated to reflect these changes
4904 - new FAQ question added
4905 - developer documentation improved
4907 Add the RFR mapiproxy file.
4909 - Implement RfrGetNewDSA DN replacement in mapiproxy
4910 - use lp_realm rather than sockaddr in NspiGetProps (FQDN rather than IP address)
4911 - update mapiproxy documentation to reflect these changes
4915 - Add implementation of the NSPI Referral protocol (exchangeRFR)
4916 - update dcesrv_exchange and mapiproxy prototypes for RFR
4917 - add references to the RFR pipe in mapiproxy
4918 - prefix NSPI client connections with a RfrGetNewDSA call
4919 - add RFR functions implementation in libmapi/IMSProvider.c
4920 - add a --getfqdn option to mapiprofile
4921 - fix a minor mapiprofile option parsing bug
4925 Fix mapiproxy dummy module unbind prototype
4927 - Remove flags in EcDoRpc top function, fix compilation vs latest samba4-git version
4928 - EcDoRpc indent updated
4932 Get rid of initialization order warning
4936 - add unbind hook for mapiproxy
4937 - add ahead mapiproxy mode
4938 - add read ahead in cache module
4939 - add synchronization mechanism in cache module
4940 - update mapiproxy documentation to reflect these changes
4944 Temporarily comment out installation of files removed
4949 Fix arguments, paths in provision scripts.
4951 Merge python provision/newuser scripts.
4953 Simplify installation of manpages a bit.
4957 Add configure check for libboost-thread. Add libmapi++ to the build
4958 only if it is available.
4962 - session constructor doesn't login to the server anymore, it calls MAPIInitialize().
4963 - Created session::login() members.
4964 - test applications use default profile.
4968 - Import Alan Alvarez work from libmapi++ into trunk
4969 - Add a g++ check in configure.ac: don't call libmapi++ rules if g++
4971 - Add libmapi++ to the build system
4972 - Add a patch function to installsamba4.sh: rename private to
4973 private_data in samba4 events.h header file
4974 - Change #include directives so it uses <libmapi++ ... rather than
4979 - Add a statitic function monitoring streams over OpenStream and Last
4980 ReadStream operations. Monitoring stream Release is not relevant
4981 since Outlook does not close the handle directly after last
4982 ReadStream operation. Should put in evidence difference between
4983 non-cached(1st retrieval) and cached (further retrieval).
4985 - Fix a few memory leaks
4989 - Commit initial revision for the mapiproxy cache module
4990 - Update mapiproxy hook API for the dispatch routine
4991 - Introduce the mapiproxy structure for modules to control top-level
4993 - Update mapiproxy documentation to reflect these changes
4997 * Fix remaining ByteRead parameter size for ReadStream operations.
5001 * Improve/Update Open/Read/WriteStream IDLs
5002 * Fix ByteRead parameter size for ReadStream operation.
5006 Improve OpenAttach, CreateAttach and DeleteAttach IDL - remove unknown
5009 Propagate r666 changes to OpenMsgStore and fix build
5012 Minor rename of bitmap value to avoid conflict with
5013 Private as a class name.
5017 Minor change: remove old debugging string from mapitest
5019 Fix incorrect header
5021 Remove deprecated mapi_handles API
5024 Initial checkin of some uno (static checker) support
5027 There will be a script to run uno with the right options,
5028 but that requires more work.
5032 Fix OXOMSG-ABORT-SUBMIT return value and return success when expected
5033 error values (MAPI_E_UNABLE_TO_ABORT, ecNoDelSubmitMsg) are encountered.
5035 - Call mapi_object_release in GetDefaultFolder
5036 - Remove pointless references to mapi_object_t
5039 Fix little memory leak.
5043 Fix invalid OpenFolder calls in mapitest modules
5045 Remove references to SaveChanges in doxygen see also statement
5047 - Rename SaveChanges to SaveChangesAttachment (0x25)
5048 - Update SaveChangesAttachment IDL
5049 - Update references to SaveChanges
5051 - Fix the huge memory leak described in Ticket #91
5052 - Rewrite the mapitest NameID test to use the mapi_nameid convenient
5057 - Add mapi_get_errstr auto-generated routine which returns the MAPI
5059 - Add print routine for MAPI retval in mapitest
5060 - Add a color mode (--color) which prints either green or red MAPISTATUS
5061 - Update mapitest modules to use these new routines
5064 Minor API documentation fix.
5070 - Add GetOwningServers (0x42) implementation (IDL + libmapi + mapitest)
5072 - Report and make consistent usage of PropertyProblem in the IDL:
5073 SetProps, DeleteProps and CopyProperties
5075 - Remove unknown field in GetProps and GetPropsAll and replace them
5076 with the correct IDL mapping.
5078 - Add IDL for SetPropertiesNoReplicate (0x79) MAPI call
5080 - Minor typo fix in IMAPIProp.c
5082 Improve CreateMessage request IDL
5084 Improve OpenMessage response IDL
5086 - Add PublicFolderIsGhosted (0x45) MAPI call (IDL + libmapi + mapitest)
5088 - Improve OpenFolder, CreateFolder and OpenPublicFolderByName response
5089 IDL: make these call able to check whether the folder is ghosted or
5092 Revert emsmdb pipe version to the hacked one. Makes mapiproxy work with samba4-alpha5 release.
5094 SeekRow and SeekRowBookmark IDL improved
5096 Improve the SetColumns IDL: remove unknown fields
5100 Minor code convention fix
5102 Check NTSTATUS return value from dcerpc_ndr_request. Prevent mapiproxy
5103 from segfault when invalid dcerpc response is received.
5105 Expose MAPISTATUS error in OXCTABLE-CATEGORY::FreeBookmark.
5106 Requires investigation
5109 Implement GetIdFromLongTermId and GetLongTermIdFromId
5110 functions (ROP:0x43 and 0x44), and associated mapitest.
5112 Documentation typo fix.
5114 Change the QueryNamesFromIDs() call to match
5115 MSDN, including changing the name to QueryNamedProperties().
5117 Also implement mapitest for QueryNamedProperties(),
5118 GetNamesFromIDs() and GetIDsFromNames().
5120 Update torture test to match.
5124 - Build system update: use samba4-alpha5 release with wget method
5125 - introduce 'make samba' and 'make samba-git'
5129 Make sure we have names[] array large enough.
5131 Problem identified using default uno run.
5137 Fix a small errno bug in GetBestBody
5138 Add dump-data and debug options to exchange2mbox
5142 - Move emsmdb interface version back to 0.81 (patch applied in samba4 trunk)
5143 - remove sed hack, modifications applied in samba4 trunk
5144 - update required samba4 git rev required
5151 Minor documentation update: remove deprecated reference to ./bin/smbpython
5153 Fix torture suite entry point name
5154 Fix torture module installation path
5156 - Add implementation for the BestBody algorithm
5157 - Add MAPI_E_NOT_ENOUGH_MEMORY error code
5158 - Remove trailing }}\0 from lzfu code
5159 - Update openchange tools to use GetBestBody rather than
5160 the initial check on PR_MSG_EDITOR_FORMAT
5162 Add a very basic stat module for mapitest: gives a quick overview
5163 of tests which failed at the end of the report.
5165 - Defines a global stream size in mapitest.h
5166 - Decrease stream size from 0x4000 to 0x3000
5167 Sounds like Exchange 2003 SP2 doesn't support 0x4000, return MAPI_E_CALL_FAILED
5172 Fix OC_CHECK_SAMBA_VERSION string
5174 - Move samba4_ver.sh from top dir to script
5175 - update parts of openchange relying on samba4_ver.sh
5177 Add configure check for lib Z
5180 - Temporary fix ldb.pc problem and patch ldb.pc.in
5181 - Update samba4 version to the latest revision
5182 - Add libmapiproxy to svn:ignore proplist
5185 Try a different git revision, just for now.
5189 - Update Samba4 version needed
5190 - Change entry point function from init_module to samba_init_module
5191 - update documentation
5195 Fix calls of ldb_init() as required by newer versions of Samba.
5199 Support newer versions of Samba4.
5203 Add some other standard GUIDs
5211 Use version and soversion in mapiproxy library.
5213 Make modules directory overridable.
5217 Change API as identified on devel mailing list.
5220 After some investigation into an error reported by valgrind, I'm proposing an
5221 API change for the MoveCopyMessages() function.
5223 The signature is currently
5224 enum MAPISTATUS MoveCopyMessages(mapi_object_t *obj_src, mapi_object_t
5225 *obj_dst, mapi_id_t *message_id, bool WantCopy)
5227 The problem is the message_id array. The subtle part is that it needs to be
5228 terminated with a null mapi_id_t*, because of this:
5229 for (request.count = 0; message_id[request.count]; request.count++);
5231 That is a bit error prone - enough so to be wrong in the mapitest.
5233 Now we could just fix the mapitest and document the requirements, or we could
5234 change the signature.
5236 Two ideas for a different signature:
5237 1. We could add a uint16_t count to the signature, that says how long the
5239 2. We could use a better data structure than mapi_id_t*. I'm suggesting
5241 enum MAPISTATUS MoveCopyMessages(mapi_object_t *obj_src,
5242 mapi_object_t *obj_dst,
5243 mapi_id_array_t *message_id,
5248 Add mapitest coverage for CopyTo operations on
5249 folders and attachments, and update API docs.
5251 Also fix one place where we inadvertently used
5252 CopyProps instead of CopyTo...
5256 Typo fixes in comments.
5258 Minor documentation updates.
5260 Clean up created message for SpoolerLockMessage() test.
5264 Update samba4 version test.
5268 Make sure properties are copies into the last valid
5269 location in the extended array (i.e. count-1) not the
5272 Also, make sure we cast the data to a uint8_t for
5273 conversion to boolean.
5275 Also fix compile warning about returning integer instead
5278 We may read up to 0x1000 bytes, so ensure there is
5279 enough room to add the terminating null.
5281 Minor cleanup of the talloc context for FreeBookmark().
5283 Also change around some code to protect things a bit
5284 better against null pointer inputs.
5288 Implement a bit more mapitest for CopyTo (0x39), in
5291 Also make it clean up and report failures properly.
5295 Implement the CopyTo operation (0x39), including initial mapitest.
5296 JK previously committed the IDL for this.
5298 Also make CopyProps (0x67) use an appropriate data structure for
5299 its IDL and update implementation to match.
5303 Minor documentation updates/corrections.
5307 Introduce a default case for MAPI Restriction. In some circumstances -
5308 while Outlook creates an OOF Rules - it sets a PT_SRESTRICT mapi
5309 property tag which value is set to 0xFF. However 0xFF doesn't match
5310 any restriction case.
5314 - Add IDL for OpenEmbeddedMessage (0x46) MAPI call
5316 - Add IDL for ReloadCachedInformation (0x10) MAPI call
5318 - Add IDL for CopyTo (0x39) MAPI call
5320 - Update the Samba4 GIT revision needed to run openchange properly
5322 - import mapiproxy project from mapiproxy branch
5323 - add custom proxypack MAPI call
5324 - remove deprecated dcesrv_exchange_remote
5327 Add missing part of mapitest for SetReadFlags
5329 This should have been part of r578.
5331 mapitest for SetReadFlags
5333 Implement SetReadFlags (operation 0x66).
5335 Also minor API docs fix.
5337 Move some test infrastructure from the oxctable.c module
5338 into the common area.
5340 Fix IDL error for SetReadFlags, and use existing flags
5341 define (MSGFLAGS_READ) instead of creating a new set.
5343 Build fix for relocation of mapiproxy/ to be under the
5344 top level directory (instead of under the utils/
5349 merge from mapiproxy branch:
5350 * ndr_push Logon_req manually
5352 merge from mapiproxy branch:
5353 * Add IDL and server boiler template for EcDoConnectEx (0xA)
5356 * Fix ndr_push_mapi_response code in ndr_mapi.c
5358 * Add the ndr_push_EcDoRpc_MAPI_REPL function in
5359 ndr_mapi.c. Handles special Notify and Pending cases
5361 * Handle op_MAPI_Pending case properly in
5362 ndr_pull_EcDoRpc_MAPI_REPL
5364 * Add code to ndr_push QueryRows in ndr_mapi.c: Do not push any
5365 DATA_BLOB if there is no RowCount
5367 merge from mapiproxy branch:
5368 * Fix GetReceiveFolder [out] IDL
5369 * Fix some naming convention typo
5371 merge from mapiproxy branch:
5372 * Fix SetMessagReadFlag [out] IDL
5374 - Add [flag(NDR_REMAINING)] to SetMessageReadFlag. This is not
5375 perfect, but it will prevent mapiproxy from ndr_pull error while
5376 setting message read flag on public folders messages.
5378 merge from mapiproxy branch:
5379 * Fix CreateMessage [out] IDL
5381 merge from mapiproxy branch:
5382 * rename OpenModeFlags to OpenFolder_OpenModeFlags in OpenFolder
5383 * rewrite OpenMessage [in] IDL and report changes in
5384 libmapi/IStoreFolder.c
5386 merge from mapiproxy branch:
5387 * Add IDL for Pending (0x6e) MAPI call
5388 * Reorder some MAPI calls in EcDoRpc_MAPI_REPL_UNION
5390 - Add SetReadFlags to EcDoRpc_MAPI_{REQ,REPL}_UNION
5392 merge from mapiproxy branch:
5393 * Add IDL for SetSyncNotificationGuid (0x88) MAPI call
5395 merge from mapiproxy branch:
5396 * Add IDL for SyncGetTransferState (0x82) MAPI call
5398 merge from mapiproxy branch:
5399 * Add IDL for SyncImportReadStateChanges (0x80) MAPI call
5401 Note: This IDL is temporary and should be improved after completion of
5402 the merging process.
5404 merge from mapiproxy branch:
5405 * Add IDL for SyncOpenCollector (0x7e) MAPI call
5407 merge from mapiproxy branch:
5408 * Add IDL for DeletePropertiesNoReplicate (0x7a) MAPI call
5410 merge from mapiproxy branch:
5411 * Add IDL for SyncImportMessageMove (0x78) MAPI call
5413 merge from mapiproxy branch:
5414 * Add IDL for SyncUploadStateStreamBegin (0x75) MAPI call
5415 * Add IDL for SyncUploadStateStreamContinue (0x76) MAPI call
5416 * Add IDL for SyncUploadStateStreamEnd (0x77) MAPI call
5418 merge from mapiproxy branch:
5419 * Add IDL for SyncImportDeletes (0x74) MAPI call
5421 merge from mapiproxy branch:
5422 * Add IDL for SyncImportHierarchyChange (0x73) MAPI call
5424 merge from mapiproxy branch:
5425 * Add IDL for SyncImportMessageChange (0x72) MAPI call
5427 merge from mapiproxy branch:
5428 * Add IDL for SyncConfigure (0x70) MAPI call
5430 merge from mapiproxy branch:
5431 * Add IDL for RegisterOptions (0x6f) MAPI call
5433 Note: This call is undocumented in Microsoft documentation, but MSDN
5434 RegisterOptions function generates this call on the wire.
5436 merge from mapiproxy branch:
5437 * Add IDL for Progress (0x50) MAPI call
5439 merge from mapiproxy branch:
5440 * Add IDL for FastTransferSourceGetBuffer (0x4a) MAPI call
5442 merge from mapiproxy branch:
5443 * Add IDL for GetPerUserLongTermIds (0x60) MAPI call
5444 * Add IDL for GetPerUserGuid (0x61) MAPI call
5445 * Add IDL for ReadPerUserInformation (0x63) MAPI call
5447 merge from mapiproxy branch:
5448 * Add IDL for LongTermIdFromId (0x43) MAPI call
5449 * Add IDL for IdFromLongTermId (0x44) MAPI call
5451 merge from mapiproxy branch:
5452 * Add IDL for ModifyRules (0x41) MAPI call
5454 merge from mapiproxy branch:
5455 * Add PT_SRESTRICT support in mapi_SPropValue_CTR
5457 * Add PT_ACTIONS and RuleAction support in mapi_SPropValue_CTR
5459 * Fix mapi_SNotRestriction NDR push routine - add a wrapper to
5460 work around the no-pointer deep recursion pb and remove
5461 existing nopull,nopush,noprint code from ndr_mapi.c
5463 * Fix mapi_SComment_Restriction IDL
5466 - Introduce PT_MV_UNICODE support in mapi_SPropValue_CTR (IDL only)
5467 - use mapi_LPWSTR for PT_MV_UNICODE
5468 - rename mapi_LPWSTR structure to mapi_name in Kind structure and
5469 change its field names.
5471 - Fix emsmdb version
5472 - Change MAPI opnum enum identation -- Helps to fine down merging from
5478 Minor API documentation fixes.
5480 Update label to reflect SetReadFlags -> SetMessageReadFlag
5483 This should have been part of r529 - missed it.
5487 merging from mapiproxy branch:
5488 - Fix MV_UNICODE_STRUCT and unicode strings
5489 - Keep LPWSTR for exchange_nsp and move from LPWSTR to
5490 mapi_LPWSTR for exchange_emsmdb
5491 - Add the NspiGetTemplateInfo IDL
5492 - Fix the NspiUpdateStat IDL
5494 Fix build: SetMessageReadFlag function name was not propagated in the
5498 Initial merge of changes for rename of SetReadFlags to
5499 SetMessageReadFlags (op 0x11) and IDL for SetReadFlags
5502 Use private_data instead of private, for C++ happiness.
5504 Minor cleanup. Using "try" confuses my c++ compiler...
5506 This is really part of r525. It moved to IMAPITable.c
5508 Update the table operations:
5509 - implement ExpandRow and CollapseRow
5510 - implement GetCollapseState and SetCollapseState
5511 - add mapitest coverage for the above, plus the Restrict call
5512 - implement ResetTable
5513 - implement FreeBookmark
5514 - add mapitest coverage for SRowSet parsing code
5516 - various API documentation bits
5519 Use right directory for samba4_ver.sh script.
5521 Use common location for Samba 4 git revision.
5525 Use PT_ERROR where appropriate.
5527 Update the SRowSet parser, fixing breakage I introduced.
5531 Update examples to reflect recent API changes.
5534 Don't rely on absolute file paths since the distribution may be installing
5537 make scripts executable.
5541 Avoid segfaulting if you ask for a specific test or tests and
5542 forgot to start the server.
5545 [bradh@conferta trunk]$ ./bin/mapitest --mapi-calls=OXCTABLE-CATEGORY --mapi-calls=OXCTABLE-RESTRICT --mapi-calls=NOSERVER-LZFU
5546 Failed to connect host 192.168.11.77 on port 135 - NT_STATUS_HOST_UNREACHABLE
5547 Failed to connect host 192.168.11.77 (192.168.11.77) on port 135 - NT_STATUS_HOST_UNREACHABLE.
5548 MapiLogonEx : MAPI_E_RESERVED (0xFFFFFFFF)
5549 #############################[mapitest report]#################################
5550 [*] Date : Sun May 25 11:45:29 2008
5551 [*] Confidential mode : [no]
5552 [*] Samba Information : 4.0.0alpha4-GIT-44d8b70
5553 [*] OpenChange Information : 0.8-SVN-build-510 (Romulus)
5555 [*] System Information :
5557 Kernel release : 2.6.23.17-88.fc7
5559 ###############################################################################
5563 [TEST] NOSERVER-LZFU
5564 ------------------------------------------------------------------------
5565 * uncompress_rtf2 : 0x00000000
5566 * uncompress_rtf2 : PASSED
5567 ------------------------------------------------------------------------
5568 [RESULT] NOSERVER-LZFU: [SUCCESS]
5569 ========================================================================
5571 [*] OXCTABLE-RESTRICT
5572 Server is offline, skipping test: "OXCTABLE-RESTRICT"
5573 [*] OXCTABLE-CATEGORY
5574 Server is offline, skipping test: "OXCTABLE-CATEGORY"
5578 ignores objects that contain invalid handlers in mapi_object_release().
5580 Patch by Alan Alvarez. Compile tested, passes mapitest on SBS2003.
5584 Fix API documentation to match signature.
5588 Update QueryRows IDL and implementation to match
5591 The main work here is reworking the SRowSet parsing
5596 Typo fix - allow cleanup to work properly.
5600 Make sure it has a return value.
5604 Rename GetColumns remote operation to GetColumnsAll, and
5605 fix up IDL and implementation to match.
5607 Add some more unit test coverage, and pretty-up the
5610 Fix up breakage introduced in r493.
5613 Make sure nagios directory gets created if it didn't exist yet.
5617 Refactor the unit tests.
5619 Extract out the setup and some of the cleanup code.
5623 - Update openchange code to work with Samba4 4.0.0alpha4-GIT-44d8b70
5624 - Use event_context structure
5625 - update installsamba4.sh script to revert to this revision.
5626 - update torture modulesdir reference
5629 Look a little bit harder for the Samba installation.
5633 - Add GetLocalReplicaIds MAPI call (IDL + implementation + mapitest)
5634 - Add OXCFXICS mapitest module
5638 - Fix "the very secret" openchange coding style
5639 - Add Copyright for our humble new libmapi developer ;-)
5642 Implement the CopyProperties operation, including
5643 a mapitest for this.
5647 - Add TransportSend MAPI call (IDL + implementation + mapitest). This
5648 code maybe needs some review regarding memory.
5650 - Add the GetTransportFolder MAPI call (IDL + implementation +
5653 - Add SpoolerLockMessage MAPI call (IDL + implementation + mapitest)
5655 - Add SetSpooler MAPI call (IDL + implementation + mapitest)
5657 - Add GetRulesTable (IDL + implementation + mapitest)
5658 - Add the OXORULE mapitest suite
5664 Make sure config.mk is the last file removed during distclean.
5668 - Add the Abort MAPI call (IDL + implementation)
5670 OpenChange doesn't support yet asynchronous operation which explains
5671 why no associated mapitest test has been implemented. This should be
5674 - Add the MoveFolder MAPI call (IDL + implementation + mapitest)
5675 - Fix some typo in mapitest doxygen
5677 - Add MoveFolder MAPI call (IDL + implementation + mapitest)
5678 - Fix some doxygen stuff
5679 - add a common function within mapitest which looks for a folder name
5680 within a container and return the opened folder object on success.
5682 Add auto-generated Doxyfile to the svn ignore list
5684 - Add AbortSubmit MAPI call (IDL + implementation + mapitest)
5686 - Uninitialize MAPI and general memory context at the end of mapitest
5689 Clean up / flush the stream after use.
5691 Saves a bit more "still reachable" in valgrind too.
5695 - Rename CopyMessages to MoveCopyMessages
5696 - Improve IDL + implementation and mapitest added
5699 Make sure the version shown for mapitest documentation
5700 is automatically set to match the package version.
5702 complete the rest of the API documentation autonumbering.
5705 Remove duplicate use of $(SHLIBEXT).
5707 Avoid parallel builds for now.
5711 Fix GetContentsTable binding in perl swig
5713 - Improve the GetHierarchyTable and GetContentsTable IDL and public
5714 IDL implementation (new parameters in,out)
5717 Initial part of automatic list numbering for doxygen comments.
5719 This doesn't work correctly with the current apidocs.css, which
5720 turns the list numbers into bullet points for reasons I don't
5725 - Improve the DeleteMessages IDL request
5727 - Update libmapi version from 0.7 to 0.8
5729 - Public API change for the GetReceiveFolder function; now takes a
5730 message class as 3rd parameter.
5732 - Improve GetSearchCriteria request IDL (unknown removed)
5733 - update libmapi copyright headers 2007 -> 2007-2008.
5735 - Improve the SubmitMessage IDL
5736 - minor indentation fixed in IMessage.c
5738 - Add CopyToStream MAPI call (IDL + implementation + mapitest)
5740 - Add SeekStream MAPI call (IDL + implementation + mapitest)
5741 - Add SetStreamSize MAPI call (IDL + implementation + mapitest)
5743 - Add CommitStream MAPI call (IDL + implementation + mapitest)
5744 - Add GetStreamSize MAPI call (IDL + implementation + mapitest)
5745 - refactor the stream test to include all stream related operations
5746 - add a common function which generates a random ASCII blob of data
5749 Add doxygen support for the mapitest examples.
5752 Allow cleaning individual parts.
5756 - Add GetStatus call (IDL + implementation + mapitest)
5758 - Fix format string problem in mapitest headers
5760 Run offline suites by default.
5762 - Introduce the online/offline mode for suite
5763 - Fix Exchange headers print bug when server is offline
5764 - reset errno to 0 before running new test
5767 Install the libmapiadmin.h header.
5769 Fix a compile-time warning on amd64, for the second
5770 argument to the getline() call - incompatible pointer
5773 I'm assuming that size_t is equivalent to uint32_t
5774 on a 32-bit architecture, but not on a 64-bit arch.
5776 A quick test showed no difference in actual output.
5779 Remove bashisms in installsamba4.sh
5783 - Add ReadRecipients MAPI call (IDL + implementation + mapitest)
5784 - Improve some ModifyRecipients and Recipients structure naming
5788 - Add RemoveAllRecipients call (IDL + implementation + mapitest)
5790 - Add OpenPublicFolderByName call added (IDL and implementation).
5792 - Note: the reply IDL doesn't handle Server and ServerCount yet.
5794 - Note: this call only refers to NNTP folders (e.g: folders located
5795 within "Internet Newsgroups". If developers use this call within "All
5796 Public Folders", then the call with return MAPI_E_NOT_FOUND.
5798 - Call not added to mapitest cause it require RightsAuthor permissions
5799 on Internet Newsgroups which is not the case by default.
5801 - dump-data and debug options added to mapitest
5802 - FOLDER suite renamed to OXCFOLD (naming convention)
5804 Rename module folder to oxcfold
5806 Replace the existing mapitest tool with a new implementation. It is
5807 less complete but more modular.
5810 Add proto headers to ignore file.
5814 OpenFolder request: replace unknown field with OpenModeFlags
5816 - Rename 0xFE opnum from OpenMsgStore to Logon
5817 - Update the Logon request IDL
5820 Add BEGIN_DECLS for private_proto.h.
5822 Add forgotten part of rev435.
5824 Add unit test framework for compressed RTF decoding.
5826 Refactor lzfu.c to improve testability.
5830 Fix openchangeclient --mailbox --pf with wasn't launched anymore due
5831 to some incorrect sanity check tests.
5833 - Remove deprecated fuzzer_msgstore torture test
5834 - replace mapi_flags with logon_id in EcDoRpc_MAPI_REQ
5838 A couple of minor fixes to make it read better.
5841 properly clean up sofiles
5843 Import exchange nagios check script by Bill Edmunds.
5845 Add support for creating libocpf soname symlink.
5847 Use standard include for uint64_t definition.
5849 Cleanup talloc and tdb before building samba4.
5853 Check for ocpf_set_Recipients retval (MAPI_E_NOT_FOUND)
5855 - Reset ocpf to NULL after release so the ocpf_init/release couple can be called more than once.
5856 - Sanity check on recipient, avoid parsing if no recipient is set. Return MAPI_E_NOT_FOUND instead.
5858 Add reference to the ocpf lib within the pc file.
5862 Remove duplicate SWIG instructions (already covered by stdint.i).
5864 Ignore files created by swig.
5866 Use config.mk in swig/perl/Makefile.
5868 Allow sambaprefix and prefix to be different. Allow building with unknown
5869 Samba git revisions (will still warn though).
5871 Add --with-samba argument to configure so samba and openchange can be installed in different directories.
5875 Add domain to the mapiprofile dump output.
5877 Fix OpenMessage IDL and GetRecipientTable fetched data
5879 -This line, and those below, will be ignored--
5882 M trunk/exchange.idl
5883 M trunk/libmapi/IStoreFolder.c
5884 M trunk/libmapi/emsmdb.c
5885 M trunk/libmapi/IMessage.c
5889 Fix typo, change samba-config -> samba-hostconfig.
5893 - Add openchangepfadmin to make install
5894 - Add openchangemapidump and locale_codepage to make clean
5898 Merge the samba4-latest branch.
5902 Revert so version number to 0.7
5904 Fix Perl bindings: update mapidump_message
5906 ** Start libmapi-0.8 ROMULUS development **
5908 Add ChangeLog and apidocs to the releases
5910 - Delete unmaintained regression suite
5911 - Fix typo error in torture-clean rule
5913 Add modified release script originally from abartlett/samba4
5915 - Check for specific Samba4 git revision in configure.ac
5916 - Prefix locale functions with lcid and make them _PUBLIC_
5919 API documentation update.
5926 Add installation script for samba4
5928 - Apply the nspi pointer patch - make openchange works with
5929 samba4-alpha3 git 41309dc
5934 Move the top level API documentation to an "overview"
5935 section and add a redirect to that overview.
5937 This keeps the doxygen output more nicely separated for
5940 Also, generate the man pages where the install expects
5945 - Fix strsep bug in openchangeclient
5946 - Add RECIPIENT support to libocpf
5948 - escape/unescape strings support added
5949 - PT_MV_STRING8 type added to OCPF write API
5953 - return MAPI_E_NOT_FOUND if NspiGetMatches doesn't return any results
5954 (based upon patch from lofi@mountproc.org)
5955 - makes the workstation parameter of mapiprofile optional (use
5956 gethostname if not defined by the user on command line)
5958 - Fix an allocation memory problem in cast_SPropValue
5959 - update svn:ignore proplist
5963 Update the documentation build so it keeps generating an embedded
5964 website in with apidocs/html as root directory.
5966 - Add support for PT_UNICODE and PT_SHORT to libocpf
5967 - Initial implementation of the libocpf write API
5968 - Update libocpf documentation
5969 - add --ocpf-dump option in openchangeclient
5970 - Fix realdistclean rules for server
5971 - add cast_SPropValue function to libmapi/property.c which cast
5972 mapi_SPropValue to SPropValue
5975 Split API documentation into two separate sections - one
5976 for libmapi and one for libocpf.
5978 Also add in a top level intro page.
5982 New build system which gathers a list of things that can be built with
5983 the libraries/utilities the user has installed and build that when
5988 Add missing allocation for OLEGUID
5990 --ocpf-syntax doesn't require MAPI to be initialized. Furthermore
5991 makes ocpf-syntax "exclusive" (quit after performing the operation).
5994 r371 was bad. What was I thinking with that nonsense!
5996 Revert to something sane.
5998 Make the ./bin/ directory if it doesn't exist.
6000 This should resolve ticket #33.
6004 Improve language handling when creating profiles.
6006 You can now get a list of valid languages and use either
6007 the language code ID or the language name to specify what
6008 language later versions of Exchange should reply with.
6010 Typo fix - duplicate ; at the end of the structure.
6012 Match format to unsigned int argument.
6014 Make the format specifier match the unsigned argument.
6018 propset svn:ignore update
6020 Update propset svn:ignore on doc/examples and libocpf targets
6022 - Fix ticket #29: http://trac.openchange.org/ticket/29
6024 - use access(2) to see if the database already exists
6025 - test if the profile already exists prior trying to add it
6026 - add descriptive error messages
6027 - catch CTRL-C signal and run a profile deletion routine
6030 Update API documentation for ocpf_nproperty_add().
6036 Fix mapidump_message call parameters
6040 Add fid/mid parameters to mapidump_message and changed
6041 openchangeclient_fetchitems to reflect these changes.
6043 Patch from Brad Hards <bradh@frogmouth.net>:
6044 updates the OCPF doxygen file.
6046 Patch from Brad Hards <bradh@frogmouth.net>:
6047 adds the doc/examples into the build system and enables make examples.
6049 Patch From Brad Hards, <bradh@frogmouth.net>:
6050 API documentation update and minor fix for the error value change.
6058 - Add PT_BINARY property support to OCP
6059 - Add stream support to OCPF for large PT_BINARY blobs.
6060 - Fix a bug which prevented from having no/empty PROPERTY or NPROPERTY
6065 - Prevent from assigning a value which type doesn't match with
6067 - Add missing substitution variable support for some named properties
6069 - Improve sample_appointment.ocpf example
6070 - Add PT_MV_STRING8 keyword to the list of supported property type
6075 Improve OCPF PT_MV_STRING8 support.
6077 - Initial revision for libocpf and its documentation
6078 - YACC support added to the build system
6079 - custom lid and string support in mapi_nameid
6080 - lookup functions added for OOM, lid and string
6081 - OCPF commands added to openchangeclient (ocpf-file, ocpf-syntax,
6083 - PR_FID displayed in openchangeclient --mailbox
6084 - PT_MV_STRING8 support added to cast_mapi_SPropValue
6088 Patch from Brad Hards <bradh@frogmouth.net>:
6089 updates code to build with current API
6091 Patch from Brad Hards <bradh@frogmouth.net>:
6092 little update for some API dox
6096 - Add --update option to openchangeclient and allow users to modify
6097 existing messages (calendar, task, contact, note)
6098 - Add --delete option to openchangeclient and allow users to delete
6099 existing messages (calendar, task, contact, note)
6100 - Add some folder/message unique ID to mapidump outputs and send*
6101 openchangeclient functions.
6102 - Fix a bug in set_SPropValue: add sanity check on unicode
6103 string. Thanks to Suman Manjunath for this patch.
6104 - Fix mapidump_task function and identifiers of named properties used.
6108 Fix missing sanity check on priority
6110 Fix a bug in openchangeclient when tasks are created without body
6112 private flag added to openchangeclient appointments
6114 Fix folder IDs problem for Exchange 2007 SP1
6118 Fix names IDL against Samba4 4.0.0alpha3-GIT-41309dc
6122 - Fix a bug in IStoreFolder.c:OpenMessage which was also affecting
6123 GetRecipientTable. We were extending SPropTagArray prior calling
6124 emsmdb_get_SRow. This was causing ndr_pull_error in OpenMessage_repl
6125 and erroneous data to be inserted in the SRow.
6127 - Fix libmapi/socket/interface.c:
6128 - Use the latest version from Samba4 which removes reference to
6130 - Moves struct interface declaration to netif.h
6131 - Report changes to emsmdb.c notification functions.
6133 - Change GetGALTable prototype to match general libmapi policy. Remove
6134 the usage of bool and replace it with uint8_t. Possible values added
6139 - Improve NspiQueryRows IDL and implementation
6140 - Add GetGALTable implementation: fetch all the Global Address List
6142 - Add --userlist option to openchangeclient
6143 - Add a convenient and basic dumping function for Global Address List
6146 - Improve OpenMessage reply IDL
6147 - Fetch mapi recipients from OpenMessage reply
6148 - Add GetRecipientTable convenient function
6149 - Add OPENCHANGE-MAPI-RECIPIENT torture test to test
6150 GetRecipientTable implementation.
6151 - Add convenient SPropTagArray_add function
6152 - Add internal emsmdb_get_SRow routine
6156 Patch from Suman Manjunath <msuman@novell.com>:
6158 - Adds named-properties which define recurrence patterns for
6159 appointment and task.
6160 - Adds named properties for appointment timezone
6162 - Fix the SNotRestriction IDL and write custom push,pull,print
6164 - Add 2 new MAPI calls to the IDL:
6165 * GetSearchCriteria,
6167 - add sample {Get,Set}SearchCriteria torture test
6168 - add convenient mapi_id_array implementation
6169 - add GetDefaultFolder support for CommonView and Finder folders
6173 Make sure directory exists.
6177 - Fix tiny 'nail down samba4 version' bug
6178 - update the minimal Samba4 required version
6180 - Add FindRow call to the IDL
6181 - Improve mapi_Restriction support
6182 - Remove deprecated ndr_print_QueryRows function
6183 - Add a print function for fuzzyLevel
6184 - Add preliminary FindRow implementation test to MAPI-RESTRICTIONS
6186 - Add couple of new MAPI tags to mapi-properties
6187 - change initial bookmark index to 3
6191 - Add 2 new MAPI calls to the IDL and mapitest:
6193 * GetReceiveFolderTable
6195 - Fix a bug in the SortTable test when no messages are returned by
6198 - Add SeekRowApprox to the IDL and mapitest
6199 - Fix some doxygen typo
6201 - New calls added to the IDL, torture suite and mapitest:
6204 - Internal mapi_object_bookmark_t implementation added to
6206 - SBinary_short default ndr_print function changed to custom
6210 Temporary fixes unexpected segfault in SortTable test. Emails sent
6211 during the Submit test have sometimes not yet been dispatched when the
6212 SortTable test begins. This fix adds a sleep(1) and an arbitrary
6213 number of attempts (5).
6215 Add 2 new MAPI calls to the IDL and libmapi:
6219 Tests for SortTable added to mapitest and the torture suite
6220 Test for AddressTypes added to mapitest.
6224 Fix perl bindings and fetchmail test
6226 2 new MAPI call added to the IDL and mapitest:
6232 - Add DeleteAttach MAPI call
6233 - Add new mapi unit tests:
6237 * GetAttachmentTable
6239 - Update mapitest README
6240 - Add some convenient functions to mapitest_common.c
6244 Add a preliminary draft of the mapitest standalone MAPI test suite.
6250 - Fix the build with the latest Samba4 version.
6252 - Add a basic libmapi/version.h auto-generated
6253 file (based on Samba4 one)
6254 - Remove some warnings when compiling the utf8
6256 - Add a emsmdb_info structure to fetch some
6257 information from the Exchange server
6259 WARNING: Please note that EMSABP is definitely broken and
6260 requires a review and update.
6263 DESTDIR should never get into any source files, that would defeat its purpose.
6267 Fix the torture suite.
6271 provide extra required argument.
6273 Store a loadparm context in the global mapi context.
6275 Deal with samba version.h's that don't contain the Subversion revision.
6279 Use SWIG-provided typemaps for stdint.
6283 Fix Content-Type field in exchange2mbox
6284 Reported by Yuriy Filatov <yuriy.filatov@gmail.com>
6288 - Improve the CreateMessage IDL
6289 - Add new parameters to IMAPIFolder CreateMessage libmapi function
6290 - Add --mkdir --rmdir options to openchangeclient
6291 - Update the CreateFolder API and openchangeclient documentation
6292 - Fix CreateFolder calls in openchange tools and torture suite
6293 - Fix gendb_search warning
6297 Add new PSETID_Address named properties
6299 Fix a few code convention typos
6301 Patch from Suman Manjunath <msuman@novell.com> applied:
6302 converts a 'struct timeval' to 'NTTIME'.
6303 minor extension of 'set_SPropValue_proptag', used while setting PT_SYSTIME properties.
6307 update Samba4 first revision to 26100
6310 Cope with ndr updates.
6314 Patch from Brad Hards: Fix possible Heap overflow in lzfu code
6318 Fix profile creation in a clustered Exchange 2007 environment.
6322 Fix QueryColumns req size.
6326 ** Start libmapi-0.7 PHASER development **
6328 add --dump-data option to mapiprofile for debugging purpose
6332 openchangepfadmin (1) man page added
6334 Store messageID in the object when SaveChangesMessage is called
6336 Nail down Samba4 version for libmapi-0.6
6340 - Add PR_MSG_EDITOR_FORMAT property to the sendmail operation
6341 - Fix body dump bug when PR_MSG_EDITOR_FORMAT property is missing (default set to PLAINTEXT)
6342 - Continue to process the mailbox when a problem is encountered with mesage contents (not attachment)
6343 - Fix a typo bug in openchangeclient body help string
6345 Update doxygen section
6349 - Add doxygen man (3) pages to installman and uninstallman rules
6350 - do not run doxygen if apidocs already exists
6354 Move documentation to doxygen
6358 Add convenient date related functions for implementors:
6359 returns a timeval struct matching a PT_SYSTIME property
6360 for improved date manipulation in 3rd party softwares
6364 Fix build to work with latest Samba4 revision (4.0.0alpha2-SVN-build-25722)
6366 Fix make realdistclean when swig perl is enabled
6368 Fix swig perl bindins compilation: move *.o to *.po
6370 use talloc_memdup to copy const data in the body DATA_BLOB
6371 Should only provide valid pointer to talloc_free
6375 Fix the DeleteMessages [out] IDL.
6377 The remaining bytes were not part of DeleteMessages but
6378 MAPI notification (0x2a)
6382 - Add RTF support in exchange2mbox
6383 - Use openchange-tools public functions
6384 - Replace GetPropsAll calls with GetProps
6387 * Use GetProps rather than GetPropsAll for message dump
6388 * Rely on PR_MSG_EDITOR_FORMAT to select the type of body
6389 * Open a stream for PR_BODY and PR_HTML if the size exceeds max property size
6391 -This line, and those below, will be ignored--
6394 A trunk/utils/openchange-tools.c
6395 M trunk/utils/openchangeclient.c
6396 M trunk/utils/openchange-tools.h
6397 M trunk/utils/openchangeclient.h
6398 M trunk/libmapi/mapidefs.h
6406 Remove useless svn:ignore
6409 Add WrapCompressedRTFStream function for PR_RTF_COMPRESSED content.
6411 Original lzfu decompress routine fetched from libpst-0.5.2
6413 make enum MAPISTATUS variables naming uniform in libmapi
6417 Add PT_CLSID case to get_SPropValue_data
6419 Add/Fix pull property support for PT_UNICODE and PT_CLSID (used by GetProps)
6421 Patch from Brad Hards <bradh@frogmouth.net>:
6422 Fix compilation for x86_64 platforms.
6426 More svn:ignore updates
6428 Update of svn:ignore
6432 added the IDL license
6434 Convert OpenChange to GPLv3
6436 - Add .po files to make clean
6437 - Fix a couple of warnings in the utf8 conversion lexer
6438 - Prefer long filenames to truncated one for attachments in openchangeclient
6442 Prevent exchange2mbox from segfault when PR_MESSAGE_DELIVERY_DATE is unset
6444 Add PT_CLSID and PT_MV_CLSID support to the IDL
6446 - Add new named properties
6447 - Convenient function for MNID_STRING props lookup added
6450 Make .po a recognized suffix.
6454 Use -fPIC for library objects.
6458 - Rename GetAllNamesFromIDs to QueryNamesFromIDs (better naming)
6459 - fix SPropValue_CTR boolean to uint8_t in the IDL and emsmdb.c
6461 - add mapi_nameid convenient interface and headers
6462 - mapi-named-properties populated, parser added to mparse.pl, file
6463 added to the build system
6465 - remove any incorrect reference to named properties in openchange
6468 - remove deprecated libmapi/mapi.h file
6469 - remove unused ulFlag parameter from IProfAdmin functions
6470 - remove unused memory context from libmapi/x500.c
6472 - support sendnote operation in openchangeclient
6473 - optimize check/list oc_element functions in openchangeclient
6475 - update swig interface
6479 - New MAPI calls: Named properties support
6482 * GetAllNamesFromIDs
6484 - Modified MAPI calls:
6487 These calls now have more granularity in libmapi with flags support
6489 - sample mapi-named-properties file introduced in libmapi/conf
6491 - Torture test suite:
6492 * suite temporary fixed (import torture_rpc_* functions from
6494 * torture_namedprops test added
6496 - SWIG Perl bindings fixed according to changes described above
6497 - minor improvements in libmapi/mapidump.c
6501 - Decrease MAX_READ_SIZE to 0x1000
6502 - Clean-up Read/WritreStream related code
6503 - add dump-data option to openchangepfadmin (debugging purpose)
6508 - remove reference to core/nterr.h
6509 - add global_loadparm reference where missing
6510 - add reference to core/error.h where needed
6513 Improve output during build.
6517 Pass loadparm contexts, should fix the build with newer Samba revisions.
6521 - WriteStream API changed: now returns the number of bytes written
6522 - WriteStream man page updated
6523 - 16 bytes extra-data bug fixed when sending attachments in openchangeclient
6524 - Set open mode to 0600 when attachments are stored on the filesystem
6529 Fix preliminary Perl bindings so it works with Samba4 alpha2
6530 and latest libmapi revision.
6532 Patch from Andrew Gaylard <ag@computer.org>:
6534 - When calling openchangeclient with the --dump-data switch, it will
6535 dump core, since the global_mapi_ctx pointer isn't initialised yet.
6536 The fix is to wait until it's set before accessing it.
6538 Patch from Andrew Gaylard <ag@computer.org>:
6539 - Leaving any blank lines before .TH directives appears to cause a blank page
6540 to be output when converting man pages to DVI files (which is a step to converting
6541 them to PDF). The following patch remove the blank line above the .TH in each man page file.
6543 - mapiprofile doesn't understand the -A switch, as mentioned in it's man page.
6548 - Add objectClass to the object: container, message or attachment
6549 - Rename content to message in openchangebackup functions
6550 - add objectClass parameter to ocb_record_init
6554 - Move debug options to their correct location (after MAPIInitialize)
6555 - Improve code related to LDB transactions
6556 - Add convenient error checking macros
6560 - Add preliminary openchangemapidump draft
6561 - Fix lp_parm_* 1st parameter in the torture suite
6562 - New functions in property.c for MAPI data retrieval
6566 Use configure definition for mandir.
6570 Activate debugs this time
6572 Replaced remaining gotos with MAPI_RETVAL_IF so errno is set correctly
6574 MAPI_RETVAL_IF missing ";" could cause surprises ;-)
6576 Add error check for samr call.
6577 set errno with MAPI_RETVAL_IF.
6581 Make required packaged more clear (LinuxMagazin input)
6585 Remove invalid comment.
6589 - Clean-up function prototypes
6590 - Dump email when NEWMAIL notification is received
6594 Proper dependencies.
6596 Don't regenerate proto headers unless necessary.
6600 Use install for installing files/directories.
6602 Actually use replacement variable for libmagic.
6606 Remove forgotten BOOL
6608 Remove mapi_session pointer in mapi_objects
6609 Add public function to IProfAdmin: retrieve default ldif path location outside the OC tree
6613 Prevent users from creation of *undeletable* folders in Outlook and
6614 perform sanity check on dirclass + display possible values.
6616 Provides a way to modify Default and Anonymous permissions for a given folder.
6618 Fix errno in getdir function + add sanity check on opt_rmdir
6620 - Fix a memory related bug in mapiadmin_add_user
6621 - Add latest howto.txt modifications from Dan
6623 - Fix bug in *UserPermission function: return when user is not found
6624 - Add sanity checks to mapi_object API functions
6625 - mapi_object_release reset errno to 0: need to release object
6626 after displaying the potential error message.
6628 Fix a mapidump_appointment bug
6629 Add PF folder support to fetch-items operation
6633 openchangeclient now support send/read/delete operation on custom PF directories.
6635 - Add libmapiadmin library draft: Add/Remove Exchange user
6636 - openchangepfadmin tool added: Public Folders management
6637 - Add Sanity check to CreateFolder
6642 Fix last references to BOOL, True and False.
6644 Fix more references to BOOL, False and True.
6646 Use standard type and values for booleans since Samba no longer exports
6647 BOOL, True and False.
6651 - Add OpenPublicFolder function to libmapi, Open Public Folder store
6652 - change torture suite API to match latest Samba4 pidl changes
6653 - utf8_convert regexp improved
6654 - minor changes: printf to DEBUG
6655 - howto.txt patch from Dan included
6656 - Samba4 torture code related to user account creation included in the
6661 Fix segmentation fault when running update prior populating the database.
6665 Remove obsolete file from the torture suite
6667 - Add Exchange Administration test to the torture suite: Create Exchange user
6669 Dan update on howto.txt
6673 - Add Exchange ACLs support to MAPI library
6674 - Add 2 new MAPI opnum: GetTable and ModifyTable
6675 - Improve mapidump functions
6679 - Improve aclocal check in autogen.sh
6680 - Fix flex binary detection in configure.ac
6688 Create libmapi.so symlink
6692 Fix mandir installation path
6693 Add ldconfig intructions to openchange installation documentation
6699 RES_AND and RES_OR preliminary implementation.
6703 - doc patch from Brad Hards
6704 - rename PROFILE_NOPASSWORD to OC_PROFILE_NOPASSWORD
6705 - fix a warning in property.c
6709 Add some 'const' (fixes compile warnings).
6711 Use sonames (required for the Debian packages).
6713 Add .bzrignore file.
6715 Update version number and use globally defined version number in libmapi.pc.
6719 - Add IDL implementation for restrictions Content, Property,
6720 CompareProps, Bitmask, Size, Exist.
6721 - Add Restrict MAPI call handling the restrictions above
6722 - OPENCHANGE-MAPI-RESTRICTIONS torture test added to the suite.
6723 - convenient sendmail function added to mapi_common.c
6724 - get property size function for mapi_SPropValue added to property.c
6726 test --This line, and those below, will be ignored--
6730 M torture/openchange.c
6731 A torture/mapi_restrictions.c
6732 M torture/mapi_common.c
6733 M libmapi/property.c
6734 M libmapi/IMAPITable.c
6738 Documentation update: Perl bindings installation
6742 - Add mapitags and mapicode support to Perl SWIG bindings
6743 - SPropTagArray support
6744 - SRowSet preliminary support
6745 - new constructor/destructor for mapi objects
6749 - IProfAdmin patch applied: having password outside of the profile
6751 - Perl bindings draft added to the trunk and to the build system:
6752 --enable-swig-perl=yes
6754 - datarootdir fixed in libmapi.pc.in
6758 - Add CopyMessages IDL and COPYMAIL torture implementation
6759 - Fix man page install dir according to latest Samba4 changes
6760 - Add datarootdir var to libmapi.pc.in and fix configure warning
6764 convenient function which retrieve a value from a SPropValue array
6765 given its property tag name, otherwise NULL
6769 Patch from Brad Hards <bradh@frogmouth.net>:
6770 openchangeclient man page updated
6772 - Add Windows UTF8 to classic UTF8 conversion through a lexer
6773 - openchangeclient --mailbox option changed to use it
6774 - flex and bison support added to configure.ac
6775 - windows_to_utf8 function added: wrapper over yyparse_utf8 routine
6779 - features added to openchangeclient:
6780 * --send-appointment
6784 - openchangeclient man page updated
6785 - new properties added to mapi-properties
6787 - Add man pages for simple_mapi.c functions:
6789 * GetFolderItemsCount
6791 - Remove deprecated functions from IMsgStore.c
6792 - Update man pages documentation
6794 Fix install rule in Makefile: add missing headers
6795 Move callback retval from uint32_t to int
6797 Fix notification callback retval
6799 - Advise opnum added to the IDL
6800 - Parts of the Notify response IDL implementation
6801 - Add Notification support to libmapi
6802 - Add --notifications option to openchangeclient
6806 Patch from Brad Hards <bradh@frogmouth.net>:
6807 - PR_BUSINESS_FAX_NUMBER
6808 - improves the information provided on a contact by
6813 - Fix the release call in,out
6814 - Call Release from mapi_release_object
6815 - Add sanity check to OpenMsgStore
6816 - clean up parts of the mapi_newmail test
6818 EcDoDisconnect code now sounds to work properly
6819 Tested against Exchange 2000 / Exchange 2003
6821 - Fix SpropValue property pull problem when GetProps layout is set
6822 - Add a dumpdata boolean to mapi_ctx_t so tools can dump hex data
6823 - Add PR_CONTAINER_CLASS fetch to openchangeclient --mailbox
6824 - Add debuglevel and dumpdata options support to openchangeclient
6828 - Remove useless memory allocation in mapidump.c
6829 - Improve mapidump_appointment
6830 - Add sample mapidump_note
6831 - Add --fetchitems option to openchangeclient:
6832 This command offers an easy way to fetch calendar, contacts,
6833 tasks, notes and mails from the Exchange server.
6834 - Add IPF container class defines to mapidefs.h
6835 - Add and Fix property tags
6839 - Commit the EcDoRpc max_data patch proposed on the devel list
6840 - Clean up folders related functions from the torture suite
6841 (GetDefaultFolder makes this code obsolete)
6845 Add the --mailbox option to openchangeclient which recursively
6846 lists the full mailbox folder hierarchy
6848 - Add PT_SYSTTIME support to get_SPropValue_data
6849 - Add mapidump_SPropValue_date dumping function
6850 - Add PT_SYSTIME support to mapidump_SPropValue
6852 - Add multi-valued SBinary_short support to mapi_SPropValue_CTR in the
6855 - Add GetDefaultFolder implementation to simple_mapi.c. This function
6856 provides a convenient way to retrieve default folders ID. const
6857 olFolder values are stored in libmapi/mapidefs.h
6859 - Modify the torture test suite to reflect these changes.
6861 - OpenMsgStore now decodes all the fid returned in the response
6863 - fix a bug size in libmapi/property.c
6867 - Fix SMTP recipient in libmapi
6868 - Add SMTP recipient support to openchangeclient
6869 and the torture test suite
6870 - Fix a bug in SRow_addprop
6874 - OpenMessage IDL changed: we have a permission field.
6875 It is now set by default to 0x3 (read/write) until we
6876 change OpenMessage prototype.
6878 - Add a sanity check to MAPIInitialize when no profdb
6883 Remove remaining MAPISTATUS and replace them with enum MAPISTATUS
6885 - SetReadFlags IDL and implementation added to libmapi
6886 - Warning fixed in emsabp.h
6888 Fix a bug in openchangeclient when attachments are using
6889 PR_ATTACH_LONG_FILENAME rather than PR_ATTACH_FILENAME to store
6890 attachment filename.
6892 Patch supplied by Brad Hards <bradh@frogmouth.net> which renames
6893 private structure member to private_data for C++ compatibility.
6895 Add libmapi/simple_mapi.c designed to hold convenient
6896 functions for application development.
6898 - GetFolderItemsCount added which returns the number of
6899 total and unread messages for a given folder.
6903 - Fix a body openchangeclient bug which now prevent openchangeclient
6904 from segfault when no body is specified.
6905 - Add GetDefaultProfile call to exchange2mbox for the default
6907 - Improve fuzzer_msgtore output
6911 Add a fuzzer torture test on OpenMsgStore which
6912 test all the possible max_data value.
6914 Should help to understand if libmapi fails because
6919 exchange2mbox improved:
6920 - tdb dependency removed
6921 - message-id are now stored in the profile database
6922 - it now mirrors deletion operation from the mbox file back to the
6924 - man page updated to reflect these changes
6926 - GetProfileAttr function prototype modified. It now returns the
6927 results count for the given attribute and store values in a string
6929 - GetProfileAttr man page updated to reflect these changes
6930 - Fix mapiprofile attribute search command
6931 - migrate from open/write calls to stream ones in exchange2mbox
6934 newmail torture + notifications implementation
6940 Fix the SambaXP live demo segfault: When an ambiguous recipient is
6941 specified, it now skips the name properly and maintain a correct
6944 - Fix a bug when storing attachments into mbox
6945 - Add default path support to exchange2mbox
6949 - Update libmapi version according to the roadmap
6950 - Fix nspi_resolvenames to use default profile database and profile
6954 - Add default profile database and profile support in the torture suite.
6955 - Fix a bug in mapidump_task
6959 - Change MAPILogonEx to MAPILogonProvider and avoid potential
6960 emsmdb endpoint related problem
6961 - add sanity check on global session pointer
6965 Merged MAILOOK-branch changes r64:163 into the trunk.
6969 Remove ChangeLog, use svn log instead ;p
6973 - libmapi includes moved from libmapi/include to libmapi
6974 - Remove arguments from prototype definitions generation in mkproto.pl
6975 - __BEGIN_DECLS __END_DECLS support in header files
6976 - united libmapi/libmapi.h header file
6977 - openchange.h header removed
6978 - PIDL generated files moved to gen_ndr
6979 - compilation rule for libmapi header installation added
6980 - useless torture tests removed
6986 Replace OpenProperty and ReadAttach calls with OpenStream and ReadStream call
6987 Add GetAttachmentTable call
6993 Remove -Werror CFLAGS until I figure out how to fix
6994 our problem definitively.
6996 Remove static from dcesrv_exchange.c functions definition
7001 . reimplement GetProps
7002 . retrieve attachment size
7003 . modify fetchmail and fetchattach torture
7008 . add GetPropList to exchange.idl
7009 . add GetPropList implementation to IMAPIProp.c
7012 - Add fetchattach torture; Attachment size is not yet
7013 defined and 42 is used.
7014 - add 3 new EcDoRpc opnums:
7023 Forgot to add IMAPISession.c
7029 Remove spurious warnings at compile time and
7030 add -Werror -Wstrict-prototypes to CC.
7034 Dispatch libmapi functions into filenames matching
7035 the MAPI interface they belong to.
7039 Fix the attach issue by value and add torture test to
7040 the openchange torture suite.
7045 attachment torture test implementation
7051 Add a null element at the end of MAPI_REQ array
7052 so we can exit from the loop in ndr_print_mapi_request
7056 - Add the DeleteMessages IDL
7057 - New torture tests added:
7058 * OPENCHANGE-MAPI-SENDMAIL
7059 * OPENCHANGE-MAPI-DELETEMAIL
7061 These are experimental implementation
7066 subject option for delete message torture test
7070 added (recipients == null) check
7072 added default subject
7077 Add NspiResolveNames and the associated torture test.
7083 Fix nspi decoding problem due to the usage of
7084 a hyper instead of a dlong.
7088 - Add a preliminary NspiUpdateStat IDL
7089 - Fix the new server code convention naming
7090 (function prefixed with dcesrv_)
7091 - Fix a security bug in emsabp provider code
7095 Fix the allocation memory for the EcDoRpc_{MAPI_REQ,MAPI_REPL} pointer.
7099 Add SetProps [out] support.
7101 Temporary allocation pb fixed in ndr_pull_mapi_response.
7102 Final fix in next commit.
7108 Fix the SetProps [in] IDL
7110 New mapi call support added:
7111 - ModifyRecipients [in,out]
7112 - SubmitMessage [in,out]
7116 Add IDL support for the following mapi calls:
7121 The SetProps IDL is still experimental and the
7122 content blob should be decoded more than the current
7129 Fix the align problem in QueryRows reply blob
7130 Add some printing output and clean useless DEBUG.
7136 Fix the OpenMessage IDL and add ndr_print support
7137 to the MAPI-FETCHMAIL torture test so we can
7142 Commit of the first experimental but working implementation
7143 of the MAPI-FETCHMAIL torture test able to retrieve mails
7144 from an Exchange Server.
7148 - Add a preview implementation of cached data system for multi MAPI calls requests
7149 - Add SetColumns and QueryRows calls to mapi.c + mapi_fetchmail torture test
7150 - Enhance some MAPI calls IDL
7151 - Fix some pull/print functions according to error_code and row_count values
7157 Manual handling of EcDoRpc_MAPI_REPL pull and print function.
7158 When a mapi call returns an error_code different from MAPI_E_SUCCESS,
7159 we have to stop processing the function IDL since no parameters follow.
7163 add MAPISTATUS to EcDoRpc_MAPI_REPL
7164 add mapi library code for:
7170 add mapi calls described above to MAPI-FETCHMAIL torture test
7174 add mapi_response to emsmdb_transaction so we can get the results
7175 check the mapi call error core in OpenMsgStore
7179 Add MAPISTATUS field in each mapi calls
7180 Add new MAPICODE (MAPI_E_CALL_FAILED)
7184 Fix the mapi_request push function
7185 Add a first approach to the MAPI client side library
7186 Add a first approach of the MAPI-FETCHMAIL torture test
7187 Fix the smb.conf.example with new fields and remove Samba4 unused ones
7193 Initial mapidump commit
7194 OpenMessage IDL fixed
7200 Unused and dummy code removed
7204 - Remove the MAPI decoding TDR layer and associated functions
7205 - Add MAPI decoding in exchange.idl at NDR layer
7206 - mapi_request / mapi_response pull/print ok
7207 - implement subcontext for async response decoding in
7209 - new MAPITAGS added related to Message envelope properties
7210 - clean up the code and remove unused files
7212 - Add new MAPI opnums and associated IDL:
7213 * [in] Release (opnum=0x1)
7214 * [in,out] OpenFolder (opnum=0x2)
7215 * [in,out] OpenMessage (opnum=0x3)
7216 * [in,out] GetContentsTable (opnum=0x5)
7217 * [in,out] GetProps (opnum=0x7)
7218 * [in,out] Secolumns (opnum=0x12)
7219 * [in,out] QueryRows (opnum=0x15)
7220 * [in,out] GetReceiveFolder (opnum=0x27)
7221 * [in,out] OpenMsgStore (opnum=0xFE)
7227 For IDL with unknown fields followed the IDL may
7228 change and the mapping of these unknown bytes incorrect.
7229 It's just based on assumptions and results of the different
7234 - The mapi_request / mapi_response pull function
7235 - emsmdb torture tests and libmapi/emsmdb.c
7237 All this code is currently broken and will be fixed
7238 when we start writing the new emsmdb torture suite
7246 Fix ndr_pull_MAPI_DATA function
7250 - Add new mapi opnums
7251 - Add a first IDL implementation for OpenMsgStore out
7255 - Enhance the handles id support in MAPI_DATA
7256 - Remove unused code
7258 EMSMDB encoding/decoding is currently broken.
7259 It will be fixed when we start the client side
7260 mapi library implementation.
7266 - Change IMAPISession.idl to mapi.idl
7267 - enhance mapi content payload decoding (multiple calls supported)
7268 - add sub EcDoRpc opnums and IDL for setcolumns (in)
7275 - new function on emsabp provider for entry id generation
7281 Old mapitables code deleted and merge of the samdb
7282 code used in openchange (emsabp_result_guid function).
7284 The following revision compiles and work fine with
7285 Samba4 revision 20341
7292 Instance keys management changed (we now use struct instance_key and uint32_t instead of an array of 4 uint8_t)
7298 - Fix compilation warnings based on patches provided
7299 by Stefan Huehner <stefan@huehner.org>
7300 - Fix the DSO issue for x64 platforms
7301 - Add the evolution plugin in the compilation process
7302 - remove the mapidump code (obsolete and replaced with ndrdump usage)
7308 evolution plugin moved into client/evolution for
7309 a correct and extensible naming convention.
7311 EcDoRpc IDL modified:
7312 - opnum are now 8 bits
7314 - EcDoRpc ndrdump output enhanced
7316 IMAPISession IDL modified:
7317 - Change OpenMsgStore function name to MAPI_RPC_LOGON
7318 for the 0xFE opnum operation.
7320 Fix warnings in the code.
7326 Openchange-Evolution plugin commit
7327 I reorganized openchange evolution plugin source tree.
7328 Now we have one directory for the camel-openchange provider, and one for the openchange eplugin.
7329 Everything can be found in the oc-evolution directory.
7330 This is code a minimalist implementation of the camel provider for evolution.
7331 It will make appears an openchange server type in the server list handled by evolution.
7332 Still have to fix the ./configure to create a Makefile though.
7336 Fix the memory allocation problems in the emsmdb torture test
7340 Removed ascstr and directly add it to the IDL
7342 Fix the NspiQueryRows response where strings
7343 containing the user email address have to be
7346 The EMSABP provider is working ;-)
7350 The emsabp provider is now able to return multiple users
7351 when searching for part of a username.
7357 Fix the networkAddress binding strings for the
7358 Exchange object in the configuration db. The
7359 SERVER variable based on exchange:server had
7360 been added while we needed the NETBIOSNAME one
7362 Fix a segmentation fault in emsabp.c due to an
7363 unchecked pointer res->msgs. This was causing
7364 smbd to segfault when the supplied legacyExchangeDN
7365 sent by the user wasn't present in the database.
7371 Remove unused files and directory.
7372 Update Makefile.in and remove storedb compilation
7381 - provisioning (for the legacyExchangeDN of the server entry)
7385 Fix the build and remove dynconfig samba lib
7391 Unused ldif files removed + Schemas definitions updated
7395 Provisionning fixed (old ldif files cleaned)
7401 add tags rules to the Makefile
7405 add the \\pipe\\protected_storage named pipe
7406 to exchange_nsp bindings
7412 Add a dcerpc_server module in charge of the
7413 exchange interfaces registration. When this module
7414 is loaded prior the remote endpoint, it let us proxify
7415 the exchange_nsp and exchange_emsmdb ones.
7417 Change the exchange_nsp ncacn_np binding string to
7418 reflect how Exchange server is currently using it.
7420 Conform the IDL with latest pidl requirements and
7421 move the MAPI_DATA structure from exchange_nsp to
7428 Create the $prefix/modules/{dcerpc_server,torture}
7431 This fix openchange make install rule.
7435 This commit conforms openchange with the Samba4
7436 trunk and fix the autotools checks.
7438 I've modified the openchange torture file to
7439 match the current smbtorture API and the
7440 OPENCHANGE-NSPI-PROFILE test was successful.
7442 The NSPI ndrdump suite has fully been tested and
7449 This commit fix the build system:
7450 - add the -ldynconfig dependency to LDFLAGS
7451 - add header checks in configure.ac. We need them
7452 for the moment cause Samba4 doesn't install some headers
7453 required by openchange core
7454 - fix the make install
7456 - remove autotools generated files and definitively
7457 ignore them with the .svnignore file
7459 - keepref keyword removed from exchange_nsp interface
7464 + aclocal.m4 removed from repository
7465 + provisionning fixed