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