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