4 Fix ticket #123 (known as 562948 on gnome bugzilla):
5 "Unable to send mails containing UTF8 strings"
7 OpenChange was using strlen(str) * 2 + 2 to calculate the
8 expected size for utf16 string. This patch fixes this and
9 replaces it with a function that make proper utf8 to utf16
12 This commit also replaces PT_STRING8 properties in openchangeclient.c
13 with PT_UNICODE ones to ensure utf8 strings get converted properly.
18 - Add NormalizedSubject and SubjectPrefix strings to object_message_t
20 - Add a function to retrieve TypedString value
21 - Add a mapidump function for obj_message (only retrieve subject and
23 - Add --fetchsummary option to openchangeclient: Dumps properties from
24 OpenMessage response only (subject and recipients) rather than going
25 through GetProps and dumping a more complete version.
28 Move make distclean to the end again.
33 Remove a copy of the dlinklist.h header, and just use the samba
44 Allow us to find samba python code on 64-bit machines.
49 Update EcDoConnectEx IDL to match latest specifications
52 Minor additions to "make clean" / "make distclean" to remove
53 generated python bits, and also the config.h file.
58 Implement IsMailboxFolder for public folder types.
60 Involves some refactoring of the way we handled the mapi_object_store_t,
61 such that we now talloc_zero the structure.
63 Adds mapitest coverage for these.
70 Add unit tests for IsMailboxFolder
72 Also use 0xFFFFFFFFF instead of -1 for no-such-mailbox, consistent with the unsigned data type.
77 Change location of .cpp.o and .ccp.po to the correct location
78 and inhibit compilation line output for moc and cpp compilation.
81 Try harder to clean up libmapi++ bits.
86 Ignore moc files and generated binary
88 Update OpenChange version to 0.10 NOMAD
90 Nomad is a mechanical explorer sent from Earth in 2002.
91 It was melded with an alien device named Tan Ru and the resulting robotic
92 hybrid began destroying anything that was imperfect including, in 2267,
96 Add documentation for qt/ subdirectory.
98 Try harder to find moc.
100 Initial commit of some Qt-style bindings.
102 This is mostly for testing, although hopefully the library will
103 emerge with a set of mostly-useful widgets for implementing
109 Quiet the build here.
111 Inadvertent removal in a previous patch.
113 Some support for ReviewBoard.
118 Update OpenMessage flags to match specification values.
120 Cleanup libmapi++ code when we "make clean".
122 Add svn ignore entries.
124 Remove inline from shared library class.
126 Fixes build on Intel C++ compiler.
131 libmapi++ is no longer a header-only library
136 Add first part of Restrictions support.
138 A little more documentation fixes.
142 Fix MAPIUninitialize() crash when leaving after an unsuccessful call.
143 In such situation, mapi_response is not allocated but has a destructor
144 associated. This fix removes the destructor whenever the error code is
145 different from MAPI_E_SUCCESS.
147 Also add a minor (probably useless) check on mapi_response pointer validity
148 before attempting any other child's free.
151 A couple of minor API documentation fixes.
156 Rename libmapi into openchange in our release script.
157 Makes more sense given the scope of our releases.
159 Fix format string warnings.
161 New ModifyRecipients IDL and implementation.
163 This patch improves the logic within the RecipientFlags bitmask
164 calculation function and make use of different MAPI properties for
167 Fix trac ticket #125 and https://bugzilla.gnome.org/show_bug.cgi?id=568763
170 Minor API documentation fix.
174 Fix some exchange2ical memory leaks / "still reachable" memory.
176 Fix property tag array count, so we get the language in Summary
177 lines in the ical output.
179 Add protection against null CN values.
181 Resolves ticket #232.
183 Thanks to Arnout Engelen for the bug report and the patch to fix the problem.
185 Handle all day events for UTC+ timezones.
187 This resolves ticket #217. Thanks to Arnout Engelen for both reporting
188 the problem, and providing a patch. In the end I heavily modified the
189 patch, and implemented a much simpler version while we sort out the
190 timezone identifier problems.
195 Minor documentation update to reflect GSoC exchange2ical merge.
197 temporary fix for building on FreeBSD 7.2.
199 Remove this file - converted it to trac tasks.
203 Patch from Johnny Jacob <johnnyjacob@gmail.com>:
205 Changed MonitorNotification to be non-blocking.
206 Also checks whether to process notifications using a callback.
208 Open Profile Store using global_mapi_ctx for the memory context. This
209 fix removes 20 context errors when running valgrind on mapitest.
211 - Fix important memory leaks in OpenChange NSPI stack. The memory
212 context modifications applied to the EMSMDB stack have been
213 propagated to the NSPI one. NSPI dcerpc_* functions now rely on a
214 temporary context passed in parameter to the nspi_* functions from
217 - Changes propagated to torture, mapitest, IProfAdmin interface and
218 ResolveNames function to match the internal API.
220 - Add missing MAPIFreeBuffer call in mapitest modules
222 Minor cosmetic change
224 Minor changes to match our coding convention more closely
226 Return (const void *) instead of (void *) where missing
228 - Fix important memory leaks within the OpenChange stack. Most of the
229 leaks came from the pipe memory context used in emsmdb_transaction
230 which was only released on MAPIUninitialize and sometimes leaded in
231 lost blocks. This fix makes extensive usage of the temporary memory
232 context used in top MAPI calls implementation. This context is
233 passed in argument to emsmdb_transaction and used for dcerpc_*
236 When we return from any libmapi call implementation, this context is
237 destroyed. This guarantee no extra memory within NDR layer is kept.
239 The only requirement for this patch to work is to make sure the data
240 we return from MAPI calls is either reparent to another memory
241 context or copied properly.
244 Add support for skipping tests that don't apply to some
247 Change the format of the server version, so it matches the Microsoft
248 way of doing versions.
253 Fix store version info assignment - Exchange version now works again
256 Clarify the developer's task when using GetPropList.
258 We were allocating the SPropTag proptag array with the session context
259 pointer, which was not released with a MAPIFreeBuffer(SPropTagArray).
261 We are now using SPropTagArray pointer as parent context and clarify
262 that the developer must pass an allocated SPropTagArray pointer to the
265 Missing mapi_object_release leading in small leaks.
267 Sanitize RfrGetNewDSA function and memory usage.
269 The function was returning either a const char * passed in parameter
270 or the string returned by RfrGetNewDSA call. Furthermore we were using
271 the session pointer for the memory context. Finally the function description
272 was not matching its behavior.
274 What this patch does:
275 - use a named memory context for RfrGetNewDSA call
276 - return an allocated string on success otherwise NULL
277 - release RFR memory context properly
279 valgrind before patch (mapitest):
280 ==28876== LEAK SUMMARY:
281 ==28876== definitely lost: 0 bytes in 0 blocks
282 ==28876== indirectly lost: 0 bytes in 0 blocks
283 ==28876== possibly lost: 3,193,529 bytes in 23,296 blocks
284 ==28876== still reachable: 345 bytes in 2 blocks
285 ==28876== suppressed: 0 bytes in 0 blocks
287 ==28876== For counts of detected and suppressed errors, rerun with: -v
288 ==28876== ERROR SUMMARY: 2351 errors from 2351 contexts (suppressed: 45 from 10)
290 valgrind after patch (mapitest):
291 ==29083== LEAK SUMMARY:
292 ==29083== definitely lost: 0 bytes in 0 blocks
293 ==29083== indirectly lost: 0 bytes in 0 blocks
294 ==29083== possibly lost: 3,190,285 bytes in 23,256 blocks
295 ==29083== still reachable: 345 bytes in 2 blocks
296 ==29083== suppressed: 0 bytes in 0 blocks
298 ==29083== For counts of detected and suppressed errors, rerun with: -v
299 ==29083== ERROR SUMMARY: 2338 errors from 2338 contexts (suppressed: 45 from 10)
301 This patch fixes most of the leaks coming from pull_emsmdb_property() function.
302 pull_emsmdb_property is using pointers and allocate memory to prevent from
303 returning a local variable address. Such pointers include PT_I2, PT_I8, PT_LONG,
304 PT_ERROR or PT_BOOLEAN. Pointer's values are assigned in set_SPropValue but were
305 never released/free'd. This patch implements free_emsmdb_property to fix this problem.
307 valgrind before patch (mapitest):
308 ==26674== LEAK SUMMARY:
309 ==26674== definitely lost: 0 bytes in 0 blocks
310 ==26674== indirectly lost: 0 bytes in 0 blocks
311 ==26674== possibly lost: 3,264,485 bytes in 23,387 blocks
312 ==26674== still reachable: 345 bytes in 2 blocks
313 ==26674== suppressed: 0 bytes in 0 blocks
315 ==26674== For counts of detected and suppressed errors, rerun with: -v
316 ==26674== ERROR SUMMARY: 2370 errors from 2370 contexts (suppressed: 45 from 10)
318 valgrind after patch (mapitest):
319 ==27270== LEAK SUMMARY:
320 ==27270== definitely lost: 0 bytes in 0 blocks
321 ==27270== indirectly lost: 0 bytes in 0 blocks
322 ==27270== possibly lost: 3,127,733 bytes in 23,293 blocks
323 ==27270== still reachable: 345 bytes in 2 blocks
324 ==27270== suppressed: 0 bytes in 0 blocks
326 ==27270== For counts of detected and suppressed errors, rerun with: -v
327 ==27270== ERROR SUMMARY: 2348 errors from 2348 contexts (suppressed: 45 from 10)
330 Minor API documentation fixes.
335 - Add a macro to mparse.pl to free both mapi_response
336 and mem_ctx within OpenChange calls implementation.
337 For the moment it is only implemented in OpenUserMailbox call.
339 - Fix a memory leak in OpenUserMailbox: When the call failed
340 (ecUnknownUser or ecUseEnryption) mapi_response was not free'd
343 Minor indentation fix
346 Add some missing newlines to reduce compilation noise.
348 Merge in Ryan Lepinski's Google Summer of Code work on exchange2ical.
350 See the gsoc_exchange2ical branch history for commits.
352 I also made a change to address ticket #216, and
353 fixed a couple of typos.
358 Minor updates to provisioning instructions.
360 Thanks to Girish Venkatachalam for some suggestions.
365 Fix 'unused variable' warning on FreeBSD for exchange2mbox
368 Add documentation for the --freebusy option.
375 Fix segfaults in mapitest launched with exchange2010
377 Fix compilation warnings
380 Add missing -L directory specifier.
382 Looks like this was tolerated by gnu ld, but not by opensolaris ld.
384 Patch by Brian Lu (Sun). Thanks again.
386 Add documentation for new mapiprofile --encrypt option, introduced in r1602.
388 Fix a couple of typos that trash CFLAGS during build.
393 Automatically switch from connect to seal on the emsmdb pipe if
394 ecNotEncrypted is returned by EcDoConnect.
396 - Make OpenChange natively working with Exchange 2010
397 - Factorize binding string construction code within a single function
398 - the seal flag is mandatory to connect to Exchange 2010
399 - add seal boolean value to MAPI profile creation and mapi_profile
401 - add --encrypt option to mapiprofile to set the seal value
406 Add documentation for set_SPropTagArray().
408 Thanks to Brian Lu (Sun) for reporting.
413 This doesn't really fix ticket #149, but this should
414 at least prevent from triggering segmentation fault when
415 PR_EMAIL_ADDRESS_UNICODE doesn't have any cn=Recipients,cn= substring
418 Trivial fix (newline) for warning on FreeBSD compiler.
420 Add support for manually creating the library symlinks for FreeBSD
422 This is a somewhat speculative commit.
424 Also fixes a couple of cosmetic whitespace issues.
429 Patch from Bryan Lu <brian.lu@sun.com>:
431 Create symbol link only on Solaris
433 This closes ticket #221 and makes it possible to compile openchange
436 Temporary bug fix in emsabp.c - If restrictions are NULL in
437 emsabp_search, return MAPI_E_INVALID_OBJECT. This prevents from using
438 invalid res pointer leading in segmentation fault.
440 Initial fix proposed by Erik Hovland <erik@hovland.org>
442 Patch from Erik Hovland <erik@hovland.org>:
444 fid might be null. Check it before dereferencing in the
445 ocpf_folder_lookup() call. Similar behavior fixed in openchangeclient
446 folder_lookup() function.
448 Patch from Erik Hovland <erik@hovland.org>:
450 NotificationData 'could' be null. Check it before handing it to
451 notification-callback(). This is important because eventually
452 NotificationData will be dereferenced in the code path.
454 Patch from Kamen Mazdrashki <kamen.mazdrashki@postpath.com>:
456 Fix MAPI Warning error codes
458 Patch from Kamen Mazdrashki <kamen.mazdrashki@postpath.com>:
460 bugfix: Bugs in abp_tdb layer fixed.
462 emsabp_tdb_traverse_MId() returns 'false' (i.e. not found) in most of
465 Patch from Kamen Mazdrashki <kamen.mazdrashki@postpath.com>:
467 Implement NspiQueryRows() address list enumeration
469 We can now run openchangeclient --userlist on OpenChange NSPI server
470 and Outlook 2003 is able to query GAL.
472 Note: the initial patch was proposing:
473 "(&%s(showInAddressBook=*))", purportedSearch
475 I replaced it with "%s", purportedSearch only since we don't have yet
476 any showInAddressBook attribute in AD.
478 Patch from Kamen Mazdrashki <kamen.mazdrashki@postpath.com>:
480 - Add server side implementation for NspiResolveNamesW
481 - Refactor and split emsabp_verify_user in two functions
483 A new function emsabp_get_account_info() implemented to fetch info
484 about given user name. emsabp_verify_user() uses the above function
485 check if authenticated account_name is valid mail account and if so,
486 account_name is cached in emsabp context for future use
488 Patch from Kamen Mazdrashki <kamen.mazdrashki@postpath.com>:
490 NspiGetProps() reimplemented to match [MS-NSPI] specification more
493 As a side-effect, emsabp_fetch_attrs() was altered to return
494 MAPI_E_INVALID_BOOKMARK in case requested MId is not found. This way
495 the function returns more meaningful error codes - if requested MId is
496 not found this surely means InvalidBookmark rather than CorruptStore
501 Path from Kamen Mazdrashki <kamen.mazdrashki@postpath.com>:
503 Propagate dwFlags for incoming call to get EntryIDs correctly.
505 Actually we need to propagate dwFlags so that emsabp_query()
506 function to be able to determine whether EphemeralEntryID
507 or PermanentEntryID is requested to be built.
509 Patch from Kamen Mazdrashki <kamen.mazdrashki@postpath.com>:
511 Implement PR_SEARCH_KEY attribute getter
513 Patch from Kamen Mazdrashki <kamen.mazdrashki@postpath.com>
515 Add PR_ADDRTYPE_UNICODE and PR_EMS_AB_PROXY_ADDRESSES_UNICODE getters.
517 Patch from Kamen Mazdrashki <kamen.mazdrashki@postpath.com>:
519 - Extend NspiDNToMId() to search in Configuration and Domain
522 - NspiDNToMId() has been extended to cache returned data properly,
523 i.e. DNs from Configuration partition are cached in ttb_ctx db, DNs
524 from Domain partition are cached in in-memory db ttdb_ctx.
526 Patch from Kamen Mazdrashki <kamen.mazdrashki@postpath.com>:
528 emsabp_set_PermanentEntryID() implements MS specification more
529 closely. For reference: [MS-NSPI] and [MS-OXOABK]
531 - Replace emsabp_get_server_GUID with samdb_ntds_objectGUID Samba4
533 - Change the way we initially fetched server GUID
535 Credits to Kamen Mazdrashki <kamen.mazdrashki@postpath.com> for
536 initial patch and associated research:
538 It turns out MS implementation for NSPI reads the guid from: "CN=NTDS
539 Settings,CN=<NETBIOS_NAME>,CN=Servers,CN=Default-First-Site-Name,CN=Sites,<CONFIG_DN>" entry.
541 Fix samdb_connect warning.
542 Add function prototype to nsp,emsmdb header files.
543 Change samdb_ctx from void * to ldb_context *
546 Update docs to match those in mapiproxy doxygen docs.
548 Roll to the latest Samba4 version.
550 This should have no noticeable difference over the
551 Samba4 alpha9 release, but its nice to use the latest
552 version, and it might make a difference on the server
557 Fix OpenChange server code and access to Samba4 databases.
558 Starting with samba4-alpha9, there is no more configuration.ldb or users.ldb.
559 All information can be accessed through a single access to SamDB and configuration records
560 accessed through ldb_get_config_basedn.
562 The following implementation has been tested and is working with:
563 - mapiprofile profile creation
564 - openchangeclient --mailbox
565 - Outlook 2003 account creation
566 - Outlook 2003 mailbox opening
571 Fix openchange user provisioning scripts
573 Forgot to commit this LDIF modifications for openchange provisioning
578 - Fix OpenChange server provisioning (exchange classes and attribute only)
579 - Remove deprecated provisioning steps
580 - OpenChange user provisioning is still broken at this point, but will be
581 fixed in further revisions.
586 Fix a cast warning at compilation time for libmapi++
588 - Update openchange libraries to 0.9: close trac ticket #165
589 - Propagate pkgconfig solution in trac ticket #94 to other libs
591 - Update openchange code to work with samba4-alpha9 release
592 - Apply minor fix to ldb_wrap_connect (number of parameters)
593 - Update mapiproxy code to handle new Samba4 assoc_group implementation properly
594 - Update samba4 version script to match alpha9 and related git commit
599 Ensure we get output if sqlite3 isn't found at configure time.
601 Now outputs "no" instead of a blank.
606 Fix attribution, per IRC discussion.
611 Ensure API documentation gets generated for utilities functions.
613 Some undocumented stuff in here to look at later.
615 Add additional mapidump functions for notifications
617 This is a patch from Johnny Jacob (Novell), with unit tests and some extra checks by me.
619 Maintains good test coverage for this file.
624 Avoid use-after-free for the number of rows in the SRowSet.
626 Resolves issue #212, which has the valgrind error.
631 Add test for get_proptag_value().
633 Minor cleanups for mapidump functions.
635 - Add support for dumping property tags using PT_SHORT.
636 - Modify the tag for PR_whatever_ERROR results to include the _ERROR bit
637 - Minor format change for PT_BINARY (training colon)
638 - Ensure PT_SYSTIME respects the seperator value (API change)
639 - Add a conditional assert() using infrastructure introduced in r1553.
641 Implement mapitest support for all of libmapi/mapidump.c
643 Update openchangeclient for the API change.
645 Introduce a compile time definition that is set for SVN snapshot releases.
647 The intent is to use this to protect assert() calls that indicate incomplete code.
652 Improved Sun Studio compiler support.
654 Patch by Brian Lu (Sun) - thanks again.
656 Revert inadvertent part from previous commit (r1549)
658 Add coverage testing support.
660 ./configure now supports --enable-coverage, which builds with the right options
661 to support gcov. Also adds a new makefile target ("coverage") that runs the
662 required post-processing steps.
664 Also added a test script that does a range of openchange related (client side)
665 operations. This is useful for generating the test load for coverage checks.
667 So the basic recipe here is
668 1. Add the --enable-coverage option at configure time.
670 3. Install it, or otherwise ensure that coverage-enabled libs are used
671 4. generate the test load (e.g. run ./script/smoketest.sh)
673 6. Inspect the results in ./covresults
678 Add support for the SunStudio compiler.
680 I previously special-cased the Intel C compiler, and relied on some ugly ordering requirements to
681 ensure it all worked.
683 This approach is cleaner, allowing options to be build up separately for each compiler, and for
684 the C and C++ versions.
686 Tested on Linux with all three compilers.
691 Adding missing include.
695 Patch from Brian Lu (Sun). Thanks very much.
700 Additional portability fixes for SunOS.
702 Based on a patch (ticket #220) by Brian Lu (Sun). Thanks very much.
704 I modified the patch to try to use autoconf where possible.
706 Resolves ticket #220.
708 Remove MAP_FILE flag from mmap(). Looks like this is only required on really
709 old unix systems (e.g. NetBSD prior to 1.0), which we probably won't ever support.
711 Patch by Brian Lu (Sun) - thanks very much.
713 Partly resolves ticket #220 - still need to handle the first patch.
718 Fix build problem using Sun Studio compiler.
720 Reported by Brian Lu (Sun), including a patch (Ticket #219)
722 I slightly modified the patch, but nothing substantial.
727 Patches provided by raboof:
728 - Ticket #213 deprecated include directive removal
729 - Ticket #214 missing sanity check
730 - Ticket #215 fix some DEBUG macro level for sain ouput
740 Use mapi_profile_get_ldif_path to find ldif path when one is not given
745 Added libmapi++ wrapper function for CreateProfileStore
750 Update buildsystem to avoid using bash-specific (well, not sh-supported) +=
753 Should allow FreeBSD to be supported.
758 Alternative solution to ticket #179, provided by Alan Alvarez.
760 This alternative avoids the need for the user to clean up the string returned by what().
762 Also includes a test case, which I've used to validate that the original (prior to r1524) code
763 is faulty, and that both fixes (From Erik Hovland and from Alan Alvarez) deal with it.
765 Resolves Ticket #179 (again).
770 Make sure that the string given by what() can be used.
772 Patch by Erik Hovland - thanks very much.
774 Resolves ticket #179.
776 Ensure that the libmapi++ messages example works even if there is no
777 PR_CONVERSATION_TOPIC (subject).
785 Modify mapi_object_set_logon_id() to be able to report errors.
787 Original patch by Erik Hovland, I made some changes.
792 Implement RopReloadCachedInformation (0x10).
794 Minor change to IDL (previously implemented), and adds
795 implementaiton and mapitest code.
797 Also editorial comment fix in some related mapitest stuff.
801 Implement GetValidAttachments ROP (0x52).
803 Includes IDL, implementation and mapitest.
805 mapitest also checks DeleteAttach behaviour, which I don't think we previously
808 Also includes a comment fix in the mapitest code.
815 Patch by Erik Hovland <erik at hovland.org>
820 Update the properties list.
822 Patch from Girish Venkatachalam <girish at gayatri-hitech.com>
827 Update API to use MAPITAGS enum.
829 Update to match API change.
831 Use appropriate enum here.
833 Use enum for OpenEmbeddedMessage call.
835 Use enums where appropriate.
837 Update users of FindRow to use enums.
839 We are supposed to be returning a MAPISTATUS, so switch to using
840 the OPENCHANGE_RETVAL_ERR macro here.
842 Use appropriate enums instead of int types.
844 Use enums instead of ints / hardcoded values.
846 Use enum types where appropriate.
848 Fixes warnings from Intel C compiler.
850 Return a suitable MAPISTATUS if we can't talloc sufficient memory here.
852 Fixes warning from Intel compiler.
857 Only pass "-Wmissing-prototypes -Wstrict-prototypes" to CFLAGS,
858 not to CXXFLAGS as well.
862 Use enumerated type instead of integer.
864 Remove unreachable code.
866 Add "static" to avoid the need for additional declarations.
868 Avoids noise from the intel c compiler.
870 Namespace variable in macro, so we don't get noise about shadowing a
873 Help icc find comparison_fn_t.
875 Match up data types in argument and format string.
877 Remove unused variable, and change a name to avoid a "shadowed declaration"
883 Portability fixes for Intel C Compiler.
885 Set CFLAGS early, otherwise AC_PROG_CC will set
886 CFLAGS to "-O2 -g", which later has -O3 appended, which
889 Check if we're really icc, and if so, turn off some warnings.
890 Also turn off the "FORTIFY_SOURCE" define which causes problems
891 with missing builtins.
893 The warnings can (and should) be turned back on later, after we
894 fix the current issues.
899 Correct diagnostics messages.
904 Remove explicit -Wstrict-aliasing=3 from command line.
906 This is implied by gcc -Wall option, and icc produces nuisance warnings
907 with it enabled (related to the -W option, not the code being compiled).
909 Fix some memory leaks and a bug in mapiprofile.
911 I introduced the bug in r1467, there could be others that are similar.
916 Minor rewording of description
923 Move initialisation up, to make sure everything is valid in the failure paths
925 Patch by Erik Hovland. Thanks once again.
927 This closes out ticket #178.
929 Remove unreachable code.
931 Patch by Erik Hovland. Thanks again.
933 This is the second part of ticket #177. This completes the checkin of that ticket.
935 Remove unreachable code.
937 Patch by Erik Hovland. Thanks very much.
939 This is the first part of ticket #177.
944 Ensure that we check the result of the operation we just performed.
946 Patch by Erik Hovland. Thanks very much for continuing to provide these.
948 This is the third part of the patch in ticket #177. The first two parts are yet to be addressed.
950 Make sure that return values are checked and report that given status if there is an error.
952 Patch from Erik Hovland, with minor additional changes. Thanks again for the patch.
956 More cleanups of memory leaks for setting up database and an associated failure case.
958 fix leak in openchangeclient
960 (as seen with valgrind of "openchangeclient -m")
962 Fix memory leak in mapiprofile utility
967 Ensure that when we pass --profile to mapitest, that profile
968 gets used instead of the default.
970 Also fix a small memory leak when using --profile, and add some
973 Fix error handling case.
975 Patch from Erik Hovland - thanks very much.
977 Resolves ticket #175.
982 Remove unused enum values.
984 Remove unused code - no simple tests.
989 Update the script version of samba4 to alpha8.
994 Add tevent to dependencies.
999 Remove unused headers.
1001 Patch by Erik Hovland - thanks very much,
1003 Resolves ticket #164.
1005 Apply patch from Erik Hovland, from ticket #162.
1007 From the original patch:
1008 "The problem is that when you do stat first w/ a file string anyone can
1009 exploit the time in between to do whatever they want with the file that
1010 the string is a name for. Instead, try to open straight away. Then fstat
1011 w/ the file descriptor."
1013 I think the patch is fine, although I didn't run the torture test.
1018 Avoid duplicate call to mapi_object_get_logon_id
1020 Based on a patch proposed by Erik Hovland, but adapted to follow the
1021 pattern used in OpenStream().
1023 Resolves issue #163.
1025 Applied modified version of patch from Erik Hovland to address unused variables.
1027 See http://trac.openchange.org/attachment/ticket/160/unused-values for
1032 My version removes variables (rather than commenting them out) since we don't need
1033 them now. I also updated the documentation for options that are no longer available
1035 The origin of the unused PR_FOLDER_CHILD_COUNT is a bit strange. It was introduced
1036 in r808 (to resolve #103), and looks like it might have been used for debugging - no
1037 impact on the code. I pulled out the whole lot.
1039 Tested with openchangeclient --fetchmail --folder="Sent Mail" and mapitest.
1041 Use array form of delete (error identified with libmapixx-attach test, using valgrind).
1043 Fix potentially unused variable.
1045 Tested with mapitest (even though nothing should have been affected) and
1046 with libmapixx-test and libmapixx-attach under valgrind.
1048 Patch is remaining part of http://trac.openchange.org/ticket/153
1050 Thanks to Erik Hovland for the patch.
1055 Remove dead / unused code.
1057 See http://trac.openchange.org/ticket/152#comment:1 for rationale.
1059 Original patch by Erik Hovland - thanks again.
1061 Update test case to reflect new behaviour
1066 Link libmapistore against tdb.
1068 Update copies of config.guess and config.sub.
1070 Link libmapiproxy against tdb.
1072 Declare a SOVERSION for libmapistore.
1074 Use LDFLAGS when linking exchange2ical.
1076 Create symlink for libmapistore.
1078 Link libmapi against tevent since it uses tevent_context_init, link ndr_exchange.po into libmapiserver since it uses some ndr_push_* symbols.
1080 Fix typo in variable name.
1085 Fix typo in Python variable name.
1087 Keep separate flags for libraries around in config.mk.
1089 Link libmapiserver against all libraries.
1094 Add some PidTag* mapping involved with Recipients and RecipientRow
1099 Patch from Erik Hovland <erik@hovland.org>:
1101 Initializes variables to make sure they aren't used uninitialized.
1105 - Add sanity check on mapitest_common creation routines within
1108 - Apply patch from Erik Hovland <erik@hovland.org>: check return
1111 Patch From Erik Hovland <erik@hovland.org>
1113 In torture_rpc_mapi_sendattach a call is made to the system function
1114 read at line 199. The return value of read is assigned to read_size,
1115 which happens to be of unsigned type. So if read returns -1 (which it
1116 can) it will not be noticed. The patch changes the type to ssize_t
1117 (signed) and checks for -1 as well as zero to break out of the loop.
1121 Patch from Erik Hovland <erik@hovland.org>
1123 1. In mapiproxy, the directory handle dir will be leaked after it is
1125 2. exchange2mbox main() should use exit at line 785 just like all of
1126 the other error paths so that we don't leak anything
1130 Patch from Erik Hovland <erik@hovland.org>
1132 Adds a #include config.h to suppress compiler warnings for vasprintf
1134 Patch from Erik Hovland <erik@hovland.org>:
1136 Make sure pointers are valid before dereferencing
1137 1. lpProps 'might' be null
1138 2. Add folder to variables checked before moving on.
1139 4. Check nprop->guid before giving to strcmp, two times
1140 6. Check definition before handing to strlen (which will dereference
1141 it) Reworked this one to include talloc_free
1142 7. Check MessageClass? before handing to strncasecmp
1143 8. Check backend, return if null.
1144 10. Don't print out anything if lpProp is null
1145 11. Check attach_size before dereferencing
1150 Fix pull structure for QueryRows reply when no RowData is available
1155 - Add preliminary IDL support for Exchange 2003/2007 EMSMDB RPC calls:
1159 - Add LZxpress and XorMagic support to EcDoRpcExt2 request/reply
1160 blob. However it doesn't yet support Chained calls.
1162 - Add AuxInfo/AUX_HEADER structures and IDL
1164 - Refactor mapi_request and mapi_response: move obfuscate_data calls
1165 up to the EcDoRpc layer
1170 Patch from Paolo Abeni <paolo.abeni@gmail.com>:
1172 call ProcessNotification() after each successful
1173 emsmdb_transaction() in all the libmapi calls.
1175 Patch from Paolo Abeni <paolo.abeni@gmail.com>:
1177 Mapi notifications can occurs inside any emsmdb_transaction; currently
1178 only the notification send by the server inside the
1179 emsmdb_transaction_null() in MonitorNotification() are
1180 parsed/processed/delivered to the appropriate callback.
1182 To be able to process all the received notifications, the notification
1183 structure must comprise the private data to be passed to the
1184 notification callback, since in the average mapi call this data is not
1185 available. This patch modifies the Subscribe() call and the
1186 mapi_notification structure, adding the private_data parameter (also the
1187 related Subscribe() calls are update) and add a libmapi call
1188 (DispatchNotifications) to force the notification dispatching in
1189 a [quite] non blocking way
1194 Patch from Paolo Abeni <paolo.abeni@gmail.com>:
1196 ProcessNotification() is ignoring the handle value contained into the
1197 processed notifications. This means that if many Subscribe() calls are
1198 performed on different folders but with the same flags, all the
1199 registered callback are [incorrectly] signaled with each received
1202 The attached patch match the handler contained into the notification
1203 message against the notification object handle to avoid such
1209 Make sure delayed authenication is not called when server mode is enabled
1212 Update property list to reflect current OAB props.
1214 This deletes a few incompatible properties. Cannot determine the history of the PR_MAILBEAT_ props.
1216 Fix display of Folder ID values (one is filled with ., the other is prefixed with .16 instead of being filled.
1218 Also remove duplicate close() of file descriptor.
1230 Implement RopTransportNewMail (0x51).
1232 Includes IDL, libmapi implementation, and basic mapitest coverage.
1234 Also fix a few doxygen / formatting things.
1239 - Add Redirect buffer support for OpenMsgStore and OpenPublicFolder.
1240 This commit fixes the ecWrongServer (0x478) error users encounter
1241 while running openchange based software in a clustered Exchange
1247 Implement RopCloneStream (0x3b) and RopWriteAndCommitStream (0x90).
1249 Includes IDL, implementation and mapitest tests.
1254 Fix Search notifications.
1256 MS concurred that the docs are wrong.
1258 Patch by Paolo Abeni - thanks very much for the
1259 investigation and the patch.
1261 Update GetStoreState documentation.
1263 Implement RopSetPropertiesNoReplicate (0x79).
1265 IDL was already done. mapitest for DeletePropertiesNoReplicate was
1271 Implement (IDL, libmapi, mapitest) RopHardDeleteMessagesAndSubfolders (0x92)
1273 Also fix some bugs in mapitest common code, and an incorrect sanity check in CreateFolder().
1278 Implement RopHardDeleteMessages (0x91).
1280 Includes IDL, implementation and mapitest.
1283 Ignore generated property file.
1288 Add PT_ACTIONS to list of data types.
1290 Not fully/correctly handled yet.
1295 - Add dcerpc_mapiproxy:delegated_auth option
1296 This option delays mapiproxy-remote server authentication when
1297 the client sends the first request on a given pipe. This is
1298 mandatory in order to have delegated credentials to work.
1300 - Factor remote connection into mapiproxy_op_connect
1305 Add session state to the notification.
1306 Patch by Paolo Abeni - thanks for the investigation and fix.
1308 Also remove a stray debug message.
1310 Add a new mapitest suite for OXCNOTIF (Core Notifications).
1312 Add a test to the OXCNOTIF suite based on test case provided by Paolo Abeni.
1317 Update IDL for ModifyRules (0x41) and add IDL for
1318 UpdateDeferredActionMessages (0x57).
1320 This is a checkpoint commit, pending further investigation
1321 into how we handle PtypRestriction and PtypRuleAction.
1326 Mapitest cleanups - remove GetLastError(), and other minor edits.
1328 Implement LockRegionStream and UnlockRegionStream ROPs.
1330 These appear to be a relatively recent addition to the
1331 documentation, possibly only used in Exchange 2007 / Outlook
1334 This is complete except for testing of whether the locking
1340 Use parent folder full replica ID: 2 bytes instead of 1 byte
1342 - Add Implementation for Logon redirect response buffer in OpenChange IDL
1343 - Update libmapiserver size calculation routine for Logon call to handle this case
1348 Add session and logon_id to the list of parameters to copy between objects.
1349 This patch fixes a problem in openchangeclient when using the --folder parameter.
1352 Remove code relating to free'ing the bookmark returned
1353 by SetCollapseState. Initial investigations with MS
1354 lead me to believe that you can't free that resource.
1356 May be more work in this area as investigation continues.
1361 Fix memory leaks for functions relying on pull_emsmdb_property
1366 Fix emsabp valgrind errors
1371 Make it possible to specify a version number for release different
1372 from major/minor from configure.ac
1377 Make it possible to open and control up to 255 mailboxes within a
1378 single MAPI session.
1380 It implements an internal management of a logon_id array at session
1381 level + enable transparent transport/copy of current logon_id value
1382 among MAPI calls + finally transparently free the logon_id value when
1383 the store object (PF or mailbox) is being released.
1385 - Retrieve recipients from OpenEmbeddedMessage reply
1386 - Test the implementation in mapitest
1387 - Avoid potential memory leak: steal context for returned ulPropTags.
1392 Be more tolerant with Logon request flags
1394 Set retval to MAPI_E_INVALID_BOOKMARK rather than returning.
1395 This case still needs to be fixed though.
1397 Delete debug message
1399 Create a default GetProps reply on error
1404 Fix retval problem in libmapi/nspi.c for GetIDsFromNames.
1405 Function returns MAPI_E_SUCCESS, but errno is set to 0x0000000b.
1406 Set errno to retval to work around this problem.
1409 NSPI-GETIDSFROMNAMES
1411 OXCPRPT-NAME-ID mapitest now passes: The QueryNamedProperties ecMemory retval
1412 has been worked-around by setting QueryFlags to NoStrings to limite the results
1413 scope. This means the MNID_STRING case is not fully checked anymore. We should maybe
1414 add additional tests to do full coverage.
1416 Fix GetNamesFromIDs IDL and implementation.
1418 Note: We should probably update the function prototype
1419 so it takes a mapi_SPropTagArray rather than a single property.
1422 Protect against bad results from GetGALTable().
1424 Resolves ticket #142
1429 Patch from Paolo Abeni: Add sanity check to Subscribe
1430 and prevent applications from crashing if notify context
1436 Ensure NSPI server functions have a valid dcesrv_handle
1438 Add quick/additional configuration information on how to setup openchange server
1440 This commit adds a retval check on private data retrieval function and prevents QueryPosition from causing a
1441 segfault when parent object is meant to come from GetContentsTable.
1443 - Fix NspiGetMatches server reply when specified username is invalid and
1445 - Make use of talloc hierarchy for NspiGetProps properties fetch + fix
1446 a talloc_free bug leading to segfault on failure.
1448 Prevent from registering same mapistore backend multiple times
1456 Add skeleton for GetRulesTable
1458 - return MAPI_E_SUCCESS when QueryRows reply count is 0
1459 - Move Reminders from IPM Subtree to Mailbox root
1461 - Add QueryPosition implementation
1462 - Move from offset to numerator/denominator couple for table objects
1464 Outlook now opens properly using openchange server and display the
1465 mailbox folder list with icons ;-)
1467 - Add skeletons for Restrict, SortTable, FindRow calls
1468 - Introduce emsmdb provider table object
1469 - Add preliminary table implementation for system/special folders
1470 - Add preliminary implementation of GetHierarchyTable, SetColumns and QueryRows
1471 - Improve creation of GetProps reply blob for Mailbox folder
1472 - Fix bug in EcRRegisterPushNotification when associated handle is invalid
1473 - Remove some usage of ldb_filter and use format string instead
1474 - Update libmapiserver sanity checks and look for error_code != MAPI_E_SUCCESS
1475 so openchange server is able to return failed replies to MAPI clients
1476 - Introduce flaggedPropertyRows in libmapiserver_push_property (needed by QueryRows)
1478 This commit makes openchange server work with "openchangeclient --mailbox" ;-)
1480 Still preliminary but anyway worthwhile enough to be mentioned ...
1482 - Add a function to count subfolders of a container
1483 - Add a function to wrap MAPI tables over openchangedb
1484 - Factorize code used to fetch property values from LDB records
1486 - Add default properties to folder records while provisioning mailbox
1487 - Add few more mapping for PR_* to PidTag
1488 - Add a new MAPI property to the list
1490 Avoid openchangeclient --mailbox to segfault when run vs openchange server
1493 Remove some ldb_filters, and just use varargs into ldb_search
1495 warning fix for 64-bit arch.
1497 Revert previous commit.
1499 Experimental commit to fix build problems resulting
1500 from property changes.
1505 - Add PidTagDisplayName property to Mailbox object
1506 - Add PidTagParentFolderId to all system/special folders
1508 - handles array depends if a valid mapi_repl exists. This commit
1509 fixes the destructor semantics.
1510 - Fix a mapitest segfault encountered while run vs openchange server
1511 - Return 1 in SRowSet_propcpy if an error was encountered.
1513 Fix libmapi stack segfault when MAPI calls returns
1514 with error_code different from MAPI_E_SUCCESS.
1516 Do not process NSPI request if we can't find the handle
1518 Remove unnecessary ldb_filter parameter and replace it
1519 with ldb_search format string.
1524 - GetPropertyIdsFromNames skeleton added
1526 - Fix how Release replies are handled in mapi_repl[] array
1527 - Remove Release size calculation
1528 - Fix QueryRows size in libmapiserver
1529 - Add a dummy/skeleton GetPropertiesSpecific function for mapistore objects.
1530 - GetHierarchyTable skeleton added
1531 - SetProperties skeleton added
1532 - CreateMessage skeleton added
1533 - SaveChangesMessage skeleton added
1539 Set mapi_response to NULL upon init ... just to get sure
1541 Fix MAPIUninitialize segfault
1549 - Add skeleton for GetContentsTable Rop
1550 - Add skeleton for some [MS-OXCTABL] Rops: SetColumns, SortTable, QueryRows, SeekRows
1551 - Add libmapiserver size calculation functions for all the above
1552 - Ensure we only set objects parameter if it exists
1553 - Return when dcesrv handle is not available
1555 Merge s4-alpha7 branch back into trunk
1560 - Add several PidTag to openchange.ldb folders
1561 - Add provisioning convenient function which adds attribute/value pair
1562 to a given folder record
1563 - Replace existing special folders reference within Inbox with PidTagIpm* tags
1564 - Add new PidTag values to mapi-properties
1565 - Add a function to libmapiproxy to build a folder EntryID as described in MS-OXODATA
1566 - Add a function which builds special properties for openchangedb folders
1567 - Add PT_BOOLEAN case to openchangedb folder get property function
1568 - Keep a reference to the mailbox username within emsmdb provider context
1569 - Create and return a handle in RegisterNotification
1574 Wrong MessageClass size calculation fixed
1577 Remove duplicate _GNU_SOURCE definition (already specified by Makefile)
1579 Ignore new binary and trial output.
1584 - Fix systemfolder value for System/Special folders
1585 - Add GetProps support to System/Special folders
1587 Add auto-generated parser to the ignore list
1589 - Add auto-generated parser for MAPI property to PidTag mapping
1590 - Add some PidTag values
1591 - Add a lookup and get property functions on system folders
1593 - tuple SystemIdx in the dictionnary to workaround the ordering problem
1594 - Add ParentFolderId attribute to System Folders
1596 - Add creation of "Special folders" to mailbox provisioning
1597 - Rename fid attribute to PidTagFolderId
1598 - Rename name attribute to PidTagDisplayName
1599 - Rename ExplicitContainerClass to PidTagContainerClass
1601 Fix GlobalCount increment
1603 Fix mailbox provisioning
1606 Add test for FILETIME structure.
1608 Update docs for mapiproxy entry.
1611 Fix handling of fids.
1615 - Fix openchangedb mailbox hierarchy and introduces subfolders
1616 as described in [MS-OXOFOLDS] specifications.
1617 - Update openchangedb API to reflect this change.
1619 Rename private mailbox folder "non_ipm_subtree" to "mailbox_root"
1620 to fit with MS-OXOFOLDS specifications.
1622 - Add provisioning code for GetReceiveFolder defaults
1623 - Check if mapistore content repository already exists for the user
1624 - Make mailbox creation verbose
1627 Fix parentfolder reference.
1631 Use recursive call to create folders.
1633 Simplify list iteration, PEP8, avoid using string exceptions.
1638 Fix 'dereferencing type-punned pointer' warnings
1640 - Add strict-aliasing compiler flags
1641 - Fix format string warnings on ubuntu buildbot
1643 - Add _FORTIFY_SOURCE=2 to the compiler CFLAGS
1644 - Fix warnings introduced by -D_FORTIFY_SOURCE
1647 I might have been a bit hasty with that last commit...
1651 Try harder to find sqlite3.
1653 Seems to be in sqlite.pc on Ubuntu.
1655 Fix warning on 64-bit arch.
1659 - Add RopGetReceiveFolder (0x27) implementation
1660 The function respects should respect the semantics and behavior
1661 as described in MS-OXCSTOR specifications. However the python's
1662 code modification required: add ExplicitMessageClass attributes
1663 to folder records is not yet effective.
1665 - Add GetReceiveFolder size calculation function to libmapiserver
1666 - Add a function to openchangedb API to retrieve the FID/ExplicitMessageClass
1667 couple for a given SystemFolder within user's mailbox.
1669 - Provision scripts: create a mapistore default storage space within ${private}/mapistore/${username}
1670 - Provision scripts: add default sqlite:// mapistore URI for system folders
1671 - Add mapistore context initialization when calling OpenFolder on SystemFolder
1672 - Add mapistore context release for folders in emsmdbp object destructor
1674 Factorize emsmdbp objects
1675 Add emsmdbp_object generic talloc destructor
1678 Add test for PT_MV_LONG.
1680 Add tests for PT_I8 and PT_BINARY
1682 Fix warning about no newline at end of file.
1684 Remove most recently added tests from "to be done" list.
1686 Add a couple more mapi_SPropValue tests.
1691 - Initialize mapistore within emsmdb provider context
1692 - Add destructors for MAPI handles and mapistore contexts
1693 - Remove emsmdbp_ctx memory context structure member and
1694 allocate directly with emsmdbp_ctx
1696 I don't see any good reason why we would pad MAPI replies with some bytes.
1697 I guess it comes from some prehistoric openchange code.
1699 Fix systemfolder assignment depending on IsSystemFolder value
1701 - Initialize OpenFolder server reply
1703 - Wrap TDB connections to mapistore (code from samba4) so
1704 multiple instances can open read/write to the same TDB database
1705 - Remove static id_mapping_context (replaced with tdb_wrap calls)
1706 - Update mapistore linkage rules so mapistore can be used with exchange_emsmdb server
1707 - Link mapistore with exchange_emsmdb
1709 Fix aclocal warning for AC_DEFINE comparison_fn_t
1711 Remove useless GetProfilePtr from IProfAdmin interface
1712 Closes trac ticket #131
1714 Add missing script - prevent configure from generating warning vs missing file.
1716 Remove stamp-h1 file during distclean and add it
1719 - Add server-side GetReceiveFolder (0x27) skeleton
1721 Work around the comparison_fn_t redefinition problem
1722 between libocpf and ndr.h
1724 FreeBSD doesn't have time.h daylight global variable
1727 start testing mapi_SPropValue_array.
1728 This also tests some underlying functions.
1733 Add comparison_fn_t support to ndr.h
1734 This was the latest change require to make openchange compiles under FreeBSD
1736 = samba4/openchange FreeBSD support completed =
1741 Remove duplicated post_install call
1743 Add a post_install operation on FreeBSD
1744 Make sure pidl is installed properly.
1746 Patch samba4 tarball so it compiles properly on FreeBSD 7.0
1747 Note: this is a dirty hack which needs to be removed in the future
1749 Install Samba4 correctly although user's PKG_CONFIG_PATH env variable
1750 may not be adjusted properly.
1752 Avoid download samba4 release tarball if already available
1753 in current directory.
1755 - Add test for comparison_fn_t in configure.ac
1756 - libocpf auto-generated files include stdlib.h and prevent from
1757 having the proper comparison_fn_t typedef. This commit works around this
1758 problem and define comparison_fn_t within a private header.
1760 getline is a stdio GNU_SOURCE extension not available under FreeBSD.
1761 Use fgetln instead when it is compiled on this OS.
1763 FreeBSD doesn't define sighandler_t but sig_t
1765 Replace open() call with O_DIRECTORY flag (Linux specific) with opendir
1767 - Add non-default search path /usr/local/{include,lib} to
1768 CFLAGS and LDFLAGS when compiling OpenChange under FreeBSD
1769 - Make use of LDFLAGS while compiling openchange tools
1772 A few improvements for property handling.
1774 Also add unit tests to verify behaviour is correct.
1776 The implementation for the FlatUID (GUID) structure appears broken. Perhaps I'm not using it correctly.
1778 Microsoft confirmed the LCID is wrong in the spec, and will be updated in the next rev.
1783 Check for Flex version < 2.5.35
1784 Make sure users can define the FLEX environment variable
1786 Add automake scripts for AC_CANONICAL_HOST support
1787 Needed for FreeBSD OS detection in configure.ac
1792 Fix warnings from lexer output.
1794 Fixes for warnings on 64-bit architectures.
1796 Fix warning on 64-bit architecture.
1799 Add some more tests for openchange.mailbox.
1801 Fix creation of new mailbox after provision.
1803 Always use the same URL when connecting to openchangedb.
1805 Fix arguments to openchangedb_provision.
1810 Fix libmapi 64-bit machine cast warnings mentioned in Brad's devel email
1813 Warning fix for 64-bit arch.
1818 Add doxygen definition for RopRelease
1820 - Add server-side skeleton implementation for RopOpenFolder and RopRegisterNotification
1821 - Add preliminary size calculation functions in libmapiserver for the 2 calls above
1822 - Fix size bug for serialized requests
1823 - Add skeleton case for RopGetPropertiesSpecific on SystemFolders
1824 - Make sure the GetProps reply blob is initialized whatever happen
1825 - Add a skeleton emsmdbp folder object init function
1830 Remove debug strings for GetPropertiesSpecific Rop
1832 Enable verbose output in server mode - useful during development
1834 Implement preliminary server-side RopGetPropertiesSpecific call for mailbox object.
1836 - Fix GetProps blob for PT_BINARY: use SBinary_short instead of Binary_r
1837 - Fix GetProps size: subcontext is not added to the fixed size calculation
1839 - GetPropsSpecific size calculation function added to libmapiserver
1840 - Function to create a GetProps reply property blob added to libmapiserver
1843 Add tests for provisioning.
1845 Several cleanups in python code, add tests for schema use.
1847 Don't clear PYTHONPATH override.
1849 Remove unused imports, add extra tests.
1851 Use member variable for Ldb, rather than subclassing.
1853 Remove print statements to avoid cluttering test output.
1855 Add simple and incomplete testcase for OpenChangeDB.
1857 Move wipe of data to mailbox.py, simplify arguments to add_root_mailbox.
1859 Move adding a server to mailbox.py.
1861 Move ldif from oc_provision_openchange.ldif into Python.
1863 Stop providing setup_path to OpenChangeDB, as it's no longer used.
1865 Avoid using separate LDIF file when creating folder mailboxes.
1867 Avoid using separate LDIF file when creating mailboxes.
1869 Avoid passing full names object.
1871 Add check-python target.
1876 fix openchange_newuser.
1878 Use SamDB for actual SAM databases, Ldb otherwise.
1880 Remove unused parameters, don't make parameters optional if they are mandatory.
1882 remove unused parameters.
1884 make mailbox object-oriented, remove creds/lp parameters.
1886 Fix OpenChangeDB syntax.
1891 - Add a systemfolder member to the MAPI handle structure to make a difference
1892 between objects managed by mapistore and those stored within openchange.ldb
1893 (root mailbox folders).
1895 - Add opaque functions to set/get private_data and systemfolder to the MAPI
1898 Minor doxygen fix/improvement
1900 Add libmapistore object files to the ignore list
1902 - Add a very preliminary and light libmapistore implementation.
1903 mapistore only supplies init/release and add/del backend contexts.
1904 This commit also includes a sqlite3 backend skeleton (open/close sqlite db)
1905 - A temporary mapistore testing tool has been added locally for implementation checks.
1908 Use convenience function for connecting to openchange.ldb.
1910 Use standard LDB functions - openchange.ldb is not a SAM database.
1915 Implement support the SUMMARY language tag.
1917 Initial checking of libical based exchange2ical code.
1919 This has a long way to go, so think of this as more of a checkpoint
1922 See http://sourceforge.net/projects/freeassociation/ for the library, or
1923 see if your distro has a package.
1927 Add missing parameter to API documentation.
1929 Resolves ticket #130.
1931 API documentation fixes for OpenEmbeddedMessage()
1933 Implement OpenEmbeddedMessage ROP (0x46).
1937 Factor out message creation and message fill actions.
1939 Also remove GetLastError() where appropriate.
1941 Add some API documentation.
1946 Update openchangepfadmin description
1947 Fix tool relying on libmapiadmin
1954 Add more explanation for README
1956 Reimplement RTF decompression.
1958 Add unit tests from MS-OXRTFCP.
1960 Fix warnings in example code
1962 Add description for libmapiadmin
1964 Add description for libmapi / libmapi++
1966 Start on the directory descriptions.
1972 Add overview. Extracted from API docs.
1976 Outline of README file.
1978 (also using this to test buildbot without changing real code)
1982 Add Version field - avoid breaking pkg-config --list-all
1984 Fix warnings (gcc 4.2.4)
1987 Use variable for package version rather than hardcoding it.
1997 - Add an implementation of the MAPI handles management API. The API
1998 internally uses an in-memory TDB database to keep object hierarchy
1999 and a doubled chained list to associate private data to handles.
2001 The API currently provides add, search and delete facilities. Note
2002 that while untested, the delete operation is designed to recursively
2003 delete children of the 'meant to be deleted' handle.
2005 Finally the API doesn't remove TDB records but mark them as free so
2006 they can be reused across MAPI session and prevent from handle counter
2007 growing indefinitely.
2009 - Add a preliminary implementation of the Release call
2010 - Add Release size calculation to libmapiserver
2011 - Update EMSMDB provider to use MAPI handles API
2014 Minor api documentation fix.
2020 Minor API docs tweak.
2022 Token commit of tiny API docs fix.
2025 Look for GNU make harder (gmake on BSDs).
2030 - Add preliminary EMSMDB provider implementation for RopLogon (0xFE)
2031 - Add common routines for OpenChange LDB context init and search
2033 - Add libmapiserver skeleton with size calculation routine for RopLogon
2034 - Change DSO linking dependencies for mapiproxy shared libraries
2035 - Propagate _GNU_SOURCE change from libmapi.h to mapiproxy
2039 Remove .po and .o objects within libmapiproxy subdirectory
2041 Move libmapiproxy into its own directory and rebase mapiproxy headers accordingly
2042 Fix make uninstall for AD and profiles directories
2046 Add python code and ldif files needed to create and populate the experimental
2047 openchange dispatcher database.
2049 Add 5-Minute configuration documentation for OpenChange server mode
2051 - Rebase ldif files into sub directories:
2052 * AD for OpenChange AD modifications
2053 * profiles for OpenChange IProfAdmin interface
2054 - Makes it easier figuring out LDIF files scope
2055 - Prepare setup folder for LDIF openchangedb files integration
2056 - Update install/uninstall Makefile rules for ldif files and
2057 make sure everything got removed
2062 Add support for short language names (e.g. en-AU) for lcid.
2067 Delete deprecated libmapi setup Perl script
2070 Add summary report for tests.
2072 Make mapitest return the number of failed tests.
2077 - Add pkg-config pc file for libmapiproxy
2078 - Improve mapiproxy rules so libmapiproxy gets installed and cleaned properly
2080 Free memory allocated by the fake subcontext in
2081 ndr_pull_mapi_response.
2083 This fix saves 300kb of memory and removes 700 loss records while
2084 valgrinding mapitest.
2086 Fix segfault - Add sanity check - when SPropTagArray is NULL in
2087 NspiQueryRows request
2089 Fix openchange_newuser name typo
2091 Fix server provisioning command line examples
2093 Fix several libmapi leaks.
2095 mapi_response was allocated using emsmdb_ctx->mem_ctx memory context
2096 and was not free'd when libmapi function released their
2097 context. Furthermore we need to release mapi_response->mapi_repl and
2098 mapi_response->handles which are now automatically free'd when
2099 mapi_response destructor is called.
2101 However note that this fix is not perfect: mapi_response memory is not
2102 free'd properly when calls exit with an error.
2104 This commit also make use of talloc_steal where necessary to keep
2105 returned fields allocated.
2109 Use named context rather than autofree
2111 Fix memory leak in emsmdb.c: Use a temporary memory context for
2112 request and length allocation in emsmdb_transaction.
2114 - This removes 827 loss records and approximatively saves 41kb of
2115 memory while valgrinding mapitest
2117 - Fix memory leak in GetDefaultProfile and GetProfileTable.
2118 - Save from 10 loss records while valgrinding mapitest
2119 - Developers are now responsible from freeing the GetDefaultProfile
2120 string the function allocates.
2121 - Apply changes to all openchange tools.
2123 Add blackbox subunit tests for mapiprofile tool
2126 One more trivial fix.
2130 (Yep, more trivial changes)
2132 Fix incorrect LCID for en-CA.
2134 (OK, its token, I admit).
2137 Don't define _GNU_SOURCE unconditionally.
2141 Prevent mapiproxy from multiple init and modules/server register
2142 when an smb client connect to the server (e.g. windows browser or smbclient)
2146 According to [MS-OXOCAL] Section 2.2.1.44.1
2147 "RecurrencePattern Structure", a monthly recurrence
2148 also has a Day specific parameter.
2153 Simply run autogen.sh rather than replicating it inside the Makefile.
2155 need to run aclocal before autoconf for the pkg-config macros.
2159 Use a autofree context rather than a named one - makes sure memory is free'd when we exit the test.
2160 Saves from 4 loss records while valgrind'ing mapitest.
2162 Use temporary memory context for EcDoConnect.
2163 Saves from 20 loss records when valgrind'ing mapitest.
2165 Free PropertyProblem structures returned by CopyTo.
2167 Replace deprecated talloc_init calls with talloc_named
2168 This commit removes some valgrind loss records talloc_init was responsible for
2171 Free everything when running mapitest --list-all.
2172 Valgrind however shows a loss record related to talloc_init ...
2175 Minor Intel C compiler warning fixes.
2177 Minor apidocs cleanups.
2181 Use double pointer for lp_ctx in GetLoadparmContext assessor
2183 Fix memory leak in utf8 lexer.
2185 - Remove custom iconv_convenience from pull_emsmdb_property and use
2186 lp_iconv_convenience on loadparm_context argument instead.
2188 - Change OpenChange libmapi API to reflect this change
2190 - Introduce a lp_ctx assessor in libmapi/cdo_mapi.c
2191 (mostly for mapitest modules). libmapi/mapiproxy developers
2192 should never have to make use of it.
2194 - Remove pointless duplicated call to lp_load_default in MAPIInitialize.
2196 Free lpProps returned by GetProps, Fix context error in valgrind
2198 - Fix memory leak bug: release ndr context in pull_emsmdb_property before returning
2199 - Terminate SPropValue and SPropTagArray using an element with ulPropTag = 0. This
2200 prevent from "invalid read size of 4" messages from valgrind and remove context errors.
2203 Don't install mapiproxy if python wasn't found, since
2204 we wouldn't know where to install the provisioning scripts or be able
2209 Merge libmapi-0.8 branch r1015 to 1017 into trunk
2211 ** Start libmapi-0.9 COCHRANE development **
2213 Merge libmapi-0.8 branch changes into trunk
2217 Add python install/uninstall rules to provision rather than mapiproxy-servers
2219 - Remove server Makefile rules
2222 Note: server and providers have been merged within mapiproxy,
2223 so there is no reason keeping this deprecated code.
2227 Undoing change committed in r1004.
2229 Use .po files instead of .o files for openchange tools
2231 Add --version to openchange tools
2233 Add COPYING file with GPLv3 license
2237 - Add RenameProfile function to IProfAdmin API
2238 - Remove pointless CopyProfile from IProfAdmin API
2239 - Add --rename option to mapiprofile tool
2240 - Update man page to reflect this addition
2242 (close trac ticket #124)
2244 Fix libmapi from crashing when mapi_repl is NULL.
2246 Update Samba4 git rev to fix the charcnv segfault met in openchange
2250 Try to find the Samba python modules if they're not installed in the system
2255 - Fix Subscribe semantic bug and add WholeStore boolean parameter
2256 - propagate API change to tools/torture callers
2258 - Add assessor functions to set dumpdata and debug level in libmapi
2259 (SetMAPIDumpData and SetMAPIDebugLevel)
2260 - OpenChange tools modified to use these function rather than set these
2261 parameters on their own
2263 - Fix --debuglevel segfault in openchange tools
2264 - Enable logging to stdout in MAPIInitialize
2268 * OpenChange libmapi function now returns MAPI error instead of -1
2269 - use OPENCHANGE_RETVAL_IF instead of MAPI_RETVAL_IF
2270 - add doxygen documentation for some missing functions/files
2272 - Missed this event->tevent change in previous commit
2274 - Update openchange to use latest Samba4 master git rev (990491d)
2275 - Fix references to tevent_context structures
2276 - Fix iconv_convenience init in MAPIInitialize
2277 - Remove errorchecks mapitest module warning
2280 Use tevent_context_init.
2286 Some Exchange server (stand-alone) return MAPI_E_LOGON_FAILED when setting EssDN with username rather than
2287 using profile's mailbox string directly. This commit fixes the bug.
2289 - Add EcDoConnect and EcDoDisconnect preliminary support to
2290 dcesrv_exchange_emsmdb.c
2291 - Add internal session management mechanism to EMSMDB server
2292 - Add init and unbind modules function to EMSMDB server
2293 - Add emsmdbp_context and session to dcesrv_exchange_emsmdb.h
2296 Fix valgrind errors caused by using free'd memory.
2300 Implement 'mapiproxy downgrade' behavior in EMSMDB server and force
2301 Outlook to use EcDoConnect (0x0) and EcDoRpc (0x2) rather than 0xA and
2302 0xB (opnums using LZ based compression).
2304 - Add Preliminary implementation for RfrGetFQDNFromLegacyDN DS RFR server
2308 - Preliminary implementation of NspiGetProps NSPI server function
2309 - Makes sure emsabp_tdb_traverse_MId uses the correct dbuf size
2310 - Use correct ldb context (users or conf) depending on where MId is
2311 located (on-memory or on-disk)
2312 - Add PR_EMS_AB_NETWORK_ADDRESS mapping to emsabp_property
2314 *** Outlook is now able to create MAPI profile using OpenChange Server ONLY! ***
2316 - Preliminary implementation of NspiDNToMId NSPI server function
2317 - Add emsabp_search_legacyExchangeDN to search for a record given its
2318 legacyExchangeDN attribute.
2320 - Preliminary implementation of NspiQueryRows NSPI server function added
2321 - fix a bug in the MID TDB traversal routine: cut dptr to dsize length
2322 rather assuming it is NULL terminated
2323 - Add support for "referenced" property tags
2324 - Add support for PR_MV_STRING8
2325 - Add emsabp_search_dn which search for a DN within AD and return the
2326 associated LDB message
2327 - Add PR_EMS_AB_HOME_MDB and PR_EMS_AB_PROXY_ADDRESSES to
2328 emsabp_property array
2330 Prevent from trying to add a NULL element to profile database and segfault on strlen
2332 Prevent x500_get_dn_element from segfaulting when an incorrect DN string parameter is supplied
2334 - Preliminary implementation of NspiGetMatches NSPI server function
2335 - Make use of a on-memory TDB database for Ephemeral Entry IDs
2336 - Add TDB traversal routines to retrieve DN associated to MId
2337 - Move lp_ctx within emsabp_ctx for convenience
2338 - Add EphemeralEntryID to Binary_r routine
2339 - add emsabp_query (Find attribute matching given property tag and
2340 return associated data)
2341 - add emsabp_fetch_attrs which builds a SRow array given a MId and
2342 requested property tags.
2343 - add emsabp_search which searches AD given input search criteria
2344 - add a preliminary Property Tag to AD attribute mapping + associated
2345 functions in emsabp_property.c
2347 Note: This NspiGetMatches is limited to MAILUSER which means we only
2348 look for users (located within users.ldb). This limitation will be
2349 removed when we have a preliminary working emsmdb server, so we can do
2350 more extensive NSPI server tests.
2352 Add sanity check to get_SPropValue_SRowSet, prevents the function
2353 from segfault when RowSet is NULL (e.g. crafted NspiQueryRows replies)
2355 Prevent IProfAdmin based code from crashing when a crafted NspiGetMatches reply
2356 with NULL ppOutMIds is returned.
2361 - Preliminary NspiGetSpecialTable implementation added to NSPI
2362 server/EMSABP provider: Hierarchy Table supported (required during
2364 - add PT_BINARY support for mapidump_SPropValue
2365 - fix a bug when PT_STRING8 or PT_UNICODE pointer is set to
2371 Add new Display Type values (used by EMSABP provider)
2373 Change DEBUGLEVEL for RfrGetNewDSA
2375 - preliminary implementation of RFR server (RfrGetNewDSA): makes Outlook happy
2376 - mapiproxy-servers-install now installs openchange python scripts and ldif file
2380 Move auth_serversupplied_info structure from dcesrv_exchange_nsp.h to libmapiproxy.h
2381 This structure is required for NTLM_AUTH_IS_OK macro
2383 - Add doxygen comments for all OpenChange server modules
2384 - Fix doxygen return value for exchange_nsp
2386 - Add mapiproxy server unbind function and hook in dcesrv_mapiproxy.c
2387 - Add exchange handle enum to dcesrv_mapiproxy.h
2388 - Add authentication verifier macro to libmapiproxy.h
2389 - Add preliminary EMSABP Address Book Provider implementation:
2390 * supports initialization, destructor (talloc)
2391 * implements user and codepage check routines
2392 * retrieve NSPI server GUID
2393 - Add NspiBind and NspiUnbind support to dcesrv_exchange_nsp.c
2394 - Add internal session mechanism management to NSPI server
2395 - Add init and unbind modules function to NSPI server
2396 - Add doxygen comments to all dcesrv_exchange_nsp.c functions
2397 - Add emsabp_context, session and non-exported Samba structure to dcesrv_exchange_nsp.h
2399 OpenChange configuration schema updated with Addressing schema
2400 (Address-Templates, Address-Types and Display-Templates - Exchange 2003 based)
2402 Execute server modules init function when loaded
2405 A few API documentation fixes.
2410 Add documentation for MAPIProxy 'server mode'
2415 - Implement mapiproxy server mode architecture
2416 - Add server modules management API
2417 - Add skeletons for default OpenChange servers (nspi, emsmdb, ds_rfr)
2418 - Add temporary provision Makefile rule
2423 Initial text was correct - rollback
2428 Ensure that GetLastError() also returns the correct value.
2430 Start changing the MAPI_RETVAL_IF() usage to two new macros:
2431 OPENCHANGE_RETVAL_IF() and OPENCHANGE_RETVAL_ERR().
2433 simple_mapi.c is the only one converted at this stage.
2435 Also added a set of unit tests that verify at least some initial
2438 Remove unreachable code.
2440 Partly resolves ticket #124
2445 Remove references to ldap.h header file - not installed anymore with samba4 git rev openchange uses
2447 mapiproxy documentation update: 3 questions added to FAQ section
2449 Patch from Corentin Chary:
2450 - Add PR_CONTENT_FILTER_SCL property to libmapi
2452 - Update openchange to work with samba4 master git rev f308c2f
2453 - Replace reference to events.h with tevent.h
2454 - Update installsamba4.sh script to reflect latest samba4 compilation changes/requirements
2459 Fix mapidump date/month when freebusy period covers end of one year - beginning of next year
2460 Update openchangeclient to reflect these changes.
2465 Export PKG_CONFIG_PATH if it wasn't exported yet. Patch by Metze
2467 Fix PIC object flags for SWIG build. Patch by metze.
2472 User %u format specifier for unsigned integer.
2474 Make return value match signature.
2476 Miscellaneous minor cleanups. Mainly making return types
2477 match signatues, format conversion (%u for unsigned values) and
2478 matching up result variable types (bool instead of enum MAPISTATUS).
2480 Return an enum MAPISTATUS, instead of a bool, to match function signature.
2482 Use %u instead of %d for unsigned values.
2487 Another minor APIdox edit.
2489 API documentation tweak.
2497 More apidox triviality.
2499 Trivial APIdox edits.
2501 Supplement the user's PKG_CONFIG_PATH rather than
2505 Add bindings for GetBestBody(), GetDefaultFolder(), GetDefaultPublicFolder(), AddUserPermission(), ModifyUserPermission().
2507 Add bindings for create_message, delete_messages, get_message_status, set_read_flags.
2509 Add Python bindings for Unsubscribe(), get_task_status(), get_importance(), get_proptag_name(), get_proptag_value(), DeleteFolder(), CreateFolder(), EmptyFolder(), RemoveUserPermissions(), IsMailboxFolder().
2514 Actually use pymapi variables in Makefile.
2516 Add configure flags for building and installing Python MAPI bindings (disabled by default).
2521 Add namespace prefix to scanner.
2526 - spnego / gssapi_krb5 authentication now available for mapiprofile
2527 - add the --realm | -R option
2528 - update mapiprofile man page
2533 Remove entries for --properties and --priority, which have been removed from the openchangeclient utility.
2537 Don't generate / install man3 pages for libmapi++ or mapitest.
2539 Resolves ticket #121.
2541 Also don't install man3 pages that are just copies of the C implementation files, or just document bugs / todo items.
2544 Allow retrieving id and session of MAPI objects.
2546 Add MessageStore and Object Python classes, add bindings for OpenMsgStore, OpenUserMailbox, OpenPublicFolder.
2548 Add stubs for Session class.
2550 Add infrastructure for MAPI python module.
2552 Look for python and python-config binaries.
2554 Remove empty directory.
2558 Remove obsolete --properties option and related code
2563 Fix RecipientRow member's order
2568 - Update to latest samba4 git master revision (3508a66)
2569 - Fix references to samr info24 struct
2570 - Add support for assoc_group_id proxy
2571 - Add support in mapiproxy for bind/alter connections using assoc_group_id
2572 - Update mapiproxy documentation
2577 Improve building. Partially addresses #94.
2579 More work required on this as we work on the
2580 portability in the future.
2582 Expose the underlying session.
2587 Remove unused --priority option.
2589 These offsets / values can be negative, so we shouldn't
2590 use unsigned int type to represent them.
2595 Fix Logon problem for users running Exchange 2k7 in a clustered Exchange environment.
2597 This patch first tries to forge EssDN Logon string from "o" and "ou"
2598 attributes stored in the profile. If Logon fails with ecUnknownUser,
2599 then try to open the mailbox using the mailbox attribute stored in
2605 Document the --label option.
2610 Make openchange compile and work against latest samba4 master git rev (58db2be)
2613 Remove check for unused type 'uint_t'.
2618 More tweaks on the openchangeclient man1 page.
2620 More updates for man1 page for openchangeclient.
2621 Still doesn't fully address #113.
2623 Update the openchangeclient man1 page.
2625 Partly addresses ticket #113.
2627 There is still some work to do on this.
2629 Fix a typo, and try to make the descriptions more
2635 Initial version of man1 page for mapitest
2637 Initial man1 page for exchange2ical utility.
2642 Update man1 page for openchangepfadmin
2644 Minor updates for the man pages.
2649 Fix build errors: wrong number of arguments for ocpf_propvalue
2651 Fix warnings when compiling with -Wextra
2653 Fix warnings when compiling with -Wextra
2655 Fix warnings when compiling with -Wextra
2658 Complete initializers here.
2663 Update to reflect latest state of mapiprofile.
2668 Prevent segfault when running mapitest. Looks like the we can
2669 return MAPI_E_SUCCESS even if one of the property values is
2670 MAPI_E_NOTFOUND. That error then get turned into a char*, and
2673 Also fix a possible bug relating to operator precedence, and
2674 a couple of warnings (one for signed / unsigned comparison, and
2675 the other for an unsigned value never being less than zero).
2680 Enable output to stdout.
2682 Resolves ticket #106.
2684 Thanks to raboof for the report and fix.
2689 Fix missing initialisers (issue #110).
2691 Also fix some signed/unsigned warnings.
2693 Fix problems with incorrect initialisers (#110) and
2694 operator precedence.
2696 Also fix a couple of places with signed/unsigned confusion.
2698 Partial fix for issue #110, and a couple of very minor cleanups.
2705 We probably want to return here, not do nothing.
2710 Fix empty patch function problem: add a retval
2715 Explain the boost-thread trick.
2717 Minor documentation tweaks.
2722 - remove usage of global_loadparm in libmapiadmin
2723 - make use of session context rather than global_mapi_ctx in libmapiadmin
2724 - use local context rather than mapiadmin context in libmapiadmin
2725 - libmapiadmin now uses ldb helper rather than raw implementation (ldb async code)
2726 - libmapiadmin and openchangepfadmin now works again (user creation/deletion) !! ;-)
2727 - remove global_loadparm in torture test and replace it with torture context
2728 - fix dcerpc_init to match latest samba4 API
2729 - update samba4 version required to build openchange
2732 More API documentation tweaks.
2734 More API documentation tweaks.
2736 Some API dox fixes for libmapi++.
2739 Remove unnecessary patching of lib/events/events.h.
2744 Update to a more recent Samba4.
2747 Remove some usages of deprecated global_loadparm.
2749 Cope with new argument to dcerpc_log_packet().
2754 Fix includes for DEBUG(), fix some more warnings.
2756 Use same_net_v4 rather than deprecated same_net().
2758 Fix Samba 4 git revision.
2760 Fix includes - debug.h can only be included once.
2762 Include debug header.
2764 Cope with API changes in Samba functions.
2766 Use new function is_zero_ip_v4 rather than removed is_zero_ip.
2771 Fix OpenMsgStore binding in swig perl and fetchmail script
2776 Fix pointless const definition for GetFreeBusyYear return type
2780 - Add the IsFreeBusyConflict convenient function which checks if a
2781 given date conflicts with existing FreeBusy Busy/OOF events
2783 - Modify openchangeclient --sendappointment behavior to check whether
2784 start or end date conflicts with FreeBusy published data for the
2787 - Add the --force option to openchangeclient to override this behavior
2789 - Fix a counter bug in mapidump_freebusy_events
2791 Fix doxygen typo error
2793 - Add GetUserFreeBusyData convenient function which retrieves FreeBusy
2794 data in public folders for a given user. Note: Ambiguous name is not
2795 supported at the moment.
2797 - Add convenient FreeBusy mapidump routines
2799 - Add FreeBusy read support to openchangelient
2801 - Add PT_MV_LONG and PT_MV_BINARY support to pull_emsmdb_property and
2802 property.c functions
2804 - Add OpenUserMailbox which let developers open other mailboxes
2805 instead of the default profile one.
2807 - Add GetABRecipientInfo: convenient function which retrieves Address
2808 Book information for a given recipient
2813 - Add libmapi implementation for DeletePropertiesNoReplicate
2814 - Add mapitest test units for DeleteProps and DeletePropertiesNoReplicate
2816 Fix doxygen documentation
2821 - Implement multisession into libmapi
2822 - Update openchange tools and suite to reflect these changes
2823 - Fix SRow_addprop behavior
2825 NOTE: OpenMsgStore, ResolveNames, GetGALTable and RFR functions
2826 now take a mapi_session parameter.
2829 Use my openchange.org email address.
2834 - Add a session management API for mapiproxy modules. Similar code
2835 already existed for mpm_cache module. Common functions are now
2836 available to all mapiproxy modules through libmapiproxy
2838 - replace smbd with samba in mapiproxy documentation
2840 - Cache calendar, contact, journal, note, task and drafts folders IDs
2841 when GetDefaultFolder call is performed on one of these folders and
2842 keep them until obj_store is released.
2844 - Add a reverse lookup routine which says whether a given FID belongs
2845 to a default folder and which olFolderType it is.
2847 - Remove pointless memory context in GetDefaultFolder
2848 - Move entryID to FID code into a separated routine (GetFIDFromEntryID)
2850 Restore install rule for mapi profiles ldif files in
2851 libmapi-installscript. Fix the MAPI_E_NO_ACCESS bug when mapiprofile
2852 tries to create a new mapi profile store.
2856 - Ticket #103 resolved. openchangeclient can now perform custom folder lookup, fetch, mkdir and rmdir.
2857 - mapi_object_copy routine added to mapi_object.c
2862 Fix missing Month field in LogonTime structure
2866 propagate IDL warning fix to property.idl
2869 Add target for building python API documentation.
2873 Fix samba4 release and git revision
2875 Fix installsamba4.sh script paths
2880 Install OpenChange python modules.
2882 Check for python dir during configure.
2884 ignore generated files.
2886 Stop installing js files.
2888 Use autoconf cache prefix.
2890 Use newer version of Samba 4.
2894 Remove dcesrv_exchange.so from server Makefile rule and
2895 move mapiproxy from TOOLS to SERVER.
2897 dcesrv_exchange and providers Makefile rules are orphan, planned
2898 to be removed (with their associated code) when emsabp merge process
2899 into mapiproxy is over.
2903 Export the Binary_r structure.
2907 Use more descriptive variable names in messages example code.
2909 Add a description of messages to libmapi++ API documentation.
2911 Add messages binary to the ignore list.
2913 Add new example showing libmapi++ message handling, and
2914 associated API documentation and build system changes.
2918 Update the API documentation main page for libmapi++
2922 Add foldertree binary to the ignore list
2924 - Add missing Input parameter
2925 - Add sanity check on ppNames
2928 - Fix a bug in NspiUpdateStat: make plDelta mandatory and use it for in,out
2929 - Add a NspiGetSpecialTable test for Address Creation Template
2932 Fix valgrind-reported error, per ticket #101.
2934 Make sure we clean up after mapitest runs.
2940 - Add msExchUserAccountControl attribute to extended user record
2941 - openchange_newuser can now create/enable/disable an OpenChange account
2943 Exit the test if the WriteStream operation fails
2945 Fix ncacn_ip_tcp binding string for OpenChange server object
2947 With new NSPI IDL, using cValues - 1 is incorrect and lead to errors. Use cValues directly instead
2949 Fix pipe function check and use ndr autogenerated defines rather than static strings
2950 Fix calls to NspiDNToMId
2953 Make sure we set the body and body format properties, to
2954 ensure that the message is shown correctly with
2955 openchangeclient -F.
2960 - Rename oc_* python scripts to openchange_*
2961 - Add Full Exchange 2003 schema (classes and attributes)
2962 - Full Exchange 2003 modified classes and attributes support
2963 - Add prefixmap OID for some Exchange classes and attributes
2964 - Add missing ADSC classes and attributes
2965 - Improve configuration LDIF file with new objects
2967 NOTE: provision.py should find a way to handle firstorg properly
2968 NOTE: oc_provision_configuration.ldif is still incomplete
2971 API documentation improvements.
2975 Add an example to the libmapi++ documentation, and
2976 the right build magic and doxygen linkage.
2978 Minor API documentation fix
2982 Add forgotten part of API documentation fixes for mapitest.
2984 Improve mapitest API documentation.
2988 Use new DeleteFolder flags to clean up folders on deletion.
2990 This doesn't completely resolve ticket #84, but it does help.
2992 Ignore API documentation.
2994 Add Doxyfile to ignore list.
2996 Add initial support for Doxygen API documentation
3001 Implement the remainder of the standard public folders.
3005 Only do header line removal at the start of the file
3006 (lines 20 through 40 seems like a good compromise).
3008 libmapi++ is C++, not C, so we should not optimise
3009 Doxygen output for C.
3013 - Update the Logon_repl IDL (0xFE) and implementation
3014 - Add new folders to the mapi_obj_store for PF folders
3015 - rename pf_finder to pf_search
3018 Suppress some more unwanted headers.
3022 - Add GetStoreState (0x7b) IDL, implementation and mapitest unit
3026 - Update the EmptyFolder IDL
3028 - Update the SearchFlags enum, GetSearchCriteria and SetSearchCriteria IDL
3029 - Add mapitest units for GetSearchCriteria and SetSearchCriteria
3031 Link libmapi++ documentation to main apidocs page
3033 Update GetAttachmentTable IDL and remove the unknown field
3035 - Update DeleteFolder IDL and implementation
3036 - It now supports DeleteFolderFlags as input parameter and can return the ParticalCompletion state
3037 - Sanity checks added at the beginning of the function
3039 - Rename GetRowCount to QueryPosition
3040 - IDL, implementation, documentation and openchange code updated
3041 - ActionType enum fields prefixed with 'ActionType_'. Original
3042 values were causing conflicts while building Perl bindings with
3043 'i386-linux-thread-multi/CORE/opnames.h where OP_DELETE was already defined'
3045 Change enum SaveFlags to uint8_t for doxygen documentation to be generated properly
3047 - Update SaveChangesMessage IDL and implementation
3048 - Add a SaveFlags parameter to SaveChangesMessage function
3049 - update openchange code to reflect this change
3052 Build fix / fix for ticket #99.
3054 Filter out some new #include lines.
3056 This needs to be applied to other modules too.
3060 Update SRow and SRowSet IDL
3062 Delete obsolete input_locale and instance_key structures
3064 Fix WStringArray_r IDL
3066 - Move from MV_UNICODE_STRUCT and LPWSTR to WStringArray
3067 - LPWSTR structure removed
3069 Rename SDateTimeArray to DateTimeArray_r
3071 Rename SGuidArray to FlatUIDArray_r and fix the IDL
3073 Rename MV_LONG_STRUCT to LongArray_r
3075 Rename SBinary to Binary_r
3077 - Add removal of libmapi++ Doxyfile in make distclean rule
3078 - Add Doxyfile to svn:ignore
3080 Rename SShortArray to ShortArray_r
3082 - Move from SLPSTRArray to StringArray_r
3083 - LPSTR structure removed
3085 Rename MAPIUID to FlatUID_r
3087 Fix lexer warnings during compilation (ticket #100)
3089 - Update the EcDoConnect IDL (ref. ticket #99)
3090 - Add new fields to the emsmdb info structure
3091 - Add doxygen comments to libmapi/emsmdb.c
3094 Reduce warnings when compiling with 64-bit arch.
3096 Initial checkin of infrastructure for libmapi++ API documentation.
3100 - MAJOR NSPI protocol and libmapi stack update
3101 - All NSPI protocol functions implemented
3102 - NSPI stack fully documented
3103 - NspiGetHierarchyInfo renamed to NspiGetSpecialTable
3104 - NspiDNToEph renamed to NspiDNToMId
3105 - instance_key removed from nspi_context and set as a parameter to NSPI functions
3106 - SPropertyRestriction renamed to PropertyRestriction_r
3107 - FlagList structure removed and replaced by a SPropTagArray
3108 - MAPI_SETTINGS removed and replaced by a STAT structure
3109 - new MAPI property tags added to libmapi/conf/mapi-properties
3110 - NSPI module added to mapitest
3113 Clean up on failure.
3115 Clean up on failure.
3117 Minor improvements to ensure cleanup on failure.
3119 API documentation fix
3121 API documentation fix.
3123 API documentation fix.
3125 API documentation fix.
3127 API documentation fixes.
3131 API documentation fixes.
3135 Fix EMSMDB 0xb function name
3137 - update EcRRegisterPushNotification IDL
3139 - implement complete MAPI notifications
3140 - update libmapi to reflect these changes
3141 - make openchangeclient prints a brief summary for each notification found
3142 - update ulEventMask used in openchangeclient
3146 - Rename Advise MAPI call to RegisterNotification
3147 - Update RegisterNotification IDL and implementation
3151 - Fix Restrict IDL and implementation
3152 - Add a new parameter to the Restrict function
3155 Add mapi_nameid.h to the ignore list
3157 - Replace libmapi/mapi_nameid.h with a generated mparse file
3158 - Add a mapi_nameid.h parser to mparse.pl
3159 - Add canonical names for named properties
3160 - GetProps and SetProps resolves named properties if they exist
3161 - named properties can now be set directly and make mapi_nameid API be
3163 - replace named property tags hex value with their canonimal names
3164 - replace several use of the mapi_nameid API with smaller code
3166 - Add new IDL file (property.idl) to push/pull structures from binary
3167 blobs and not directly related to any MAPI calls. Include the
3168 generated property.h file into libmapi.h
3170 - Add PT_MV_STRING8 support in pull_emsmdb_property (GetProps reply
3171 parsing) and mapidump_SPropValue
3173 - Add functions to property.c to retrieve RecurrencePattern,
3174 TimeZoneStruct and GlobalObjectId structures (see property.idl).
3176 - add a preliminary version of exchange2ical tool. This version only
3177 dumps calendar folder appointments into ICS file on standard output.
3181 - Update mapi-nameid-properties with a more complete set of properties
3182 - Add a header to mapi-nameid-properties for sanity purposes
3183 - Move named properties with PT_STRING8 type to PT_UNICODE
3184 - update openchange code to reflect these changes
3185 - Add PSETID_Attachment to mapidefs.h
3189 Add missing check on password for the create command
3191 Fix incorrect usage of realm in mapiproxy
3195 Check for provider_rpc_connection retval for RFR functions.
3197 Update Doxyfile to parse mapiproxy/modules files and
3198 include documentation on static functions.
3200 - Add NSPI hook on NspiQueryRows and NspiDNToEph and replace the
3201 Exchange server name with mapiproxy one.
3202 - documentation updated to reflect these changes
3203 - new FAQ question added
3204 - developer documentation improved
3206 Add the RFR mapiproxy file.
3208 - Implement RfrGetNewDSA DN replacement in mapiproxy
3209 - use lp_realm rather than sockaddr in NspiGetProps (FQDN rather than IP address)
3210 - update mapiproxy documentation to reflect these changes
3214 - Add implementation of the NSPI Referral protocol (exchangeRFR)
3215 - update dcesrv_exchange and mapiproxy prototypes for RFR
3216 - add references to the RFR pipe in mapiproxy
3217 - prefix NSPI client connections with a RfrGetNewDSA call
3218 - add RFR functions implementation in libmapi/IMSProvider.c
3219 - add a --getfqdn option to mapiprofile
3220 - fix a minor mapiprofile option parsing bug
3224 Fix mapiproxy dummy module unbind prototype
3226 - Remove flags in EcDoRpc top function, fix compilation vs latest samba4-git version
3227 - EcDoRpc indent updated
3231 Get rid of initialization order warning
3235 - add unbind hook for mapiproxy
3236 - add ahead mapiproxy mode
3237 - add read ahead in cache module
3238 - add synchronization mechanism in cache module
3239 - update mapiproxy documentation to reflect these changes
3243 Temporarily comment out installation of files removed
3248 Fix arguments, paths in provision scripts.
3250 Merge python provision/newuser scripts.
3252 Simplify installation of manpages a bit.
3256 Add configure check for libboost-thread. Add libmapi++ to the build
3257 only if it is available.
3261 - session constructor doesn't login to the server anymore, it calls MAPIInitialize().
3262 - Created session::login() members.
3263 - test applications use default profile.
3267 - Import Alan Alvarez work from libmapi++ into trunk
3268 - Add a g++ check in configure.ac: don't call libmapi++ rules if g++
3270 - Add libmapi++ to the build system
3271 - Add a patch function to installsamba4.sh: rename private to
3272 private_data in samba4 events.h header file
3273 - Change #include directives so it uses <libmapi++ ... rather than
3278 - Add a statitic function monitoring streams over OpenStream and Last
3279 ReadStream operations. Monitoring stream Release is not relevant
3280 since Outlook does not close the handle directly after last
3281 ReadStream operation. Should put in evidence difference between
3282 non-cached(1st retrieval) and cached (further retrieval).
3284 - Fix a few memory leaks
3288 - Commit initial revision for the mapiproxy cache module
3289 - Update mapiproxy hook API for the dispatch routine
3290 - Introduce the mapiproxy structure for modules to control top-level
3292 - Update mapiproxy documentation to reflect these changes
3296 * Fix remaining ByteRead parameter size for ReadStream operations.
3300 * Improve/Update Open/Read/WriteStream IDLs
3301 * Fix ByteRead parameter size for ReadStream operation.
3305 Improve OpenAttach, CreateAttach and DeleteAttach IDL - remove unknown
3308 Propagate r666 changes to OpenMsgStore and fix build
3311 Minor rename of bitmap value to avoid conflict with
3312 Private as a class name.
3316 Minor change: remove old debugging string from mapitest
3318 Fix incorrect header
3320 Remove deprecated mapi_handles API
3323 Initial checkin of some uno (static checker) support
3326 There will be a script to run uno with the right options,
3327 but that requires more work.
3331 Fix OXOMSG-ABORT-SUBMIT return value and return success when expected
3332 error values (MAPI_E_UNABLE_TO_ABORT, ecNoDelSubmitMsg) are encountered.
3334 - Call mapi_object_release in GetDefaultFolder
3335 - Remove pointless references to mapi_object_t
3338 Fix little memory leak.
3342 Fix invalid OpenFolder calls in mapitest modules
3344 Remove references to SaveChanges in doxygen see also statement
3346 - Rename SaveChanges to SaveChangesAttachment (0x25)
3347 - Update SaveChangesAttachment IDL
3348 - Update references to SaveChanges
3350 - Fix the huge memory leak described in Ticket #91
3351 - Rewrite the mapitest NameID test to use the mapi_nameid convenient
3356 - Add mapi_get_errstr auto-generated routine which returns the MAPI
3358 - Add print routine for MAPI retval in mapitest
3359 - Add a color mode (--color) which prints either green or red MAPISTATUS
3360 - Update mapitest modules to use these new routines
3363 Minor API documentation fix.
3369 - Add GetOwningServers (0x42) implementation (IDL + libmapi + mapitest)
3371 - Report and make consistent usage of PropertyProblem in the IDL:
3372 SetProps, DeleteProps and CopyProperties
3374 - Remove unknown field in GetProps and GetPropsAll and replace them
3375 with the correct IDL mapping.
3377 - Add IDL for SetPropertiesNoReplicate (0x79) MAPI call
3379 - Minor typo fix in IMAPIProp.c
3381 Improve CreateMessage request IDL
3383 Improve OpenMessage response IDL
3385 - Add PublicFolderIsGhosted (0x45) MAPI call (IDL + libmapi + mapitest)
3387 - Improve OpenFolder, CreateFolder and OpenPublicFolderByName response
3388 IDL: make these call able to check whether the folder is ghosted or
3391 Revert emsmdb pipe version to the hacked one. Makes mapiproxy work with samba4-alpha5 release.
3393 SeekRow and SeekRowBookmark IDL improved
3395 Improve the SetColumns IDL: remove unknown fields
3399 Minor code convention fix
3401 Check NTSTATUS return value from dcerpc_ndr_request. Prevent mapiproxy
3402 from segfault when invalid dcerpc response is received.
3404 Expose MAPISTATUS error in OXCTABLE-CATEGORY::FreeBookmark.
3405 Requires investigation
3408 Implement GetIdFromLongTermId and GetLongTermIdFromId
3409 functions (ROP:0x43 and 0x44), and associated mapitest.
3411 Documentation typo fix.
3413 Change the QueryNamesFromIDs() call to match
3414 MSDN, including changing the name to QueryNamedProperties().
3416 Also implement mapitest for QueryNamedProperties(),
3417 GetNamesFromIDs() and GetIDsFromNames().
3419 Update torture test to match.
3423 - Build system update: use samba4-alpha5 release with wget method
3424 - introduce 'make samba' and 'make samba-git'
3428 Make sure we have names[] array large enough.
3430 Problem identified using default uno run.
3436 Fix a small errno bug in GetBestBody
3437 Add dump-data and debug options to exchange2mbox
3441 - Move emsmdb interface version back to 0.81 (patch applied in samba4 trunk)
3442 - remove sed hack, modifications applied in samba4 trunk
3443 - update required samba4 git rev required
3450 Minor documentation update: remove deprecated reference to ./bin/smbpython
3452 Fix torture suite entry point name
3453 Fix torture module installation path
3455 - Add implementation for the BestBody algorithm
3456 - Add MAPI_E_NOT_ENOUGH_MEMORY error code
3457 - Remove trailing }}\0 from lzfu code
3458 - Update openchange tools to use GetBestBody rather than
3459 the initial check on PR_MSG_EDITOR_FORMAT
3461 Add a very basic stat module for mapitest: gives a quick overview
3462 of tests which failed at the end of the report.
3464 - Defines a global stream size in mapitest.h
3465 - Decrease stream size from 0x4000 to 0x3000
3466 Sounds like Exchange 2003 SP2 doesn't support 0x4000, return MAPI_E_CALL_FAILED
3471 Fix OC_CHECK_SAMBA_VERSION string
3473 - Move samba4_ver.sh from top dir to script
3474 - update parts of openchange relying on samba4_ver.sh
3476 Add configure check for lib Z
3479 - Temporary fix ldb.pc problem and patch ldb.pc.in
3480 - Update samba4 version to the latest revision
3481 - Add libmapiproxy to svn:ignore proplist
3484 Try a different git revision, just for now.
3488 - Update Samba4 version needed
3489 - Change entry point function from init_module to samba_init_module
3490 - update documentation
3494 Fix calls of ldb_init() as required by newer versions of Samba.
3498 Support newer versions of Samba4.
3502 Add some other standard GUIDs
3510 Use version and soversion in mapiproxy library.
3512 Make modules directory overridable.
3516 Change API as identified on devel mailing list.
3519 After some investigation into an error reported by valgrind, I'm proposing an
3520 API change for the MoveCopyMessages() function.
3522 The signature is currently
3523 enum MAPISTATUS MoveCopyMessages(mapi_object_t *obj_src, mapi_object_t
3524 *obj_dst, mapi_id_t *message_id, bool WantCopy)
3526 The problem is the message_id array. The subtle part is that it needs to be
3527 terminated with a null mapi_id_t*, because of this:
3528 for (request.count = 0; message_id[request.count]; request.count++);
3530 That is a bit error prone - enough so to be wrong in the mapitest.
3532 Now we could just fix the mapitest and document the requirements, or we could
3533 change the signature.
3535 Two ideas for a different signature:
3536 1. We could add a uint16_t count to the signature, that says how long the
3538 2. We could use a better data structure than mapi_id_t*. I'm suggesting
3540 enum MAPISTATUS MoveCopyMessages(mapi_object_t *obj_src,
3541 mapi_object_t *obj_dst,
3542 mapi_id_array_t *message_id,
3547 Add mapitest coverage for CopyTo operations on
3548 folders and attachments, and update API docs.
3550 Also fix one place where we inadvertently used
3551 CopyProps instead of CopyTo...
3555 Typo fixes in comments.
3557 Minor documentation updates.
3559 Clean up created message for SpoolerLockMessage() test.
3563 Update samba4 version test.
3567 Make sure properties are copies into the last valid
3568 location in the extended array (i.e. count-1) not the
3571 Also, make sure we cast the data to a uint8_t for
3572 conversion to boolean.
3574 Also fix compile warning about returning integer instead
3577 We may read up to 0x1000 bytes, so ensure there is
3578 enough room to add the terminating null.
3580 Minor cleanup of the talloc context for FreeBookmark().
3582 Also change around some code to protect things a bit
3583 better against null pointer inputs.
3587 Implement a bit more mapitest for CopyTo (0x39), in
3590 Also make it clean up and report failures properly.
3594 Implement the CopyTo operation (0x39), including initial mapitest.
3595 JK previously committed the IDL for this.
3597 Also make CopyProps (0x67) use an appropriate data structure for
3598 its IDL and update implementation to match.
3602 Minor documentation updates/corrections.
3606 Introduce a default case for MAPI Restriction. In some circumstances -
3607 while Outlook creates an OOF Rules - it sets a PT_SRESTRICT mapi
3608 property tag which value is set to 0xFF. However 0xFF doesn't match
3609 any restriction case.
3613 - Add IDL for OpenEmbeddedMessage (0x46) MAPI call
3615 - Add IDL for ReloadCachedInformation (0x10) MAPI call
3617 - Add IDL for CopyTo (0x39) MAPI call
3619 - Update the Samba4 GIT revision needed to run openchange properly
3621 - import mapiproxy project from mapiproxy branch
3622 - add custom proxypack MAPI call
3623 - remove deprecated dcesrv_exchange_remote
3626 Add missing part of mapitest for SetReadFlags
3628 This should have been part of r578.
3630 mapitest for SetReadFlags
3632 Implement SetReadFlags (operation 0x66).
3634 Also minor API docs fix.
3636 Move some test infrastructure from the oxctable.c module
3637 into the common area.
3639 Fix IDL error for SetReadFlags, and use existing flags
3640 define (MSGFLAGS_READ) instead of creating a new set.
3642 Build fix for relocation of mapiproxy/ to be under the
3643 top level directory (instead of under the utils/
3648 merge from mapiproxy branch:
3649 * ndr_push Logon_req manually
3651 merge from mapiproxy branch:
3652 * Add IDL and server boiler template for EcDoConnectEx (0xA)
3655 * Fix ndr_push_mapi_response code in ndr_mapi.c
3657 * Add the ndr_push_EcDoRpc_MAPI_REPL function in
3658 ndr_mapi.c. Handles special Notify and Pending cases
3660 * Handle op_MAPI_Pending case properly in
3661 ndr_pull_EcDoRpc_MAPI_REPL
3663 * Add code to ndr_push QueryRows in ndr_mapi.c: Do not push any
3664 DATA_BLOB if there is no RowCount
3666 merge from mapiproxy branch:
3667 * Fix GetReceiveFolder [out] IDL
3668 * Fix some naming convention typo
3670 merge from mapiproxy branch:
3671 * Fix SetMessagReadFlag [out] IDL
3673 - Add [flag(NDR_REMAINING)] to SetMessageReadFlag. This is not
3674 perfect, but it will prevent mapiproxy from ndr_pull error while
3675 setting message read flag on public folders messages.
3677 merge from mapiproxy branch:
3678 * Fix CreateMessage [out] IDL
3680 merge from mapiproxy branch:
3681 * rename OpenModeFlags to OpenFolder_OpenModeFlags in OpenFolder
3682 * rewrite OpenMessage [in] IDL and report changes in
3683 libmapi/IStoreFolder.c
3685 merge from mapiproxy branch:
3686 * Add IDL for Pending (0x6e) MAPI call
3687 * Reorder some MAPI calls in EcDoRpc_MAPI_REPL_UNION
3689 - Add SetReadFlags to EcDoRpc_MAPI_{REQ,REPL}_UNION
3691 merge from mapiproxy branch:
3692 * Add IDL for SetSyncNotificationGuid (0x88) MAPI call
3694 merge from mapiproxy branch:
3695 * Add IDL for SyncGetTransferState (0x82) MAPI call
3697 merge from mapiproxy branch:
3698 * Add IDL for SyncImportReadStateChanges (0x80) MAPI call
3700 Note: This IDL is temporary and should be improved after completion of
3701 the merging process.
3703 merge from mapiproxy branch:
3704 * Add IDL for SyncOpenCollector (0x7e) MAPI call
3706 merge from mapiproxy branch:
3707 * Add IDL for DeletePropertiesNoReplicate (0x7a) MAPI call
3709 merge from mapiproxy branch:
3710 * Add IDL for SyncImportMessageMove (0x78) MAPI call
3712 merge from mapiproxy branch:
3713 * Add IDL for SyncUploadStateStreamBegin (0x75) MAPI call
3714 * Add IDL for SyncUploadStateStreamContinue (0x76) MAPI call
3715 * Add IDL for SyncUploadStateStreamEnd (0x77) MAPI call
3717 merge from mapiproxy branch:
3718 * Add IDL for SyncImportDeletes (0x74) MAPI call
3720 merge from mapiproxy branch:
3721 * Add IDL for SyncImportHierarchyChange (0x73) MAPI call
3723 merge from mapiproxy branch:
3724 * Add IDL for SyncImportMessageChange (0x72) MAPI call
3726 merge from mapiproxy branch:
3727 * Add IDL for SyncConfigure (0x70) MAPI call
3729 merge from mapiproxy branch:
3730 * Add IDL for RegisterOptions (0x6f) MAPI call
3732 Note: This call is undocumented in Microsoft documentation, but MSDN
3733 RegisterOptions function generates this call on the wire.
3735 merge from mapiproxy branch:
3736 * Add IDL for Progress (0x50) MAPI call
3738 merge from mapiproxy branch:
3739 * Add IDL for FastTransferSourceGetBuffer (0x4a) MAPI call
3741 merge from mapiproxy branch:
3742 * Add IDL for GetPerUserLongTermIds (0x60) MAPI call
3743 * Add IDL for GetPerUserGuid (0x61) MAPI call
3744 * Add IDL for ReadPerUserInformation (0x63) MAPI call
3746 merge from mapiproxy branch:
3747 * Add IDL for LongTermIdFromId (0x43) MAPI call
3748 * Add IDL for IdFromLongTermId (0x44) MAPI call
3750 merge from mapiproxy branch:
3751 * Add IDL for ModifyRules (0x41) MAPI call
3753 merge from mapiproxy branch:
3754 * Add PT_SRESTRICT support in mapi_SPropValue_CTR
3756 * Add PT_ACTIONS and RuleAction support in mapi_SPropValue_CTR
3758 * Fix mapi_SNotRestriction NDR push routine - add a wrapper to
3759 work around the no-pointer deep recursion pb and remove
3760 existing nopull,nopush,noprint code from ndr_mapi.c
3762 * Fix mapi_SComment_Restriction IDL
3765 - Introduce PT_MV_UNICODE support in mapi_SPropValue_CTR (IDL only)
3766 - use mapi_LPWSTR for PT_MV_UNICODE
3767 - rename mapi_LPWSTR structure to mapi_name in Kind structure and
3768 change its field names.
3770 - Fix emsmdb version
3771 - Change MAPI opnum enum identation -- Helps to fine down merging from
3777 Minor API documentation fixes.
3779 Update label to reflect SetReadFlags -> SetMessageReadFlag
3782 This should have been part of r529 - missed it.
3786 merging from mapiproxy branch:
3787 - Fix MV_UNICODE_STRUCT and unicode strings
3788 - Keep LPWSTR for exchange_nsp and move from LPWSTR to
3789 mapi_LPWSTR for exchange_emsmdb
3790 - Add the NspiGetTemplateInfo IDL
3791 - Fix the NspiUpdateStat IDL
3793 Fix build: SetMessageReadFlag function name was not propagated in the
3797 Initial merge of changes for rename of SetReadFlags to
3798 SetMessageReadFlags (op 0x11) and IDL for SetReadFlags
3801 Use private_data instead of private, for C++ happiness.
3803 Minor cleanup. Using "try" confuses my c++ compiler...
3805 This is really part of r525. It moved to IMAPITable.c
3807 Update the table operations:
3808 - implement ExpandRow and CollapseRow
3809 - implement GetCollapseState and SetCollapseState
3810 - add mapitest coverage for the above, plus the Restrict call
3811 - implement ResetTable
3812 - implement FreeBookmark
3813 - add mapitest coverage for SRowSet parsing code
3815 - various API documentation bits
3818 Use right directory for samba4_ver.sh script.
3820 Use common location for Samba 4 git revision.
3824 Use PT_ERROR where appropriate.
3826 Update the SRowSet parser, fixing breakage I introduced.
3830 Update examples to reflect recent API changes.
3833 Don't rely on absolute file paths since the distribution may be installing
3836 make scripts executable.
3840 Avoid segfaulting if you ask for a specific test or tests and
3841 forgot to start the server.
3844 [bradh@conferta trunk]$ ./bin/mapitest --mapi-calls=OXCTABLE-CATEGORY --mapi-calls=OXCTABLE-RESTRICT --mapi-calls=NOSERVER-LZFU
3845 Failed to connect host 192.168.11.77 on port 135 - NT_STATUS_HOST_UNREACHABLE
3846 Failed to connect host 192.168.11.77 (192.168.11.77) on port 135 - NT_STATUS_HOST_UNREACHABLE.
3847 MapiLogonEx : MAPI_E_RESERVED (0xFFFFFFFF)
3848 #############################[mapitest report]#################################
3849 [*] Date : Sun May 25 11:45:29 2008
3850 [*] Confidential mode : [no]
3851 [*] Samba Information : 4.0.0alpha4-GIT-44d8b70
3852 [*] OpenChange Information : 0.8-SVN-build-510 (Romulus)
3854 [*] System Information :
3856 Kernel release : 2.6.23.17-88.fc7
3858 ###############################################################################
3862 [TEST] NOSERVER-LZFU
3863 ------------------------------------------------------------------------
3864 * uncompress_rtf2 : 0x00000000
3865 * uncompress_rtf2 : PASSED
3866 ------------------------------------------------------------------------
3867 [RESULT] NOSERVER-LZFU: [SUCCESS]
3868 ========================================================================
3870 [*] OXCTABLE-RESTRICT
3871 Server is offline, skipping test: "OXCTABLE-RESTRICT"
3872 [*] OXCTABLE-CATEGORY
3873 Server is offline, skipping test: "OXCTABLE-CATEGORY"
3877 ignores objects that contain invalid handlers in mapi_object_release().
3879 Patch by Alan Alvarez. Compile tested, passes mapitest on SBS2003.
3883 Fix API documentation to match signature.
3887 Update QueryRows IDL and implementation to match
3890 The main work here is reworking the SRowSet parsing
3895 Typo fix - allow cleanup to work properly.
3899 Make sure it has a return value.
3903 Rename GetColumns remote operation to GetColumnsAll, and
3904 fix up IDL and implementation to match.
3906 Add some more unit test coverage, and pretty-up the
3909 Fix up breakage introduced in r493.
3912 Make sure nagios directory gets created if it didn't exist yet.
3916 Refactor the unit tests.
3918 Extract out the setup and some of the cleanup code.
3922 - Update openchange code to work with Samba4 4.0.0alpha4-GIT-44d8b70
3923 - Use event_context structure
3924 - update installsamba4.sh script to revert to this revision.
3925 - update torture modulesdir reference
3928 Look a little bit harder for the Samba installation.
3932 - Add GetLocalReplicaIds MAPI call (IDL + implementation + mapitest)
3933 - Add OXCFXICS mapitest module
3937 - Fix "the very secret" openchange coding style
3938 - Add Copyright for our humble new libmapi developer ;-)
3941 Implement the CopyProperties operation, including
3942 a mapitest for this.
3946 - Add TransportSend MAPI call (IDL + implementation + mapitest). This
3947 code maybe needs some review regarding memory.
3949 - Add the GetTransportFolder MAPI call (IDL + implementation +
3952 - Add SpoolerLockMessage MAPI call (IDL + implementation + mapitest)
3954 - Add SetSpooler MAPI call (IDL + implementation + mapitest)
3956 - Add GetRulesTable (IDL + implementation + mapitest)
3957 - Add the OXORULE mapitest suite
3963 Make sure config.mk is the last file removed during distclean.
3967 - Add the Abort MAPI call (IDL + implementation)
3969 OpenChange doesn't support yet asynchronous operation which explains
3970 why no associated mapitest test has been implemented. This should be
3973 - Add the MoveFolder MAPI call (IDL + implementation + mapitest)
3974 - Fix some typo in mapitest doxygen
3976 - Add MoveFolder MAPI call (IDL + implementation + mapitest)
3977 - Fix some doxygen stuff
3978 - add a common function within mapitest which looks for a folder name
3979 within a container and return the opened folder object on success.
3981 Add auto-generated Doxyfile to the svn ignore list
3983 - Add AbortSubmit MAPI call (IDL + implementation + mapitest)
3985 - Uninitialize MAPI and general memory context at the end of mapitest
3988 Clean up / flush the stream after use.
3990 Saves a bit more "still reachable" in valgrind too.
3994 - Rename CopyMessages to MoveCopyMessages
3995 - Improve IDL + implementation and mapitest added
3998 Make sure the version shown for mapitest documentation
3999 is automatically set to match the package version.
4001 complete the rest of the API documentation autonumbering.
4004 Remove duplicate use of $(SHLIBEXT).
4006 Avoid parallel builds for now.
4010 Fix GetContentsTable binding in perl swig
4012 - Improve the GetHierarchyTable and GetContentsTable IDL and public
4013 IDL implementation (new parameters in,out)
4016 Initial part of automatic list numbering for doxygen comments.
4018 This doesn't work correctly with the current apidocs.css, which
4019 turns the list numbers into bullet points for reasons I don't
4024 - Improve the DeleteMessages IDL request
4026 - Update libmapi version from 0.7 to 0.8
4028 - Public API change for the GetReceiveFolder function; now takes a
4029 message class as 3rd parameter.
4031 - Improve GetSearchCriteria request IDL (unknown removed)
4032 - update libmapi copyright headers 2007 -> 2007-2008.
4034 - Improve the SubmitMessage IDL
4035 - minor indentation fixed in IMessage.c
4037 - Add CopyToStream MAPI call (IDL + implementation + mapitest)
4039 - Add SeekStream MAPI call (IDL + implementation + mapitest)
4040 - Add SetStreamSize MAPI call (IDL + implementation + mapitest)
4042 - Add CommitStream MAPI call (IDL + implementation + mapitest)
4043 - Add GetStreamSize MAPI call (IDL + implementation + mapitest)
4044 - refactor the stream test to include all stream related operations
4045 - add a common function which generates a random ASCII blob of data
4048 Add doxygen support for the mapitest examples.
4051 Allow cleaning individual parts.
4055 - Add GetStatus call (IDL + implementation + mapitest)
4057 - Fix format string problem in mapitest headers
4059 Run offline suites by default.
4061 - Introduce the online/offline mode for suite
4062 - Fix Exchange headers print bug when server is offline
4063 - reset errno to 0 before running new test
4066 Install the libmapiadmin.h header.
4068 Fix a compile-time warning on amd64, for the second
4069 argument to the getline() call - incompatible pointer
4072 I'm assuming that size_t is equivalent to uint32_t
4073 on a 32-bit architecture, but not on a 64-bit arch.
4075 A quick test showed no difference in actual output.
4078 Remove bashisms in installsamba4.sh
4082 - Add ReadRecipients MAPI call (IDL + implementation + mapitest)
4083 - Improve some ModifyRecipients and Recipients structure naming
4087 - Add RemoveAllRecipients call (IDL + implementation + mapitest)
4089 - Add OpenPublicFolderByName call added (IDL and implementation).
4091 - Note: the reply IDL doesn't handle Server and ServerCount yet.
4093 - Note: this call only refers to NNTP folders (e.g: folders located
4094 within "Internet Newsgroups". If developers use this call within "All
4095 Public Folders", then the call with return MAPI_E_NOT_FOUND.
4097 - Call not added to mapitest cause it require RightsAuthor permissions
4098 on Internet Newsgroups which is not the case by default.
4100 - dump-data and debug options added to mapitest
4101 - FOLDER suite renamed to OXCFOLD (naming convention)
4103 Rename module folder to oxcfold
4105 Replace the existing mapitest tool with a new implementation. It is
4106 less complete but more modular.
4109 Add proto headers to ignore file.
4113 OpenFolder request: replace unknown field with OpenModeFlags
4115 - Rename 0xFE opnum from OpenMsgStore to Logon
4116 - Update the Logon request IDL
4119 Add BEGIN_DECLS for private_proto.h.
4121 Add forgotten part of rev435.
4123 Add unit test framework for compressed RTF decoding.
4125 Refactor lzfu.c to improve testability.
4129 Fix openchangeclient --mailbox --pf with wasn't launched anymore due
4130 to some incorrect sanity check tests.
4132 - Remove deprecated fuzzer_msgstore torture test
4133 - replace mapi_flags with logon_id in EcDoRpc_MAPI_REQ
4137 A couple of minor fixes to make it read better.
4140 properly clean up sofiles
4142 Import exchange nagios check script by Bill Edmunds.
4144 Add support for creating libocpf soname symlink.
4146 Use standard include for uint64_t definition.
4148 Cleanup talloc and tdb before building samba4.
4152 Check for ocpf_set_Recipients retval (MAPI_E_NOT_FOUND)
4154 - Reset ocpf to NULL after release so the ocpf_init/release couple can be called more than once.
4155 - Sanity check on recipient, avoid parsing if no recipient is set. Return MAPI_E_NOT_FOUND instead.
4157 Add reference to the ocpf lib within the pc file.
4161 Remove duplicate SWIG instructions (already covered by stdint.i).
4163 Ignore files created by swig.
4165 Use config.mk in swig/perl/Makefile.
4167 Allow sambaprefix and prefix to be different. Allow building with unknown
4168 Samba git revisions (will still warn though).
4170 Add --with-samba argument to configure so samba and openchange can be installed in different directories.
4174 Add domain to the mapiprofile dump output.
4176 Fix OpenMessage IDL and GetRecipientTable fetched data
4178 -This line, and those below, will be ignored--
4181 M trunk/exchange.idl
4182 M trunk/libmapi/IStoreFolder.c
4183 M trunk/libmapi/emsmdb.c
4184 M trunk/libmapi/IMessage.c
4188 Fix typo, change samba-config -> samba-hostconfig.
4192 - Add openchangepfadmin to make install
4193 - Add openchangemapidump and locale_codepage to make clean
4197 Merge the samba4-latest branch.
4201 Revert so version number to 0.7
4203 Fix Perl bindings: update mapidump_message
4205 ** Start libmapi-0.8 ROMULUS development **
4207 Add ChangeLog and apidocs to the releases
4209 - Delete unmaintained regression suite
4210 - Fix typo error in torture-clean rule
4212 Add modified release script originally from abartlett/samba4
4214 - Check for specific Samba4 git revision in configure.ac
4215 - Prefix locale functions with lcid and make them _PUBLIC_
4218 API documentation update.
4225 Add installation script for samba4
4227 - Apply the nspi pointer patch - make openchange works with
4228 samba4-alpha3 git 41309dc
4233 Move the top level API documentation to an "overview"
4234 section and add a redirect to that overview.
4236 This keeps the doxygen output more nicely separated for
4239 Also, generate the man pages where the install expects
4244 - Fix strsep bug in openchangeclient
4245 - Add RECIPIENT support to libocpf
4247 - escape/unescape strings support added
4248 - PT_MV_STRING8 type added to OCPF write API
4252 - return MAPI_E_NOT_FOUND if NspiGetMatches doesn't return any results
4253 (based upon patch from lofi@mountproc.org)
4254 - makes the workstation parameter of mapiprofile optional (use
4255 gethostname if not defined by the user on command line)
4257 - Fix an allocation memory problem in cast_SPropValue
4258 - update svn:ignore proplist
4262 Update the documentation build so it keeps generating an embedded
4263 website in with apidocs/html as root directory.
4265 - Add support for PT_UNICODE and PT_SHORT to libocpf
4266 - Initial implementation of the libocpf write API
4267 - Update libocpf documentation
4268 - add --ocpf-dump option in openchangeclient
4269 - Fix realdistclean rules for server
4270 - add cast_SPropValue function to libmapi/property.c which cast
4271 mapi_SPropValue to SPropValue
4274 Split API documentation into two separate sections - one
4275 for libmapi and one for libocpf.
4277 Also add in a top level intro page.
4281 New build system which gathers a list of things that can be built with
4282 the libraries/utilities the user has installed and build that when
4287 Add missing allocation for OLEGUID
4289 --ocpf-syntax doesn't require MAPI to be initialized. Furthermore
4290 makes ocpf-syntax "exclusive" (quit after performing the operation).
4293 r371 was bad. What was I thinking with that nonsense!
4295 Revert to something sane.
4297 Make the ./bin/ directory if it doesn't exist.
4299 This should resolve ticket #33.
4303 Improve language handling when creating profiles.
4305 You can now get a list of valid languages and use either
4306 the language code ID or the language name to specify what
4307 language later versions of Exchange should reply with.
4309 Typo fix - duplicate ; at the end of the structure.
4311 Match format to unsigned int argument.
4313 Make the format specifier match the unsigned argument.
4317 propset svn:ignore update
4319 Update propset svn:ignore on doc/examples and libocpf targets
4321 - Fix ticket #29: http://trac.openchange.org/ticket/29
4323 - use access(2) to see if the database already exists
4324 - test if the profile already exists prior trying to add it
4325 - add descriptive error messages
4326 - catch CTRL-C signal and run a profile deletion routine
4329 Update API documentation for ocpf_nproperty_add().
4335 Fix mapidump_message call parameters
4339 Add fid/mid parameters to mapidump_message and changed
4340 openchangeclient_fetchitems to reflect these changes.
4342 Patch from Brad Hards <bradh@frogmouth.net>:
4343 updates the OCPF doxygen file.
4345 Patch from Brad Hards <bradh@frogmouth.net>:
4346 adds the doc/examples into the build system and enables make examples.
4348 Patch From Brad Hards, <bradh@frogmouth.net>:
4349 API documentation update and minor fix for the error value change.
4357 - Add PT_BINARY property support to OCP
4358 - Add stream support to OCPF for large PT_BINARY blobs.
4359 - Fix a bug which prevented from having no/empty PROPERTY or NPROPERTY
4364 - Prevent from assigning a value which type doesn't match with
4366 - Add missing substitution variable support for some named properties
4368 - Improve sample_appointment.ocpf example
4369 - Add PT_MV_STRING8 keyword to the list of supported property type
4374 Improve OCPF PT_MV_STRING8 support.
4376 - Initial revision for libocpf and its documentation
4377 - YACC support added to the build system
4378 - custom lid and string support in mapi_nameid
4379 - lookup functions added for OOM, lid and string
4380 - OCPF commands added to openchangeclient (ocpf-file, ocpf-syntax,
4382 - PR_FID displayed in openchangeclient --mailbox
4383 - PT_MV_STRING8 support added to cast_mapi_SPropValue
4387 Patch from Brad Hards <bradh@frogmouth.net>:
4388 updates code to build with current API
4390 Patch from Brad Hards <bradh@frogmouth.net>:
4391 little update for some API dox
4395 - Add --update option to openchangeclient and allow users to modify
4396 existing messages (calendar, task, contact, note)
4397 - Add --delete option to openchangeclient and allow users to delete
4398 existing messages (calendar, task, contact, note)
4399 - Add some folder/message unique ID to mapidump outputs and send*
4400 openchangeclient functions.
4401 - Fix a bug in set_SPropValue: add sanity check on unicode
4402 string. Thanks to Suman Manjunath for this patch.
4403 - Fix mapidump_task function and identifiers of named properties used.
4407 Fix missing sanity check on priority
4409 Fix a bug in openchangeclient when tasks are created without body
4411 private flag added to openchangeclient appointments
4413 Fix folder IDs problem for Exchange 2007 SP1
4417 Fix names IDL against Samba4 4.0.0alpha3-GIT-41309dc
4421 - Fix a bug in IStoreFolder.c:OpenMessage which was also affecting
4422 GetRecipientTable. We were extending SPropTagArray prior calling
4423 emsmdb_get_SRow. This was causing ndr_pull_error in OpenMessage_repl
4424 and erroneous data to be inserted in the SRow.
4426 - Fix libmapi/socket/interface.c:
4427 - Use the latest version from Samba4 which removes reference to
4429 - Moves struct interface declaration to netif.h
4430 - Report changes to emsmdb.c notification functions.
4432 - Change GetGALTable prototype to match general libmapi policy. Remove
4433 the usage of bool and replace it with uint8_t. Possible values added
4438 - Improve NspiQueryRows IDL and implementation
4439 - Add GetGALTable implementation: fetch all the Global Address List
4441 - Add --userlist option to openchangeclient
4442 - Add a convenient and basic dumping function for Global Address List
4445 - Improve OpenMessage reply IDL
4446 - Fetch mapi recipients from OpenMessage reply
4447 - Add GetRecipientTable convenient function
4448 - Add OPENCHANGE-MAPI-RECIPIENT torture test to test
4449 GetRecipientTable implementation.
4450 - Add convenient SPropTagArray_add function
4451 - Add internal emsmdb_get_SRow routine
4455 Patch from Suman Manjunath <msuman@novell.com>:
4457 - Adds named-properties which define recurrence patterns for
4458 appointment and task.
4459 - Adds named properties for appointment timezone
4461 - Fix the SNotRestriction IDL and write custom push,pull,print
4463 - Add 2 new MAPI calls to the IDL:
4464 * GetSearchCriteria,
4466 - add sample {Get,Set}SearchCriteria torture test
4467 - add convenient mapi_id_array implementation
4468 - add GetDefaultFolder support for CommonView and Finder folders
4472 Make sure directory exists.
4476 - Fix tiny 'nail down samba4 version' bug
4477 - update the minimal Samba4 required version
4479 - Add FindRow call to the IDL
4480 - Improve mapi_Restriction support
4481 - Remove deprecated ndr_print_QueryRows function
4482 - Add a print function for fuzzyLevel
4483 - Add preliminary FindRow implementation test to MAPI-RESTRICTIONS
4485 - Add couple of new MAPI tags to mapi-properties
4486 - change initial bookmark index to 3
4490 - Add 2 new MAPI calls to the IDL and mapitest:
4492 * GetReceiveFolderTable
4494 - Fix a bug in the SortTable test when no messages are returned by
4497 - Add SeekRowApprox to the IDL and mapitest
4498 - Fix some doxygen typo
4500 - New calls added to the IDL, torture suite and mapitest:
4503 - Internal mapi_object_bookmark_t implementation added to
4505 - SBinary_short default ndr_print function changed to custom
4509 Temporary fixes unexpected segfault in SortTable test. Emails sent
4510 during the Submit test have sometimes not yet been dispatched when the
4511 SortTable test begins. This fix adds a sleep(1) and an arbitrary
4512 number of attempts (5).
4514 Add 2 new MAPI calls to the IDL and libmapi:
4518 Tests for SortTable added to mapitest and the torture suite
4519 Test for AddressTypes added to mapitest.
4523 Fix perl bindings and fetchmail test
4525 2 new MAPI call added to the IDL and mapitest:
4531 - Add DeleteAttach MAPI call
4532 - Add new mapi unit tests:
4536 * GetAttachmentTable
4538 - Update mapitest README
4539 - Add some convenient functions to mapitest_common.c
4543 Add a preliminary draft of the mapitest standalone MAPI test suite.
4549 - Fix the build with the latest Samba4 version.
4551 - Add a basic libmapi/version.h auto-generated
4552 file (based on Samba4 one)
4553 - Remove some warnings when compiling the utf8
4555 - Add a emsmdb_info structure to fetch some
4556 information from the Exchange server
4558 WARNING: Please note that EMSABP is definitely broken and
4559 requires a review and update.
4562 DESTDIR should never get into any source files, that would defeat its purpose.
4566 Fix the torture suite.
4570 provide extra required argument.
4572 Store a loadparm context in the global mapi context.
4574 Deal with samba version.h's that don't contain the Subversion revision.
4578 Use SWIG-provided typemaps for stdint.
4582 Fix Content-Type field in exchange2mbox
4583 Reported by Yuriy Filatov <yuriy.filatov@gmail.com>
4587 - Improve the CreateMessage IDL
4588 - Add new parameters to IMAPIFolder CreateMessage libmapi function
4589 - Add --mkdir --rmdir options to openchangeclient
4590 - Update the CreateFolder API and openchangeclient documentation
4591 - Fix CreateFolder calls in openchange tools and torture suite
4592 - Fix gendb_search warning
4596 Add new PSETID_Address named properties
4598 Fix a few code convention typos
4600 Patch from Suman Manjunath <msuman@novell.com> applied:
4601 converts a 'struct timeval' to 'NTTIME'.
4602 minor extension of 'set_SPropValue_proptag', used while setting PT_SYSTIME properties.
4606 update Samba4 first revision to 26100
4609 Cope with ndr updates.
4613 Patch from Brad Hards: Fix possible Heap overflow in lzfu code
4617 Fix profile creation in a clustered Exchange 2007 environment.
4621 Fix QueryColumns req size.
4625 ** Start libmapi-0.7 PHASER development **
4627 add --dump-data option to mapiprofile for debugging purpose
4631 openchangepfadmin (1) man page added
4633 Store messageID in the object when SaveChangesMessage is called
4635 Nail down Samba4 version for libmapi-0.6
4639 - Add PR_MSG_EDITOR_FORMAT property to the sendmail operation
4640 - Fix body dump bug when PR_MSG_EDITOR_FORMAT property is missing (default set to PLAINTEXT)
4641 - Continue to process the mailbox when a problem is encountered with mesage contents (not attachment)
4642 - Fix a typo bug in openchangeclient body help string
4644 Update doxygen section
4648 - Add doxygen man (3) pages to installman and uninstallman rules
4649 - do not run doxygen if apidocs already exists
4653 Move documentation to doxygen
4657 Add convenient date related functions for implementors:
4658 returns a timeval struct matching a PT_SYSTIME property
4659 for improved date manipulation in 3rd party softwares
4663 Fix build to work with latest Samba4 revision (4.0.0alpha2-SVN-build-25722)
4665 Fix make realdistclean when swig perl is enabled
4667 Fix swig perl bindins compilation: move *.o to *.po
4669 use talloc_memdup to copy const data in the body DATA_BLOB
4670 Should only provide valid pointer to talloc_free
4674 Fix the DeleteMessages [out] IDL.
4676 The remaining bytes were not part of DeleteMessages but
4677 MAPI notification (0x2a)
4681 - Add RTF support in exchange2mbox
4682 - Use openchange-tools public functions
4683 - Replace GetPropsAll calls with GetProps
4686 * Use GetProps rather than GetPropsAll for message dump
4687 * Rely on PR_MSG_EDITOR_FORMAT to select the type of body
4688 * Open a stream for PR_BODY and PR_HTML if the size exceeds max property size
4690 -This line, and those below, will be ignored--
4693 A trunk/utils/openchange-tools.c
4694 M trunk/utils/openchangeclient.c
4695 M trunk/utils/openchange-tools.h
4696 M trunk/utils/openchangeclient.h
4697 M trunk/libmapi/mapidefs.h
4705 Remove useless svn:ignore
4708 Add WrapCompressedRTFStream function for PR_RTF_COMPRESSED content.
4710 Original lzfu decompress routine fetched from libpst-0.5.2
4712 make enum MAPISTATUS variables naming uniform in libmapi
4716 Add PT_CLSID case to get_SPropValue_data
4718 Add/Fix pull property support for PT_UNICODE and PT_CLSID (used by GetProps)
4720 Patch from Brad Hards <bradh@frogmouth.net>:
4721 Fix compilation for x86_64 platforms.
4725 More svn:ignore updates
4727 Update of svn:ignore
4731 added the IDL license
4733 Convert OpenChange to GPLv3
4735 - Add .po files to make clean
4736 - Fix a couple of warnings in the utf8 conversion lexer
4737 - Prefer long filenames to truncated one for attachments in openchangeclient
4741 Prevent exchange2mbox from segfault when PR_MESSAGE_DELIVERY_DATE is unset
4743 Add PT_CLSID and PT_MV_CLSID support to the IDL
4745 - Add new named properties
4746 - Convenient function for MNID_STRING props lookup added
4749 Make .po a recognized suffix.
4753 Use -fPIC for library objects.
4757 - Rename GetAllNamesFromIDs to QueryNamesFromIDs (better naming)
4758 - fix SPropValue_CTR boolean to uint8_t in the IDL and emsmdb.c
4760 - add mapi_nameid convenient interface and headers
4761 - mapi-named-properties populated, parser added to mparse.pl, file
4762 added to the build system
4764 - remove any incorrect reference to named properties in openchange
4767 - remove deprecated libmapi/mapi.h file
4768 - remove unused ulFlag parameter from IProfAdmin functions
4769 - remove unused memory context from libmapi/x500.c
4771 - support sendnote operation in openchangeclient
4772 - optimize check/list oc_element functions in openchangeclient
4774 - update swig interface
4778 - New MAPI calls: Named properties support
4781 * GetAllNamesFromIDs
4783 - Modified MAPI calls:
4786 These calls now have more granularity in libmapi with flags support
4788 - sample mapi-named-properties file introduced in libmapi/conf
4790 - Torture test suite:
4791 * suite temporary fixed (import torture_rpc_* functions from
4793 * torture_namedprops test added
4795 - SWIG Perl bindings fixed according to changes described above
4796 - minor improvements in libmapi/mapidump.c
4800 - Decrease MAX_READ_SIZE to 0x1000
4801 - Clean-up Read/WritreStream related code
4802 - add dump-data option to openchangepfadmin (debugging purpose)
4807 - remove reference to core/nterr.h
4808 - add global_loadparm reference where missing
4809 - add reference to core/error.h where needed
4812 Improve output during build.
4816 Pass loadparm contexts, should fix the build with newer Samba revisions.
4820 - WriteStream API changed: now returns the number of bytes written
4821 - WriteStream man page updated
4822 - 16 bytes extra-data bug fixed when sending attachments in openchangeclient
4823 - Set open mode to 0600 when attachments are stored on the filesystem
4828 Fix preliminary Perl bindings so it works with Samba4 alpha2
4829 and latest libmapi revision.
4831 Patch from Andrew Gaylard <ag@computer.org>:
4833 - When calling openchangeclient with the --dump-data switch, it will
4834 dump core, since the global_mapi_ctx pointer isn't initialised yet.
4835 The fix is to wait until it's set before accessing it.
4837 Patch from Andrew Gaylard <ag@computer.org>:
4838 - Leaving any blank lines before .TH directives appears to cause a blank page
4839 to be output when converting man pages to DVI files (which is a step to converting
4840 them to PDF). The following patch remove the blank line above the .TH in each man page file.
4842 - mapiprofile doesn't understand the -A switch, as mentioned in it's man page.
4847 - Add objectClass to the object: container, message or attachment
4848 - Rename content to message in openchangebackup functions
4849 - add objectClass parameter to ocb_record_init
4853 - Move debug options to their correct location (after MAPIInitialize)
4854 - Improve code related to LDB transactions
4855 - Add convenient error checking macros
4859 - Add preliminary openchangemapidump draft
4860 - Fix lp_parm_* 1st parameter in the torture suite
4861 - New functions in property.c for MAPI data retrieval
4865 Use configure definition for mandir.
4869 Activate debugs this time
4871 Replaced remaining gotos with MAPI_RETVAL_IF so errno is set correctly
4873 MAPI_RETVAL_IF missing ";" could cause surprises ;-)
4875 Add error check for samr call.
4876 set errno with MAPI_RETVAL_IF.
4880 Make required packaged more clear (LinuxMagazin input)
4884 Remove invalid comment.
4888 - Clean-up function prototypes
4889 - Dump email when NEWMAIL notification is received
4893 Proper dependencies.
4895 Don't regenerate proto headers unless necessary.
4899 Use install for installing files/directories.
4901 Actually use replacement variable for libmagic.
4905 Remove forgotten BOOL
4907 Remove mapi_session pointer in mapi_objects
4908 Add public function to IProfAdmin: retrieve default ldif path location outside the OC tree
4912 Prevent users from creation of *undeletable* folders in Outlook and
4913 perform sanity check on dirclass + display possible values.
4915 Provides a way to modify Default and Anonymous permissions for a given folder.
4917 Fix errno in getdir function + add sanity check on opt_rmdir
4919 - Fix a memory related bug in mapiadmin_add_user
4920 - Add latest howto.txt modifications from Dan
4922 - Fix bug in *UserPermission function: return when user is not found
4923 - Add sanity checks to mapi_object API functions
4924 - mapi_object_release reset errno to 0: need to release object
4925 after displaying the potential error message.
4927 Fix a mapidump_appointment bug
4928 Add PF folder support to fetch-items operation
4932 openchangeclient now support send/read/delete operation on custom PF directories.
4934 - Add libmapiadmin library draft: Add/Remove Exchange user
4935 - openchangepfadmin tool added: Public Folders management
4936 - Add Sanity check to CreateFolder
4941 Fix last references to BOOL, True and False.
4943 Fix more references to BOOL, False and True.
4945 Use standard type and values for booleans since Samba no longer exports
4946 BOOL, True and False.
4950 - Add OpenPublicFolder function to libmapi, Open Public Folder store
4951 - change torture suite API to match latest Samba4 pidl changes
4952 - utf8_convert regexp improved
4953 - minor changes: printf to DEBUG
4954 - howto.txt patch from Dan included
4955 - Samba4 torture code related to user account creation included in the
4960 Fix segmentation fault when running update prior populating the database.
4964 Remove obsolete file from the torture suite
4966 - Add Exchange Administration test to the torture suite: Create Exchange user
4968 Dan update on howto.txt
4972 - Add Exchange ACLs support to MAPI library
4973 - Add 2 new MAPI opnum: GetTable and ModifyTable
4974 - Improve mapidump functions
4978 - Improve aclocal check in autogen.sh
4979 - Fix flex binary detection in configure.ac
4987 Create libmapi.so symlink
4991 Fix mandir installation path
4992 Add ldconfig intructions to openchange installation documentation
4998 RES_AND and RES_OR preliminary implementation.
5002 - doc patch from Brad Hards
5003 - rename PROFILE_NOPASSWORD to OC_PROFILE_NOPASSWORD
5004 - fix a warning in property.c
5008 Add some 'const' (fixes compile warnings).
5010 Use sonames (required for the Debian packages).
5012 Add .bzrignore file.
5014 Update version number and use globally defined version number in libmapi.pc.
5018 - Add IDL implementation for restrictions Content, Property,
5019 CompareProps, Bitmask, Size, Exist.
5020 - Add Restrict MAPI call handling the restrictions above
5021 - OPENCHANGE-MAPI-RESTRICTIONS torture test added to the suite.
5022 - convenient sendmail function added to mapi_common.c
5023 - get property size function for mapi_SPropValue added to property.c
5025 test --This line, and those below, will be ignored--
5029 M torture/openchange.c
5030 A torture/mapi_restrictions.c
5031 M torture/mapi_common.c
5032 M libmapi/property.c
5033 M libmapi/IMAPITable.c
5037 Documentation update: Perl bindings installation
5041 - Add mapitags and mapicode support to Perl SWIG bindings
5042 - SPropTagArray support
5043 - SRowSet preliminary support
5044 - new constructor/destructor for mapi objects
5048 - IProfAdmin patch applied: having password outside of the profile
5050 - Perl bindings draft added to the trunk and to the build system:
5051 --enable-swig-perl=yes
5053 - datarootdir fixed in libmapi.pc.in
5057 - Add CopyMessages IDL and COPYMAIL torture implementation
5058 - Fix man page install dir according to latest Samba4 changes
5059 - Add datarootdir var to libmapi.pc.in and fix configure warning
5063 convenient function which retrieve a value from a SPropValue array
5064 given its property tag name, otherwise NULL
5068 Patch from Brad Hards <bradh@frogmouth.net>:
5069 openchangeclient man page updated
5071 - Add Windows UTF8 to classic UTF8 conversion through a lexer
5072 - openchangeclient --mailbox option changed to use it
5073 - flex and bison support added to configure.ac
5074 - windows_to_utf8 function added: wrapper over yyparse_utf8 routine
5078 - features added to openchangeclient:
5079 * --send-appointment
5083 - openchangeclient man page updated
5084 - new properties added to mapi-properties
5086 - Add man pages for simple_mapi.c functions:
5088 * GetFolderItemsCount
5090 - Remove deprecated functions from IMsgStore.c
5091 - Update man pages documentation
5093 Fix install rule in Makefile: add missing headers
5094 Move callback retval from uint32_t to int
5096 Fix notification callback retval
5098 - Advise opnum added to the IDL
5099 - Parts of the Notify response IDL implementation
5100 - Add Notification support to libmapi
5101 - Add --notifications option to openchangeclient
5105 Patch from Brad Hards <bradh@frogmouth.net>:
5106 - PR_BUSINESS_FAX_NUMBER
5107 - improves the information provided on a contact by
5112 - Fix the release call in,out
5113 - Call Release from mapi_release_object
5114 - Add sanity check to OpenMsgStore
5115 - clean up parts of the mapi_newmail test
5117 EcDoDisconnect code now sounds to work properly
5118 Tested against Exchange 2000 / Exchange 2003
5120 - Fix SpropValue property pull problem when GetProps layout is set
5121 - Add a dumpdata boolean to mapi_ctx_t so tools can dump hex data
5122 - Add PR_CONTAINER_CLASS fetch to openchangeclient --mailbox
5123 - Add debuglevel and dumpdata options support to openchangeclient
5127 - Remove useless memory allocation in mapidump.c
5128 - Improve mapidump_appointment
5129 - Add sample mapidump_note
5130 - Add --fetchitems option to openchangeclient:
5131 This command offers an easy way to fetch calendar, contacts,
5132 tasks, notes and mails from the Exchange server.
5133 - Add IPF container class defines to mapidefs.h
5134 - Add and Fix property tags
5138 - Commit the EcDoRpc max_data patch proposed on the devel list
5139 - Clean up folders related functions from the torture suite
5140 (GetDefaultFolder makes this code obsolete)
5144 Add the --mailbox option to openchangeclient which recursively
5145 lists the full mailbox folder hierarchy
5147 - Add PT_SYSTTIME support to get_SPropValue_data
5148 - Add mapidump_SPropValue_date dumping function
5149 - Add PT_SYSTIME support to mapidump_SPropValue
5151 - Add multi-valued SBinary_short support to mapi_SPropValue_CTR in the
5154 - Add GetDefaultFolder implementation to simple_mapi.c. This function
5155 provides a convenient way to retrieve default folders ID. const
5156 olFolder values are stored in libmapi/mapidefs.h
5158 - Modify the torture test suite to reflect these changes.
5160 - OpenMsgStore now decodes all the fid returned in the response
5162 - fix a bug size in libmapi/property.c
5166 - Fix SMTP recipient in libmapi
5167 - Add SMTP recipient support to openchangeclient
5168 and the torture test suite
5169 - Fix a bug in SRow_addprop
5173 - OpenMessage IDL changed: we have a permission field.
5174 It is now set by default to 0x3 (read/write) until we
5175 change OpenMessage prototype.
5177 - Add a sanity check to MAPIInitialize when no profdb
5182 Remove remaining MAPISTATUS and replace them with enum MAPISTATUS
5184 - SetReadFlags IDL and implementation added to libmapi
5185 - Warning fixed in emsabp.h
5187 Fix a bug in openchangeclient when attachments are using
5188 PR_ATTACH_LONG_FILENAME rather than PR_ATTACH_FILENAME to store
5189 attachment filename.
5191 Patch supplied by Brad Hards <bradh@frogmouth.net> which renames
5192 private structure member to private_data for C++ compatibility.
5194 Add libmapi/simple_mapi.c designed to hold convenient
5195 functions for application development.
5197 - GetFolderItemsCount added which returns the number of
5198 total and unread messages for a given folder.
5202 - Fix a body openchangeclient bug which now prevent openchangeclient
5203 from segfault when no body is specified.
5204 - Add GetDefaultProfile call to exchange2mbox for the default
5206 - Improve fuzzer_msgtore output
5210 Add a fuzzer torture test on OpenMsgStore which
5211 test all the possible max_data value.
5213 Should help to understand if libmapi fails because
5218 exchange2mbox improved:
5219 - tdb dependency removed
5220 - message-id are now stored in the profile database
5221 - it now mirrors deletion operation from the mbox file back to the
5223 - man page updated to reflect these changes
5225 - GetProfileAttr function prototype modified. It now returns the
5226 results count for the given attribute and store values in a string
5228 - GetProfileAttr man page updated to reflect these changes
5229 - Fix mapiprofile attribute search command
5230 - migrate from open/write calls to stream ones in exchange2mbox
5233 newmail torture + notifications implementation
5239 Fix the SambaXP live demo segfault: When an ambiguous recipient is
5240 specified, it now skips the name properly and maintain a correct
5243 - Fix a bug when storing attachments into mbox
5244 - Add default path support to exchange2mbox
5248 - Update libmapi version according to the roadmap
5249 - Fix nspi_resolvenames to use default profile database and profile
5253 - Add default profile database and profile support in the torture suite.
5254 - Fix a bug in mapidump_task
5258 - Change MAPILogonEx to MAPILogonProvider and avoid potential
5259 emsmdb endpoint related problem
5260 - add sanity check on global session pointer
5264 Merged MAILOOK-branch changes r64:163 into the trunk.
5268 Remove ChangeLog, use svn log instead ;p
5272 - libmapi includes moved from libmapi/include to libmapi
5273 - Remove arguments from prototype definitions generation in mkproto.pl
5274 - __BEGIN_DECLS __END_DECLS support in header files
5275 - united libmapi/libmapi.h header file
5276 - openchange.h header removed
5277 - PIDL generated files moved to gen_ndr
5278 - compilation rule for libmapi header installation added
5279 - useless torture tests removed
5285 Replace OpenProperty and ReadAttach calls with OpenStream and ReadStream call
5286 Add GetAttachmentTable call
5292 Remove -Werror CFLAGS until I figure out how to fix
5293 our problem definitively.
5295 Remove static from dcesrv_exchange.c functions definition
5300 . reimplement GetProps
5301 . retrieve attachment size
5302 . modify fetchmail and fetchattach torture
5307 . add GetPropList to exchange.idl
5308 . add GetPropList implementation to IMAPIProp.c
5311 - Add fetchattach torture; Attachment size is not yet
5312 defined and 42 is used.
5313 - add 3 new EcDoRpc opnums:
5322 Forgot to add IMAPISession.c
5328 Remove spurious warnings at compile time and
5329 add -Werror -Wstrict-prototypes to CC.
5333 Dispatch libmapi functions into filenames matching
5334 the MAPI interface they belong to.
5338 Fix the attach issue by value and add torture test to
5339 the openchange torture suite.
5344 attachment torture test implementation
5350 Add a null element at the end of MAPI_REQ array
5351 so we can exit from the loop in ndr_print_mapi_request
5355 - Add the DeleteMessages IDL
5356 - New torture tests added:
5357 * OPENCHANGE-MAPI-SENDMAIL
5358 * OPENCHANGE-MAPI-DELETEMAIL
5360 These are experimental implementation
5365 subject option for delete message torture test
5369 added (recipients == null) check
5371 added default subject
5376 Add NspiResolveNames and the associated torture test.
5382 Fix nspi decoding problem due to the usage of
5383 a hyper instead of a dlong.
5387 - Add a preliminary NspiUpdateStat IDL
5388 - Fix the new server code convention naming
5389 (function prefixed with dcesrv_)
5390 - Fix a security bug in emsabp provider code
5394 Fix the allocation memory for the EcDoRpc_{MAPI_REQ,MAPI_REPL} pointer.
5398 Add SetProps [out] support.
5400 Temporary allocation pb fixed in ndr_pull_mapi_response.
5401 Final fix in next commit.
5407 Fix the SetProps [in] IDL
5409 New mapi call support added:
5410 - ModifyRecipients [in,out]
5411 - SubmitMessage [in,out]
5415 Add IDL support for the following mapi calls:
5420 The SetProps IDL is still experimental and the
5421 content blob should be decoded more than the current
5428 Fix the align problem in QueryRows reply blob
5429 Add some printing output and clean useless DEBUG.
5435 Fix the OpenMessage IDL and add ndr_print support
5436 to the MAPI-FETCHMAIL torture test so we can
5441 Commit of the first experimental but working implementation
5442 of the MAPI-FETCHMAIL torture test able to retrieve mails
5443 from an Exchange Server.
5447 - Add a preview implementation of cached data system for multi MAPI calls requests
5448 - Add SetColumns and QueryRows calls to mapi.c + mapi_fetchmail torture test
5449 - Enhance some MAPI calls IDL
5450 - Fix some pull/print functions according to error_code and row_count values
5456 Manual handling of EcDoRpc_MAPI_REPL pull and print function.
5457 When a mapi call returns an error_code different from MAPI_E_SUCCESS,
5458 we have to stop processing the function IDL since no parameters follow.
5462 add MAPISTATUS to EcDoRpc_MAPI_REPL
5463 add mapi library code for:
5469 add mapi calls described above to MAPI-FETCHMAIL torture test
5473 add mapi_response to emsmdb_transaction so we can get the results
5474 check the mapi call error core in OpenMsgStore
5478 Add MAPISTATUS field in each mapi calls
5479 Add new MAPICODE (MAPI_E_CALL_FAILED)
5483 Fix the mapi_request push function
5484 Add a first approach to the MAPI client side library
5485 Add a first approach of the MAPI-FETCHMAIL torture test
5486 Fix the smb.conf.example with new fields and remove Samba4 unused ones
5492 Initial mapidump commit
5493 OpenMessage IDL fixed
5499 Unused and dummy code removed
5503 - Remove the MAPI decoding TDR layer and associated functions
5504 - Add MAPI decoding in exchange.idl at NDR layer
5505 - mapi_request / mapi_response pull/print ok
5506 - implement subcontext for async response decoding in
5508 - new MAPITAGS added related to Message envelope properties
5509 - clean up the code and remove unused files
5511 - Add new MAPI opnums and associated IDL:
5512 * [in] Release (opnum=0x1)
5513 * [in,out] OpenFolder (opnum=0x2)
5514 * [in,out] OpenMessage (opnum=0x3)
5515 * [in,out] GetContentsTable (opnum=0x5)
5516 * [in,out] GetProps (opnum=0x7)
5517 * [in,out] Secolumns (opnum=0x12)
5518 * [in,out] QueryRows (opnum=0x15)
5519 * [in,out] GetReceiveFolder (opnum=0x27)
5520 * [in,out] OpenMsgStore (opnum=0xFE)
5526 For IDL with unknown fields followed the IDL may
5527 change and the mapping of these unknown bytes incorrect.
5528 It's just based on assumptions and results of the different
5533 - The mapi_request / mapi_response pull function
5534 - emsmdb torture tests and libmapi/emsmdb.c
5536 All this code is currently broken and will be fixed
5537 when we start writing the new emsmdb torture suite
5545 Fix ndr_pull_MAPI_DATA function
5549 - Add new mapi opnums
5550 - Add a first IDL implementation for OpenMsgStore out
5554 - Enhance the handles id support in MAPI_DATA
5555 - Remove unused code
5557 EMSMDB encoding/decoding is currently broken.
5558 It will be fixed when we start the client side
5559 mapi library implementation.
5565 - Change IMAPISession.idl to mapi.idl
5566 - enhance mapi content payload decoding (multiple calls supported)
5567 - add sub EcDoRpc opnums and IDL for setcolumns (in)
5574 - new function on emsabp provider for entry id generation
5580 Old mapitables code deleted and merge of the samdb
5581 code used in openchange (emsabp_result_guid function).
5583 The following revision compiles and work fine with
5584 Samba4 revision 20341
5591 Instance keys management changed (we now use struct instance_key and uint32_t instead of an array of 4 uint8_t)
5597 - Fix compilation warnings based on patches provided
5598 by Stefan Huehner <stefan@huehner.org>
5599 - Fix the DSO issue for x64 platforms
5600 - Add the evolution plugin in the compilation process
5601 - remove the mapidump code (obsolete and replaced with ndrdump usage)
5607 evolution plugin moved into client/evolution for
5608 a correct and extensible naming convention.
5610 EcDoRpc IDL modified:
5611 - opnum are now 8 bits
5613 - EcDoRpc ndrdump output enhanced
5615 IMAPISession IDL modified:
5616 - Change OpenMsgStore function name to MAPI_RPC_LOGON
5617 for the 0xFE opnum operation.
5619 Fix warnings in the code.
5625 Openchange-Evolution plugin commit
5626 I reorganized openchange evolution plugin source tree.
5627 Now we have one directory for the camel-openchange provider, and one for the openchange eplugin.
5628 Everything can be found in the oc-evolution directory.
5629 This is code a minimalist implementation of the camel provider for evolution.
5630 It will make appears an openchange server type in the server list handled by evolution.
5631 Still have to fix the ./configure to create a Makefile though.
5635 Fix the memory allocation problems in the emsmdb torture test
5639 Removed ascstr and directly add it to the IDL
5641 Fix the NspiQueryRows response where strings
5642 containing the user email address have to be
5645 The EMSABP provider is working ;-)
5649 The emsabp provider is now able to return multiple users
5650 when searching for part of a username.
5656 Fix the networkAddress binding strings for the
5657 Exchange object in the configuration db. The
5658 SERVER variable based on exchange:server had
5659 been added while we needed the NETBIOSNAME one
5661 Fix a segmentation fault in emsabp.c due to an
5662 unchecked pointer res->msgs. This was causing
5663 smbd to segfault when the supplied legacyExchangeDN
5664 sent by the user wasn't present in the database.
5670 Remove unused files and directory.
5671 Update Makefile.in and remove storedb compilation
5680 - provisioning (for the legacyExchangeDN of the server entry)
5684 Fix the build and remove dynconfig samba lib
5690 Unused ldif files removed + Schemas definitions updated
5694 Provisionning fixed (old ldif files cleaned)
5700 add tags rules to the Makefile
5704 add the \\pipe\\protected_storage named pipe
5705 to exchange_nsp bindings
5711 Add a dcerpc_server module in charge of the
5712 exchange interfaces registration. When this module
5713 is loaded prior the remote endpoint, it let us proxify
5714 the exchange_nsp and exchange_emsmdb ones.
5716 Change the exchange_nsp ncacn_np binding string to
5717 reflect how Exchange server is currently using it.
5719 Conform the IDL with latest pidl requirements and
5720 move the MAPI_DATA structure from exchange_nsp to
5727 Create the $prefix/modules/{dcerpc_server,torture}
5730 This fix openchange make install rule.
5734 This commit conforms openchange with the Samba4
5735 trunk and fix the autotools checks.
5737 I've modified the openchange torture file to
5738 match the current smbtorture API and the
5739 OPENCHANGE-NSPI-PROFILE test was successful.
5741 The NSPI ndrdump suite has fully been tested and
5748 This commit fix the build system:
5749 - add the -ldynconfig dependency to LDFLAGS
5750 - add header checks in configure.ac. We need them
5751 for the moment cause Samba4 doesn't install some headers
5752 required by openchange core
5753 - fix the make install
5755 - remove autotools generated files and definitively
5756 ignore them with the .svnignore file
5758 - keepref keyword removed from exchange_nsp interface
5763 + aclocal.m4 removed from repository
5764 + provisionning fixed