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