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