4 Patch from Erik Hovland <erik@hovland.org>:
6 Initializes variables to make sure they aren't used uninitialized.
10 - Add sanity check on mapitest_common creation routines within
13 - Apply patch from Erik Hovland <erik@hovland.org>: check return
16 Patch From Erik Hovland <erik@hovland.org>
18 In torture_rpc_mapi_sendattach a call is made to the system function
19 read at line 199. The return value of read is assigned to read_size,
20 which happens to be of unsigned type. So if read returns -1 (which it
21 can) it will not be noticed. The patch changes the type to ssize_t
22 (signed) and checks for -1 as well as zero to break out of the loop.
26 Patch from Erik Hovland <erik@hovland.org>
28 1. In mapiproxy, the directory handle dir will be leaked after it is
30 2. exchange2mbox main() should use exit at line 785 just like all of
31 the other error paths so that we don't leak anything
35 Patch from Erik Hovland <erik@hovland.org>
37 Adds a #include config.h to suppress compiler warnings for vasprintf
39 Patch from Erik Hovland <erik@hovland.org>:
41 Make sure pointers are valid before dereferencing
42 1. lpProps 'might' be null
43 2. Add folder to variables checked before moving on.
44 4. Check nprop->guid before giving to strcmp, two times
45 6. Check definition before handing to strlen (which will dereference
46 it) Reworked this one to include talloc_free
47 7. Check MessageClass? before handing to strncasecmp
48 8. Check backend, return if null.
49 10. Don't print out anything if lpProp is null
50 11. Check attach_size before dereferencing
55 Fix pull structure for QueryRows reply when no RowData is available
60 - Add preliminary IDL support for Exchange 2003/2007 EMSMDB RPC calls:
64 - Add LZxpress and XorMagic support to EcDoRpcExt2 request/reply
65 blob. However it doesn't yet support Chained calls.
67 - Add AuxInfo/AUX_HEADER structures and IDL
69 - Refactor mapi_request and mapi_response: move obfuscate_data calls
70 up to the EcDoRpc layer
75 Patch from Paolo Abeni <paolo.abeni@gmail.com>:
77 call ProcessNotification() after each successful
78 emsmdb_transaction() in all the libmapi calls.
80 Patch from Paolo Abeni <paolo.abeni@gmail.com>:
82 Mapi notifications can occurs inside any emsmdb_transaction; currently
83 only the notification send by the server inside the
84 emsmdb_transaction_null() in MonitorNotification() are
85 parsed/processed/delivered to the appropriate callback.
87 To be able to process all the received notifications, the notification
88 structure must comprise the private data to be passed to the
89 notification callback, since in the average mapi call this data is not
90 available. This patch modifies the Subscribe() call and the
91 mapi_notification structure, adding the private_data parameter (also the
92 related Subscribe() calls are update) and add a libmapi call
93 (DispatchNotifications) to force the notification dispatching in
94 a [quite] non blocking way
99 Patch from Paolo Abeni <paolo.abeni@gmail.com>:
101 ProcessNotification() is ignoring the handle value contained into the
102 processed notifications. This means that if many Subscribe() calls are
103 performed on different folders but with the same flags, all the
104 registered callback are [incorrectly] signaled with each received
107 The attached patch match the handler contained into the notification
108 message against the notification object handle to avoid such
114 Make sure delayed authenication is not called when server mode is enabled
117 Update property list to reflect current OAB props.
119 This deletes a few incompatible properties. Cannot determine the history of the PR_MAILBEAT_ props.
121 Fix display of Folder ID values (one is filled with ., the other is prefixed with .16 instead of being filled.
123 Also remove duplicate close() of file descriptor.
135 Implement RopTransportNewMail (0x51).
137 Includes IDL, libmapi implementation, and basic mapitest coverage.
139 Also fix a few doxygen / formatting things.
144 - Add Redirect buffer support for OpenMsgStore and OpenPublicFolder.
145 This commit fixes the ecWrongServer (0x478) error users encounter
146 while running openchange based software in a clustered Exchange
152 Implement RopCloneStream (0x3b) and RopWriteAndCommitStream (0x90).
154 Includes IDL, implementation and mapitest tests.
159 Fix Search notifications.
161 MS concurred that the docs are wrong.
163 Patch by Paolo Abeni - thanks very much for the
164 investigation and the patch.
166 Update GetStoreState documentation.
168 Implement RopSetPropertiesNoReplicate (0x79).
170 IDL was already done. mapitest for DeletePropertiesNoReplicate was
176 Implement (IDL, libmapi, mapitest) RopHardDeleteMessagesAndSubfolders (0x92)
178 Also fix some bugs in mapitest common code, and an incorrect sanity check in CreateFolder().
183 Implement RopHardDeleteMessages (0x91).
185 Includes IDL, implementation and mapitest.
188 Ignore generated property file.
193 Add PT_ACTIONS to list of data types.
195 Not fully/correctly handled yet.
200 - Add dcerpc_mapiproxy:delegated_auth option
201 This option delays mapiproxy-remote server authentication when
202 the client sends the first request on a given pipe. This is
203 mandatory in order to have delegated credentials to work.
205 - Factor remote connection into mapiproxy_op_connect
210 Add session state to the notification.
211 Patch by Paolo Abeni - thanks for the investigation and fix.
213 Also remove a stray debug message.
215 Add a new mapitest suite for OXCNOTIF (Core Notifications).
217 Add a test to the OXCNOTIF suite based on test case provided by Paolo Abeni.
222 Update IDL for ModifyRules (0x41) and add IDL for
223 UpdateDeferredActionMessages (0x57).
225 This is a checkpoint commit, pending further investigation
226 into how we handle PtypRestriction and PtypRuleAction.
231 Mapitest cleanups - remove GetLastError(), and other minor edits.
233 Implement LockRegionStream and UnlockRegionStream ROPs.
235 These appear to be a relatively recent addition to the
236 documentation, possibly only used in Exchange 2007 / Outlook
239 This is complete except for testing of whether the locking
245 Use parent folder full replica ID: 2 bytes instead of 1 byte
247 - Add Implementation for Logon redirect response buffer in OpenChange IDL
248 - Update libmapiserver size calculation routine for Logon call to handle this case
253 Add session and logon_id to the list of parameters to copy between objects.
254 This patch fixes a problem in openchangeclient when using the --folder parameter.
257 Remove code relating to free'ing the bookmark returned
258 by SetCollapseState. Initial investigations with MS
259 lead me to believe that you can't free that resource.
261 May be more work in this area as investigation continues.
266 Fix memory leaks for functions relying on pull_emsmdb_property
271 Fix emsabp valgrind errors
276 Make it possible to specify a version number for release different
277 from major/minor from configure.ac
282 Make it possible to open and control up to 255 mailboxes within a
285 It implements an internal management of a logon_id array at session
286 level + enable transparent transport/copy of current logon_id value
287 among MAPI calls + finally transparently free the logon_id value when
288 the store object (PF or mailbox) is being released.
290 - Retrieve recipients from OpenEmbeddedMessage reply
291 - Test the implementation in mapitest
292 - Avoid potential memory leak: steal context for returned ulPropTags.
297 Be more tolerant with Logon request flags
299 Set retval to MAPI_E_INVALID_BOOKMARK rather than returning.
300 This case still needs to be fixed though.
304 Create a default GetProps reply on error
309 Fix retval problem in libmapi/nspi.c for GetIDsFromNames.
310 Function returns MAPI_E_SUCCESS, but errno is set to 0x0000000b.
311 Set errno to retval to work around this problem.
316 OXCPRPT-NAME-ID mapitest now passes: The QueryNamedProperties ecMemory retval
317 has been worked-around by setting QueryFlags to NoStrings to limite the results
318 scope. This means the MNID_STRING case is not fully checked anymore. We should maybe
319 add additional tests to do full coverage.
321 Fix GetNamesFromIDs IDL and implementation.
323 Note: We should probably update the function prototype
324 so it takes a mapi_SPropTagArray rather than a single property.
327 Protect against bad results from GetGALTable().
334 Patch from Paolo Abeni: Add sanity check to Subscribe
335 and prevent applications from crashing if notify context
341 Ensure NSPI server functions have a valid dcesrv_handle
343 Add quick/additional configuration information on how to setup openchange server
345 This commit adds a retval check on private data retrieval function and prevents QueryPosition from causing a
346 segfault when parent object is meant to come from GetContentsTable.
348 - Fix NspiGetMatches server reply when specified username is invalid and
350 - Make use of talloc hierarchy for NspiGetProps properties fetch + fix
351 a talloc_free bug leading to segfault on failure.
353 Prevent from registering same mapistore backend multiple times
361 Add skeleton for GetRulesTable
363 - return MAPI_E_SUCCESS when QueryRows reply count is 0
364 - Move Reminders from IPM Subtree to Mailbox root
366 - Add QueryPosition implementation
367 - Move from offset to numerator/denominator couple for table objects
369 Outlook now opens properly using openchange server and display the
370 mailbox folder list with icons ;-)
372 - Add skeletons for Restrict, SortTable, FindRow calls
373 - Introduce emsmdb provider table object
374 - Add preliminary table implementation for system/special folders
375 - Add preliminary implementation of GetHierarchyTable, SetColumns and QueryRows
376 - Improve creation of GetProps reply blob for Mailbox folder
377 - Fix bug in EcRRegisterPushNotification when associated handle is invalid
378 - Remove some usage of ldb_filter and use format string instead
379 - Update libmapiserver sanity checks and look for error_code != MAPI_E_SUCCESS
380 so openchange server is able to return failed replies to MAPI clients
381 - Introduce flaggedPropertyRows in libmapiserver_push_property (needed by QueryRows)
383 This commit makes openchange server work with "openchangeclient --mailbox" ;-)
385 Still preliminary but anyway worthwhile enough to be mentioned ...
387 - Add a function to count subfolders of a container
388 - Add a function to wrap MAPI tables over openchangedb
389 - Factorize code used to fetch property values from LDB records
391 - Add default properties to folder records while provisioning mailbox
392 - Add few more mapping for PR_* to PidTag
393 - Add a new MAPI property to the list
395 Avoid openchangeclient --mailbox to segfault when run vs openchange server
398 Remove some ldb_filters, and just use varargs into ldb_search
400 warning fix for 64-bit arch.
402 Revert previous commit.
404 Experimental commit to fix build problems resulting
405 from property changes.
410 - Add PidTagDisplayName property to Mailbox object
411 - Add PidTagParentFolderId to all system/special folders
413 - handles array depends if a valid mapi_repl exists. This commit
414 fixes the destructor semantics.
415 - Fix a mapitest segfault encountered while run vs openchange server
416 - Return 1 in SRowSet_propcpy if an error was encountered.
418 Fix libmapi stack segfault when MAPI calls returns
419 with error_code different from MAPI_E_SUCCESS.
421 Do not process NSPI request if we can't find the handle
423 Remove unnecessary ldb_filter parameter and replace it
424 with ldb_search format string.
429 - GetPropertyIdsFromNames skeleton added
431 - Fix how Release replies are handled in mapi_repl[] array
432 - Remove Release size calculation
433 - Fix QueryRows size in libmapiserver
434 - Add a dummy/skeleton GetPropertiesSpecific function for mapistore objects.
435 - GetHierarchyTable skeleton added
436 - SetProperties skeleton added
437 - CreateMessage skeleton added
438 - SaveChangesMessage skeleton added
444 Set mapi_response to NULL upon init ... just to get sure
446 Fix MAPIUninitialize segfault
454 - Add skeleton for GetContentsTable Rop
455 - Add skeleton for some [MS-OXCTABL] Rops: SetColumns, SortTable, QueryRows, SeekRows
456 - Add libmapiserver size calculation functions for all the above
457 - Ensure we only set objects parameter if it exists
458 - Return when dcesrv handle is not available
460 Merge s4-alpha7 branch back into trunk
465 - Add several PidTag to openchange.ldb folders
466 - Add provisioning convenient function which adds attribute/value pair
467 to a given folder record
468 - Replace existing special folders reference within Inbox with PidTagIpm* tags
469 - Add new PidTag values to mapi-properties
470 - Add a function to libmapiproxy to build a folder EntryID as described in MS-OXODATA
471 - Add a function which builds special properties for openchangedb folders
472 - Add PT_BOOLEAN case to openchangedb folder get property function
473 - Keep a reference to the mailbox username within emsmdb provider context
474 - Create and return a handle in RegisterNotification
479 Wrong MessageClass size calculation fixed
482 Remove duplicate _GNU_SOURCE definition (already specified by Makefile)
484 Ignore new binary and trial output.
489 - Fix systemfolder value for System/Special folders
490 - Add GetProps support to System/Special folders
492 Add auto-generated parser to the ignore list
494 - Add auto-generated parser for MAPI property to PidTag mapping
495 - Add some PidTag values
496 - Add a lookup and get property functions on system folders
498 - tuple SystemIdx in the dictionnary to workaround the ordering problem
499 - Add ParentFolderId attribute to System Folders
501 - Add creation of "Special folders" to mailbox provisioning
502 - Rename fid attribute to PidTagFolderId
503 - Rename name attribute to PidTagDisplayName
504 - Rename ExplicitContainerClass to PidTagContainerClass
506 Fix GlobalCount increment
508 Fix mailbox provisioning
511 Add test for FILETIME structure.
513 Update docs for mapiproxy entry.
516 Fix handling of fids.
520 - Fix openchangedb mailbox hierarchy and introduces subfolders
521 as described in [MS-OXOFOLDS] specifications.
522 - Update openchangedb API to reflect this change.
524 Rename private mailbox folder "non_ipm_subtree" to "mailbox_root"
525 to fit with MS-OXOFOLDS specifications.
527 - Add provisioning code for GetReceiveFolder defaults
528 - Check if mapistore content repository already exists for the user
529 - Make mailbox creation verbose
532 Fix parentfolder reference.
536 Use recursive call to create folders.
538 Simplify list iteration, PEP8, avoid using string exceptions.
543 Fix 'dereferencing type-punned pointer' warnings
545 - Add strict-aliasing compiler flags
546 - Fix format string warnings on ubuntu buildbot
548 - Add _FORTIFY_SOURCE=2 to the compiler CFLAGS
549 - Fix warnings introduced by -D_FORTIFY_SOURCE
552 I might have been a bit hasty with that last commit...
556 Try harder to find sqlite3.
558 Seems to be in sqlite.pc on Ubuntu.
560 Fix warning on 64-bit arch.
564 - Add RopGetReceiveFolder (0x27) implementation
565 The function respects should respect the semantics and behavior
566 as described in MS-OXCSTOR specifications. However the python's
567 code modification required: add ExplicitMessageClass attributes
568 to folder records is not yet effective.
570 - Add GetReceiveFolder size calculation function to libmapiserver
571 - Add a function to openchangedb API to retrieve the FID/ExplicitMessageClass
572 couple for a given SystemFolder within user's mailbox.
574 - Provision scripts: create a mapistore default storage space within ${private}/mapistore/${username}
575 - Provision scripts: add default sqlite:// mapistore URI for system folders
576 - Add mapistore context initialization when calling OpenFolder on SystemFolder
577 - Add mapistore context release for folders in emsmdbp object destructor
579 Factorize emsmdbp objects
580 Add emsmdbp_object generic talloc destructor
583 Add test for PT_MV_LONG.
585 Add tests for PT_I8 and PT_BINARY
587 Fix warning about no newline at end of file.
589 Remove most recently added tests from "to be done" list.
591 Add a couple more mapi_SPropValue tests.
596 - Initialize mapistore within emsmdb provider context
597 - Add destructors for MAPI handles and mapistore contexts
598 - Remove emsmdbp_ctx memory context structure member and
599 allocate directly with emsmdbp_ctx
601 I don't see any good reason why we would pad MAPI replies with some bytes.
602 I guess it comes from some prehistoric openchange code.
604 Fix systemfolder assignment depending on IsSystemFolder value
606 - Initialize OpenFolder server reply
608 - Wrap TDB connections to mapistore (code from samba4) so
609 multiple instances can open read/write to the same TDB database
610 - Remove static id_mapping_context (replaced with tdb_wrap calls)
611 - Update mapistore linkage rules so mapistore can be used with exchange_emsmdb server
612 - Link mapistore with exchange_emsmdb
614 Fix aclocal warning for AC_DEFINE comparison_fn_t
616 Remove useless GetProfilePtr from IProfAdmin interface
617 Closes trac ticket #131
619 Add missing script - prevent configure from generating warning vs missing file.
621 Remove stamp-h1 file during distclean and add it
624 - Add server-side GetReceiveFolder (0x27) skeleton
626 Work around the comparison_fn_t redefinition problem
627 between libocpf and ndr.h
629 FreeBSD doesn't have time.h daylight global variable
632 start testing mapi_SPropValue_array.
633 This also tests some underlying functions.
638 Add comparison_fn_t support to ndr.h
639 This was the latest change require to make openchange compiles under FreeBSD
641 = samba4/openchange FreeBSD support completed =
646 Remove duplicated post_install call
648 Add a post_install operation on FreeBSD
649 Make sure pidl is installed properly.
651 Patch samba4 tarball so it compiles properly on FreeBSD 7.0
652 Note: this is a dirty hack which needs to be removed in the future
654 Install Samba4 correctly although user's PKG_CONFIG_PATH env variable
655 may not be adjusted properly.
657 Avoid download samba4 release tarball if already available
658 in current directory.
660 - Add test for comparison_fn_t in configure.ac
661 - libocpf auto-generated files include stdlib.h and prevent from
662 having the proper comparison_fn_t typedef. This commit works around this
663 problem and define comparison_fn_t within a private header.
665 getline is a stdio GNU_SOURCE extension not available under FreeBSD.
666 Use fgetln instead when it is compiled on this OS.
668 FreeBSD doesn't define sighandler_t but sig_t
670 Replace open() call with O_DIRECTORY flag (Linux specific) with opendir
672 - Add non-default search path /usr/local/{include,lib} to
673 CFLAGS and LDFLAGS when compiling OpenChange under FreeBSD
674 - Make use of LDFLAGS while compiling openchange tools
677 A few improvements for property handling.
679 Also add unit tests to verify behaviour is correct.
681 The implementation for the FlatUID (GUID) structure appears broken. Perhaps I'm not using it correctly.
683 Microsoft confirmed the LCID is wrong in the spec, and will be updated in the next rev.
688 Check for Flex version < 2.5.35
689 Make sure users can define the FLEX environment variable
691 Add automake scripts for AC_CANONICAL_HOST support
692 Needed for FreeBSD OS detection in configure.ac
697 Fix warnings from lexer output.
699 Fixes for warnings on 64-bit architectures.
701 Fix warning on 64-bit architecture.
704 Add some more tests for openchange.mailbox.
706 Fix creation of new mailbox after provision.
708 Always use the same URL when connecting to openchangedb.
710 Fix arguments to openchangedb_provision.
715 Fix libmapi 64-bit machine cast warnings mentioned in Brad's devel email
718 Warning fix for 64-bit arch.
723 Add doxygen definition for RopRelease
725 - Add server-side skeleton implementation for RopOpenFolder and RopRegisterNotification
726 - Add preliminary size calculation functions in libmapiserver for the 2 calls above
727 - Fix size bug for serialized requests
728 - Add skeleton case for RopGetPropertiesSpecific on SystemFolders
729 - Make sure the GetProps reply blob is initialized whatever happen
730 - Add a skeleton emsmdbp folder object init function
735 Remove debug strings for GetPropertiesSpecific Rop
737 Enable verbose output in server mode - useful during development
739 Implement preliminary server-side RopGetPropertiesSpecific call for mailbox object.
741 - Fix GetProps blob for PT_BINARY: use SBinary_short instead of Binary_r
742 - Fix GetProps size: subcontext is not added to the fixed size calculation
744 - GetPropsSpecific size calculation function added to libmapiserver
745 - Function to create a GetProps reply property blob added to libmapiserver
748 Add tests for provisioning.
750 Several cleanups in python code, add tests for schema use.
752 Don't clear PYTHONPATH override.
754 Remove unused imports, add extra tests.
756 Use member variable for Ldb, rather than subclassing.
758 Remove print statements to avoid cluttering test output.
760 Add simple and incomplete testcase for OpenChangeDB.
762 Move wipe of data to mailbox.py, simplify arguments to add_root_mailbox.
764 Move adding a server to mailbox.py.
766 Move ldif from oc_provision_openchange.ldif into Python.
768 Stop providing setup_path to OpenChangeDB, as it's no longer used.
770 Avoid using separate LDIF file when creating folder mailboxes.
772 Avoid using separate LDIF file when creating mailboxes.
774 Avoid passing full names object.
776 Add check-python target.
781 fix openchange_newuser.
783 Use SamDB for actual SAM databases, Ldb otherwise.
785 Remove unused parameters, don't make parameters optional if they are mandatory.
787 remove unused parameters.
789 make mailbox object-oriented, remove creds/lp parameters.
791 Fix OpenChangeDB syntax.
796 - Add a systemfolder member to the MAPI handle structure to make a difference
797 between objects managed by mapistore and those stored within openchange.ldb
798 (root mailbox folders).
800 - Add opaque functions to set/get private_data and systemfolder to the MAPI
803 Minor doxygen fix/improvement
805 Add libmapistore object files to the ignore list
807 - Add a very preliminary and light libmapistore implementation.
808 mapistore only supplies init/release and add/del backend contexts.
809 This commit also includes a sqlite3 backend skeleton (open/close sqlite db)
810 - A temporary mapistore testing tool has been added locally for implementation checks.
813 Use convenience function for connecting to openchange.ldb.
815 Use standard LDB functions - openchange.ldb is not a SAM database.
820 Implement support the SUMMARY language tag.
822 Initial checking of libical based exchange2ical code.
824 This has a long way to go, so think of this as more of a checkpoint
827 See http://sourceforge.net/projects/freeassociation/ for the library, or
828 see if your distro has a package.
832 Add missing parameter to API documentation.
834 Resolves ticket #130.
836 API documentation fixes for OpenEmbeddedMessage()
838 Implement OpenEmbeddedMessage ROP (0x46).
842 Factor out message creation and message fill actions.
844 Also remove GetLastError() where appropriate.
846 Add some API documentation.
851 Update openchangepfadmin description
852 Fix tool relying on libmapiadmin
859 Add more explanation for README
861 Reimplement RTF decompression.
863 Add unit tests from MS-OXRTFCP.
865 Fix warnings in example code
867 Add description for libmapiadmin
869 Add description for libmapi / libmapi++
871 Start on the directory descriptions.
877 Add overview. Extracted from API docs.
881 Outline of README file.
883 (also using this to test buildbot without changing real code)
887 Add Version field - avoid breaking pkg-config --list-all
889 Fix warnings (gcc 4.2.4)
892 Use variable for package version rather than hardcoding it.
902 - Add an implementation of the MAPI handles management API. The API
903 internally uses an in-memory TDB database to keep object hierarchy
904 and a doubled chained list to associate private data to handles.
906 The API currently provides add, search and delete facilities. Note
907 that while untested, the delete operation is designed to recursively
908 delete children of the 'meant to be deleted' handle.
910 Finally the API doesn't remove TDB records but mark them as free so
911 they can be reused across MAPI session and prevent from handle counter
912 growing indefinitely.
914 - Add a preliminary implementation of the Release call
915 - Add Release size calculation to libmapiserver
916 - Update EMSMDB provider to use MAPI handles API
919 Minor api documentation fix.
925 Minor API docs tweak.
927 Token commit of tiny API docs fix.
930 Look for GNU make harder (gmake on BSDs).
935 - Add preliminary EMSMDB provider implementation for RopLogon (0xFE)
936 - Add common routines for OpenChange LDB context init and search
938 - Add libmapiserver skeleton with size calculation routine for RopLogon
939 - Change DSO linking dependencies for mapiproxy shared libraries
940 - Propagate _GNU_SOURCE change from libmapi.h to mapiproxy
944 Remove .po and .o objects within libmapiproxy subdirectory
946 Move libmapiproxy into its own directory and rebase mapiproxy headers accordingly
947 Fix make uninstall for AD and profiles directories
951 Add python code and ldif files needed to create and populate the experimental
952 openchange dispatcher database.
954 Add 5-Minute configuration documentation for OpenChange server mode
956 - Rebase ldif files into sub directories:
957 * AD for OpenChange AD modifications
958 * profiles for OpenChange IProfAdmin interface
959 - Makes it easier figuring out LDIF files scope
960 - Prepare setup folder for LDIF openchangedb files integration
961 - Update install/uninstall Makefile rules for ldif files and
962 make sure everything got removed
967 Add support for short language names (e.g. en-AU) for lcid.
972 Delete deprecated libmapi setup Perl script
975 Add summary report for tests.
977 Make mapitest return the number of failed tests.
982 - Add pkg-config pc file for libmapiproxy
983 - Improve mapiproxy rules so libmapiproxy gets installed and cleaned properly
985 Free memory allocated by the fake subcontext in
986 ndr_pull_mapi_response.
988 This fix saves 300kb of memory and removes 700 loss records while
989 valgrinding mapitest.
991 Fix segfault - Add sanity check - when SPropTagArray is NULL in
992 NspiQueryRows request
994 Fix openchange_newuser name typo
996 Fix server provisioning command line examples
998 Fix several libmapi leaks.
1000 mapi_response was allocated using emsmdb_ctx->mem_ctx memory context
1001 and was not free'd when libmapi function released their
1002 context. Furthermore we need to release mapi_response->mapi_repl and
1003 mapi_response->handles which are now automatically free'd when
1004 mapi_response destructor is called.
1006 However note that this fix is not perfect: mapi_response memory is not
1007 free'd properly when calls exit with an error.
1009 This commit also make use of talloc_steal where necessary to keep
1010 returned fields allocated.
1014 Use named context rather than autofree
1016 Fix memory leak in emsmdb.c: Use a temporary memory context for
1017 request and length allocation in emsmdb_transaction.
1019 - This removes 827 loss records and approximatively saves 41kb of
1020 memory while valgrinding mapitest
1022 - Fix memory leak in GetDefaultProfile and GetProfileTable.
1023 - Save from 10 loss records while valgrinding mapitest
1024 - Developers are now responsible from freeing the GetDefaultProfile
1025 string the function allocates.
1026 - Apply changes to all openchange tools.
1028 Add blackbox subunit tests for mapiprofile tool
1031 One more trivial fix.
1035 (Yep, more trivial changes)
1037 Fix incorrect LCID for en-CA.
1039 (OK, its token, I admit).
1042 Don't define _GNU_SOURCE unconditionally.
1046 Prevent mapiproxy from multiple init and modules/server register
1047 when an smb client connect to the server (e.g. windows browser or smbclient)
1051 According to [MS-OXOCAL] Section 2.2.1.44.1
1052 "RecurrencePattern Structure", a monthly recurrence
1053 also has a Day specific parameter.
1058 Simply run autogen.sh rather than replicating it inside the Makefile.
1060 need to run aclocal before autoconf for the pkg-config macros.
1064 Use a autofree context rather than a named one - makes sure memory is free'd when we exit the test.
1065 Saves from 4 loss records while valgrind'ing mapitest.
1067 Use temporary memory context for EcDoConnect.
1068 Saves from 20 loss records when valgrind'ing mapitest.
1070 Free PropertyProblem structures returned by CopyTo.
1072 Replace deprecated talloc_init calls with talloc_named
1073 This commit removes some valgrind loss records talloc_init was responsible for
1076 Free everything when running mapitest --list-all.
1077 Valgrind however shows a loss record related to talloc_init ...
1080 Minor Intel C compiler warning fixes.
1082 Minor apidocs cleanups.
1086 Use double pointer for lp_ctx in GetLoadparmContext assessor
1088 Fix memory leak in utf8 lexer.
1090 - Remove custom iconv_convenience from pull_emsmdb_property and use
1091 lp_iconv_convenience on loadparm_context argument instead.
1093 - Change OpenChange libmapi API to reflect this change
1095 - Introduce a lp_ctx assessor in libmapi/cdo_mapi.c
1096 (mostly for mapitest modules). libmapi/mapiproxy developers
1097 should never have to make use of it.
1099 - Remove pointless duplicated call to lp_load_default in MAPIInitialize.
1101 Free lpProps returned by GetProps, Fix context error in valgrind
1103 - Fix memory leak bug: release ndr context in pull_emsmdb_property before returning
1104 - Terminate SPropValue and SPropTagArray using an element with ulPropTag = 0. This
1105 prevent from "invalid read size of 4" messages from valgrind and remove context errors.
1108 Don't install mapiproxy if python wasn't found, since
1109 we wouldn't know where to install the provisioning scripts or be able
1114 Merge libmapi-0.8 branch r1015 to 1017 into trunk
1116 ** Start libmapi-0.9 COCHRANE development **
1118 Merge libmapi-0.8 branch changes into trunk
1122 Add python install/uninstall rules to provision rather than mapiproxy-servers
1124 - Remove server Makefile rules
1127 Note: server and providers have been merged within mapiproxy,
1128 so there is no reason keeping this deprecated code.
1132 Undoing change committed in r1004.
1134 Use .po files instead of .o files for openchange tools
1136 Add --version to openchange tools
1138 Add COPYING file with GPLv3 license
1142 - Add RenameProfile function to IProfAdmin API
1143 - Remove pointless CopyProfile from IProfAdmin API
1144 - Add --rename option to mapiprofile tool
1145 - Update man page to reflect this addition
1147 (close trac ticket #124)
1149 Fix libmapi from crashing when mapi_repl is NULL.
1151 Update Samba4 git rev to fix the charcnv segfault met in openchange
1155 Try to find the Samba python modules if they're not installed in the system
1160 - Fix Subscribe semantic bug and add WholeStore boolean parameter
1161 - propagate API change to tools/torture callers
1163 - Add assessor functions to set dumpdata and debug level in libmapi
1164 (SetMAPIDumpData and SetMAPIDebugLevel)
1165 - OpenChange tools modified to use these function rather than set these
1166 parameters on their own
1168 - Fix --debuglevel segfault in openchange tools
1169 - Enable logging to stdout in MAPIInitialize
1173 * OpenChange libmapi function now returns MAPI error instead of -1
1174 - use OPENCHANGE_RETVAL_IF instead of MAPI_RETVAL_IF
1175 - add doxygen documentation for some missing functions/files
1177 - Missed this event->tevent change in previous commit
1179 - Update openchange to use latest Samba4 master git rev (990491d)
1180 - Fix references to tevent_context structures
1181 - Fix iconv_convenience init in MAPIInitialize
1182 - Remove errorchecks mapitest module warning
1185 Use tevent_context_init.
1191 Some Exchange server (stand-alone) return MAPI_E_LOGON_FAILED when setting EssDN with username rather than
1192 using profile's mailbox string directly. This commit fixes the bug.
1194 - Add EcDoConnect and EcDoDisconnect preliminary support to
1195 dcesrv_exchange_emsmdb.c
1196 - Add internal session management mechanism to EMSMDB server
1197 - Add init and unbind modules function to EMSMDB server
1198 - Add emsmdbp_context and session to dcesrv_exchange_emsmdb.h
1201 Fix valgrind errors caused by using free'd memory.
1205 Implement 'mapiproxy downgrade' behavior in EMSMDB server and force
1206 Outlook to use EcDoConnect (0x0) and EcDoRpc (0x2) rather than 0xA and
1207 0xB (opnums using LZ based compression).
1209 - Add Preliminary implementation for RfrGetFQDNFromLegacyDN DS RFR server
1213 - Preliminary implementation of NspiGetProps NSPI server function
1214 - Makes sure emsabp_tdb_traverse_MId uses the correct dbuf size
1215 - Use correct ldb context (users or conf) depending on where MId is
1216 located (on-memory or on-disk)
1217 - Add PR_EMS_AB_NETWORK_ADDRESS mapping to emsabp_property
1219 *** Outlook is now able to create MAPI profile using OpenChange Server ONLY! ***
1221 - Preliminary implementation of NspiDNToMId NSPI server function
1222 - Add emsabp_search_legacyExchangeDN to search for a record given its
1223 legacyExchangeDN attribute.
1225 - Preliminary implementation of NspiQueryRows NSPI server function added
1226 - fix a bug in the MID TDB traversal routine: cut dptr to dsize length
1227 rather assuming it is NULL terminated
1228 - Add support for "referenced" property tags
1229 - Add support for PR_MV_STRING8
1230 - Add emsabp_search_dn which search for a DN within AD and return the
1231 associated LDB message
1232 - Add PR_EMS_AB_HOME_MDB and PR_EMS_AB_PROXY_ADDRESSES to
1233 emsabp_property array
1235 Prevent from trying to add a NULL element to profile database and segfault on strlen
1237 Prevent x500_get_dn_element from segfaulting when an incorrect DN string parameter is supplied
1239 - Preliminary implementation of NspiGetMatches NSPI server function
1240 - Make use of a on-memory TDB database for Ephemeral Entry IDs
1241 - Add TDB traversal routines to retrieve DN associated to MId
1242 - Move lp_ctx within emsabp_ctx for convenience
1243 - Add EphemeralEntryID to Binary_r routine
1244 - add emsabp_query (Find attribute matching given property tag and
1245 return associated data)
1246 - add emsabp_fetch_attrs which builds a SRow array given a MId and
1247 requested property tags.
1248 - add emsabp_search which searches AD given input search criteria
1249 - add a preliminary Property Tag to AD attribute mapping + associated
1250 functions in emsabp_property.c
1252 Note: This NspiGetMatches is limited to MAILUSER which means we only
1253 look for users (located within users.ldb). This limitation will be
1254 removed when we have a preliminary working emsmdb server, so we can do
1255 more extensive NSPI server tests.
1257 Add sanity check to get_SPropValue_SRowSet, prevents the function
1258 from segfault when RowSet is NULL (e.g. crafted NspiQueryRows replies)
1260 Prevent IProfAdmin based code from crashing when a crafted NspiGetMatches reply
1261 with NULL ppOutMIds is returned.
1266 - Preliminary NspiGetSpecialTable implementation added to NSPI
1267 server/EMSABP provider: Hierarchy Table supported (required during
1269 - add PT_BINARY support for mapidump_SPropValue
1270 - fix a bug when PT_STRING8 or PT_UNICODE pointer is set to
1276 Add new Display Type values (used by EMSABP provider)
1278 Change DEBUGLEVEL for RfrGetNewDSA
1280 - preliminary implementation of RFR server (RfrGetNewDSA): makes Outlook happy
1281 - mapiproxy-servers-install now installs openchange python scripts and ldif file
1285 Move auth_serversupplied_info structure from dcesrv_exchange_nsp.h to libmapiproxy.h
1286 This structure is required for NTLM_AUTH_IS_OK macro
1288 - Add doxygen comments for all OpenChange server modules
1289 - Fix doxygen return value for exchange_nsp
1291 - Add mapiproxy server unbind function and hook in dcesrv_mapiproxy.c
1292 - Add exchange handle enum to dcesrv_mapiproxy.h
1293 - Add authentication verifier macro to libmapiproxy.h
1294 - Add preliminary EMSABP Address Book Provider implementation:
1295 * supports initialization, destructor (talloc)
1296 * implements user and codepage check routines
1297 * retrieve NSPI server GUID
1298 - Add NspiBind and NspiUnbind support to dcesrv_exchange_nsp.c
1299 - Add internal session mechanism management to NSPI server
1300 - Add init and unbind modules function to NSPI server
1301 - Add doxygen comments to all dcesrv_exchange_nsp.c functions
1302 - Add emsabp_context, session and non-exported Samba structure to dcesrv_exchange_nsp.h
1304 OpenChange configuration schema updated with Addressing schema
1305 (Address-Templates, Address-Types and Display-Templates - Exchange 2003 based)
1307 Execute server modules init function when loaded
1310 A few API documentation fixes.
1315 Add documentation for MAPIProxy 'server mode'
1320 - Implement mapiproxy server mode architecture
1321 - Add server modules management API
1322 - Add skeletons for default OpenChange servers (nspi, emsmdb, ds_rfr)
1323 - Add temporary provision Makefile rule
1328 Initial text was correct - rollback
1333 Ensure that GetLastError() also returns the correct value.
1335 Start changing the MAPI_RETVAL_IF() usage to two new macros:
1336 OPENCHANGE_RETVAL_IF() and OPENCHANGE_RETVAL_ERR().
1338 simple_mapi.c is the only one converted at this stage.
1340 Also added a set of unit tests that verify at least some initial
1343 Remove unreachable code.
1345 Partly resolves ticket #124
1350 Remove references to ldap.h header file - not installed anymore with samba4 git rev openchange uses
1352 mapiproxy documentation update: 3 questions added to FAQ section
1354 Patch from Corentin Chary:
1355 - Add PR_CONTENT_FILTER_SCL property to libmapi
1357 - Update openchange to work with samba4 master git rev f308c2f
1358 - Replace reference to events.h with tevent.h
1359 - Update installsamba4.sh script to reflect latest samba4 compilation changes/requirements
1364 Fix mapidump date/month when freebusy period covers end of one year - beginning of next year
1365 Update openchangeclient to reflect these changes.
1370 Export PKG_CONFIG_PATH if it wasn't exported yet. Patch by Metze
1372 Fix PIC object flags for SWIG build. Patch by metze.
1377 User %u format specifier for unsigned integer.
1379 Make return value match signature.
1381 Miscellaneous minor cleanups. Mainly making return types
1382 match signatues, format conversion (%u for unsigned values) and
1383 matching up result variable types (bool instead of enum MAPISTATUS).
1385 Return an enum MAPISTATUS, instead of a bool, to match function signature.
1387 Use %u instead of %d for unsigned values.
1392 Another minor APIdox edit.
1394 API documentation tweak.
1402 More apidox triviality.
1404 Trivial APIdox edits.
1406 Supplement the user's PKG_CONFIG_PATH rather than
1410 Add bindings for GetBestBody(), GetDefaultFolder(), GetDefaultPublicFolder(), AddUserPermission(), ModifyUserPermission().
1412 Add bindings for create_message, delete_messages, get_message_status, set_read_flags.
1414 Add Python bindings for Unsubscribe(), get_task_status(), get_importance(), get_proptag_name(), get_proptag_value(), DeleteFolder(), CreateFolder(), EmptyFolder(), RemoveUserPermissions(), IsMailboxFolder().
1419 Actually use pymapi variables in Makefile.
1421 Add configure flags for building and installing Python MAPI bindings (disabled by default).
1426 Add namespace prefix to scanner.
1431 - spnego / gssapi_krb5 authentication now available for mapiprofile
1432 - add the --realm | -R option
1433 - update mapiprofile man page
1438 Remove entries for --properties and --priority, which have been removed from the openchangeclient utility.
1442 Don't generate / install man3 pages for libmapi++ or mapitest.
1444 Resolves ticket #121.
1446 Also don't install man3 pages that are just copies of the C implementation files, or just document bugs / todo items.
1449 Allow retrieving id and session of MAPI objects.
1451 Add MessageStore and Object Python classes, add bindings for OpenMsgStore, OpenUserMailbox, OpenPublicFolder.
1453 Add stubs for Session class.
1455 Add infrastructure for MAPI python module.
1457 Look for python and python-config binaries.
1459 Remove empty directory.
1463 Remove obsolete --properties option and related code
1468 Fix RecipientRow member's order
1473 - Update to latest samba4 git master revision (3508a66)
1474 - Fix references to samr info24 struct
1475 - Add support for assoc_group_id proxy
1476 - Add support in mapiproxy for bind/alter connections using assoc_group_id
1477 - Update mapiproxy documentation
1482 Improve building. Partially addresses #94.
1484 More work required on this as we work on the
1485 portability in the future.
1487 Expose the underlying session.
1492 Remove unused --priority option.
1494 These offsets / values can be negative, so we shouldn't
1495 use unsigned int type to represent them.
1500 Fix Logon problem for users running Exchange 2k7 in a clustered Exchange environment.
1502 This patch first tries to forge EssDN Logon string from "o" and "ou"
1503 attributes stored in the profile. If Logon fails with ecUnknownUser,
1504 then try to open the mailbox using the mailbox attribute stored in
1510 Document the --label option.
1515 Make openchange compile and work against latest samba4 master git rev (58db2be)
1518 Remove check for unused type 'uint_t'.
1523 More tweaks on the openchangeclient man1 page.
1525 More updates for man1 page for openchangeclient.
1526 Still doesn't fully address #113.
1528 Update the openchangeclient man1 page.
1530 Partly addresses ticket #113.
1532 There is still some work to do on this.
1534 Fix a typo, and try to make the descriptions more
1540 Initial version of man1 page for mapitest
1542 Initial man1 page for exchange2ical utility.
1547 Update man1 page for openchangepfadmin
1549 Minor updates for the man pages.
1554 Fix build errors: wrong number of arguments for ocpf_propvalue
1556 Fix warnings when compiling with -Wextra
1558 Fix warnings when compiling with -Wextra
1560 Fix warnings when compiling with -Wextra
1563 Complete initializers here.
1568 Update to reflect latest state of mapiprofile.
1573 Prevent segfault when running mapitest. Looks like the we can
1574 return MAPI_E_SUCCESS even if one of the property values is
1575 MAPI_E_NOTFOUND. That error then get turned into a char*, and
1578 Also fix a possible bug relating to operator precedence, and
1579 a couple of warnings (one for signed / unsigned comparison, and
1580 the other for an unsigned value never being less than zero).
1585 Enable output to stdout.
1587 Resolves ticket #106.
1589 Thanks to raboof for the report and fix.
1594 Fix missing initialisers (issue #110).
1596 Also fix some signed/unsigned warnings.
1598 Fix problems with incorrect initialisers (#110) and
1599 operator precedence.
1601 Also fix a couple of places with signed/unsigned confusion.
1603 Partial fix for issue #110, and a couple of very minor cleanups.
1610 We probably want to return here, not do nothing.
1615 Fix empty patch function problem: add a retval
1620 Explain the boost-thread trick.
1622 Minor documentation tweaks.
1627 - remove usage of global_loadparm in libmapiadmin
1628 - make use of session context rather than global_mapi_ctx in libmapiadmin
1629 - use local context rather than mapiadmin context in libmapiadmin
1630 - libmapiadmin now uses ldb helper rather than raw implementation (ldb async code)
1631 - libmapiadmin and openchangepfadmin now works again (user creation/deletion) !! ;-)
1632 - remove global_loadparm in torture test and replace it with torture context
1633 - fix dcerpc_init to match latest samba4 API
1634 - update samba4 version required to build openchange
1637 More API documentation tweaks.
1639 More API documentation tweaks.
1641 Some API dox fixes for libmapi++.
1644 Remove unnecessary patching of lib/events/events.h.
1649 Update to a more recent Samba4.
1652 Remove some usages of deprecated global_loadparm.
1654 Cope with new argument to dcerpc_log_packet().
1659 Fix includes for DEBUG(), fix some more warnings.
1661 Use same_net_v4 rather than deprecated same_net().
1663 Fix Samba 4 git revision.
1665 Fix includes - debug.h can only be included once.
1667 Include debug header.
1669 Cope with API changes in Samba functions.
1671 Use new function is_zero_ip_v4 rather than removed is_zero_ip.
1676 Fix OpenMsgStore binding in swig perl and fetchmail script
1681 Fix pointless const definition for GetFreeBusyYear return type
1685 - Add the IsFreeBusyConflict convenient function which checks if a
1686 given date conflicts with existing FreeBusy Busy/OOF events
1688 - Modify openchangeclient --sendappointment behavior to check whether
1689 start or end date conflicts with FreeBusy published data for the
1692 - Add the --force option to openchangeclient to override this behavior
1694 - Fix a counter bug in mapidump_freebusy_events
1696 Fix doxygen typo error
1698 - Add GetUserFreeBusyData convenient function which retrieves FreeBusy
1699 data in public folders for a given user. Note: Ambiguous name is not
1700 supported at the moment.
1702 - Add convenient FreeBusy mapidump routines
1704 - Add FreeBusy read support to openchangelient
1706 - Add PT_MV_LONG and PT_MV_BINARY support to pull_emsmdb_property and
1707 property.c functions
1709 - Add OpenUserMailbox which let developers open other mailboxes
1710 instead of the default profile one.
1712 - Add GetABRecipientInfo: convenient function which retrieves Address
1713 Book information for a given recipient
1718 - Add libmapi implementation for DeletePropertiesNoReplicate
1719 - Add mapitest test units for DeleteProps and DeletePropertiesNoReplicate
1721 Fix doxygen documentation
1726 - Implement multisession into libmapi
1727 - Update openchange tools and suite to reflect these changes
1728 - Fix SRow_addprop behavior
1730 NOTE: OpenMsgStore, ResolveNames, GetGALTable and RFR functions
1731 now take a mapi_session parameter.
1734 Use my openchange.org email address.
1739 - Add a session management API for mapiproxy modules. Similar code
1740 already existed for mpm_cache module. Common functions are now
1741 available to all mapiproxy modules through libmapiproxy
1743 - replace smbd with samba in mapiproxy documentation
1745 - Cache calendar, contact, journal, note, task and drafts folders IDs
1746 when GetDefaultFolder call is performed on one of these folders and
1747 keep them until obj_store is released.
1749 - Add a reverse lookup routine which says whether a given FID belongs
1750 to a default folder and which olFolderType it is.
1752 - Remove pointless memory context in GetDefaultFolder
1753 - Move entryID to FID code into a separated routine (GetFIDFromEntryID)
1755 Restore install rule for mapi profiles ldif files in
1756 libmapi-installscript. Fix the MAPI_E_NO_ACCESS bug when mapiprofile
1757 tries to create a new mapi profile store.
1761 - Ticket #103 resolved. openchangeclient can now perform custom folder lookup, fetch, mkdir and rmdir.
1762 - mapi_object_copy routine added to mapi_object.c
1767 Fix missing Month field in LogonTime structure
1771 propagate IDL warning fix to property.idl
1774 Add target for building python API documentation.
1778 Fix samba4 release and git revision
1780 Fix installsamba4.sh script paths
1785 Install OpenChange python modules.
1787 Check for python dir during configure.
1789 ignore generated files.
1791 Stop installing js files.
1793 Use autoconf cache prefix.
1795 Use newer version of Samba 4.
1799 Remove dcesrv_exchange.so from server Makefile rule and
1800 move mapiproxy from TOOLS to SERVER.
1802 dcesrv_exchange and providers Makefile rules are orphan, planned
1803 to be removed (with their associated code) when emsabp merge process
1804 into mapiproxy is over.
1808 Export the Binary_r structure.
1812 Use more descriptive variable names in messages example code.
1814 Add a description of messages to libmapi++ API documentation.
1816 Add messages binary to the ignore list.
1818 Add new example showing libmapi++ message handling, and
1819 associated API documentation and build system changes.
1823 Update the API documentation main page for libmapi++
1827 Add foldertree binary to the ignore list
1829 - Add missing Input parameter
1830 - Add sanity check on ppNames
1833 - Fix a bug in NspiUpdateStat: make plDelta mandatory and use it for in,out
1834 - Add a NspiGetSpecialTable test for Address Creation Template
1837 Fix valgrind-reported error, per ticket #101.
1839 Make sure we clean up after mapitest runs.
1845 - Add msExchUserAccountControl attribute to extended user record
1846 - openchange_newuser can now create/enable/disable an OpenChange account
1848 Exit the test if the WriteStream operation fails
1850 Fix ncacn_ip_tcp binding string for OpenChange server object
1852 With new NSPI IDL, using cValues - 1 is incorrect and lead to errors. Use cValues directly instead
1854 Fix pipe function check and use ndr autogenerated defines rather than static strings
1855 Fix calls to NspiDNToMId
1858 Make sure we set the body and body format properties, to
1859 ensure that the message is shown correctly with
1860 openchangeclient -F.
1865 - Rename oc_* python scripts to openchange_*
1866 - Add Full Exchange 2003 schema (classes and attributes)
1867 - Full Exchange 2003 modified classes and attributes support
1868 - Add prefixmap OID for some Exchange classes and attributes
1869 - Add missing ADSC classes and attributes
1870 - Improve configuration LDIF file with new objects
1872 NOTE: provision.py should find a way to handle firstorg properly
1873 NOTE: oc_provision_configuration.ldif is still incomplete
1876 API documentation improvements.
1880 Add an example to the libmapi++ documentation, and
1881 the right build magic and doxygen linkage.
1883 Minor API documentation fix
1887 Add forgotten part of API documentation fixes for mapitest.
1889 Improve mapitest API documentation.
1893 Use new DeleteFolder flags to clean up folders on deletion.
1895 This doesn't completely resolve ticket #84, but it does help.
1897 Ignore API documentation.
1899 Add Doxyfile to ignore list.
1901 Add initial support for Doxygen API documentation
1906 Implement the remainder of the standard public folders.
1910 Only do header line removal at the start of the file
1911 (lines 20 through 40 seems like a good compromise).
1913 libmapi++ is C++, not C, so we should not optimise
1914 Doxygen output for C.
1918 - Update the Logon_repl IDL (0xFE) and implementation
1919 - Add new folders to the mapi_obj_store for PF folders
1920 - rename pf_finder to pf_search
1923 Suppress some more unwanted headers.
1927 - Add GetStoreState (0x7b) IDL, implementation and mapitest unit
1931 - Update the EmptyFolder IDL
1933 - Update the SearchFlags enum, GetSearchCriteria and SetSearchCriteria IDL
1934 - Add mapitest units for GetSearchCriteria and SetSearchCriteria
1936 Link libmapi++ documentation to main apidocs page
1938 Update GetAttachmentTable IDL and remove the unknown field
1940 - Update DeleteFolder IDL and implementation
1941 - It now supports DeleteFolderFlags as input parameter and can return the ParticalCompletion state
1942 - Sanity checks added at the beginning of the function
1944 - Rename GetRowCount to QueryPosition
1945 - IDL, implementation, documentation and openchange code updated
1946 - ActionType enum fields prefixed with 'ActionType_'. Original
1947 values were causing conflicts while building Perl bindings with
1948 'i386-linux-thread-multi/CORE/opnames.h where OP_DELETE was already defined'
1950 Change enum SaveFlags to uint8_t for doxygen documentation to be generated properly
1952 - Update SaveChangesMessage IDL and implementation
1953 - Add a SaveFlags parameter to SaveChangesMessage function
1954 - update openchange code to reflect this change
1957 Build fix / fix for ticket #99.
1959 Filter out some new #include lines.
1961 This needs to be applied to other modules too.
1965 Update SRow and SRowSet IDL
1967 Delete obsolete input_locale and instance_key structures
1969 Fix WStringArray_r IDL
1971 - Move from MV_UNICODE_STRUCT and LPWSTR to WStringArray
1972 - LPWSTR structure removed
1974 Rename SDateTimeArray to DateTimeArray_r
1976 Rename SGuidArray to FlatUIDArray_r and fix the IDL
1978 Rename MV_LONG_STRUCT to LongArray_r
1980 Rename SBinary to Binary_r
1982 - Add removal of libmapi++ Doxyfile in make distclean rule
1983 - Add Doxyfile to svn:ignore
1985 Rename SShortArray to ShortArray_r
1987 - Move from SLPSTRArray to StringArray_r
1988 - LPSTR structure removed
1990 Rename MAPIUID to FlatUID_r
1992 Fix lexer warnings during compilation (ticket #100)
1994 - Update the EcDoConnect IDL (ref. ticket #99)
1995 - Add new fields to the emsmdb info structure
1996 - Add doxygen comments to libmapi/emsmdb.c
1999 Reduce warnings when compiling with 64-bit arch.
2001 Initial checkin of infrastructure for libmapi++ API documentation.
2005 - MAJOR NSPI protocol and libmapi stack update
2006 - All NSPI protocol functions implemented
2007 - NSPI stack fully documented
2008 - NspiGetHierarchyInfo renamed to NspiGetSpecialTable
2009 - NspiDNToEph renamed to NspiDNToMId
2010 - instance_key removed from nspi_context and set as a parameter to NSPI functions
2011 - SPropertyRestriction renamed to PropertyRestriction_r
2012 - FlagList structure removed and replaced by a SPropTagArray
2013 - MAPI_SETTINGS removed and replaced by a STAT structure
2014 - new MAPI property tags added to libmapi/conf/mapi-properties
2015 - NSPI module added to mapitest
2018 Clean up on failure.
2020 Clean up on failure.
2022 Minor improvements to ensure cleanup on failure.
2024 API documentation fix
2026 API documentation fix.
2028 API documentation fix.
2030 API documentation fix.
2032 API documentation fixes.
2036 API documentation fixes.
2040 Fix EMSMDB 0xb function name
2042 - update EcRRegisterPushNotification IDL
2044 - implement complete MAPI notifications
2045 - update libmapi to reflect these changes
2046 - make openchangeclient prints a brief summary for each notification found
2047 - update ulEventMask used in openchangeclient
2051 - Rename Advise MAPI call to RegisterNotification
2052 - Update RegisterNotification IDL and implementation
2056 - Fix Restrict IDL and implementation
2057 - Add a new parameter to the Restrict function
2060 Add mapi_nameid.h to the ignore list
2062 - Replace libmapi/mapi_nameid.h with a generated mparse file
2063 - Add a mapi_nameid.h parser to mparse.pl
2064 - Add canonical names for named properties
2065 - GetProps and SetProps resolves named properties if they exist
2066 - named properties can now be set directly and make mapi_nameid API be
2068 - replace named property tags hex value with their canonimal names
2069 - replace several use of the mapi_nameid API with smaller code
2071 - Add new IDL file (property.idl) to push/pull structures from binary
2072 blobs and not directly related to any MAPI calls. Include the
2073 generated property.h file into libmapi.h
2075 - Add PT_MV_STRING8 support in pull_emsmdb_property (GetProps reply
2076 parsing) and mapidump_SPropValue
2078 - Add functions to property.c to retrieve RecurrencePattern,
2079 TimeZoneStruct and GlobalObjectId structures (see property.idl).
2081 - add a preliminary version of exchange2ical tool. This version only
2082 dumps calendar folder appointments into ICS file on standard output.
2086 - Update mapi-nameid-properties with a more complete set of properties
2087 - Add a header to mapi-nameid-properties for sanity purposes
2088 - Move named properties with PT_STRING8 type to PT_UNICODE
2089 - update openchange code to reflect these changes
2090 - Add PSETID_Attachment to mapidefs.h
2094 Add missing check on password for the create command
2096 Fix incorrect usage of realm in mapiproxy
2100 Check for provider_rpc_connection retval for RFR functions.
2102 Update Doxyfile to parse mapiproxy/modules files and
2103 include documentation on static functions.
2105 - Add NSPI hook on NspiQueryRows and NspiDNToEph and replace the
2106 Exchange server name with mapiproxy one.
2107 - documentation updated to reflect these changes
2108 - new FAQ question added
2109 - developer documentation improved
2111 Add the RFR mapiproxy file.
2113 - Implement RfrGetNewDSA DN replacement in mapiproxy
2114 - use lp_realm rather than sockaddr in NspiGetProps (FQDN rather than IP address)
2115 - update mapiproxy documentation to reflect these changes
2119 - Add implementation of the NSPI Referral protocol (exchangeRFR)
2120 - update dcesrv_exchange and mapiproxy prototypes for RFR
2121 - add references to the RFR pipe in mapiproxy
2122 - prefix NSPI client connections with a RfrGetNewDSA call
2123 - add RFR functions implementation in libmapi/IMSProvider.c
2124 - add a --getfqdn option to mapiprofile
2125 - fix a minor mapiprofile option parsing bug
2129 Fix mapiproxy dummy module unbind prototype
2131 - Remove flags in EcDoRpc top function, fix compilation vs latest samba4-git version
2132 - EcDoRpc indent updated
2136 Get rid of initialization order warning
2140 - add unbind hook for mapiproxy
2141 - add ahead mapiproxy mode
2142 - add read ahead in cache module
2143 - add synchronization mechanism in cache module
2144 - update mapiproxy documentation to reflect these changes
2148 Temporarily comment out installation of files removed
2153 Fix arguments, paths in provision scripts.
2155 Merge python provision/newuser scripts.
2157 Simplify installation of manpages a bit.
2161 Add configure check for libboost-thread. Add libmapi++ to the build
2162 only if it is available.
2166 - session constructor doesn't login to the server anymore, it calls MAPIInitialize().
2167 - Created session::login() members.
2168 - test applications use default profile.
2172 - Import Alan Alvarez work from libmapi++ into trunk
2173 - Add a g++ check in configure.ac: don't call libmapi++ rules if g++
2175 - Add libmapi++ to the build system
2176 - Add a patch function to installsamba4.sh: rename private to
2177 private_data in samba4 events.h header file
2178 - Change #include directives so it uses <libmapi++ ... rather than
2183 - Add a statitic function monitoring streams over OpenStream and Last
2184 ReadStream operations. Monitoring stream Release is not relevant
2185 since Outlook does not close the handle directly after last
2186 ReadStream operation. Should put in evidence difference between
2187 non-cached(1st retrieval) and cached (further retrieval).
2189 - Fix a few memory leaks
2193 - Commit initial revision for the mapiproxy cache module
2194 - Update mapiproxy hook API for the dispatch routine
2195 - Introduce the mapiproxy structure for modules to control top-level
2197 - Update mapiproxy documentation to reflect these changes
2201 * Fix remaining ByteRead parameter size for ReadStream operations.
2205 * Improve/Update Open/Read/WriteStream IDLs
2206 * Fix ByteRead parameter size for ReadStream operation.
2210 Improve OpenAttach, CreateAttach and DeleteAttach IDL - remove unknown
2213 Propagate r666 changes to OpenMsgStore and fix build
2216 Minor rename of bitmap value to avoid conflict with
2217 Private as a class name.
2221 Minor change: remove old debugging string from mapitest
2223 Fix incorrect header
2225 Remove deprecated mapi_handles API
2228 Initial checkin of some uno (static checker) support
2231 There will be a script to run uno with the right options,
2232 but that requires more work.
2236 Fix OXOMSG-ABORT-SUBMIT return value and return success when expected
2237 error values (MAPI_E_UNABLE_TO_ABORT, ecNoDelSubmitMsg) are encountered.
2239 - Call mapi_object_release in GetDefaultFolder
2240 - Remove pointless references to mapi_object_t
2243 Fix little memory leak.
2247 Fix invalid OpenFolder calls in mapitest modules
2249 Remove references to SaveChanges in doxygen see also statement
2251 - Rename SaveChanges to SaveChangesAttachment (0x25)
2252 - Update SaveChangesAttachment IDL
2253 - Update references to SaveChanges
2255 - Fix the huge memory leak described in Ticket #91
2256 - Rewrite the mapitest NameID test to use the mapi_nameid convenient
2261 - Add mapi_get_errstr auto-generated routine which returns the MAPI
2263 - Add print routine for MAPI retval in mapitest
2264 - Add a color mode (--color) which prints either green or red MAPISTATUS
2265 - Update mapitest modules to use these new routines
2268 Minor API documentation fix.
2274 - Add GetOwningServers (0x42) implementation (IDL + libmapi + mapitest)
2276 - Report and make consistent usage of PropertyProblem in the IDL:
2277 SetProps, DeleteProps and CopyProperties
2279 - Remove unknown field in GetProps and GetPropsAll and replace them
2280 with the correct IDL mapping.
2282 - Add IDL for SetPropertiesNoReplicate (0x79) MAPI call
2284 - Minor typo fix in IMAPIProp.c
2286 Improve CreateMessage request IDL
2288 Improve OpenMessage response IDL
2290 - Add PublicFolderIsGhosted (0x45) MAPI call (IDL + libmapi + mapitest)
2292 - Improve OpenFolder, CreateFolder and OpenPublicFolderByName response
2293 IDL: make these call able to check whether the folder is ghosted or
2296 Revert emsmdb pipe version to the hacked one. Makes mapiproxy work with samba4-alpha5 release.
2298 SeekRow and SeekRowBookmark IDL improved
2300 Improve the SetColumns IDL: remove unknown fields
2304 Minor code convention fix
2306 Check NTSTATUS return value from dcerpc_ndr_request. Prevent mapiproxy
2307 from segfault when invalid dcerpc response is received.
2309 Expose MAPISTATUS error in OXCTABLE-CATEGORY::FreeBookmark.
2310 Requires investigation
2313 Implement GetIdFromLongTermId and GetLongTermIdFromId
2314 functions (ROP:0x43 and 0x44), and associated mapitest.
2316 Documentation typo fix.
2318 Change the QueryNamesFromIDs() call to match
2319 MSDN, including changing the name to QueryNamedProperties().
2321 Also implement mapitest for QueryNamedProperties(),
2322 GetNamesFromIDs() and GetIDsFromNames().
2324 Update torture test to match.
2328 - Build system update: use samba4-alpha5 release with wget method
2329 - introduce 'make samba' and 'make samba-git'
2333 Make sure we have names[] array large enough.
2335 Problem identified using default uno run.
2341 Fix a small errno bug in GetBestBody
2342 Add dump-data and debug options to exchange2mbox
2346 - Move emsmdb interface version back to 0.81 (patch applied in samba4 trunk)
2347 - remove sed hack, modifications applied in samba4 trunk
2348 - update required samba4 git rev required
2355 Minor documentation update: remove deprecated reference to ./bin/smbpython
2357 Fix torture suite entry point name
2358 Fix torture module installation path
2360 - Add implementation for the BestBody algorithm
2361 - Add MAPI_E_NOT_ENOUGH_MEMORY error code
2362 - Remove trailing }}\0 from lzfu code
2363 - Update openchange tools to use GetBestBody rather than
2364 the initial check on PR_MSG_EDITOR_FORMAT
2366 Add a very basic stat module for mapitest: gives a quick overview
2367 of tests which failed at the end of the report.
2369 - Defines a global stream size in mapitest.h
2370 - Decrease stream size from 0x4000 to 0x3000
2371 Sounds like Exchange 2003 SP2 doesn't support 0x4000, return MAPI_E_CALL_FAILED
2376 Fix OC_CHECK_SAMBA_VERSION string
2378 - Move samba4_ver.sh from top dir to script
2379 - update parts of openchange relying on samba4_ver.sh
2381 Add configure check for lib Z
2384 - Temporary fix ldb.pc problem and patch ldb.pc.in
2385 - Update samba4 version to the latest revision
2386 - Add libmapiproxy to svn:ignore proplist
2389 Try a different git revision, just for now.
2393 - Update Samba4 version needed
2394 - Change entry point function from init_module to samba_init_module
2395 - update documentation
2399 Fix calls of ldb_init() as required by newer versions of Samba.
2403 Support newer versions of Samba4.
2407 Add some other standard GUIDs
2415 Use version and soversion in mapiproxy library.
2417 Make modules directory overridable.
2421 Change API as identified on devel mailing list.
2424 After some investigation into an error reported by valgrind, I'm proposing an
2425 API change for the MoveCopyMessages() function.
2427 The signature is currently
2428 enum MAPISTATUS MoveCopyMessages(mapi_object_t *obj_src, mapi_object_t
2429 *obj_dst, mapi_id_t *message_id, bool WantCopy)
2431 The problem is the message_id array. The subtle part is that it needs to be
2432 terminated with a null mapi_id_t*, because of this:
2433 for (request.count = 0; message_id[request.count]; request.count++);
2435 That is a bit error prone - enough so to be wrong in the mapitest.
2437 Now we could just fix the mapitest and document the requirements, or we could
2438 change the signature.
2440 Two ideas for a different signature:
2441 1. We could add a uint16_t count to the signature, that says how long the
2443 2. We could use a better data structure than mapi_id_t*. I'm suggesting
2445 enum MAPISTATUS MoveCopyMessages(mapi_object_t *obj_src,
2446 mapi_object_t *obj_dst,
2447 mapi_id_array_t *message_id,
2452 Add mapitest coverage for CopyTo operations on
2453 folders and attachments, and update API docs.
2455 Also fix one place where we inadvertently used
2456 CopyProps instead of CopyTo...
2460 Typo fixes in comments.
2462 Minor documentation updates.
2464 Clean up created message for SpoolerLockMessage() test.
2468 Update samba4 version test.
2472 Make sure properties are copies into the last valid
2473 location in the extended array (i.e. count-1) not the
2476 Also, make sure we cast the data to a uint8_t for
2477 conversion to boolean.
2479 Also fix compile warning about returning integer instead
2482 We may read up to 0x1000 bytes, so ensure there is
2483 enough room to add the terminating null.
2485 Minor cleanup of the talloc context for FreeBookmark().
2487 Also change around some code to protect things a bit
2488 better against null pointer inputs.
2492 Implement a bit more mapitest for CopyTo (0x39), in
2495 Also make it clean up and report failures properly.
2499 Implement the CopyTo operation (0x39), including initial mapitest.
2500 JK previously committed the IDL for this.
2502 Also make CopyProps (0x67) use an appropriate data structure for
2503 its IDL and update implementation to match.
2507 Minor documentation updates/corrections.
2511 Introduce a default case for MAPI Restriction. In some circumstances -
2512 while Outlook creates an OOF Rules - it sets a PT_SRESTRICT mapi
2513 property tag which value is set to 0xFF. However 0xFF doesn't match
2514 any restriction case.
2518 - Add IDL for OpenEmbeddedMessage (0x46) MAPI call
2520 - Add IDL for ReloadCachedInformation (0x10) MAPI call
2522 - Add IDL for CopyTo (0x39) MAPI call
2524 - Update the Samba4 GIT revision needed to run openchange properly
2526 - import mapiproxy project from mapiproxy branch
2527 - add custom proxypack MAPI call
2528 - remove deprecated dcesrv_exchange_remote
2531 Add missing part of mapitest for SetReadFlags
2533 This should have been part of r578.
2535 mapitest for SetReadFlags
2537 Implement SetReadFlags (operation 0x66).
2539 Also minor API docs fix.
2541 Move some test infrastructure from the oxctable.c module
2542 into the common area.
2544 Fix IDL error for SetReadFlags, and use existing flags
2545 define (MSGFLAGS_READ) instead of creating a new set.
2547 Build fix for relocation of mapiproxy/ to be under the
2548 top level directory (instead of under the utils/
2553 merge from mapiproxy branch:
2554 * ndr_push Logon_req manually
2556 merge from mapiproxy branch:
2557 * Add IDL and server boiler template for EcDoConnectEx (0xA)
2560 * Fix ndr_push_mapi_response code in ndr_mapi.c
2562 * Add the ndr_push_EcDoRpc_MAPI_REPL function in
2563 ndr_mapi.c. Handles special Notify and Pending cases
2565 * Handle op_MAPI_Pending case properly in
2566 ndr_pull_EcDoRpc_MAPI_REPL
2568 * Add code to ndr_push QueryRows in ndr_mapi.c: Do not push any
2569 DATA_BLOB if there is no RowCount
2571 merge from mapiproxy branch:
2572 * Fix GetReceiveFolder [out] IDL
2573 * Fix some naming convention typo
2575 merge from mapiproxy branch:
2576 * Fix SetMessagReadFlag [out] IDL
2578 - Add [flag(NDR_REMAINING)] to SetMessageReadFlag. This is not
2579 perfect, but it will prevent mapiproxy from ndr_pull error while
2580 setting message read flag on public folders messages.
2582 merge from mapiproxy branch:
2583 * Fix CreateMessage [out] IDL
2585 merge from mapiproxy branch:
2586 * rename OpenModeFlags to OpenFolder_OpenModeFlags in OpenFolder
2587 * rewrite OpenMessage [in] IDL and report changes in
2588 libmapi/IStoreFolder.c
2590 merge from mapiproxy branch:
2591 * Add IDL for Pending (0x6e) MAPI call
2592 * Reorder some MAPI calls in EcDoRpc_MAPI_REPL_UNION
2594 - Add SetReadFlags to EcDoRpc_MAPI_{REQ,REPL}_UNION
2596 merge from mapiproxy branch:
2597 * Add IDL for SetSyncNotificationGuid (0x88) MAPI call
2599 merge from mapiproxy branch:
2600 * Add IDL for SyncGetTransferState (0x82) MAPI call
2602 merge from mapiproxy branch:
2603 * Add IDL for SyncImportReadStateChanges (0x80) MAPI call
2605 Note: This IDL is temporary and should be improved after completion of
2606 the merging process.
2608 merge from mapiproxy branch:
2609 * Add IDL for SyncOpenCollector (0x7e) MAPI call
2611 merge from mapiproxy branch:
2612 * Add IDL for DeletePropertiesNoReplicate (0x7a) MAPI call
2614 merge from mapiproxy branch:
2615 * Add IDL for SyncImportMessageMove (0x78) MAPI call
2617 merge from mapiproxy branch:
2618 * Add IDL for SyncUploadStateStreamBegin (0x75) MAPI call
2619 * Add IDL for SyncUploadStateStreamContinue (0x76) MAPI call
2620 * Add IDL for SyncUploadStateStreamEnd (0x77) MAPI call
2622 merge from mapiproxy branch:
2623 * Add IDL for SyncImportDeletes (0x74) MAPI call
2625 merge from mapiproxy branch:
2626 * Add IDL for SyncImportHierarchyChange (0x73) MAPI call
2628 merge from mapiproxy branch:
2629 * Add IDL for SyncImportMessageChange (0x72) MAPI call
2631 merge from mapiproxy branch:
2632 * Add IDL for SyncConfigure (0x70) MAPI call
2634 merge from mapiproxy branch:
2635 * Add IDL for RegisterOptions (0x6f) MAPI call
2637 Note: This call is undocumented in Microsoft documentation, but MSDN
2638 RegisterOptions function generates this call on the wire.
2640 merge from mapiproxy branch:
2641 * Add IDL for Progress (0x50) MAPI call
2643 merge from mapiproxy branch:
2644 * Add IDL for FastTransferSourceGetBuffer (0x4a) MAPI call
2646 merge from mapiproxy branch:
2647 * Add IDL for GetPerUserLongTermIds (0x60) MAPI call
2648 * Add IDL for GetPerUserGuid (0x61) MAPI call
2649 * Add IDL for ReadPerUserInformation (0x63) MAPI call
2651 merge from mapiproxy branch:
2652 * Add IDL for LongTermIdFromId (0x43) MAPI call
2653 * Add IDL for IdFromLongTermId (0x44) MAPI call
2655 merge from mapiproxy branch:
2656 * Add IDL for ModifyRules (0x41) MAPI call
2658 merge from mapiproxy branch:
2659 * Add PT_SRESTRICT support in mapi_SPropValue_CTR
2661 * Add PT_ACTIONS and RuleAction support in mapi_SPropValue_CTR
2663 * Fix mapi_SNotRestriction NDR push routine - add a wrapper to
2664 work around the no-pointer deep recursion pb and remove
2665 existing nopull,nopush,noprint code from ndr_mapi.c
2667 * Fix mapi_SComment_Restriction IDL
2670 - Introduce PT_MV_UNICODE support in mapi_SPropValue_CTR (IDL only)
2671 - use mapi_LPWSTR for PT_MV_UNICODE
2672 - rename mapi_LPWSTR structure to mapi_name in Kind structure and
2673 change its field names.
2675 - Fix emsmdb version
2676 - Change MAPI opnum enum identation -- Helps to fine down merging from
2682 Minor API documentation fixes.
2684 Update label to reflect SetReadFlags -> SetMessageReadFlag
2687 This should have been part of r529 - missed it.
2691 merging from mapiproxy branch:
2692 - Fix MV_UNICODE_STRUCT and unicode strings
2693 - Keep LPWSTR for exchange_nsp and move from LPWSTR to
2694 mapi_LPWSTR for exchange_emsmdb
2695 - Add the NspiGetTemplateInfo IDL
2696 - Fix the NspiUpdateStat IDL
2698 Fix build: SetMessageReadFlag function name was not propagated in the
2702 Initial merge of changes for rename of SetReadFlags to
2703 SetMessageReadFlags (op 0x11) and IDL for SetReadFlags
2706 Use private_data instead of private, for C++ happiness.
2708 Minor cleanup. Using "try" confuses my c++ compiler...
2710 This is really part of r525. It moved to IMAPITable.c
2712 Update the table operations:
2713 - implement ExpandRow and CollapseRow
2714 - implement GetCollapseState and SetCollapseState
2715 - add mapitest coverage for the above, plus the Restrict call
2716 - implement ResetTable
2717 - implement FreeBookmark
2718 - add mapitest coverage for SRowSet parsing code
2720 - various API documentation bits
2723 Use right directory for samba4_ver.sh script.
2725 Use common location for Samba 4 git revision.
2729 Use PT_ERROR where appropriate.
2731 Update the SRowSet parser, fixing breakage I introduced.
2735 Update examples to reflect recent API changes.
2738 Don't rely on absolute file paths since the distribution may be installing
2741 make scripts executable.
2745 Avoid segfaulting if you ask for a specific test or tests and
2746 forgot to start the server.
2749 [bradh@conferta trunk]$ ./bin/mapitest --mapi-calls=OXCTABLE-CATEGORY --mapi-calls=OXCTABLE-RESTRICT --mapi-calls=NOSERVER-LZFU
2750 Failed to connect host 192.168.11.77 on port 135 - NT_STATUS_HOST_UNREACHABLE
2751 Failed to connect host 192.168.11.77 (192.168.11.77) on port 135 - NT_STATUS_HOST_UNREACHABLE.
2752 MapiLogonEx : MAPI_E_RESERVED (0xFFFFFFFF)
2753 #############################[mapitest report]#################################
2754 [*] Date : Sun May 25 11:45:29 2008
2755 [*] Confidential mode : [no]
2756 [*] Samba Information : 4.0.0alpha4-GIT-44d8b70
2757 [*] OpenChange Information : 0.8-SVN-build-510 (Romulus)
2759 [*] System Information :
2761 Kernel release : 2.6.23.17-88.fc7
2763 ###############################################################################
2767 [TEST] NOSERVER-LZFU
2768 ------------------------------------------------------------------------
2769 * uncompress_rtf2 : 0x00000000
2770 * uncompress_rtf2 : PASSED
2771 ------------------------------------------------------------------------
2772 [RESULT] NOSERVER-LZFU: [SUCCESS]
2773 ========================================================================
2775 [*] OXCTABLE-RESTRICT
2776 Server is offline, skipping test: "OXCTABLE-RESTRICT"
2777 [*] OXCTABLE-CATEGORY
2778 Server is offline, skipping test: "OXCTABLE-CATEGORY"
2782 ignores objects that contain invalid handlers in mapi_object_release().
2784 Patch by Alan Alvarez. Compile tested, passes mapitest on SBS2003.
2788 Fix API documentation to match signature.
2792 Update QueryRows IDL and implementation to match
2795 The main work here is reworking the SRowSet parsing
2800 Typo fix - allow cleanup to work properly.
2804 Make sure it has a return value.
2808 Rename GetColumns remote operation to GetColumnsAll, and
2809 fix up IDL and implementation to match.
2811 Add some more unit test coverage, and pretty-up the
2814 Fix up breakage introduced in r493.
2817 Make sure nagios directory gets created if it didn't exist yet.
2821 Refactor the unit tests.
2823 Extract out the setup and some of the cleanup code.
2827 - Update openchange code to work with Samba4 4.0.0alpha4-GIT-44d8b70
2828 - Use event_context structure
2829 - update installsamba4.sh script to revert to this revision.
2830 - update torture modulesdir reference
2833 Look a little bit harder for the Samba installation.
2837 - Add GetLocalReplicaIds MAPI call (IDL + implementation + mapitest)
2838 - Add OXCFXICS mapitest module
2842 - Fix "the very secret" openchange coding style
2843 - Add Copyright for our humble new libmapi developer ;-)
2846 Implement the CopyProperties operation, including
2847 a mapitest for this.
2851 - Add TransportSend MAPI call (IDL + implementation + mapitest). This
2852 code maybe needs some review regarding memory.
2854 - Add the GetTransportFolder MAPI call (IDL + implementation +
2857 - Add SpoolerLockMessage MAPI call (IDL + implementation + mapitest)
2859 - Add SetSpooler MAPI call (IDL + implementation + mapitest)
2861 - Add GetRulesTable (IDL + implementation + mapitest)
2862 - Add the OXORULE mapitest suite
2868 Make sure config.mk is the last file removed during distclean.
2872 - Add the Abort MAPI call (IDL + implementation)
2874 OpenChange doesn't support yet asynchronous operation which explains
2875 why no associated mapitest test has been implemented. This should be
2878 - Add the MoveFolder MAPI call (IDL + implementation + mapitest)
2879 - Fix some typo in mapitest doxygen
2881 - Add MoveFolder MAPI call (IDL + implementation + mapitest)
2882 - Fix some doxygen stuff
2883 - add a common function within mapitest which looks for a folder name
2884 within a container and return the opened folder object on success.
2886 Add auto-generated Doxyfile to the svn ignore list
2888 - Add AbortSubmit MAPI call (IDL + implementation + mapitest)
2890 - Uninitialize MAPI and general memory context at the end of mapitest
2893 Clean up / flush the stream after use.
2895 Saves a bit more "still reachable" in valgrind too.
2899 - Rename CopyMessages to MoveCopyMessages
2900 - Improve IDL + implementation and mapitest added
2903 Make sure the version shown for mapitest documentation
2904 is automatically set to match the package version.
2906 complete the rest of the API documentation autonumbering.
2909 Remove duplicate use of $(SHLIBEXT).
2911 Avoid parallel builds for now.
2915 Fix GetContentsTable binding in perl swig
2917 - Improve the GetHierarchyTable and GetContentsTable IDL and public
2918 IDL implementation (new parameters in,out)
2921 Initial part of automatic list numbering for doxygen comments.
2923 This doesn't work correctly with the current apidocs.css, which
2924 turns the list numbers into bullet points for reasons I don't
2929 - Improve the DeleteMessages IDL request
2931 - Update libmapi version from 0.7 to 0.8
2933 - Public API change for the GetReceiveFolder function; now takes a
2934 message class as 3rd parameter.
2936 - Improve GetSearchCriteria request IDL (unknown removed)
2937 - update libmapi copyright headers 2007 -> 2007-2008.
2939 - Improve the SubmitMessage IDL
2940 - minor indentation fixed in IMessage.c
2942 - Add CopyToStream MAPI call (IDL + implementation + mapitest)
2944 - Add SeekStream MAPI call (IDL + implementation + mapitest)
2945 - Add SetStreamSize MAPI call (IDL + implementation + mapitest)
2947 - Add CommitStream MAPI call (IDL + implementation + mapitest)
2948 - Add GetStreamSize MAPI call (IDL + implementation + mapitest)
2949 - refactor the stream test to include all stream related operations
2950 - add a common function which generates a random ASCII blob of data
2953 Add doxygen support for the mapitest examples.
2956 Allow cleaning individual parts.
2960 - Add GetStatus call (IDL + implementation + mapitest)
2962 - Fix format string problem in mapitest headers
2964 Run offline suites by default.
2966 - Introduce the online/offline mode for suite
2967 - Fix Exchange headers print bug when server is offline
2968 - reset errno to 0 before running new test
2971 Install the libmapiadmin.h header.
2973 Fix a compile-time warning on amd64, for the second
2974 argument to the getline() call - incompatible pointer
2977 I'm assuming that size_t is equivalent to uint32_t
2978 on a 32-bit architecture, but not on a 64-bit arch.
2980 A quick test showed no difference in actual output.
2983 Remove bashisms in installsamba4.sh
2987 - Add ReadRecipients MAPI call (IDL + implementation + mapitest)
2988 - Improve some ModifyRecipients and Recipients structure naming
2992 - Add RemoveAllRecipients call (IDL + implementation + mapitest)
2994 - Add OpenPublicFolderByName call added (IDL and implementation).
2996 - Note: the reply IDL doesn't handle Server and ServerCount yet.
2998 - Note: this call only refers to NNTP folders (e.g: folders located
2999 within "Internet Newsgroups". If developers use this call within "All
3000 Public Folders", then the call with return MAPI_E_NOT_FOUND.
3002 - Call not added to mapitest cause it require RightsAuthor permissions
3003 on Internet Newsgroups which is not the case by default.
3005 - dump-data and debug options added to mapitest
3006 - FOLDER suite renamed to OXCFOLD (naming convention)
3008 Rename module folder to oxcfold
3010 Replace the existing mapitest tool with a new implementation. It is
3011 less complete but more modular.
3014 Add proto headers to ignore file.
3018 OpenFolder request: replace unknown field with OpenModeFlags
3020 - Rename 0xFE opnum from OpenMsgStore to Logon
3021 - Update the Logon request IDL
3024 Add BEGIN_DECLS for private_proto.h.
3026 Add forgotten part of rev435.
3028 Add unit test framework for compressed RTF decoding.
3030 Refactor lzfu.c to improve testability.
3034 Fix openchangeclient --mailbox --pf with wasn't launched anymore due
3035 to some incorrect sanity check tests.
3037 - Remove deprecated fuzzer_msgstore torture test
3038 - replace mapi_flags with logon_id in EcDoRpc_MAPI_REQ
3042 A couple of minor fixes to make it read better.
3045 properly clean up sofiles
3047 Import exchange nagios check script by Bill Edmunds.
3049 Add support for creating libocpf soname symlink.
3051 Use standard include for uint64_t definition.
3053 Cleanup talloc and tdb before building samba4.
3057 Check for ocpf_set_Recipients retval (MAPI_E_NOT_FOUND)
3059 - Reset ocpf to NULL after release so the ocpf_init/release couple can be called more than once.
3060 - Sanity check on recipient, avoid parsing if no recipient is set. Return MAPI_E_NOT_FOUND instead.
3062 Add reference to the ocpf lib within the pc file.
3066 Remove duplicate SWIG instructions (already covered by stdint.i).
3068 Ignore files created by swig.
3070 Use config.mk in swig/perl/Makefile.
3072 Allow sambaprefix and prefix to be different. Allow building with unknown
3073 Samba git revisions (will still warn though).
3075 Add --with-samba argument to configure so samba and openchange can be installed in different directories.
3079 Add domain to the mapiprofile dump output.
3081 Fix OpenMessage IDL and GetRecipientTable fetched data
3083 -This line, and those below, will be ignored--
3086 M trunk/exchange.idl
3087 M trunk/libmapi/IStoreFolder.c
3088 M trunk/libmapi/emsmdb.c
3089 M trunk/libmapi/IMessage.c
3093 Fix typo, change samba-config -> samba-hostconfig.
3097 - Add openchangepfadmin to make install
3098 - Add openchangemapidump and locale_codepage to make clean
3102 Merge the samba4-latest branch.
3106 Revert so version number to 0.7
3108 Fix Perl bindings: update mapidump_message
3110 ** Start libmapi-0.8 ROMULUS development **
3112 Add ChangeLog and apidocs to the releases
3114 - Delete unmaintained regression suite
3115 - Fix typo error in torture-clean rule
3117 Add modified release script originally from abartlett/samba4
3119 - Check for specific Samba4 git revision in configure.ac
3120 - Prefix locale functions with lcid and make them _PUBLIC_
3123 API documentation update.
3130 Add installation script for samba4
3132 - Apply the nspi pointer patch - make openchange works with
3133 samba4-alpha3 git 41309dc
3138 Move the top level API documentation to an "overview"
3139 section and add a redirect to that overview.
3141 This keeps the doxygen output more nicely separated for
3144 Also, generate the man pages where the install expects
3149 - Fix strsep bug in openchangeclient
3150 - Add RECIPIENT support to libocpf
3152 - escape/unescape strings support added
3153 - PT_MV_STRING8 type added to OCPF write API
3157 - return MAPI_E_NOT_FOUND if NspiGetMatches doesn't return any results
3158 (based upon patch from lofi@mountproc.org)
3159 - makes the workstation parameter of mapiprofile optional (use
3160 gethostname if not defined by the user on command line)
3162 - Fix an allocation memory problem in cast_SPropValue
3163 - update svn:ignore proplist
3167 Update the documentation build so it keeps generating an embedded
3168 website in with apidocs/html as root directory.
3170 - Add support for PT_UNICODE and PT_SHORT to libocpf
3171 - Initial implementation of the libocpf write API
3172 - Update libocpf documentation
3173 - add --ocpf-dump option in openchangeclient
3174 - Fix realdistclean rules for server
3175 - add cast_SPropValue function to libmapi/property.c which cast
3176 mapi_SPropValue to SPropValue
3179 Split API documentation into two separate sections - one
3180 for libmapi and one for libocpf.
3182 Also add in a top level intro page.
3186 New build system which gathers a list of things that can be built with
3187 the libraries/utilities the user has installed and build that when
3192 Add missing allocation for OLEGUID
3194 --ocpf-syntax doesn't require MAPI to be initialized. Furthermore
3195 makes ocpf-syntax "exclusive" (quit after performing the operation).
3198 r371 was bad. What was I thinking with that nonsense!
3200 Revert to something sane.
3202 Make the ./bin/ directory if it doesn't exist.
3204 This should resolve ticket #33.
3208 Improve language handling when creating profiles.
3210 You can now get a list of valid languages and use either
3211 the language code ID or the language name to specify what
3212 language later versions of Exchange should reply with.
3214 Typo fix - duplicate ; at the end of the structure.
3216 Match format to unsigned int argument.
3218 Make the format specifier match the unsigned argument.
3222 propset svn:ignore update
3224 Update propset svn:ignore on doc/examples and libocpf targets
3226 - Fix ticket #29: http://trac.openchange.org/ticket/29
3228 - use access(2) to see if the database already exists
3229 - test if the profile already exists prior trying to add it
3230 - add descriptive error messages
3231 - catch CTRL-C signal and run a profile deletion routine
3234 Update API documentation for ocpf_nproperty_add().
3240 Fix mapidump_message call parameters
3244 Add fid/mid parameters to mapidump_message and changed
3245 openchangeclient_fetchitems to reflect these changes.
3247 Patch from Brad Hards <bradh@frogmouth.net>:
3248 updates the OCPF doxygen file.
3250 Patch from Brad Hards <bradh@frogmouth.net>:
3251 adds the doc/examples into the build system and enables make examples.
3253 Patch From Brad Hards, <bradh@frogmouth.net>:
3254 API documentation update and minor fix for the error value change.
3262 - Add PT_BINARY property support to OCP
3263 - Add stream support to OCPF for large PT_BINARY blobs.
3264 - Fix a bug which prevented from having no/empty PROPERTY or NPROPERTY
3269 - Prevent from assigning a value which type doesn't match with
3271 - Add missing substitution variable support for some named properties
3273 - Improve sample_appointment.ocpf example
3274 - Add PT_MV_STRING8 keyword to the list of supported property type
3279 Improve OCPF PT_MV_STRING8 support.
3281 - Initial revision for libocpf and its documentation
3282 - YACC support added to the build system
3283 - custom lid and string support in mapi_nameid
3284 - lookup functions added for OOM, lid and string
3285 - OCPF commands added to openchangeclient (ocpf-file, ocpf-syntax,
3287 - PR_FID displayed in openchangeclient --mailbox
3288 - PT_MV_STRING8 support added to cast_mapi_SPropValue
3292 Patch from Brad Hards <bradh@frogmouth.net>:
3293 updates code to build with current API
3295 Patch from Brad Hards <bradh@frogmouth.net>:
3296 little update for some API dox
3300 - Add --update option to openchangeclient and allow users to modify
3301 existing messages (calendar, task, contact, note)
3302 - Add --delete option to openchangeclient and allow users to delete
3303 existing messages (calendar, task, contact, note)
3304 - Add some folder/message unique ID to mapidump outputs and send*
3305 openchangeclient functions.
3306 - Fix a bug in set_SPropValue: add sanity check on unicode
3307 string. Thanks to Suman Manjunath for this patch.
3308 - Fix mapidump_task function and identifiers of named properties used.
3312 Fix missing sanity check on priority
3314 Fix a bug in openchangeclient when tasks are created without body
3316 private flag added to openchangeclient appointments
3318 Fix folder IDs problem for Exchange 2007 SP1
3322 Fix names IDL against Samba4 4.0.0alpha3-GIT-41309dc
3326 - Fix a bug in IStoreFolder.c:OpenMessage which was also affecting
3327 GetRecipientTable. We were extending SPropTagArray prior calling
3328 emsmdb_get_SRow. This was causing ndr_pull_error in OpenMessage_repl
3329 and erroneous data to be inserted in the SRow.
3331 - Fix libmapi/socket/interface.c:
3332 - Use the latest version from Samba4 which removes reference to
3334 - Moves struct interface declaration to netif.h
3335 - Report changes to emsmdb.c notification functions.
3337 - Change GetGALTable prototype to match general libmapi policy. Remove
3338 the usage of bool and replace it with uint8_t. Possible values added
3343 - Improve NspiQueryRows IDL and implementation
3344 - Add GetGALTable implementation: fetch all the Global Address List
3346 - Add --userlist option to openchangeclient
3347 - Add a convenient and basic dumping function for Global Address List
3350 - Improve OpenMessage reply IDL
3351 - Fetch mapi recipients from OpenMessage reply
3352 - Add GetRecipientTable convenient function
3353 - Add OPENCHANGE-MAPI-RECIPIENT torture test to test
3354 GetRecipientTable implementation.
3355 - Add convenient SPropTagArray_add function
3356 - Add internal emsmdb_get_SRow routine
3360 Patch from Suman Manjunath <msuman@novell.com>:
3362 - Adds named-properties which define recurrence patterns for
3363 appointment and task.
3364 - Adds named properties for appointment timezone
3366 - Fix the SNotRestriction IDL and write custom push,pull,print
3368 - Add 2 new MAPI calls to the IDL:
3369 * GetSearchCriteria,
3371 - add sample {Get,Set}SearchCriteria torture test
3372 - add convenient mapi_id_array implementation
3373 - add GetDefaultFolder support for CommonView and Finder folders
3377 Make sure directory exists.
3381 - Fix tiny 'nail down samba4 version' bug
3382 - update the minimal Samba4 required version
3384 - Add FindRow call to the IDL
3385 - Improve mapi_Restriction support
3386 - Remove deprecated ndr_print_QueryRows function
3387 - Add a print function for fuzzyLevel
3388 - Add preliminary FindRow implementation test to MAPI-RESTRICTIONS
3390 - Add couple of new MAPI tags to mapi-properties
3391 - change initial bookmark index to 3
3395 - Add 2 new MAPI calls to the IDL and mapitest:
3397 * GetReceiveFolderTable
3399 - Fix a bug in the SortTable test when no messages are returned by
3402 - Add SeekRowApprox to the IDL and mapitest
3403 - Fix some doxygen typo
3405 - New calls added to the IDL, torture suite and mapitest:
3408 - Internal mapi_object_bookmark_t implementation added to
3410 - SBinary_short default ndr_print function changed to custom
3414 Temporary fixes unexpected segfault in SortTable test. Emails sent
3415 during the Submit test have sometimes not yet been dispatched when the
3416 SortTable test begins. This fix adds a sleep(1) and an arbitrary
3417 number of attempts (5).
3419 Add 2 new MAPI calls to the IDL and libmapi:
3423 Tests for SortTable added to mapitest and the torture suite
3424 Test for AddressTypes added to mapitest.
3428 Fix perl bindings and fetchmail test
3430 2 new MAPI call added to the IDL and mapitest:
3436 - Add DeleteAttach MAPI call
3437 - Add new mapi unit tests:
3441 * GetAttachmentTable
3443 - Update mapitest README
3444 - Add some convenient functions to mapitest_common.c
3448 Add a preliminary draft of the mapitest standalone MAPI test suite.
3454 - Fix the build with the latest Samba4 version.
3456 - Add a basic libmapi/version.h auto-generated
3457 file (based on Samba4 one)
3458 - Remove some warnings when compiling the utf8
3460 - Add a emsmdb_info structure to fetch some
3461 information from the Exchange server
3463 WARNING: Please note that EMSABP is definitely broken and
3464 requires a review and update.
3467 DESTDIR should never get into any source files, that would defeat its purpose.
3471 Fix the torture suite.
3475 provide extra required argument.
3477 Store a loadparm context in the global mapi context.
3479 Deal with samba version.h's that don't contain the Subversion revision.
3483 Use SWIG-provided typemaps for stdint.
3487 Fix Content-Type field in exchange2mbox
3488 Reported by Yuriy Filatov <yuriy.filatov@gmail.com>
3492 - Improve the CreateMessage IDL
3493 - Add new parameters to IMAPIFolder CreateMessage libmapi function
3494 - Add --mkdir --rmdir options to openchangeclient
3495 - Update the CreateFolder API and openchangeclient documentation
3496 - Fix CreateFolder calls in openchange tools and torture suite
3497 - Fix gendb_search warning
3501 Add new PSETID_Address named properties
3503 Fix a few code convention typos
3505 Patch from Suman Manjunath <msuman@novell.com> applied:
3506 converts a 'struct timeval' to 'NTTIME'.
3507 minor extension of 'set_SPropValue_proptag', used while setting PT_SYSTIME properties.
3511 update Samba4 first revision to 26100
3514 Cope with ndr updates.
3518 Patch from Brad Hards: Fix possible Heap overflow in lzfu code
3522 Fix profile creation in a clustered Exchange 2007 environment.
3526 Fix QueryColumns req size.
3530 ** Start libmapi-0.7 PHASER development **
3532 add --dump-data option to mapiprofile for debugging purpose
3536 openchangepfadmin (1) man page added
3538 Store messageID in the object when SaveChangesMessage is called
3540 Nail down Samba4 version for libmapi-0.6
3544 - Add PR_MSG_EDITOR_FORMAT property to the sendmail operation
3545 - Fix body dump bug when PR_MSG_EDITOR_FORMAT property is missing (default set to PLAINTEXT)
3546 - Continue to process the mailbox when a problem is encountered with mesage contents (not attachment)
3547 - Fix a typo bug in openchangeclient body help string
3549 Update doxygen section
3553 - Add doxygen man (3) pages to installman and uninstallman rules
3554 - do not run doxygen if apidocs already exists
3558 Move documentation to doxygen
3562 Add convenient date related functions for implementors:
3563 returns a timeval struct matching a PT_SYSTIME property
3564 for improved date manipulation in 3rd party softwares
3568 Fix build to work with latest Samba4 revision (4.0.0alpha2-SVN-build-25722)
3570 Fix make realdistclean when swig perl is enabled
3572 Fix swig perl bindins compilation: move *.o to *.po
3574 use talloc_memdup to copy const data in the body DATA_BLOB
3575 Should only provide valid pointer to talloc_free
3579 Fix the DeleteMessages [out] IDL.
3581 The remaining bytes were not part of DeleteMessages but
3582 MAPI notification (0x2a)
3586 - Add RTF support in exchange2mbox
3587 - Use openchange-tools public functions
3588 - Replace GetPropsAll calls with GetProps
3591 * Use GetProps rather than GetPropsAll for message dump
3592 * Rely on PR_MSG_EDITOR_FORMAT to select the type of body
3593 * Open a stream for PR_BODY and PR_HTML if the size exceeds max property size
3595 -This line, and those below, will be ignored--
3598 A trunk/utils/openchange-tools.c
3599 M trunk/utils/openchangeclient.c
3600 M trunk/utils/openchange-tools.h
3601 M trunk/utils/openchangeclient.h
3602 M trunk/libmapi/mapidefs.h
3610 Remove useless svn:ignore
3613 Add WrapCompressedRTFStream function for PR_RTF_COMPRESSED content.
3615 Original lzfu decompress routine fetched from libpst-0.5.2
3617 make enum MAPISTATUS variables naming uniform in libmapi
3621 Add PT_CLSID case to get_SPropValue_data
3623 Add/Fix pull property support for PT_UNICODE and PT_CLSID (used by GetProps)
3625 Patch from Brad Hards <bradh@frogmouth.net>:
3626 Fix compilation for x86_64 platforms.
3630 More svn:ignore updates
3632 Update of svn:ignore
3636 added the IDL license
3638 Convert OpenChange to GPLv3
3640 - Add .po files to make clean
3641 - Fix a couple of warnings in the utf8 conversion lexer
3642 - Prefer long filenames to truncated one for attachments in openchangeclient
3646 Prevent exchange2mbox from segfault when PR_MESSAGE_DELIVERY_DATE is unset
3648 Add PT_CLSID and PT_MV_CLSID support to the IDL
3650 - Add new named properties
3651 - Convenient function for MNID_STRING props lookup added
3654 Make .po a recognized suffix.
3658 Use -fPIC for library objects.
3662 - Rename GetAllNamesFromIDs to QueryNamesFromIDs (better naming)
3663 - fix SPropValue_CTR boolean to uint8_t in the IDL and emsmdb.c
3665 - add mapi_nameid convenient interface and headers
3666 - mapi-named-properties populated, parser added to mparse.pl, file
3667 added to the build system
3669 - remove any incorrect reference to named properties in openchange
3672 - remove deprecated libmapi/mapi.h file
3673 - remove unused ulFlag parameter from IProfAdmin functions
3674 - remove unused memory context from libmapi/x500.c
3676 - support sendnote operation in openchangeclient
3677 - optimize check/list oc_element functions in openchangeclient
3679 - update swig interface
3683 - New MAPI calls: Named properties support
3686 * GetAllNamesFromIDs
3688 - Modified MAPI calls:
3691 These calls now have more granularity in libmapi with flags support
3693 - sample mapi-named-properties file introduced in libmapi/conf
3695 - Torture test suite:
3696 * suite temporary fixed (import torture_rpc_* functions from
3698 * torture_namedprops test added
3700 - SWIG Perl bindings fixed according to changes described above
3701 - minor improvements in libmapi/mapidump.c
3705 - Decrease MAX_READ_SIZE to 0x1000
3706 - Clean-up Read/WritreStream related code
3707 - add dump-data option to openchangepfadmin (debugging purpose)
3712 - remove reference to core/nterr.h
3713 - add global_loadparm reference where missing
3714 - add reference to core/error.h where needed
3717 Improve output during build.
3721 Pass loadparm contexts, should fix the build with newer Samba revisions.
3725 - WriteStream API changed: now returns the number of bytes written
3726 - WriteStream man page updated
3727 - 16 bytes extra-data bug fixed when sending attachments in openchangeclient
3728 - Set open mode to 0600 when attachments are stored on the filesystem
3733 Fix preliminary Perl bindings so it works with Samba4 alpha2
3734 and latest libmapi revision.
3736 Patch from Andrew Gaylard <ag@computer.org>:
3738 - When calling openchangeclient with the --dump-data switch, it will
3739 dump core, since the global_mapi_ctx pointer isn't initialised yet.
3740 The fix is to wait until it's set before accessing it.
3742 Patch from Andrew Gaylard <ag@computer.org>:
3743 - Leaving any blank lines before .TH directives appears to cause a blank page
3744 to be output when converting man pages to DVI files (which is a step to converting
3745 them to PDF). The following patch remove the blank line above the .TH in each man page file.
3747 - mapiprofile doesn't understand the -A switch, as mentioned in it's man page.
3752 - Add objectClass to the object: container, message or attachment
3753 - Rename content to message in openchangebackup functions
3754 - add objectClass parameter to ocb_record_init
3758 - Move debug options to their correct location (after MAPIInitialize)
3759 - Improve code related to LDB transactions
3760 - Add convenient error checking macros
3764 - Add preliminary openchangemapidump draft
3765 - Fix lp_parm_* 1st parameter in the torture suite
3766 - New functions in property.c for MAPI data retrieval
3770 Use configure definition for mandir.
3774 Activate debugs this time
3776 Replaced remaining gotos with MAPI_RETVAL_IF so errno is set correctly
3778 MAPI_RETVAL_IF missing ";" could cause surprises ;-)
3780 Add error check for samr call.
3781 set errno with MAPI_RETVAL_IF.
3785 Make required packaged more clear (LinuxMagazin input)
3789 Remove invalid comment.
3793 - Clean-up function prototypes
3794 - Dump email when NEWMAIL notification is received
3798 Proper dependencies.
3800 Don't regenerate proto headers unless necessary.
3804 Use install for installing files/directories.
3806 Actually use replacement variable for libmagic.
3810 Remove forgotten BOOL
3812 Remove mapi_session pointer in mapi_objects
3813 Add public function to IProfAdmin: retrieve default ldif path location outside the OC tree
3817 Prevent users from creation of *undeletable* folders in Outlook and
3818 perform sanity check on dirclass + display possible values.
3820 Provides a way to modify Default and Anonymous permissions for a given folder.
3822 Fix errno in getdir function + add sanity check on opt_rmdir
3824 - Fix a memory related bug in mapiadmin_add_user
3825 - Add latest howto.txt modifications from Dan
3827 - Fix bug in *UserPermission function: return when user is not found
3828 - Add sanity checks to mapi_object API functions
3829 - mapi_object_release reset errno to 0: need to release object
3830 after displaying the potential error message.
3832 Fix a mapidump_appointment bug
3833 Add PF folder support to fetch-items operation
3837 openchangeclient now support send/read/delete operation on custom PF directories.
3839 - Add libmapiadmin library draft: Add/Remove Exchange user
3840 - openchangepfadmin tool added: Public Folders management
3841 - Add Sanity check to CreateFolder
3846 Fix last references to BOOL, True and False.
3848 Fix more references to BOOL, False and True.
3850 Use standard type and values for booleans since Samba no longer exports
3851 BOOL, True and False.
3855 - Add OpenPublicFolder function to libmapi, Open Public Folder store
3856 - change torture suite API to match latest Samba4 pidl changes
3857 - utf8_convert regexp improved
3858 - minor changes: printf to DEBUG
3859 - howto.txt patch from Dan included
3860 - Samba4 torture code related to user account creation included in the
3865 Fix segmentation fault when running update prior populating the database.
3869 Remove obsolete file from the torture suite
3871 - Add Exchange Administration test to the torture suite: Create Exchange user
3873 Dan update on howto.txt
3877 - Add Exchange ACLs support to MAPI library
3878 - Add 2 new MAPI opnum: GetTable and ModifyTable
3879 - Improve mapidump functions
3883 - Improve aclocal check in autogen.sh
3884 - Fix flex binary detection in configure.ac
3892 Create libmapi.so symlink
3896 Fix mandir installation path
3897 Add ldconfig intructions to openchange installation documentation
3903 RES_AND and RES_OR preliminary implementation.
3907 - doc patch from Brad Hards
3908 - rename PROFILE_NOPASSWORD to OC_PROFILE_NOPASSWORD
3909 - fix a warning in property.c
3913 Add some 'const' (fixes compile warnings).
3915 Use sonames (required for the Debian packages).
3917 Add .bzrignore file.
3919 Update version number and use globally defined version number in libmapi.pc.
3923 - Add IDL implementation for restrictions Content, Property,
3924 CompareProps, Bitmask, Size, Exist.
3925 - Add Restrict MAPI call handling the restrictions above
3926 - OPENCHANGE-MAPI-RESTRICTIONS torture test added to the suite.
3927 - convenient sendmail function added to mapi_common.c
3928 - get property size function for mapi_SPropValue added to property.c
3930 test --This line, and those below, will be ignored--
3934 M torture/openchange.c
3935 A torture/mapi_restrictions.c
3936 M torture/mapi_common.c
3937 M libmapi/property.c
3938 M libmapi/IMAPITable.c
3942 Documentation update: Perl bindings installation
3946 - Add mapitags and mapicode support to Perl SWIG bindings
3947 - SPropTagArray support
3948 - SRowSet preliminary support
3949 - new constructor/destructor for mapi objects
3953 - IProfAdmin patch applied: having password outside of the profile
3955 - Perl bindings draft added to the trunk and to the build system:
3956 --enable-swig-perl=yes
3958 - datarootdir fixed in libmapi.pc.in
3962 - Add CopyMessages IDL and COPYMAIL torture implementation
3963 - Fix man page install dir according to latest Samba4 changes
3964 - Add datarootdir var to libmapi.pc.in and fix configure warning
3968 convenient function which retrieve a value from a SPropValue array
3969 given its property tag name, otherwise NULL
3973 Patch from Brad Hards <bradh@frogmouth.net>:
3974 openchangeclient man page updated
3976 - Add Windows UTF8 to classic UTF8 conversion through a lexer
3977 - openchangeclient --mailbox option changed to use it
3978 - flex and bison support added to configure.ac
3979 - windows_to_utf8 function added: wrapper over yyparse_utf8 routine
3983 - features added to openchangeclient:
3984 * --send-appointment
3988 - openchangeclient man page updated
3989 - new properties added to mapi-properties
3991 - Add man pages for simple_mapi.c functions:
3993 * GetFolderItemsCount
3995 - Remove deprecated functions from IMsgStore.c
3996 - Update man pages documentation
3998 Fix install rule in Makefile: add missing headers
3999 Move callback retval from uint32_t to int
4001 Fix notification callback retval
4003 - Advise opnum added to the IDL
4004 - Parts of the Notify response IDL implementation
4005 - Add Notification support to libmapi
4006 - Add --notifications option to openchangeclient
4010 Patch from Brad Hards <bradh@frogmouth.net>:
4011 - PR_BUSINESS_FAX_NUMBER
4012 - improves the information provided on a contact by
4017 - Fix the release call in,out
4018 - Call Release from mapi_release_object
4019 - Add sanity check to OpenMsgStore
4020 - clean up parts of the mapi_newmail test
4022 EcDoDisconnect code now sounds to work properly
4023 Tested against Exchange 2000 / Exchange 2003
4025 - Fix SpropValue property pull problem when GetProps layout is set
4026 - Add a dumpdata boolean to mapi_ctx_t so tools can dump hex data
4027 - Add PR_CONTAINER_CLASS fetch to openchangeclient --mailbox
4028 - Add debuglevel and dumpdata options support to openchangeclient
4032 - Remove useless memory allocation in mapidump.c
4033 - Improve mapidump_appointment
4034 - Add sample mapidump_note
4035 - Add --fetchitems option to openchangeclient:
4036 This command offers an easy way to fetch calendar, contacts,
4037 tasks, notes and mails from the Exchange server.
4038 - Add IPF container class defines to mapidefs.h
4039 - Add and Fix property tags
4043 - Commit the EcDoRpc max_data patch proposed on the devel list
4044 - Clean up folders related functions from the torture suite
4045 (GetDefaultFolder makes this code obsolete)
4049 Add the --mailbox option to openchangeclient which recursively
4050 lists the full mailbox folder hierarchy
4052 - Add PT_SYSTTIME support to get_SPropValue_data
4053 - Add mapidump_SPropValue_date dumping function
4054 - Add PT_SYSTIME support to mapidump_SPropValue
4056 - Add multi-valued SBinary_short support to mapi_SPropValue_CTR in the
4059 - Add GetDefaultFolder implementation to simple_mapi.c. This function
4060 provides a convenient way to retrieve default folders ID. const
4061 olFolder values are stored in libmapi/mapidefs.h
4063 - Modify the torture test suite to reflect these changes.
4065 - OpenMsgStore now decodes all the fid returned in the response
4067 - fix a bug size in libmapi/property.c
4071 - Fix SMTP recipient in libmapi
4072 - Add SMTP recipient support to openchangeclient
4073 and the torture test suite
4074 - Fix a bug in SRow_addprop
4078 - OpenMessage IDL changed: we have a permission field.
4079 It is now set by default to 0x3 (read/write) until we
4080 change OpenMessage prototype.
4082 - Add a sanity check to MAPIInitialize when no profdb
4087 Remove remaining MAPISTATUS and replace them with enum MAPISTATUS
4089 - SetReadFlags IDL and implementation added to libmapi
4090 - Warning fixed in emsabp.h
4092 Fix a bug in openchangeclient when attachments are using
4093 PR_ATTACH_LONG_FILENAME rather than PR_ATTACH_FILENAME to store
4094 attachment filename.
4096 Patch supplied by Brad Hards <bradh@frogmouth.net> which renames
4097 private structure member to private_data for C++ compatibility.
4099 Add libmapi/simple_mapi.c designed to hold convenient
4100 functions for application development.
4102 - GetFolderItemsCount added which returns the number of
4103 total and unread messages for a given folder.
4107 - Fix a body openchangeclient bug which now prevent openchangeclient
4108 from segfault when no body is specified.
4109 - Add GetDefaultProfile call to exchange2mbox for the default
4111 - Improve fuzzer_msgtore output
4115 Add a fuzzer torture test on OpenMsgStore which
4116 test all the possible max_data value.
4118 Should help to understand if libmapi fails because
4123 exchange2mbox improved:
4124 - tdb dependency removed
4125 - message-id are now stored in the profile database
4126 - it now mirrors deletion operation from the mbox file back to the
4128 - man page updated to reflect these changes
4130 - GetProfileAttr function prototype modified. It now returns the
4131 results count for the given attribute and store values in a string
4133 - GetProfileAttr man page updated to reflect these changes
4134 - Fix mapiprofile attribute search command
4135 - migrate from open/write calls to stream ones in exchange2mbox
4138 newmail torture + notifications implementation
4144 Fix the SambaXP live demo segfault: When an ambiguous recipient is
4145 specified, it now skips the name properly and maintain a correct
4148 - Fix a bug when storing attachments into mbox
4149 - Add default path support to exchange2mbox
4153 - Update libmapi version according to the roadmap
4154 - Fix nspi_resolvenames to use default profile database and profile
4158 - Add default profile database and profile support in the torture suite.
4159 - Fix a bug in mapidump_task
4163 - Change MAPILogonEx to MAPILogonProvider and avoid potential
4164 emsmdb endpoint related problem
4165 - add sanity check on global session pointer
4169 Merged MAILOOK-branch changes r64:163 into the trunk.
4173 Remove ChangeLog, use svn log instead ;p
4177 - libmapi includes moved from libmapi/include to libmapi
4178 - Remove arguments from prototype definitions generation in mkproto.pl
4179 - __BEGIN_DECLS __END_DECLS support in header files
4180 - united libmapi/libmapi.h header file
4181 - openchange.h header removed
4182 - PIDL generated files moved to gen_ndr
4183 - compilation rule for libmapi header installation added
4184 - useless torture tests removed
4190 Replace OpenProperty and ReadAttach calls with OpenStream and ReadStream call
4191 Add GetAttachmentTable call
4197 Remove -Werror CFLAGS until I figure out how to fix
4198 our problem definitively.
4200 Remove static from dcesrv_exchange.c functions definition
4205 . reimplement GetProps
4206 . retrieve attachment size
4207 . modify fetchmail and fetchattach torture
4212 . add GetPropList to exchange.idl
4213 . add GetPropList implementation to IMAPIProp.c
4216 - Add fetchattach torture; Attachment size is not yet
4217 defined and 42 is used.
4218 - add 3 new EcDoRpc opnums:
4227 Forgot to add IMAPISession.c
4233 Remove spurious warnings at compile time and
4234 add -Werror -Wstrict-prototypes to CC.
4238 Dispatch libmapi functions into filenames matching
4239 the MAPI interface they belong to.
4243 Fix the attach issue by value and add torture test to
4244 the openchange torture suite.
4249 attachment torture test implementation
4255 Add a null element at the end of MAPI_REQ array
4256 so we can exit from the loop in ndr_print_mapi_request
4260 - Add the DeleteMessages IDL
4261 - New torture tests added:
4262 * OPENCHANGE-MAPI-SENDMAIL
4263 * OPENCHANGE-MAPI-DELETEMAIL
4265 These are experimental implementation
4270 subject option for delete message torture test
4274 added (recipients == null) check
4276 added default subject
4281 Add NspiResolveNames and the associated torture test.
4287 Fix nspi decoding problem due to the usage of
4288 a hyper instead of a dlong.
4292 - Add a preliminary NspiUpdateStat IDL
4293 - Fix the new server code convention naming
4294 (function prefixed with dcesrv_)
4295 - Fix a security bug in emsabp provider code
4299 Fix the allocation memory for the EcDoRpc_{MAPI_REQ,MAPI_REPL} pointer.
4303 Add SetProps [out] support.
4305 Temporary allocation pb fixed in ndr_pull_mapi_response.
4306 Final fix in next commit.
4312 Fix the SetProps [in] IDL
4314 New mapi call support added:
4315 - ModifyRecipients [in,out]
4316 - SubmitMessage [in,out]
4320 Add IDL support for the following mapi calls:
4325 The SetProps IDL is still experimental and the
4326 content blob should be decoded more than the current
4333 Fix the align problem in QueryRows reply blob
4334 Add some printing output and clean useless DEBUG.
4340 Fix the OpenMessage IDL and add ndr_print support
4341 to the MAPI-FETCHMAIL torture test so we can
4346 Commit of the first experimental but working implementation
4347 of the MAPI-FETCHMAIL torture test able to retrieve mails
4348 from an Exchange Server.
4352 - Add a preview implementation of cached data system for multi MAPI calls requests
4353 - Add SetColumns and QueryRows calls to mapi.c + mapi_fetchmail torture test
4354 - Enhance some MAPI calls IDL
4355 - Fix some pull/print functions according to error_code and row_count values
4361 Manual handling of EcDoRpc_MAPI_REPL pull and print function.
4362 When a mapi call returns an error_code different from MAPI_E_SUCCESS,
4363 we have to stop processing the function IDL since no parameters follow.
4367 add MAPISTATUS to EcDoRpc_MAPI_REPL
4368 add mapi library code for:
4374 add mapi calls described above to MAPI-FETCHMAIL torture test
4378 add mapi_response to emsmdb_transaction so we can get the results
4379 check the mapi call error core in OpenMsgStore
4383 Add MAPISTATUS field in each mapi calls
4384 Add new MAPICODE (MAPI_E_CALL_FAILED)
4388 Fix the mapi_request push function
4389 Add a first approach to the MAPI client side library
4390 Add a first approach of the MAPI-FETCHMAIL torture test
4391 Fix the smb.conf.example with new fields and remove Samba4 unused ones
4397 Initial mapidump commit
4398 OpenMessage IDL fixed
4404 Unused and dummy code removed
4408 - Remove the MAPI decoding TDR layer and associated functions
4409 - Add MAPI decoding in exchange.idl at NDR layer
4410 - mapi_request / mapi_response pull/print ok
4411 - implement subcontext for async response decoding in
4413 - new MAPITAGS added related to Message envelope properties
4414 - clean up the code and remove unused files
4416 - Add new MAPI opnums and associated IDL:
4417 * [in] Release (opnum=0x1)
4418 * [in,out] OpenFolder (opnum=0x2)
4419 * [in,out] OpenMessage (opnum=0x3)
4420 * [in,out] GetContentsTable (opnum=0x5)
4421 * [in,out] GetProps (opnum=0x7)
4422 * [in,out] Secolumns (opnum=0x12)
4423 * [in,out] QueryRows (opnum=0x15)
4424 * [in,out] GetReceiveFolder (opnum=0x27)
4425 * [in,out] OpenMsgStore (opnum=0xFE)
4431 For IDL with unknown fields followed the IDL may
4432 change and the mapping of these unknown bytes incorrect.
4433 It's just based on assumptions and results of the different
4438 - The mapi_request / mapi_response pull function
4439 - emsmdb torture tests and libmapi/emsmdb.c
4441 All this code is currently broken and will be fixed
4442 when we start writing the new emsmdb torture suite
4450 Fix ndr_pull_MAPI_DATA function
4454 - Add new mapi opnums
4455 - Add a first IDL implementation for OpenMsgStore out
4459 - Enhance the handles id support in MAPI_DATA
4460 - Remove unused code
4462 EMSMDB encoding/decoding is currently broken.
4463 It will be fixed when we start the client side
4464 mapi library implementation.
4470 - Change IMAPISession.idl to mapi.idl
4471 - enhance mapi content payload decoding (multiple calls supported)
4472 - add sub EcDoRpc opnums and IDL for setcolumns (in)
4479 - new function on emsabp provider for entry id generation
4485 Old mapitables code deleted and merge of the samdb
4486 code used in openchange (emsabp_result_guid function).
4488 The following revision compiles and work fine with
4489 Samba4 revision 20341
4496 Instance keys management changed (we now use struct instance_key and uint32_t instead of an array of 4 uint8_t)
4502 - Fix compilation warnings based on patches provided
4503 by Stefan Huehner <stefan@huehner.org>
4504 - Fix the DSO issue for x64 platforms
4505 - Add the evolution plugin in the compilation process
4506 - remove the mapidump code (obsolete and replaced with ndrdump usage)
4512 evolution plugin moved into client/evolution for
4513 a correct and extensible naming convention.
4515 EcDoRpc IDL modified:
4516 - opnum are now 8 bits
4518 - EcDoRpc ndrdump output enhanced
4520 IMAPISession IDL modified:
4521 - Change OpenMsgStore function name to MAPI_RPC_LOGON
4522 for the 0xFE opnum operation.
4524 Fix warnings in the code.
4530 Openchange-Evolution plugin commit
4531 I reorganized openchange evolution plugin source tree.
4532 Now we have one directory for the camel-openchange provider, and one for the openchange eplugin.
4533 Everything can be found in the oc-evolution directory.
4534 This is code a minimalist implementation of the camel provider for evolution.
4535 It will make appears an openchange server type in the server list handled by evolution.
4536 Still have to fix the ./configure to create a Makefile though.
4540 Fix the memory allocation problems in the emsmdb torture test
4544 Removed ascstr and directly add it to the IDL
4546 Fix the NspiQueryRows response where strings
4547 containing the user email address have to be
4550 The EMSABP provider is working ;-)
4554 The emsabp provider is now able to return multiple users
4555 when searching for part of a username.
4561 Fix the networkAddress binding strings for the
4562 Exchange object in the configuration db. The
4563 SERVER variable based on exchange:server had
4564 been added while we needed the NETBIOSNAME one
4566 Fix a segmentation fault in emsabp.c due to an
4567 unchecked pointer res->msgs. This was causing
4568 smbd to segfault when the supplied legacyExchangeDN
4569 sent by the user wasn't present in the database.
4575 Remove unused files and directory.
4576 Update Makefile.in and remove storedb compilation
4585 - provisioning (for the legacyExchangeDN of the server entry)
4589 Fix the build and remove dynconfig samba lib
4595 Unused ldif files removed + Schemas definitions updated
4599 Provisionning fixed (old ldif files cleaned)
4605 add tags rules to the Makefile
4609 add the \\pipe\\protected_storage named pipe
4610 to exchange_nsp bindings
4616 Add a dcerpc_server module in charge of the
4617 exchange interfaces registration. When this module
4618 is loaded prior the remote endpoint, it let us proxify
4619 the exchange_nsp and exchange_emsmdb ones.
4621 Change the exchange_nsp ncacn_np binding string to
4622 reflect how Exchange server is currently using it.
4624 Conform the IDL with latest pidl requirements and
4625 move the MAPI_DATA structure from exchange_nsp to
4632 Create the $prefix/modules/{dcerpc_server,torture}
4635 This fix openchange make install rule.
4639 This commit conforms openchange with the Samba4
4640 trunk and fix the autotools checks.
4642 I've modified the openchange torture file to
4643 match the current smbtorture API and the
4644 OPENCHANGE-NSPI-PROFILE test was successful.
4646 The NSPI ndrdump suite has fully been tested and
4653 This commit fix the build system:
4654 - add the -ldynconfig dependency to LDFLAGS
4655 - add header checks in configure.ac. We need them
4656 for the moment cause Samba4 doesn't install some headers
4657 required by openchange core
4658 - fix the make install
4660 - remove autotools generated files and definitively
4661 ignore them with the .svnignore file
4663 - keepref keyword removed from exchange_nsp interface
4668 + aclocal.m4 removed from repository
4669 + provisionning fixed