-
Notifications
You must be signed in to change notification settings - Fork 1
/
ChangeLog
7467 lines (6615 loc) · 221 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2010-08-29
jkerihuel
[r2144]
Add CopyProfile and DuplicateProfile to IProfAdmin interface
2010-08-27
jkerihuel
[r2142]
Add the localaddress patch prior Samba4 integration. Pending new
Samba4 localaddress patch fixing memory leaks in the pipe.
[r2141]
Include a mapitest test suite / challenge for lzxpress
The idea of this test is to check if lzxpress compressed blobs
provided by OpenChange are the same than Outlook ones. The test takes
a Outlook->Exchange capture file with compressed blob, pull the
content, decompressed the content, recompress the content and check
the output for differing bytes.
This challenge code should give us good information when lzxpress
compress code is fixed. Additionally you can uncomment the compression
code in libmapi/emsmdb.c to do further testing.
[r2140]
- Add implementation for EcDoRpcExt2 (0xB) RPC opnum. Current code
doesn't provide compression for request and use obfuscation
instead. However mapi_response makes use of xpress and are
decompressed properly.
- EcDoRpcExt2 implemented without subcontexts but uint8_t array
- add a wrapper for emsmdb transaction to switch between
EcDoConnect/EcDoRpc and EcDoConnectEx/EcDoRpcExt2 depending on MAPI
profile 'exchange version' attribute.
NOTE: emsmdb.c implements the logic for using compressed blob and
checks whether compressed or obfuscation should be used depending on
blob length. However this behavior has been commented out because
comrpessed blobs are rejected by Exchange (ecRpcFormat 0x4B6 error).
2010-08-26
jkerihuel
[r2139]
Reference profile structure in mapitest structure.
Use profile->mailbox instead of szDisplayName for sending mapitest
emails. This also fix ResolveNames mapitest issues when conflicts
between usernames exist (e.g. user1, user11, user100).
bradh
[r2137]
Prevent segfault if we don't have any appointments.
Resolves issue #284.
Also prevent leaking talloc context in a couple of error cases.
[r2136]
Merge Rev 2133 from branches/current-samba4 to trunk.
I inadvertently committed this to the wrong branch.
This pushes the fix for #229 into trunk.
2010-08-23
jelmer
[r2134]
Update bzr ignores.
2010-08-18
jkerihuel
[r2131]
Add a git update case in installsamba.sh script and make it available
within OpenChange Makefile.
2010-08-17
jkerihuel
[r2127]
Manually commit remaining changes from current-samba4 into trunk
[r2126]
Merge current-samba4 branch back into trunk
2010-08-11
bradh
[r2117]
Microsoft confirmed that RopGetValidAttachments isn't supported in Exchange 2010.
[r2114]
fix missing part of r2113.
[r2113]
Fixes to better work with Exchange 2010.
Still some open issues to resolving bug 227.
[r2112]
Fix handling of "not applicable" tests when using --mapi-calls
Prior to this, if you asked for a test that was after a test that was
flagged as suppressed, the test you asked for didn't get run, and the
flagged test was reported instead.
2010-08-10
bradh
[r2111]
Correctly handle cases where the start date of the range is after the first calendar appointment.
Resolves bug:272.
Thanks to Eric Reischer for reporting the problem and testing the fix.
2010-08-03
bradh
[r2107]
trivial comment cleanup.
2010-08-01
jkerihuel
[r2105]
Move from auto-generated mapicode.h to static code.
[r2104]
Add configure.ac support for gthread implementation but give preferences to pthread
Add THREAD_CFLAGS to config.mk.in
ifdef between pthread and gthread in libmapi_private.h
[r2103]
Check for libpthread in configure.ac and make this lib optional
Add references to config.h in libmapi_private.h
Replace references to config.h with libmapi_private.h
2010-07-31
jkerihuel
[r2101]
- Add an exchange-version parameter to mapiprofile structure and tool
which let user choose between 0x0/0x2 or 0xA/0xB
- Tweak libmapi implementation to allow EcDoConnectEx usage
- Improve mapiprofile --dump to show more useful parameters
[r2100]
- Add custom NDR implementation for EcDoConnectEx to bypass pointers/array problems
- make use of mapi2k7_AuxInfo structure for rgbAuxOut
- Create a subcontext for AUX_HEADER structures to jump over unknown cases properly.
[r2099]
Handle the no obfuscation nor compression RPC_HEADER_EXT flags case
bradh
[r2098]
Trivial api documentation change.
2010-07-29
bradh
[r2095]
Another trivial API documentation fix.
[r2094]
More trivial API documentation fixes.
[r2093]
Minor API documentation fix.
[r2092]
Implement some null pointer checks.
Also rewords some API documentation.
Original issue and patch by Erik Hovland - thanks again. I implemented it
with some slight changes.
2010-07-28
bradh
[r2090]
Fix RecipientRow IDL to match MS-OXCDATA 2.9.3
This allows handling of addresses that contain X400 format content.
Patch by Samuel Sieb and I, resolves ticket #250.
2010-07-26
jkerihuel
[r2087]
Fix a crash in openchangeclient vs Exchange 2010:
When Queryrows is called on Exchange 2010 and no rows are available, QueryRows returns MAPI_E_NOT_IMPLEMENTED error (0x8004FFFF).
Ensure we have at least one message to fetch in openchangeclient --fetchmail prior calling QueryRows.
2010-07-24
jkerihuel
[r2079]
Very basic use of OpenUserMailbox in openchangeclient.
Doesn't handle clustered Exchange servers.
bradh
[r2077]
Rename a few function arguments to avoid doxygen warnings.
This is a workaround, but will allow easier checking for the future.
[r2076]
Update doxygen configuration to match latest version
[r2075]
Add missing doxygen parameter information.
[r2074]
Fix a couple of doxygen issues.
2010-07-23
jkerihuel
[r2072]
Use sed in Makefile to replace local headers reference in installed headers
[r2071]
Use local headers rather than installed ones
Propagate this behavior to torture test suites and bindings
[r2070]
Remove libmapi/defs_private.h
Remove references to libmapi/defs_private.h in OpenChange tree
[r2069]
Remove auto-generated headers for libmapi:
- Add libmapi_private.h for private definitions
- Use libmapi.h for public definitions
- Merge libmapi_private.h and defs_private.h
Use local headers rather than installed ones
Change libmapi compilation list to have ndr_exchange_c.h
available for other libmapi C files.
Remove references to libmapi/proto_private.h in OpenChange tree
Remove references to libmapi/defs_private.h in OpenChange tree
2010-07-20
bradh
[r2065]
Modify the samba build script to make it more flexible.
Heavily based on changes provided by Andrew Tridgell. Thanks!
2010-07-15
jkerihuel
[r2063]
Use local includes rather than installed ones for openchange tools/utils
[r2062]
Use local includes rather than installed ones for mparse.pl
[r2061]
Use local includes rather than installed ones for mapiproxy and server components
[r2060]
Use local includes rather than installed ones
[r2059]
Use local includes rather than installed ones for libexchange2ical
Sanitize function declarations
[r2058]
Remove proto and proto_private.h from ignore list
[r2057]
Remove auto-generated headers for libmapiadmin
Use local includes rather than installed ones for libmapiadmin
[r2056]
Remove proto and proto_private.h from ignore list
[r2055]
Remove auto-generated headers for libocpf
Use local includes rather than installed ones for libocpf
[r2054]
Fix bug #248 misnamed PR_RECIPIENTS_FLAGS
[r2053]
Add IDL implementation for WritePerUserInformation.
Note: This IDL suffers from the same problems than SetMessageReadFlags. It depends on logon_id and Logon flags.
2010-07-14
jkerihuel
[r2051]
Add server-side preliminary ReloadCachedInformation implementation.
The Rop only support a specific case and it is expected to work better after
integration of the OCPF contexts for message transaction.
[r2050]
Missing header for stat()
2010-07-06
bradh
[r2048]
Implement RopSetReceiveFolder
There is a part of this missing (relating to modification times) that will be implemented
as part of the RopGetReceiveFolderTable implementation.
This updates the mapitest code, including a change to the function signature for the
mapitest_print_retval_step() function to take an explicit MAPISTATUS value instead of
relying on GetLastError().
2010-07-04
bradh
[r2046]
Enhance the GetReceiveFolder ROP.
This now tries all available MessageClass entries.
[r2045]
Enhance GetReceiveFolder mapitest.
2010-07-03
bradh
[r2043]
Make sure objects are correctly init()'d and release()'d even in fault condition.
[r2042]
Make sure objects are correctly init()'d and release()'d even in failure case.
[r2041]
Make sure all objects are initialised, even in failure cases.
[r2040]
Trivial comment change.
[r2039]
Add a few more null pointer protections into fsocpf backend.
Trying to get mapitest running...
2010-07-02
bradh
[r2037]
Add mapitest unit test for DeleteMessages with multiple messages.
[r2036]
Implement DeleteMessages ROP.
Adds message deletion support to mapistore core and fsocpf backend.
I've been testing this with OXCMSG-SAVE-CHANGES-MESSAGE from mapitest.
[r2035]
Make it a bit easier to use alternative GIT tree.
[r2034]
Ensure we return the correct MID from SaveChangesMessage
2010-06-28
jkerihuel
[r2031]
Fix a segfault when releasing handles. We kept
processing the handles list after releasing the element.
bradh
[r2030]
Add some simple tests for openchangeclient.
[r2029]
Unbreak compilation problems from previous commit.
[r2028]
Ensure we don't duplicate folder names.
This adds appropriate checks for both system (openchangedb) and normal (mapistore)
folders. The mapitest code also checks that the OPEN_IF_EXISTS flag works.
I had to add an additional mapitest_print_retval() variation, since successful operations
don't reset errno.
2010-06-26
jkerihuel
[r2026]
add support for PT_CLSID and PT_SVREID in cast_mapi_SPropValue
[r2024]
Add a memory context argument to cast_mapi_SPropValue to be less
dependent to libmapi and allow better memory allocation handling.
Propagate API change among OpenChange source tree
Add doxygen documentation for cast_mapi_SPropValue
bradh
[r2025]
Make sure we always set the opnum and handle, even for error cases.
[r2023]
Suppress compilation noise in a few places for consistency with the rest of the Makefile
2010-06-25
jkerihuel
[r2022]
Add ocpf_write support for PT_MV_STRING8, PT_MV_UNICODE, PR_MV_BINARY
and PT_MV_LONG
[r2021]
- Add documentation for PT_MV_LONG
- Update PT_BINARY section
[r2020]
- Fix PT_BINARY to now parse uint8_t 0x00 - 0xFF instead of previous
(and incorrect) long items
- Add implementation for PT_MV_LONG
- Clean up useless code
[r2018]
Add mapidump_SPropValue for PT_MV_LONG
[r2017]
Add support for PT_MV_UNICODE type
[r2016]
Add mapidump_SPropValue for PT_MV_UNICODE
[r2015]
Add support for PT_MV_BINARY type
This implementation required to add a Binary_r within ocpf_context to
union SPropValue_CTR content consistent among recursive parsing.
[r2014]
Add PT_MV_BINARY support in cast_SPropValue
[r2013]
Add mapidump_SPropValue entry for PT_MV_BINARY
[r2012]
Do not search context if context_id is NULL
[r2011]
- Add a function to synchronize data on filesystem after a write
commit (close/fopen) and change open and context flags depending on
their previous value.
- If PR_MESSAGE_CLASS or PR_MESSAGE_CLASS_UNICODE is used for
set_SPropValue, update context type.
2010-06-23
jkerihuel
[r2009]
Fix warnings generating by the incorrect .tp_new first argument type
[r2007]
- Implement server-side skeleton for ReadPerUserInformation (0x63)
[r2006]
- Use external TALLOC context for cast_SPropValue rather than
global_mapi_ctx->mem_ctx. This was preventing from using this function
properly in a context different from libmapi based application
(server).
- Add cast_SPropValue support for PT_CLSID and PT_MV_LONG
- add message path + id in the indexing database for mapistore case in
SaveChangesMessage
[r2005]
Add default owner/full rights to new root folders created. Works with
Outlook 2003 (shift + delete for hard delete)
[r2004]
Add PT_SRVEID support in SPropValue (0xFB proptype)
[r2003]
Add owner / full-access rights for mailbox folders. It introduces less
stabilitity but offers wider range of available features.
[r2002]
Generate PidTagRights for PR_RIGHTS (used in openchangedb)
2010-06-22
jkerihuel
[r2001]
- Complete fsocpf_get_path implementation
- Register message into indexing.tdb after SubmitMessage
[r2000]
Add ocpf_server_set_type python bindings.
Ohhh looks like we have reached r2000 ;-)
.-. ,
`._ ,
\ \ o
\ `-,.
.'o . `.[] o
<~- - , ,[].'.[] ~> ___
: : (-~.)
` ' `|'
` ' |
`-. .-' |
-----{. _ _ .}-------------------
[r1998]
- Add SetProps server side implementation for mapistore messages
- Add a preliminary set of properties within CreateMessage (not
complete yet) as stated in MS-OXCMSG 3.2.5.2
- Add SaveChangeMessages preliminary server side implementation
- Add SubmitMessage preliminary server side implementation
- add mapistore and fsocpf backend implementation for
SaveChangeMessages and SubmitMessage. Note: SubmitMesage is just a
hack for now.
[r1997]
- Add a wrapper to set OCPF file TYPE
- Free/Allocate type on purpose
[r1996]
storing a mapistore_message within the message object is useless for
the moment. Clean-up this bit introduced with last commit.
[r1995]
- Add preliminary OCPF API for server purposes (used by
mapistore_fsocpf)
- ocpf_server API now allows caller to dynamically update
properties. If the properties was already existing, updates its
value.
- Update ocpf_test.py to reflect this behavior
- Add preliminary server side implementation for CreateMessage (server
+ mapistore + fsocpf backedn)
- Add preliminary mapistore + fsocpf backend skeleton for SetProps
operation
bradh
[r1994]
Typo fix in constant name.
2010-06-21
jkerihuel
[r1993]
- Only prevent file opened in read-only to use write_commit
- Position the stream at the beginning of the file before writing
[r1992]
Defer ocpf file creation (fopen with w+) to ocpf_write_commit
[r1990]
Add rmdir support to mapistore python bindings
[r1989]
- Add mapistore python C/API support for:
- add_context_indexing
- add_context_ref_count
- opendir
- closedir
- mkdir
- errstr MAPISTORE error to string conversion
- Update mapistore python test script to demonstrate
how to create a new folder using mapistore
[r1988]
I may be wrong here, but that was the only way I could pass
a folderID from python's layer to mapistore C/API
[r1987]
If context is manually deleted using public API, we need to remove the destructor
we set during context init, otherwise talloc_free segfault occurs
[r1986]
talloc_strdup SPropValue strings
[r1985]
Add preliminary python bindings for mapistore
2010-06-20
jkerihuel
[r1984]
Add FILETIME support for SPropValue
[r1982]
Add TypeCheck on SPropValue rather than blind cast
[r1981]
Add python binding for ocpf_write
Add quick test code to ensure it works as expected
[r1980]
- Use SPropValue python object in ocpf module
- Add a function binding to retrieve SPropValue array from OCPF file
- Modify sample to test this behavior
[r1979]
- Move OCPF python bindings to pyopenchange directory
- Install ocpf module within openchange/
[r1978]
- Check property type for SPropValue
- Add auto-generated pyopenchange/pymapi_properties.c to the ignore list
[r1977]
- Add preliminary OCPF python bindings
- Add a new pyopenchange python bindings directory:
- Preliminary handling of SPropValue data structure
- Add some python bindings test files
- Add a mparse parser to generate python bindings declaration for mapi
properties
- Build automatically python bindings ** We need to add Python as a
required dependency **
bradh
[r1976]
Implement EmptyFolder and enhance DeleteFolder.
This still has quite a way to go, but it does mostly work for folders, including recursion.
[r1975]
Add extended test code for folder creation / deletion.
[r1974]
Add libmapiserver support for EmptyFolder size calculations.
2010-06-19
bradh
[r1972]
Trivial typo fix.
[r1971]
Fix comment.
2010-06-17
jkerihuel
[r1969]
New test.
[r1968]
Second test commit.
[r1967]
Test commit
2010-06-16
jkerihuel
[r1964]
Fix OOM used in sample_appointment.ocpf
[r1963]
Consolidate PSETID array and rely on libmapi definitions.
2010-06-14
jkerihuel
[r1958]
Add server-side skeleton for WriteStream Rop.
[r1957]
Add server-side skeleton for SetSearchCriteria and GetSearchCritera
Rop.
Improve GetSearchCriteria IDL and work around the null restriction
response size in GetSearchCriteria reply by tweaking generated code
into nopull,nopush,noprint
Add generated mapistore ldif file to the ignore list
[r1955]
- Add preliminary implementation for named properties support in
mapistore. The API is yet very preliminary (init + get mapped
property ID), but is enough to return consistent data to Outlook and
make its behavior more reliable.
- mparse.pl now generates a LDIF file for the mapistore namedprops LDB
database which maps named properties within namespaces and store
default values for common/standard named properties Outlook is
using.
- add a custom ldb_connect wrapper in mapistore to allow mapistore to
open multiple instances of the same mapi named properties ldb
database.
- Complete preliminary implementation of GetIDsFromNames in oxcprpt.c.
2010-06-13
jkerihuel
[r1944]
- Fix some named properties
- Add a referenced propID value once it is mapped.
Will be used by mapistore to populate/generate the initial
nameid props database
[r1938]
Fix a bug with unmapped named properties lookup.
For convenience purposes GetProps accepts within input SPropTagArray
unmapped named properties we internally turn into mapped ones using
GetIDsFroNames. This behavior was incorrect cause we were looking for
properties within specific ranges. Replace this behavior with a global
lookup over named properties we know about.
One limitation of this fix is that custom nameid properties (not referenced
within libmapi/conf/mapi-named-properties) won't be lookup. However it is
acceptable for the moment.
bradh
[r1943]
Fix signed / unsigned issue in openchangebackup utility.
[r1942]
Fix some signed/unsigned issues in libmapi.
[r1941]
Fix up signed / unsigned issues with libocpf.
This changes the API to allow easy testing of failure vs results.
[r1940]
make sure that the 0 is interpreted as unsigned.
[r1939]
Fix a signed / unsigned comparison warning in libmapi.
[r1937]
Fix some signed / unsigned warnings in torture suite.
[r1936]
Avoid signed / unsigned comparison in libmapiadmin.
[r1935]
Avoid signed / unsigned comparison in openchangedb.
[r1934]
Avoid signed / unsigned comparisions in mapitest
[r1933]
Avoid signed / unsigned comparisons in FSOCPF backend.
[r1932]
Fill in initialisers.
Avoids warning with gcc's -Wmissing-field-initializers option.
jelmer
[r1947]
Fix imports, clean up.
[r1946]
Raise exception on invalid arguments to openchange_mapistore_url.
2010-06-12
jkerihuel
[r1931]
Fix duplicate
bradh
[r1930]
Use calculated len inside the loop, instead of calling strlen each time.
2010-06-11
jkerihuel
[r1929]
Add new properties and PSETID
2010-06-10
bradh
[r1928]
Change variable name to avoid shadowed variable name warning with ICC.
[r1927]
Add newline at end of file to avoid compiler warning with ICC.
2010-06-09
bradh
[r1922]
Ensure server modules work when building with coverage enabled.
jelmer
[r1925]
Consistently use spaces rather than tabs.
[r1924]
Remove string exception.
[r1923]
Remove duplication of openchange name in namespace.
2010-06-08
jkerihuel
[r1921]
We didn't set a valid error_code for FindRow skeleton.
[r1920]
- Add server-side skeleton for ReadStream ROP.
- Add preliminary sanity checks on server-side FindRow
2010-06-07
jkerihuel
[r1919]
Activate correct handling of retval in CreateFolder, despite Outlook
2007 bad behavior. Currently working on fixing this.
[r1918]
My small Outlook 2007 'Search missing ROP implementation' shouldn't
have been pushed ;-)
[r1917]
Add server-side skeleton for DeleteProperties Rop.
[r1916]
Implement server-size skeleton for GetPerUserGuid Rop.
[r1915]
Add server-side skeleton for GetPerUserLongTermIds Rop.
[r1914]
Add a preliminary stream object implementation
Add stream to emsmdbp convenient functions
Create a handle in OpenStream
[r1913]
Add skeleton server side implementation for OpenStream
[r1912]
Forgot to redo changes here.
[r1911]
- Undo the SetMessageReadFlag IDL change and add an explanation, so we
don't make the same error twice and have pointers when we want to fix
it.
- Improve OpenMessage IDL and add the Reserved uint16_t bit.
- Replace sizeof() with known types to prevent from IDL mismatch types
getting used.
[r1910]
For single process implementation, this code was fine.
For multi-process/contexts, when we need to cache information
to limit disk access, we should be using the ocpf element as
a memory context.
This patch makes it possible.
[r1909]
Fix SetMessageReadFlag IDL.
[r1908]
Add server side skeleton for SetMessageReadFlag Rop.
[r1907]
the previous "or"ed value used in LogonType union was non handled
properly by pidl. Replace them with static values instead. This
prevent Outlook rom reconnecting in different situations.
[r1906]
This was causing the ndr push error. Outlook now receive OpenMessage
replies.
2010-06-06
jkerihuel
[r1905]
With current implementation messages loaded and added to the mapistore
fsocpf private list were never released/unloaded/free'd.
Similar behavior would have occured in the future with folders. Add a
mapistore release_record function which will free/delete
information/data associated to a given folder/message.
[r1904]
- Add a preliminary OpenMessage reply implementation
- Add a function to resolve recipients against AD
- Add implementation of GetProps for mapistore messages
- Add mapistore getprops semantic
- Add fsocpf getprops implementation
Note: current implementation does not free message object and memory
allocation needs to be revised.
Note 2: openchangeclient --fetchmail works with this version :-)
[r1903]
Fix OpenMessage response size calculation. Subcontext size is already
calculated when we add the RecipientRow.length size to the global size.
[r1902]
- Make ocpf_recipClass public
- Turn path to headers to local in the lexer
bradh
[r1901]
Avoid leaking file descriptors on error.
[r1900]
Check return type for vasprintf in libocpf.
2010-06-05
jkerihuel
[r1899]
Change mapistore openmessage semantics to fetch/retrieve recipients
and properties from mapistore. Modify OpenMessage ROP to dump
mapistore_message structure contents retrieved from mapistore.
[r1898]
Add a function to retrieve recipients from a parsed OCPF message.
[r1897]
This is a wip commit, so there is a lot of DEBUG across the code. This
will go away in further commits when the implementation is complete.
- Add indexing API to mapistore. This API adds an indexing.tdb file
within user's mapistore private space and associate MID and FID to
their full mapistore path. Current implementation expects folder and
mid are repsented under their hexadecimal representation and using
the 0.16PRIx64 format string. It is not robust, but should do the
trick for the moment. Among features available:
- create/open the indexing database
- search of existing indexing context
- ref count assessors
- add/delete fid/mid records
- retrieve the list of folders pointing to an element (parsing
of the mapistore URI)
- Calls to the API have been added to the emsmdb provider
implementation for initialization and automatic attempt to add
entries whenever we open a folder.
- Add preliminary code (relying on indexing API) for OpenMessage when
parent handle is the store object. The entire set of cases for
mailbox have been included.
- Add mapistore code for op_openmessage operation.
- Add message list to the fsocpf context
- Add preliminary fsocpf backend code to open a message and store it
within ocpf_context.
bradh
[r1896]
Refactored some of the FSOCPF backend.
Basically some Extract Method refactoring to improve code re-use.
[r1895]
Use PRIx64 macro to avoid compiler warning.
2010-06-03
jkerihuel
[r1893]
Add a new OCPF error OCPF_E_EXIST returned if a context already exist.
Prevent ocpf_new_context from adding a context to the list if it
already existed
[r1892]
Clean up debug code introduced while working on new libocpf version
[r1891]
- Make libocpf reentrant and use contexts/ref_count: No more globals
are used in libocpf, they are all specific to contexts. libOCPF is
now multi-process/thread friendly.
- Remove Makefile bison compiling option with a bison %option in
ocpf.y
- Propagate libocpf changes to openchange server and utils
- Fix a bug in file/folder listing when we have both folders and
files.
2010-06-01
jkerihuel
[r1889]
Untested code:
- add libmapiserver calculation for OpenMessage + related OXCDATA structures
- add skeleton implementation for server-side OpenMessage ROP
- add preliminary emsmdbp_object_message implementation/initialization
[r1888]
- Flush ocpf output when an error occurs
- Fix retrieval of message list in fsocpf backend
[r1887]
Add QueryRows implementation for mapistore in fsocpf backend.
[r1886]
- Add implementation for mapistore GetContentsTable
- Fix error reply for GetHierarchyTable
[r1885]
Fix how PT_DOUBLE data is passed among libmapi layers.
[r1884]
Fix an issue introduced in r1858. PT_DOUBLE patch is valid
for EMSMDB, not for NSPI. Rollback change for SPropValue
[r1883]
Add IPM.Note as a default receive folder for Inbox. This is used by
Outlook 2003 in the Send/Receive process.
[r1882]
Add server-side skeleton for GetAttachmentTable operation.
[r1881]
Implement SetSpooler server-side function. The function looks like a
skeleton ... and is one until we figure out what should be the
associated server-side mechanism when clients tells OpenChange server
they want to act as a mail spooler.
[r1880]
The LogonType cases were not handled properly
[r1879]
Replace existing method to retrieve emsabp_ctx in NSPI server code
with mpm session management API and comparison to actual dce_call structure.
Replace MAPI_E_LOGON_FAILED rather than MAPI_E_NOT_ENOUGH_RESOURCES in emsmdb server
code when session is not found.
2010-05-31
jkerihuel
[r1878]
Fix commit typo
[r1877]
We were adding context the list but were never removing them while the
context_id was added to the free list. This was causing
inconsistencies in mapistore context management + invalid
record/pointers to remain and cause OpenChange server to crash.
Also add commented code to CreateFolder ROP that will need to be
enabled when we understand related Outlook behavior.
[r1875]
Patch from Bharath Acharya <[email protected]>:
Print calendar items created at half hours
[r1874]
Minor warning fix - unused variable, not initialized
[r1873]
Fix a bug with invalid session leading to OpenChange server crash.
We are now retrieving the emsmdbp_context pointer from our session
management API, after a comparison check vs dcesrv_call_state rather
than blindling and directly from dce_call.
bradh
[r1876]
Add better error path handling for the OXCFOLD-CREATE mapitest module.
2010-05-30
jkerihuel
[r1872]
Extend mapistore API to have a mapistore URI associated to the backend
context. We want to limit creation of new contexts to the strict
minimum.
Propagate this change to emsmdbp_object_folder_init. Only create a new
context if the uri intended to be opened is not already associated to
an existing context.
[r1870]
Handle additional LogonFlags cases for mailbox store in Logon_repl
[r1869]
Fix empty EcDoRpc replies. Outlook 2007 is now happy and stops from
disconnecting untimely.
[r1868]
Add server-side skeleton implementation for GetPermissionsTable
[r1867]
Pass parent mapi_handles to emsmdbp_object_folder_init rather than
specific parameters.
Improve emsmdbp_object_folder_init to handle all the different folder
creation cases (root folder, mapistore or not, within mapistore or
openchangedb etc.) OpenChange server now passes mapistest folder
creation test properly.
Fix a bug with context_id and mapistore. We were passing the parent
context, then deleting it at some point, causing the parent object to
be invalid. Now makes use of a reference counter we manage to keep
consistency.
Add a convenient function to emsmdbp_object API to retrieve the
contextID associated to an object.
It looks like we still have some issues when running both Outlook 2007
and Outlook 2003 at the same time with OpenChange server. There may be
some additional session checks to perform in the future.
[r1866]
Fix a bug in session management API:
The mpm_session API uses id, id2, node and context_id from the dcerpc
session to uniquely identify a session context.
However when Outlook calls EcDoConnect multiple times, it still uses
the same dcerpc session. With previous API we were freeing the session
while it was still in used - which lead in unstable and unpredictable
crashes.
The following patch adds a ref_count to the mpm_session API and server
code has been changed for emsmdb and nspi server to increment the
ref_count when the session already exists or create a new session if
none is already stored.
Also the mpm_session code checks for the ref_count value and ensures
it is 0 before calling the destructor.
[r1865]
Call emsmdbp_object_folder_init in any case when creating a
folder. The emsmdbp_object function now do required checks and
initialize the folder's object properly.
bradh
[r1871]
trivial comment cleanup.
[r1864]
Minor cleanups for RopCreateFolder in the server.
Prefix the mapistore_uri folder name in the path with "0x"
Use ulFolderType (the folder) instead of ulType (ansi vs unicode) when
deciding which folder type to create.
[r1863]
Trivial comment fixes.
2010-05-29
jkerihuel
[r1862]
Complete the opendir implementation for mapistore folders. Outlook
doesn't crash anymore when attempting to open mapistore folders.
[r1861]
was using the wrong function emsmdbp_is_mapistore instead of
mailboxstore.
[r1860]
Commit Brad Hards's implementation for Public Folders support.
Personal changes wrt initial patch:
- remove mapistore_uri from openchangedb PF record at
provisioning. Only new created folders should be mapistored.
- Add a mailboxstore boolean to folder and mailbox emsmdbp so we can
select the correct basedn for searches.
- Fix GetProps to provide an accurate answer to Outlook when fetching
public folder's store specific properties.
- Use get_PublicFolderId rather than SpecialFolderId when we open a
public folder store.
2010-05-28
jkerihuel
[r1858]
Patch from Milan Crha <[email protected]>:
Fix PT_DOUBLE support in openchange
[r1857]
Fix unicode ocpf format in ocpf_write
[r1856]
- Fix PT_I8 support in libocpf: PT_I8 support was incorrectly
processed as PT_DOUBLE and prevented properties with 0x0014 proptag
(e.g. PR_PARENT_FID) to be added properly to ocpf files.
- Add PR_PARENT_FID to the set of properties when creating folders
[r1855]
Fix mkdir prototype in sqlite3 backend
2010-05-27
jkerihuel
[r1853]
Outlook uses GetProps with the PidTagSubFolders property to check if a
folder has subfolders. Add this property at provisioning (set to
FALSE), then set it to true on system/specialfolders if folder
creation in mapistore went OK.
[r1852]
- Implement mkdir operation at mapistore level