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