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