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