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