6f98db8e2ad9edae4815a2ee4f6ae8977ede21b1
[mono.git] / mcs / class / System.ServiceModel / System.ServiceModel.Channels / ChangeLog
1 2010-07-28  Atsushi Enomoto  <atsushi@ximian.com>
2
3         * SecurityBindingElement.cs : implement ToString().
4
5 2010-07-15  Atsushi Enomoto  <atsushi@ximian.com>
6
7         * MtomMessageEncodingBindingElement.cs, MtomMessageEncoder.cs :
8           add missing members.
9
10 2010-07-14  Atsushi Enomoto  <atsushi@ximian.com>
11
12         * BinaryMessageEncoder.cs, MessageEncoder.cs:
13           The default content type value is null, not the ContentType value.
14
15 2010-07-12  Atsushi Enomoto  <atsushi@ximian.com>
16
17         * MessageSecurityBindingSupport.cs : and move this too.
18
19 2010-07-12  Atsushi Enomoto  <atsushi@ximian.com>
20
21         * MessageSecurityBindingSupport.cs : split a couple of classes out.
22           Changed namespace to internal one.
23
24 2010-07-12  Atsushi Enomoto  <atsushi@ximian.com>
25
26         * SecurityChannelFactory.cs
27           SecurityChannelListener.cs
28           SecurityRequestContext.cs
29           SecurityOutputChannel.cs
30           SecurityReplyChannel.cs
31           SecurityRequestChannel.cs
32           SecureMessageGenerator.cs
33           SecureMessageDecryptor.cs
34           WSEncryptedXml.cs
35           WSSignedXml.cs
36           WSSecurityMessageHeader.cs :
37           moved to System.ServiceModel.Channels.Security.
38
39 2010-07-12  Atsushi Enomoto  <atsushi@ximian.com>
40
41         * SecurityReplyChannel.cs : split from SecurityChannelListener.cs.
42         * AsymmetricSecurityBindingElement.cs
43           WSSecurityMessageHeader.cs
44           SecureMessageDecryptor.cs
45           SecureMessageGenerator.cs
46           SecurityChannelListener.cs
47           SecurityRequestContext.cs
48           WSEncryptedXml.cs
49           SecurityRequestChannel.cs
50           SymmetricSecurityBindingElement.cs
51           SecurityOutputChannel.cs
52           SecurityChannelFactory.cs
53           WSSignedXml.cs
54           SecurityBindingElement.cs : change namespace to move to internal
55           namespace directory.
56
57 2010-07-09  Atsushi Enomoto  <atsushi@ximian.com>
58
59         * SecurityRequestContext.cs : remove extraneous buffering.
60
61 2010-07-09  Atsushi Enomoto  <atsushi@ximian.com>
62
63         * SecureMessageDecryptor.cs : avoid duplicate copy of headers into
64           the decrypted message.
65
66 2010-07-09  Atsushi Enomoto  <atsushi@ximian.com>
67
68         * Message.cs, MessageBufferImpl.cs, MessageImpl.cs: preserve and
69           output attributes prefixes, to copy Body/@wsu:Id to successfully
70           verify the xmldsig.
71
72 2010-07-09  Atsushi Enomoto  <atsushi@ximian.com>
73
74         * MessageFault.cs : MessageFault from Message could have empty
75           detail. Have it return HasDetail as expected.
76
77 2010-07-09  Atsushi Enomoto  <atsushi@ximian.com>
78
79         * SecurityRequestChannel.cs : do not try to decrypt faults, they
80           are not encrypted.
81
82 2010-07-09  Atsushi Enomoto  <atsushi@ximian.com>
83
84         * MessageHeader.cs : to clone raw xml completely, avoid using 
85           ReadOuterXml() and text reader but use XmlNodeReader instaed.
86         * Message.cs : avoid extraneous xmlns:u attribute.
87
88 2010-07-09  Atsushi Enomoto  <atsushi@ximian.com>
89
90         * MessageHeader.cs, MessageHeaderInfo.cs: add internal Prefix
91           property and copy them from source to destination.
92
93 2010-07-09  Atsushi Enomoto  <atsushi@ximian.com>
94
95         * MessageImpl.cs : When XmlReaderMessage was writing its contents,
96           it was dropping body attributes, including wsu:Id for WS-Security.
97
98 2010-07-09  Atsushi Enomoto  <atsushi@ximian.com>
99
100         * SecureMessageGenerator.cs : MessageBuffer was missing copy of
101           Body wsu:Id attribute.
102         * HttpRequestChannel.cs : remove comment for resolved issue.
103
104 2010-07-09  Atsushi Enomoto  <atsushi@ximian.com>
105
106         * HttpListenerManager.cs : move another old code.
107
108 2010-07-08  Atsushi Enomoto  <atsushi@ximian.com>
109
110         * HttpRequestChannel.cs : remove extra code.
111
112 2010-07-08  Atsushi Enomoto  <atsushi@ximian.com>
113
114         * XmlReaderBodyWriter.cs, MessageFault.cs: warning cleanups.
115
116 2010-07-06  Atsushi Enomoto  <atsushi@ximian.com>
117
118         * ChannelFactoryBase.cs : null via uri parameter is not allowed.
119
120 2010-07-05  Atsushi Enomoto  <atsushi@ximian.com>
121
122         * HttpTransportbindingElement.cs : remove "Standalone".
123
124 2010-07-05  Atsushi Enomoto  <atsushi@ximian.com>
125
126         * SvcHttpHandler.cs : removed old code and #if blocks.
127
128 2010-07-05  Atsushi Enomoto  <atsushi@ximian.com>
129
130         * SvcHttpHandler.cs : add required code for new ASP.NET HTTP stack.
131           Support for new and old stack (both) are temporarily enabled.
132         * HttpTransportBindingElement.cs : switch to new ASP.NET stack.
133
134 2010-07-02  Atsushi Enomoto  <atsushi@ximian.com>
135
136         * SvcHttpHandlerFactory.cs : remove unused code.
137         * SvcHttpHandler.cs : ditto. Add some code for what new asp.net
138           support will look like.
139
140 2010-07-02  Atsushi Enomoto  <atsushi@ximian.com>
141
142         * Message.cs, MessageImpl.cs, MessageBufferImpl.cs : remove BodyId.
143           XML attributes on s:Body are handled appropriately, not limited to
144           wsu:Id. Added several required overrides to Message and
145           MessageBuffer implementation classes.
146         * SecureMessageGenerator.cs : so, don't use BodyId. Treat it as a
147           specific case but still fallback.
148
149 2010-06-24  Atsushi Enomoto  <atsushi@ximian.com>
150
151         * HttpTransportBindingElement.cs :
152           Use new HTTP channel listener implementation.
153
154 2010-06-23  Atsushi Enomoto  <atsushi@ximian.com>
155
156         * HttpListenerManager.cs : cosmetic code formatting fix.
157
158 2010-06-23  Atsushi Enomoto  <atsushi@ximian.com>
159
160         * HttpListenerManager.cs :
161           No need to get messed around MetadataPublishingInfo anymore.
162
163 2010-06-23  Atsushi Enomoto  <atsushi@ximian.com>
164
165         * HttpListenerManager.cs : remove extra different code paths for
166           channel dispatchers with or without mex endpoints.
167
168 2010-06-23  Atsushi Enomoto  <atsushi@ximian.com>
169
170         * HttpListenerManager.cs : simplify FilterHttpContext().
171
172 2010-06-22  Atsushi Enomoto  <atsushi@ximian.com>
173
174         * HttpListenerManager.cs : add some comments.
175
176 2010-06-21  Atsushi Enomoto  <atsushi@ximian.com>
177
178         * HttpReplyChannel.cs : use MessageVersion.None for GET messages.
179         * HttpChannelListener.cs : remove extra field.
180         * HttpListenerManager.cs : check HelpUrl existence (avoid NRE).
181         * HttpRequestContext.cs : reduce internal field.
182
183 2010-06-17  Atsushi Enomoto  <atsushi@ximian.com>
184
185         * MtomMessageEncodingBindingElement.cs: it's base is abstract, use 
186           context.GetInnerProperty<T>().
187
188 2010-06-17  Atsushi Enomoto  <atsushi@ximian.com>
189
190         * Binding.cs : enable simpler MessageVersion code (issued got fixed).
191         * MtomMessageEncodingBindingElement.cs, TransportBindingElement.cs,
192           TextMessageEncodingBindingElement.cs : return MessageVersion in
193           GetProperty<T>().
194
195 2010-06-17  Atsushi Enomoto  <atsushi@ximian.com>
196
197         * Binding.cs : add commented-out code for MessageVersion replacement.
198         * TransactionFlowBindingElement.cs : implement (almost dummy).
199
200 2010-06-15  Atsushi Enomoto  <atsushi@ximian.com>
201
202         * TcpReplyChannel.cs : accept TCP channel on ReceiveRequest(). This
203           fixes standalone tcp-transport/sample[svc|cli]5.exe test in olive
204           (but not TcpTransportBindingElementTest.SimpleDuplexStreamed.)
205
206 2010-06-15  Atsushi Enomoto  <atsushi@ximian.com>
207
208         * TcpBinaryFrameManager.cs : lock read and write respectively.
209           Finally fixed bug #567672 ('IsOneWay=false' case).
210
211 2010-05-28  Atsushi Enomoto  <atsushi@ximian.com>
212
213         * DirectionalAction.cs : remove old code from winfx beta.
214
215 2010-05-26  Atsushi Enomoto  <atsushi@ximian.com>
216
217         * TcpDuplexSessionChannel.cs, TcpReplyChannel.cs : do not set RelatesTo
218           here. If the contract is not one-way (IsOneWay = false) and there is
219           a callback, the callback message sent to the client should *not* be
220           assigned RelatesTo header here. Just do it in the request-reply
221           context. Do it in OperationInvokerHandler.
222
223 2010-05-21  Atsushi Enomoto  <atsushi@ximian.com>
224
225         * SvcHttpHandler.cs : remove Sleep() hack. The host is now ensured
226           to wait for channels opened.
227
228 2010-05-21  Atsushi Enomoto  <atsushi@ximian.com>
229
230         * SvcHttpHandler.cs : remove unused field. Some code cleanup.
231
232 2010-05-21  Atsushi Enomoto  <atsushi@ximian.com>
233
234         * HttpReplyChannel.cs : use manual reset.
235         * AspNetReplyChannel.cs : make it equivalent to the above.
236
237 2010-05-21  Atsushi Enomoto  <atsushi@ximian.com>
238
239         * HttpChannelListener.cs : do not accept more than one channel at a
240           time. Remove extra fields. Add CancelAsync() implementation.
241
242 2010-05-21  Atsushi Enomoto  <atsushi@ximian.com>
243
244         * HttpListenerManager.cs : add a workaround for Func<>.BeginInvoke()
245           problem that blocked ASP.NET channels working.
246
247 2010-05-19  Andreia Gaita  <avidigal@novell.com>
248
249         * HttpRequestChannel.cs: if the response has no body, create an
250           empty message and return that.
251           Note: the ws-mc protocol defines that the service returns an
252           200 response with an empty body on first connection, this
253           adds support for that (fixes part of #599667)
254
255 2010-05-14  Atsushi Enomoto  <atsushi@ximian.com>
256
257         * DuplexChannelBase.cs
258           ReplyChannelBase.cs
259           TcpChannelListener.cs
260           ChannelListenerBase_1.cs
261           PeerChannelListener.cs
262           HttpChannelListener.cs
263           NamedPipeChannelListener.cs:
264           do the same for channel listener,reply channels and
265           duplex channels.
266
267 2010-05-14  Atsushi Enomoto  <atsushi@ximian.com>
268
269         * ChannelFactoryBase.cs, RequestChannelBase.cs : support
270           MessageVersion in GetProperty<T>() for many transport channels.
271
272 2010-05-14  Atsushi Enomoto  <atsushi@ximian.com>
273
274         * HttpChannelFactory.cs
275           TcpChannelFactory.cs
276           ChannelFactoryBase.cs
277           NamedPipeChannelFactory.cs
278           PeerChannelFactory.cs
279           RequestChannelBase.cs : commonize MessageEncoder.
280           (Commented out GetPrpoerty<T>() for MessageVersion as it is 
281           in doubt yet.)
282
283 2010-05-14  Atsushi Enomoto  <atsushi@ximian.com>
284
285         * MessageHeaders.cs : do not pass empty string array; it almost
286           always results in header-not-found error.
287
288 2010-05-14  Atsushi Enomoto  <atsushi@ximian.com>
289
290         * MessageHeader.cs : do not try to lookup prefix for empty ns.
291
292 2010-05-14  Atsushi Enomoto  <atsushi@ximian.com>
293
294         * MessageImpl.cs : do not use maxBufferSize for initialSize argument
295           for MessageHeaders. Fix OutOfMemoryException for certain usage.
296
297 2010-05-14  Atsushi Enomoto  <atsushi@ximian.com>
298
299         * BindingContext.cs : actually clone is needed everywhere else too.
300         * CustomBinding.cs : remove extra field.
301
302 2010-05-14  Andreia Gaita  <avidigal@novell.com>
303
304         * BindingContext.cs: Copy elements from the original binding only when
305         creating it, never when cloning it. This way, CanBuildInnerChannel can
306         work recursively as it should.
307
308 2010-05-14  Atsushi Enomoto  <atsushi@ximian.com>
309
310         * CustomBinding.cs : return clone collection.
311         * BindingContext.cs :
312           Simply use RemainingBindingElements in builder methods.
313           Clone() should be deep copying (as documented).
314         * BinaryMessageEncodingBindingElement.cs
315           MtomMessageEncodingBindingElement.cs
316           TextMessageEncodingBindingElement.cs
317           HttpCookieContainerBindingElement.cs :
318           do not add itself to RemainingBindingElements.
319         * HttpChannelFactory.cs
320           HttpChannelListener.cs
321           TcpChannelFactory.cs
322           TcpChannelListener.cs
323           MsmqChannelFactory.cs
324           MsmqChannelListener.cs
325           NamedPipeChannelFactory.cs
326           NamedPipeChannelListener.cs
327           PeerChannelFactory.cs
328           PeerChannelListener.cs : do not iterate RemainingBindingElements.
329           Instead, iterate all binding elements in the CustomBinding.
330
331 2010-05-12  Atsushi Enomoto  <atsushi@ximian.com>
332
333         * HttpRequestChannel.cs : implement On[Begin|End][Close|Open] methods.
334
335 2010-04-30  Atsushi Enomoto  <atsushi@ximian.com>
336
337         * HttpListenerManager.cs : use manual reset here to not cause
338           possible inconsistent locking.
339
340 2010-04-28  Atsushi Enomoto  <atsushi@ximian.com>
341
342         * HttpChannelListener.cs, HttpListenerManager.cs :
343           Fix NRE issue in olive/samples/wcf/web-http-binding/samplesvc3.exe.
344
345 2010-04-23  Atsushi Enomoto  <atsushi@ximian.com>
346
347         * HttpListenerManager.cs : fixed the issue that mex_info is never
348           retrieved from the latest channel listener (which could be other
349           listener than the one which was set mex info).
350
351 2010-04-23  Atsushi Enomoto  <atsushi@ximian.com>
352
353         * HttpChannelListener.cs, HttpListenerManager.cs :
354           actually it should be ChannelDispatcher-to-HttpChannelListener,
355           to identify which dispatcher to send reqs.
356
357 2010-04-23  Atsushi Enomoto  <atsushi@ximian.com>
358
359         * HttpReplyChannel.cs : remove old Http Keep-Alive workaround.
360
361 2010-04-23  Atsushi Enomoto  <atsushi@ximian.com>
362
363         * HttpTransportBindingElement.cs,
364           HttpChannelListener.cs,
365           HttpListenerManager.cs : add host-to-http-listener mapping so that
366           they can be managed per host.
367
368 2010-04-21  Atsushi Enomoto  <atsushi@ximian.com>
369
370         * BindingContext.cs : require a TransportBindingElement when
371           building a channel listener.
372
373 2010-04-19  Atsushi Enomoto  <atsushi@ximian.com>
374
375         * HttpReplyChannel.cs : use local var to hold wait handle to avoid
376           possible NRE on field. Based on the patch by Matt Dargavel.
377
378 2010-04-07  Miguel de Icaza  <miguel@novell.com>
379
380         *  BufferManager.cs: Implement the BufferManager. 
381
382 2010-04-07  Atsushi Enomoto  <atsushi@ximian.com>
383
384         * WSSecurityMessageHeader.cs : add FIXME comment.
385
386 2010-04-06  Atsushi Enomoto  <atsushi@ximian.com>
387
388         * HttpRequestChannel.cs : add commented note.
389
390 2010-04-06  Atsushi Enomoto  <atsushi@ximian.com>
391
392         * HttpReplyChannel.cs : fill To header only if it does not exist.
393
394 2010-04-06  Atsushi Enomoto  <atsushi@ximian.com>
395
396         * SecureMessageGenerator.cs : set ReplyTo and To, do not add.
397
398 2010-04-06  Atsushi Enomoto  <atsushi@ximian.com>
399
400         * MessageHeaders.cs : use matching addressing version.
401           Remove header item if the same ones already exist.
402
403 2010-04-06 Gonzalo Paniagua Javier <gonzalo@novell.com>
404
405         * HttpRequestChannel.cs: don't create the wait handle unless it is
406         really needed.
407
408 2010-04-02  Atsushi Enomoto  <atsushi@ximian.com>
409
410         * HttpRequestChannel.cs : use correct max buffer size.
411
412 2010-04-02  Atsushi Enomoto  <atsushi@ximian.com>
413
414         * MessageFault.cs : check null serializer and detail.
415           Make sure to consume s12:Reason EndElement.
416
417 2010-04-02  Atsushi Enomoto  <atsushi@ximian.com>
418
419         * MessageFault.cs : when created from XmlReader, it should not
420           deserialize fault details immediately. This class itself should
421           not do that. Strongly typed FaultContractInfo may want to use the
422           reader (GetReaderAtDetailContents()) for its own deserialization.
423
424 2010-04-01  Atsushi Enomoto  <atsushi@ximian.com>
425
426         * ConnectionOrientedTransportBindingElement.cs,
427           TcpTransportBindingElement.cs : implement GetProperty<T>().
428
429 2010-04-01  Atsushi Enomoto  <atsushi@ximian.com>
430
431         * HttpTransportBindingElement.cs, HttpsTransportBindingElement.cs:
432           implement HttpsTransportBindingElement.GetProperty<T>(). Extend the
433           properties type from HTTP.
434
435 2010-04-01  Atsushi Enomoto  <atsushi@ximian.com>
436
437         * FaultConverter.cs : use addressing version from the message.
438
439 2010-03-30  Atsushi Enomoto  <atsushi@ximian.com>
440
441         * FaultConverter.cs : check envelope version, not addressing version.
442
443 2010-03-29  Atsushi Enomoto  <atsushi@ximian.com>
444
445         * FaultConverter.cs : implemented TryCreateException().
446
447 2010-03-29  Atsushi Enomoto  <atsushi@ximian.com>
448
449         * MessageFault.cs : cosmetic method name clarification.
450
451 2010-03-29  Atsushi Enomoto  <atsushi@ximian.com>
452
453         * XmlReaderBodyWriter.cs, Message.cs, MessageImpl.cs, BodyWriter.cs:
454           fix BodyWriter buffering that dropped in-scope namespaces and thus
455           caused problem on resolving QNames.
456
457 2010-03-26  Atsushi Enomoto  <atsushi@ximian.com>
458
459         * FaultConverter.cs : do implement OnTryCreateFaultMessage() to work
460           with certain Exception types.
461
462 2010-03-26  Atsushi Enomoto  <atsushi@ximian.com>
463
464         * Message.cs : fix explanation on CreateMessage() overloads.
465
466 2010-03-26  Atsushi Enomoto  <atsushi@ximian.com>
467
468         * MessageFault.cs : Write Subcode element correctly and fix wrong
469           Code/Value/Subcode element relationship. Give better error message.
470
471 2010-03-26  Atsushi Enomoto  <atsushi@ximian.com>
472
473         * HttpRequestChannel.cs : ok, no need for conditional code path.
474
475 2010-03-26  Atsushi Enomoto  <atsushi@ximian.com>
476
477         * AddressingVersion.cs : add fault action namespace.
478
479 2010-03-26  Sebastien Pouliot  <sebastien@ximian.com>
480
481         * HttpRequestChannel.cs: There is no WebHeaderCollection.Add 
482         method in SL API
483
484 2010-03-26  Atsushi Enomoto  <atsushi@ximian.com>
485
486         * MessageImpl.cs : pass IsFault argument in OnCreateBufferedCopy().
487
488 2010-03-26  Atsushi Enomoto  <atsushi@ximian.com>
489
490         * HttpRequestContext.cs, AspNetRequestContext.cs : return HTTP 500
491           for fault message.
492
493 2010-03-26  Atsushi Enomoto  <atsushi@ximian.com>
494
495         * HttpRequestChannel.cs : create HttpResponseMessageProperty.
496
497 2010-03-25  Atsushi Enomoto  <atsushi@ximian.com>
498
499         * HttpRequestContext.cs : removed HTTP status rewriting for
500           commented reason.
501
502 2010-03-25  Atsushi Enomoto  <atsushi@ximian.com>
503
504         * HttpRequestChannel.cs : handle only 4xx errors as to not process
505           content stream.
506
507 2010-03-25  Atsushi Enomoto  <atsushi@ximian.com>
508
509         * MessageFault.cs : do not use SOAP11 namespace for fault contents.
510
511 2010-03-24  Atsushi Enomoto  <atsushi@ximian.com>
512
513         * ReplyChannelBase.cs, HttpReplyChannel.cs : add some locking.
514           Patch by Matt Dargavel.
515
516 2010-03-24  Atsushi Enomoto  <atsushi@ximian.com>
517
518         * HttpListenerManager.cs : use lock object which is subject to
519           change. Fix by Matt Dargavel.
520
521 2010-03-24  Atsushi Enomoto  <atsushi@ximian.com>
522
523         * HttpListenerManager.cs : remove consumed HttpListenerContext from
524           the pending queue. Compare "wsdl" request in case insensitive
525           manner. Patch by Matt Dargavel.
526
527 2010-03-24  Atsushi Enomoto  <atsushi@ximian.com>
528
529         * HttpRequestContext.cs : apply the patch by Matt Dargavel, which is
530           supposed to provide detailed 400 error message.
531
532 2010-03-24  Atsushi Enomoto  <atsushi@ximian.com>
533
534         * TransactionFlowBindingElement.cs: revamp the previous change to
535           not regress regarding service metadata.
536
537 2010-03-24  Atsushi Enomoto  <atsushi@ximian.com>
538
539         * ChannelListenerBase.cs, TransactionFlowBindingElement.cs: fix 
540           GetProperty<T>() bug that fails to retrieve properties. (This may
541           be rewritten later if an ongoing change proposal is to take place.)
542
543 2010-03-18  Atsushi Enomoto  <atsushi@ximian.com>
544
545         * ReliableSessionBindingElement.cs,
546           PrivacyNoticeBindingElement.cs,
547           RemoteEndpointMessageProperty.cs : added some missing types.
548
549 2010-03-17  Atsushi Enomoto  <atsushi@ximian.com>
550
551         * MessageHeaders.cs :
552           why does it filter out most of the headers? kill it.
553
554 2010-03-17  Atsushi Enomoto  <atsushi@ximian.com>
555
556         * SvcHttpHandler.cs, AspNetReplyChannel.cs, HttpChannelListener.cs,
557           HttpListenerManager.cs : refactoring on acquiring SvcHttpHandler
558           to not raise "not found" error (see bug #573795).
559
560 2010-03-16  Jb Evain  <jbevain@novell.com>
561
562         * HttpRequestChannel.cs, HttpTransportBindingElement.cs: use
563         MOONLIGHT symbol to disambiguate MonoTouch and Moonlight code.
564
565 2010-03-09  Atsushi Enomoto  <atsushi@ximian.com>
566
567         * HttpListenerManager.cs : For ASP.NET, use correct GenericIdentity
568           type, and use null password unless we find a chance to get password
569           in ASP.NET HttpContext.
570
571 2010-03-03  Atsushi Enomoto  <atsushi@ximian.com>
572
573         * HttpReplyChannel.cs, AspNetReplyChannel.cs, HttpChannelListener.cs,
574           HttpListenerManager.cs : ongoing authentication support. It returns
575           401 as expected, but somehow fails to retrieve user info.
576
577 2010-02-10  Atsushi Enomoto  <atsushi@ximian.com>
578
579         * HttpListenerManager.cs : this change (along with HttpListener
580           implementation) somehow fixes basic auth. connection error...
581
582 2010-02-10  Atsushi Enomoto  <atsushi@ximian.com>
583
584         * MessageHeaders.cs : add !NET_2_1.
585
586 2010-02-10  Atsushi Enomoto  <atsushi@ximian.com>
587
588         * MessageHeader.cs, MessageHeaders.cs : add nasty workaround for
589           typed UniqueId output.
590
591 2010-02-10  Atsushi Enomoto  <atsushi@ximian.com>
592
593         * MessageHeader.cs : no need to treat EndpointAddress as a special
594           case here too.
595
596 2010-02-10  Atsushi Enomoto  <atsushi@ximian.com>
597
598         * MessageHeaders.cs : remove duplicate constant.
599
600 2010-02-10  Atsushi Enomoto  <atsushi@ximian.com>
601
602         * MessageHeader.cs, MessageHeaders.cs: MessageHeader does not treat
603           EndpointAddress as a special case. Instead, each MessageHeaders
604           property should convert it to appropriate serializable objects.
605
606           (Our DataContractSerializer fails to reject EndpointAddress as
607           serializable type, so it's rather a preparation step.)
608
609 2010-02-10  Atsushi Enomoto  <atsushi@ximian.com>
610
611         * MessageHeader.cs, Message.cs : use dictionary string whenever
612           applicable. The binary output on #577139 is getting closer (no
613           idea if it is really about binary output though).
614
615 2010-02-10  Atsushi Enomoto  <atsushi@ximian.com>
616
617         * BinaryMessageEncoder.cs : moved soap_dictionary to Constants.
618
619 2010-02-05  Atsushi Enomoto  <atsushi@ximian.com>
620
621         *  HttpTransportBindingElement.cs : ... and add MONOTOUCH on #ifs.
622
623 2010-02-05  Atsushi Enomoto  <atsushi@ximian.com>
624
625         *  HttpRequestChannel.cs, HttpTransportBindingElement.cs :
626           enable authentication schemes on monotouch.
627
628 2010-02-04  Atsushi Enomoto  <atsushi@ximian.com>
629
630         * SvcHttpHandler.cs : a wait handle could be used for more than one
631           requests and hence it sometimes blocked one reply channel. Now
632           it creates a wait handle for each ASP.NET request so that such
633           multiple use should not occur. This should fix blocking on
634           concurrent requests (it indeed fixes as long as I can see).
635
636 2010-02-04  Atsushi Enomoto  <atsushi@ximian.com>
637
638         * AspNetReplyChannel.cs : remove garbage output.
639
640 2010-02-04  Atsushi Enomoto  <atsushi@ximian.com>
641
642         * SvcHttpHandler.cs : Use lock when it tries to create the service
643           host.
644
645 2010-02-02  Atsushi Enomoto  <atsushi@ximian.com>
646
647         * SvcHttpHandlerFactory.cs : lock when it tries to acquire
648           HttpHandler.
649
650 2010-02-02  Atsushi Enomoto  <atsushi@ximian.com>
651
652         * HttpListenerManager.cs : add another workaround for blocking
653           concurrent calls.
654
655 2010-02-02  Atsushi Enomoto  <atsushi@ximian.com>
656
657         * HttpListenerManager.cs : small refactoring.
658
659 2010-01-22  Atsushi Enomoto  <atsushi@ximian.com>
660
661         * TcpDuplexSessionChannel.cs : added a workaround receiver delay
662           that somehow makes callback client to not cause infinite loop.
663
664 2010-01-22  Atsushi Enomoto  <atsushi@ximian.com>
665
666         * TcpDuplexSessionChannel.cs, PeerDuplexChannel.cs,
667           DuplexChannelBase.cs : Receive() should rather use TryReceive().
668           It should not be in reverse order.
669
670 2010-01-22  Atsushi Enomoto  <atsushi@ximian.com>
671
672         * HttpReplyChannel.cs, HttpListenerManager.cs :
673           Implement async cancellation in the expected manner (though with
674           some hack). This mostly removed nunit blockers.
675
676 2010-01-22  Atsushi Enomoto  <atsushi@ximian.com>
677
678         * CommunicationObject.cs : fix wrong status changes.
679
680 2010-01-20  Atsushi Enomoto  <atsushi@ximian.com>
681
682         * AddressHeader.cs : XmlSchema.InstanceNamespace didn't exist in 2.1 :(
683
684 2010-01-20  Atsushi Enomoto  <atsushi@ximian.com>
685
686         * AddressHeader.cs : implement remaining bits.
687           Eliminate dependency on NetDataContractSerializer.
688
689 2010-01-20  Atsushi Enomoto  <atsushi@ximian.com>
690
691         * CommunicationObject.cs : in Fault(), do similar work as previous
692           change does.
693
694 2010-01-19  Atsushi Enomoto  <atsushi@ximian.com>
695
696         * CommunicationObject.cs : when process state changes, lock the
697           object to make sure the state transition is valid.
698           Change OnClosed/OnClosing to do the way OnOpened/OnOpening does.
699
700 2010-01-13  Atsushi Enomoto  <atsushi@ximian.com>
701
702         * MessageHeaders.cs : implement SetAction().
703
704 2010-01-13  Atsushi Enomoto  <atsushi@ximian.com>
705
706         * ChannelFactoryBase.cs : fix build.
707
708 2010-01-13  Atsushi Enomoto  <atsushi@ximian.com>
709
710         * ChannelBase.cs : cosmetic API fix for SL3.
711
712 2010-01-13  Atsushi Enomoto  <atsushi@ximian.com>
713
714         * ChannelFactoryBase.cs :
715           implement On{Begin/End}Close() on the generic type.
716
717 2010-01-13  Atsushi Enomoto  <atsushi@ximian.com>
718
719         * HttpChannelFactory.cs, TcpChannelFactory.cs,
720           ChannelFactoryBase.cs, NamedPipeChannelFactory.cs
721           PeerChannelFactory.cs, HttpRequestChannel.cs:
722           fix ChannelFactoryBase API; move On(Begin/End)Open() to internal
723           type and made required changes.
724
725 2010-01-13  Atsushi Enomoto  <atsushi@ximian.com>
726
727         * HttpCookieContainerBindingElement.cs : new.
728         * IHttpCookieContainer.cs : fix type name.
729         * HttpRequestChannel.cs, HttpChannelFactory.cs : support above.
730
731 2010-01-07  Atsushi Enomoto  <atsushi@ximian.com>
732
733         * TcpBinaryFrameManager.cs : treat EOF as interrupted stream too (it
734           does not happen when communicating with .NET client but happens with
735           mono). Seealso FIXME comment.
736         * TcpDuplexSessionChannel.cs : do not try to close session when it
737           failed to read sized message. The connection is already dead.
738
739           Fixed bug #567949.
740
741 2010-01-07  Atsushi Enomoto  <atsushi@ximian.com>
742
743         * TcpDuplexSessionChannel.cs :
744           Write EndRecord only when the connection is available.
745           Remove hack - do let ChannelDispatcher close the channel.
746         * TcpBinaryFrameManager.cs :
747           The socket may be disconnected when trying to read a sized message,
748           so check some socket exceptions.
749           In case the client silently shuts down without EndRecord and
750           reconnects to the server with preamble while expecting a sized
751           message (which is so lame, but that's what .NET often does), refresh
752           preamble and continue.
753
754           This fixes some cases of bug #567949 but not all.
755
756 2010-01-06  Atsushi Enomoto  <atsushi@ximian.com>
757
758         * BinaryMessageEncoder.cs : enable workaround buffering only when
759           the argument stream does *not* support seek. This fixes some
760           net.tcp connection problem.
761
762 2009-12-26  Atsushi Enomoto  <atsushi@ximian.com>
763
764         * TcpBinaryFrameManager.cs : If preamble byte is not available from
765           the client stream, detect it to close the reply or input channel.
766         * TcpRequestChannel.cs : send preamble at each request time.
767           It differentiates communication behavior on such cases that involve
768           single open and multiple requests.
769         * TcpReplyChannel.cs : close the channel only when the channel is
770           oeprated to close i.e. do not close the socket every time.
771           Process preambles on each request (the same as request channel).
772
773 2009-12-26  Atsushi Enomoto  <atsushi@ximian.com>
774
775         * TcpBinaryFrameManager.cs : unsized envelope record may have more
776           than one data block, so consume them accordingly. This should fix
777           large buffer consumption.
778
779 2009-12-21  Atsushi Enomoto  <atsushi@ximian.com>
780
781         * MessageFault.cs : support EnvelopeVersion.None as well, as almost
782           the same as SOAP12.
783
784 2009-12-17  Atsushi Enomoto  <atsushi@ximian.com>
785
786         * HttpRequestContext.cs : for DestinationUnreachable message, this
787           channel returns 400 in .NET.
788
789 2009-12-16  Atsushi Enomoto  <atsushi@ximian.com>
790
791         * BinaryMessageEncoder.cs : added workaround for strange stream
792           consumption error raised by HttpTransport + Binary encoder example.
793         * BinaryMessageEncodingBindingElement.cs:
794           only SOAP 1.2 is allowed for this encoder.
795
796 2009-12-14  Atsushi Enomoto  <atsushi@ximian.com>
797
798         * XmlReaderBodyWriter.cs : don't try to write empty xml.
799
800 2009-12-10  Atsushi Enomoto  <atsushi@ximian.com>
801
802         * HttpRequestChannel.cs : avoid adding duplicate headers. Basically
803           default WebHeaderCollection items are overwritten.
804
805 2009-12-10  Atsushi Enomoto  <atsushi@ximian.com>
806
807         * HttpRequestChannel.cs : when HTTP response was error, do not try
808           to read message but just raise an error.
809
810 2009-12-10  Atsushi Enomoto  <atsushi@ximian.com>
811
812         * MessageHeaders.cs : null can be set as a WS-Addressing header item.
813
814 2009-12-10  Atsushi Enomoto  <atsushi@ximian.com>
815
816         * HttpRequestChannel.cs : WebException.Response might be null.
817
818 2009-12-04  Atsushi Enomoto  <atsushi@ximian.com>
819
820         * ReplyChannelBase.cs : added listener property.
821         * SecurityChannelListener.cs : quick async impl, as ServiceHost has
822           been updated to prefer async by default, a while ago.
823
824 2009-12-04  Atsushi Enomoto  <atsushi@ximian.com>
825
826         * HttpTransportBindingElement.cs : finished all GetProperty() values.
827
828 2009-12-04  Atsushi Enomoto  <atsushi@ximian.com>
829
830         * HttpRequestChannel.cs : disabled carelessly added
831           "UseDefaultCredentials = false" line. It blocked basic auth.
832
833 2009-12-04  Atsushi Enomoto  <atsushi@ximian.com>
834
835         * HttpRequestChannel.cs, HttpChannelFactory.cs,
836           HttpChannelListener.cs, HttpListenerManager.cs :
837           implemented http client authentication and some of corresponding
838           service code. Only client works so far.
839
840 2009-12-03  Atsushi Enomoto  <atsushi@ximian.com>
841
842         * HttpsTransportBindingElement.cs, HttpChannelListener.cs :
843           added URI scheme check.
844
845 2009-12-03  Atsushi Enomoto  <atsushi@ximian.com>
846
847         * TransportSecurityBindingElement.cs : fix 2.1 build.
848
849 2009-12-03  Atsushi Enomoto  <atsushi@ximian.com>
850
851         * HttpsTransportBindingElement.cs :
852           RequireClientCertificate is false by default.
853           Remove extra #if NET_2_1.
854         * SecurityBindingElement.cs :
855           Implement some transport security factory methods.
856         * TransportSecurityBindingElement.cs :
857           It is not ISecurityCapabilities anymore.
858
859 2009-11-25  Atsushi Enomoto  <atsushi@ximian.com>
860
861         * MessageHeaders.cs
862           SecurityBindingElement.cs
863           LocalClientSecuritySettings.cs
864           TransportSecurityBindingElement.cs
865           FaultConverter.cs : They are now part of SL3 API.
866
867 2009-11-17  Atsushi Enomoto  <atsushi@ximian.com>
868
869         * BinaryMessageEncodingBindingElement.cs : changes for 2.1 build.
870
871 2009-11-05  Geoff Norton  <gnorton@novell.com>
872
873         * HttpsTransportBindingElement.cs: Implement basic https transport
874         binding support for Moonlight and MonoTouch
875
876 2009-10-22  Atsushi Enomoto  <atsushi@ximian.com>
877
878         * HttpListenerManager.cs : remove CWLs.
879
880 2009-10-22  Atsushi Enomoto  <atsushi@ximian.com>
881
882         * SvcHttpHandler.cs : move back previous listener selector code in
883           ProcessRequest(). Unlike HttpListener, ASP.NET does not refine
884           and differentiate requests to deeper paths (such as /jsdebug), so
885           we need such refinement here.
886
887 2009-10-22  Atsushi Enomoto  <atsushi@ximian.com>
888
889         * HttpListenerManager.cs : dependent fix to ServiceMetadataExtension
890           changes.
891
892 2009-10-22  Atsushi Enomoto  <atsushi@ximian.com>
893
894         * SvcHttpHandler.cs, HttpReplyChannel.cs, AspNetReplyChannel.cs,
895           HttpChannelListener.cs, HttpListenerManager.cs :
896           Similar refactoring on ASP.NET side to the previous one.
897           Added ASP.NET implementation of HttpListenerManager and use some
898           part of it in SvcHttpHandler (ASP.NET stack does not fully make use
899           of the manager yet).
900           Rewrote AspNetReplyChannel to become almost the same as
901           HttpSimpleReplyChannel, to hopefully unify them later.
902           Now it dispatches requests to *.svc for wsdl, help and SOAP as long
903           as ServiceThrottle has MaxConcurrentSessions=1. Also REST calls
904           are still broken.
905
906 2009-10-20  Atsushi Enomoto  <atsushi@ximian.com>
907
908         * HttpReplyChannel.cs, HttpChannelListener.cs, HttpListenerManager.cs:
909           Refactoring on listener manager to correctly handle wsdl and help
910           requests for such case that they conflict in addressing. Now it
911           can correctly distinguish service calls, WSDL requests and help
912           requests when all of them point to "http://localhost/foo.svc"
913           (which is very common case that the user does not change Http*Url).
914
915 2009-10-16  Atsushi Enomoto  <atsushi@ximian.com>
916
917         * ChannelListenerBase.cs : add Properties property to add arbitrary
918           properties handy (only inside this assembly).
919
920 2009-10-16  Atsushi Enomoto  <atsushi@ximian.com>
921
922         * HttpReplyChannel.cs : fix warning.
923
924 2009-10-15  Atsushi Enomoto  <atsushi@ximian.com>
925
926         * HttpReplyChannel.cs, AspNetReplyChannel.cs : set Via property.
927
928 2009-10-15  Atsushi Enomoto  <atsushi@ximian.com>
929
930         * HttpReplyChannel.cs : make sure to release wait lock.
931         * HttpChannelListener.cs : session channels are not supported, so
932           remove relevant NIEs.
933
934 2009-10-15  Sebastien Pouliot  <sebastien@ximian.com>
935
936         * HttpRequestChannel.cs (WaitEnd): Neither Moonlight nor MonoTouch
937         support contexts so we call the non-overloaded WaitOne method 
938         (which defaults to false).
939
940 2009-10-13  Atsushi Enomoto  <atsushi@ximian.com>
941
942         * SvcHttpHandler.cs, AspNetReplyChannel.cs, HttpChannelListener.cs:
943           significant rewrite to cooperate wcf handler and asp.net handler
944           to not mix multiple WCF listener within the asp.net handler.
945           So far it mostly works when 1) there are no ChannelDispatchers
946           that have an identical listen Uri and 2) MaxConcurrentSessions is
947           1 (must be explicitly set).
948
949 2009-10-13  Atsushi Enomoto  <atsushi@ximian.com>
950
951         * CommunicationObject.cs : give better state error description.
952
953 2009-10-09  Atsushi Enomoto  <atsushi@ximian.com>
954
955         * CommunicationObject.cs : OnOpening() and OnOpened() require calls
956           to base methods. This resulted in not a few changes everywhere.
957
958 2009-10-07  Atsushi Enomoto  <atsushi@ximian.com>
959
960         * IHttpCookieContainer.cs : new 2.1-only interface (no use).
961
962 2009-10-06  Atsushi Enomoto  <atsushi@ximian.com>
963
964         * SvcHttpHandler.cs : use file path given by the factory to
965           construct BaseAddresses. Requests to "test.svc/jsdebug" should
966           not be handled as request to "jsdebug" file, it's rather an
967           "argument" to "test.svc".
968
969 2009-10-06  Atsushi Enomoto  <atsushi@ximian.com>
970
971         * SvcHttpHandler.cs, HttpChannelListener.cs : some significant
972           rewrite to handle shutdown situation better. The listeners should
973           not close channels that it opened. Instead, just stop accepting
974           further requests. Removed blocking mutex on WaitForRequest().
975           Now xsp shuts down as expected.
976
977 2009-10-06  Atsushi Enomoto  <atsushi@ximian.com>
978
979         * HttpReplyChannel.cs : lock list when releasing its content contexts.
980         * AspNetReplyChannel.cs : send EndRequest() to handler when it is
981           closing.
982
983 2009-10-06  Atsushi Enomoto  <atsushi@ximian.com>
984
985         * SvcHttpHandlerFactory.cs : remove todo.
986         * ReplyChannelBase.cs : add comment.
987
988 2009-10-02  Atsushi Enomoto  <atsushi@ximian.com>
989
990         * HttpTransportBindingElement.cs, SvcHttpHandlerFactory.cs :
991           revert the change, to use internal asp.net state again.
992         * SvcHttpHandler.cs : add VirtualPathExtension.
993
994 2009-10-02  Atsushi Enomoto  <atsushi@ximian.com>
995
996         * HttpReplyChannel.cs, AspNetReplyChannel.cs, AspNetRequestContext.cs:
997           asp.net response was not written correctly.
998           Fill HttpRequestMessageProperty to get handle WSDL requests
999           processed in ServiceMetadataExtension without NRE.
1000           Remove wrong HttpListenerContext iteration at Abort and Close in
1001           common base class and move it to non-asp derived channel.
1002
1003 2009-10-02  Atsushi Enomoto  <atsushi@ximian.com>
1004
1005         * SvcHttpHandler.cs : remove unused code.
1006
1007 2009-09-30  Jb Evain  <jbevain@novell.com>
1008
1009         * HttpRequestChannel.cs: When compiling for MonoTouch, avoid
1010         to use any of the remoting features.
1011
1012 2009-09-30  Atsushi Enomoto  <atsushi@ximian.com>
1013
1014         * SvcHttpHandlerFactory.cs, HttpTransportBindingElement.cs :
1015           use AspNetCompatibilityEnabled.
1016         * SvcHttpHandler.cs : disable ApplyConfiguration(). It should be done
1017           at ServiceHostBase.
1018         * AspNetReplyChannel.cs : remove extra field.
1019
1020 2009-09-29  Atsushi Enomoto  <atsushi@ximian.com>
1021
1022         * HttpReplyChannel.cs : remove extra field.
1023
1024 2009-09-29  Atsushi Enomoto  <atsushi@ximian.com>
1025
1026         * AspNetRequestContext.cs : remove CWL.
1027
1028 2009-09-29  Atsushi Enomoto  <atsushi@ximian.com>
1029
1030         * AspNetReplyChannel.cs, AspNetRequestContext.cs : close HttpContext
1031           only after AspNetRequestContext is closed. Do not close it
1032           immediately after receiving the context. (HttpRuntime destructs it
1033           and further uses then becomes impossible.)
1034
1035 2009-09-29  Atsushi Enomoto  <atsushi@ximian.com>
1036
1037         * AspNetReplyChannel.cs, HttpReplyChannel.cs : add some comments.
1038         * SvcHttpHandlerFactory.cs, SvcHttpHandler.cs, HttpChannelListener.cs:
1039           Make sure that AspNetChannelListener is bound to correct
1040           SvcHttpHandler, regardless of specific request URI. It is required
1041           for both WSDL requests and RESTful binding requests.
1042
1043 2009-09-14  Atsushi Enomoto  <atsushi@ximian.com>
1044
1045         * MessageProperties.cs : fix CopyProperties() behavior to not
1046           clear existing items. Make all properties call this[name].
1047
1048 2009-09-14  Atsushi Enomoto  <atsushi@ximian.com>
1049
1050         * HttpTransportBindingElement.cs : fix 2.1 build.
1051
1052 2009-09-14  Atsushi Enomoto  <atsushi@ximian.com>
1053
1054         * TransportBindingElement.cs : another GetProperty fix, iterate
1055           other binding elements.
1056
1057 2009-09-14  Atsushi Enomoto  <atsushi@ximian.com>
1058
1059         * HttpTransportBindingElement.cs, PeerTransportBindingElement.cs :
1060           some GetProperty() implementation.
1061
1062 2009-09-14  Atsushi Enomoto  <atsushi@ximian.com>
1063
1064         * HttpListenerManager.cs : release HttpListener and avoid extra
1065           close process more than once.
1066
1067 2009-09-11  Atsushi Enomoto  <atsushi@ximian.com>
1068
1069         * HttpChannelListener.cs : do not iterate channel list to close
1070           channels which in turn removes them from the list while iteration.
1071
1072 2009-09-06  Atsushi Enomoto  <atsushi@ximian.com>
1073
1074         * HttpRequestChannel.cs : Fix message version member comparison.
1075           Double-quote SOAPAction. Remove extra Exception.
1076         * HttpReplyChannel.cs : ditto for version comparison. Unquote above.
1077         * HttpRequestContext.cs : when addressing is None, remove action
1078           from the message.
1079
1080 2009-09-04  Atsushi Enomoto  <atsushi@ximian.com>
1081
1082         * SvcHttpHandler.cs : set Uri property based on baseAddresses and
1083           path, to pick those endpoints that are added at custom factories.
1084
1085 2009-09-03  Atsushi Enomoto  <atsushi@ximian.com>
1086
1087         * SvcHttpHandler.cs : apply configuration, and if there is still no
1088           endpoint, then add default one.
1089
1090 2009-09-03  Atsushi Enomoto  <atsushi@ximian.com>
1091
1092         * SvcHttpHandler.cs : another URL to make relative.
1093
1094 2009-09-03  Atsushi Enomoto  <atsushi@ximian.com>
1095
1096         * SvcHttpHandlerFactory.cs : some GetHandler changes.
1097         * SvcHttpHandler.cs : significant changes on receiver structure. Now
1098           ProcessRequest() stores pending requests (this might be extraneous,
1099           but maybe useful when it implements async handler). Also removed
1100           reply_channel field as it may become to handle multiple requests.
1101         * HttpChannelListener.cs : bind to corresponding SvcHttpHandler.
1102         * AspNetReplyChannel.cs : make it receive requests like
1103           HttpReplyChannel (for HttpListener) to make them consistent.
1104
1105 2009-09-03  Atsushi Enomoto  <atsushi@ximian.com>
1106
1107         * AspNetRequestContext.cs, HttpRequestContext.cs :
1108           fix NRE on HttpListenerContext for AspNetRequestContext (mismatch)
1109           by splitting HttpListener-based context out from common code base.
1110
1111 2009-09-03  Atsushi Enomoto  <atsushi@ximian.com>
1112
1113         * SvcHttpHandler.cs : use baseAddresses in ServiceHost and make URIs
1114           relative or absolute. new Uri ("/foobar") doesn't work on non-unix
1115           environment.
1116
1117 2009-09-02  Atsushi Enomoto  <atsushi@ximian.com>
1118
1119         * SvcHttpHandlerFactory.cs : make use of BuildManager aid. Now it
1120           loads types from system assemblies appropriately.
1121
1122 2009-09-02  Atsushi Enomoto  <atsushi@ximian.com>
1123
1124         * XmlReaderBodyWriter.cs : implement OnCreateBufferedCopy()
1125           for XmlReader input.
1126
1127 2009-09-02  Atsushi Enomoto  <atsushi@ximian.com>
1128
1129         * HttpRequestMessageProperty.cs : fix default values.
1130
1131 2009-08-31  Atsushi Enomoto  <atsushi@ximian.com>
1132
1133         * HttpChannelFactory.cs, HttpRequestChannel.cs,
1134           ChannelFactoryBase.cs : fix to previous one; allow null Via uri.
1135           Check ManualAddressing value and reject address-missing ones.
1136
1137 2009-08-31  Atsushi Enomoto  <atsushi@ximian.com>
1138
1139         * HttpChannelFactory.cs : reject URI mismatch cases when required.
1140
1141 2009-08-26  Atsushi Enomoto  <atsushi@ximian.com>
1142
1143         * PeerDuplexChannel.cs : When received Connect() from neighbor,
1144           add the peer to its internal list.
1145           Finally ChatApplication got working.
1146
1147 2009-08-26  Atsushi Enomoto  <atsushi@ximian.com>
1148
1149         * PeerDuplexChannel.cs : since the channel factory is per instance,
1150           do not reuse factory that is tied to different callback instance.
1151           It resolved the issue that mono callback client didn't receive
1152           messages from the client itself.
1153
1154 2009-08-26  Atsushi Enomoto  <atsushi@ximian.com>
1155
1156         * PeerDuplexChannel.cs : in the Welcome response, return the NodeId
1157           of the receiver, not the requestor. It resolved the issue that
1158           .NET client didn't send further messages to mono server.
1159
1160 2009-08-26  Atsushi Enomoto  <atsushi@ximian.com>
1161
1162         * PeerDuplexChannel.cs : remove some comment on [MC-PRCH] behavior.
1163         * TcpDuplexSessionChannel.cs, TcpBinaryFrameManager.cs,
1164           TcpReplyChannel.cs, TcpRequestChannel.cs,
1165           NamedPipeReplyChannel.cs, NamedPipeRequestChannel.cs:
1166           rename EndRecord handling method to appropriate one.
1167           Write EndRecord from recipient too.
1168
1169 2009-08-24  Atsushi Enomoto  <atsushi@ximian.com>
1170
1171         * PeerDuplexChannel.cs : add PeerFlooder header (see comment).
1172           Process PeerTo header to upgrade Message To header. Now mono
1173           service accepts mono client (somehow not true for .NET client).
1174
1175 2009-08-24  Atsushi Enomoto  <atsushi@ximian.com>
1176
1177         * TcpDuplexSessionChannel.cs, TcpRequestChannel.cs,
1178           NamedPipeRequestChannel.cs : no need to add ReplyTo headers.
1179
1180 2009-08-24  Atsushi Enomoto  <atsushi@ximian.com>
1181
1182         * PeerDuplexChannel.cs : fix PeerTo/PeerVia header namespace.
1183
1184 2009-08-24  Atsushi Enomoto  <atsushi@ximian.com>
1185
1186         * TcpDuplexSessionChannel.cs : check channel state before processing
1187           Send and Receive.
1188
1189 2009-08-20  Atsushi Enomoto  <atsushi@ximian.com>
1190
1191         * NamedPipeReplyChannel.cs, NamedPipeRequestChannel.cs,
1192           NamedPipeChannelFactory.cs, NamedPipeChannelListener.cs :
1193           ongoing works, not working at all yet.
1194
1195 2009-08-20  Atsushi Enomoto  <atsushi@ximian.com>
1196
1197         * TcpChannelListener.cs, TcpReplyChannel.cs :
1198           cosmetic cleanup and corrections.
1199
1200 2009-08-20  Atsushi Enomoto  <atsushi@ximian.com>
1201
1202         * TcpChannelFactory.cs : use expected Via uri.
1203           Remove extra NIE stuff that are implemented in base.
1204
1205 2009-08-20  Atsushi Enomoto  <atsushi@ximian.com>
1206
1207         * TcpDuplexSessionChannel.cs : remove extra code.
1208
1209 2009-08-20  Atsushi Enomoto  <atsushi@ximian.com>
1210
1211         * PeerDuplexChannel.cs : ongoing implementation towards get callback
1212           replies on peer connector clients (not working as duplex client
1213           callback is not working yet).
1214
1215 2009-08-20  Atsushi Enomoto  <atsushi@ximian.com>
1216
1217         * TcpDuplexSessionChannel.cs : in callback client channels,
1218           OperationContext.IncomingMessageHeaders is null.
1219
1220 2009-08-20  Atsushi Enomoto  <atsushi@ximian.com>
1221
1222         * MessageHeaders.cs : duplicate check was sloppy.
1223
1224 2009-08-18  Atsushi Enomoto  <atsushi@ximian.com>
1225
1226         * Message.cs, MessageImpl.cs, BodyWriter.cs :
1227           Implement BodyWriter.OnCreateBufferedCopy() and use it.
1228
1229 2009-08-18  Atsushi Enomoto  <atsushi@ximian.com>
1230
1231         * ReplyChannelBase.cs : initialize field.
1232
1233 2009-08-17  Atsushi Enomoto  <atsushi@ximian.com>
1234
1235         * ReplyChannelBase.cs, DuplexChannelBase.cs, RequestChannelBase.cs:
1236           implement GetProperty<T>() and return its channel manager.
1237
1238 2009-08-17  Atsushi Enomoto  <atsushi@ximian.com>
1239
1240         * PeerDuplexChannel.cs : ongoing implementation. Fix wrong peer
1241           destination address in Connect() request. To repeat sending
1242           request, use buffered copy. Set some peer-channel specific
1243           header items. (todo: and consume them.)
1244
1245 2009-08-17  Atsushi Enomoto  <atsushi@ximian.com>
1246
1247         * Message.cs : state is set only after WriteBodyContents().
1248
1249 2009-08-17  Atsushi Enomoto  <atsushi@ximian.com>
1250
1251         * MessageHeaders.cs : eliminate wrong use of
1252           ReadElementContentAsString() (it is not always simple string).
1253
1254 2009-08-17  Atsushi Enomoto  <atsushi@ximian.com>
1255
1256         * MessageHeaders.cs : when the value is null, do not try to
1257           deserialize EndpointAddress.
1258
1259 2009-08-17  Atsushi Enomoto  <atsushi@ximian.com>
1260
1261          * MessageHeader.cs : add Value property. (Forgot dependent change.)
1262
1263 2009-08-17  Atsushi Enomoto  <atsushi@ximian.com>
1264
1265          * MessageHeaders.cs : GetHeader<T>() could mostly skip extra
1266            serialization and deserialization of values.
1267
1268 2009-08-14  Atsushi Enomoto  <atsushi@ximian.com>
1269
1270         * PeerDuplexChannel.cs : handle Welcome and Refuse at client side.
1271           Now simply use connector contract.
1272
1273 2009-08-14  Atsushi Enomoto  <atsushi@ximian.com>
1274
1275         * PeerDuplexChannel.cs : handle Disconnect(). Fix URLs a bit.
1276
1277 2009-08-14  Atsushi Enomoto  <atsushi@ximian.com>
1278
1279         * TcpChannelListener.cs : do not try to compare dead connection's
1280           IPEndPoint (it raises an error).
1281
1282 2009-08-14  Atsushi Enomoto  <atsushi@ximian.com>
1283
1284         * MessageHeaders.cs : allow null header value on each specific setter.
1285
1286 2009-08-14  Atsushi Enomoto  <atsushi@ximian.com>
1287
1288         * DuplexChannelBase.cs, TcpDuplexSessionChannel.cs :
1289           get local and remote address of connected counterpart to get
1290           callback channel connected.
1291         * PeerDuplexChannel.cs : remove FIXME wrt above.
1292
1293 2009-08-07  Atsushi Enomoto  <atsushi@ximian.com>
1294
1295         * PeerDuplexChannel.cs : add fixme comment and remove extra FIXME.
1296
1297 2009-08-07  Atsushi Enomoto  <atsushi@ximian.com>
1298
1299         * MessageHeader.cs : fill IsReferenceParameter.
1300
1301 2009-08-06  Atsushi Enomoto  <atsushi@ximian.com>
1302
1303         * ReplyChannelBase.cs, TcpReplyChannel.cs, HttpReplyChannel.cs:
1304           implement remaining async methods and LocalAddress.
1305
1306 2009-08-05  Atsushi Enomoto  <atsushi@ximian.com>
1307
1308         * PeerDuplexChannel.cs : ongoing listener refactoring. Now it uses
1309           ServiceHost to process neighbor connection (not sure if this is
1310           right way to go though ...).
1311
1312 2009-07-31  Atsushi Enomoto  <atsushi@ximian.com>
1313
1314         * PeerDuplexChannel.cs : ongoing [MC-PRCH] implementation. Rewrote
1315           connection part to use new internal IPeerConnectorContract for
1316           neighbor connection.
1317
1318 2009-07-31  Atsushi Enomoto  <atsushi@ximian.com>
1319
1320         * ChannelListenerBase_1.cs, TcpChannelListener.cs,
1321           PeerChannelListener.cs, HttpChannelListener.cs :
1322           support ListenUri accordingly too so that it could be used when
1323           it is different from LocalAddress.Uri.
1324
1325 2009-07-31  Atsushi Enomoto  <atsushi@ximian.com>
1326
1327         * TcpChannelFactory.cs, TcpDuplexSessionChannel.cs,
1328           TcpRequestChannel.cs : use Via uri to validate and connect.
1329
1330 2009-07-31  Atsushi Enomoto  <atsushi@ximian.com>
1331
1332         * RequestChannelBase.cs, DuplexChannelBase.cs :
1333           Return endpoint address Uri when no explicit Via uri is specified.
1334         * ChannelFactoryBase.cs : Remove extra async close methods.
1335           Add async open methods. Reject null EndpointAddress.
1336         * PeerChannelFactory.cs : remove async open methods (now in base).
1337
1338 2009-07-31  Atsushi Enomoto  <atsushi@ximian.com>
1339
1340         * PeerDuplexChannel.cs : set correct message endpoint (To header).
1341
1342 2009-07-31  Atsushi Enomoto  <atsushi@ximian.com>
1343
1344         * TcpDuplexSessionChannel.cs, PeerDuplexChannel.cs,
1345           DuplexChannelBase.cs : set LocalAddress property at base.
1346
1347 2009-07-30  Atsushi Enomoto  <atsushi@ximian.com>
1348
1349         * PeerDuplexChannel.cs : ongoing refactoring to work both as
1350           listener and client. Now it creates a listening peer node, and
1351           creates a set of TCP client channels for each peer in the mesh.
1352
1353           (EndpointAddress must be fixed to not filter out correct inputs).
1354
1355 2009-07-30  Atsushi Enomoto  <atsushi@ximian.com>
1356
1357         * PeerChannelListener.cs : do not accept more than one channel
1358           which results in lots of listening peer node. Only one is enough.
1359
1360 2009-07-30  Atsushi Enomoto  <atsushi@ximian.com>
1361
1362         * DuplexChannelBase.cs : fix wrong loop implementation.
1363
1364 2009-07-28  Atsushi Enomoto  <atsushi@ximian.com>
1365
1366         * TcpChannelListener.cs : to avoid creating two or more channels
1367           for one remote endpoint, check existing remote endpoints and
1368           ignore such connections (it must be handled in different thread
1369           fired by ChannelDispatcher loop).
1370
1371 2009-07-28  Atsushi Enomoto  <atsushi@ximian.com>
1372
1373         * TcpReplyChannel.cs : make sure to not try to receive request when
1374           it is already closed.
1375
1376 2009-07-28  Atsushi Enomoto  <atsushi@ximian.com>
1377
1378         * TcpChannelListener.cs, TcpDuplexSessionChannel.cs :
1379           some mannerless clients [*1] do not send EndRecord accordingly, but
1380           such channels at listener side should not be kept open. So, close
1381           disconnected channels when the listener needs to accept another
1382           one.
1383           [*1] see olive/samples/wcf/clientbase/samplecli4.cs.
1384
1385 2009-07-28  Atsushi Enomoto  <atsushi@ximian.com>
1386
1387         * TcpDuplexSessionChannel.cs :
1388           Remove extra NIE overrides.
1389           Implement OnAbort() apart from OnClose().
1390           For duplex session channel, unlike reply channel, it must acquire
1391           TCP connection before OnOpen(), otherwise ChannelDispatcher
1392           releases the connection acceptance WaitHandle and the detected
1393           live connection may be stolen by another channel acceptor.
1394
1395 2009-07-28  Atsushi Enomoto  <atsushi@ximian.com>
1396
1397         * HttpRequestChannel.cs : implement OnAbort().
1398
1399 2009-07-24  Atsushi Enomoto  <atsushi@ximian.com>
1400
1401         * PeerChannelListener.cs : set source field. Remove unnecessary NIE.
1402         * DuplexChannelBase.cs : comment out some extra fields (so far).
1403         * PeerDuplexChannel.cs : pass valid EndpointAddress to PeerNodeImpl.
1404
1405 2009-07-24  Atsushi Enomoto  <atsushi@ximian.com>
1406
1407         * PeerCustomResolverBindingElement.cs : add some null checks.
1408
1409 2009-07-23  Atsushi Enomoto  <atsushi@ximian.com>
1410
1411         * TcpChannelListener.cs, TcpReplyChannel.cs, TcpRequestChannel.cs:
1412           Acquire TcpClient for each request/reply. Now it is fully
1413           interoperable with .NET.
1414
1415 2009-07-23  Atsushi Enomoto  <atsushi@ximian.com>
1416
1417         * TcpReplyChannel.cs, TcpRequestChannel.cs: it somehow adds/expects
1418           ReplyTo and MessageId (though it is session-less), and it expects
1419           EndRecord at weird stage, inconsistent with [MC-NMF]...
1420           Now .NET service accepts one mono client request.
1421
1422 2009-07-23  Atsushi Enomoto  <atsushi@ximian.com>
1423
1424         * TcpReplyChannel.cs, TcpRequestChannel.cs, TcpBinaryFrameManager.cs:
1425           Send and receive unsized message terminator at once.
1426           Send EndRecord mutually. Got one .net client request working.
1427
1428 2009-07-23  Atsushi Enomoto  <atsushi@ximian.com>
1429
1430         * BinaryMessageEncoder.cs : revert the previous dictionary change.
1431           They are indeed used for non-in-band-dictionary messages.
1432
1433 2009-07-23  Atsushi Enomoto  <atsushi@ximian.com>
1434
1435         * TcpDuplexSessionChannel.cs, TcpBinaryFrameManager.cs:
1436           split out binary frame manager class into separate file.
1437
1438 2009-07-21  Atsushi Enomoto  <atsushi@ximian.com>
1439
1440         * TcpReplyChannel.cs : new reply channel implementation.
1441         * TcpChannelListener.cs : use above for streamed reply channel.
1442         * TcpDuplexSessionChannel.cs : more streaming mode support.
1443         * TcpRequestChannel.cs : a couple of updates to get it working
1444           with the reply channel above. Still some issues on .NET interop.
1445
1446 2009-07-21  Atsushi Enomoto  <atsushi@ximian.com>
1447
1448         * RequestContext.cs : added internal derived class that implements
1449           some members.
1450
1451 2009-07-21  Atsushi Enomoto  <atsushi@ximian.com>
1452
1453         * BinaryMessageEncoder.cs : for non-session reader and writer, do not
1454           use dictionary.
1455
1456 2009-07-17  Atsushi Enomoto  <atsushi@ximian.com>
1457
1458         * PeerDuplexChannel.cs: add the registered node itself to peer list.
1459           (The messaging must be done as TCP request/reply pattern, so it's
1460           not working yet.)
1461
1462 2009-07-17  Atsushi Enomoto  <atsushi@ximian.com>
1463
1464         * TcpRequestChannel.cs : new channel file (TCP for request/reply
1465           messaging pattern). The messaging part is not working yet.
1466         * TcpChannelFactory.cs : support IRequestChannel.
1467         * TcpDuplexSessionChannel.cs : add unsized message support.
1468
1469 2009-07-17  Atsushi Enomoto  <atsushi@ximian.com>
1470
1471         * HttpRequestChannel.cs, RequestChannelBase.cs :
1472           A couple of async members are now implemented in the base class.
1473           Ditto for EndpointAddress and Via.
1474
1475 2009-07-10  Atsushi Enomoto  <atsushi@ximian.com>
1476
1477         * PeerDuplexChannel.cs : now it implements some of node management
1478           functionality and Send operation. The receiver part is not yet.
1479
1480 2009-07-10  Atsushi Enomoto  <atsushi@ximian.com>
1481
1482         * TcpChannelListener.cs, TcpDuplexSessionChannel.cs : do not pass
1483           timeout to channel constructor. it does not make sense.
1484
1485 2009-07-10  Atsushi Enomoto  <atsushi@ximian.com>
1486
1487         * PeerChannelFactory.cs, PeerChannelListener.cs : add MessageEncoder
1488           as common interface member, and use binary encoder (not text).
1489
1490 2009-07-09  Atsushi Enomoto  <atsushi@ximian.com>
1491
1492         * PeerDuplexChannel.cs : PeerNode constructor argument changes.
1493
1494 2009-07-08  Atsushi Enomoto  <atsushi@ximian.com>
1495
1496         * PeerDuplexChannel.cs, PeerChannelListener.cs, PeerOutputChannel.cs,
1497           PeerInputChannel.cs, PeerChannelFactory.cs : those channels are
1498           going to be unified to PeerDuplexChannel. And it is likely that
1499           input and output functionalities are to be unified too.
1500
1501 2009-07-08  Atsushi Enomoto  <atsushi@ximian.com>
1502
1503         * TcpChannelFactory.cs : (TcpChannelInfo) ease type restriction. I
1504           may have to reuse it for peer transport.
1505         * PeerChannelListener.cs : add binding member.
1506         * PeerDuplexChannel.cs : remove NIE overrides. Fill fields a bit.
1507
1508 2009-07-08  Atsushi Enomoto  <atsushi@ximian.com>
1509
1510         * ChannelFactoryBase.cs, HttpChannelFactory.cs,
1511           PeerChannelFactory.cs : close opened channels at OnClose() as
1512           documented. Implement async methods.
1513         * PeerChannelListener.cs : removed some NIE overrides.
1514
1515 2009-07-02  Atsushi Enomoto  <atsushi@ximian.com>
1516
1517         * DuplexChannelBase.cs : some more async methods.
1518
1519 2009-06-29  Atsushi Enomoto  <atsushi@ximian.com>
1520
1521         * TcpDuplexSessionChannel.cs : on Abort(), do just Close() within
1522           (almost) no time.
1523         * TcpChannelListener.cs : accept multiple channels at a time.
1524
1525 2009-06-29  Atsushi Enomoto  <atsushi@ximian.com>
1526
1527         * TcpDuplexSessionChannel.cs : do not output all (stored) writer
1528           session strings but output only those new ones in current message.
1529           This fixes inconsistent body output in repetitive use of sender.
1530
1531 2009-06-26  Atsushi Enomoto  <atsushi@ximian.com>
1532
1533         * TcpDuplexSessionChannel.cs : handle EndRecord for repetitive
1534           operation that does not involve session.
1535           Preserve writer session as well as reader session.
1536         * MessageHeaders.cs : take name and namespace into consideration
1537           when creating a serializer.
1538
1539 2009-06-25  Atsushi Enomoto  <atsushi@ximian.com>
1540
1541         * TcpChannelListener.cs, TcpDuplexSessionChannel.cs :
1542           Made required changes for repeated use of message exchanges.
1543           Hold binary reader session. The channels use it incrementally.
1544           Preambles are handled at Open, and EndRecords are handled at
1545           Close, Add session shutdown hook here (not working yet though).
1546
1547 2009-06-18  Atsushi Enomoto  <atsushi@ximian.com>
1548
1549         * ChannelListenerBase_1.cs : added cancellation hook here too.
1550           HttpChannelListener.cs : use above.
1551           Do not allow parallel channel creation (this listener does not
1552           allow more than one AcceptChannel().
1553
1554 2009-06-18  Atsushi Enomoto  <atsushi@ximian.com>
1555
1556         * ReplyChannelBase.cs, HttpReplyChannel.cs :
1557           Add cancellation hook for async TryReceiveRequest.
1558
1559 2009-06-18  Atsushi Enomoto  <atsushi@ximian.com>
1560
1561         * HttpChannelListener.cs, HttpListenerManager.cs :
1562           slightly improved BuildChannelListener().
1563           Implement OnAbort() and differentiate it from OnClose().
1564
1565 2009-06-18  Atsushi Enomoto  <atsushi@ximian.com>
1566
1567         * TcpDuplexSessionChannel.cs : remove NIE stubs.
1568
1569 2009-06-18  Atsushi Enomoto  <atsushi@ximian.com>
1570
1571         * DuplexChannelBase.cs : simple async delegate calls here too.
1572
1573 2009-06-16  Atsushi Enomoto  <atsushi@ximian.com>
1574
1575         * ReplyChannelBase.cs : cosmetic dependency reduction on listener.
1576
1577 2009-06-16  Atsushi Enomoto  <atsushi@ximian.com>
1578
1579         * HttpReplyChannel.cs : cosometic simplification.
1580
1581 2009-06-16  Atsushi Enomoto  <atsushi@ximian.com>
1582
1583         * HttpRequestChannel.cs : Fixed timeout handling. It was causing
1584           infinite block in 2.0 profile.
1585
1586 2009-06-12  Atsushi Enomoto  <atsushi@ximian.com>
1587
1588         * TcpChannelListener.cs, TcpDuplexSessionChannel.cs :
1589           more careful close to avoid NRE.
1590
1591 2009-06-12  Atsushi Enomoto  <atsushi@ximian.com>
1592
1593         * HttpChannelListener.cs : do not Close() more than once (though
1594           it is allowed to call it twice, we don't reject it; just ignore).
1595
1596 2009-06-12  Atsushi Enomoto  <atsushi@ximian.com>
1597
1598         * CustomBinding.cs : copy timeouts from argument binding in copy ctr.
1599
1600 2009-06-11  Atsushi Enomoto  <atsushi@ximian.com>
1601
1602         * HttpReplyChannel.cs : reject multiple WaitForRequest calls.
1603           Temporarily disable HTTP Keep-Alive since it somehow results in
1604           wrong reuse of connection (shown as NRE in HttpConnection).
1605           Make sure to close RequestContext which was created from it.
1606         * HttpRequestContext.cs : simplify.
1607
1608 2009-06-11  Atsushi Enomoto  <atsushi@ximian.com>
1609
1610         * HttpChannelListener.cs, TcpChannelListener.cs,
1611           ChannelListenerBase_1.cs : put common internal listener base
1612           and let it handle those async stuff.
1613
1614 2009-06-10  Atsushi Enomoto  <atsushi@ximian.com>
1615
1616         * ReplyChannelBase.cs : fix wrong null delegate check point.
1617
1618 2009-06-10  Atsushi Enomoto  <atsushi@ximian.com>
1619
1620         * HttpReplyChannel.cs, ReplyChannelBase.cs : async operations are
1621           now implemented as virtual in base class. Remove NIEs in http.
1622
1623 2009-06-10  Atsushi Enomoto  <atsushi@ximian.com>
1624
1625         * HttpChannelListener.cs : hack async implementation.
1626
1627 2009-06-08  Atsushi Enomoto  <atsushi@ximian.com>
1628
1629         * HttpListenerManager.cs : oops, extra line removal.
1630
1631 2009-06-08  Atsushi Enomoto  <atsushi@ximian.com>
1632
1633         * HttpChannelManager.cs, HttpListenerManager.cs : rename file too.
1634
1635 2009-06-08  Atsushi Enomoto  <atsushi@ximian.com>
1636
1637         * HttpChannelManager.cs, HttpChannelListener.cs: renaming, as
1638           "ChannelManager" is confusing (there is ChannelManagerBase).
1639
1640 2009-06-08  Atsushi Enomoto  <atsushi@ximian.com>
1641
1642         * HttpChannelManager.cs, HttpTransportBindingElement.cs,
1643           HttpReplyChannel.cs, AspNetReplyChannel.cs, HttpChannelListener.cs:
1644           they should be split into separate listener->reply channel lines
1645           (remove "if (HostingEnvironment.IsAspNet)".)
1646
1647 2009-06-08  Atsushi Enomoto  <atsushi@ximian.com>
1648
1649         * CommunicationObject.cs : OnClosed() requires call to base method.
1650           Close() could rather abort the channel, and Abort() does not
1651           always invke OnAbort().
1652         * ChannelBase.cs : add call to base as above.
1653
1654 2009-06-05  Sebastien Pouliot  <sebastien@ximian.com>
1655
1656         * ClientAccessPolicy.cs: Removed
1657         * CrossDomainAccessManager.cs: Removed
1658         * CrossDomainPolicy.cs: Removed
1659         * HttpRequestChannel.cs: Remove call to CrossDomainAccessManager 
1660         since this is now done inside the BeginGetResponse call (outside
1661         this assembly) for Moonlight (NET_2_1)
1662
1663 2009-06-04  Alan McGovern  <amcgovern@novell.com>
1664
1665         * HttpRequestChannel.cs : Rewrite ProcessRequest to use the async APIs
1666         instead of the sync apis. Prevents a possible deadlock condition in
1667         moonlight. 
1668
1669 2009-06-03  Atsushi Enomoto  <atsushi@ximian.com>
1670
1671         * HttpRequestChannel.cs : that SL2/ML2 does not seem to allow null
1672           callbacks, so add hacky ones.
1673
1674 2009-06-01  Atsushi Enomoto  <atsushi@ximian.com>
1675
1676         * TcpDuplexSessionChannel.cs : WaitForMessage() should not return
1677           true when socket input is not available.
1678
1679 2009-05-29  Atsushi Enomoto  <atsushi@ximian.com>
1680
1681         * TcpDuplexSessionChannel.cs : Moved tcp listener accept to OnOpen().
1682           I cannot precisely identify when EndRecord should be consumed,
1683           so allow it at either at the end of ReadSizedMessage() or on
1684           consuming preamble (it's likely handling EndRecord of previous
1685           message though).
1686
1687           Now duplex IPeerResolverContract communication works between
1688           either of .NET/Mono client and .NET/Mono server.
1689
1690 2009-05-29  Atsushi Enomoto  <atsushi@ximian.com>
1691
1692         * TcpDuplexSessionChannel.cs : looks like I have added some bogus
1693           code. Handle preamble ack on ReadSizedMessage() only at server.
1694           Consume EndRecord from server, at client side. Though it is likely
1695           changed as it's blocking when mono is at server side.
1696
1697 2009-05-29  Atsushi Enomoto  <atsushi@ximian.com>
1698
1699         * TcpDuplexSessionChannel.cs : .NET seems to be based on somewhat
1700           different protocol than existing code with related to preamble ack.
1701           So changed it to work fine with .NET client (finally).
1702
1703 2009-05-28  Atsushi Enomoto  <atsushi@ximian.com>
1704
1705         * MessageBufferImpl.cs : do not output Action twice.
1706
1707 2009-05-28  Atsushi Enomoto  <atsushi@ximian.com>
1708
1709         * MessageBufferImpl.cs : it did not copy headers.
1710         * Message.cs : remove 2_1 conditional implementation for buffered
1711           copy and hence remove bogus code.
1712
1713 2009-05-28  Atsushi Enomoto  <atsushi@ximian.com>
1714
1715         * MessageProperties.cs : copy argument is wrong.
1716
1717 2009-05-27  Atsushi Enomoto  <atsushi@ximian.com>
1718
1719         * PeerCustomResolverBindingElement.cs : some argument check.
1720
1721 2009-05-27  Atsushi Enomoto  <atsushi@ximian.com>
1722
1723         * BinaryMessageEncoder.cs : the serializer somehow leaves binary
1724           xml open, so close the writer as well as open elements.
1725         * TcpDuplexSessionChannel.cs : clear write buffer on each operation.
1726           Do not output EndRecord and SizedMessage at a time.
1727
1728 2009-05-26  Atsushi Enomoto  <atsushi@ximian.com>
1729
1730         * TcpDuplexSessionChannel.cs : there was a miscalculation on the
1731           length of the SizedMessage in the output.
1732
1733 2009-05-26  Atsushi Enomoto  <atsushi@ximian.com>
1734
1735         * CommunicationObject.cs : use sane default timeout.
1736         * PeerCustomResolverBindingElement.cs : check timeout arg sanity.
1737         * TcpDuplexSessionChannel.cs : ditto.
1738
1739 2009-05-26  Atsushi Enomoto  <atsushi@ximian.com>
1740
1741         * TcpDuplexSessionChannel.cs : It seems that buffered stream channel
1742           only accepts buffered messages, so do as such for write buffers.
1743           Add RelatesTo header.
1744
1745 2009-05-26  Atsushi Enomoto  <atsushi@ximian.com>
1746
1747         * DuplexSessionChannelBase.cs, DuplexChannelBase.cs:
1748           rename from former to latter.
1749
1750 2009-05-25  Atsushi Enomoto  <atsushi@ximian.com>
1751
1752         * TcpDuplexSessionChannel.cs : reader does not always return full
1753           buffer (depending on the stream).
1754
1755 2009-05-25  Atsushi Enomoto  <atsushi@ximian.com>
1756
1757         * PeerDuplexChannel.cs, PeerOutputChannel.cs : use new PeerNode.ctor.
1758
1759 2009-05-25  Atsushi Enomoto  <atsushi@ximian.com>
1760
1761         * PeerCustomResolverBindingElement.cs : (Resolve) returned addresses
1762           could be null.
1763
1764 2009-05-22  Atsushi Enomoto  <atsushi@ximian.com>
1765
1766         * ChannelManagerBase.cs : there was annoying non-2.1 stuff.
1767
1768 2009-05-22  Atsushi Enomoto  <atsushi@ximian.com>
1769
1770         * TcpChannelListener.cs, TcpChannelFactory.cs : get reader quotas.
1771
1772 2009-05-22  Atsushi Enomoto  <atsushi@ximian.com>
1773
1774         * ChannelManagerBase.cs : fix wrong session channel detection.
1775
1776 2009-05-22  Atsushi Enomoto  <atsushi@ximian.com>
1777
1778         * BinaryMessageEncoderFactory.cs, BinaryMessageEncoder.cs
1779           This encoder factory implements CreateSessionEncoder() and binary
1780           encoder does support session transmit, in different media type.
1781         * ChannelManagerBase.cs : added utility method to create appropriate
1782           encoder.
1783         * HttpChannelFactory.cs, HttpChannelListener.cs,
1784           MsmqChannelFactory.cs, MsmqChannelListener.cs,
1785           PeerChannelFactory.cs, PeerChannelListener.cs,
1786           TcpChannelFactory.cs, TcpChannelListener.cs : use above.
1787
1788 2009-05-22  Atsushi Enomoto  <atsushi@ximian.com>
1789
1790         * TcpDuplexSessionChannel.cs : add ReplyTo header.
1791
1792 2009-05-21  Atsushi Enomoto  <atsushi@ximian.com>
1793
1794         * DuplexSessionBase.cs : new file, for session implementation.
1795         * TcpDuplexSessionChannel.cs, PeerDuplexChannel.cs,
1796           DuplexSessionChannelBase.cs : changed sync/async implementation
1797           pattern. Now async methods call sync methods using delegates.
1798
1799 2009-05-21  Atsushi Enomoto  <atsushi@ximian.com>
1800
1801         * InputChannelBase.cs, TransportBindingElement.cs, RequestContext.cs:
1802           a few minor API fixes.
1803
1804 2009-05-21  Atsushi Enomoto  <atsushi@ximian.com>
1805
1806         * MessageEncoderFactory.cs : implement CreateSessionEncoder().
1807
1808 2009-05-19  Atsushi Enomoto  <atsushi@ximian.com>
1809
1810         * TcpDuplexSessionChannel.cs : add To header.
1811
1812 2009-05-19  Atsushi Enomoto  <atsushi@ximian.com>
1813
1814         * MessageFault.cs : fix several SOAP12 fault deserialization in xml
1815           parsing.
1816
1817 2009-05-18  Atsushi Enomoto  <atsushi@ximian.com>
1818
1819         * FaultConverter.cs : avoid NRE for null IncomingMessageHeaders.
1820
1821 2009-05-15  Atsushi Enomoto  <atsushi@ximian.com>
1822
1823         * MessageFault.cs : Reason is mandatory. raise XmlException, and
1824           CommunicationException in each CreateFault().
1825
1826 2009-05-15  Atsushi Enomoto  <atsushi@ximian.com>
1827
1828         * TcpDuplexSessionChannel.cs : on listener side, get TcpClient at
1829           Open(). Some (but not all yet) continuous communication works now.
1830           Use ProtocolException. Remove dummy binary session string.
1831
1832 2009-05-14  Atsushi Enomoto  <atsushi@ximian.com>
1833
1834         * TcpDuplexSessionChannel.cs : more [MC-NMF] implementation. Moved
1835           sending/receiving SizedMessageRecord parts to manager class.
1836           Handle writer session, though it is likely broken at dictionary
1837           writer part (no string is written so far).
1838         * BinaryMessageEncoder.cs : add writer session and rename reader
1839           session.
1840
1841 2009-05-14  Atsushi Enomoto  <atsushi@ximian.com>
1842
1843         * TcpDuplexSessionChannel.cs : more [MC-NMF] implementation. Via uri
1844           is mandatory in initiator preamble packet. Handle Fault reply in
1845           initiator preamble.
1846
1847 2009-05-14  Atsushi Enomoto  <atsushi@ximian.com>
1848
1849         * TcpDuplexSessionChannel.cs : ongoing refactoring to collect [MC-NMF]
1850           based communication under TcpBinaryFrameManager class.
1851
1852 2009-05-13  Jb Evain  <jbevain@novell.com>
1853
1854         * MessageHeader.cs: use a SL friendly way of creating an XmlReader
1855         from a StringReader.
1856
1857 2009-05-13  Atsushi Enomoto  <atsushi@ximian.com>
1858
1859         * MessageImpl.cs, MessageHeader.cs : eliminate xlinq in 2.1, and
1860           actually eliminate DOM-based implementation too in 2.0.
1861
1862 2009-04-28  Atsushi Enomoto  <atsushi@ximian.com>
1863
1864         * TcpDuplexSessionChannel.cs : implement in-band dictionary support
1865           in [MC-NMF] and [MC-NBFSE], used in duplex channels. Added some
1866           comments for magic numbers based on [MC-NMF].
1867
1868 2009-04-28  Atsushi Enomoto  <atsushi@ximian.com>
1869
1870         * BinaryMessageEncoder.cs : implement part of in-band dictionary
1871           support for [MC-NBFSE] record in [MC-NMF], in this class.
1872
1873 2009-04-28  Atsushi Enomoto  <atsushi@ximian.com>
1874
1875         * BinaryMessageEncodingBindingElement.cs : clear extra public members.
1876
1877 2009-04-27  Atsushi Enomoto  <atsushi@ximian.com>
1878
1879         * TcpDuplexSessionChannel.cs : implemented some channel methods.
1880
1881 2009-04-27  Atsushi Enomoto  <atsushi@ximian.com>
1882
1883         * BinaryMessageEncoder.cs : use XmlDictionary specified as [MC-NBFS].
1884
1885 2009-04-27  Atsushi Enomoto  <atsushi@ximian.com>
1886
1887         * ChannelManagerBase.cs : implement Open/CloseTimeout correctly.
1888
1889 2009-04-23  Atsushi Enomoto  <atsushi@ximian.com>
1890
1891         * BinaryMessageEncoder.cs : use quotas in binding element.
1892           Implement WriteMessage().
1893
1894 2009-04-22  Atsushi Enomoto  <atsushi@ximian.com>
1895
1896         * PeerCustomResolverBindingElement.cs : do initialize field.
1897
1898 2009-04-21  Atsushi Enomoto  <atsushi@ximian.com>
1899
1900         * PeerCustomResolverBindingElement.cs :
1901           implement full custom resolver.
1902
1903 2009-04-21  Atsushi Enomoto  <atsushi@ximian.com>
1904
1905         * PeerDuplexChannel.cs, PeerChannelListener.cs,
1906           PeerOutputChannel.cs, PeerCustomResolverBindingElement.cs,
1907           PeerChannelFactory.cs : ongoing p2p channel implementation.
1908
1909 2009-04-21  Atsushi Enomoto  <atsushi@ximian.com>
1910
1911         * PnrpPeerResolverBindingElement.cs : sync with PeerResolver changes.
1912
1913 2009-04-21  Atsushi Enomoto  <atsushi@ximian.com>
1914
1915         * BinaryMessageEncodingBindingElement.cs, ChannelBase.cs,
1916           ChannelFactoryBase.cs, WindowsStreamSecurityBindingElement.cs :
1917           implement GetProperty<T>(). Return documented objects or null.
1918
1919 2009-04-20  Atsushi Enomoto  <atsushi@ximian.com>
1920
1921         * PeerChannelFactory.cs, PeerChannelListener.cs,
1922           PeerCustomResolverBindingElement.cs, PeerDuplexChannel.cs
1923           PeerInputChannel.cs, PeerOutputChannel.cs :
1924           new; ongoing peer transport implementation.
1925         * DuplexSessionChannelBase.cs, InputChannelBase.cs
1926           MsmqOutputChannel.cs, OutputChannelBase.cs,
1927           PeerResolverBindingElement.cs, PeerTransportBindingElement.cs,
1928           PnrpPeerResolverBindingElement.cs, TcpDuplexSessionChannel.cs :
1929           several internal changes (either required or for simplification)
1930           for ongoing peer transport implementation.
1931
1932 2009-04-08  Atsushi Enomoto  <atsushi@ximian.com>
1933
1934         * PeerTransportBindingElement.cs : ListenIPAddress is IPAddress.
1935
1936 2009-04-07  Atsushi Enomoto  <atsushi@ximian.com>
1937
1938         * TcpTransportBindingElement.cs : check build-ability before
1939           actually building channels.
1940         * ConnectionOrientedTransportBindingElement.cs : fixed build-ability
1941           conditions according to MSDN.
1942
1943 2009-03-05  Atsushi Enomoto  <atsushi@ximian.com>
1944
1945         * MessageHeader.cs, MessageHeaders.cs, MessageImpl.cs :
1946           handle headers in SL2. Slightly changed 3.0 code too.
1947
1948 2009-03-04  Atsushi Enomoto  <atsushi@ximian.com>
1949
1950         * HttpRequestChannel.cs : use cross domain access manager.
1951
1952 2009-02-27  Atsushi Enomoto  <atsushi@ximian.com>
1953
1954         * Message.cs : (in CreateBufferedCopy) do not pass the entire
1955           message as BodyWriter.
1956           (in GetReaderAtBodyContents) just write body contents.
1957         * MessageImpl.cs : do not try to read body at ctor (fixed tons
1958           of test failures).
1959           Add some state check in GetReaderAtBodyContents().
1960         * XmlReaderBodyWriter.cs : avoid possible extra xmldecl onto output.
1961
1962 2009-02-18  Atsushi Enomoto  <atsushi@ximian.com>
1963
1964         * Message.cs : do not forget to flush.
1965         * HttpRequestChannel.cs : give more exact error info.
1966
1967 2009-02-18  Atsushi Enomoto  <atsushi@ximian.com>
1968
1969         * Message.cs, MessageBufferImpl.cs, XmlReaderBodyWriter.cs :
1970           make buffered copy in ML2 really buffered.
1971
1972 2009-02-12  Atsushi Enomoto  <atsushi@ximian.com>
1973
1974         * Message.cs : if there is no header item to write, do not write
1975           SOAP header element.
1976
1977 2009-01-22  Alan McGovern  <amcgovern@novell.com>
1978
1979         * MessageHeaders.cs : List<T>.RemoveAll(Predicate<T>) doesn't exist in Silverlight.
1980         Rewrite to avoid usage of it.
1981
1982 2009-01-14  Atsushi Enomoto  <atsushi@ximian.com>
1983
1984         * ChannelParameterCollection.cs : implement, rather than NIE.
1985
1986 2008-05-22  Noam Lampert <noaml@mainsoft.com>
1987
1988         * MessageFault.cs: Correctly serialize ExceptionDetails. Expose SimpleMessageFault to allow
1989           internal users to know the type of the detail. 
1990         
1991 2008-05-20  Noam Lampert <noaml@mainsoft.com>
1992
1993         * Message.c: Use private setter for state private variable to ease debugging.
1994                                  Modify ToString not to change the state, as it is called quite often by VS debugger
1995                                  
1996 2008-04-21  Roei Erez <roeie@mainsoft.com>
1997
1998         * HttpChannleManager: Fix for multithreaded use.
1999         * HttpReplyChannel: Fix crash during sutdown.
2000
2001 2008-04-17  Igor Zelmanovich <igorz@mainsoft.com>
2002
2003         * HttpChannleManager: ensure trailing slash in uri.
2004
2005 2008-04-17  Vladimir Krasnov  <vladimirk@mainsoft.com>
2006
2007         * added: HttpChannleManager,
2008         * HttpChannelListener: added use of HttpChannelManager
2009
2010 2008-04-17  Vladimir Krasnov  <vladimirk@mainsoft.com>
2011
2012         * MessageEncodingBindingElement.cs: fixed ctor
2013
2014 2008-04-17  Vladimir Krasnov  <vladimirk@mainsoft.com>
2015
2016         * XmlReaderBodyWriter.cs: fixed ctor, skip xml declaration
2017
2018 2008-04-17  Vladimir Krasnov  <vladimirk@mainsoft.com>
2019
2020         * HttpReplyChannel.cs: fixed TryReceiveRequest, fix message header To
2021
2022 2008-04-17  Vladimir Krasnov  <vladimirk@mainsoft.com>
2023
2024         * MessageFault.cs: fixed CreateFault11, implemented "detail"
2025
2026 2008-04-17  Noam Lampert <noaml@mainsoft.com>
2027
2028         * HttpReplyChannel.cs: fix API - Fix crash during service shutdown.
2029
2030 2008-04-13  Igor Zelmanovich <igorz@mainsoft.com>
2031
2032         * BindingElementCollection.cs: fix API - .ctor's signature.
2033
2034 2008-04-10  Eyal Alaluf <eyala@mainsoft.com>
2035
2036         * XmlSerializerBodyWriter.cs: Removed.
2037
2038 2008-03-25  Vladimir Krasnov  <vladimirk@mainsoft.com>
2039
2040         * MessageFault.cs: fixed WriteReason, .net XmlWriter compatible
2041
2042 2008-02-20  Atsushi Enomoto  <atsushi@ximian.com>
2043
2044         * DuplexSessionChannelBase.cs : made it non-session (more reusable).
2045         * TcpChannelFactory.cs, TcpChannelListener.cs :
2046           unify factory and listener into TcpChannelInfo for use in
2047           TCP channel implementation. Do not store stream in the listener.
2048           Factory now uses BinaryMessageEncoder.
2049         * TcpDuplexSessionChannel.cs : changes explained above, and now it
2050           holds TcpClient that the listener has accepted.
2051
2052           tcp-transport-binding-element sample now communicates (though
2053           only when both sides are mono: there seems binary mismatch).
2054
2055 2008-02-20  Atsushi Enomoto  <atsushi@ximian.com>
2056
2057         * TcpTransportBindingElement.cs, TcpConnectionPoolSettings.cs :
2058           clone connection pool settings too.
2059         * NamedPipetransportBindingElement.cs,
2060           NamedPipeConnectionPoolSettings.cs : let's clean them up too (not
2061           being likely implemented though).
2062
2063 2008-02-20  Atsushi Enomoto  <atsushi@ximian.com>
2064
2065         * ConnectionOrientedTransportBindingElement.cs, 
2066           TcpTransportBindingElement.cs : some API updates.
2067           Initialize default values.
2068         * TcpConnectionPoolSettings.cs : new file.
2069
2070 2008-02-18  Atsushi Enomoto  <atsushi@ximian.com>
2071
2072         * ServiceHostParser.cs, SvcHttpHandlerFactory.cs, SvcHttpHandler.cs:
2073           added support for "factory" attribute.
2074
2075 2008-02-15  Atsushi Enomoto  <atsushi@ximian.com>
2076
2077         * HttpRequestContent.cs : consider HttpResponseMessageProperty.
2078
2079 2008-02-15  Atsushi Enomoto  <atsushi@ximian.com>
2080
2081         * HttpRequestChannel.cs : pass response ContentType to ReadMessage().
2082
2083 2008-02-15  Atsushi Enomoto  <atsushi@ximian.com>
2084
2085         * HttpRequestChannel.cs : create WebRequest against To message header
2086           item (if exists).
2087           Consider HttpRequestMessageProperty.
2088           Do not output body when suppressed or the method is GET.
2089
2090 2008-02-15  Atsushi Enomoto  <atsushi@ximian.com>
2091
2092         * HttpChannelListener.cs : BindingContext may not have listenUri
2093           at its .ctor() step.
2094
2095 2008-02-08  Atsushi Enomoto  <atsushi@ximian.com>
2096
2097         * BindingContext.cs : RemainingBindingElements is not just a dummy
2098           collection but is actually user-controlled.
2099
2100 2008-02-08  Atsushi Enomoto  <atsushi@ximian.com>
2101
2102         * TcpChannelFactory.cs, TcpChannelListener.cs, 
2103           HttpChannelFactory.cs, HttpChannelListener.cs,
2104           MsmqChannelFactory.cs, MsmqChannelListener.cs,
2105           TextMessageEncodingBindingElement.cs,
2106           BinaryMessageEncodingBindingElement.cs,
2107           MtomMessageEncodingBindingElement.cs :
2108           message encoder should be retrieved only through public API.
2109         * BindingContext.cs : so my old guess was wrong.
2110
2111         See also: http://blogs.msdn.com/drnick/archive/2006/05/10/594134.aspx
2112
2113 2008-02-05  Atsushi Enomoto  <atsushi@ximian.com>
2114
2115         * HttpTransportBindingElement.cs : implemented copy constructor.
2116
2117 2007-08-20  Atsushi Enomoto  <atsushi@ximian.com>
2118
2119         * HttpRequestChannel.cs, HttpReplyChannel.cs : treat SOAPAction HTTP
2120           header when AddressingVersion is None.
2121
2122 2007-08-20  Atsushi Enomoto  <atsushi@ximian.com>
2123
2124         * MessageHeaders.cs : AddressingVersion.None rejects some WSA
2125           property setters.
2126
2127 2007-08-19  Atsushi Enomoto  <atsushi@ximian.com>
2128
2129         * OneWayBindingElementImporter.cs
2130           CompositeDuplexBindingElementImporter.cs : new files.
2131
2132 2007-08-17  Atsushi Enomoto  <atsushi@ximian.com>
2133
2134         * MessageHeaders.cs : due to the DataContractSerializer.ReadObject()
2135           semantic change, its bool parameter must be false, not true.
2136
2137 2007-07-13  Atsushi Enomoto  <atsushi@ximian.com>
2138
2139         * InputChannelBase.cs, MsmqChannelListener.cs, MsmqInputChannel.cs :
2140           new files. Msmq transport listener Implementation.
2141         * MsmqOutputChannel.cs : implemented Send(). Not sure if it works
2142           (wait for System.Messaging impl.)
2143         * HttpReplyChannel.cs : added comment
2144
2145 2007-07-06  Atsushi Enomoto  <atsushi@ximian.com>
2146
2147         * MsmqChannelFactory.cs MsmqOutputChannel.cs OutputChannelBase.cs :
2148           new files. internal stuff for msmq channel.
2149         * BinaryMessageEncoder.cs : added another .ctor().
2150         * MsmqTransportBindingElement.cs :
2151           implemented [Can]BuildChannelFactory().
2152
2153 2007-07-06  Atsushi Enomoto  <atsushi@ximian.com>
2154
2155         * MsmqBindingElementBase.cs MsmqTransportBindingElement.cs :
2156           initialize some fields.
2157
2158 2007-07-05  Atsushi Enomoto  <atsushi@ximian.com>
2159
2160         * MsmqBindingElementBase.cs MsmqMessageProperty.cs
2161           MsmqTransportBindingElement.cs ITransactedBindingElement.cs :
2162           couple of msmq stubs.
2163
2164 2007-04-02  Atsushi Enomoto  <atsushi@ximian.com>
2165
2166         * SecureMessageGenerator.cs : SecurityContextToken support (though
2167           it is still regarded as invalid by WCF).
2168
2169 2007-03-13  Atsushi Enomoto  <atsushi@ximian.com>
2170
2171         * WSSecurityMessageHeader.cs, SecureMessageGenerator.cs :
2172           make header.Contents.Add() more strict.
2173           Use HasAsymmetricKey to determine whether to use asymmetric algorithm
2174           or not.
2175           Added some hack to allow ssl token external mode.
2176           Commented out such lines that always premised asymmtric key.
2177
2178 2007-03-08  Atsushi Enomoto  <atsushi@ximian.com>
2179
2180         * TransactionFlowBindingElement.cs : forgot necessary Clone().
2181
2182 2007-03-08  Atsushi Enomoto  <atsushi@ximian.com>
2183
2184         * MessageSecurityBindingSupport.cs : support check to create
2185           authenticator is now done in both initiator/recipient sides.
2186         * SecurityRequestContext.cs : don't encrypt WS-Trust RSTR.
2187
2188 2007-03-07  Atsushi Enomoto  <atsushi@ximian.com>
2189
2190         * MessageSecurityBindingSupport.cs : for now, comment out the code
2191           that makes authenticator creation optional.
2192         * SecurityRequestContext.cs : don't decrypt message when it is
2193           WS-Trust messages. Also, do not secure SOAP Fault (it is likely
2194           to fail).
2195         * SecurityChannelListener.cs : GetProperty<T>() now returns
2196           MessageSecurityBindingSupport when requested. It is used by
2197           EndpointDispatcher to check if it supports WS-Trust negotiation.
2198         * ChannelListenerBase.cs :
2199           removed extra TODO and field. Implemented GetProperty<T>().
2200         * Message.cs : In CreateMessage() for SOAP Fault, create
2201           SimpleMessage with IsFault = true.
2202
2203 2007-03-07  Atsushi Enomoto  <atsushi@ximian.com>
2204
2205         * SecurityRequestContext.cs : try to reply fault with the inner
2206           channel when an error occurred internally.
2207         * FaultConverter.cs : implemented based on OperationContext (at normal
2208           state it does not seem to create messages, so I implemented it this
2209           way).
2210
2211 2007-03-07  Atsushi Enomoto  <atsushi@ximian.com>
2212
2213         * TransportBindingElement.cs : implemented GetProperty<T>().
2214         * TransactionFlowBindingElement.cs : on building factory or listener,
2215           reject channel types that cannot build.
2216         * SecurityBindingElement.cs : added some TODO comments.
2217         * HttpTransportBindingElement.cs : GetProperty<T>() should rather
2218           delegate to base, not BindingContext.
2219         * SecurityRequestContext.cs : somewhat late decryption.
2220
2221 2007-03-06  Atsushi Enomoto  <atsushi@ximian.com>
2222
2223         * MessageSecurityBindingSupport.cs,
2224           AsymmetricSecurityBindingElement.cs,
2225           SymmetricSecurityBindingElement.cs :
2226           renamed *SecurityBindingElementSupport to *SecurityCapabilities and
2227           implemented ISecurityCapabilities on them. Now those binding
2228           elements support GetProperty<ISecurityCapabilities>().
2229
2230 2007-03-05  Atsushi Enomoto  <atsushi@ximian.com>
2231
2232         * SecurityBindingElement.cs : SetIssuerBindingContextIfRequired()
2233           will work only for predefined parameter types.
2234
2235 2007-03-01  Atsushi Enomoto  <atsushi@ximian.com>
2236
2237         * MessageSecurityBindingSupport.cs :
2238           Set proper MessageDirection to the requirement after creation.
2239           split CreateTokenAuthenticator() as MessageDirection is different.
2240           Removed extra creation of requirement.
2241
2242 2007-03-01  Atsushi Enomoto  <atsushi@ximian.com>
2243
2244         * MessageSecurityBindingSupport.cs : token authenticator is not
2245           always created on channel-opening stage.
2246         * SecurityBindingElement.cs : use SslSecurityTokenParameters for
2247           Sslnego binding factory method.
2248
2249 2007-02-28  Atsushi Enomoto  <atsushi@ximian.com>
2250
2251         * SecureMessageGenerator.cs : inconsistent ReferenceList has caused
2252           signature velification failure.
2253
2254 2007-02-27  Atsushi Enomoto  <atsushi@ximian.com>
2255
2256         * SecureMessageGenerator.cs : encrypt signature confirmations only
2257           when they are required.
2258
2259 2007-02-27  Atsushi Enomoto  <atsushi@ximian.com>
2260
2261         * SecureMessageGenerator.cs : SignatureConfirmation must be encrypted
2262           when [Signature Protection is true i.e. when we use
2263           SignBeforeEncryptAndEncryptSignature.
2264
2265           With this change finally samplesvc.cs/samplecli.cs became
2266           interoperable(!)
2267
2268 2007-02-27  Atsushi Enomoto  <atsushi@ximian.com>
2269
2270         * SecureMessageDecryptor.cs : signature verification was not done
2271           for endorsing supporting tokens.
2272         * SecureMessageGenerator.cs : moved SignatureConfirmation position
2273           in the security header. Don't output empty ReferenceList.
2274
2275 2007-02-27  Atsushi Enomoto  <atsushi@ximian.com>
2276
2277         * SecureMessageGenerator.cs : signingToken was added before being
2278           initialized and thus caused NRE.
2279
2280 2007-02-27  Atsushi Enomoto  <atsushi@ximian.com>
2281
2282         * WSSecurityMessageHeader.cs, SecureMessageDecryptor.cs,
2283           SecureMessageGenerator.cs : use SHA1 instead of HMACSHA1. Now we
2284           don't need workaround for symmetric key restoration.
2285
2286 2007-02-27  Atsushi Enomoto  <atsushi@ximian.com>
2287
2288         * WSSecurityMessageHeader.cs, SecureMessageDecryptor.cs,
2289           SecureMessageGenerator.cs :
2290           Avoid extra reference search from the request's ReferenceList.
2291           create HMACSHA1 always with the key to compute hash (I'm not sure
2292           it is correct; it is rather to adjust all hash consistent.)
2293
2294 2007-02-27  Atsushi Enomoto  <atsushi@ximian.com>
2295
2296         * SecureMessageDecryptor.cs : verify that endorsing supporting tokens
2297           actually endorsed the primary signature.
2298         * SecureMessageGenerator.cs : implemented endorsing of the primary
2299           signature. So, now supporting tokens are fully implemented.
2300
2301 2007-02-27  Atsushi Enomoto  <atsushi@ximian.com>
2302
2303         * MessageSecurityBindingSupport.cs : so, those supporting tokens are
2304           totally signing tokens.
2305         * SecureMessageGenerator.cs : Endorsing tokens should also be
2306           included in the message. They are just not signed.
2307
2308 2007-02-26  Atsushi Enomoto  <atsushi@ximian.com>
2309
2310         * SecureMessageGenerator.cs : support signing and encryption of
2311           supporting tokens. Some required refactory to do it.
2312         * MessageSecurityBindingSupport.cs : added EncryptedData member.
2313
2314 2007-02-26  Atsushi Enomoto  <atsushi@ximian.com>
2315
2316         * SecureMessageDecryptor.cs : fix exception message.
2317         * WSSecurityMessageHeader.cs, WSSignedXml.cs, WSEncryptedXml.cs :
2318           XmlNamespaceManager is not required for GetIdElement().
2319
2320 2007-02-22  Atsushi Enomoto  <atsushi@ximian.com>
2321
2322         * SecureMessageDecryptor.cs, WSSecurityMessageHeader.cs :
2323           moved decryption part from former file to latter file, to reuse
2324           SignedXml instance (though now I doubt how it actually was good)
2325           which in turn required to replace EncryptedData in
2326           WSSecurityMessageHeader with decrypted one.
2327         * WSEncryptedXml.cs : similar to WSSignedXml.cs, to handle wsu:Id.
2328
2329 2007-02-21  Atsushi Enomoto  <atsushi@ximian.com>
2330
2331         * SecureMessageGenerator.cs : when we create DerivedKeyToken, those
2332           EncryptedData should contain KeyInfo as it is not obvious which key
2333           is used there. .net<->mono DerivedKeyToken introp is done.
2334         * SecureMessageDecryptor.cs : check derived key requirement.
2335           Reduce dom-dependent parts.
2336
2337 2007-02-21  Atsushi Enomoto  <atsushi@ximian.com>
2338
2339         * WSSecurityMessageHeader.cs : ReferenceList needs to be bound to
2340           the related DerivedKeyToken (if any).
2341         * SecureMessageGenerator.cs : largely done with DerivedKeyToken
2342           support. Some refactoring to distinguish deried-token-related
2343           variables.
2344         * SecureMessageDecryptor.cs : removed its own support for derived
2345           key tokens. Now it fully works with DerivedKeySecurityToken.
2346
2347 2007-02-21  Atsushi Enomoto  <atsushi@ximian.com>
2348
2349         * WSSecurityMessageHeader.cs, SecureMessageDecryptor.cs,
2350           SecureMessageDecryptor.cs :
2351           Implemented increment token reading in o:Security, as
2352           DerivedKeyToken could reference to existing wrapped key.
2353           Removed WsscDerivedKeyToken and all relevant code.
2354         * SecureMessageGenerator.cs : replaced WsscDerivedKeyToken with
2355           DerivedKeySecurityToken.
2356
2357 2007-02-16  Atsushi Enomoto  <atsushi@ximian.com>
2358
2359         * SecureMessageGenerator.cs : it was setting security tokens into
2360           incorrect SecurityMessageProperty.
2361           Use correct WrappedKeySecurityToken for EncryptedKeySHA1.
2362           Now it uses SecurityRequestContext instead of just primary key.
2363         * SecureMessageDecryptor.cs : removed extra lines. Limit workarounds
2364           to symmetric reply decryption, which is the only trouble case.
2365           Do not create another SignedXml.
2366         * WSSecurityMessageHeader.cs : SignedXml processing changes above.
2367
2368 2007-02-15  Atsushi Enomoto  <atsushi@ximian.com>
2369
2370         * SecureMessageDecryptor.cs : Now it uses union token resolver and
2371           the resolver works with in-progress token reading in o:Security.
2372         * WSSecurityMessageHeader.cs : now it does not read EncryptedKey
2373           as EncryptedKeyIdentifierClause. It is rather a SecurityToken.
2374         * SecureMessageGenerator.cs : cosmetic refactoring.
2375
2376 2007-02-14  Atsushi Enomoto  <atsushi@ximian.com>
2377
2378         * WSSecurityMessageHeader.cs : read EncryptedKeyIdentifierClause
2379           instead of EncryptedKey.
2380
2381 2007-02-13  Atsushi Enomoto  <atsushi@ximian.com>
2382
2383         * MessageSecurityBindingSupport.cs : SigningToken and EncryptionToken
2384           should not be always prepared at channel Open(). It also caused
2385           that extra token requirements.
2386         * SecureMessageGenerator.cs : use correct key clause for encryption.
2387         * SecureMessageDecryptor.cs : reduce extra key acquisition.
2388
2389 2007-02-06  Atsushi Enomoto  <atsushi@ximian.com>
2390
2391         * MessageSecurityBindingSupport.cs : added CreateTokenAuthenticator()
2392           for supporting 'supporting tokens' .
2393         * SecureMessageGenerator.cs : Supporting token creation is done only
2394           at initiator (not sure if it is supposed that, but for now it is).
2395           Removed extraneous CollectSupportingTokens().
2396         * SecureMessageDecryptor.cs : implemented supporting token
2397           authentication (partly). "Signed" supporting tokens are expected
2398           to work fine.
2399
2400 2007-02-06  Atsushi Enomoto  <atsushi@ximian.com>
2401
2402         * SecureMessageGenerator.cs :
2403           make SignBeforeEncryptAndEncryptSignature working.
2404
2405 2007-02-06  Atsushi Enomoto  <atsushi@ximian.com>
2406
2407         * SecureMessageGenerator.cs : EncryptedKeySHA1 needs key hash, not
2408           the key itself. ProtectionToken is WrappedKey.
2409         * SecureMessageDecryptor.cs : now it is internal encrypted key clause,
2410           not EncryptedKeyIdentifierClause which is not for embedded key.
2411         * MessageProperties.cs : Fixed copy direction in CopyProperties().
2412
2413 2007-02-05  Atsushi Enomoto  <atsushi@ximian.com>
2414
2415         * MessageSecurityBindingSupport.cs : added DefaultKeyWrapAlgorithm
2416           to switch asymmetric and symmetric. Not used yet.
2417         * SecurityRequestChannel.cs : now it pass the request security
2418           property to reply receiver so that it could use the primary key
2419           used at request phase.
2420         * SecurityRequestContext.cs : now it pass the context itself to
2421           reply sender so that it could embed related MessageID.
2422         * SecureMessageGenerator.cs : ongoing changes to support symmetric
2423           binding element. Add RelatesTo output and remove MessageID when
2424           replying to the sender. Added some hacks to get symmetric binding
2425           (kind of) working.
2426         * SecureMessageDecryptor.cs : ditto. Handle embedded encryption key
2427           in SecurityTokenReference (it also involved existing encrypted key 
2428           retrieval). In reply receiver, reuse the key that was used at
2429           request phase. It needs significant token resolution refactoring.
2430
2431 2007-02-02  Atsushi Enomoto  <atsushi@ximian.com>
2432
2433         * MessageSecurityBindingSupport.cs : cosmetic refactoring.
2434         * SecureMessageDecryptor.cs : store token and its authentication
2435           policies into the security property, and reuse it on reply.
2436           Some code refactoring; there is at most one o:Security to solve at
2437           one endpoint (depends on Actor). Some attempt to use correct
2438           token parameters (but for now I have only samples that use x509).
2439         * SecureMessageGenerator.cs : For replying message, use initiator's
2440           signing token as the encryption token. Simply reuse security
2441           property from the input message.
2442
2443           I have some nasty workaround at decryptor for initiator that could
2444           not retrieve decryption key.
2445
2446 2007-02-02  Atsushi Enomoto  <atsushi@ximian.com>
2447
2448         * SecureMessageGenerator.cs, SecurityChannelListener.cs,
2449           SecurityRequestContext.cs, MessageSecurityBindingSupport.cs:
2450           several refactoring on token acquisition. Large part of
2451           MessageSecurityBindingSupport code is unified.
2452
2453 2007-02-02  Atsushi Enomoto  <atsushi@ximian.com>
2454
2455         * MessageProperties.cs : Security property should be one of the items.
2456           Actually many other properties should be similar as well.
2457         * MessageImpl.cs, MessageBufferImpl.cs, Message.cs :
2458           when copying a message, copy properties as well.
2459         * SecurityRequestContext.cs : on replying, pass input 
2460           SecurityMessageProperty to the security generator.
2461         * SecureMessageGenerator.cs : both of above, for SignatureConfirmation
2462           support.
2463         * WSSecurityMessageHeader.cs : fixed lazy .ctor() that did nothing.
2464
2465 2007-02-01  Atsushi Enomoto  <atsushi@ximian.com>
2466
2467         * WSSignedXml.cs:
2468           MessageHeader.cs, Message.cs, WSSecurityMessageHeader.cs,
2469           SecureMessageDecryptor.cs, SecureMessageGenerator.cs:
2470           use new WSSignedXml instead of SignedXml, and remove coexisting
2471           Id and wsu:Id. Now we can live only with wsu:Id and therefore
2472           - our reply messages could be consumed by .NET, and
2473           - .NET signature could be verified.
2474
2475 2007-02-01  Atsushi Enomoto  <atsushi@ximian.com>
2476
2477         * SecureMessageDecryptor.cs : The signing key must be passed as
2478           CheckSignature() argument, not SigningKey.
2479
2480 2007-01-31  Atsushi Enomoto  <atsushi@ximian.com>
2481
2482         * MessageImpl.cs : don't read attribute after ReadStartElement().
2483
2484 2007-01-31  Atsushi Enomoto  <atsushi@ximian.com>
2485
2486         * MessageSecurityBindingSupport.cs : some Release() refactoring.
2487         * SecureMessageGenerator.cs : use correct signing key clause for
2488           SecurityTokenReferenceKeyInfo to be serialized.
2489         * SecureMessageDecryptor.cs : now it can try to parse signature.
2490
2491 2007-01-31  Atsushi Enomoto  <atsushi@ximian.com>
2492
2493         Ongoing changes to support signature confirmation
2494         * SecureMessageGenerator.cs :
2495           Don't output ReplyTo onto reply message.
2496           Write SignatureConfirmation if needed.
2497         * SecureMessageDecryptor.cs :
2498           Some refactoring for header cunsumption. Added commented-out
2499           signature verification part (not working yet, on client side due
2500           to incorrect reply from service and insufficient clause reader).
2501         * WSSecurityMessageHeader.cs :
2502           Added SignatureConfirmation support.
2503           KeyInfoClause for o:SecurityTokenReference should be replaced with
2504           SecurityTokenReferenceKeyInfo.
2505
2506 2007-01-29  Atsushi Enomoto  <atsushi@ximian.com>
2507
2508         * SecureMessageGenerator.cs : support Timestamp signature.
2509           Removed unused code, and extra argument in CreateReference().
2510         * WSSecurityMessageHeader.cs : Timestamp also needs Id for SignedXml.
2511
2512 2007-01-29  Atsushi Enomoto  <atsushi@ximian.com>
2513
2514         * SecureMessageGenerator.cs :
2515           Several fixes to make asymmetric binding working:
2516           - Differentiate signing and encryption token in several areas.
2517           - Fixed signing keyinfo.
2518           Use SenderIdPrefix.
2519           Added initial SecurityMessageProperty handling, not sure if it is
2520           appropriate here though.
2521         * HttpRequestChannel.cs : (some debugging lines)
2522
2523 2007-01-26  Atsushi Enomoto  <atsushi@ximian.com>
2524
2525         Woohoo! Here is a very basic WS-Security compliant message which could
2526         be allowed by Indigo.
2527         * MessageHeader.cs : added Id support for writing.
2528         * Message.cs : added internal BodyId for signature reference.
2529         * MessageImpl.cs : write Body Id if required.
2530         * SecureMessageGenerator.cs : Before signing, the target elements must
2531           be given wsu:Id. Since I still use System.Security.dll, I need some
2532           trick for signing (I give both Id and wsu:Id, former to sign and
2533           latter to be consumed). Maybe I will have to replace xmldsig/xmlenc
2534           implementation later. Now singning mechanism works except for
2535           wsu:Timestamp (which is kind of mandatory).
2536
2537         I can's still consume replies from Indigo but it's a big progress :)
2538
2539 2007-01-26  Atsushi Enomoto  <atsushi@ximian.com>
2540
2541         * MessageHeaderInfo.cs : added internal Id.
2542         * MessageHeader.cs : read and write wsu:Id.
2543         * Message.cs : output wsu namespace if Id exists in any header.
2544         * HttpReplyChannel.cs : (some debugging lines.)
2545         * SecureMessageDecryptor.cs : (remove debugging lines.)
2546         * MessageImpl.cs : removed obsolete code.
2547         * WSSecurityMessageHeader.cs : output "o" prefix.
2548         * SecureMessageGenerator.cs : replaced XmlElement-based header
2549           signing with MessageHeader-based signing, to support Id correctly.
2550
2551 2007-01-15  Atsushi Enomoto  <atsushi@ximian.com>
2552
2553         * SecureMessageGenerator.cs : some more refactoring and code comments.
2554         * MessageSecurityUtility.cs : made decryptor into an instance class,
2555           like I've done for SecureMessageGenerator.
2556         * SecurityRequestContext.cs, SecurityRequestChannel.cs :
2557           dependent changes for above.
2558
2559 2007-01-12  Atsushi Enomoto  <atsushi@ximian.com>
2560
2561         * SecureMessageGenerator.cs : fixed derived keysize. derived key was
2562           causing NRE due to the lack of token reference.
2563           No need to pass doc to SignedXml.ctor() anymore.
2564           Moved ReferenceList before the signature(s).
2565
2566 2007-01-12  Atsushi Enomoto  <atsushi@ximian.com>
2567
2568         * SecureMessageGenerator.cs : add wsu:Timestamp to signing target.
2569           Moved signing key generation code to non-HMACSHA1 signing part.
2570           Don't try to sign wss:Security.
2571           Pass document itself to SignedXml.ctor().
2572           Use temporary DataObjects to avoid adding Ids (not sure what is the
2573           expected processing yet).
2574         * WSSecurityMessageHeader.cs : to support timestamp signing, add
2575           WriteTo() method in WsuTimestamp.
2576
2577 2007-01-12  Atsushi Enomoto  <atsushi@ximian.com>
2578
2579         * SecureMessageGenerator.cs : wrong key was used for signing.
2580           Omit KeyInfo for now - it seems that .net (sometimes?) omits it.
2581
2582 2007-01-11  Atsushi Enomoto  <atsushi@ximian.com>
2583
2584         * SecureMessageGenerator.cs :
2585           Now ID generation process does not modify input message.
2586           Moved derived key generation part into (virtual) signing loop.
2587           MessagePartSpecification support for signing is done.
2588
2589 2007-01-11  Atsushi Enomoto  <atsushi@ximian.com>
2590
2591         * SecureMessageGenerator.cs : some reordering to handle signing and
2592           encryption with supporting tokens. Fixed XPath query bug for
2593           soap header contents (we want s:Header/*, not s:Header).
2594
2595 2007-01-11  Atsushi Enomoto  <atsushi@ximian.com>
2596
2597         * MessageSecurityBindingSupport.cs : more refactoring.
2598           Made it abstract and added Initiator- and Recipient- classes.
2599           Several members were moved to those derived types.
2600         * AsymmetricSecurityBindingElement.cs, 
2601           SymmetricSecurityBindingElement.cs
2602           SecurityChannelFactory.cs, SecurityChannelListener.cs,
2603           SecurityRequestChannel.cs, SecurityOutputChannel.cs,
2604           SecurityRequestContext.cs, SecureMessageGenerator.cs :
2605           All dependent changes by above. Removed ISecurityChannelSource
2606           which became useless.
2607
2608 2007-01-11  Atsushi Enomoto  <atsushi@ximian.com>
2609
2610         * SecureMessageGenerator.cs : encryption parts should exist too.
2611         * AsymmetricSecurityBindingElement.cs
2612           SymmetricSecurityBindingElement.cs,
2613           MessageSecurityBindingSupport.cs : some refactoring.
2614           Split MessageSecurityBindingSupport into security binding element
2615           specific parts and made MessageSecurityBindingSupport concrete.
2616           It is likely split again, next time based on initiator/recipient.
2617
2618 2007-01-11  Atsushi Enomoto  <atsushi@ximian.com>
2619
2620         * MessageSecurityUtility.cs, SecureMessageGenerator.cs :
2621           split encryptor part in the former file into latter file, and
2622           make it nonstatic.
2623         * SecurityRequestChannel.cs, SecurityOutputChannel.cs,
2624           SecurityRequestContext.cs : apply the change above.
2625
2626 2007-01-11  Atsushi Enomoto  <atsushi@ximian.com>
2627
2628         * MessageSecurityBindingSupport.cs :
2629           Fixed incorrect TrgGetValue() use.
2630           Added CollectRecipientSupportingTokens().
2631
2632 2007-01-11  Atsushi Enomoto  <atsushi@ximian.com>
2633
2634         * MessageSecurityUtility.cs: acctually ReferenceList was inside
2635           EncryptedKey. So, when a key itself is used to encrypt data,
2636           ReferenceList is contained by itself.
2637         * MessageSecurityBindingSupport.cs :
2638           added CollectInitiatorSupportingTokens().
2639
2640 2007-01-10  Atsushi Enomoto  <atsushi@ximian.com>
2641
2642         * MessageSecurityUtility.cs: it should support ReferenceList-less
2643           messages.
2644
2645 2007-01-10  Atsushi Enomoto  <atsushi@ximian.com>
2646
2647         * WSSecurityMessageHeader.cs : reverted previous unnecessary change.
2648         * MessageSecurityUtility.cs : there already was uuid.
2649
2650 2007-01-09  Atsushi Enomoto  <atsushi@ximian.com>
2651
2652         * MessageSecurityUtility.cs : replaced EncryptedKey with
2653           WrappedKeySecurityToken, which seems to be in actual use in .net.
2654         * WSSecurityMessageHeader.cs : added internal Guid so that it
2655           could be shared between header items.
2656
2657 2006-12-14  Atsushi Enomoto  <atsushi@ximian.com>
2658
2659         * HttpRequestContext.cs, TextMessageEncoder.cs :
2660           some null arg check.
2661
2662 2006-12-08  Atsushi Enomoto  <atsushi@ximian.com>
2663
2664         * MessageSecurityUtility.cs : reducing DOM dependency. Use KeyInfoNode
2665           for SecurityTokenReference resolution.
2666
2667 2006-12-08  Atsushi Enomoto  <atsushi@ximian.com>
2668
2669         * MessageSecurityUtility.cs : fixed EncryptedData decryption to
2670           consider DerivedKeyTokens correctly.
2671           When creating LocalId, don't add '#' here.
2672
2673 2006-12-07  Atsushi Enomoto  <atsushi@ximian.com>
2674
2675         * MessageSecurityUtility.cs :
2676           handle key mapping for each wsse:Security.
2677
2678 2006-12-07  Atsushi Enomoto  <atsushi@ximian.com>
2679
2680         * WSSecurityMessageHeader.cs : use prefix "c" for ws-secureconv.
2681
2682 2006-12-06  Atsushi Enomoto  <atsushi@ximian.com>
2683
2684         * WSSecurityMessageHeader.cs : write top-level ReferenceList in
2685           wsse:Security.
2686         * MessageSecurityUtility.cs :
2687           Now ReferenceList is placed under wsse:Security as WS-Security 1.1 
2688           suggests, and it is used to dereference decryption targets.
2689           Now it premises multiple wsse:Security elements to read.
2690
2691 2006-12-06  Atsushi Enomoto  <atsushi@ximian.com>
2692
2693         * WSSecurityMessageHeader.cs : don't write o:SecurityTokenReference
2694           manually (and actually the namespace URI was wrong).
2695
2696 2006-12-06  Atsushi Enomoto  <atsushi@ximian.com>
2697
2698         * WSSecurityMessageHeader.cs : improved DerivedKeyToken writing
2699           and reading.
2700         * MessageSecurityUtility.cs : DerivedKeyToken creation.
2701
2702 2006-12-06  Atsushi Enomoto  <atsushi@ximian.com>
2703
2704         * SecurityBindingElement.cs,
2705           SymmetricSecurityBindingElement.cs,
2706           AsymmetricSecurityBindingElement.cs :
2707           implemented SetKeyDerivation().
2708
2709 2006-12-06  Atsushi Enomoto  <atsushi@ximian.com>
2710
2711         * MessageSecurityUtility.cs : don't add KeyInfoClause to EncryptedKey
2712           more than once.
2713
2714 2006-12-06  Atsushi Enomoto  <atsushi@ximian.com>
2715
2716         * MessageBufferImpl.cs : XmlReader-based buffer is not possible, so
2717           don't use it.
2718
2719 2006-12-05  Atsushi Enomoto  <atsushi@ximian.com>
2720
2721         * MessageSecurityUtility.cs : u:Timestamp will be encrypted/signed,
2722           thus move it in front of encryption/signing.
2723
2724 2006-12-04  Atsushi Enomoto  <atsushi@ximian.com>
2725
2726         * TransactionFlowBindingElement.cs : OnOpen()/OnClose() should not
2727           check state by themselves (btw it's not really working).
2728         * HttpChannelListener.cs : If the url does not end with '/' add it
2729           so that it could be fed to HttpListener.
2730
2731 2006-12-04  Atsushi Enomoto  <atsushi@ximian.com>
2732
2733         * HttpChannelFactory.cs : check scheme on CreateChannel.
2734         * MessageHeader.cs : finish IsMessageVersionSupported().
2735
2736 2006-12-04  Atsushi Enomoto  <atsushi@ximian.com>
2737
2738         * FaultConverter.cs : new file, not used yet though.
2739
2740 2006-10-21  Atsushi Enomoto  <atsushi@ximian.com>
2741
2742         * SvcHttpHandler.cs : set GET URL to ServiceMetadataBehavior.
2743
2744 2006-10-20  Atsushi Enomoto  <atsushi@ximian.com>
2745
2746         * SvcHttpHandler.cs : once AspNetReplyChannel get working with HTTP
2747           GET as well as HttpReplyChannel, configuration would be ready now.
2748
2749 2006-10-18  Ankit Jain  <jankit@novell.com>
2750
2751         * TextMessageEncoder.cs (MediaType): Use 'application/soap+xml' for
2752         EnvelopeVersion.Soap12 and 'text/xml' for others.
2753         * HttpReplyChannel.cs (TryReceiveRequest): Revert earlier patch for GET
2754         handling.
2755         Strip '?' from the query string.
2756
2757 2006-10-13  Ankit Jain  <jankit@novell.com>
2758
2759         * MessageVersion.cs (None): Set AddressingVersion.None
2760
2761 2006-10-12  Atsushi Enomoto  <atsushi@ximian.com>
2762
2763         * SvcHttpHandler.cs : added config-based endpoint addition code.
2764           Though due to some weird bug in mono-core it does not seem to work,
2765           so commented out for now.
2766         * HttpReplyChannel.cs : handle wsdl query parameter. btw creating
2767           mex request message might just be wrong.
2768           Use expected MessageVersion by the channel.
2769         * AspNetReplyChannel.cs : ditto. Plus, HTTP GET support.
2770
2771 2006-10-12  Atsushi Enomoto  <atsushi@ximian.com>
2772
2773         * MessageSecurityBindingSupport.cs : added DefaultSignatureAlgorithm
2774           which differs depending on whether it is asymmetric or symmetric.
2775         * SecurityRequestChannel.cs, SecurityRequestContext.cs :
2776           simplify SecureMessage() and DecryptMessage() arguments (just
2777           take MessageSecurityBindingSupport instead of several parameters).
2778         * MessageSecurityUtility.cs :
2779           - simplify SecureMessage() and DecryptMessage() arguments (just
2780             take MessageSecurityBindingSupport instead of several parameters).
2781           - Take token inclusion mode into account. Don't include them when
2782             it is not expected. Also, change the token reference style.
2783           - add wsa:MessageID to the headers.
2784           - For hmac-sha1 signing (default for symmetric binding), use
2785             symmetric key created for encryption as well to create HMACSHA1.
2786           - add Id to wsu:Timestamp.
2787           - start to handle SecurityMessageProperty.
2788         * WSSecurityMessageHeader.cs :
2789           Added Id to WsuTimestamp. Also use prefixes for its XML output.
2790           Changed date format.
2791
2792 2006-10-06  Atsushi Enomoto  <atsushi@ximian.com>
2793
2794         * CommunicationObject.cs : reject faulted state on Open()/Close().
2795         * MessageHeaders.cs : removed extra fields.
2796
2797 2006-10-06  Ankit Jain  <jankit@novell.com>
2798
2799         * HttpReplyChannel.cs (TryReceiveRequest): Handle HTTP GET.
2800
2801 2006-10-05  Atsushi Enomoto  <atsushi@ximian.com>
2802
2803         * MessageSecurityUtility.cs, SecurityRequestContext.cs :
2804           added some FIXMEs and additional arg.
2805
2806 2006-10-05  Atsushi Enomoto  <atsushi@ximian.com>
2807
2808         * MessageSecurityUtility.cs : remove duplicate Action header.
2809
2810 2006-10-05  Atsushi Enomoto  <atsushi@ximian.com>
2811
2812         * MessageFault.cs : partly implemented CreateFault(Message, int).
2813         * Message.cs, MessageImpl.cs, MessageBufferImpl.cs :
2814           handle IsFault correctly in each implementation.
2815
2816 2006-10-04  Ankit Jain  <jankit@novell.com>
2817
2818         * HttpRequestChannel.cs (ProcessRequest): Read till the end.
2819
2820 2006-10-04  Ankit Jain  <jankit@novell.com>
2821
2822         * HttpRequestChannel.cs (ProcessRequest): Temporary workaround for a bug
2823         in WebConnectionStream.
2824
2825 2006-10-04  Ankit Jain  <jankit@novell.com>
2826
2827         * MessageHeaders.cs (To): Use GetHeader<string> till
2828         DataContractSerializer gets ISerializable support.
2829         * CustomBinding.cs (.ctor): Get scheme from TransportBindingElement.
2830
2831 2006-10-04  Ankit Jain  <jankit@novell.com>
2832
2833         * ServiceHostParser.cs (Parse):
2834         (Split): Add some error checks.
2835
2836 2006-10-03  Atsushi Enomoto  <atsushi@ximian.com>
2837
2838         * SslStreamSecurityBindingElement.cs : updated API to Sep. CTP.
2839         * StreamUpgradeAcceptor.cs : Fix AcceptUpgrade().
2840         * SslStreamSecurityUpgradeProvider.cs,
2841           SslStreamSecurityUpgradeAcceptor.cs :
2842           new files for Ssl upgrade provider implementation.
2843         * MessageSecurityUtility.cs :
2844           Create proper C14NTransform. Don't use enveloped signature
2845           transform but sign every significant bits. On securing messages
2846           use ChannelProtectionRequirements.
2847         * SecurityRequestContext.cs : pass ChannelProtectionRequirements to
2848           SecureMessage().
2849         * MessageEncoder.cs : fix API (missing constraint).
2850         * WSSecurityMessageHeader.cs : it is MustUnderstand.
2851         * StreamUpgradeProvider.cs : API fix and implemented .ctor().
2852         * AsymmetricSecurityBindingElement.cs : default protection order is
2853           SignBeforeEncryptAndEncryptSignature.
2854
2855 2006-09-29  Ankit Jain  <jankit@novell.com>
2856
2857         * SvcHttpHandlerFactory.cs (GetTypeFromSvc): Extract and move code to
2858         ServicHostParser and use that here.
2859         (PrivateBinPath): New.
2860         (GetTypeFromBin): New. Load assembly from PrivateBinPath.
2861         (RemovedCallback): Remove and close the SvcHttpHandler when its
2862         corresponding file (.svc) changes.
2863         * SvcHttpHandler.cs (Close): New. Close the ServiceHost.
2864
2865         * ServiceHostParser.cs : New.
2866         * CachingCompiler.cs : New. Code extracted from
2867         System.Web.Compilation.CachingCompiler
2868         * CompilationException.cs : New. From System.Web.Compilation
2869         * HtmlizedException.cs : New. Likewise.
2870
2871 2006-09-29  Atsushi Enomoto  <atsushi@ximian.com>
2872
2873         * MessageSecurityBindingSupport.cs : For client side, it is always
2874           InitiatorServiceModelSecurityTokenRequirement which should be
2875           created. Fixed wrong client encryption key acquisition.
2876
2877 2006-09-29  Atsushi Enomoto  <atsushi@ximian.com>
2878
2879         * SecurityChannelListener.cs, SecurityRequestContext.cs,
2880           MessageSecurityBindingSupport.cs : made similar changes as factories
2881           to listener so that session channels and input channels would work.
2882           Added authenticator creation.
2883
2884 2006-09-29  Atsushi Enomoto  <atsushi@ximian.com>
2885
2886         * Binding.cs : added missing members.
2887
2888 2006-09-28  Atsushi Enomoto  <atsushi@ximian.com>
2889
2890         * SecurityRequestChannel.cs, SecurityOutputChannel.cs,
2891           MessageSecurityUtility.cs, MessageSecurityBindingSupport.cs :
2892           reduce code duplication between request and output channels.
2893           The common parts are now in MessageSecurityBindingSupport.
2894           Now reduced several arguments in SecureMessage() for client.
2895
2896 2006-09-28  Atsushi Enomoto  <atsushi@ximian.com>
2897
2898         * ChannelFactoryBase.cs : implemented ValidateCreateChannel().
2899
2900 2006-09-28  Atsushi Enomoto  <atsushi@ximian.com>
2901
2902         * AsymmetricSecurityBindingElement.cs,
2903           SecurityChannelListener.cs,
2904           SecurityRequestContext.cs,
2905           SymmetricSecurityBindingElement.cs,
2906           SecurityRequestChannel.cs,
2907           SecurityOutputChannel.cs,
2908           SecurityChannelFactory.cs,
2909           MessageSecurityBindingSupport.cs : 1) Refactoring. 
2910           IMessageSecurityBindingSupport now becomes a class and contains
2911           all the members which resided in ISecurityChannelSource.
2912           Now it takes more constructor params.
2913           Made dependent changes on all sources above.
2914
2915           2) Added SecurityTokenAuthenticator creation in
2916           SecurityRequestChannel (SecurityOutputChannel should do the same).
2917
2918 2006-09-27  Atsushi Enomoto  <atsushi@ximian.com>
2919
2920         * SecurityRequestChannel.cs : ongoing improvements on conditional
2921           key creation. Actually there must be some part that creates an
2922           authenticator (WinFX does that).
2923
2924 2006-09-27  Ankit Jain  <jankit@novell.com>
2925
2926         Add suport for handling .svc files.
2927         * SvcHttpHandlerFactory.cs: New.
2928         * SvcHttpHandler.cs: New.
2929
2930         * HttpChannelListener.cs (PopulateChannel): Use AspNetReplyChannel if in
2931         asp.net environment.
2932         (OnOpen): Do nothing in asp.net environment.
2933         (OnClose): Likewise.
2934         * HttpReplyChannel.cs (HttpRequestContext): Move to ..
2935         * HttpRequestContext.cs: .. here.
2936
2937         * AspNetReplyChannel.cs: New.
2938         * AspNetRequestContext.cs: New.
2939
2940 2006-09-26  Atsushi Enomoto  <atsushi@ximian.com>
2941
2942         * MessageSecurityUtility.cs :
2943           Significantly rewritten decryption parts to respect ReferenceList
2944           to decrypt (so no workaround anymore).
2945           Now e:ReferenceList inside o:Security is treated as the referenced
2946           EncryptedType items are encrypted by 1) the derived key which is
2947           immediately in front of it, or 2) the default key (it is according
2948           to WS-SecureConversation section 9.1). Thus removed immediately
2949           previous hack to auto-fill wsu:Id attributes.
2950
2951           On securing a message, generate correct Id and add DataReference
2952           to ReferenceList properly.
2953
2954 2006-09-26  Atsushi Enomoto  <atsushi@ximian.com>
2955
2956         * WSSecurityMessageHeader.cs : handle ReferenceList. It is being
2957           practically used.
2958
2959 2006-09-26  Atsushi Enomoto  <atsushi@ximian.com>
2960
2961         * WSSecurityMessageHeader.cs : handle DerivedKeyToken as a header content.
2962           Actually WSSecurityTokenSerializer should be able to consume it, but after
2963           spending a lot of time I still cannot successfully read it on WinFX.
2964           Skip ReferenceList for now.
2965         * MessageSecurityUtility.cs :
2966           Replaced some string literals with constants.
2967           Added some workaround for DerivedKeyToken retrieval.
2968           WinFX somehow sends incomplete ISO10126 padding which contains
2969           bigger number than the key size and is rejected by EncryptedXml,
2970           so added DecryptLax() which processes such ones in PaddingMode.None
2971           to workaround it (only for cross-connection between mono and winfx).
2972           Added some incomplete implicit wsu:Id processing.
2973           Don't try to replace SignedXml with EncryptedData. It is not added
2974           to the document tree.
2975
2976 2006-09-25  Atsushi Enomoto  <atsushi@ximian.com>
2977
2978         * MessageSecurityUtility.cs : support message signature encryption. Some
2979           more refactoring.
2980
2981 2006-09-22  Atsushi Enomoto  <atsushi@ximian.com>
2982
2983         * SecurityBindingElement.cs : implement Clone(). Remove some MonoTODOs.
2984
2985 2006-09-22  Atsushi Enomoto  <atsushi@ximian.com>
2986
2987         * MessageSecurityUtility.cs : fix warnings.
2988
2989 2006-09-22  Atsushi Enomoto  <atsushi@ximian.com>
2990
2991         * MessageSecurityUtility.cs : actually there would be more than one
2992           EncryptedData. Decrypt all.
2993
2994 2006-09-22  Atsushi Enomoto  <atsushi@ximian.com>
2995
2996         * MessageSecurityUtility.cs : supply correct URIs in SecureMessage().
2997           Use ISO10126 padding mode (it is not required but in manner).
2998
2999 2006-09-21  Atsushi Enomoto  <atsushi@ximian.com>
3000
3001         * MessageSecurityUtility.cs : now that EncryptedXml decryption bug is
3002           fixed, remove 16 bytes workaround (we still need encryption bugfix in
3003           that class to make it work fine with mono client).
3004           Removed buggy lines that reset decryption key to AES.
3005           Modified GetKey() argument to take EncryptedData/EncryptedKey element.
3006         * WSSecurityMessageHeader.cs :
3007           (SecurityTokenReferenceKeyInfo) support LoadXml.
3008
3009 2006-09-20  Atsushi Enomoto  <atsushi@ximian.com>
3010
3011         * TransactionMessageProperty.cs : new file.
3012
3013 2006-09-20  Atsushi Enomoto  <atsushi@ximian.com>
3014
3015         * ChannelPoolSettings.cs, OneWayBindingElement.cs : build fix, as
3016           gmcs happened to report wrong code.
3017
3018 2006-09-19  Atsushi Enomoto  <atsushi@ximian.com>
3019
3020         * SecurityChannelFactory.cs, SecurityChannelListener.cs :
3021           .ctor() now requires ChannelProtectionRequirements which will be
3022           supplied via BindingParameterCollection.
3023         * SymmetricSecurityBindingElement.cs,
3024           AsymmetricSecurityBindingElement.cs : thus add
3025           ChannelProtectionRequirement parameter to factory/listener.
3026         * SecurityRequestChannel.cs : use recipient token requirement to
3027           create an encryption token. Thus differentiate the logic from
3028           signing (initiator) token.
3029
3030 2006-09-19  Atsushi Enomoto  <atsushi@ximian.com>
3031
3032         * SymmetricSecurityChannelFactory.cs, SecurityChannelFactory.cs :
3033           renamed former to latter.
3034         * SymmetricSecurityChannelListener.cs, SecurityChannelListener.cs :
3035           ditto.
3036
3037 2006-09-19  Atsushi Enomoto  <atsushi@ximian.com>
3038
3039         * MessageSecurityBindingSupport.cs : new internal types to commonize
3040           AsymmetricSecurityBindingElement and SymmetricSecurityBindingElement
3041           and thus make internal factory and listener reusable.
3042         * SymmetricSecurityChannelFactory.cs, SecurityRequestContext.cs,
3043           SecurityRequestChannel.cs, SecurityOutputChannel.cs,
3044           SymmetricSecurityChannelListener.cs : rewrote dependent parts on
3045           SymmetricSecurityBindingElement, using the new types above.
3046         * SymmetricSecurityBindingElement.cs :
3047           Use SymmetricMessageSecurityBindingSupport.
3048         * AsymmetricSecurityBindingElement.cs :
3049           thus implemented, using AsymmetricMessageSecurityBindingSupport.
3050
3051 2006-09-19  Atsushi Enomoto  <atsushi@ximian.com>
3052
3053         * ChannelFactoryBase.cs : more RC1 update.
3054
3055 2006-09-19  Atsushi Enomoto  <atsushi@ximian.com>
3056
3057         * MessageEncoder.cs, BinaryMessageEncoder.cs, MtomMessageEncoder.cs,
3058           TextMessageEncoder.cs : updated ReadMessage() API to RC1.
3059         * ChannelListenerBase.cs, ChannelListenerBase_1.cs,
3060           ChannelBase.cs : RC1 API updates.
3061         * MessageImpl.cs : implemented Properties.
3062         * HttpReplyChannel.cs : added HttpRequestMessageProperty support.
3063
3064 2006-09-18  Ankit Jain  <jankit@novell.com>
3065
3066         * MessageHeaders.cs (MessageId):
3067         (RelatesTo): UniqueId is not serializable, serialize it as a string.
3068
3069 2006-09-17  Atsushi Enomoto  <atsushi@ximian.com>
3070
3071         * ChannelParameterCollection.cs : new file.
3072         * LayeredOutputChannel.cs, SecurityOutputChannel.cs :
3073           new files for IOutputChannel implementation.
3074         * OneWayBindingElement.cs : hacky implementation.
3075         * SymmetricSecurityChannelFactory.cs : support IOutputChannel.
3076         * MessageSecurityUtility.cs : now create identifier from the security
3077           token and the token parameters which is added as an argument.
3078         * SecurityRequestContext.cs,
3079           SecurityRequestChannel.cs : SecureMessage() argument changes.
3080           Set MessageSecurityVersion (SecurityTokenVersion) to the token
3081           requirement.
3082
3083 2006-09-17  Atsushi Enomoto  <atsushi@ximian.com>
3084
3085         * HttpRequestChannel.cs : close the HttpWebRequest.
3086
3087 2006-09-17  Atsushi Enomoto  <atsushi@ximian.com>
3088
3089         * HttpRequestChannel.cs,
3090           HttpChannelFactory.cs : implement async request/reply.
3091         * HttpChannelFactory.cs :
3092           verify factory state when creating a channel.
3093
3094 2006-09-17  Atsushi Enomoto  <atsushi@ximian.com>
3095
3096         * MessageEncoder.cs, TextMessageEncoder.cs, MtomMessageEncoder.cs,
3097           BinaryMessageEncoder.cs : added message version mismatch check.
3098
3099 2006-09-15  Atsushi Enomoto  <atsushi@ximian.com>
3100
3101         * SymmetricSecurityChannelListener.cs, SecurityRequestContext.cs :
3102           Making incomplete changes to handle different tokens for encryption
3103           and signature.
3104         * SymmetricSecurityChannelFactory.cs, SecurityRequestChannel.cs :
3105           split channel implementation classes out to the latter file.
3106         * MessageSecurityUtility.cs : seems like there is
3107           TimeStampValidityDuration property, so use it (incomplete; a server
3108           needs another love).
3109
3110 2006-09-12  Atsushi Enomoto  <atsushi@ximian.com>
3111
3112         * MessageSecurityUtility.cs, SymmetricSecurityChannelFactory.cs,
3113           SecurityRequestContext.cs : now that we have key identifier clause
3114           and working ResolveKeyIdentifierClause(), just create keys inside
3115           SecureMessage(). Add KeyInfo to the xmldsig.
3116
3117 2006-09-12  Atsushi Enomoto  <atsushi@ximian.com>
3118
3119         * SymmetricSecurityChannelFactory.cs, SecurityRequestContext.cs :
3120           pass SecurityKeyIdentifierClause to SecureMessage().
3121         * SecurityBindingElement.cs : set X509ReferenceStyle as Thumbprint
3122           for IssuedToken binding element.
3123         * SymmetricSecurityChannelListener.cs : removed hack to just create
3124           X509 security token, and implemented correct token creation.
3125         * WSSecurityMessageHeader.cs : added new KeyInfoClause type that
3126           wraps SecurityTokenReference element.
3127         * MessageSecurityUtility.cs : use the above.
3128
3129 2006-09-08  Atsushi Enomoto  <atsushi@ximian.com>
3130
3131         * MessageSecurityUtility.cs : raise MessageSecurityException when it
3132           could not find a security header.
3133         * SymmetricSecurityChannelFactory.cs : now it also supports
3134           IRequestSessionChannel. Extracted SecurityRequestChannel out from
3135           the factory type.
3136
3137 2006-09-08  Atsushi Enomoto  <atsushi@ximian.com>
3138
3139         * SecurityRequestContext.cs : moved securing message part to
3140           MessageSecurityUtility.cs.
3141         * MessageSecurityUtility.cs : the change above.
3142           use DateTime.Now for timestamp basis. Don't append signature to
3143           the document. Instead it is added to the header. Capture body
3144           content instead of the body itself.
3145         * SymmetricSecurityChannelFactory.cs : decrypt reply message to
3146           be processed by upper layers.
3147
3148 2006-09-08  Atsushi Enomoto  <atsushi@ximian.com>
3149
3150         * MessageSecurityUtility.cs, WSSecurityMessageHeader.cs,
3151           SymmetricSecurityChannelListener.cs,
3152           SymmetricSecurityChannelFactory.cs, SecurityRequestContext.cs :
3153           more refactoring. Request serialization became much more conformant
3154           and add required header items.
3155           Security Token retrieval is needed to send it in the request.
3156           Fixed wrong key encryption.
3157
3158 2006-09-07  Atsushi Enomoto  <atsushi@ximian.com>
3159
3160         * SecurityRequestContext.cs : the workaround was not functional.
3161
3162 2006-09-07  Atsushi Enomoto  <atsushi@ximian.com>
3163
3164         * SecurityRequestContext.cs : some more refactoring. Use EncryptedXml
3165           API, especially ReplaceData(), instead of native crypto stuff.
3166         * WSSecurityMessageHeader.cs : handle dsig:Signature as well (for
3167           MessageProtectionOrder.SignBeforeEncrypt).
3168
3169 2006-09-07  Atsushi Enomoto  <atsushi@ximian.com>
3170
3171         * SecurityRequestContext.cs : label should be combined of both
3172           the client's and the server's.
3173
3174 2006-09-06  Atsushi Enomoto  <atsushi@ximian.com>
3175
3176         * SecurityRequestContext.cs : enable key derivation (though for now
3177           GenerateDerivedKey() is unimplemented). Create meaningful,
3178           decrypted request message to be consumed by the upper layer.
3179
3180 2006-09-06  Atsushi Enomoto  <atsushi@ximian.com>
3181
3182         * SecurityRequestContext.cs : implement Close() and Reply().
3183           ongoing implementation of Reply(TimeSpan).
3184         * MessageSecurityUtility.cs : new file to collect utility methods.
3185         * SymmetricSecurityChannelFactory.cs : moved securing message code
3186           to the above file.
3187         * SymmetricSecurityChannelListener.cs : tiny renaming.
3188
3189 2006-09-06  Atsushi Enomoto  <atsushi@ximian.com>
3190
3191         * SecurityRequestContext.cs : security header is also stored.
3192           removed NotImpl.
3193         * WSSecurityMessageHeader.cs : read EncryptedKey and EncryptedData
3194           as well.
3195
3196 2006-09-06  Atsushi Enomoto  <atsushi@ximian.com>
3197
3198         * SymmetricSecurityChannelFactory.cs : tiny progress on securing
3199           message.
3200
3201 2006-09-05  Atsushi Enomoto  <atsushi@ximian.com>
3202
3203         * SymmetricSecurityChannelFactory.cs : specify KeyUsage.Exchange
3204           so that it retrieves the security key in that manner.
3205
3206 2006-09-05  Atsushi Enomoto  <atsushi@ximian.com>
3207
3208         * Binding.cs : MessageVersion is null when there is no
3209           MessageEncodingBindingElement.
3210         * Message.cs : null arg check.
3211
3212 2006-09-05  Atsushi Enomoto  <atsushi@ximian.com>
3213
3214         * ChannelPoolSettings.cs, OneWayBindingElement.cs : new files.
3215
3216 2006-09-04  Atsushi Enomoto  <atsushi@ximian.com>
3217
3218         * SymmetricSecurityChannelListener.cs, SecurityRequestContext.cs, 
3219           LayeredReplyChannel.cs, LayeredCommunicationObject.cs,
3220           LayeredRequestChannel.cs : some refactoring.
3221         * SymmetricSecurityChannelFactory.cs :
3222           ongoing secure message creation implementation.
3223
3224 2006-09-01  Atsushi Enomoto  <atsushi@ximian.com>
3225
3226         * SymmetricSecurityBindingElement.cs :
3227           pass specific ServiceCredentialsSecurityTokenManager type to
3228           SymmetricSecurityChannelListener as it needs ServiceCertificate.
3229         * SymmetricSecurityChannelListener.cs :
3230           get service certificate. It's a temporary hack.
3231           Move RequestContext code to below.
3232         * SecurityRequestContext.cs : new file.
3233         * WSSecurityMessageHeader.cs : implementing Read(), but to finish
3234           it I have to finish decryption of the incoming message.
3235
3236 2006-08-31  Atsushi Enomoto  <atsushi@ximian.com>
3237
3238         * MessageImpl.cs : don't write attributes on the first body content
3239           element *on soap Body element*.
3240         * MessageBufferImpl.cs : don't throw ArgumentNullException.
3241           ObjectDisposedException is appropriate.
3242         * MessageHeader.cs : (RawMessageHeader) don't write element itself
3243           in OnWriteHeader*Contents*().
3244
3245 2006-08-31  Atsushi Enomoto  <atsushi@ximian.com>
3246
3247         * WSSecurityMessageHeader.cs : new file.
3248         * SymmetricSecurityChannelFactory.cs :
3249           moved WSSecurityHeader and related types to the above.
3250         * SymmetricSecurityChannelListener.cs :
3251           reject SOAP-env-less message.
3252
3253 2006-08-31  Atsushi Enomoto  <atsushi@ximian.com>
3254
3255         * SecurityChannelListener.cs, SymmetricSecurityChannelListener.cs :
3256           renamed former to latter.
3257         * SymmetricSecurityChannelFactory.cs :
3258           create requirements every time. It is also likely that I need
3259           another requirement instance to get service credentials here.
3260
3261 2006-08-30  Atsushi Enomoto  <atsushi@ximian.com>
3262
3263         * SymmetricSecurityBindingElement.cs : make BuildChannelListener()
3264           similar to BuildChannelFactory() (set credentials, issuer binding
3265           context etc.).
3266         * SecurityChannelListener.cs :
3267           more ongoing security support implementation.
3268         * SymmetricSecurityChannelFactory.cs :
3269           moved GetSecurityKey() to SymmetricSecurityRequestChannel.
3270
3271 2006-08-29  Atsushi Enomoto  <atsushi@ximian.com>
3272
3273         * SecurityChannelListener.cs, SymmetricSecurityBindingElement.cs :
3274           Renamed SecurityChannelListener to SymmetricSecurityChannelListener.
3275           Implementation is underway.
3276         * LayeredReplyChannel.cs :
3277           like LayeredRequestChannel, use ChannelListenerBase to provide
3278           default timeouts.
3279
3280 2006-08-29  Atsushi Enomoto  <atsushi@ximian.com>
3281
3282         * MessageHeader.cs : added another implementation type that uses
3283           XmlElement, for buffering purpose.
3284         * MessageImpl.cs : Header item types are user-driven by
3285           MessageHeader.GetHeader<T>(int), so at storing phase just store
3286           nodes as XmlElement.
3287         * MessageHeaders.cs : avoid dumping XmlNode to string to create
3288           another XmlReader.
3289
3290 2006-08-28  Atsushi Enomoto  <atsushi@ximian.com>
3291
3292         * SymmetricSecurityBindingElement.cs : find ClientCredentials from
3293           BindingParameterCollection, not from binding element properties.
3294
3295 2006-08-28  Atsushi Enomoto  <atsushi@ximian.com>
3296
3297         * SecurityChannelFactory.cs, SymmetricSecurityChannelFactory.cs :
3298           renamed former to latter.
3299
3300 2006-08-25  Atsushi Enomoto  <atsushi@ximian.com>
3301
3302         * SecurityBindingElement.cs : SetIssuerBindingContext should also
3303           work for SslSecurityTokenParameters.
3304
3305 2006-08-24  Atsushi Enomoto  <atsushi@ximian.com>
3306
3307         * SecurityBindingElement.cs :
3308           Added SetIssuerBindingContextIfRequired().
3309         * SecurityChannelFactory.cs :
3310           Changed .ctor() arg again, just to receive binding element.
3311         * SymmetricSecurityBindingElement.cs :
3312           Call SetIssuerBindingContextIfRequired() in BuildChannelFactory().
3313           SymmetricSecurityChannelFactory .ctor() arg changes.
3314           "ProtectionTokenParameters" is not passed now.
3315
3316 2006-08-23  Atsushi Enomoto  <atsushi@ximian.com>
3317
3318         * SymmetricSecurityBindingElement.cs : requirements should be
3319           filled at InitializeSecurityTokenParameters as long as possible.
3320           SymmetricSecurityChannelFactory<T> now does not receive
3321           requirements (it now creates one inside it) at .ctor().
3322         * SecurityChannelFactory.cs : remove requirement argument.
3323
3324 2006-08-23  Atsushi Enomoto  <atsushi@ximian.com>
3325
3326         * SymmetricSecurityBindingElement.cs : implemented copy constructor.
3327
3328 2006-08-22  Atsushi Enomoto  <atsushi@ximian.com>
3329
3330         * SymmetricSecurityBindingElement.cs :
3331           MessageSecurityVersion property is of type SecurityTokenVersion.
3332         * SecurityBindingElement.cs :
3333           Implemented CreateSecureConversationBindingElement().
3334           For CreateIssuedTokenBindingElement(), ProtectionTokenParameters is
3335           the argument IssuedSecurityTokenParameters itself.
3336
3337 2006-08-22  Atsushi Enomoto  <atsushi@ximian.com>
3338
3339         * SymmetricSecurityBindingElement.cs :
3340           CreateSecurityTokenManager() can be directly used now. 
3341           Use CallInitializeSecurityTokenRequirement() to fill requirement
3342           properties.
3343
3344 2006-08-16  Atsushi Enomoto  <atsushi@ximian.com>
3345
3346         * ChannelFactoryBase.cs : GetProperty() is virtual.
3347
3348 2006-08-14  Atsushi Enomoto  <atsushi@ximian.com>
3349
3350         * SymmetricSecurityBindingElement.cs : in BuildChannelFactory(),
3351           create token manager, token parameters and token requirements,
3352           and fill some requirements.
3353         * TransportBindingElement.cs, HttpTransportBindingElement.cs,
3354           TextMessageEncodingBindingElement.cs : workaround to not throw NIE.
3355         * BindingContext.cs : implemented RemainingBindingElements.
3356           kill "no remaining binding element" error in GetInnerProperty()
3357         * SecurityChannelFactory.cs : now it became 
3358           SymmetricSecurityChannelFactory, thus soon to be renamed.
3359           Several ongoing actual security resolution is on.
3360
3361 2006-08-11  Atsushi Enomoto  <atsushi@ximian.com>
3362
3363         * CommunicationObject.cs :
3364           add GetCommunicationObjectType() and use it.
3365         * ChannelFactoryBase.cs, ChannelListenerBase_1.cs :
3366           use ThrowIfDisposedOrNotOpen().
3367         * LayeredCommunicationObject.cs : have similar ThrowIf...() methods
3368           to CommunicationObject. Make it IDisposable.
3369         * LayeredRequestChannel.cs : use above.
3370         * SecurityChannelFactory.cs : removed state check as it is done at
3371           above class.
3372
3373 2006-08-10  Atsushi Enomoto  <atsushi@ximian.com>
3374
3375         * SecurityBindingElement.cs : (CanBuildChannelFactory and
3376           CanBuildChannelListener) directly dispatch to BindingContext.
3377         * SymmetricSecurityBindingElement.cs : require protection token
3378           parameters before building a channel or a listener.
3379         * ChannelFactoryBase.cs : raise an error when a channel is being
3380           created without opening the factory.
3381         * ChannelListenerBase_1.cs : ditto for the listener.
3382         * SecurityChannelFactory.cs : before sending a request, it must be
3383           opened.
3384
3385 2006-08-07  Atsushi Enomoto  <atsushi@ximian.com>
3386
3387         * MessageBufferImpl.cs : initialize fields.
3388           workaround BufferSize just to return 0.
3389         * MessageImpl.cs : for BodyWriter, don't use DefaultMessageBuffer
3390           which does not support multi time write.
3391         * Message.cs : implemented State.
3392
3393 2006-08-07  Atsushi Enomoto  <atsushi@ximian.com>
3394
3395         * Message.cs : OnGetBodyAttribute() cannot return anything unless it
3396           is consuming XmlReader.
3397           Implemented OnCreateBufferedCopy(), to return XPathMessageBuffer.
3398         * MessageBuffer.cs : implemented CreateNavigator().
3399         * MessageBufferImpl.cs : added XPathMessageBuffer class.
3400
3401         I kinda know that MS heavily depends on binary XmlReader and may have
3402         XPathNavigator implementation based on the binary stuff, but at
3403         least for now we have almost no motivation to mimick it.
3404
3405 2006-08-07  Atsushi Enomoto  <atsushi@ximian.com>
3406
3407         * SecurityChannelFactory.cs : a bit more of security header code.
3408
3409 2006-08-04  Atsushi Enomoto  <atsushi@ximian.com>
3410
3411         * SymmetricSecurityBindingElement.cs :
3412           set default MessageProtectionOrder in every construction.
3413
3414 2006-08-03  Atsushi Enomoto  <atsushi@ximian.com>
3415
3416         * LayeredRequestChannel.cs, SecurityChannelFactory.cs : 
3417           changed to require ChannelFactoryBase to support default timeout.
3418           Made some methods non-virtual. Preparing code to add security
3419           headers (empty yet).
3420         * SecurityBindingElement.cs : implemented several factory methods
3421           that return SymmetricSecurityBindingElement.
3422
3423 2006-08-02  Atsushi Enomoto  <atsushi@ximian.com>
3424
3425         * IStreamUpgradeBindingElement.cs,
3426           StreamUpgradeBindingElement.cs : renamed from former to latter.
3427
3428 2006-08-02  Atsushi Enomoto  <atsushi@ximian.com>
3429
3430         * IStreamUpgradeBindingElement.cs : API update, soon to be renamed.
3431
3432 2006-07-31  Ankit Jain  <jankit@novell.com>
3433
3434         * MessageHeaders.cs (From): Use Constants.WSA1
3435         (MessageId): Implement the same pattern as other properties (From etc).
3436
3437 2006-07-28  Atsushi Enomoto  <atsushi@ximian.com>
3438
3439         * LocalClientSecuritySettings.cs : initialize IdentityVerifier as well.
3440         * SecurityBindingElement.cs : some cosmetic changes.
3441
3442 2006-07-28  Atsushi Enomoto  <atsushi@ximian.com>
3443
3444         * SecurityBindingElement.cs : LocalClientSettings and 
3445           LocalServiceSettings returns an instance for each.
3446         * LocalClientSecuritySettings.cs : initialized fields.
3447
3448 2006-07-28  Atsushi Enomoto  <atsushi@ximian.com>
3449
3450         * LocalClientSecuritySettings.cs : moved from S.SM.Description, and
3451           kinda implemented Clone() just with MemberwiseClone().
3452
3453 2006-07-27  Ankit Jain  <jankit@novell.com>
3454
3455         * MessageHeaders.cs (set_To): Use Uri.AbsoluteUri .
3456         * MessageHeader.cs (knownTypes): New. Known type array containing
3457         EndpointAddress10.
3458         (CreateHeader): Use knownTypes with the DataContractSerializer .ctor
3459
3460 2006-07-21  Atsushi Enomoto  <atsushi@ximian.com>
3461
3462         * LayeredRequestChannel.cs, LayeredReplyChannel.cs,
3463           LayeredCommunicationObject.cs,
3464           SecurityChannelFactory.cs, SecurityChannelListener.cs :
3465           new files to support security channels, though right now they
3466           just pass inner channels through.
3467         * SymmetricSecurityBindingElement.cs : use above.
3468
3469 2006-07-21  Atsushi Enomoto  <atsushi@ximian.com>
3470
3471         * AsymmetricSecurityBindingElement.cs,
3472           SymmetricSecurityBindingElement.cs :
3473           Default SecurityTokenParameters is null.
3474
3475 2006-07-20  Atsushi Enomoto  <atsushi@ximian.com>
3476
3477         * AsymmetricSecurityBindingElement.cs : remove NotImpl for now.
3478
3479 2006-07-20  Atsushi Enomoto  <atsushi@ximian.com>
3480
3481         * Message.cs : When EnvelopeVersion is None, don't write SOAP
3482           envelope.
3483         * MessageHeader.cs : don't write headers when EnvelopeVersion is None.
3484         * MessageHeaders.cs : When EnvelopeVersion is None, don't output
3485           headers. When AddressingVersion is None, don't output addressing
3486           headers as well, except for Action which is still needed by
3487           service dispatcher.
3488
3489 2006-07-20  Atsushi Enomoto  <atsushi@ximian.com>
3490
3491         * MessageHeaders.cs : changed specific properties to find it from
3492           headers as Action property does (local variables won't be set by
3493           setter). Cache serializers. Check null serializer arguments.
3494           For EndpointAddress, GetHeader<T>() shouldn't use serializer.
3495
3496 2006-07-19  Atsushi Enomoto  <atsushi@ximian.com>
3497
3498         * MessageHeader.cs : WriteTo() should treat EndpointAddress to not
3499           use XmlObjectSerializer (since it is not data contract type).
3500
3501 2006-07-18  Atsushi Enomoto  <atsushi@ximian.com>
3502
3503         * MessageImpl.cs : Improved ReadHeaders().
3504           For certain header items, use EndpointAddress.ReadFrom().
3505
3506 2006-07-18  Atsushi Enomoto  <atsushi@ximian.com>
3507
3508         * AsymmetricSecurityBindingElement.cs :
3509           it is not ISecurityCapabilities anymore.
3510
3511 2006-07-18  Atsushi Enomoto  <atsushi@ximian.com>
3512
3513         * MessageVersion.cs : added None.
3514
3515 2006-07-14  Atsushi Enomoto  <atsushi@ximian.com>
3516
3517         * Message.cs : GetReaderAtBodyContents() implementation using
3518           writer methods.
3519
3520 2006-07-13  Atsushi Enomoto  <atsushi@ximian.com>
3521
3522         * Message.cs : CreateMessage(version,action,xmlReader) incorrectly
3523           used MessageVersion.Default.
3524
3525 2006-07-12  Duncan Mak  <duncan@novell.com>
3526
3527         * MessageBuffer.cs (MessageContentType): Return
3528         "application/soap+msbin1".
3529
3530         * MessageImpl.cs (EmptyMessage.OnCreateBufferedCopy):
3531         (SimpleMessage.OnCreateBufferedCopy):
3532         (XmlReaderMessage.OnCreateBufferedCopy): Hook up with the new
3533         MessageBuffer implementations.
3534
3535         * MessageBufferImpl.cs: Concrete implmentations for MessageBuffer.
3536         (DefaultMessageBuffer): Used by EmptyMessage and SimpleMessage.
3537         (XmlReaderMessageBuffer): Used by XmlReaderMessage.
3538
3539 2006-07-12  Atsushi Enomoto  <atsushi@ximian.com>
3540
3541         * MessageImpl.cs : Action should be added in request messages. Omit
3542           it only in reply message, thus moved to dispatcher logic.
3543
3544 2006-07-12  Ankit Jain  <jankit@novell.com>
3545
3546         * HttpRequestChannel.cs (HttpRequestChannel.Request): Workaround for a
3547         bug in WebConnectionStream.
3548         * MessageHeaders.cs (MessageHeaders.From):
3549         (MessageHeaders.ReplyTo):
3550         (MessageHeaders.To): Add the corresponding MessageHeader on set.
3551
3552 2006-07-11  Atsushi Enomoto  <atsushi@ximian.com>
3553
3554         * MessageImpl.cs : when AddressingVersion is None (e.g. POX), don't
3555           add SOAP Action to the response at any time.
3556
3557 2006-07-10  Atsushi Enomoto  <atsushi@ximian.com>
3558
3559         * SymmetricSecurityBindingElement.cs,
3560           SecurityBindingElement.cs : They are not ISecurityCapabilities now.
3561           Implemented .ctor() and some properties.
3562
3563 2006-07-10  Atsushi Enomoto  <atsushi@ximian.com>
3564
3565         * TransactionFlowBindingElement.cs : new file.
3566         * HttpTransportBindingElement.cs : added missing KeepAliveEnabled.
3567
3568 2006-07-06  Atsushi Enomoto  <atsushi@ximian.com>
3569
3570         * MessageFault.cs :
3571           DefaultAction vanished. CreateFault() now takes bufferSize arg.
3572         * MessageHeaders.cs : ArgumentException -> MessageHeaderException.
3573         * AddressingVersion.cs : added None. Equals() and GetHashCode()
3574           vanished (there is anyways no way to instantiate this type).
3575         * MessageVersion.cs : added Soap11 and Soap12.
3576         * TextMessageEncoder.cs : silly quotation mark wrapper disappeared
3577           in June CTP. goodie.
3578
3579 2006-07-05  Atsushi Enomoto  <atsushi@ximian.com>
3580
3581         * MtomMessageEncoder.cs, BinaryMessageEncoder.cs, Message.cs :
3582           removed some vanished CreateMessage() overloads.
3583
3584 2006-07-05  Atsushi Enomoto  <atsushi@ximian.com>
3585
3586         * CustomBinding.cs, HttpsTransportBindingElement.cs, 
3587           HttpTransportBindingElement.cs :
3588           They are not ISecurityCapabilities anymore.
3589           Modified code to match June CTP behavior.
3590
3591 2006-07-05  Atsushi Enomoto  <atsushi@ximian.com>
3592
3593         * StreamSecurityUpgradeProvider.cs : Identity -> EndpointIdentity.
3594
3595 2006-07-05  Atsushi Enomoto  <atsushi@ximian.com>
3596
3597         * EmptyFaultException.cs : removed unused code.
3598         * IRequestContext.cs, RequestContext.cs : renamed former to latter.
3599
3600 2006-07-05  Atsushi Enomoto  <atsushi@ximian.com>
3601
3602         * LayeredChannelFactory.cs : removed obsolete class.
3603         * ChannelFactoryBase.cs, HttpChannelFactory.cs,
3604           ChannelListenerBase.cs, HttpChannelListener.cs,
3605           HttpReplyChannel.cs, ChannelManagerBase.cs :
3606           all those changes were brought by ChannelManagerBase changes.
3607
3608 2006-07-05  Atsushi Enomoto  <atsushi@ximian.com>
3609
3610         * ReplyChannelBase.cs, HttpChannelFactory.cs, ChannelBase.cs
3611           CommunicationObject.cs, HttpChannelListener.cs,
3612           ChannelFactoryBase.cs :
3613           CommunicationObject abstract changes brought this madness.
3614
3615 2006-07-05  Atsushi Enomoto  <atsushi@ximian.com>
3616
3617         * BindingContext.cs : listenUri address parameters could be null in
3618           June CTP.
3619
3620 2006-07-05  Atsushi Enomoto  <atsushi@ximian.com>
3621
3622         * IRequestContext.cs :
3623           Now it became a class. File renaming will follow soon.
3624         * IChannelFactory.cs, IInputChannel.cs, IReplyChannel.cs,
3625           IDuplexChannel.cs, IDuplexSessionChannel.cs,
3626           IOutputChannel.cs, IOutputSessionChannel.cs,
3627           IRequestChannel.cs, IRequestSessionChannel.cs :
3628           They are not IDisposable anymore.
3629           For IReplyChannel, IRequestContext -> RequestContext.
3630         * IChannelListener.cs : removed Identity. Added GetProperty().
3631         * ChannelListenerBase.cs, ChannelListenerBase.cs,
3632           ReplyChannelBase.cs, HttpReplyChannel.cs :
3633           Several members disappeared, and dependent changes.
3634         * HttpTransportBindingElement.cs,
3635           HttpChannelListener.cs, :
3636           ChannelListenerBase.SharedChannelListener vanished.
3637
3638 2006-07-05  Atsushi Enomoto  <atsushi@ximian.com>
3639
3640         * MessageEncodingBindingElement.cs
3641           MtomMessageEncodingBindingElement.cs,
3642           TextMessageEncodingBindingElement.cs,
3643           BinaryMessageEncodingBindingElement.cs :
3644           June CTP updates: AddressingVersion -> MessageVersion.
3645         * Binding.cs : June CTP. MessageVersion is added.
3646         * ChannelBase.cs, BindingContext.cs, IChannel.cs
3647           ChannelListenerBase_1.cs,
3648           ChannelListenerBase.cs, IChannelListener.cs,
3649           IChannelFactory.cs,
3650           ChannelFactoryBase.cs, ChannelManagerBase.cs :
3651           June CTP. Several interface changes.
3652         * HttpTransportBindingElement.cs : June CTP. HttpMappingMode is gone.
3653         * IChannelManager.cs, LayeredChannelListener.cs,
3654           GenericWrapperChannelFactory.cs,
3655           GenericWrapperChannelListener.cs : They are not used anymore.
3656
3657 2006-07-04  Atsushi Enomoto  <atsushi@ximian.com>
3658
3659         * MtomMessageEncoder.cs, BinaryMessageEncoder.cs :
3660           sync fix with June CTP API updates.
3661
3662 2006-07-03  Ankit Jain  <jankit@novell.com>
3663
3664         * MessageEncodingBindingElementConverter.cs:
3665         * StandardBindingConverter.cs:
3666         * TransportBindingElementConverter.cs:
3667         * TransactionFlowBindingElementConverter.cs:
3668         * ReliableSessionBindingElementConverter.cs:
3669         * SecurityBindingElementConverter.cs:
3670         Rename *Converter.cs to *Importer.cs
3671
3672         * TransferMode.cs: Move to System.ServiceModel
3673
3674 2006-06-22  Atsushi Enomoto  <atsushi@ximian.com>
3675
3676         * CommunicationObject.cs : make sure to change State before
3677           OnClosing/OnClosed/OnOpening/OnOpened when they are overriden.
3678
3679 2006-06-20  Atsushi Enomoto  <atsushi@ximian.com>
3680
3681         * Message.cs : output WSAddressing xmlns only when Action is
3682           specified (To should be affected, but seems like it is ignored).
3683
3684 2006-06-20  Atsushi Enomoto  <atsushi@ximian.com>
3685
3686         * MessageImpl.cs : don't set Action when it is null.
3687
3688 2006-06-12  Ankit Jain  <jankit@novell.com>
3689
3690         * TransportBindingElementConverter.cs (ImportEndpoint): Implement.
3691
3692 2006-05-29  Atsushi Enomoto  <atsushi@ximian.com>
3693
3694         * SecurityBindingElement.cs, SecurityBindingElementConverter.cs :
3695           some updated API fixes.
3696
3697 2006-05-29  Atsushi Enomoto  <atsushi@ximian.com>
3698
3699         * EnvelopeVersion.cs : moved back to S.SM.
3700
3701 2006-05-29  Atsushi Enomoto  <atsushi@ximian.com>
3702
3703         * IBindingManualAddressing.cs : vanished in beta2.
3704         * HostedTransportConfiguration.cs, EnvelopeVersion.cs,
3705           LocalClientSecuritySettings.cs, LocalServiceSecuritySettings.cs :
3706           namespace changes.
3707         * SecurityBindingElement.cs :
3708           SecurityStandardsManager -> SecurityTokenSerializer.
3709
3710 2006-05-29  Atsushi Enomoto  <atsushi@ximian.com>
3711
3712         * XmlSerializerBodyWriter.cs : new file to handle 
3713           TypedMessageConverter.ToMessage().
3714
3715 2006-04-26  Ankit Jain  <jankit@novell.com>
3716
3717         * TransportBindingElementConverter.cs (BeforeImport): Remove
3718         NotImplementedException.
3719         (ImportContract): Likewise.
3720         * CustomBinding.cs (.ctor): Use scheme from the binding parameter.
3721
3722 2006-04-14  Atsushi Enomoto  <atsushi@ximian.com>
3723
3724         * HttpRequestChannel.cs, HttpChannelFactory.cs : message encoder 
3725           being used was not reflecting that of Binding elements.
3726
3727 2006-04-07  Atsushi Enomoto  <atsushi@ximian.com>
3728
3729         * HttpReplyChannel.cs : when SOAP action is not set as a header item,
3730           just assume that it is in the message.
3731
3732 2006-04-06  Atsushi Enomoto  <atsushi@ximian.com>
3733
3734         * HttpReplyChannel.cs : actually HTTP header item might be null.
3735
3736 2006-04-06  Atsushi Enomoto  <atsushi@ximian.com>
3737
3738         * HttpReplyChannel.cs : under SOAP 1.1 SOAP Action is sent as HTTP
3739           header.
3740
3741 2006-04-06  Atsushi Enomoto  <atsushi@ximian.com>
3742
3743         * TextMessageEncoder.cs : for SOAP 1.1 content type is text/xml.
3744
3745 2006-04-06  Atsushi Enomoto  <atsushi@ximian.com>
3746
3747         * MessageFault.cs : Fixed SOAP12 reason output.
3748
3749 2006-04-05  Atsushi Enomoto  <atsushi@ximian.com>
3750
3751         * HttpReplyChannel.cs : no need to set response ContentEncoding since
3752           MessageEncoder.ContentType explicitly contains encoding.
3753         * AddressingVersion.cs : added ActionNotSupported property. Not sure
3754           if it is SOAP version dependent.
3755
3756 2006-03-23  Atsushi Enomoto  <atsushi@ximian.com>
3757
3758         * HttpReplyChannel.cs : actually I could just workaround bug #77816.
3759
3760 2006-03-16  Atsushi Enomoto  <atsushi@ximian.com>
3761
3762         * HttpChannelFactory.cs BindingContext.cs
3763           HttpChannelListener.cs HttpTransportBindingElement.cs :
3764           Now BindingContext holds MessageEncoder, and non-custom
3765           channel factory/listener should use it.
3766         * MtomMessageEncodingBindingElement.cs
3767           TextMessageEncodingBindingElement.cs
3768           BinaryMessageEncodingBindingElement.cs : BuildChannelFactory()/
3769           -Listener() now sets internal BindingContext.MessageEncoder.
3770           Fixed some public API.
3771
3772 2006-03-15  Atsushi Enomoto  <atsushi@ximian.com>
3773
3774         * BindingContext.cs : CanBuildChannelXXX() should not raise error
3775           for insufficient elements.
3776         * DispatchRuntime.cs : OperationDescription name is not action. So
3777           OperationSelector is created by name, not by action.
3778         * TextMessageEncodingBindingElement.cs : Feb. CTP API fixes.
3779
3780 2006-03-14  Atsushi Enomoto  <atsushi@ximian.com>
3781
3782         * MessageFaultBodyWriter.cs
3783           XmlReaderBodyWriter.cs
3784           XmlObjectSerializerBodyWriter.cs : made internal.
3785         * SecurityBindingElement.cs
3786           AsymmetricSecurityBindingElement.cs
3787           SymmetricSecurityBindingElement.cs : API fixes.
3788         * TransportBindingElementConverter.cs : ditto.
3789         * TextMessageEncodingBindingElement.cs : added set_AddressingVersion.
3790         * WindowsStreamSecurityBindingElement.cs
3791           SslStreamSecurityBindingElement.cs
3792           TransportSecurityBindingElement.cs : new files.
3793
3794 2006-03-14  Atsushi Enomoto  <atsushi@ximian.com>
3795
3796         * MessageImpl.cs : according to the W3C REC, mustUnderstand when
3797           reading can be any xs:boolean value.
3798
3799 2006-03-14  Atsushi Enomoto  <atsushi@ximian.com>
3800
3801         * Message.cs MessageImpl.cs : more sorting out the role of each
3802           write method.
3803         * MessageHeader.cs : use envelope namespace, not addressing namespace.
3804
3805 2006-03-14  Atsushi Enomoto  <atsushi@ximian.com>
3806
3807         * Message.cs : don't write body contents if it is empty.
3808           Moved WriteStartElement(,"Header",) to OnWriteStartHeaders().
3809         * MessageImpl.cs : implemented XmlReaderMessage.OnWriteBodyContents().
3810         * TextMessageEncoder.cs : WriteMessage() should close XmlWriter.
3811         * HttpRequestChannel.cs : close request stream before GetResponse().
3812
3813 2006-03-13  Atsushi Enomoto  <atsushi@ximian.com>
3814
3815         * TextMessageEncoderFactory.cs
3816           TextMessageEncoder.cs : encoder does not hold reference to the
3817           factory anymore. Use MessageVersion property in CreateMssage().
3818         * HttpChannelListener.cs : now it holds message encoder.
3819         * HttpReplyChannel.cs : now it uses listener's shared message encoder.
3820         * MessageImpl.cs : header is optional.
3821         * EnvelopeVersion.cs : namespace URI is missing.
3822
3823 2006-03-10  Atsushi Enomoto  <atsushi@ximian.com>
3824
3825         * CustomBinding.cs : removed Initialize().
3826         * Message.cs : renamed ForwardingMessage -> XmlReaderMessage.
3827         * MessageImpl.cs : renamed ForwardingMessage to XmlReaderMessage (used
3828           by Message.CreateMessage(MessageVersion,XmlReader,int) and
3829           implemented Headers, IsEmpty and GetReaderAtBodyContents().
3830
3831 2006-03-08  Atsushi Enomoto  <atsushi@ximian.com>
3832
3833         * MessageHeaders.cs : implemented GetReaderAtHeader() and Action (it
3834           could be also added by Add() method and could be reset by Remove()).
3835         * MessageImpl.cs : implemented more. As noted above, Now we don't 
3836           have to add Action header explicitly.
3837         * MessageHeader.cs : recovered Writer methods and ToString() from
3838           commented old version. Use prefixes for writing.
3839           Use WriteObjectContent() rather than WriteObject() (it needs
3840           DataContractSerializer fix btw).
3841
3842 2006-03-08  Atsushi Enomoto  <atsushi@ximian.com>
3843
3844         * MessageHeader.cs : added missing IsReferenceParameter.
3845         * MessageHeaderInfo.cs : added missing IsReferenceParameter.
3846         * MessageHeaders.cs : avoid NullRef when actors is null.
3847         * MessageImpl.cs : (MessageImplBase) add Action header in .ctor().
3848           (ForwardingMessage) reader consumer is being added (not done).
3849         * MtomMessageEncodingBindingElement.cs : simply use Mtom factory.
3850         * MtomMessageEncoder.cs : updated ContentType value to Feb. CTP.
3851         * HttpRequestChannel.cs : this channel automatically call Open()
3852           when Request() is called. Set content length for request.
3853           Use MessageEncoder's ContentType to also handle charset.
3854
3855 2006-03-07  Atsushi Enomoto  <atsushi@ximian.com>
3856
3857         * MessageImpl.cs : make them internal.
3858         * HttpReplyChannel.cs : set HttpListenerResponse properties correctly.
3859
3860 2006-03-07  Atsushi Enomoto  <atsushi@ximian.com>
3861
3862         * ChannelManagerBase.cs : cleanup MonoTODO and unused field.
3863         * HttpChannelListener.cs : removed commented line.
3864         * RequestChannelBase.cs : new base class for request channel classes.
3865         * ChannelListenerBase.cs : OnEndClose() is rather NotImplemented yet.
3866         * HttpReplyChannel.cs : WaitHandle accepts limited timeout value.
3867         * Message.cs : default IsEmpty and IsFault false by default.
3868         * LayeredChannelListener.cs : removed Uri (no chance to set).
3869         * ChannelBase.cs : reimplemented timeout properties.
3870         * HttpRequestChannel.cs : now it is mostly based on
3871           RequestChannelBase. Some more attempt to implement Request().
3872
3873 2006-03-07  Atsushi Enomoto  <atsushi@ximian.com>
3874
3875         * Binding.cs CustomBinding.cs : removed OnApplyConfiguration() and
3876           OnInitialize(). Added more BuildChannelListener() overloads.
3877
3878 2006-03-06  Atsushi Enomoto  <atsushi@ximian.com>
3879
3880         * Binding.cs : added some more missing members especially to support
3881           listener creation.
3882         * HttpChannelListener.cs : Uri should not be null.
3883         * HttpTransportBindingElement.cs : implemented
3884           CanBuildChannelFactory() and CanBuildChannelListener().
3885         * ServiceHostBase.cs : make Initialize() practically work at OnOpen().
3886
3887 2006-03-06  Atsushi Enomoto  <atsushi@ximian.com>
3888
3889         * Binding.cs : updated default namespace property value to Feb. CTP.
3890
3891 2006-03-03  Atsushi Enomoto  <atsushi@ximian.com>
3892
3893         * AddressHeader.cs : avoid null reference when value is null.
3894         * BindingContext.cs : check null ListenUri args.
3895
3896 2006-03-03  Atsushi Enomoto  <atsushi@ximian.com>
3897
3898         * MessageFault.cs : Fixed default action name. Null arg check.
3899
3900 2006-03-03  Atsushi Enomoto  <atsushi@ximian.com>
3901
3902         * BindingElement.cs : Dequeue elements in BindingContext directly.
3903         * BindingContext.cs : Added GetProperty<T>().
3904         * GenericWrapperChannelFactory.cs GenericWrapperChannelListener.cs :
3905           Now we don't need these extra classes, so marked as deprecated.
3906
3907 2006-03-03  Atsushi Enomoto  <atsushi@ximian.com>
3908
3909         * Binding.cs : null arg check.
3910         * AddressingVersion.cs : fixed constants to pass the tests.
3911         * BindingElement.cs : tiny meessage fix.
3912
3913 2006-03-02  Atsushi Enomoto  <atsushi@ximian.com>
3914
3915         * MessageEncodingBindingElement.cs
3916           BinaryMessageEncodingBindingElement.cs
3917           TextMessageEncodingBindingElement.cs
3918           MtomMessageEncodingBindingElement.cs
3919           MessageEncodingBindingElementConverter.cs : several API fixes.
3920         * BindingElement.cs : now if we use generic wrapper it causes
3921           infinite loop, so for now replace it with most-possible-but-
3922           untested logic.
3923
3924 2006-03-02  Atsushi Enomoto  <atsushi@ximian.com>
3925
3926         (back to normal "record-ChangeLogs" mode after the big API change mess)
3927         * HttpTransportBindingElement.cs : fixed minor API differences.
3928
3929 2006-02-23  Atsushi Enomoto  <atsushi@ximian.com>
3930
3931         * AsymmetricSecurityBindingElement.cs SecurityBindingElement.cs
3932           SymmetricSecurityBindingElement.cs :
3933           Dependent fixes for System.IdentityModel reorgainzation.
3934
3935 2006-02-23  Atsushi Enomoto  <atsushi@ximian.com>
3936
3937         * InputChannelBase.cs.notused IInputSession.cs IOutputSession.cs
3938           IProxyFormatter.cs WSHttpBindingBase.cs 
3939           PnrpPeerResolverBindingElement.cs IMessageHeaderInfo.cs
3940           MessageInterceptorEventArgs.cs WSHttpBinding.cs
3941           WSFederationBinding.cs ISessionChannel.cs
3942           CompositeDuplexBindingElement.cs MessageVersion.cs
3943           MessageHeader.cs IRequestSessionChannel.cs 
3944           BindingElementCollection.cs IReplySessionChannel.cs
3945           MessageProperties.cs IDuplexClientChannel.cs
3946           IInputSessionChannel.cs MessageImpl.cs IDuplexSessionChannel.cs
3947           TcpTransportBindingElement.cs EmptyFaultException.cs
3948           IBindingRuntimePreferences.cs AddressHeaderCollection.cs
3949           IStubFormatter.cs AsymmetricSecurityBindingElement.cs
3950           ConnectionOrientedTransportBindingElement.cs
3951           IProxyOperationSelector.cs MessageBuffer.cs IChannel.cs
3952           PeerResolverBindingElement.cs Message.cs
3953           HttpsTransportBindingElement.cs BindingElement.cs
3954           NamedPipetransportBindingElement.cs IBindingManualAddressing.cs
3955           MessageFaultBodyWriter.cs IReplyChannel.cs
3956           IBindingCapabilities.cs AddressHeader.cs IInputChannel.cs
3957           IMessageProperty.cs IOutputChannel.cs NetPeerTcpBinding.cs
3958           IRequestContext.cs IInputSessionShutdown.cs
3959           SecurityBindingElement.cs PeerTransportBindingElement.cs
3960           IDuplexSession.cs IChannelInitializer.cs
3961           IProxyMessageInspector.cs IChannelListener.cs NetTcpBinding.cs
3962           AddressingVersion.cs FaultException.cs
3963           IRequestChannel.cs MtomMessageEncodingBindingElement.cs
3964           TransportBindingElement.cs BinaryMessageEncodingBindingElement.cs
3965           TextMessageEncodingBindingElement.cs IChannelFactory.cs Binding.cs
3966           ITransportBindingElement.cs IChannelManager.cs MessageFault.cs
3967           MessageHeaders.cs IStubMessageInspector.cs UnderstoodHeaders.cs
3968           BindingParameterCollection.cs IInstanceProvider.cs
3969           WSDualHttpBinding.cs ISession.cs IErrorHandler.cs
3970           MessageEncodingBindingElement.cs HttpTransportBindingElement.cs
3971           IDuplexChannel.cs CustomBinding.cs IOutputSessionChannel.cs
3972           MessageContractAttribute.cs SymmetricSecurityBindingElement.cs :
3973           moved from System.ServiceModel due to the API changes.
3974
3975 2006-02-23  Atsushi Enomoto  <atsushi@ximian.com>
3976
3977         * ChannelFactoryBase.cs ChannelListenerBase.cs HttpChannelFactory.cs
3978           HttpChannelListener.cs HttpRequestChannel.cs
3979           LayeredChannelListener.cs PeerMessagePropagationFilter.cs
3980           PeerNode.cs ReplyChannelBase.cs :
3981           Feb. CTP API changes - chapter 1.
3982
3983 2006-02-15  Atsushi Enomoto  <atsushi@ximian.com>
3984
3985         * ChannelBase.cs : OnOpen() and OnClosed() do nothing.
3986         * ReplyChannelBase.cs : now it is based on ChannelBase.
3987         * ChannelListenerBase_1.cs : use DefaultCommunicationTimeouts.Instance
3988           and check null argument in .ctor().
3989         * HttpReplyChannel.cs : several changes.
3990           Non-async members are mostly implemented.
3991         * HttpChannelListener.cs : no need to receive 
3992           IDefaultCommunicationTimeouts.
3993         * HttpRequestChannel.cs : maxSizeOfHeaders is used in MessageHeaders
3994           to allocate buffer array and int.MaxValue causes OutOfMemory.
3995
3996 2006-02-15  Atsushi Enomoto  <atsushi@ximian.com>
3997
3998         * ClientFramingDecoderState.cs : added missing enum.
3999         * HttpRequestMessageProperty.cs HttpResponseMessageProperty.cs :
4000           added missing bits.
4001         * ChannelBase.cs, LayeredChannelListener.cs : tiny API fixes.
4002
4003 2006-02-15  Atsushi Enomoto  <atsushi@ximian.com>
4004
4005         * HttpChannelListener.cs : Added GetChannels() and OnClose().
4006           AcceptChannel() has some code now but it needs more love.
4007
4008 2006-02-14  Atsushi Enomoto  <atsushi@ximian.com>
4009
4010         * CommunicationObject.cs : Close() does not call Begin/EndClose().
4011         * ChannelManagerBase.cs : implemented AbortChannel and CloseChannel.
4012         * ChannelListenerBase.cs : implemented OnAbort and OnClose.
4013
4014 2006-02-10  Atsushi Enomoto  <atsushi@ximian.com>
4015
4016         * HttpRequestChannel.cs : close the streams.
4017         * HttpListener.cs
4018           HttpChannelListener.cs : renamed from former to latter.
4019
4020 2006-02-09  Atsushi Enomoto  <atsushi@ximian.com>
4021
4022         * ReplyChannelBase.cs : new file for IReplyChannel implementations.
4023         * HttpReplyChannel.cs : new file for HTTP IReplyChannel.
4024         * HttpListenerFactory.cs : removed obsolete file.
4025         * HttpListener.cs : hacky WaitForChannel and AcceptChannel.
4026         * ChannelListenerBase_1.cs : implemented virtual stuff.
4027         * CommunicationObject.cs : Open() should not call BeginOpen() and
4028           EndOpen(). Instead, invoke events individually.
4029         * ChannelListenerBase.cs : its Open() is WaitForChannel().
4030
4031 2006-02-08  Atsushi Enomoto  <atsushi@ximian.com>
4032
4033         * HttpRequestChannel.cs : call Flush() after serializing message
4034           into HTTP stream.
4035
4036 2006-02-08  Atsushi Enomoto  <atsushi@ximian.com>
4037
4038         * HttpRequestChannel.cs : implemented pretty hacky Request().
4039
4040 2006-02-02  Atsushi Enomoto  <atsushi@ximian.com>
4041
4042         * HttpRequestChannel.cs : Manager is HttpChannelFactory.
4043
4044 2006-02-01  Atsushi Enomoto  <atsushi@ximian.com>
4045
4046         * ChannelFactoryBase.cs : removed some NotImplementedException for
4047           further internal implementation.
4048
4049 2006-01-26  Atsushi Enomoto  <atsushi@ximian.com>
4050
4051         * HttpRequestChannel.cs : new file. mostly not implemented.
4052         * HttpChannelFactory.cs : Implemented CanCreateChannel().
4053           Partly implemented CreateChannel().
4054
4055 2006-01-26  Atsushi Enomoto  <atsushi@ximian.com>
4056
4057         * HttpChannelFactory.cs : (.ctor())
4058           Don't take ChannelBuildContext.
4059
4060 2005-11-21  Atsushi Enomoto  <atsushi@ximian.com>
4061
4062         * StreamSecurityUpgradeInitiator.cs PeerMessageOrigination.cs
4063           ChannelBase.cs StreamSecurityUpgradeAcceptor.cs
4064           PeerMessagePropagation.cs : updated to Nov. CTP.
4065
4066 2005-11-21  Atsushi Enomoto  <atsushi@ximian.com>
4067
4068         * ChannelListenerBase.cs, ChannelManagerBase.cs,
4069           ChannelListenerBase_1.cs, LayeredChannelListener.cs,
4070           StreamSecurityUpgradeAcceptor.cs,
4071           StreamSecurityUpgradeInitiator.cs :
4072           Updated to Nov. CTP API.
4073
4074 2005-11-21  Atsushi Enomoto  <atsushi@ximian.com>
4075
4076         Now we can rename ListenerFactoryBase.cs to ChannelListenerBase.cs.
4077
4078 2005-11-21  Atsushi Enomoto  <atsushi@ximian.com>
4079
4080         renamed ChannelListenerBase.cs to ChannelListenerBase_1.cs.
4081
4082 2005-11-21  Atsushi Enomoto  <atsushi@ximian.com>
4083
4084         * ChannelBase.cs : tiny filename fix.
4085         * ChannelListenerBase.cs : added more .ctor()s.
4086
4087 2005-11-21  Atsushi Enomoto  <atsushi@ximian.com>
4088
4089         * HttpListenerFactory.cs LayeredChannelListener.cs HttpListener.cs
4090           ListenerFactoryBase.cs ChannelListenerBase.cs :
4091           updated IListener related stuff to Nov. CTP.
4092           file renaming will come soon.
4093
4094 2005-11-21  Atsushi Enomoto  <atsushi@ximian.com>
4095
4096         * ListenerBase.cs, ChannelListenerBase.cs :
4097           moved from former to latter.
4098         * LayeredListenerFactory.cs, LayeredChannelListener.cs :
4099           moved from former to latter.
4100
4101 2005-11-20  Atsushi Enomoto  <atsushi@ximian.com>
4102
4103         * SessionFaultedException.cs : removed in Nov. CTP
4104
4105 2005-11-20  Atsushi Enomoto  <atsushi@ximian.com>
4106
4107         * CommunicationObject.cs : updated to Nov. CTP.
4108         * SessionFaultedException.cs : removed (in Nov. CTP)
4109
4110 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
4111
4112         * TextMessageEncoder.cs : kinda implemented (untested; Message is not
4113           working).
4114
4115 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
4116
4117         * MtomMessageEncoder.cs, BinaryMessageEncoderFactory.cs,
4118           TextMessageEncoderFactory.cs, BinaryMessageEncoder.cs,
4119           TextMessageEncoder.cs, MtomMessageEncoderFactory.cs : new files.
4120         * MessageEncoder.cs : largely implemented.
4121
4122 2005-11-02  Atsushi Enomoto  <atsushi@ximian.com>
4123
4124         * IRequestReplyCorrelator.cs : new file.
4125
4126 2005-11-02  Atsushi Enomoto  <atsushi@ximian.com>
4127
4128         * CommunicationObject.cs : OnClose() and OnError() are not virtual.
4129         * DirectionalAction.cs : implemented IComparable<DirectionalAction>.
4130         * MessageEncoder.cs : added misssing ToString().
4131
4132 2005-11-02  Atsushi Enomoto  <atsushi@ximian.com>
4133
4134         * ChannelBehaviorCollection.cs : moved to sys.sm.
4135
4136 2005-10-28  Atsushi Enomoto  <atsushi@ximian.com>
4137
4138         * HttpListenerFactory.cs, HttpListener.cs : new files.
4139         * ListenerFactoryBase.cs, ChannelManagerBase.cs,
4140           CommunicationObject.cs, ChannelFactoryBase.cs,
4141           StreamUpgradeProvider.cs, ChannelBase.cs : timeouts are now
4142           protected internal.
4143         * CommunicationObject.cs : Aborted is bool. Added InternalClose()
4144         * ListenerFactoryBase.cs : kinda implemented GetListeners().
4145
4146 2005-10-26  Atsushi Enomoto  <atsushi@ximian.com>
4147
4148         * ListenerFactoryBase.cs : some implementation.
4149
4150 2005-10-26  Atsushi Enomoto  <atsushi@ximian.com>
4151
4152         * CommunicationObject.cs : more state fixes.
4153
4154 2005-10-26  Atsushi Enomoto  <atsushi@ximian.com>
4155
4156         * CommunicationObject.cs : some state machine fixes.
4157
4158 2005-10-26  Atsushi Enomoto  <atsushi@ximian.com>
4159
4160         * PeerNode.cs, ChannelManagerBase.cs :
4161           several API fixes detected by improved corcompare.
4162
4163 2005-10-25  Atsushi Enomoto  <atsushi@ximian.com>
4164
4165         * LayeredListenerFactory.cs : added missing generic class constraint.
4166
4167 2005-10-25  Atsushi Enomoto  <atsushi@ximian.com>
4168
4169         * ListenerFactoryBase.cs,
4170           ListenerBase.cs : class constraints were missing for generic args.
4171
4172 2005-10-24  Atsushi Enomoto  <atsushi@ximian.com>
4173
4174         * StreamUpgradeInitiator.cs : tiny API fix.
4175
4176 2005-10-23  Atsushi Enomoto  <atsushi@ximian.com>
4177
4178         * PeerMessagePropagationFilter.cs : tiny build fix.
4179
4180 2005-10-23  Atsushi Enomoto  <atsushi@ximian.com>
4181
4182         * HttpRequestMessageProperty.cs, HttpResponseMessageProperty.cs :
4183           added Name. fixed StatusCode type.
4184         * StreamSecurityUpgradeInitiator.cs, StreamUpgradeAcceptor.cs,
4185           PeerNode.cs, StreamSecurityUpgradeAcceptor.cs,
4186           StreamUpgradeProvider.cs, StreamUpgradeInitiator.cs,
4187           DirectionalAction.cs, HostedTransportConfiguration.cs,
4188           StreamSecurityUpgradeProvider.cs, SessionFaultedException.cs,
4189           PeerMessagePropagationFilter.cs : added missing files.
4190         * Dummy.cs : removed. MSMQ stuff can be added later.
4191
4192 2005-10-21  Atsushi Enomoto  <atsushi@ximian.com>
4193
4194         * DeliveryStatus.cs, DeliveryFailure.cs,
4195           HttpRequestMessageProperty.cs, PeerMessageOrigination.cs,
4196           PeerMessagePropagation.cs, HttpResponseMessageProperty.cs :
4197           new files.
4198         * Dummy.cs : removed above.
4199
4200 2005-10-18  Atsushi Enomoto  <atsushi@ximian.com>
4201
4202         * ChannelFactoryBase.cs : tiny .ctor() delegation fix.
4203
4204 2005-10-09  Atsushi Enomoto  <atsushi@ximian.com>
4205
4206         * MessageEncoderFactory.cs, LayeredListenerFactory.cs,
4207           MessageEncoder.cs, BufferManager.cs : new files.
4208         * Dummy.cs : removed above.
4209
4210 2005-10-09  Atsushi Enomoto  <atsushi@ximian.com>
4211
4212         * ChannelBase.cs, ChannelBehaviorCollection.cs : new channel files.
4213         * Dummy.cs : removed above.
4214         * CommunicationObject.cs, ListenerFactoryBase.cs : added missing bits.
4215
4216 2005-10-09  Atsushi Enomoto  <atsushi@ximian.com>
4217
4218         * HttpChannelFactory.cs : new file.
4219
4220 2005-10-08  Atsushi Enomoto  <atsushi@ximian.com>
4221
4222         * IReplyChannel.cs, IRequestContext.cs, IRequestChannel.cs:
4223           moved to ../System.ServiceModel (correct location).
4224         * ChannelFactoryBase.cs, LayeredChannelFactory.cs, TransferMode.cs:
4225           new files for channels.
4226         * Dummy.cs : reflected above changes.
4227         * ChannelManagerBase.cs : added a bit of code and todos.
4228
4229 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
4230
4231         * ChannelManagerBase.cs, ListenerBase.cs, ListenerFactoryBase.cs :
4232           added listener support files.
4233         * Dummy.cs : removed above.
4234
4235 2005-10-03  Atsushi Enomoto  <atsushi@ximian.com>
4236
4237         * IReplyChannel.cs, IRequestContext.cs, IRequestChannel.cs :
4238           added request/reply channel interfaces.
4239         * Dummy.cs : removed above.
4240         * CommunicationObject.cs : FIXME comments.
4241
4242 2005-10-03  Atsushi Enomoto  <atsushi@ximian.com>
4243
4244         * CommunicationObject.cs : implemented some members.
4245
4246 2005-09-29  Atsushi Enomoto  <atsushi@ximian.com>
4247
4248         * CommunicationObject.cs : some signature fixes.
4249