4 - Add SetProps server side implementation for mapistore messages
6 - Add a preliminary set of properties within CreateMessage (not
7 complete yet) as stated in MS-OXCMSG 3.2.5.2
9 - Add SaveChangeMessages preliminary server side implementation
10 - Add SubmitMessage preliminary server side implementation
12 - add mapistore and fsocpf backend implementation for
13 SaveChangeMessages and SubmitMessage. Note: SubmitMesage is just a
16 - Add a wrapper to set OCPF file TYPE
17 - Free/Allocate type on purpose
19 storing a mapistore_message within the message object is useless for
20 the moment. Clean-up this bit introduced with last commit.
22 - Add preliminary OCPF API for server purposes (used by
25 - ocpf_server API now allows caller to dynamically update
26 properties. If the properties was already existing, updates its
29 - Update ocpf_test.py to reflect this behavior
31 - Add preliminary server side implementation for CreateMessage (server
32 + mapistore + fsocpf backedn)
34 - Add preliminary mapistore + fsocpf backend skeleton for SetProps
38 Typo fix in constant name.
42 - Only prevent file opened in read-only to use write_commit
43 - Position the stream at the beginning of the file before writing
45 Defer ocpf file creation (fopen with w+) to ocpf_write_commit
47 Add rmdir support to mapistore python bindings
49 - Add mapistore python C/API support for:
50 - add_context_indexing
51 - add_context_ref_count
55 - errstr MAPISTORE error to string conversion
57 - Update mapistore python test script to demonstrate
58 how to create a new folder using mapistore
60 I may be wrong here, but that was the only way I could pass
61 a folderID from python's layer to mapistore C/API
63 If context is manually deleted using public API, we need to remove the destructor
64 we set during context init, otherwise talloc_free segfault occurs
66 talloc_strdup SPropValue strings
68 Add preliminary python bindings for mapistore
72 Add FILETIME support for SPropValue
74 Add TypeCheck on SPropValue rather than blind cast
76 Add python binding for ocpf_write
77 Add quick test code to ensure it works as expected
79 - Use SPropValue python object in ocpf module
80 - Add a function binding to retrieve SPropValue array from OCPF file
81 - Modify sample to test this behavior
83 - Move OCPF python bindings to pyopenchange directory
84 - Install ocpf module within openchange/
86 - Check property type for SPropValue
87 - Add auto-generated pyopenchange/pymapi_properties.c to the ignore list
89 - Add preliminary OCPF python bindings
90 - Add a new pyopenchange python bindings directory:
91 - Preliminary handling of SPropValue data structure
92 - Add some python bindings test files
93 - Add a mparse parser to generate python bindings declaration for mapi
95 - Build automatically python bindings ** We need to add Python as a
96 required dependency **
99 Implement EmptyFolder and enhance DeleteFolder.
101 This still has quite a way to go, but it does mostly work for folders, including recursion.
103 Add extended test code for folder creation / deletion.
105 Add libmapiserver support for EmptyFolder size calculations.
126 Fix OOM used in sample_appointment.ocpf
128 Consolidate PSETID array and rely on libmapi definitions.
133 Add server-side skeleton for WriteStream Rop.
135 Add server-side skeleton for SetSearchCriteria and GetSearchCritera
138 Improve GetSearchCriteria IDL and work around the null restriction
139 response size in GetSearchCriteria reply by tweaking generated code
140 into nopull,nopush,noprint
142 Add generated mapistore ldif file to the ignore list
144 - Add preliminary implementation for named properties support in
145 mapistore. The API is yet very preliminary (init + get mapped
146 property ID), but is enough to return consistent data to Outlook and
147 make its behavior more reliable.
149 - mparse.pl now generates a LDIF file for the mapistore namedprops LDB
150 database which maps named properties within namespaces and store
151 default values for common/standard named properties Outlook is
154 - add a custom ldb_connect wrapper in mapistore to allow mapistore to
155 open multiple instances of the same mapi named properties ldb
158 - Complete preliminary implementation of GetIDsFromNames in oxcprpt.c.
162 - Fix some named properties
163 - Add a referenced propID value once it is mapped.
164 Will be used by mapistore to populate/generate the initial
165 nameid props database
167 Fix a bug with unmapped named properties lookup.
168 For convenience purposes GetProps accepts within input SPropTagArray
169 unmapped named properties we internally turn into mapped ones using
170 GetIDsFroNames. This behavior was incorrect cause we were looking for
171 properties within specific ranges. Replace this behavior with a global
172 lookup over named properties we know about.
174 One limitation of this fix is that custom nameid properties (not referenced
175 within libmapi/conf/mapi-named-properties) won't be lookup. However it is
176 acceptable for the moment.
179 Fix signed / unsigned issue in openchangebackup utility.
181 Fix some signed/unsigned issues in libmapi.
183 Fix up signed / unsigned issues with libocpf.
185 This changes the API to allow easy testing of failure vs results.
187 make sure that the 0 is interpreted as unsigned.
189 Fix a signed / unsigned comparison warning in libmapi.
191 Fix some signed / unsigned warnings in torture suite.
193 Avoid signed / unsigned comparison in libmapiadmin.
195 Avoid signed / unsigned comparison in openchangedb.
197 Avoid signed / unsigned comparisions in mapitest
199 Avoid signed / unsigned comparisons in FSOCPF backend.
201 Fill in initialisers.
203 Avoids warning with gcc's -Wmissing-field-initializers option.
206 Fix imports, clean up.
208 Raise exception on invalid arguments to openchange_mapistore_url.
215 Use calculated len inside the loop, instead of calling strlen each time.
219 Add new properties and PSETID
223 Change variable name to avoid shadowed variable name warning with ICC.
225 Add newline at end of file to avoid compiler warning with ICC.
229 Ensure server modules work when building with coverage enabled.
232 Consistently use spaces rather than tabs.
234 Remove string exception.
236 Remove duplication of openchange name in namespace.
240 We didn't set a valid error_code for FindRow skeleton.
242 - Add server-side skeleton for ReadStream ROP.
243 - Add preliminary sanity checks on server-side FindRow
247 Activate correct handling of retval in CreateFolder, despite Outlook
248 2007 bad behavior. Currently working on fixing this.
250 My small Outlook 2007 'Search missing ROP implementation' shouldn't
253 Add server-side skeleton for DeleteProperties Rop.
255 Implement server-size skeleton for GetPerUserGuid Rop.
257 Add server-side skeleton for GetPerUserLongTermIds Rop.
259 Add a preliminary stream object implementation
260 Add stream to emsmdbp convenient functions
262 Create a handle in OpenStream
264 Add skeleton server side implementation for OpenStream
266 Forgot to redo changes here.
268 - Undo the SetMessageReadFlag IDL change and add an explanation, so we
269 don't make the same error twice and have pointers when we want to fix
271 - Improve OpenMessage IDL and add the Reserved uint16_t bit.
272 - Replace sizeof() with known types to prevent from IDL mismatch types
275 For single process implementation, this code was fine.
276 For multi-process/contexts, when we need to cache information
277 to limit disk access, we should be using the ocpf element as
280 This patch makes it possible.
282 Fix SetMessageReadFlag IDL.
284 Add server side skeleton for SetMessageReadFlag Rop.
286 the previous "or"ed value used in LogonType union was non handled
287 properly by pidl. Replace them with static values instead. This
288 prevent Outlook rom reconnecting in different situations.
290 This was causing the ndr push error. Outlook now receive OpenMessage
295 With current implementation messages loaded and added to the mapistore
296 fsocpf private list were never released/unloaded/free'd.
298 Similar behavior would have occured in the future with folders. Add a
299 mapistore release_record function which will free/delete
300 information/data associated to a given folder/message.
302 - Add a preliminary OpenMessage reply implementation
303 - Add a function to resolve recipients against AD
304 - Add implementation of GetProps for mapistore messages
305 - Add mapistore getprops semantic
306 - Add fsocpf getprops implementation
308 Note: current implementation does not free message object and memory
309 allocation needs to be revised.
311 Note 2: openchangeclient --fetchmail works with this version :-)
313 Fix OpenMessage response size calculation. Subcontext size is already
314 calculated when we add the RecipientRow.length size to the global size.
316 - Make ocpf_recipClass public
317 - Turn path to headers to local in the lexer
320 Avoid leaking file descriptors on error.
322 Check return type for vasprintf in libocpf.
326 Change mapistore openmessage semantics to fetch/retrieve recipients
327 and properties from mapistore. Modify OpenMessage ROP to dump
328 mapistore_message structure contents retrieved from mapistore.
330 Add a function to retrieve recipients from a parsed OCPF message.
332 This is a wip commit, so there is a lot of DEBUG across the code. This
333 will go away in further commits when the implementation is complete.
335 - Add indexing API to mapistore. This API adds an indexing.tdb file
336 within user's mapistore private space and associate MID and FID to
337 their full mapistore path. Current implementation expects folder and
338 mid are repsented under their hexadecimal representation and using
339 the 0.16PRIx64 format string. It is not robust, but should do the
340 trick for the moment. Among features available:
341 - create/open the indexing database
342 - search of existing indexing context
343 - ref count assessors
344 - add/delete fid/mid records
345 - retrieve the list of folders pointing to an element (parsing
346 of the mapistore URI)
348 - Calls to the API have been added to the emsmdb provider
349 implementation for initialization and automatic attempt to add
350 entries whenever we open a folder.
352 - Add preliminary code (relying on indexing API) for OpenMessage when
353 parent handle is the store object. The entire set of cases for
354 mailbox have been included.
356 - Add mapistore code for op_openmessage operation.
357 - Add message list to the fsocpf context
358 - Add preliminary fsocpf backend code to open a message and store it
362 Refactored some of the FSOCPF backend.
364 Basically some Extract Method refactoring to improve code re-use.
366 Use PRIx64 macro to avoid compiler warning.
371 Add a new OCPF error OCPF_E_EXIST returned if a context already exist.
372 Prevent ocpf_new_context from adding a context to the list if it
375 Clean up debug code introduced while working on new libocpf version
377 - Make libocpf reentrant and use contexts/ref_count: No more globals
378 are used in libocpf, they are all specific to contexts. libOCPF is
379 now multi-process/thread friendly.
381 - Remove Makefile bison compiling option with a bison %option in
384 - Propagate libocpf changes to openchange server and utils
386 - Fix a bug in file/folder listing when we have both folders and
393 - add libmapiserver calculation for OpenMessage + related OXCDATA structures
394 - add skeleton implementation for server-side OpenMessage ROP
395 - add preliminary emsmdbp_object_message implementation/initialization
397 - Flush ocpf output when an error occurs
398 - Fix retrieval of message list in fsocpf backend
400 Add QueryRows implementation for mapistore in fsocpf backend.
402 - Add implementation for mapistore GetContentsTable
403 - Fix error reply for GetHierarchyTable
405 Fix how PT_DOUBLE data is passed among libmapi layers.
407 Fix an issue introduced in r1858. PT_DOUBLE patch is valid
408 for EMSMDB, not for NSPI. Rollback change for SPropValue
410 Add IPM.Note as a default receive folder for Inbox. This is used by
411 Outlook 2003 in the Send/Receive process.
413 Add server-side skeleton for GetAttachmentTable operation.
415 Implement SetSpooler server-side function. The function looks like a
416 skeleton ... and is one until we figure out what should be the
417 associated server-side mechanism when clients tells OpenChange server
418 they want to act as a mail spooler.
420 The LogonType cases were not handled properly
422 Replace existing method to retrieve emsabp_ctx in NSPI server code
423 with mpm session management API and comparison to actual dce_call structure.
425 Replace MAPI_E_LOGON_FAILED rather than MAPI_E_NOT_ENOUGH_RESOURCES in emsmdb server
426 code when session is not found.
432 We were adding context the list but were never removing them while the
433 context_id was added to the free list. This was causing
434 inconsistencies in mapistore context management + invalid
435 record/pointers to remain and cause OpenChange server to crash.
437 Also add commented code to CreateFolder ROP that will need to be
438 enabled when we understand related Outlook behavior.
440 Patch from Bharath Acharya <abharath@gnome.org>:
442 Print calendar items created at half hours
444 Minor warning fix - unused variable, not initialized
446 Fix a bug with invalid session leading to OpenChange server crash.
448 We are now retrieving the emsmdbp_context pointer from our session
449 management API, after a comparison check vs dcesrv_call_state rather
450 than blindling and directly from dce_call.
453 Add better error path handling for the OXCFOLD-CREATE mapitest module.
457 Extend mapistore API to have a mapistore URI associated to the backend
458 context. We want to limit creation of new contexts to the strict
461 Propagate this change to emsmdbp_object_folder_init. Only create a new
462 context if the uri intended to be opened is not already associated to
465 Handle additional LogonFlags cases for mailbox store in Logon_repl
467 Fix empty EcDoRpc replies. Outlook 2007 is now happy and stops from
468 disconnecting untimely.
470 Add server-side skeleton implementation for GetPermissionsTable
472 Pass parent mapi_handles to emsmdbp_object_folder_init rather than
475 Improve emsmdbp_object_folder_init to handle all the different folder
476 creation cases (root folder, mapistore or not, within mapistore or
477 openchangedb etc.) OpenChange server now passes mapistest folder
478 creation test properly.
480 Fix a bug with context_id and mapistore. We were passing the parent
481 context, then deleting it at some point, causing the parent object to
482 be invalid. Now makes use of a reference counter we manage to keep
485 Add a convenient function to emsmdbp_object API to retrieve the
486 contextID associated to an object.
488 It looks like we still have some issues when running both Outlook 2007
489 and Outlook 2003 at the same time with OpenChange server. There may be
490 some additional session checks to perform in the future.
492 Fix a bug in session management API:
494 The mpm_session API uses id, id2, node and context_id from the dcerpc
495 session to uniquely identify a session context.
497 However when Outlook calls EcDoConnect multiple times, it still uses
498 the same dcerpc session. With previous API we were freeing the session
499 while it was still in used - which lead in unstable and unpredictable
502 The following patch adds a ref_count to the mpm_session API and server
503 code has been changed for emsmdb and nspi server to increment the
504 ref_count when the session already exists or create a new session if
505 none is already stored.
507 Also the mpm_session code checks for the ref_count value and ensures
508 it is 0 before calling the destructor.
510 Call emsmdbp_object_folder_init in any case when creating a
511 folder. The emsmdbp_object function now do required checks and
512 initialize the folder's object properly.
515 trivial comment cleanup.
517 Minor cleanups for RopCreateFolder in the server.
519 Prefix the mapistore_uri folder name in the path with "0x"
521 Use ulFolderType (the folder) instead of ulType (ansi vs unicode) when
522 deciding which folder type to create.
524 Trivial comment fixes.
528 Complete the opendir implementation for mapistore folders. Outlook
529 doesn't crash anymore when attempting to open mapistore folders.
531 was using the wrong function emsmdbp_is_mapistore instead of
534 Commit Brad Hards's implementation for Public Folders support.
535 Personal changes wrt initial patch:
537 - remove mapistore_uri from openchangedb PF record at
538 provisioning. Only new created folders should be mapistored.
539 - Add a mailboxstore boolean to folder and mailbox emsmdbp so we can
540 select the correct basedn for searches.
541 - Fix GetProps to provide an accurate answer to Outlook when fetching
542 public folder's store specific properties.
543 - Use get_PublicFolderId rather than SpecialFolderId when we open a
549 Patch from Milan Crha <mcrha@readhat.com>:
551 Fix PT_DOUBLE support in openchange
553 Fix unicode ocpf format in ocpf_write
555 - Fix PT_I8 support in libocpf: PT_I8 support was incorrectly
556 processed as PT_DOUBLE and prevented properties with 0x0014 proptag
557 (e.g. PR_PARENT_FID) to be added properly to ocpf files.
559 - Add PR_PARENT_FID to the set of properties when creating folders
561 Fix mkdir prototype in sqlite3 backend
566 Outlook uses GetProps with the PidTagSubFolders property to check if a
567 folder has subfolders. Add this property at provisioning (set to
568 FALSE), then set it to true on system/specialfolders if folder
569 creation in mapistore went OK.
571 - Implement mkdir operation at mapistore level
573 - Update PidTagFolderChildCount of parent folder when parent is the
574 root folder of a mapistore context (folder attributes stored in
577 - Improve RopCreateFolder implementation
579 - Clean-up emsmdb_object_folder_init implementation
581 - Add a convenient function to turn ROPs parameters into MAPI
582 properties. This prevents from having endless number of parameters.
584 - Commit remaining parts of the provision changes
586 This TODO doesn't belong here
588 Add a convenient function to retrieve the distinguishedName of a
589 folder given its folder identifier. This function is useful when
590 building dn for openchangedb ldb_add operations.
592 Add PidTagComment so it can be used in openchange.ldb when root
593 folders are created with a comment CreateFolder parameter.
595 Make it possible to retrieve MailboxRoot folder using
596 olFolderMailboxRoot in GetDefaultFolders.
598 Outlook 2007 tries to create a To-Do search folder under user
599 mailbox. Creates the folder at provision time to be kind with it.
601 Set PidTagParentFolderId to 0 for mailbox root
603 The wrong index in mapi_repl was causing the crash I've investigated
604 over the past 10 hours.
606 Please always use idx for mapi_response->mapi_repl[] index ;-)
610 In current architecture, we need to retrieve root mapistore folder properties
611 from openchangedb, then use mapistore for operations such as GetHierarchyTable or
612 GetContentsTable. This was not possible with the current design where we only
613 switch between mapistore: true or false.
615 I have introduced a mapistore_root boolean associated to folder object which we
616 set to true if the folder initializes a mapistore context (otherwise false).
618 This boolean is used in GetProps so we retrieve mapistore container properties
619 from openchangedb and not mapistore.
622 Add size calculations for public folder RopLogon
627 We'll change CreateFolder to generic code later.
628 For the moment change from sqlite to fsopcf backend for system folders
630 Fix handling of flagged property row in GetProps (Mailbox case).
632 Missing break added, now makes Outlook 2003 launhes properly.
634 Ensure PidTagAttr is valid and prevent ldb layer from segfaulting
636 Send a flagged PropertyRow when GetProps is called with mapistore
637 Add a nasty hack and call this fake MAPI_E_NOT_FOUND property value for
638 GetProps if the object doesn't exist.
640 In openchangeclient we are calling get_container_class using the parent object
641 (Mailbox root folder) and the FID of the 2-level down folder. This causes
642 openchange server to crash. The hack exposed above will help temporary workaround
643 this problem while we figure out/remember the real problem: Why do we have
644 to call the parent to retrieve the container class?
646 Remove last references to systemfolder in libmapiproxy API
648 release objects properly in the mailbox recursive function
650 After we release ocpf_context, strings are destroyed.
651 Prevent from happening by stealing the overall context and
652 talloc_strdup strings.
654 We'll need to find a better/encapsulated way to do this on long term.
656 Add a small hack to handle StandardPropertyRow properly
657 StandardPropertyRow have no errors and have a prefixing flag set to 0
659 Get ride of the previous way to detect
660 systemfolder/mailbox/mapistore folders.
662 This was barely understandable and error prone.
664 It is now replaced by a mapistore boolean set for every object
665 + a convenient emsmdbp_object function to check mapistore value
666 for given handle quickly.
670 Add mapistore implementation for QueryRows ROPs relying on
671 GetHierarchyTable objects (folders properties listing).
673 Add fsocpf backend implementation to fetch folders properties from a
674 .properties OCPF file stored within the folder (identified by its
677 Customized emsmdbp table object to have:
678 - a context_id and whether the table is within mapistore or not.
679 - to know if the table comes from GetHierarchyTabke or
682 Add a path element to the folder_list structure in fsocpf backend to
683 quickly use the full path and open the .properties file.
685 Note: current code is for developers only. It is known to have bugs
686 (e.g. memory allocation), furthermore there is some manual
687 openchangedb and filesystem operation to perform in order to have the
688 commit intended results.
690 Add a convenient function for openchange server that lets build the
691 SPropValue array with known properties.
693 Replace the hardcoded fsocpf_ctx->fid with a basic code searching for last elements
694 in mapistore_uri path.
696 Fix typo in PidTag name
698 Add PidTagFolderChildCount
700 Add libocpf as a dependency to mapistore_fsocpf backend
702 Add a ulType to emsmdbp table object.
703 We need to make the difference between folders table (hierarchy) and messages ones (contents).
705 This is a large work in progress commit:
707 - Do not add mapistore_uri for Mailbox and IPM Subtree. These are only
708 openchange.ldb containers.
710 - Fix a memory issue with emsmdbp object destruction: use a different
711 context for folder object. This was preventing from having a valid
712 DIR * when releasing the object at mapistore layer.
714 - Add preliminary implementation for OpenFolder (GenericFolder) in
715 emsmdbp server code and mapistore. It can't yet be tested properly
716 with openchangeclient --mailbox because we need to extend QueryRows
717 implementation first. This will be achieved in further commits
719 We are now using mapistore_uri attribute value (valid or NULL) to
720 detect whether it is a systemfolder (blank container) or if we need
721 to initialize a mapistore backend context.
723 - Add mapistore implementation of GetHierarchyTable and backend
724 implementation for fsocpf. Since we don't have a working
725 Createfolder/mkdir implementation yet, you need to add
726 PidTagFolderChildCount = 1 to the folder record in openchange.ldb +
727 manually create the directory on the filesytem.
729 Missing mapi_object_release call added
733 - Add libmapi as a dependency to libmapistore. We need libmapi to
734 benefit from operations on MAPI properties.
736 - Add a MAPISTORE_RETVAL_IF macro and a MAPISTORE_SANITY_CHECKS one
739 - Refactor the search of the backend context given its context id in a
740 function and propagate the change to related functions.
742 - Add skeletons for opendir, closedir, mkdir and rmdir. Prototypes of
743 these function may change in the future.
745 Implement create_context and delete_context for fsocpf backend. Patch
746 initially from Brad Hards.
748 Add a double linked list with fid/DIR couples for folders operations
751 Fix a bug in NSPI server which was preventing NspiGetMatches
752 from retrieving the correct DN from the in-memory tdb database.
754 Should fix the profile creation error users were experiencing.
757 Add a reference to the libocpf documentation for ospf backend
760 Add forgotten part of r1818.
762 Support provisioning mailboxes with either fsocpf or sqlite backends.
764 fsocpf is the default at this stage.
770 Fix paths to related pages
772 Patch from Brad, fix doc typo, grammar - makes it sound more English.
776 Add API documentation for init, backend connection contexts
777 Add programming samples
779 Install libmapistore pc file
781 0.2 version of mapistore documentation.
782 Merge some of the initial mapistore wiki page content.
783 Add a section on FSOCPF backend
786 Various API documentation fixes. All trivial.
788 Fix some hard-coded formatting in mapitest common code.
790 Add a simple create / delete folder test to mapitest.
792 I've been using this to test the basic operations.
794 Enable DeleteFolder rop, now we have a partial implementation.
796 Implement RopDeleteFolder, and handle the case where a folder already exists in RopCreateFolder
798 This still only works for a top level folder.
800 Add convenience API to obtain the FID for a given folder (by name).
802 This is useful to tell if a folder exists, which we need to do before
805 Also fixes a nuisance warning about printf specifiers.
807 Extend CreateFolder size calculations to handle some of the optional elements
809 We still don't properly handle the variable length server element.
813 Add general overview of what mapistore is and
814 how it can be used from a user perspective
818 Refactor mapiproxy documentation into a global mapiproxy / openchange server doc.
819 - Add a mapistore documentation skeleton
820 - Add related pictures
824 Add folder atomic operation to mapistore and skeleton to backends:
825 mkdir,rmdir,opendir,closedir,readdir
828 API documentation typo fix.
833 - Push Brad's CreateFolder implementation after turning hardcoded fields to generic one.
835 Note: current implementation is incorrect as it states that any folder is referenced
836 within openchange.ldb while only system/top folders are. We have a mapistore URI for
837 system/top folders, not for subfolders which are stored directly within specified
840 However the implementation is almost correct when it comes to create folders directly
841 under / in the user mailbox.
843 - Add a 'fsocpf' mapistore backend skeleton (FileSystem + OCPF)
844 - Fix some doxygen in mapistore sqlite3 backend
845 - Add an op_mkdir skeleton to mapistore
846 - Add fsocpf:// namespace test to mapistore_test
847 - Compile fsocpf only if libocpf gets compiled
850 Add defs_private.h so we can use PRIx64 where appropriate
852 It makes more sense to directly return the next available and formated FID rather
853 than the GlobalCount raw value.
855 Add exchange username to emsmdbp_ctx structure for convenient purposes
857 After openchange_ldb is opened, map attributes of the @ROOTDSE record
858 with ldb_set_opaque so ldb_get_default_basedn and ldb_get_root_basedn work.
862 Implement a convenient function to retrieve the GlobalCount value from
863 the objectClass=server record in openchangedb - which is the next FID
866 Note: the function currently lacks locking mechanisms. We should
867 introduce some to prevent from race conditions.
869 This code was originally designed by Brad. I've just refactored it.
871 Add a rootDSE entry to openchangedb.
872 This change makes possible to call:
873 - ldb_get_root_basedn() to retrieve CN=server,DC=domain,DC=ext
874 - ldb_get_default_basedn() to retrieve CN=firstou,CN=firstorg,CN=server,DC=comain,DC=ext
876 Add server-side skeleton for ROPs:
882 NOTE: GetTransportFolder is using hardcoded data that will be removed
885 Add libmapiserver size calculation for ROPs:
887 - RopModifyRecipients
889 - RopGetTransportFolder
893 Fix provisioning script and push a master-git samba4 version known to compile
894 and work properly with openchange.
896 There is probably a small typo left in installsamba.sh post_install script to fix
899 Update docs for new samba version.
901 Looks like we now have real complexity requirements for passwords...
905 Fix the container class for the Drafts folder.
907 This is per MS-OXCSFLD
909 Add PT_I8 for cast_SPropValue().
913 Fix openchange vs latest samba4 git-master branch
915 - Fix OpenChange schema: Had to split our 1-file schema into multiple
916 files in order to be compliant with Samba4 LDB schema validation
919 - Fix openchange provision script
920 - Fix calls to smb_iconv_convenience_init
921 - Fix the copied libmapi/socket code to work with latest samba4 code
922 - Fix openchange server SIGSEGV when EcDoConnectEx is called
924 I have tested the following to ensure nothing is broken:
925 - mapitest with Exchange 2003. All tests are OK
926 - openchangepfadmin (user creation/deletion OK)
927 - openchange server provisioning
928 - openchange server vs Outlook 2003:
929 - profile creation OK
930 - Outlook can open the user mailbox and display it properly
934 Skeleton server code for DeleteFolder ROP
936 Just add more skeleton code to select between available folder types
938 Server side skeleton for CreateFolder operation
943 Implement some more properties for cast_mapi_SPropValue().
945 Patch mostly by Milan Crha, some changes by me.
947 Use retval instead of GetLastError() in a couple of places.
949 Add missing failure path handling.
951 Avoid assigning a boolean result to an enum MAPISTATUS.
953 Fixes problem noted with mapitest on OXCFOLD-MOVECOPY-MESSAGES.
958 Add comment about the number for each ROP in the server.
963 Make sure we can load a server module when it is built with coverage testing enabled.
968 Fix some mapitest issues reported by valgrind.
970 These only occur when running against the openchange server - mostly problems with failure paths.
972 Fix up a few segfaults found when running against openchange server.
977 Add support for EcDoRpc GetAddressTypes (0x49) and OptionsData (0x6f) to server.
979 This is completely driven by the server provisioning - no hard coding.
981 This makes a binary incompatible change, so if you get crashes, please try a
987 Add PT_DOUBLE support for set_SPropValue().
992 Add support for PT_ERROR in mapi_SPropValue casting function.
994 Add support for a couple more types in the casting code.
996 Also adds a development-version "OPENCHANGE_ASSERT()" that flags incomplete code.
1001 Add a convenient function to retrieve the total
1002 number of records in the Global Address List.
1004 Modify openchangeclient to expose this change in
1005 the --userlist option.
1010 Fix OpenChange notification subsystem to handle multiple session properly
1011 Patch OpenChange trunk to reflect this API change
1013 Add quick and dirty doc/examples/multiple_notif.c to show how to setup
1014 multiple sessions + notifications with threads.
1016 Add PidTag for transport message headers
1021 One more server API documentation fix.
1023 More server side api documentation work.
1028 Mix of api documentation fixes for server side.
1030 Add MAPI_E_NOT_IMPLEMENTED.
1032 This is based on information at
1033 http://social.msdn.microsoft.com/Forums/en-US/os_exchangeprotocols/thread/d3c860a8-f131-4c7a-aa11-b9ec328d06c4
1038 Implement RopOptionsData (0x6F).
1040 Updates IDL, adds implementation and mapitest coverage.
1042 This has no practical use, but might be useful for testing the server.
1047 Add talloc leak checking options to mapitest.
1052 Update man page for mapiprofile to reflect new --language option format.
1057 Add special handling for PS_MAPI property name mapping.
1059 This fixes a long-standing mapitest failure.
1061 The logic is based on MS-OXCPRPT, section 2.2.12.2.2 PropertyIds.
1063 Minor API documentation fix.
1068 Build fix for example code
1073 Fix format string problem #184 ticket
1076 Add status reporter classes to allow redirecting the progress
1079 Update man page to reflect mapitest --subunit option.
1081 Implement basic subunit output protocol format for mapitest.
1083 There are a couple of documentation bits to follow.
1088 Trivial API dox addition.
1093 Update the IDL and implementation for RopGetPermissionsTable (0x3e)
1094 and RopModifyPermissions (0x40) to match MS-OXCPERM.
1096 The function signature for GetTable() and ModifyTable() has changed.
1097 They are now called GetPermissionsTable() and ModifyPermissions()
1098 respectively, and there is an additional "flags" argument, which you
1099 almost certainly want to pass as 0x00 if you are porting from some
1100 older implementation.
1102 Updates all users, and adds mapitest unit tests.
1107 Add country codes to codepage-lcid description file
1110 Remove copied code from samba (ldb) and just use the ldb
1113 Resolves ticket #167
1115 Allow building if popt isn't available.
1118 - remove unnecessary include in libmapiadmin
1119 - only build mapistore test tool if popt is available
1120 - only build torture tests if popt is available.
1122 The last change could be finer (e.g. only leaving out the
1123 part of the torture test that actually requires popt) but
1124 that seemed more fragile and generally unnecessary.
1126 Resolves ticket #233.
1134 Ensure we always initialise before trying to cleanup (e.g. in a failure scenario).
1136 Issue identified and patch provided by Erik Hovland, minor changes by me.
1138 Resolves ticket #236.
1140 prop is declared within the switch statement.
1142 Fix by Erik Hovland - thanks very much.
1144 Resolves ticket #239.
1146 Use strncpy instead of strcpy.
1148 Patch by Erik Hovland, plus a minor change by me to ensure the string is null terminated.
1150 Resolves ticket #237.
1152 Add missing break statements
1154 Patch by Erik Hovland <erik@hovland.org>
1156 Resolves ticket #238.
1158 Mark appropriate constructors as explicit.
1160 Patch by Erik Hovland - thanks very much.
1162 Resolves ticket #240.
1166 Patch from Erik Hovland - thanks again.
1168 Resolves ticket #242.
1170 Fix spelling errors.
1172 Patch by Erik Hovland - thanks very much.
1174 Resolves ticket #241.
1176 Make sure we actually can compile when using --enable-openchange-qt4
1178 This patch ensures that $(MOC) gets set in the Makefile.
1183 Add canonical names for codepage related properties (involved in
1184 PT_STRING8 encoding/decoding)
1189 - Add parser for codepage-lcid
1191 - Add entire set of conversion functions for lcid, codepage, language
1194 - mapiprofile now uses codepage/lcid matching LC_CTYPE environment
1195 variable for language detection, otherwise codepage/lcid matching
1196 language list. Language list is now dumped from codepage-lcid
1199 - Remove deprecated util and tests directory from libmapi and from
1200 build system. We now only rely on codepage_lcid.c
1202 - Update openchange code (utils, mapiprofile, mapitest and
1203 exchange2ical libs) to use this new API.
1205 - I have not looked into icalparameter_get_language, but assuming it
1206 is relying on previous API, I may have introduced a bug here. Looks
1207 like the function outputs for example "en-US" while we now checks
1208 for "en_US" to match setlocale output.
1211 Minor API documentation adds.
1213 Add unit test coverage for the GetGALTable() function.
1215 This is mostly lifted from utils/openchangeclient.c
1217 Switch to only building Qt4 bindings if specifically asked for.
1219 This is a bit experimental for now, so lets go safer...
1224 In this particular case (error returned, mapi_response shouldn't
1227 Fix bug 605827 - SRowSet was free'd while still needed
1232 Template file which associates Language, LCID, Locale and Codepage.
1233 Furthermore commits will implement the mparse parser which will
1234 auto-generate the associated C files. This should give us a reliable
1235 way to use it in mapiprofile, MAPI profiles database and for
1236 PT_STRING8 proper conversion purposes.
1238 If anything is missing or is incorrect, updating the file will
1244 Fix bug where you couldn't select another messages in the default folder without
1245 changing folder first.
1247 Looks like this is just a bit I forgot to update when changing from an initial
1248 cut to the "more working" implementation.
1253 - Fix trac ticket #183: PT_UNICODE properties are now turned to UTF-8
1256 - Remove deprecated utf8_convert lexer and windows_to_utf8 routine
1258 - Change openchange tools to use _UNICODE tag version instead
1260 - octool_get_propval now prefer UNICODE properties over PT_STRING8
1261 ones (default behavior).
1263 - Change mapidump_message API to take an optional mapi_object_t
1264 message parameter. If the message object is specified, we can have
1265 access to the subject, and recipients (to, cc, bcc) without having
1266 to query them within a GetProps call.
1269 Fix an ugly cut-n-paste error.
1271 Add pkg-config support for libmapi++.
1276 Fix ticket #123 (known as 562948 on gnome bugzilla):
1277 "Unable to send mails containing UTF8 strings"
1279 OpenChange was using strlen(str) * 2 + 2 to calculate the
1280 expected size for utf16 string. This patch fixes this and
1281 replaces it with a function that make proper utf8 to utf16
1284 This commit also replaces PT_STRING8 properties in openchangeclient.c
1285 with PT_UNICODE ones to ensure utf8 strings get converted properly.
1290 - Add NormalizedSubject and SubjectPrefix strings to object_message_t
1292 - Add a function to retrieve TypedString value
1293 - Add a mapidump function for obj_message (only retrieve subject and
1295 - Add --fetchsummary option to openchangeclient: Dumps properties from
1296 OpenMessage response only (subject and recipients) rather than going
1297 through GetProps and dumping a more complete version.
1300 Move make distclean to the end again.
1305 Remove a copy of the dlinklist.h header, and just use the samba
1311 Install missing file.
1316 Allow us to find samba python code on 64-bit machines.
1321 Update EcDoConnectEx IDL to match latest specifications
1324 Minor additions to "make clean" / "make distclean" to remove
1325 generated python bits, and also the config.h file.
1330 Implement IsMailboxFolder for public folder types.
1332 Involves some refactoring of the way we handled the mapi_object_store_t,
1333 such that we now talloc_zero the structure.
1335 Adds mapitest coverage for these.
1337 Resolves Ticket #134.
1342 Add unit tests for IsMailboxFolder
1344 Also use 0xFFFFFFFFF instead of -1 for no-such-mailbox, consistent with the unsigned data type.
1349 Change location of .cpp.o and .ccp.po to the correct location
1350 and inhibit compilation line output for moc and cpp compilation.
1353 Try harder to clean up libmapi++ bits.
1358 Ignore moc files and generated binary
1360 Update OpenChange version to 0.10 NOMAD
1362 Nomad is a mechanical explorer sent from Earth in 2002.
1363 It was melded with an alien device named Tan Ru and the resulting robotic
1364 hybrid began destroying anything that was imperfect including, in 2267,
1368 Add documentation for qt/ subdirectory.
1370 Try harder to find moc.
1372 Initial commit of some Qt-style bindings.
1374 This is mostly for testing, although hopefully the library will
1375 emerge with a set of mostly-useful widgets for implementing
1381 Quiet the build here.
1383 Inadvertent removal in a previous patch.
1385 Some support for ReviewBoard.
1390 Update OpenMessage flags to match specification values.
1392 Cleanup libmapi++ code when we "make clean".
1394 Add svn ignore entries.
1396 Remove inline from shared library class.
1398 Fixes build on Intel C++ compiler.
1403 libmapi++ is no longer a header-only library
1408 Add first part of Restrictions support.
1410 A little more documentation fixes.
1414 Fix MAPIUninitialize() crash when leaving after an unsuccessful call.
1415 In such situation, mapi_response is not allocated but has a destructor
1416 associated. This fix removes the destructor whenever the error code is
1417 different from MAPI_E_SUCCESS.
1419 Also add a minor (probably useless) check on mapi_response pointer validity
1420 before attempting any other child's free.
1423 A couple of minor API documentation fixes.
1428 Rename libmapi into openchange in our release script.
1429 Makes more sense given the scope of our releases.
1431 Fix format string warnings.
1433 New ModifyRecipients IDL and implementation.
1435 This patch improves the logic within the RecipientFlags bitmask
1436 calculation function and make use of different MAPI properties for
1439 Fix trac ticket #125 and https://bugzilla.gnome.org/show_bug.cgi?id=568763
1442 Minor API documentation fix.
1446 Fix some exchange2ical memory leaks / "still reachable" memory.
1448 Fix property tag array count, so we get the language in Summary
1449 lines in the ical output.
1451 Add protection against null CN values.
1453 Resolves ticket #232.
1455 Thanks to Arnout Engelen for the bug report and the patch to fix the problem.
1457 Handle all day events for UTC+ timezones.
1459 This resolves ticket #217. Thanks to Arnout Engelen for both reporting
1460 the problem, and providing a patch. In the end I heavily modified the
1461 patch, and implemented a much simpler version while we sort out the
1462 timezone identifier problems.
1467 Minor documentation update to reflect GSoC exchange2ical merge.
1469 temporary fix for building on FreeBSD 7.2.
1471 Remove this file - converted it to trac tasks.
1475 Patch from Johnny Jacob <johnnyjacob@gmail.com>:
1477 Changed MonitorNotification to be non-blocking.
1478 Also checks whether to process notifications using a callback.
1480 Open Profile Store using global_mapi_ctx for the memory context. This
1481 fix removes 20 context errors when running valgrind on mapitest.
1483 - Fix important memory leaks in OpenChange NSPI stack. The memory
1484 context modifications applied to the EMSMDB stack have been
1485 propagated to the NSPI one. NSPI dcerpc_* functions now rely on a
1486 temporary context passed in parameter to the nspi_* functions from
1489 - Changes propagated to torture, mapitest, IProfAdmin interface and
1490 ResolveNames function to match the internal API.
1492 - Add missing MAPIFreeBuffer call in mapitest modules
1494 Minor cosmetic change
1496 Minor changes to match our coding convention more closely
1498 Return (const void *) instead of (void *) where missing
1500 - Fix important memory leaks within the OpenChange stack. Most of the
1501 leaks came from the pipe memory context used in emsmdb_transaction
1502 which was only released on MAPIUninitialize and sometimes leaded in
1503 lost blocks. This fix makes extensive usage of the temporary memory
1504 context used in top MAPI calls implementation. This context is
1505 passed in argument to emsmdb_transaction and used for dcerpc_*
1508 When we return from any libmapi call implementation, this context is
1509 destroyed. This guarantee no extra memory within NDR layer is kept.
1511 The only requirement for this patch to work is to make sure the data
1512 we return from MAPI calls is either reparent to another memory
1513 context or copied properly.
1516 Add support for skipping tests that don't apply to some
1519 Change the format of the server version, so it matches the Microsoft
1520 way of doing versions.
1525 Fix store version info assignment - Exchange version now works again
1528 Clarify the developer's task when using GetPropList.
1530 We were allocating the SPropTag proptag array with the session context
1531 pointer, which was not released with a MAPIFreeBuffer(SPropTagArray).
1533 We are now using SPropTagArray pointer as parent context and clarify
1534 that the developer must pass an allocated SPropTagArray pointer to the
1537 Missing mapi_object_release leading in small leaks.
1539 Sanitize RfrGetNewDSA function and memory usage.
1541 The function was returning either a const char * passed in parameter
1542 or the string returned by RfrGetNewDSA call. Furthermore we were using
1543 the session pointer for the memory context. Finally the function description
1544 was not matching its behavior.
1546 What this patch does:
1547 - use a named memory context for RfrGetNewDSA call
1548 - return an allocated string on success otherwise NULL
1549 - release RFR memory context properly
1551 valgrind before patch (mapitest):
1552 ==28876== LEAK SUMMARY:
1553 ==28876== definitely lost: 0 bytes in 0 blocks
1554 ==28876== indirectly lost: 0 bytes in 0 blocks
1555 ==28876== possibly lost: 3,193,529 bytes in 23,296 blocks
1556 ==28876== still reachable: 345 bytes in 2 blocks
1557 ==28876== suppressed: 0 bytes in 0 blocks
1559 ==28876== For counts of detected and suppressed errors, rerun with: -v
1560 ==28876== ERROR SUMMARY: 2351 errors from 2351 contexts (suppressed: 45 from 10)
1562 valgrind after patch (mapitest):
1563 ==29083== LEAK SUMMARY:
1564 ==29083== definitely lost: 0 bytes in 0 blocks
1565 ==29083== indirectly lost: 0 bytes in 0 blocks
1566 ==29083== possibly lost: 3,190,285 bytes in 23,256 blocks
1567 ==29083== still reachable: 345 bytes in 2 blocks
1568 ==29083== suppressed: 0 bytes in 0 blocks
1570 ==29083== For counts of detected and suppressed errors, rerun with: -v
1571 ==29083== ERROR SUMMARY: 2338 errors from 2338 contexts (suppressed: 45 from 10)
1573 This patch fixes most of the leaks coming from pull_emsmdb_property() function.
1574 pull_emsmdb_property is using pointers and allocate memory to prevent from
1575 returning a local variable address. Such pointers include PT_I2, PT_I8, PT_LONG,
1576 PT_ERROR or PT_BOOLEAN. Pointer's values are assigned in set_SPropValue but were
1577 never released/free'd. This patch implements free_emsmdb_property to fix this problem.
1579 valgrind before patch (mapitest):
1580 ==26674== LEAK SUMMARY:
1581 ==26674== definitely lost: 0 bytes in 0 blocks
1582 ==26674== indirectly lost: 0 bytes in 0 blocks
1583 ==26674== possibly lost: 3,264,485 bytes in 23,387 blocks
1584 ==26674== still reachable: 345 bytes in 2 blocks
1585 ==26674== suppressed: 0 bytes in 0 blocks
1587 ==26674== For counts of detected and suppressed errors, rerun with: -v
1588 ==26674== ERROR SUMMARY: 2370 errors from 2370 contexts (suppressed: 45 from 10)
1590 valgrind after patch (mapitest):
1591 ==27270== LEAK SUMMARY:
1592 ==27270== definitely lost: 0 bytes in 0 blocks
1593 ==27270== indirectly lost: 0 bytes in 0 blocks
1594 ==27270== possibly lost: 3,127,733 bytes in 23,293 blocks
1595 ==27270== still reachable: 345 bytes in 2 blocks
1596 ==27270== suppressed: 0 bytes in 0 blocks
1598 ==27270== For counts of detected and suppressed errors, rerun with: -v
1599 ==27270== ERROR SUMMARY: 2348 errors from 2348 contexts (suppressed: 45 from 10)
1602 Minor API documentation fixes.
1607 - Add a macro to mparse.pl to free both mapi_response
1608 and mem_ctx within OpenChange calls implementation.
1609 For the moment it is only implemented in OpenUserMailbox call.
1611 - Fix a memory leak in OpenUserMailbox: When the call failed
1612 (ecUnknownUser or ecUseEnryption) mapi_response was not free'd
1615 Minor indentation fix
1618 Add some missing newlines to reduce compilation noise.
1620 Merge in Ryan Lepinski's Google Summer of Code work on exchange2ical.
1622 See the gsoc_exchange2ical branch history for commits.
1624 I also made a change to address ticket #216, and
1625 fixed a couple of typos.
1630 Minor updates to provisioning instructions.
1632 Thanks to Girish Venkatachalam for some suggestions.
1637 Fix 'unused variable' warning on FreeBSD for exchange2mbox
1640 Add documentation for the --freebusy option.
1647 Fix segfaults in mapitest launched with exchange2010
1649 Fix compilation warnings
1652 Add missing -L directory specifier.
1654 Looks like this was tolerated by gnu ld, but not by opensolaris ld.
1656 Patch by Brian Lu (Sun). Thanks again.
1658 Add documentation for new mapiprofile --encrypt option, introduced in r1602.
1660 Fix a couple of typos that trash CFLAGS during build.
1665 Automatically switch from connect to seal on the emsmdb pipe if
1666 ecNotEncrypted is returned by EcDoConnect.
1668 - Make OpenChange natively working with Exchange 2010
1669 - Factorize binding string construction code within a single function
1670 - the seal flag is mandatory to connect to Exchange 2010
1671 - add seal boolean value to MAPI profile creation and mapi_profile
1673 - add --encrypt option to mapiprofile to set the seal value
1678 Add documentation for set_SPropTagArray().
1680 Thanks to Brian Lu (Sun) for reporting.
1685 This doesn't really fix ticket #149, but this should
1686 at least prevent from triggering segmentation fault when
1687 PR_EMAIL_ADDRESS_UNICODE doesn't have any cn=Recipients,cn= substring
1690 Trivial fix (newline) for warning on FreeBSD compiler.
1692 Add support for manually creating the library symlinks for FreeBSD
1694 This is a somewhat speculative commit.
1696 Also fixes a couple of cosmetic whitespace issues.
1701 Patch from Bryan Lu <brian.lu@sun.com>:
1703 Create symbol link only on Solaris
1705 This closes ticket #221 and makes it possible to compile openchange
1708 Temporary bug fix in emsabp.c - If restrictions are NULL in
1709 emsabp_search, return MAPI_E_INVALID_OBJECT. This prevents from using
1710 invalid res pointer leading in segmentation fault.
1712 Initial fix proposed by Erik Hovland <erik@hovland.org>
1714 Patch from Erik Hovland <erik@hovland.org>:
1716 fid might be null. Check it before dereferencing in the
1717 ocpf_folder_lookup() call. Similar behavior fixed in openchangeclient
1718 folder_lookup() function.
1720 Patch from Erik Hovland <erik@hovland.org>:
1722 NotificationData 'could' be null. Check it before handing it to
1723 notification-callback(). This is important because eventually
1724 NotificationData will be dereferenced in the code path.
1726 Patch from Kamen Mazdrashki <kamen.mazdrashki@postpath.com>:
1728 Fix MAPI Warning error codes
1730 Patch from Kamen Mazdrashki <kamen.mazdrashki@postpath.com>:
1732 bugfix: Bugs in abp_tdb layer fixed.
1734 emsabp_tdb_traverse_MId() returns 'false' (i.e. not found) in most of
1737 Patch from Kamen Mazdrashki <kamen.mazdrashki@postpath.com>:
1739 Implement NspiQueryRows() address list enumeration
1741 We can now run openchangeclient --userlist on OpenChange NSPI server
1742 and Outlook 2003 is able to query GAL.
1744 Note: the initial patch was proposing:
1745 "(&%s(showInAddressBook=*))", purportedSearch
1747 I replaced it with "%s", purportedSearch only since we don't have yet
1748 any showInAddressBook attribute in AD.
1750 Patch from Kamen Mazdrashki <kamen.mazdrashki@postpath.com>:
1752 - Add server side implementation for NspiResolveNamesW
1753 - Refactor and split emsabp_verify_user in two functions
1755 A new function emsabp_get_account_info() implemented to fetch info
1756 about given user name. emsabp_verify_user() uses the above function
1757 check if authenticated account_name is valid mail account and if so,
1758 account_name is cached in emsabp context for future use
1760 Patch from Kamen Mazdrashki <kamen.mazdrashki@postpath.com>:
1762 NspiGetProps() reimplemented to match [MS-NSPI] specification more
1765 As a side-effect, emsabp_fetch_attrs() was altered to return
1766 MAPI_E_INVALID_BOOKMARK in case requested MId is not found. This way
1767 the function returns more meaningful error codes - if requested MId is
1768 not found this surely means InvalidBookmark rather than CorruptStore
1773 Path from Kamen Mazdrashki <kamen.mazdrashki@postpath.com>:
1775 Propagate dwFlags for incoming call to get EntryIDs correctly.
1777 Actually we need to propagate dwFlags so that emsabp_query()
1778 function to be able to determine whether EphemeralEntryID
1779 or PermanentEntryID is requested to be built.
1781 Patch from Kamen Mazdrashki <kamen.mazdrashki@postpath.com>:
1783 Implement PR_SEARCH_KEY attribute getter
1785 Patch from Kamen Mazdrashki <kamen.mazdrashki@postpath.com>
1787 Add PR_ADDRTYPE_UNICODE and PR_EMS_AB_PROXY_ADDRESSES_UNICODE getters.
1789 Patch from Kamen Mazdrashki <kamen.mazdrashki@postpath.com>:
1791 - Extend NspiDNToMId() to search in Configuration and Domain
1794 - NspiDNToMId() has been extended to cache returned data properly,
1795 i.e. DNs from Configuration partition are cached in ttb_ctx db, DNs
1796 from Domain partition are cached in in-memory db ttdb_ctx.
1798 Patch from Kamen Mazdrashki <kamen.mazdrashki@postpath.com>:
1800 emsabp_set_PermanentEntryID() implements MS specification more
1801 closely. For reference: [MS-NSPI] and [MS-OXOABK]
1803 - Replace emsabp_get_server_GUID with samdb_ntds_objectGUID Samba4
1805 - Change the way we initially fetched server GUID
1807 Credits to Kamen Mazdrashki <kamen.mazdrashki@postpath.com> for
1808 initial patch and associated research:
1810 It turns out MS implementation for NSPI reads the guid from: "CN=NTDS
1811 Settings,CN=<NETBIOS_NAME>,CN=Servers,CN=Default-First-Site-Name,CN=Sites,<CONFIG_DN>" entry.
1813 Fix samdb_connect warning.
1814 Add function prototype to nsp,emsmdb header files.
1815 Change samdb_ctx from void * to ldb_context *
1818 Update docs to match those in mapiproxy doxygen docs.
1820 Roll to the latest Samba4 version.
1822 This should have no noticeable difference over the
1823 Samba4 alpha9 release, but its nice to use the latest
1824 version, and it might make a difference on the server
1829 Fix OpenChange server code and access to Samba4 databases.
1830 Starting with samba4-alpha9, there is no more configuration.ldb or users.ldb.
1831 All information can be accessed through a single access to SamDB and configuration records
1832 accessed through ldb_get_config_basedn.
1834 The following implementation has been tested and is working with:
1835 - mapiprofile profile creation
1836 - openchangeclient --mailbox
1837 - Outlook 2003 account creation
1838 - Outlook 2003 mailbox opening
1843 Fix openchange user provisioning scripts
1845 Forgot to commit this LDIF modifications for openchange provisioning
1850 - Fix OpenChange server provisioning (exchange classes and attribute only)
1851 - Remove deprecated provisioning steps
1852 - OpenChange user provisioning is still broken at this point, but will be
1853 fixed in further revisions.
1858 Fix a cast warning at compilation time for libmapi++
1860 - Update openchange libraries to 0.9: close trac ticket #165
1861 - Propagate pkgconfig solution in trac ticket #94 to other libs
1863 - Update openchange code to work with samba4-alpha9 release
1864 - Apply minor fix to ldb_wrap_connect (number of parameters)
1865 - Update mapiproxy code to handle new Samba4 assoc_group implementation properly
1866 - Update samba4 version script to match alpha9 and related git commit
1871 Ensure we get output if sqlite3 isn't found at configure time.
1873 Now outputs "no" instead of a blank.
1878 Fix attribution, per IRC discussion.
1883 Ensure API documentation gets generated for utilities functions.
1885 Some undocumented stuff in here to look at later.
1887 Add additional mapidump functions for notifications
1889 This is a patch from Johnny Jacob (Novell), with unit tests and some extra checks by me.
1891 Maintains good test coverage for this file.
1896 Avoid use-after-free for the number of rows in the SRowSet.
1898 Resolves issue #212, which has the valgrind error.
1903 Add test for get_proptag_value().
1905 Minor cleanups for mapidump functions.
1907 - Add support for dumping property tags using PT_SHORT.
1908 - Modify the tag for PR_whatever_ERROR results to include the _ERROR bit
1909 - Minor format change for PT_BINARY (training colon)
1910 - Ensure PT_SYSTIME respects the seperator value (API change)
1911 - Add a conditional assert() using infrastructure introduced in r1553.
1913 Implement mapitest support for all of libmapi/mapidump.c
1915 Update openchangeclient for the API change.
1917 Introduce a compile time definition that is set for SVN snapshot releases.
1919 The intent is to use this to protect assert() calls that indicate incomplete code.
1924 Improved Sun Studio compiler support.
1926 Patch by Brian Lu (Sun) - thanks again.
1928 Revert inadvertent part from previous commit (r1549)
1930 Add coverage testing support.
1932 ./configure now supports --enable-coverage, which builds with the right options
1933 to support gcov. Also adds a new makefile target ("coverage") that runs the
1934 required post-processing steps.
1936 Also added a test script that does a range of openchange related (client side)
1937 operations. This is useful for generating the test load for coverage checks.
1939 So the basic recipe here is
1940 1. Add the --enable-coverage option at configure time.
1942 3. Install it, or otherwise ensure that coverage-enabled libs are used
1943 4. generate the test load (e.g. run ./script/smoketest.sh)
1945 6. Inspect the results in ./covresults
1950 Add support for the SunStudio compiler.
1952 I previously special-cased the Intel C compiler, and relied on some ugly ordering requirements to
1953 ensure it all worked.
1955 This approach is cleaner, allowing options to be build up separately for each compiler, and for
1956 the C and C++ versions.
1958 Tested on Linux with all three compilers.
1963 Adding missing include.
1967 Patch from Brian Lu (Sun). Thanks very much.
1972 Additional portability fixes for SunOS.
1974 Based on a patch (ticket #220) by Brian Lu (Sun). Thanks very much.
1976 I modified the patch to try to use autoconf where possible.
1978 Resolves ticket #220.
1980 Remove MAP_FILE flag from mmap(). Looks like this is only required on really
1981 old unix systems (e.g. NetBSD prior to 1.0), which we probably won't ever support.
1983 Patch by Brian Lu (Sun) - thanks very much.
1985 Partly resolves ticket #220 - still need to handle the first patch.
1990 Fix build problem using Sun Studio compiler.
1992 Reported by Brian Lu (Sun), including a patch (Ticket #219)
1994 I slightly modified the patch, but nothing substantial.
1999 Patches provided by raboof:
2000 - Ticket #213 deprecated include directive removal
2001 - Ticket #214 missing sanity check
2002 - Ticket #215 fix some DEBUG macro level for sain ouput
2012 Use mapi_profile_get_ldif_path to find ldif path when one is not given
2017 Added libmapi++ wrapper function for CreateProfileStore
2022 Update buildsystem to avoid using bash-specific (well, not sh-supported) +=
2025 Should allow FreeBSD to be supported.
2030 Alternative solution to ticket #179, provided by Alan Alvarez.
2032 This alternative avoids the need for the user to clean up the string returned by what().
2034 Also includes a test case, which I've used to validate that the original (prior to r1524) code
2035 is faulty, and that both fixes (From Erik Hovland and from Alan Alvarez) deal with it.
2037 Resolves Ticket #179 (again).
2042 Make sure that the string given by what() can be used.
2044 Patch by Erik Hovland - thanks very much.
2046 Resolves ticket #179.
2048 Ensure that the libmapi++ messages example works even if there is no
2049 PR_CONVERSATION_TOPIC (subject).
2057 Modify mapi_object_set_logon_id() to be able to report errors.
2059 Original patch by Erik Hovland, I made some changes.
2064 Implement RopReloadCachedInformation (0x10).
2066 Minor change to IDL (previously implemented), and adds
2067 implementaiton and mapitest code.
2069 Also editorial comment fix in some related mapitest stuff.
2071 Resolves ticket #186
2073 Implement GetValidAttachments ROP (0x52).
2075 Includes IDL, implementation and mapitest.
2077 mapitest also checks DeleteAttach behaviour, which I don't think we previously
2080 Also includes a comment fix in the mapitest code.
2087 Patch by Erik Hovland <erik at hovland.org>
2092 Update the properties list.
2094 Patch from Girish Venkatachalam <girish at gayatri-hitech.com>
2099 Update API to use MAPITAGS enum.
2101 Update to match API change.
2103 Use appropriate enum here.
2105 Use enum for OpenEmbeddedMessage call.
2107 Use enums where appropriate.
2109 Update users of FindRow to use enums.
2111 We are supposed to be returning a MAPISTATUS, so switch to using
2112 the OPENCHANGE_RETVAL_ERR macro here.
2114 Use appropriate enums instead of int types.
2116 Use enums instead of ints / hardcoded values.
2118 Use enum types where appropriate.
2120 Fixes warnings from Intel C compiler.
2122 Return a suitable MAPISTATUS if we can't talloc sufficient memory here.
2124 Fixes warning from Intel compiler.
2129 Only pass "-Wmissing-prototypes -Wstrict-prototypes" to CFLAGS,
2130 not to CXXFLAGS as well.
2132 Avoids g++ warnings.
2134 Use enumerated type instead of integer.
2136 Remove unreachable code.
2138 Add "static" to avoid the need for additional declarations.
2140 Avoids noise from the intel c compiler.
2142 Namespace variable in macro, so we don't get noise about shadowing a
2145 Help icc find comparison_fn_t.
2147 Match up data types in argument and format string.
2149 Remove unused variable, and change a name to avoid a "shadowed declaration"
2155 Portability fixes for Intel C Compiler.
2157 Set CFLAGS early, otherwise AC_PROG_CC will set
2158 CFLAGS to "-O2 -g", which later has -O3 appended, which
2159 icc complains about.
2161 Check if we're really icc, and if so, turn off some warnings.
2162 Also turn off the "FORTIFY_SOURCE" define which causes problems
2163 with missing builtins.
2165 The warnings can (and should) be turned back on later, after we
2166 fix the current issues.
2171 Correct diagnostics messages.
2176 Remove explicit -Wstrict-aliasing=3 from command line.
2178 This is implied by gcc -Wall option, and icc produces nuisance warnings
2179 with it enabled (related to the -W option, not the code being compiled).
2181 Fix some memory leaks and a bug in mapiprofile.
2183 I introduced the bug in r1467, there could be others that are similar.
2188 Minor rewording of description
2195 Move initialisation up, to make sure everything is valid in the failure paths
2197 Patch by Erik Hovland. Thanks once again.
2199 This closes out ticket #178.
2201 Remove unreachable code.
2203 Patch by Erik Hovland. Thanks again.
2205 This is the second part of ticket #177. This completes the checkin of that ticket.
2207 Remove unreachable code.
2209 Patch by Erik Hovland. Thanks very much.
2211 This is the first part of ticket #177.
2216 Ensure that we check the result of the operation we just performed.
2218 Patch by Erik Hovland. Thanks very much for continuing to provide these.
2220 This is the third part of the patch in ticket #177. The first two parts are yet to be addressed.
2222 Make sure that return values are checked and report that given status if there is an error.
2224 Patch from Erik Hovland, with minor additional changes. Thanks again for the patch.
2228 More cleanups of memory leaks for setting up database and an associated failure case.
2230 fix leak in openchangeclient
2232 (as seen with valgrind of "openchangeclient -m")
2234 Fix memory leak in mapiprofile utility
2239 Ensure that when we pass --profile to mapitest, that profile
2240 gets used instead of the default.
2242 Also fix a small memory leak when using --profile, and add some
2245 Fix error handling case.
2247 Patch from Erik Hovland - thanks very much.
2249 Resolves ticket #175.
2254 Remove unused enum values.
2256 Remove unused code - no simple tests.
2261 Update the script version of samba4 to alpha8.
2266 Add tevent to dependencies.
2271 Remove unused headers.
2273 Patch by Erik Hovland - thanks very much,
2275 Resolves ticket #164.
2277 Apply patch from Erik Hovland, from ticket #162.
2279 From the original patch:
2280 "The problem is that when you do stat first w/ a file string anyone can
2281 exploit the time in between to do whatever they want with the file that
2282 the string is a name for. Instead, try to open straight away. Then fstat
2283 w/ the file descriptor."
2285 I think the patch is fine, although I didn't run the torture test.
2290 Avoid duplicate call to mapi_object_get_logon_id
2292 Based on a patch proposed by Erik Hovland, but adapted to follow the
2293 pattern used in OpenStream().
2295 Resolves issue #163.
2297 Applied modified version of patch from Erik Hovland to address unused variables.
2299 See http://trac.openchange.org/attachment/ticket/160/unused-values for
2304 My version removes variables (rather than commenting them out) since we don't need
2305 them now. I also updated the documentation for options that are no longer available
2307 The origin of the unused PR_FOLDER_CHILD_COUNT is a bit strange. It was introduced
2308 in r808 (to resolve #103), and looks like it might have been used for debugging - no
2309 impact on the code. I pulled out the whole lot.
2311 Tested with openchangeclient --fetchmail --folder="Sent Mail" and mapitest.
2313 Use array form of delete (error identified with libmapixx-attach test, using valgrind).
2315 Fix potentially unused variable.
2317 Tested with mapitest (even though nothing should have been affected) and
2318 with libmapixx-test and libmapixx-attach under valgrind.
2320 Patch is remaining part of http://trac.openchange.org/ticket/153
2322 Thanks to Erik Hovland for the patch.
2327 Remove dead / unused code.
2329 See http://trac.openchange.org/ticket/152#comment:1 for rationale.
2331 Original patch by Erik Hovland - thanks again.
2333 Update test case to reflect new behaviour
2338 Link libmapistore against tdb.
2340 Update copies of config.guess and config.sub.
2342 Link libmapiproxy against tdb.
2344 Declare a SOVERSION for libmapistore.
2346 Use LDFLAGS when linking exchange2ical.
2348 Create symlink for libmapistore.
2350 Link libmapi against tevent since it uses tevent_context_init, link ndr_exchange.po into libmapiserver since it uses some ndr_push_* symbols.
2352 Fix typo in variable name.
2357 Fix typo in Python variable name.
2359 Keep separate flags for libraries around in config.mk.
2361 Link libmapiserver against all libraries.
2366 Add some PidTag* mapping involved with Recipients and RecipientRow
2371 Patch from Erik Hovland <erik@hovland.org>:
2373 Initializes variables to make sure they aren't used uninitialized.
2377 - Add sanity check on mapitest_common creation routines within
2380 - Apply patch from Erik Hovland <erik@hovland.org>: check return
2383 Patch From Erik Hovland <erik@hovland.org>
2385 In torture_rpc_mapi_sendattach a call is made to the system function
2386 read at line 199. The return value of read is assigned to read_size,
2387 which happens to be of unsigned type. So if read returns -1 (which it
2388 can) it will not be noticed. The patch changes the type to ssize_t
2389 (signed) and checks for -1 as well as zero to break out of the loop.
2393 Patch from Erik Hovland <erik@hovland.org>
2395 1. In mapiproxy, the directory handle dir will be leaked after it is
2397 2. exchange2mbox main() should use exit at line 785 just like all of
2398 the other error paths so that we don't leak anything
2402 Patch from Erik Hovland <erik@hovland.org>
2404 Adds a #include config.h to suppress compiler warnings for vasprintf
2406 Patch from Erik Hovland <erik@hovland.org>:
2408 Make sure pointers are valid before dereferencing
2409 1. lpProps 'might' be null
2410 2. Add folder to variables checked before moving on.
2411 4. Check nprop->guid before giving to strcmp, two times
2412 6. Check definition before handing to strlen (which will dereference
2413 it) Reworked this one to include talloc_free
2414 7. Check MessageClass? before handing to strncasecmp
2415 8. Check backend, return if null.
2416 10. Don't print out anything if lpProp is null
2417 11. Check attach_size before dereferencing
2422 Fix pull structure for QueryRows reply when no RowData is available
2427 - Add preliminary IDL support for Exchange 2003/2007 EMSMDB RPC calls:
2431 - Add LZxpress and XorMagic support to EcDoRpcExt2 request/reply
2432 blob. However it doesn't yet support Chained calls.
2434 - Add AuxInfo/AUX_HEADER structures and IDL
2436 - Refactor mapi_request and mapi_response: move obfuscate_data calls
2437 up to the EcDoRpc layer
2442 Patch from Paolo Abeni <paolo.abeni@gmail.com>:
2444 call ProcessNotification() after each successful
2445 emsmdb_transaction() in all the libmapi calls.
2447 Patch from Paolo Abeni <paolo.abeni@gmail.com>:
2449 Mapi notifications can occurs inside any emsmdb_transaction; currently
2450 only the notification send by the server inside the
2451 emsmdb_transaction_null() in MonitorNotification() are
2452 parsed/processed/delivered to the appropriate callback.
2454 To be able to process all the received notifications, the notification
2455 structure must comprise the private data to be passed to the
2456 notification callback, since in the average mapi call this data is not
2457 available. This patch modifies the Subscribe() call and the
2458 mapi_notification structure, adding the private_data parameter (also the
2459 related Subscribe() calls are update) and add a libmapi call
2460 (DispatchNotifications) to force the notification dispatching in
2461 a [quite] non blocking way
2466 Patch from Paolo Abeni <paolo.abeni@gmail.com>:
2468 ProcessNotification() is ignoring the handle value contained into the
2469 processed notifications. This means that if many Subscribe() calls are
2470 performed on different folders but with the same flags, all the
2471 registered callback are [incorrectly] signaled with each received
2474 The attached patch match the handler contained into the notification
2475 message against the notification object handle to avoid such
2481 Make sure delayed authenication is not called when server mode is enabled
2484 Update property list to reflect current OAB props.
2486 This deletes a few incompatible properties. Cannot determine the history of the PR_MAILBEAT_ props.
2488 Fix display of Folder ID values (one is filled with ., the other is prefixed with .16 instead of being filled.
2490 Also remove duplicate close() of file descriptor.
2502 Implement RopTransportNewMail (0x51).
2504 Includes IDL, libmapi implementation, and basic mapitest coverage.
2506 Also fix a few doxygen / formatting things.
2511 - Add Redirect buffer support for OpenMsgStore and OpenPublicFolder.
2512 This commit fixes the ecWrongServer (0x478) error users encounter
2513 while running openchange based software in a clustered Exchange
2519 Implement RopCloneStream (0x3b) and RopWriteAndCommitStream (0x90).
2521 Includes IDL, implementation and mapitest tests.
2526 Fix Search notifications.
2528 MS concurred that the docs are wrong.
2530 Patch by Paolo Abeni - thanks very much for the
2531 investigation and the patch.
2533 Update GetStoreState documentation.
2535 Implement RopSetPropertiesNoReplicate (0x79).
2537 IDL was already done. mapitest for DeletePropertiesNoReplicate was
2543 Implement (IDL, libmapi, mapitest) RopHardDeleteMessagesAndSubfolders (0x92)
2545 Also fix some bugs in mapitest common code, and an incorrect sanity check in CreateFolder().
2550 Implement RopHardDeleteMessages (0x91).
2552 Includes IDL, implementation and mapitest.
2555 Ignore generated property file.
2560 Add PT_ACTIONS to list of data types.
2562 Not fully/correctly handled yet.
2567 - Add dcerpc_mapiproxy:delegated_auth option
2568 This option delays mapiproxy-remote server authentication when
2569 the client sends the first request on a given pipe. This is
2570 mandatory in order to have delegated credentials to work.
2572 - Factor remote connection into mapiproxy_op_connect
2577 Add session state to the notification.
2578 Patch by Paolo Abeni - thanks for the investigation and fix.
2580 Also remove a stray debug message.
2582 Add a new mapitest suite for OXCNOTIF (Core Notifications).
2584 Add a test to the OXCNOTIF suite based on test case provided by Paolo Abeni.
2589 Update IDL for ModifyRules (0x41) and add IDL for
2590 UpdateDeferredActionMessages (0x57).
2592 This is a checkpoint commit, pending further investigation
2593 into how we handle PtypRestriction and PtypRuleAction.
2598 Mapitest cleanups - remove GetLastError(), and other minor edits.
2600 Implement LockRegionStream and UnlockRegionStream ROPs.
2602 These appear to be a relatively recent addition to the
2603 documentation, possibly only used in Exchange 2007 / Outlook
2606 This is complete except for testing of whether the locking
2612 Use parent folder full replica ID: 2 bytes instead of 1 byte
2614 - Add Implementation for Logon redirect response buffer in OpenChange IDL
2615 - Update libmapiserver size calculation routine for Logon call to handle this case
2620 Add session and logon_id to the list of parameters to copy between objects.
2621 This patch fixes a problem in openchangeclient when using the --folder parameter.
2624 Remove code relating to free'ing the bookmark returned
2625 by SetCollapseState. Initial investigations with MS
2626 lead me to believe that you can't free that resource.
2628 May be more work in this area as investigation continues.
2633 Fix memory leaks for functions relying on pull_emsmdb_property
2638 Fix emsabp valgrind errors
2643 Make it possible to specify a version number for release different
2644 from major/minor from configure.ac
2649 Make it possible to open and control up to 255 mailboxes within a
2650 single MAPI session.
2652 It implements an internal management of a logon_id array at session
2653 level + enable transparent transport/copy of current logon_id value
2654 among MAPI calls + finally transparently free the logon_id value when
2655 the store object (PF or mailbox) is being released.
2657 - Retrieve recipients from OpenEmbeddedMessage reply
2658 - Test the implementation in mapitest
2659 - Avoid potential memory leak: steal context for returned ulPropTags.
2664 Be more tolerant with Logon request flags
2666 Set retval to MAPI_E_INVALID_BOOKMARK rather than returning.
2667 This case still needs to be fixed though.
2669 Delete debug message
2671 Create a default GetProps reply on error
2676 Fix retval problem in libmapi/nspi.c for GetIDsFromNames.
2677 Function returns MAPI_E_SUCCESS, but errno is set to 0x0000000b.
2678 Set errno to retval to work around this problem.
2681 NSPI-GETIDSFROMNAMES
2683 OXCPRPT-NAME-ID mapitest now passes: The QueryNamedProperties ecMemory retval
2684 has been worked-around by setting QueryFlags to NoStrings to limite the results
2685 scope. This means the MNID_STRING case is not fully checked anymore. We should maybe
2686 add additional tests to do full coverage.
2688 Fix GetNamesFromIDs IDL and implementation.
2690 Note: We should probably update the function prototype
2691 so it takes a mapi_SPropTagArray rather than a single property.
2694 Protect against bad results from GetGALTable().
2696 Resolves ticket #142
2701 Patch from Paolo Abeni: Add sanity check to Subscribe
2702 and prevent applications from crashing if notify context
2708 Ensure NSPI server functions have a valid dcesrv_handle
2710 Add quick/additional configuration information on how to setup openchange server
2712 This commit adds a retval check on private data retrieval function and prevents QueryPosition from causing a
2713 segfault when parent object is meant to come from GetContentsTable.
2715 - Fix NspiGetMatches server reply when specified username is invalid and
2717 - Make use of talloc hierarchy for NspiGetProps properties fetch + fix
2718 a talloc_free bug leading to segfault on failure.
2720 Prevent from registering same mapistore backend multiple times
2728 Add skeleton for GetRulesTable
2730 - return MAPI_E_SUCCESS when QueryRows reply count is 0
2731 - Move Reminders from IPM Subtree to Mailbox root
2733 - Add QueryPosition implementation
2734 - Move from offset to numerator/denominator couple for table objects
2736 Outlook now opens properly using openchange server and display the
2737 mailbox folder list with icons ;-)
2739 - Add skeletons for Restrict, SortTable, FindRow calls
2740 - Introduce emsmdb provider table object
2741 - Add preliminary table implementation for system/special folders
2742 - Add preliminary implementation of GetHierarchyTable, SetColumns and QueryRows
2743 - Improve creation of GetProps reply blob for Mailbox folder
2744 - Fix bug in EcRRegisterPushNotification when associated handle is invalid
2745 - Remove some usage of ldb_filter and use format string instead
2746 - Update libmapiserver sanity checks and look for error_code != MAPI_E_SUCCESS
2747 so openchange server is able to return failed replies to MAPI clients
2748 - Introduce flaggedPropertyRows in libmapiserver_push_property (needed by QueryRows)
2750 This commit makes openchange server work with "openchangeclient --mailbox" ;-)
2752 Still preliminary but anyway worthwhile enough to be mentioned ...
2754 - Add a function to count subfolders of a container
2755 - Add a function to wrap MAPI tables over openchangedb
2756 - Factorize code used to fetch property values from LDB records
2758 - Add default properties to folder records while provisioning mailbox
2759 - Add few more mapping for PR_* to PidTag
2760 - Add a new MAPI property to the list
2762 Avoid openchangeclient --mailbox to segfault when run vs openchange server
2765 Remove some ldb_filters, and just use varargs into ldb_search
2767 warning fix for 64-bit arch.
2769 Revert previous commit.
2771 Experimental commit to fix build problems resulting
2772 from property changes.
2777 - Add PidTagDisplayName property to Mailbox object
2778 - Add PidTagParentFolderId to all system/special folders
2780 - handles array depends if a valid mapi_repl exists. This commit
2781 fixes the destructor semantics.
2782 - Fix a mapitest segfault encountered while run vs openchange server
2783 - Return 1 in SRowSet_propcpy if an error was encountered.
2785 Fix libmapi stack segfault when MAPI calls returns
2786 with error_code different from MAPI_E_SUCCESS.
2788 Do not process NSPI request if we can't find the handle
2790 Remove unnecessary ldb_filter parameter and replace it
2791 with ldb_search format string.
2796 - GetPropertyIdsFromNames skeleton added
2798 - Fix how Release replies are handled in mapi_repl[] array
2799 - Remove Release size calculation
2800 - Fix QueryRows size in libmapiserver
2801 - Add a dummy/skeleton GetPropertiesSpecific function for mapistore objects.
2802 - GetHierarchyTable skeleton added
2803 - SetProperties skeleton added
2804 - CreateMessage skeleton added
2805 - SaveChangesMessage skeleton added
2811 Set mapi_response to NULL upon init ... just to get sure
2813 Fix MAPIUninitialize segfault
2821 - Add skeleton for GetContentsTable Rop
2822 - Add skeleton for some [MS-OXCTABL] Rops: SetColumns, SortTable, QueryRows, SeekRows
2823 - Add libmapiserver size calculation functions for all the above
2824 - Ensure we only set objects parameter if it exists
2825 - Return when dcesrv handle is not available
2827 Merge s4-alpha7 branch back into trunk
2832 - Add several PidTag to openchange.ldb folders
2833 - Add provisioning convenient function which adds attribute/value pair
2834 to a given folder record
2835 - Replace existing special folders reference within Inbox with PidTagIpm* tags
2836 - Add new PidTag values to mapi-properties
2837 - Add a function to libmapiproxy to build a folder EntryID as described in MS-OXODATA
2838 - Add a function which builds special properties for openchangedb folders
2839 - Add PT_BOOLEAN case to openchangedb folder get property function
2840 - Keep a reference to the mailbox username within emsmdb provider context
2841 - Create and return a handle in RegisterNotification
2846 Wrong MessageClass size calculation fixed
2849 Remove duplicate _GNU_SOURCE definition (already specified by Makefile)
2851 Ignore new binary and trial output.
2856 - Fix systemfolder value for System/Special folders
2857 - Add GetProps support to System/Special folders
2859 Add auto-generated parser to the ignore list
2861 - Add auto-generated parser for MAPI property to PidTag mapping
2862 - Add some PidTag values
2863 - Add a lookup and get property functions on system folders
2865 - tuple SystemIdx in the dictionnary to workaround the ordering problem
2866 - Add ParentFolderId attribute to System Folders
2868 - Add creation of "Special folders" to mailbox provisioning
2869 - Rename fid attribute to PidTagFolderId
2870 - Rename name attribute to PidTagDisplayName
2871 - Rename ExplicitContainerClass to PidTagContainerClass
2873 Fix GlobalCount increment
2875 Fix mailbox provisioning
2878 Add test for FILETIME structure.
2880 Update docs for mapiproxy entry.
2883 Fix handling of fids.
2887 - Fix openchangedb mailbox hierarchy and introduces subfolders
2888 as described in [MS-OXOFOLDS] specifications.
2889 - Update openchangedb API to reflect this change.
2891 Rename private mailbox folder "non_ipm_subtree" to "mailbox_root"
2892 to fit with MS-OXOFOLDS specifications.
2894 - Add provisioning code for GetReceiveFolder defaults
2895 - Check if mapistore content repository already exists for the user
2896 - Make mailbox creation verbose
2899 Fix parentfolder reference.
2903 Use recursive call to create folders.
2905 Simplify list iteration, PEP8, avoid using string exceptions.
2910 Fix 'dereferencing type-punned pointer' warnings
2912 - Add strict-aliasing compiler flags
2913 - Fix format string warnings on ubuntu buildbot
2915 - Add _FORTIFY_SOURCE=2 to the compiler CFLAGS
2916 - Fix warnings introduced by -D_FORTIFY_SOURCE
2919 I might have been a bit hasty with that last commit...
2923 Try harder to find sqlite3.
2925 Seems to be in sqlite.pc on Ubuntu.
2927 Fix warning on 64-bit arch.
2931 - Add RopGetReceiveFolder (0x27) implementation
2932 The function respects should respect the semantics and behavior
2933 as described in MS-OXCSTOR specifications. However the python's
2934 code modification required: add ExplicitMessageClass attributes
2935 to folder records is not yet effective.
2937 - Add GetReceiveFolder size calculation function to libmapiserver
2938 - Add a function to openchangedb API to retrieve the FID/ExplicitMessageClass
2939 couple for a given SystemFolder within user's mailbox.
2941 - Provision scripts: create a mapistore default storage space within ${private}/mapistore/${username}
2942 - Provision scripts: add default sqlite:// mapistore URI for system folders
2943 - Add mapistore context initialization when calling OpenFolder on SystemFolder
2944 - Add mapistore context release for folders in emsmdbp object destructor
2946 Factorize emsmdbp objects
2947 Add emsmdbp_object generic talloc destructor
2950 Add test for PT_MV_LONG.
2952 Add tests for PT_I8 and PT_BINARY
2954 Fix warning about no newline at end of file.
2956 Remove most recently added tests from "to be done" list.
2958 Add a couple more mapi_SPropValue tests.
2963 - Initialize mapistore within emsmdb provider context
2964 - Add destructors for MAPI handles and mapistore contexts
2965 - Remove emsmdbp_ctx memory context structure member and
2966 allocate directly with emsmdbp_ctx
2968 I don't see any good reason why we would pad MAPI replies with some bytes.
2969 I guess it comes from some prehistoric openchange code.
2971 Fix systemfolder assignment depending on IsSystemFolder value
2973 - Initialize OpenFolder server reply
2975 - Wrap TDB connections to mapistore (code from samba4) so
2976 multiple instances can open read/write to the same TDB database
2977 - Remove static id_mapping_context (replaced with tdb_wrap calls)
2978 - Update mapistore linkage rules so mapistore can be used with exchange_emsmdb server
2979 - Link mapistore with exchange_emsmdb
2981 Fix aclocal warning for AC_DEFINE comparison_fn_t
2983 Remove useless GetProfilePtr from IProfAdmin interface
2984 Closes trac ticket #131
2986 Add missing script - prevent configure from generating warning vs missing file.
2988 Remove stamp-h1 file during distclean and add it
2991 - Add server-side GetReceiveFolder (0x27) skeleton
2993 Work around the comparison_fn_t redefinition problem
2994 between libocpf and ndr.h
2996 FreeBSD doesn't have time.h daylight global variable
2999 start testing mapi_SPropValue_array.
3000 This also tests some underlying functions.
3005 Add comparison_fn_t support to ndr.h
3006 This was the latest change require to make openchange compiles under FreeBSD
3008 = samba4/openchange FreeBSD support completed =
3013 Remove duplicated post_install call
3015 Add a post_install operation on FreeBSD
3016 Make sure pidl is installed properly.
3018 Patch samba4 tarball so it compiles properly on FreeBSD 7.0
3019 Note: this is a dirty hack which needs to be removed in the future
3021 Install Samba4 correctly although user's PKG_CONFIG_PATH env variable
3022 may not be adjusted properly.
3024 Avoid download samba4 release tarball if already available
3025 in current directory.
3027 - Add test for comparison_fn_t in configure.ac
3028 - libocpf auto-generated files include stdlib.h and prevent from
3029 having the proper comparison_fn_t typedef. This commit works around this
3030 problem and define comparison_fn_t within a private header.
3032 getline is a stdio GNU_SOURCE extension not available under FreeBSD.
3033 Use fgetln instead when it is compiled on this OS.
3035 FreeBSD doesn't define sighandler_t but sig_t
3037 Replace open() call with O_DIRECTORY flag (Linux specific) with opendir
3039 - Add non-default search path /usr/local/{include,lib} to
3040 CFLAGS and LDFLAGS when compiling OpenChange under FreeBSD
3041 - Make use of LDFLAGS while compiling openchange tools
3044 A few improvements for property handling.
3046 Also add unit tests to verify behaviour is correct.
3048 The implementation for the FlatUID (GUID) structure appears broken. Perhaps I'm not using it correctly.
3050 Microsoft confirmed the LCID is wrong in the spec, and will be updated in the next rev.
3055 Check for Flex version < 2.5.35
3056 Make sure users can define the FLEX environment variable
3058 Add automake scripts for AC_CANONICAL_HOST support
3059 Needed for FreeBSD OS detection in configure.ac
3064 Fix warnings from lexer output.
3066 Fixes for warnings on 64-bit architectures.
3068 Fix warning on 64-bit architecture.
3071 Add some more tests for openchange.mailbox.
3073 Fix creation of new mailbox after provision.
3075 Always use the same URL when connecting to openchangedb.
3077 Fix arguments to openchangedb_provision.
3082 Fix libmapi 64-bit machine cast warnings mentioned in Brad's devel email
3085 Warning fix for 64-bit arch.
3090 Add doxygen definition for RopRelease
3092 - Add server-side skeleton implementation for RopOpenFolder and RopRegisterNotification
3093 - Add preliminary size calculation functions in libmapiserver for the 2 calls above
3094 - Fix size bug for serialized requests
3095 - Add skeleton case for RopGetPropertiesSpecific on SystemFolders
3096 - Make sure the GetProps reply blob is initialized whatever happen
3097 - Add a skeleton emsmdbp folder object init function
3102 Remove debug strings for GetPropertiesSpecific Rop
3104 Enable verbose output in server mode - useful during development
3106 Implement preliminary server-side RopGetPropertiesSpecific call for mailbox object.
3108 - Fix GetProps blob for PT_BINARY: use SBinary_short instead of Binary_r
3109 - Fix GetProps size: subcontext is not added to the fixed size calculation
3111 - GetPropsSpecific size calculation function added to libmapiserver
3112 - Function to create a GetProps reply property blob added to libmapiserver
3115 Add tests for provisioning.
3117 Several cleanups in python code, add tests for schema use.
3119 Don't clear PYTHONPATH override.
3121 Remove unused imports, add extra tests.
3123 Use member variable for Ldb, rather than subclassing.
3125 Remove print statements to avoid cluttering test output.
3127 Add simple and incomplete testcase for OpenChangeDB.
3129 Move wipe of data to mailbox.py, simplify arguments to add_root_mailbox.
3131 Move adding a server to mailbox.py.
3133 Move ldif from oc_provision_openchange.ldif into Python.
3135 Stop providing setup_path to OpenChangeDB, as it's no longer used.
3137 Avoid using separate LDIF file when creating folder mailboxes.
3139 Avoid using separate LDIF file when creating mailboxes.
3141 Avoid passing full names object.
3143 Add check-python target.
3148 fix openchange_newuser.
3150 Use SamDB for actual SAM databases, Ldb otherwise.
3152 Remove unused parameters, don't make parameters optional if they are mandatory.
3154 remove unused parameters.
3156 make mailbox object-oriented, remove creds/lp parameters.
3158 Fix OpenChangeDB syntax.
3163 - Add a systemfolder member to the MAPI handle structure to make a difference
3164 between objects managed by mapistore and those stored within openchange.ldb
3165 (root mailbox folders).
3167 - Add opaque functions to set/get private_data and systemfolder to the MAPI
3170 Minor doxygen fix/improvement
3172 Add libmapistore object files to the ignore list
3174 - Add a very preliminary and light libmapistore implementation.
3175 mapistore only supplies init/release and add/del backend contexts.
3176 This commit also includes a sqlite3 backend skeleton (open/close sqlite db)
3177 - A temporary mapistore testing tool has been added locally for implementation checks.
3180 Use convenience function for connecting to openchange.ldb.
3182 Use standard LDB functions - openchange.ldb is not a SAM database.
3187 Implement support the SUMMARY language tag.
3189 Initial checking of libical based exchange2ical code.
3191 This has a long way to go, so think of this as more of a checkpoint
3194 See http://sourceforge.net/projects/freeassociation/ for the library, or
3195 see if your distro has a package.
3199 Add missing parameter to API documentation.
3201 Resolves ticket #130.
3203 API documentation fixes for OpenEmbeddedMessage()
3205 Implement OpenEmbeddedMessage ROP (0x46).
3209 Factor out message creation and message fill actions.
3211 Also remove GetLastError() where appropriate.
3213 Add some API documentation.
3218 Update openchangepfadmin description
3219 Fix tool relying on libmapiadmin
3226 Add more explanation for README
3228 Reimplement RTF decompression.
3230 Add unit tests from MS-OXRTFCP.
3232 Fix warnings in example code
3234 Add description for libmapiadmin
3236 Add description for libmapi / libmapi++
3238 Start on the directory descriptions.
3244 Add overview. Extracted from API docs.
3248 Outline of README file.
3250 (also using this to test buildbot without changing real code)
3254 Add Version field - avoid breaking pkg-config --list-all
3256 Fix warnings (gcc 4.2.4)
3259 Use variable for package version rather than hardcoding it.
3269 - Add an implementation of the MAPI handles management API. The API
3270 internally uses an in-memory TDB database to keep object hierarchy
3271 and a doubled chained list to associate private data to handles.
3273 The API currently provides add, search and delete facilities. Note
3274 that while untested, the delete operation is designed to recursively
3275 delete children of the 'meant to be deleted' handle.
3277 Finally the API doesn't remove TDB records but mark them as free so
3278 they can be reused across MAPI session and prevent from handle counter
3279 growing indefinitely.
3281 - Add a preliminary implementation of the Release call
3282 - Add Release size calculation to libmapiserver
3283 - Update EMSMDB provider to use MAPI handles API
3286 Minor api documentation fix.
3292 Minor API docs tweak.
3294 Token commit of tiny API docs fix.
3297 Look for GNU make harder (gmake on BSDs).
3302 - Add preliminary EMSMDB provider implementation for RopLogon (0xFE)
3303 - Add common routines for OpenChange LDB context init and search
3305 - Add libmapiserver skeleton with size calculation routine for RopLogon
3306 - Change DSO linking dependencies for mapiproxy shared libraries
3307 - Propagate _GNU_SOURCE change from libmapi.h to mapiproxy
3311 Remove .po and .o objects within libmapiproxy subdirectory
3313 Move libmapiproxy into its own directory and rebase mapiproxy headers accordingly
3314 Fix make uninstall for AD and profiles directories
3318 Add python code and ldif files needed to create and populate the experimental
3319 openchange dispatcher database.
3321 Add 5-Minute configuration documentation for OpenChange server mode
3323 - Rebase ldif files into sub directories:
3324 * AD for OpenChange AD modifications
3325 * profiles for OpenChange IProfAdmin interface
3326 - Makes it easier figuring out LDIF files scope
3327 - Prepare setup folder for LDIF openchangedb files integration
3328 - Update install/uninstall Makefile rules for ldif files and
3329 make sure everything got removed
3334 Add support for short language names (e.g. en-AU) for lcid.
3339 Delete deprecated libmapi setup Perl script
3342 Add summary report for tests.
3344 Make mapitest return the number of failed tests.
3349 - Add pkg-config pc file for libmapiproxy
3350 - Improve mapiproxy rules so libmapiproxy gets installed and cleaned properly
3352 Free memory allocated by the fake subcontext in
3353 ndr_pull_mapi_response.
3355 This fix saves 300kb of memory and removes 700 loss records while
3356 valgrinding mapitest.
3358 Fix segfault - Add sanity check - when SPropTagArray is NULL in
3359 NspiQueryRows request
3361 Fix openchange_newuser name typo
3363 Fix server provisioning command line examples
3365 Fix several libmapi leaks.
3367 mapi_response was allocated using emsmdb_ctx->mem_ctx memory context
3368 and was not free'd when libmapi function released their
3369 context. Furthermore we need to release mapi_response->mapi_repl and
3370 mapi_response->handles which are now automatically free'd when
3371 mapi_response destructor is called.
3373 However note that this fix is not perfect: mapi_response memory is not
3374 free'd properly when calls exit with an error.
3376 This commit also make use of talloc_steal where necessary to keep
3377 returned fields allocated.
3381 Use named context rather than autofree
3383 Fix memory leak in emsmdb.c: Use a temporary memory context for
3384 request and length allocation in emsmdb_transaction.
3386 - This removes 827 loss records and approximatively saves 41kb of
3387 memory while valgrinding mapitest
3389 - Fix memory leak in GetDefaultProfile and GetProfileTable.
3390 - Save from 10 loss records while valgrinding mapitest
3391 - Developers are now responsible from freeing the GetDefaultProfile
3392 string the function allocates.
3393 - Apply changes to all openchange tools.
3395 Add blackbox subunit tests for mapiprofile tool
3398 One more trivial fix.
3402 (Yep, more trivial changes)
3404 Fix incorrect LCID for en-CA.
3406 (OK, its token, I admit).
3409 Don't define _GNU_SOURCE unconditionally.
3413 Prevent mapiproxy from multiple init and modules/server register
3414 when an smb client connect to the server (e.g. windows browser or smbclient)
3418 According to [MS-OXOCAL] Section 2.2.1.44.1
3419 "RecurrencePattern Structure", a monthly recurrence
3420 also has a Day specific parameter.
3425 Simply run autogen.sh rather than replicating it inside the Makefile.
3427 need to run aclocal before autoconf for the pkg-config macros.
3431 Use a autofree context rather than a named one - makes sure memory is free'd when we exit the test.
3432 Saves from 4 loss records while valgrind'ing mapitest.
3434 Use temporary memory context for EcDoConnect.
3435 Saves from 20 loss records when valgrind'ing mapitest.
3437 Free PropertyProblem structures returned by CopyTo.
3439 Replace deprecated talloc_init calls with talloc_named
3440 This commit removes some valgrind loss records talloc_init was responsible for
3443 Free everything when running mapitest --list-all.
3444 Valgrind however shows a loss record related to talloc_init ...
3447 Minor Intel C compiler warning fixes.
3449 Minor apidocs cleanups.
3453 Use double pointer for lp_ctx in GetLoadparmContext assessor
3455 Fix memory leak in utf8 lexer.
3457 - Remove custom iconv_convenience from pull_emsmdb_property and use
3458 lp_iconv_convenience on loadparm_context argument instead.
3460 - Change OpenChange libmapi API to reflect this change
3462 - Introduce a lp_ctx assessor in libmapi/cdo_mapi.c
3463 (mostly for mapitest modules). libmapi/mapiproxy developers
3464 should never have to make use of it.
3466 - Remove pointless duplicated call to lp_load_default in MAPIInitialize.
3468 Free lpProps returned by GetProps, Fix context error in valgrind
3470 - Fix memory leak bug: release ndr context in pull_emsmdb_property before returning
3471 - Terminate SPropValue and SPropTagArray using an element with ulPropTag = 0. This
3472 prevent from "invalid read size of 4" messages from valgrind and remove context errors.
3475 Don't install mapiproxy if python wasn't found, since
3476 we wouldn't know where to install the provisioning scripts or be able
3481 Merge libmapi-0.8 branch r1015 to 1017 into trunk
3483 ** Start libmapi-0.9 COCHRANE development **
3485 Merge libmapi-0.8 branch changes into trunk
3489 Add python install/uninstall rules to provision rather than mapiproxy-servers
3491 - Remove server Makefile rules
3494 Note: server and providers have been merged within mapiproxy,
3495 so there is no reason keeping this deprecated code.
3499 Undoing change committed in r1004.
3501 Use .po files instead of .o files for openchange tools
3503 Add --version to openchange tools
3505 Add COPYING file with GPLv3 license
3509 - Add RenameProfile function to IProfAdmin API
3510 - Remove pointless CopyProfile from IProfAdmin API
3511 - Add --rename option to mapiprofile tool
3512 - Update man page to reflect this addition
3514 (close trac ticket #124)
3516 Fix libmapi from crashing when mapi_repl is NULL.
3518 Update Samba4 git rev to fix the charcnv segfault met in openchange
3522 Try to find the Samba python modules if they're not installed in the system
3527 - Fix Subscribe semantic bug and add WholeStore boolean parameter
3528 - propagate API change to tools/torture callers
3530 - Add assessor functions to set dumpdata and debug level in libmapi
3531 (SetMAPIDumpData and SetMAPIDebugLevel)
3532 - OpenChange tools modified to use these function rather than set these
3533 parameters on their own
3535 - Fix --debuglevel segfault in openchange tools
3536 - Enable logging to stdout in MAPIInitialize
3540 * OpenChange libmapi function now returns MAPI error instead of -1
3541 - use OPENCHANGE_RETVAL_IF instead of MAPI_RETVAL_IF
3542 - add doxygen documentation for some missing functions/files
3544 - Missed this event->tevent change in previous commit
3546 - Update openchange to use latest Samba4 master git rev (990491d)
3547 - Fix references to tevent_context structures
3548 - Fix iconv_convenience init in MAPIInitialize
3549 - Remove errorchecks mapitest module warning
3552 Use tevent_context_init.
3558 Some Exchange server (stand-alone) return MAPI_E_LOGON_FAILED when setting EssDN with username rather than
3559 using profile's mailbox string directly. This commit fixes the bug.
3561 - Add EcDoConnect and EcDoDisconnect preliminary support to
3562 dcesrv_exchange_emsmdb.c
3563 - Add internal session management mechanism to EMSMDB server
3564 - Add init and unbind modules function to EMSMDB server
3565 - Add emsmdbp_context and session to dcesrv_exchange_emsmdb.h
3568 Fix valgrind errors caused by using free'd memory.
3572 Implement 'mapiproxy downgrade' behavior in EMSMDB server and force
3573 Outlook to use EcDoConnect (0x0) and EcDoRpc (0x2) rather than 0xA and
3574 0xB (opnums using LZ based compression).
3576 - Add Preliminary implementation for RfrGetFQDNFromLegacyDN DS RFR server
3580 - Preliminary implementation of NspiGetProps NSPI server function
3581 - Makes sure emsabp_tdb_traverse_MId uses the correct dbuf size
3582 - Use correct ldb context (users or conf) depending on where MId is
3583 located (on-memory or on-disk)
3584 - Add PR_EMS_AB_NETWORK_ADDRESS mapping to emsabp_property
3586 *** Outlook is now able to create MAPI profile using OpenChange Server ONLY! ***
3588 - Preliminary implementation of NspiDNToMId NSPI server function
3589 - Add emsabp_search_legacyExchangeDN to search for a record given its
3590 legacyExchangeDN attribute.
3592 - Preliminary implementation of NspiQueryRows NSPI server function added
3593 - fix a bug in the MID TDB traversal routine: cut dptr to dsize length
3594 rather assuming it is NULL terminated
3595 - Add support for "referenced" property tags
3596 - Add support for PR_MV_STRING8
3597 - Add emsabp_search_dn which search for a DN within AD and return the
3598 associated LDB message
3599 - Add PR_EMS_AB_HOME_MDB and PR_EMS_AB_PROXY_ADDRESSES to
3600 emsabp_property array
3602 Prevent from trying to add a NULL element to profile database and segfault on strlen
3604 Prevent x500_get_dn_element from segfaulting when an incorrect DN string parameter is supplied
3606 - Preliminary implementation of NspiGetMatches NSPI server function
3607 - Make use of a on-memory TDB database for Ephemeral Entry IDs
3608 - Add TDB traversal routines to retrieve DN associated to MId
3609 - Move lp_ctx within emsabp_ctx for convenience
3610 - Add EphemeralEntryID to Binary_r routine
3611 - add emsabp_query (Find attribute matching given property tag and
3612 return associated data)
3613 - add emsabp_fetch_attrs which builds a SRow array given a MId and
3614 requested property tags.
3615 - add emsabp_search which searches AD given input search criteria
3616 - add a preliminary Property Tag to AD attribute mapping + associated
3617 functions in emsabp_property.c
3619 Note: This NspiGetMatches is limited to MAILUSER which means we only
3620 look for users (located within users.ldb). This limitation will be
3621 removed when we have a preliminary working emsmdb server, so we can do
3622 more extensive NSPI server tests.
3624 Add sanity check to get_SPropValue_SRowSet, prevents the function
3625 from segfault when RowSet is NULL (e.g. crafted NspiQueryRows replies)
3627 Prevent IProfAdmin based code from crashing when a crafted NspiGetMatches reply
3628 with NULL ppOutMIds is returned.
3633 - Preliminary NspiGetSpecialTable implementation added to NSPI
3634 server/EMSABP provider: Hierarchy Table supported (required during
3636 - add PT_BINARY support for mapidump_SPropValue
3637 - fix a bug when PT_STRING8 or PT_UNICODE pointer is set to
3643 Add new Display Type values (used by EMSABP provider)
3645 Change DEBUGLEVEL for RfrGetNewDSA
3647 - preliminary implementation of RFR server (RfrGetNewDSA): makes Outlook happy
3648 - mapiproxy-servers-install now installs openchange python scripts and ldif file
3652 Move auth_serversupplied_info structure from dcesrv_exchange_nsp.h to libmapiproxy.h
3653 This structure is required for NTLM_AUTH_IS_OK macro
3655 - Add doxygen comments for all OpenChange server modules
3656 - Fix doxygen return value for exchange_nsp
3658 - Add mapiproxy server unbind function and hook in dcesrv_mapiproxy.c
3659 - Add exchange handle enum to dcesrv_mapiproxy.h
3660 - Add authentication verifier macro to libmapiproxy.h
3661 - Add preliminary EMSABP Address Book Provider implementation:
3662 * supports initialization, destructor (talloc)
3663 * implements user and codepage check routines
3664 * retrieve NSPI server GUID
3665 - Add NspiBind and NspiUnbind support to dcesrv_exchange_nsp.c
3666 - Add internal session mechanism management to NSPI server
3667 - Add init and unbind modules function to NSPI server
3668 - Add doxygen comments to all dcesrv_exchange_nsp.c functions
3669 - Add emsabp_context, session and non-exported Samba structure to dcesrv_exchange_nsp.h
3671 OpenChange configuration schema updated with Addressing schema
3672 (Address-Templates, Address-Types and Display-Templates - Exchange 2003 based)
3674 Execute server modules init function when loaded
3677 A few API documentation fixes.
3682 Add documentation for MAPIProxy 'server mode'
3687 - Implement mapiproxy server mode architecture
3688 - Add server modules management API
3689 - Add skeletons for default OpenChange servers (nspi, emsmdb, ds_rfr)
3690 - Add temporary provision Makefile rule
3695 Initial text was correct - rollback
3700 Ensure that GetLastError() also returns the correct value.
3702 Start changing the MAPI_RETVAL_IF() usage to two new macros:
3703 OPENCHANGE_RETVAL_IF() and OPENCHANGE_RETVAL_ERR().
3705 simple_mapi.c is the only one converted at this stage.
3707 Also added a set of unit tests that verify at least some initial
3710 Remove unreachable code.
3712 Partly resolves ticket #124
3717 Remove references to ldap.h header file - not installed anymore with samba4 git rev openchange uses
3719 mapiproxy documentation update: 3 questions added to FAQ section
3721 Patch from Corentin Chary:
3722 - Add PR_CONTENT_FILTER_SCL property to libmapi
3724 - Update openchange to work with samba4 master git rev f308c2f
3725 - Replace reference to events.h with tevent.h
3726 - Update installsamba4.sh script to reflect latest samba4 compilation changes/requirements
3731 Fix mapidump date/month when freebusy period covers end of one year - beginning of next year
3732 Update openchangeclient to reflect these changes.
3737 Export PKG_CONFIG_PATH if it wasn't exported yet. Patch by Metze
3739 Fix PIC object flags for SWIG build. Patch by metze.
3744 User %u format specifier for unsigned integer.
3746 Make return value match signature.
3748 Miscellaneous minor cleanups. Mainly making return types
3749 match signatues, format conversion (%u for unsigned values) and
3750 matching up result variable types (bool instead of enum MAPISTATUS).
3752 Return an enum MAPISTATUS, instead of a bool, to match function signature.
3754 Use %u instead of %d for unsigned values.
3759 Another minor APIdox edit.
3761 API documentation tweak.
3769 More apidox triviality.
3771 Trivial APIdox edits.
3773 Supplement the user's PKG_CONFIG_PATH rather than
3777 Add bindings for GetBestBody(), GetDefaultFolder(), GetDefaultPublicFolder(), AddUserPermission(), ModifyUserPermission().
3779 Add bindings for create_message, delete_messages, get_message_status, set_read_flags.
3781 Add Python bindings for Unsubscribe(), get_task_status(), get_importance(), get_proptag_name(), get_proptag_value(), DeleteFolder(), CreateFolder(), EmptyFolder(), RemoveUserPermissions(), IsMailboxFolder().
3786 Actually use pymapi variables in Makefile.
3788 Add configure flags for building and installing Python MAPI bindings (disabled by default).
3793 Add namespace prefix to scanner.
3798 - spnego / gssapi_krb5 authentication now available for mapiprofile
3799 - add the --realm | -R option
3800 - update mapiprofile man page
3805 Remove entries for --properties and --priority, which have been removed from the openchangeclient utility.
3809 Don't generate / install man3 pages for libmapi++ or mapitest.
3811 Resolves ticket #121.
3813 Also don't install man3 pages that are just copies of the C implementation files, or just document bugs / todo items.
3816 Allow retrieving id and session of MAPI objects.
3818 Add MessageStore and Object Python classes, add bindings for OpenMsgStore, OpenUserMailbox, OpenPublicFolder.
3820 Add stubs for Session class.
3822 Add infrastructure for MAPI python module.
3824 Look for python and python-config binaries.
3826 Remove empty directory.
3830 Remove obsolete --properties option and related code
3835 Fix RecipientRow member's order
3840 - Update to latest samba4 git master revision (3508a66)
3841 - Fix references to samr info24 struct
3842 - Add support for assoc_group_id proxy
3843 - Add support in mapiproxy for bind/alter connections using assoc_group_id
3844 - Update mapiproxy documentation
3849 Improve building. Partially addresses #94.
3851 More work required on this as we work on the
3852 portability in the future.
3854 Expose the underlying session.
3859 Remove unused --priority option.
3861 These offsets / values can be negative, so we shouldn't
3862 use unsigned int type to represent them.
3867 Fix Logon problem for users running Exchange 2k7 in a clustered Exchange environment.
3869 This patch first tries to forge EssDN Logon string from "o" and "ou"
3870 attributes stored in the profile. If Logon fails with ecUnknownUser,
3871 then try to open the mailbox using the mailbox attribute stored in
3877 Document the --label option.
3882 Make openchange compile and work against latest samba4 master git rev (58db2be)
3885 Remove check for unused type 'uint_t'.
3890 More tweaks on the openchangeclient man1 page.
3892 More updates for man1 page for openchangeclient.
3893 Still doesn't fully address #113.
3895 Update the openchangeclient man1 page.
3897 Partly addresses ticket #113.
3899 There is still some work to do on this.
3901 Fix a typo, and try to make the descriptions more
3907 Initial version of man1 page for mapitest
3909 Initial man1 page for exchange2ical utility.
3914 Update man1 page for openchangepfadmin
3916 Minor updates for the man pages.
3921 Fix build errors: wrong number of arguments for ocpf_propvalue
3923 Fix warnings when compiling with -Wextra
3925 Fix warnings when compiling with -Wextra
3927 Fix warnings when compiling with -Wextra
3930 Complete initializers here.
3935 Update to reflect latest state of mapiprofile.
3940 Prevent segfault when running mapitest. Looks like the we can
3941 return MAPI_E_SUCCESS even if one of the property values is
3942 MAPI_E_NOTFOUND. That error then get turned into a char*, and
3945 Also fix a possible bug relating to operator precedence, and
3946 a couple of warnings (one for signed / unsigned comparison, and
3947 the other for an unsigned value never being less than zero).
3952 Enable output to stdout.
3954 Resolves ticket #106.
3956 Thanks to raboof for the report and fix.
3961 Fix missing initialisers (issue #110).
3963 Also fix some signed/unsigned warnings.
3965 Fix problems with incorrect initialisers (#110) and
3966 operator precedence.
3968 Also fix a couple of places with signed/unsigned confusion.
3970 Partial fix for issue #110, and a couple of very minor cleanups.
3977 We probably want to return here, not do nothing.
3982 Fix empty patch function problem: add a retval
3987 Explain the boost-thread trick.
3989 Minor documentation tweaks.
3994 - remove usage of global_loadparm in libmapiadmin
3995 - make use of session context rather than global_mapi_ctx in libmapiadmin
3996 - use local context rather than mapiadmin context in libmapiadmin
3997 - libmapiadmin now uses ldb helper rather than raw implementation (ldb async code)
3998 - libmapiadmin and openchangepfadmin now works again (user creation/deletion) !! ;-)
3999 - remove global_loadparm in torture test and replace it with torture context
4000 - fix dcerpc_init to match latest samba4 API
4001 - update samba4 version required to build openchange
4004 More API documentation tweaks.
4006 More API documentation tweaks.
4008 Some API dox fixes for libmapi++.
4011 Remove unnecessary patching of lib/events/events.h.
4016 Update to a more recent Samba4.
4019 Remove some usages of deprecated global_loadparm.
4021 Cope with new argument to dcerpc_log_packet().
4026 Fix includes for DEBUG(), fix some more warnings.
4028 Use same_net_v4 rather than deprecated same_net().
4030 Fix Samba 4 git revision.
4032 Fix includes - debug.h can only be included once.
4034 Include debug header.
4036 Cope with API changes in Samba functions.
4038 Use new function is_zero_ip_v4 rather than removed is_zero_ip.
4043 Fix OpenMsgStore binding in swig perl and fetchmail script
4048 Fix pointless const definition for GetFreeBusyYear return type
4052 - Add the IsFreeBusyConflict convenient function which checks if a
4053 given date conflicts with existing FreeBusy Busy/OOF events
4055 - Modify openchangeclient --sendappointment behavior to check whether
4056 start or end date conflicts with FreeBusy published data for the
4059 - Add the --force option to openchangeclient to override this behavior
4061 - Fix a counter bug in mapidump_freebusy_events
4063 Fix doxygen typo error
4065 - Add GetUserFreeBusyData convenient function which retrieves FreeBusy
4066 data in public folders for a given user. Note: Ambiguous name is not
4067 supported at the moment.
4069 - Add convenient FreeBusy mapidump routines
4071 - Add FreeBusy read support to openchangelient
4073 - Add PT_MV_LONG and PT_MV_BINARY support to pull_emsmdb_property and
4074 property.c functions
4076 - Add OpenUserMailbox which let developers open other mailboxes
4077 instead of the default profile one.
4079 - Add GetABRecipientInfo: convenient function which retrieves Address
4080 Book information for a given recipient
4085 - Add libmapi implementation for DeletePropertiesNoReplicate
4086 - Add mapitest test units for DeleteProps and DeletePropertiesNoReplicate
4088 Fix doxygen documentation
4093 - Implement multisession into libmapi
4094 - Update openchange tools and suite to reflect these changes
4095 - Fix SRow_addprop behavior
4097 NOTE: OpenMsgStore, ResolveNames, GetGALTable and RFR functions
4098 now take a mapi_session parameter.
4101 Use my openchange.org email address.
4106 - Add a session management API for mapiproxy modules. Similar code
4107 already existed for mpm_cache module. Common functions are now
4108 available to all mapiproxy modules through libmapiproxy
4110 - replace smbd with samba in mapiproxy documentation
4112 - Cache calendar, contact, journal, note, task and drafts folders IDs
4113 when GetDefaultFolder call is performed on one of these folders and
4114 keep them until obj_store is released.
4116 - Add a reverse lookup routine which says whether a given FID belongs
4117 to a default folder and which olFolderType it is.
4119 - Remove pointless memory context in GetDefaultFolder
4120 - Move entryID to FID code into a separated routine (GetFIDFromEntryID)
4122 Restore install rule for mapi profiles ldif files in
4123 libmapi-installscript. Fix the MAPI_E_NO_ACCESS bug when mapiprofile
4124 tries to create a new mapi profile store.
4128 - Ticket #103 resolved. openchangeclient can now perform custom folder lookup, fetch, mkdir and rmdir.
4129 - mapi_object_copy routine added to mapi_object.c
4134 Fix missing Month field in LogonTime structure
4138 propagate IDL warning fix to property.idl
4141 Add target for building python API documentation.
4145 Fix samba4 release and git revision
4147 Fix installsamba4.sh script paths
4152 Install OpenChange python modules.
4154 Check for python dir during configure.
4156 ignore generated files.
4158 Stop installing js files.
4160 Use autoconf cache prefix.
4162 Use newer version of Samba 4.
4166 Remove dcesrv_exchange.so from server Makefile rule and
4167 move mapiproxy from TOOLS to SERVER.
4169 dcesrv_exchange and providers Makefile rules are orphan, planned
4170 to be removed (with their associated code) when emsabp merge process
4171 into mapiproxy is over.
4175 Export the Binary_r structure.
4179 Use more descriptive variable names in messages example code.
4181 Add a description of messages to libmapi++ API documentation.
4183 Add messages binary to the ignore list.
4185 Add new example showing libmapi++ message handling, and
4186 associated API documentation and build system changes.
4190 Update the API documentation main page for libmapi++
4194 Add foldertree binary to the ignore list
4196 - Add missing Input parameter
4197 - Add sanity check on ppNames
4200 - Fix a bug in NspiUpdateStat: make plDelta mandatory and use it for in,out
4201 - Add a NspiGetSpecialTable test for Address Creation Template
4204 Fix valgrind-reported error, per ticket #101.
4206 Make sure we clean up after mapitest runs.
4212 - Add msExchUserAccountControl attribute to extended user record
4213 - openchange_newuser can now create/enable/disable an OpenChange account
4215 Exit the test if the WriteStream operation fails
4217 Fix ncacn_ip_tcp binding string for OpenChange server object
4219 With new NSPI IDL, using cValues - 1 is incorrect and lead to errors. Use cValues directly instead
4221 Fix pipe function check and use ndr autogenerated defines rather than static strings
4222 Fix calls to NspiDNToMId
4225 Make sure we set the body and body format properties, to
4226 ensure that the message is shown correctly with
4227 openchangeclient -F.
4232 - Rename oc_* python scripts to openchange_*
4233 - Add Full Exchange 2003 schema (classes and attributes)
4234 - Full Exchange 2003 modified classes and attributes support
4235 - Add prefixmap OID for some Exchange classes and attributes
4236 - Add missing ADSC classes and attributes
4237 - Improve configuration LDIF file with new objects
4239 NOTE: provision.py should find a way to handle firstorg properly
4240 NOTE: oc_provision_configuration.ldif is still incomplete
4243 API documentation improvements.
4247 Add an example to the libmapi++ documentation, and
4248 the right build magic and doxygen linkage.
4250 Minor API documentation fix
4254 Add forgotten part of API documentation fixes for mapitest.
4256 Improve mapitest API documentation.
4260 Use new DeleteFolder flags to clean up folders on deletion.
4262 This doesn't completely resolve ticket #84, but it does help.
4264 Ignore API documentation.
4266 Add Doxyfile to ignore list.
4268 Add initial support for Doxygen API documentation
4273 Implement the remainder of the standard public folders.
4277 Only do header line removal at the start of the file
4278 (lines 20 through 40 seems like a good compromise).
4280 libmapi++ is C++, not C, so we should not optimise
4281 Doxygen output for C.
4285 - Update the Logon_repl IDL (0xFE) and implementation
4286 - Add new folders to the mapi_obj_store for PF folders
4287 - rename pf_finder to pf_search
4290 Suppress some more unwanted headers.
4294 - Add GetStoreState (0x7b) IDL, implementation and mapitest unit
4298 - Update the EmptyFolder IDL
4300 - Update the SearchFlags enum, GetSearchCriteria and SetSearchCriteria IDL
4301 - Add mapitest units for GetSearchCriteria and SetSearchCriteria
4303 Link libmapi++ documentation to main apidocs page
4305 Update GetAttachmentTable IDL and remove the unknown field
4307 - Update DeleteFolder IDL and implementation
4308 - It now supports DeleteFolderFlags as input parameter and can return the ParticalCompletion state
4309 - Sanity checks added at the beginning of the function
4311 - Rename GetRowCount to QueryPosition
4312 - IDL, implementation, documentation and openchange code updated
4313 - ActionType enum fields prefixed with 'ActionType_'. Original
4314 values were causing conflicts while building Perl bindings with
4315 'i386-linux-thread-multi/CORE/opnames.h where OP_DELETE was already defined'
4317 Change enum SaveFlags to uint8_t for doxygen documentation to be generated properly
4319 - Update SaveChangesMessage IDL and implementation
4320 - Add a SaveFlags parameter to SaveChangesMessage function
4321 - update openchange code to reflect this change
4324 Build fix / fix for ticket #99.
4326 Filter out some new #include lines.
4328 This needs to be applied to other modules too.
4332 Update SRow and SRowSet IDL
4334 Delete obsolete input_locale and instance_key structures
4336 Fix WStringArray_r IDL
4338 - Move from MV_UNICODE_STRUCT and LPWSTR to WStringArray
4339 - LPWSTR structure removed
4341 Rename SDateTimeArray to DateTimeArray_r
4343 Rename SGuidArray to FlatUIDArray_r and fix the IDL
4345 Rename MV_LONG_STRUCT to LongArray_r
4347 Rename SBinary to Binary_r
4349 - Add removal of libmapi++ Doxyfile in make distclean rule
4350 - Add Doxyfile to svn:ignore
4352 Rename SShortArray to ShortArray_r
4354 - Move from SLPSTRArray to StringArray_r
4355 - LPSTR structure removed
4357 Rename MAPIUID to FlatUID_r
4359 Fix lexer warnings during compilation (ticket #100)
4361 - Update the EcDoConnect IDL (ref. ticket #99)
4362 - Add new fields to the emsmdb info structure
4363 - Add doxygen comments to libmapi/emsmdb.c
4366 Reduce warnings when compiling with 64-bit arch.
4368 Initial checkin of infrastructure for libmapi++ API documentation.
4372 - MAJOR NSPI protocol and libmapi stack update
4373 - All NSPI protocol functions implemented
4374 - NSPI stack fully documented
4375 - NspiGetHierarchyInfo renamed to NspiGetSpecialTable
4376 - NspiDNToEph renamed to NspiDNToMId
4377 - instance_key removed from nspi_context and set as a parameter to NSPI functions
4378 - SPropertyRestriction renamed to PropertyRestriction_r
4379 - FlagList structure removed and replaced by a SPropTagArray
4380 - MAPI_SETTINGS removed and replaced by a STAT structure
4381 - new MAPI property tags added to libmapi/conf/mapi-properties
4382 - NSPI module added to mapitest
4385 Clean up on failure.
4387 Clean up on failure.
4389 Minor improvements to ensure cleanup on failure.
4391 API documentation fix
4393 API documentation fix.
4395 API documentation fix.
4397 API documentation fix.
4399 API documentation fixes.
4403 API documentation fixes.
4407 Fix EMSMDB 0xb function name
4409 - update EcRRegisterPushNotification IDL
4411 - implement complete MAPI notifications
4412 - update libmapi to reflect these changes
4413 - make openchangeclient prints a brief summary for each notification found
4414 - update ulEventMask used in openchangeclient
4418 - Rename Advise MAPI call to RegisterNotification
4419 - Update RegisterNotification IDL and implementation
4423 - Fix Restrict IDL and implementation
4424 - Add a new parameter to the Restrict function
4427 Add mapi_nameid.h to the ignore list
4429 - Replace libmapi/mapi_nameid.h with a generated mparse file
4430 - Add a mapi_nameid.h parser to mparse.pl
4431 - Add canonical names for named properties
4432 - GetProps and SetProps resolves named properties if they exist
4433 - named properties can now be set directly and make mapi_nameid API be
4435 - replace named property tags hex value with their canonimal names
4436 - replace several use of the mapi_nameid API with smaller code
4438 - Add new IDL file (property.idl) to push/pull structures from binary
4439 blobs and not directly related to any MAPI calls. Include the
4440 generated property.h file into libmapi.h
4442 - Add PT_MV_STRING8 support in pull_emsmdb_property (GetProps reply
4443 parsing) and mapidump_SPropValue
4445 - Add functions to property.c to retrieve RecurrencePattern,
4446 TimeZoneStruct and GlobalObjectId structures (see property.idl).
4448 - add a preliminary version of exchange2ical tool. This version only
4449 dumps calendar folder appointments into ICS file on standard output.
4453 - Update mapi-nameid-properties with a more complete set of properties
4454 - Add a header to mapi-nameid-properties for sanity purposes
4455 - Move named properties with PT_STRING8 type to PT_UNICODE
4456 - update openchange code to reflect these changes
4457 - Add PSETID_Attachment to mapidefs.h
4461 Add missing check on password for the create command
4463 Fix incorrect usage of realm in mapiproxy
4467 Check for provider_rpc_connection retval for RFR functions.
4469 Update Doxyfile to parse mapiproxy/modules files and
4470 include documentation on static functions.
4472 - Add NSPI hook on NspiQueryRows and NspiDNToEph and replace the
4473 Exchange server name with mapiproxy one.
4474 - documentation updated to reflect these changes
4475 - new FAQ question added
4476 - developer documentation improved
4478 Add the RFR mapiproxy file.
4480 - Implement RfrGetNewDSA DN replacement in mapiproxy
4481 - use lp_realm rather than sockaddr in NspiGetProps (FQDN rather than IP address)
4482 - update mapiproxy documentation to reflect these changes
4486 - Add implementation of the NSPI Referral protocol (exchangeRFR)
4487 - update dcesrv_exchange and mapiproxy prototypes for RFR
4488 - add references to the RFR pipe in mapiproxy
4489 - prefix NSPI client connections with a RfrGetNewDSA call
4490 - add RFR functions implementation in libmapi/IMSProvider.c
4491 - add a --getfqdn option to mapiprofile
4492 - fix a minor mapiprofile option parsing bug
4496 Fix mapiproxy dummy module unbind prototype
4498 - Remove flags in EcDoRpc top function, fix compilation vs latest samba4-git version
4499 - EcDoRpc indent updated
4503 Get rid of initialization order warning
4507 - add unbind hook for mapiproxy
4508 - add ahead mapiproxy mode
4509 - add read ahead in cache module
4510 - add synchronization mechanism in cache module
4511 - update mapiproxy documentation to reflect these changes
4515 Temporarily comment out installation of files removed
4520 Fix arguments, paths in provision scripts.
4522 Merge python provision/newuser scripts.
4524 Simplify installation of manpages a bit.
4528 Add configure check for libboost-thread. Add libmapi++ to the build
4529 only if it is available.
4533 - session constructor doesn't login to the server anymore, it calls MAPIInitialize().
4534 - Created session::login() members.
4535 - test applications use default profile.
4539 - Import Alan Alvarez work from libmapi++ into trunk
4540 - Add a g++ check in configure.ac: don't call libmapi++ rules if g++
4542 - Add libmapi++ to the build system
4543 - Add a patch function to installsamba4.sh: rename private to
4544 private_data in samba4 events.h header file
4545 - Change #include directives so it uses <libmapi++ ... rather than
4550 - Add a statitic function monitoring streams over OpenStream and Last
4551 ReadStream operations. Monitoring stream Release is not relevant
4552 since Outlook does not close the handle directly after last
4553 ReadStream operation. Should put in evidence difference between
4554 non-cached(1st retrieval) and cached (further retrieval).
4556 - Fix a few memory leaks
4560 - Commit initial revision for the mapiproxy cache module
4561 - Update mapiproxy hook API for the dispatch routine
4562 - Introduce the mapiproxy structure for modules to control top-level
4564 - Update mapiproxy documentation to reflect these changes
4568 * Fix remaining ByteRead parameter size for ReadStream operations.
4572 * Improve/Update Open/Read/WriteStream IDLs
4573 * Fix ByteRead parameter size for ReadStream operation.
4577 Improve OpenAttach, CreateAttach and DeleteAttach IDL - remove unknown
4580 Propagate r666 changes to OpenMsgStore and fix build
4583 Minor rename of bitmap value to avoid conflict with
4584 Private as a class name.
4588 Minor change: remove old debugging string from mapitest
4590 Fix incorrect header
4592 Remove deprecated mapi_handles API
4595 Initial checkin of some uno (static checker) support
4598 There will be a script to run uno with the right options,
4599 but that requires more work.
4603 Fix OXOMSG-ABORT-SUBMIT return value and return success when expected
4604 error values (MAPI_E_UNABLE_TO_ABORT, ecNoDelSubmitMsg) are encountered.
4606 - Call mapi_object_release in GetDefaultFolder
4607 - Remove pointless references to mapi_object_t
4610 Fix little memory leak.
4614 Fix invalid OpenFolder calls in mapitest modules
4616 Remove references to SaveChanges in doxygen see also statement
4618 - Rename SaveChanges to SaveChangesAttachment (0x25)
4619 - Update SaveChangesAttachment IDL
4620 - Update references to SaveChanges
4622 - Fix the huge memory leak described in Ticket #91
4623 - Rewrite the mapitest NameID test to use the mapi_nameid convenient
4628 - Add mapi_get_errstr auto-generated routine which returns the MAPI
4630 - Add print routine for MAPI retval in mapitest
4631 - Add a color mode (--color) which prints either green or red MAPISTATUS
4632 - Update mapitest modules to use these new routines
4635 Minor API documentation fix.
4641 - Add GetOwningServers (0x42) implementation (IDL + libmapi + mapitest)
4643 - Report and make consistent usage of PropertyProblem in the IDL:
4644 SetProps, DeleteProps and CopyProperties
4646 - Remove unknown field in GetProps and GetPropsAll and replace them
4647 with the correct IDL mapping.
4649 - Add IDL for SetPropertiesNoReplicate (0x79) MAPI call
4651 - Minor typo fix in IMAPIProp.c
4653 Improve CreateMessage request IDL
4655 Improve OpenMessage response IDL
4657 - Add PublicFolderIsGhosted (0x45) MAPI call (IDL + libmapi + mapitest)
4659 - Improve OpenFolder, CreateFolder and OpenPublicFolderByName response
4660 IDL: make these call able to check whether the folder is ghosted or
4663 Revert emsmdb pipe version to the hacked one. Makes mapiproxy work with samba4-alpha5 release.
4665 SeekRow and SeekRowBookmark IDL improved
4667 Improve the SetColumns IDL: remove unknown fields
4671 Minor code convention fix
4673 Check NTSTATUS return value from dcerpc_ndr_request. Prevent mapiproxy
4674 from segfault when invalid dcerpc response is received.
4676 Expose MAPISTATUS error in OXCTABLE-CATEGORY::FreeBookmark.
4677 Requires investigation
4680 Implement GetIdFromLongTermId and GetLongTermIdFromId
4681 functions (ROP:0x43 and 0x44), and associated mapitest.
4683 Documentation typo fix.
4685 Change the QueryNamesFromIDs() call to match
4686 MSDN, including changing the name to QueryNamedProperties().
4688 Also implement mapitest for QueryNamedProperties(),
4689 GetNamesFromIDs() and GetIDsFromNames().
4691 Update torture test to match.
4695 - Build system update: use samba4-alpha5 release with wget method
4696 - introduce 'make samba' and 'make samba-git'
4700 Make sure we have names[] array large enough.
4702 Problem identified using default uno run.
4708 Fix a small errno bug in GetBestBody
4709 Add dump-data and debug options to exchange2mbox
4713 - Move emsmdb interface version back to 0.81 (patch applied in samba4 trunk)
4714 - remove sed hack, modifications applied in samba4 trunk
4715 - update required samba4 git rev required
4722 Minor documentation update: remove deprecated reference to ./bin/smbpython
4724 Fix torture suite entry point name
4725 Fix torture module installation path
4727 - Add implementation for the BestBody algorithm
4728 - Add MAPI_E_NOT_ENOUGH_MEMORY error code
4729 - Remove trailing }}\0 from lzfu code
4730 - Update openchange tools to use GetBestBody rather than
4731 the initial check on PR_MSG_EDITOR_FORMAT
4733 Add a very basic stat module for mapitest: gives a quick overview
4734 of tests which failed at the end of the report.
4736 - Defines a global stream size in mapitest.h
4737 - Decrease stream size from 0x4000 to 0x3000
4738 Sounds like Exchange 2003 SP2 doesn't support 0x4000, return MAPI_E_CALL_FAILED
4743 Fix OC_CHECK_SAMBA_VERSION string
4745 - Move samba4_ver.sh from top dir to script
4746 - update parts of openchange relying on samba4_ver.sh
4748 Add configure check for lib Z
4751 - Temporary fix ldb.pc problem and patch ldb.pc.in
4752 - Update samba4 version to the latest revision
4753 - Add libmapiproxy to svn:ignore proplist
4756 Try a different git revision, just for now.
4760 - Update Samba4 version needed
4761 - Change entry point function from init_module to samba_init_module
4762 - update documentation
4766 Fix calls of ldb_init() as required by newer versions of Samba.
4770 Support newer versions of Samba4.
4774 Add some other standard GUIDs
4782 Use version and soversion in mapiproxy library.
4784 Make modules directory overridable.
4788 Change API as identified on devel mailing list.
4791 After some investigation into an error reported by valgrind, I'm proposing an
4792 API change for the MoveCopyMessages() function.
4794 The signature is currently
4795 enum MAPISTATUS MoveCopyMessages(mapi_object_t *obj_src, mapi_object_t
4796 *obj_dst, mapi_id_t *message_id, bool WantCopy)
4798 The problem is the message_id array. The subtle part is that it needs to be
4799 terminated with a null mapi_id_t*, because of this:
4800 for (request.count = 0; message_id[request.count]; request.count++);
4802 That is a bit error prone - enough so to be wrong in the mapitest.
4804 Now we could just fix the mapitest and document the requirements, or we could
4805 change the signature.
4807 Two ideas for a different signature:
4808 1. We could add a uint16_t count to the signature, that says how long the
4810 2. We could use a better data structure than mapi_id_t*. I'm suggesting
4812 enum MAPISTATUS MoveCopyMessages(mapi_object_t *obj_src,
4813 mapi_object_t *obj_dst,
4814 mapi_id_array_t *message_id,
4819 Add mapitest coverage for CopyTo operations on
4820 folders and attachments, and update API docs.
4822 Also fix one place where we inadvertently used
4823 CopyProps instead of CopyTo...
4827 Typo fixes in comments.
4829 Minor documentation updates.
4831 Clean up created message for SpoolerLockMessage() test.
4835 Update samba4 version test.
4839 Make sure properties are copies into the last valid
4840 location in the extended array (i.e. count-1) not the
4843 Also, make sure we cast the data to a uint8_t for
4844 conversion to boolean.
4846 Also fix compile warning about returning integer instead
4849 We may read up to 0x1000 bytes, so ensure there is
4850 enough room to add the terminating null.
4852 Minor cleanup of the talloc context for FreeBookmark().
4854 Also change around some code to protect things a bit
4855 better against null pointer inputs.
4859 Implement a bit more mapitest for CopyTo (0x39), in
4862 Also make it clean up and report failures properly.
4866 Implement the CopyTo operation (0x39), including initial mapitest.
4867 JK previously committed the IDL for this.
4869 Also make CopyProps (0x67) use an appropriate data structure for
4870 its IDL and update implementation to match.
4874 Minor documentation updates/corrections.
4878 Introduce a default case for MAPI Restriction. In some circumstances -
4879 while Outlook creates an OOF Rules - it sets a PT_SRESTRICT mapi
4880 property tag which value is set to 0xFF. However 0xFF doesn't match
4881 any restriction case.
4885 - Add IDL for OpenEmbeddedMessage (0x46) MAPI call
4887 - Add IDL for ReloadCachedInformation (0x10) MAPI call
4889 - Add IDL for CopyTo (0x39) MAPI call
4891 - Update the Samba4 GIT revision needed to run openchange properly
4893 - import mapiproxy project from mapiproxy branch
4894 - add custom proxypack MAPI call
4895 - remove deprecated dcesrv_exchange_remote
4898 Add missing part of mapitest for SetReadFlags
4900 This should have been part of r578.
4902 mapitest for SetReadFlags
4904 Implement SetReadFlags (operation 0x66).
4906 Also minor API docs fix.
4908 Move some test infrastructure from the oxctable.c module
4909 into the common area.
4911 Fix IDL error for SetReadFlags, and use existing flags
4912 define (MSGFLAGS_READ) instead of creating a new set.
4914 Build fix for relocation of mapiproxy/ to be under the
4915 top level directory (instead of under the utils/
4920 merge from mapiproxy branch:
4921 * ndr_push Logon_req manually
4923 merge from mapiproxy branch:
4924 * Add IDL and server boiler template for EcDoConnectEx (0xA)
4927 * Fix ndr_push_mapi_response code in ndr_mapi.c
4929 * Add the ndr_push_EcDoRpc_MAPI_REPL function in
4930 ndr_mapi.c. Handles special Notify and Pending cases
4932 * Handle op_MAPI_Pending case properly in
4933 ndr_pull_EcDoRpc_MAPI_REPL
4935 * Add code to ndr_push QueryRows in ndr_mapi.c: Do not push any
4936 DATA_BLOB if there is no RowCount
4938 merge from mapiproxy branch:
4939 * Fix GetReceiveFolder [out] IDL
4940 * Fix some naming convention typo
4942 merge from mapiproxy branch:
4943 * Fix SetMessagReadFlag [out] IDL
4945 - Add [flag(NDR_REMAINING)] to SetMessageReadFlag. This is not
4946 perfect, but it will prevent mapiproxy from ndr_pull error while
4947 setting message read flag on public folders messages.
4949 merge from mapiproxy branch:
4950 * Fix CreateMessage [out] IDL
4952 merge from mapiproxy branch:
4953 * rename OpenModeFlags to OpenFolder_OpenModeFlags in OpenFolder
4954 * rewrite OpenMessage [in] IDL and report changes in
4955 libmapi/IStoreFolder.c
4957 merge from mapiproxy branch:
4958 * Add IDL for Pending (0x6e) MAPI call
4959 * Reorder some MAPI calls in EcDoRpc_MAPI_REPL_UNION
4961 - Add SetReadFlags to EcDoRpc_MAPI_{REQ,REPL}_UNION
4963 merge from mapiproxy branch:
4964 * Add IDL for SetSyncNotificationGuid (0x88) MAPI call
4966 merge from mapiproxy branch:
4967 * Add IDL for SyncGetTransferState (0x82) MAPI call
4969 merge from mapiproxy branch:
4970 * Add IDL for SyncImportReadStateChanges (0x80) MAPI call
4972 Note: This IDL is temporary and should be improved after completion of
4973 the merging process.
4975 merge from mapiproxy branch:
4976 * Add IDL for SyncOpenCollector (0x7e) MAPI call
4978 merge from mapiproxy branch:
4979 * Add IDL for DeletePropertiesNoReplicate (0x7a) MAPI call
4981 merge from mapiproxy branch:
4982 * Add IDL for SyncImportMessageMove (0x78) MAPI call
4984 merge from mapiproxy branch:
4985 * Add IDL for SyncUploadStateStreamBegin (0x75) MAPI call
4986 * Add IDL for SyncUploadStateStreamContinue (0x76) MAPI call
4987 * Add IDL for SyncUploadStateStreamEnd (0x77) MAPI call
4989 merge from mapiproxy branch:
4990 * Add IDL for SyncImportDeletes (0x74) MAPI call
4992 merge from mapiproxy branch:
4993 * Add IDL for SyncImportHierarchyChange (0x73) MAPI call
4995 merge from mapiproxy branch:
4996 * Add IDL for SyncImportMessageChange (0x72) MAPI call
4998 merge from mapiproxy branch:
4999 * Add IDL for SyncConfigure (0x70) MAPI call
5001 merge from mapiproxy branch:
5002 * Add IDL for RegisterOptions (0x6f) MAPI call
5004 Note: This call is undocumented in Microsoft documentation, but MSDN
5005 RegisterOptions function generates this call on the wire.
5007 merge from mapiproxy branch:
5008 * Add IDL for Progress (0x50) MAPI call
5010 merge from mapiproxy branch:
5011 * Add IDL for FastTransferSourceGetBuffer (0x4a) MAPI call
5013 merge from mapiproxy branch:
5014 * Add IDL for GetPerUserLongTermIds (0x60) MAPI call
5015 * Add IDL for GetPerUserGuid (0x61) MAPI call
5016 * Add IDL for ReadPerUserInformation (0x63) MAPI call
5018 merge from mapiproxy branch:
5019 * Add IDL for LongTermIdFromId (0x43) MAPI call
5020 * Add IDL for IdFromLongTermId (0x44) MAPI call
5022 merge from mapiproxy branch:
5023 * Add IDL for ModifyRules (0x41) MAPI call
5025 merge from mapiproxy branch:
5026 * Add PT_SRESTRICT support in mapi_SPropValue_CTR
5028 * Add PT_ACTIONS and RuleAction support in mapi_SPropValue_CTR
5030 * Fix mapi_SNotRestriction NDR push routine - add a wrapper to
5031 work around the no-pointer deep recursion pb and remove
5032 existing nopull,nopush,noprint code from ndr_mapi.c
5034 * Fix mapi_SComment_Restriction IDL
5037 - Introduce PT_MV_UNICODE support in mapi_SPropValue_CTR (IDL only)
5038 - use mapi_LPWSTR for PT_MV_UNICODE
5039 - rename mapi_LPWSTR structure to mapi_name in Kind structure and
5040 change its field names.
5042 - Fix emsmdb version
5043 - Change MAPI opnum enum identation -- Helps to fine down merging from
5049 Minor API documentation fixes.
5051 Update label to reflect SetReadFlags -> SetMessageReadFlag
5054 This should have been part of r529 - missed it.
5058 merging from mapiproxy branch:
5059 - Fix MV_UNICODE_STRUCT and unicode strings
5060 - Keep LPWSTR for exchange_nsp and move from LPWSTR to
5061 mapi_LPWSTR for exchange_emsmdb
5062 - Add the NspiGetTemplateInfo IDL
5063 - Fix the NspiUpdateStat IDL
5065 Fix build: SetMessageReadFlag function name was not propagated in the
5069 Initial merge of changes for rename of SetReadFlags to
5070 SetMessageReadFlags (op 0x11) and IDL for SetReadFlags
5073 Use private_data instead of private, for C++ happiness.
5075 Minor cleanup. Using "try" confuses my c++ compiler...
5077 This is really part of r525. It moved to IMAPITable.c
5079 Update the table operations:
5080 - implement ExpandRow and CollapseRow
5081 - implement GetCollapseState and SetCollapseState
5082 - add mapitest coverage for the above, plus the Restrict call
5083 - implement ResetTable
5084 - implement FreeBookmark
5085 - add mapitest coverage for SRowSet parsing code
5087 - various API documentation bits
5090 Use right directory for samba4_ver.sh script.
5092 Use common location for Samba 4 git revision.
5096 Use PT_ERROR where appropriate.
5098 Update the SRowSet parser, fixing breakage I introduced.
5102 Update examples to reflect recent API changes.
5105 Don't rely on absolute file paths since the distribution may be installing
5108 make scripts executable.
5112 Avoid segfaulting if you ask for a specific test or tests and
5113 forgot to start the server.
5116 [bradh@conferta trunk]$ ./bin/mapitest --mapi-calls=OXCTABLE-CATEGORY --mapi-calls=OXCTABLE-RESTRICT --mapi-calls=NOSERVER-LZFU
5117 Failed to connect host 192.168.11.77 on port 135 - NT_STATUS_HOST_UNREACHABLE
5118 Failed to connect host 192.168.11.77 (192.168.11.77) on port 135 - NT_STATUS_HOST_UNREACHABLE.
5119 MapiLogonEx : MAPI_E_RESERVED (0xFFFFFFFF)
5120 #############################[mapitest report]#################################
5121 [*] Date : Sun May 25 11:45:29 2008
5122 [*] Confidential mode : [no]
5123 [*] Samba Information : 4.0.0alpha4-GIT-44d8b70
5124 [*] OpenChange Information : 0.8-SVN-build-510 (Romulus)
5126 [*] System Information :
5128 Kernel release : 2.6.23.17-88.fc7
5130 ###############################################################################
5134 [TEST] NOSERVER-LZFU
5135 ------------------------------------------------------------------------
5136 * uncompress_rtf2 : 0x00000000
5137 * uncompress_rtf2 : PASSED
5138 ------------------------------------------------------------------------
5139 [RESULT] NOSERVER-LZFU: [SUCCESS]
5140 ========================================================================
5142 [*] OXCTABLE-RESTRICT
5143 Server is offline, skipping test: "OXCTABLE-RESTRICT"
5144 [*] OXCTABLE-CATEGORY
5145 Server is offline, skipping test: "OXCTABLE-CATEGORY"
5149 ignores objects that contain invalid handlers in mapi_object_release().
5151 Patch by Alan Alvarez. Compile tested, passes mapitest on SBS2003.
5155 Fix API documentation to match signature.
5159 Update QueryRows IDL and implementation to match
5162 The main work here is reworking the SRowSet parsing
5167 Typo fix - allow cleanup to work properly.
5171 Make sure it has a return value.
5175 Rename GetColumns remote operation to GetColumnsAll, and
5176 fix up IDL and implementation to match.
5178 Add some more unit test coverage, and pretty-up the
5181 Fix up breakage introduced in r493.
5184 Make sure nagios directory gets created if it didn't exist yet.
5188 Refactor the unit tests.
5190 Extract out the setup and some of the cleanup code.
5194 - Update openchange code to work with Samba4 4.0.0alpha4-GIT-44d8b70
5195 - Use event_context structure
5196 - update installsamba4.sh script to revert to this revision.
5197 - update torture modulesdir reference
5200 Look a little bit harder for the Samba installation.
5204 - Add GetLocalReplicaIds MAPI call (IDL + implementation + mapitest)
5205 - Add OXCFXICS mapitest module
5209 - Fix "the very secret" openchange coding style
5210 - Add Copyright for our humble new libmapi developer ;-)
5213 Implement the CopyProperties operation, including
5214 a mapitest for this.
5218 - Add TransportSend MAPI call (IDL + implementation + mapitest). This
5219 code maybe needs some review regarding memory.
5221 - Add the GetTransportFolder MAPI call (IDL + implementation +
5224 - Add SpoolerLockMessage MAPI call (IDL + implementation + mapitest)
5226 - Add SetSpooler MAPI call (IDL + implementation + mapitest)
5228 - Add GetRulesTable (IDL + implementation + mapitest)
5229 - Add the OXORULE mapitest suite
5235 Make sure config.mk is the last file removed during distclean.
5239 - Add the Abort MAPI call (IDL + implementation)
5241 OpenChange doesn't support yet asynchronous operation which explains
5242 why no associated mapitest test has been implemented. This should be
5245 - Add the MoveFolder MAPI call (IDL + implementation + mapitest)
5246 - Fix some typo in mapitest doxygen
5248 - Add MoveFolder MAPI call (IDL + implementation + mapitest)
5249 - Fix some doxygen stuff
5250 - add a common function within mapitest which looks for a folder name
5251 within a container and return the opened folder object on success.
5253 Add auto-generated Doxyfile to the svn ignore list
5255 - Add AbortSubmit MAPI call (IDL + implementation + mapitest)
5257 - Uninitialize MAPI and general memory context at the end of mapitest
5260 Clean up / flush the stream after use.
5262 Saves a bit more "still reachable" in valgrind too.
5266 - Rename CopyMessages to MoveCopyMessages
5267 - Improve IDL + implementation and mapitest added
5270 Make sure the version shown for mapitest documentation
5271 is automatically set to match the package version.
5273 complete the rest of the API documentation autonumbering.
5276 Remove duplicate use of $(SHLIBEXT).
5278 Avoid parallel builds for now.
5282 Fix GetContentsTable binding in perl swig
5284 - Improve the GetHierarchyTable and GetContentsTable IDL and public
5285 IDL implementation (new parameters in,out)
5288 Initial part of automatic list numbering for doxygen comments.
5290 This doesn't work correctly with the current apidocs.css, which
5291 turns the list numbers into bullet points for reasons I don't
5296 - Improve the DeleteMessages IDL request
5298 - Update libmapi version from 0.7 to 0.8
5300 - Public API change for the GetReceiveFolder function; now takes a
5301 message class as 3rd parameter.
5303 - Improve GetSearchCriteria request IDL (unknown removed)
5304 - update libmapi copyright headers 2007 -> 2007-2008.
5306 - Improve the SubmitMessage IDL
5307 - minor indentation fixed in IMessage.c
5309 - Add CopyToStream MAPI call (IDL + implementation + mapitest)
5311 - Add SeekStream MAPI call (IDL + implementation + mapitest)
5312 - Add SetStreamSize MAPI call (IDL + implementation + mapitest)
5314 - Add CommitStream MAPI call (IDL + implementation + mapitest)
5315 - Add GetStreamSize MAPI call (IDL + implementation + mapitest)
5316 - refactor the stream test to include all stream related operations
5317 - add a common function which generates a random ASCII blob of data
5320 Add doxygen support for the mapitest examples.
5323 Allow cleaning individual parts.
5327 - Add GetStatus call (IDL + implementation + mapitest)
5329 - Fix format string problem in mapitest headers
5331 Run offline suites by default.
5333 - Introduce the online/offline mode for suite
5334 - Fix Exchange headers print bug when server is offline
5335 - reset errno to 0 before running new test
5338 Install the libmapiadmin.h header.
5340 Fix a compile-time warning on amd64, for the second
5341 argument to the getline() call - incompatible pointer
5344 I'm assuming that size_t is equivalent to uint32_t
5345 on a 32-bit architecture, but not on a 64-bit arch.
5347 A quick test showed no difference in actual output.
5350 Remove bashisms in installsamba4.sh
5354 - Add ReadRecipients MAPI call (IDL + implementation + mapitest)
5355 - Improve some ModifyRecipients and Recipients structure naming
5359 - Add RemoveAllRecipients call (IDL + implementation + mapitest)
5361 - Add OpenPublicFolderByName call added (IDL and implementation).
5363 - Note: the reply IDL doesn't handle Server and ServerCount yet.
5365 - Note: this call only refers to NNTP folders (e.g: folders located
5366 within "Internet Newsgroups". If developers use this call within "All
5367 Public Folders", then the call with return MAPI_E_NOT_FOUND.
5369 - Call not added to mapitest cause it require RightsAuthor permissions
5370 on Internet Newsgroups which is not the case by default.
5372 - dump-data and debug options added to mapitest
5373 - FOLDER suite renamed to OXCFOLD (naming convention)
5375 Rename module folder to oxcfold
5377 Replace the existing mapitest tool with a new implementation. It is
5378 less complete but more modular.
5381 Add proto headers to ignore file.
5385 OpenFolder request: replace unknown field with OpenModeFlags
5387 - Rename 0xFE opnum from OpenMsgStore to Logon
5388 - Update the Logon request IDL
5391 Add BEGIN_DECLS for private_proto.h.
5393 Add forgotten part of rev435.
5395 Add unit test framework for compressed RTF decoding.
5397 Refactor lzfu.c to improve testability.
5401 Fix openchangeclient --mailbox --pf with wasn't launched anymore due
5402 to some incorrect sanity check tests.
5404 - Remove deprecated fuzzer_msgstore torture test
5405 - replace mapi_flags with logon_id in EcDoRpc_MAPI_REQ
5409 A couple of minor fixes to make it read better.
5412 properly clean up sofiles
5414 Import exchange nagios check script by Bill Edmunds.
5416 Add support for creating libocpf soname symlink.
5418 Use standard include for uint64_t definition.
5420 Cleanup talloc and tdb before building samba4.
5424 Check for ocpf_set_Recipients retval (MAPI_E_NOT_FOUND)
5426 - Reset ocpf to NULL after release so the ocpf_init/release couple can be called more than once.
5427 - Sanity check on recipient, avoid parsing if no recipient is set. Return MAPI_E_NOT_FOUND instead.
5429 Add reference to the ocpf lib within the pc file.
5433 Remove duplicate SWIG instructions (already covered by stdint.i).
5435 Ignore files created by swig.
5437 Use config.mk in swig/perl/Makefile.
5439 Allow sambaprefix and prefix to be different. Allow building with unknown
5440 Samba git revisions (will still warn though).
5442 Add --with-samba argument to configure so samba and openchange can be installed in different directories.
5446 Add domain to the mapiprofile dump output.
5448 Fix OpenMessage IDL and GetRecipientTable fetched data
5450 -This line, and those below, will be ignored--
5453 M trunk/exchange.idl
5454 M trunk/libmapi/IStoreFolder.c
5455 M trunk/libmapi/emsmdb.c
5456 M trunk/libmapi/IMessage.c
5460 Fix typo, change samba-config -> samba-hostconfig.
5464 - Add openchangepfadmin to make install
5465 - Add openchangemapidump and locale_codepage to make clean
5469 Merge the samba4-latest branch.
5473 Revert so version number to 0.7
5475 Fix Perl bindings: update mapidump_message
5477 ** Start libmapi-0.8 ROMULUS development **
5479 Add ChangeLog and apidocs to the releases
5481 - Delete unmaintained regression suite
5482 - Fix typo error in torture-clean rule
5484 Add modified release script originally from abartlett/samba4
5486 - Check for specific Samba4 git revision in configure.ac
5487 - Prefix locale functions with lcid and make them _PUBLIC_
5490 API documentation update.
5497 Add installation script for samba4
5499 - Apply the nspi pointer patch - make openchange works with
5500 samba4-alpha3 git 41309dc
5505 Move the top level API documentation to an "overview"
5506 section and add a redirect to that overview.
5508 This keeps the doxygen output more nicely separated for
5511 Also, generate the man pages where the install expects
5516 - Fix strsep bug in openchangeclient
5517 - Add RECIPIENT support to libocpf
5519 - escape/unescape strings support added
5520 - PT_MV_STRING8 type added to OCPF write API
5524 - return MAPI_E_NOT_FOUND if NspiGetMatches doesn't return any results
5525 (based upon patch from lofi@mountproc.org)
5526 - makes the workstation parameter of mapiprofile optional (use
5527 gethostname if not defined by the user on command line)
5529 - Fix an allocation memory problem in cast_SPropValue
5530 - update svn:ignore proplist
5534 Update the documentation build so it keeps generating an embedded
5535 website in with apidocs/html as root directory.
5537 - Add support for PT_UNICODE and PT_SHORT to libocpf
5538 - Initial implementation of the libocpf write API
5539 - Update libocpf documentation
5540 - add --ocpf-dump option in openchangeclient
5541 - Fix realdistclean rules for server
5542 - add cast_SPropValue function to libmapi/property.c which cast
5543 mapi_SPropValue to SPropValue
5546 Split API documentation into two separate sections - one
5547 for libmapi and one for libocpf.
5549 Also add in a top level intro page.
5553 New build system which gathers a list of things that can be built with
5554 the libraries/utilities the user has installed and build that when
5559 Add missing allocation for OLEGUID
5561 --ocpf-syntax doesn't require MAPI to be initialized. Furthermore
5562 makes ocpf-syntax "exclusive" (quit after performing the operation).
5565 r371 was bad. What was I thinking with that nonsense!
5567 Revert to something sane.
5569 Make the ./bin/ directory if it doesn't exist.
5571 This should resolve ticket #33.
5575 Improve language handling when creating profiles.
5577 You can now get a list of valid languages and use either
5578 the language code ID or the language name to specify what
5579 language later versions of Exchange should reply with.
5581 Typo fix - duplicate ; at the end of the structure.
5583 Match format to unsigned int argument.
5585 Make the format specifier match the unsigned argument.
5589 propset svn:ignore update
5591 Update propset svn:ignore on doc/examples and libocpf targets
5593 - Fix ticket #29: http://trac.openchange.org/ticket/29
5595 - use access(2) to see if the database already exists
5596 - test if the profile already exists prior trying to add it
5597 - add descriptive error messages
5598 - catch CTRL-C signal and run a profile deletion routine
5601 Update API documentation for ocpf_nproperty_add().
5607 Fix mapidump_message call parameters
5611 Add fid/mid parameters to mapidump_message and changed
5612 openchangeclient_fetchitems to reflect these changes.
5614 Patch from Brad Hards <bradh@frogmouth.net>:
5615 updates the OCPF doxygen file.
5617 Patch from Brad Hards <bradh@frogmouth.net>:
5618 adds the doc/examples into the build system and enables make examples.
5620 Patch From Brad Hards, <bradh@frogmouth.net>:
5621 API documentation update and minor fix for the error value change.
5629 - Add PT_BINARY property support to OCP
5630 - Add stream support to OCPF for large PT_BINARY blobs.
5631 - Fix a bug which prevented from having no/empty PROPERTY or NPROPERTY
5636 - Prevent from assigning a value which type doesn't match with
5638 - Add missing substitution variable support for some named properties
5640 - Improve sample_appointment.ocpf example
5641 - Add PT_MV_STRING8 keyword to the list of supported property type
5646 Improve OCPF PT_MV_STRING8 support.
5648 - Initial revision for libocpf and its documentation
5649 - YACC support added to the build system
5650 - custom lid and string support in mapi_nameid
5651 - lookup functions added for OOM, lid and string
5652 - OCPF commands added to openchangeclient (ocpf-file, ocpf-syntax,
5654 - PR_FID displayed in openchangeclient --mailbox
5655 - PT_MV_STRING8 support added to cast_mapi_SPropValue
5659 Patch from Brad Hards <bradh@frogmouth.net>:
5660 updates code to build with current API
5662 Patch from Brad Hards <bradh@frogmouth.net>:
5663 little update for some API dox
5667 - Add --update option to openchangeclient and allow users to modify
5668 existing messages (calendar, task, contact, note)
5669 - Add --delete option to openchangeclient and allow users to delete
5670 existing messages (calendar, task, contact, note)
5671 - Add some folder/message unique ID to mapidump outputs and send*
5672 openchangeclient functions.
5673 - Fix a bug in set_SPropValue: add sanity check on unicode
5674 string. Thanks to Suman Manjunath for this patch.
5675 - Fix mapidump_task function and identifiers of named properties used.
5679 Fix missing sanity check on priority
5681 Fix a bug in openchangeclient when tasks are created without body
5683 private flag added to openchangeclient appointments
5685 Fix folder IDs problem for Exchange 2007 SP1
5689 Fix names IDL against Samba4 4.0.0alpha3-GIT-41309dc
5693 - Fix a bug in IStoreFolder.c:OpenMessage which was also affecting
5694 GetRecipientTable. We were extending SPropTagArray prior calling
5695 emsmdb_get_SRow. This was causing ndr_pull_error in OpenMessage_repl
5696 and erroneous data to be inserted in the SRow.
5698 - Fix libmapi/socket/interface.c:
5699 - Use the latest version from Samba4 which removes reference to
5701 - Moves struct interface declaration to netif.h
5702 - Report changes to emsmdb.c notification functions.
5704 - Change GetGALTable prototype to match general libmapi policy. Remove
5705 the usage of bool and replace it with uint8_t. Possible values added
5710 - Improve NspiQueryRows IDL and implementation
5711 - Add GetGALTable implementation: fetch all the Global Address List
5713 - Add --userlist option to openchangeclient
5714 - Add a convenient and basic dumping function for Global Address List
5717 - Improve OpenMessage reply IDL
5718 - Fetch mapi recipients from OpenMessage reply
5719 - Add GetRecipientTable convenient function
5720 - Add OPENCHANGE-MAPI-RECIPIENT torture test to test
5721 GetRecipientTable implementation.
5722 - Add convenient SPropTagArray_add function
5723 - Add internal emsmdb_get_SRow routine
5727 Patch from Suman Manjunath <msuman@novell.com>:
5729 - Adds named-properties which define recurrence patterns for
5730 appointment and task.
5731 - Adds named properties for appointment timezone
5733 - Fix the SNotRestriction IDL and write custom push,pull,print
5735 - Add 2 new MAPI calls to the IDL:
5736 * GetSearchCriteria,
5738 - add sample {Get,Set}SearchCriteria torture test
5739 - add convenient mapi_id_array implementation
5740 - add GetDefaultFolder support for CommonView and Finder folders
5744 Make sure directory exists.
5748 - Fix tiny 'nail down samba4 version' bug
5749 - update the minimal Samba4 required version
5751 - Add FindRow call to the IDL
5752 - Improve mapi_Restriction support
5753 - Remove deprecated ndr_print_QueryRows function
5754 - Add a print function for fuzzyLevel
5755 - Add preliminary FindRow implementation test to MAPI-RESTRICTIONS
5757 - Add couple of new MAPI tags to mapi-properties
5758 - change initial bookmark index to 3
5762 - Add 2 new MAPI calls to the IDL and mapitest:
5764 * GetReceiveFolderTable
5766 - Fix a bug in the SortTable test when no messages are returned by
5769 - Add SeekRowApprox to the IDL and mapitest
5770 - Fix some doxygen typo
5772 - New calls added to the IDL, torture suite and mapitest:
5775 - Internal mapi_object_bookmark_t implementation added to
5777 - SBinary_short default ndr_print function changed to custom
5781 Temporary fixes unexpected segfault in SortTable test. Emails sent
5782 during the Submit test have sometimes not yet been dispatched when the
5783 SortTable test begins. This fix adds a sleep(1) and an arbitrary
5784 number of attempts (5).
5786 Add 2 new MAPI calls to the IDL and libmapi:
5790 Tests for SortTable added to mapitest and the torture suite
5791 Test for AddressTypes added to mapitest.
5795 Fix perl bindings and fetchmail test
5797 2 new MAPI call added to the IDL and mapitest:
5803 - Add DeleteAttach MAPI call
5804 - Add new mapi unit tests:
5808 * GetAttachmentTable
5810 - Update mapitest README
5811 - Add some convenient functions to mapitest_common.c
5815 Add a preliminary draft of the mapitest standalone MAPI test suite.
5821 - Fix the build with the latest Samba4 version.
5823 - Add a basic libmapi/version.h auto-generated
5824 file (based on Samba4 one)
5825 - Remove some warnings when compiling the utf8
5827 - Add a emsmdb_info structure to fetch some
5828 information from the Exchange server
5830 WARNING: Please note that EMSABP is definitely broken and
5831 requires a review and update.
5834 DESTDIR should never get into any source files, that would defeat its purpose.
5838 Fix the torture suite.
5842 provide extra required argument.
5844 Store a loadparm context in the global mapi context.
5846 Deal with samba version.h's that don't contain the Subversion revision.
5850 Use SWIG-provided typemaps for stdint.
5854 Fix Content-Type field in exchange2mbox
5855 Reported by Yuriy Filatov <yuriy.filatov@gmail.com>
5859 - Improve the CreateMessage IDL
5860 - Add new parameters to IMAPIFolder CreateMessage libmapi function
5861 - Add --mkdir --rmdir options to openchangeclient
5862 - Update the CreateFolder API and openchangeclient documentation
5863 - Fix CreateFolder calls in openchange tools and torture suite
5864 - Fix gendb_search warning
5868 Add new PSETID_Address named properties
5870 Fix a few code convention typos
5872 Patch from Suman Manjunath <msuman@novell.com> applied:
5873 converts a 'struct timeval' to 'NTTIME'.
5874 minor extension of 'set_SPropValue_proptag', used while setting PT_SYSTIME properties.
5878 update Samba4 first revision to 26100
5881 Cope with ndr updates.
5885 Patch from Brad Hards: Fix possible Heap overflow in lzfu code
5889 Fix profile creation in a clustered Exchange 2007 environment.
5893 Fix QueryColumns req size.
5897 ** Start libmapi-0.7 PHASER development **
5899 add --dump-data option to mapiprofile for debugging purpose
5903 openchangepfadmin (1) man page added
5905 Store messageID in the object when SaveChangesMessage is called
5907 Nail down Samba4 version for libmapi-0.6
5911 - Add PR_MSG_EDITOR_FORMAT property to the sendmail operation
5912 - Fix body dump bug when PR_MSG_EDITOR_FORMAT property is missing (default set to PLAINTEXT)
5913 - Continue to process the mailbox when a problem is encountered with mesage contents (not attachment)
5914 - Fix a typo bug in openchangeclient body help string
5916 Update doxygen section
5920 - Add doxygen man (3) pages to installman and uninstallman rules
5921 - do not run doxygen if apidocs already exists
5925 Move documentation to doxygen
5929 Add convenient date related functions for implementors:
5930 returns a timeval struct matching a PT_SYSTIME property
5931 for improved date manipulation in 3rd party softwares
5935 Fix build to work with latest Samba4 revision (4.0.0alpha2-SVN-build-25722)
5937 Fix make realdistclean when swig perl is enabled
5939 Fix swig perl bindins compilation: move *.o to *.po
5941 use talloc_memdup to copy const data in the body DATA_BLOB
5942 Should only provide valid pointer to talloc_free
5946 Fix the DeleteMessages [out] IDL.
5948 The remaining bytes were not part of DeleteMessages but
5949 MAPI notification (0x2a)
5953 - Add RTF support in exchange2mbox
5954 - Use openchange-tools public functions
5955 - Replace GetPropsAll calls with GetProps
5958 * Use GetProps rather than GetPropsAll for message dump
5959 * Rely on PR_MSG_EDITOR_FORMAT to select the type of body
5960 * Open a stream for PR_BODY and PR_HTML if the size exceeds max property size
5962 -This line, and those below, will be ignored--
5965 A trunk/utils/openchange-tools.c
5966 M trunk/utils/openchangeclient.c
5967 M trunk/utils/openchange-tools.h
5968 M trunk/utils/openchangeclient.h
5969 M trunk/libmapi/mapidefs.h
5977 Remove useless svn:ignore
5980 Add WrapCompressedRTFStream function for PR_RTF_COMPRESSED content.
5982 Original lzfu decompress routine fetched from libpst-0.5.2
5984 make enum MAPISTATUS variables naming uniform in libmapi
5988 Add PT_CLSID case to get_SPropValue_data
5990 Add/Fix pull property support for PT_UNICODE and PT_CLSID (used by GetProps)
5992 Patch from Brad Hards <bradh@frogmouth.net>:
5993 Fix compilation for x86_64 platforms.
5997 More svn:ignore updates
5999 Update of svn:ignore
6003 added the IDL license
6005 Convert OpenChange to GPLv3
6007 - Add .po files to make clean
6008 - Fix a couple of warnings in the utf8 conversion lexer
6009 - Prefer long filenames to truncated one for attachments in openchangeclient
6013 Prevent exchange2mbox from segfault when PR_MESSAGE_DELIVERY_DATE is unset
6015 Add PT_CLSID and PT_MV_CLSID support to the IDL
6017 - Add new named properties
6018 - Convenient function for MNID_STRING props lookup added
6021 Make .po a recognized suffix.
6025 Use -fPIC for library objects.
6029 - Rename GetAllNamesFromIDs to QueryNamesFromIDs (better naming)
6030 - fix SPropValue_CTR boolean to uint8_t in the IDL and emsmdb.c
6032 - add mapi_nameid convenient interface and headers
6033 - mapi-named-properties populated, parser added to mparse.pl, file
6034 added to the build system
6036 - remove any incorrect reference to named properties in openchange
6039 - remove deprecated libmapi/mapi.h file
6040 - remove unused ulFlag parameter from IProfAdmin functions
6041 - remove unused memory context from libmapi/x500.c
6043 - support sendnote operation in openchangeclient
6044 - optimize check/list oc_element functions in openchangeclient
6046 - update swig interface
6050 - New MAPI calls: Named properties support
6053 * GetAllNamesFromIDs
6055 - Modified MAPI calls:
6058 These calls now have more granularity in libmapi with flags support
6060 - sample mapi-named-properties file introduced in libmapi/conf
6062 - Torture test suite:
6063 * suite temporary fixed (import torture_rpc_* functions from
6065 * torture_namedprops test added
6067 - SWIG Perl bindings fixed according to changes described above
6068 - minor improvements in libmapi/mapidump.c
6072 - Decrease MAX_READ_SIZE to 0x1000
6073 - Clean-up Read/WritreStream related code
6074 - add dump-data option to openchangepfadmin (debugging purpose)
6079 - remove reference to core/nterr.h
6080 - add global_loadparm reference where missing
6081 - add reference to core/error.h where needed
6084 Improve output during build.
6088 Pass loadparm contexts, should fix the build with newer Samba revisions.
6092 - WriteStream API changed: now returns the number of bytes written
6093 - WriteStream man page updated
6094 - 16 bytes extra-data bug fixed when sending attachments in openchangeclient
6095 - Set open mode to 0600 when attachments are stored on the filesystem
6100 Fix preliminary Perl bindings so it works with Samba4 alpha2
6101 and latest libmapi revision.
6103 Patch from Andrew Gaylard <ag@computer.org>:
6105 - When calling openchangeclient with the --dump-data switch, it will
6106 dump core, since the global_mapi_ctx pointer isn't initialised yet.
6107 The fix is to wait until it's set before accessing it.
6109 Patch from Andrew Gaylard <ag@computer.org>:
6110 - Leaving any blank lines before .TH directives appears to cause a blank page
6111 to be output when converting man pages to DVI files (which is a step to converting
6112 them to PDF). The following patch remove the blank line above the .TH in each man page file.
6114 - mapiprofile doesn't understand the -A switch, as mentioned in it's man page.
6119 - Add objectClass to the object: container, message or attachment
6120 - Rename content to message in openchangebackup functions
6121 - add objectClass parameter to ocb_record_init
6125 - Move debug options to their correct location (after MAPIInitialize)
6126 - Improve code related to LDB transactions
6127 - Add convenient error checking macros
6131 - Add preliminary openchangemapidump draft
6132 - Fix lp_parm_* 1st parameter in the torture suite
6133 - New functions in property.c for MAPI data retrieval
6137 Use configure definition for mandir.
6141 Activate debugs this time
6143 Replaced remaining gotos with MAPI_RETVAL_IF so errno is set correctly
6145 MAPI_RETVAL_IF missing ";" could cause surprises ;-)
6147 Add error check for samr call.
6148 set errno with MAPI_RETVAL_IF.
6152 Make required packaged more clear (LinuxMagazin input)
6156 Remove invalid comment.
6160 - Clean-up function prototypes
6161 - Dump email when NEWMAIL notification is received
6165 Proper dependencies.
6167 Don't regenerate proto headers unless necessary.
6171 Use install for installing files/directories.
6173 Actually use replacement variable for libmagic.
6177 Remove forgotten BOOL
6179 Remove mapi_session pointer in mapi_objects
6180 Add public function to IProfAdmin: retrieve default ldif path location outside the OC tree
6184 Prevent users from creation of *undeletable* folders in Outlook and
6185 perform sanity check on dirclass + display possible values.
6187 Provides a way to modify Default and Anonymous permissions for a given folder.
6189 Fix errno in getdir function + add sanity check on opt_rmdir
6191 - Fix a memory related bug in mapiadmin_add_user
6192 - Add latest howto.txt modifications from Dan
6194 - Fix bug in *UserPermission function: return when user is not found
6195 - Add sanity checks to mapi_object API functions
6196 - mapi_object_release reset errno to 0: need to release object
6197 after displaying the potential error message.
6199 Fix a mapidump_appointment bug
6200 Add PF folder support to fetch-items operation
6204 openchangeclient now support send/read/delete operation on custom PF directories.
6206 - Add libmapiadmin library draft: Add/Remove Exchange user
6207 - openchangepfadmin tool added: Public Folders management
6208 - Add Sanity check to CreateFolder
6213 Fix last references to BOOL, True and False.
6215 Fix more references to BOOL, False and True.
6217 Use standard type and values for booleans since Samba no longer exports
6218 BOOL, True and False.
6222 - Add OpenPublicFolder function to libmapi, Open Public Folder store
6223 - change torture suite API to match latest Samba4 pidl changes
6224 - utf8_convert regexp improved
6225 - minor changes: printf to DEBUG
6226 - howto.txt patch from Dan included
6227 - Samba4 torture code related to user account creation included in the
6232 Fix segmentation fault when running update prior populating the database.
6236 Remove obsolete file from the torture suite
6238 - Add Exchange Administration test to the torture suite: Create Exchange user
6240 Dan update on howto.txt
6244 - Add Exchange ACLs support to MAPI library
6245 - Add 2 new MAPI opnum: GetTable and ModifyTable
6246 - Improve mapidump functions
6250 - Improve aclocal check in autogen.sh
6251 - Fix flex binary detection in configure.ac
6259 Create libmapi.so symlink
6263 Fix mandir installation path
6264 Add ldconfig intructions to openchange installation documentation
6270 RES_AND and RES_OR preliminary implementation.
6274 - doc patch from Brad Hards
6275 - rename PROFILE_NOPASSWORD to OC_PROFILE_NOPASSWORD
6276 - fix a warning in property.c
6280 Add some 'const' (fixes compile warnings).
6282 Use sonames (required for the Debian packages).
6284 Add .bzrignore file.
6286 Update version number and use globally defined version number in libmapi.pc.
6290 - Add IDL implementation for restrictions Content, Property,
6291 CompareProps, Bitmask, Size, Exist.
6292 - Add Restrict MAPI call handling the restrictions above
6293 - OPENCHANGE-MAPI-RESTRICTIONS torture test added to the suite.
6294 - convenient sendmail function added to mapi_common.c
6295 - get property size function for mapi_SPropValue added to property.c
6297 test --This line, and those below, will be ignored--
6301 M torture/openchange.c
6302 A torture/mapi_restrictions.c
6303 M torture/mapi_common.c
6304 M libmapi/property.c
6305 M libmapi/IMAPITable.c
6309 Documentation update: Perl bindings installation
6313 - Add mapitags and mapicode support to Perl SWIG bindings
6314 - SPropTagArray support
6315 - SRowSet preliminary support
6316 - new constructor/destructor for mapi objects
6320 - IProfAdmin patch applied: having password outside of the profile
6322 - Perl bindings draft added to the trunk and to the build system:
6323 --enable-swig-perl=yes
6325 - datarootdir fixed in libmapi.pc.in
6329 - Add CopyMessages IDL and COPYMAIL torture implementation
6330 - Fix man page install dir according to latest Samba4 changes
6331 - Add datarootdir var to libmapi.pc.in and fix configure warning
6335 convenient function which retrieve a value from a SPropValue array
6336 given its property tag name, otherwise NULL
6340 Patch from Brad Hards <bradh@frogmouth.net>:
6341 openchangeclient man page updated
6343 - Add Windows UTF8 to classic UTF8 conversion through a lexer
6344 - openchangeclient --mailbox option changed to use it
6345 - flex and bison support added to configure.ac
6346 - windows_to_utf8 function added: wrapper over yyparse_utf8 routine
6350 - features added to openchangeclient:
6351 * --send-appointment
6355 - openchangeclient man page updated
6356 - new properties added to mapi-properties
6358 - Add man pages for simple_mapi.c functions:
6360 * GetFolderItemsCount
6362 - Remove deprecated functions from IMsgStore.c
6363 - Update man pages documentation
6365 Fix install rule in Makefile: add missing headers
6366 Move callback retval from uint32_t to int
6368 Fix notification callback retval
6370 - Advise opnum added to the IDL
6371 - Parts of the Notify response IDL implementation
6372 - Add Notification support to libmapi
6373 - Add --notifications option to openchangeclient
6377 Patch from Brad Hards <bradh@frogmouth.net>:
6378 - PR_BUSINESS_FAX_NUMBER
6379 - improves the information provided on a contact by
6384 - Fix the release call in,out
6385 - Call Release from mapi_release_object
6386 - Add sanity check to OpenMsgStore
6387 - clean up parts of the mapi_newmail test
6389 EcDoDisconnect code now sounds to work properly
6390 Tested against Exchange 2000 / Exchange 2003
6392 - Fix SpropValue property pull problem when GetProps layout is set
6393 - Add a dumpdata boolean to mapi_ctx_t so tools can dump hex data
6394 - Add PR_CONTAINER_CLASS fetch to openchangeclient --mailbox
6395 - Add debuglevel and dumpdata options support to openchangeclient
6399 - Remove useless memory allocation in mapidump.c
6400 - Improve mapidump_appointment
6401 - Add sample mapidump_note
6402 - Add --fetchitems option to openchangeclient:
6403 This command offers an easy way to fetch calendar, contacts,
6404 tasks, notes and mails from the Exchange server.
6405 - Add IPF container class defines to mapidefs.h
6406 - Add and Fix property tags
6410 - Commit the EcDoRpc max_data patch proposed on the devel list
6411 - Clean up folders related functions from the torture suite
6412 (GetDefaultFolder makes this code obsolete)
6416 Add the --mailbox option to openchangeclient which recursively
6417 lists the full mailbox folder hierarchy
6419 - Add PT_SYSTTIME support to get_SPropValue_data
6420 - Add mapidump_SPropValue_date dumping function
6421 - Add PT_SYSTIME support to mapidump_SPropValue
6423 - Add multi-valued SBinary_short support to mapi_SPropValue_CTR in the
6426 - Add GetDefaultFolder implementation to simple_mapi.c. This function
6427 provides a convenient way to retrieve default folders ID. const
6428 olFolder values are stored in libmapi/mapidefs.h
6430 - Modify the torture test suite to reflect these changes.
6432 - OpenMsgStore now decodes all the fid returned in the response
6434 - fix a bug size in libmapi/property.c
6438 - Fix SMTP recipient in libmapi
6439 - Add SMTP recipient support to openchangeclient
6440 and the torture test suite
6441 - Fix a bug in SRow_addprop
6445 - OpenMessage IDL changed: we have a permission field.
6446 It is now set by default to 0x3 (read/write) until we
6447 change OpenMessage prototype.
6449 - Add a sanity check to MAPIInitialize when no profdb
6454 Remove remaining MAPISTATUS and replace them with enum MAPISTATUS
6456 - SetReadFlags IDL and implementation added to libmapi
6457 - Warning fixed in emsabp.h
6459 Fix a bug in openchangeclient when attachments are using
6460 PR_ATTACH_LONG_FILENAME rather than PR_ATTACH_FILENAME to store
6461 attachment filename.
6463 Patch supplied by Brad Hards <bradh@frogmouth.net> which renames
6464 private structure member to private_data for C++ compatibility.
6466 Add libmapi/simple_mapi.c designed to hold convenient
6467 functions for application development.
6469 - GetFolderItemsCount added which returns the number of
6470 total and unread messages for a given folder.
6474 - Fix a body openchangeclient bug which now prevent openchangeclient
6475 from segfault when no body is specified.
6476 - Add GetDefaultProfile call to exchange2mbox for the default
6478 - Improve fuzzer_msgtore output
6482 Add a fuzzer torture test on OpenMsgStore which
6483 test all the possible max_data value.
6485 Should help to understand if libmapi fails because
6490 exchange2mbox improved:
6491 - tdb dependency removed
6492 - message-id are now stored in the profile database
6493 - it now mirrors deletion operation from the mbox file back to the
6495 - man page updated to reflect these changes
6497 - GetProfileAttr function prototype modified. It now returns the
6498 results count for the given attribute and store values in a string
6500 - GetProfileAttr man page updated to reflect these changes
6501 - Fix mapiprofile attribute search command
6502 - migrate from open/write calls to stream ones in exchange2mbox
6505 newmail torture + notifications implementation
6511 Fix the SambaXP live demo segfault: When an ambiguous recipient is
6512 specified, it now skips the name properly and maintain a correct
6515 - Fix a bug when storing attachments into mbox
6516 - Add default path support to exchange2mbox
6520 - Update libmapi version according to the roadmap
6521 - Fix nspi_resolvenames to use default profile database and profile
6525 - Add default profile database and profile support in the torture suite.
6526 - Fix a bug in mapidump_task
6530 - Change MAPILogonEx to MAPILogonProvider and avoid potential
6531 emsmdb endpoint related problem
6532 - add sanity check on global session pointer
6536 Merged MAILOOK-branch changes r64:163 into the trunk.
6540 Remove ChangeLog, use svn log instead ;p
6544 - libmapi includes moved from libmapi/include to libmapi
6545 - Remove arguments from prototype definitions generation in mkproto.pl
6546 - __BEGIN_DECLS __END_DECLS support in header files
6547 - united libmapi/libmapi.h header file
6548 - openchange.h header removed
6549 - PIDL generated files moved to gen_ndr
6550 - compilation rule for libmapi header installation added
6551 - useless torture tests removed
6557 Replace OpenProperty and ReadAttach calls with OpenStream and ReadStream call
6558 Add GetAttachmentTable call
6564 Remove -Werror CFLAGS until I figure out how to fix
6565 our problem definitively.
6567 Remove static from dcesrv_exchange.c functions definition
6572 . reimplement GetProps
6573 . retrieve attachment size
6574 . modify fetchmail and fetchattach torture
6579 . add GetPropList to exchange.idl
6580 . add GetPropList implementation to IMAPIProp.c
6583 - Add fetchattach torture; Attachment size is not yet
6584 defined and 42 is used.
6585 - add 3 new EcDoRpc opnums:
6594 Forgot to add IMAPISession.c
6600 Remove spurious warnings at compile time and
6601 add -Werror -Wstrict-prototypes to CC.
6605 Dispatch libmapi functions into filenames matching
6606 the MAPI interface they belong to.
6610 Fix the attach issue by value and add torture test to
6611 the openchange torture suite.
6616 attachment torture test implementation
6622 Add a null element at the end of MAPI_REQ array
6623 so we can exit from the loop in ndr_print_mapi_request
6627 - Add the DeleteMessages IDL
6628 - New torture tests added:
6629 * OPENCHANGE-MAPI-SENDMAIL
6630 * OPENCHANGE-MAPI-DELETEMAIL
6632 These are experimental implementation
6637 subject option for delete message torture test
6641 added (recipients == null) check
6643 added default subject
6648 Add NspiResolveNames and the associated torture test.
6654 Fix nspi decoding problem due to the usage of
6655 a hyper instead of a dlong.
6659 - Add a preliminary NspiUpdateStat IDL
6660 - Fix the new server code convention naming
6661 (function prefixed with dcesrv_)
6662 - Fix a security bug in emsabp provider code
6666 Fix the allocation memory for the EcDoRpc_{MAPI_REQ,MAPI_REPL} pointer.
6670 Add SetProps [out] support.
6672 Temporary allocation pb fixed in ndr_pull_mapi_response.
6673 Final fix in next commit.
6679 Fix the SetProps [in] IDL
6681 New mapi call support added:
6682 - ModifyRecipients [in,out]
6683 - SubmitMessage [in,out]
6687 Add IDL support for the following mapi calls:
6692 The SetProps IDL is still experimental and the
6693 content blob should be decoded more than the current
6700 Fix the align problem in QueryRows reply blob
6701 Add some printing output and clean useless DEBUG.
6707 Fix the OpenMessage IDL and add ndr_print support
6708 to the MAPI-FETCHMAIL torture test so we can
6713 Commit of the first experimental but working implementation
6714 of the MAPI-FETCHMAIL torture test able to retrieve mails
6715 from an Exchange Server.
6719 - Add a preview implementation of cached data system for multi MAPI calls requests
6720 - Add SetColumns and QueryRows calls to mapi.c + mapi_fetchmail torture test
6721 - Enhance some MAPI calls IDL
6722 - Fix some pull/print functions according to error_code and row_count values
6728 Manual handling of EcDoRpc_MAPI_REPL pull and print function.
6729 When a mapi call returns an error_code different from MAPI_E_SUCCESS,
6730 we have to stop processing the function IDL since no parameters follow.
6734 add MAPISTATUS to EcDoRpc_MAPI_REPL
6735 add mapi library code for:
6741 add mapi calls described above to MAPI-FETCHMAIL torture test
6745 add mapi_response to emsmdb_transaction so we can get the results
6746 check the mapi call error core in OpenMsgStore
6750 Add MAPISTATUS field in each mapi calls
6751 Add new MAPICODE (MAPI_E_CALL_FAILED)
6755 Fix the mapi_request push function
6756 Add a first approach to the MAPI client side library
6757 Add a first approach of the MAPI-FETCHMAIL torture test
6758 Fix the smb.conf.example with new fields and remove Samba4 unused ones
6764 Initial mapidump commit
6765 OpenMessage IDL fixed
6771 Unused and dummy code removed
6775 - Remove the MAPI decoding TDR layer and associated functions
6776 - Add MAPI decoding in exchange.idl at NDR layer
6777 - mapi_request / mapi_response pull/print ok
6778 - implement subcontext for async response decoding in
6780 - new MAPITAGS added related to Message envelope properties
6781 - clean up the code and remove unused files
6783 - Add new MAPI opnums and associated IDL:
6784 * [in] Release (opnum=0x1)
6785 * [in,out] OpenFolder (opnum=0x2)
6786 * [in,out] OpenMessage (opnum=0x3)
6787 * [in,out] GetContentsTable (opnum=0x5)
6788 * [in,out] GetProps (opnum=0x7)
6789 * [in,out] Secolumns (opnum=0x12)
6790 * [in,out] QueryRows (opnum=0x15)
6791 * [in,out] GetReceiveFolder (opnum=0x27)
6792 * [in,out] OpenMsgStore (opnum=0xFE)
6798 For IDL with unknown fields followed the IDL may
6799 change and the mapping of these unknown bytes incorrect.
6800 It's just based on assumptions and results of the different
6805 - The mapi_request / mapi_response pull function
6806 - emsmdb torture tests and libmapi/emsmdb.c
6808 All this code is currently broken and will be fixed
6809 when we start writing the new emsmdb torture suite
6817 Fix ndr_pull_MAPI_DATA function
6821 - Add new mapi opnums
6822 - Add a first IDL implementation for OpenMsgStore out
6826 - Enhance the handles id support in MAPI_DATA
6827 - Remove unused code
6829 EMSMDB encoding/decoding is currently broken.
6830 It will be fixed when we start the client side
6831 mapi library implementation.
6837 - Change IMAPISession.idl to mapi.idl
6838 - enhance mapi content payload decoding (multiple calls supported)
6839 - add sub EcDoRpc opnums and IDL for setcolumns (in)
6846 - new function on emsabp provider for entry id generation
6852 Old mapitables code deleted and merge of the samdb
6853 code used in openchange (emsabp_result_guid function).
6855 The following revision compiles and work fine with
6856 Samba4 revision 20341
6863 Instance keys management changed (we now use struct instance_key and uint32_t instead of an array of 4 uint8_t)
6869 - Fix compilation warnings based on patches provided
6870 by Stefan Huehner <stefan@huehner.org>
6871 - Fix the DSO issue for x64 platforms
6872 - Add the evolution plugin in the compilation process
6873 - remove the mapidump code (obsolete and replaced with ndrdump usage)
6879 evolution plugin moved into client/evolution for
6880 a correct and extensible naming convention.
6882 EcDoRpc IDL modified:
6883 - opnum are now 8 bits
6885 - EcDoRpc ndrdump output enhanced
6887 IMAPISession IDL modified:
6888 - Change OpenMsgStore function name to MAPI_RPC_LOGON
6889 for the 0xFE opnum operation.
6891 Fix warnings in the code.
6897 Openchange-Evolution plugin commit
6898 I reorganized openchange evolution plugin source tree.
6899 Now we have one directory for the camel-openchange provider, and one for the openchange eplugin.
6900 Everything can be found in the oc-evolution directory.
6901 This is code a minimalist implementation of the camel provider for evolution.
6902 It will make appears an openchange server type in the server list handled by evolution.
6903 Still have to fix the ./configure to create a Makefile though.
6907 Fix the memory allocation problems in the emsmdb torture test
6911 Removed ascstr and directly add it to the IDL
6913 Fix the NspiQueryRows response where strings
6914 containing the user email address have to be
6917 The EMSABP provider is working ;-)
6921 The emsabp provider is now able to return multiple users
6922 when searching for part of a username.
6928 Fix the networkAddress binding strings for the
6929 Exchange object in the configuration db. The
6930 SERVER variable based on exchange:server had
6931 been added while we needed the NETBIOSNAME one
6933 Fix a segmentation fault in emsabp.c due to an
6934 unchecked pointer res->msgs. This was causing
6935 smbd to segfault when the supplied legacyExchangeDN
6936 sent by the user wasn't present in the database.
6942 Remove unused files and directory.
6943 Update Makefile.in and remove storedb compilation
6952 - provisioning (for the legacyExchangeDN of the server entry)
6956 Fix the build and remove dynconfig samba lib
6962 Unused ldif files removed + Schemas definitions updated
6966 Provisionning fixed (old ldif files cleaned)
6972 add tags rules to the Makefile
6976 add the \\pipe\\protected_storage named pipe
6977 to exchange_nsp bindings
6983 Add a dcerpc_server module in charge of the
6984 exchange interfaces registration. When this module
6985 is loaded prior the remote endpoint, it let us proxify
6986 the exchange_nsp and exchange_emsmdb ones.
6988 Change the exchange_nsp ncacn_np binding string to
6989 reflect how Exchange server is currently using it.
6991 Conform the IDL with latest pidl requirements and
6992 move the MAPI_DATA structure from exchange_nsp to
6999 Create the $prefix/modules/{dcerpc_server,torture}
7002 This fix openchange make install rule.
7006 This commit conforms openchange with the Samba4
7007 trunk and fix the autotools checks.
7009 I've modified the openchange torture file to
7010 match the current smbtorture API and the
7011 OPENCHANGE-NSPI-PROFILE test was successful.
7013 The NSPI ndrdump suite has fully been tested and
7020 This commit fix the build system:
7021 - add the -ldynconfig dependency to LDFLAGS
7022 - add header checks in configure.ac. We need them
7023 for the moment cause Samba4 doesn't install some headers
7024 required by openchange core
7025 - fix the make install
7027 - remove autotools generated files and definitively
7028 ignore them with the .svnignore file
7030 - keepref keyword removed from exchange_nsp interface
7035 + aclocal.m4 removed from repository
7036 + provisionning fixed