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