2009-05-21 Atsushi Enomoto <atsushi@ximian.com>
[mono.git] / mcs / class / System.ServiceModel / System.ServiceModel.Channels / ChangeLog
1 2009-05-21  Atsushi Enomoto  <atsushi@ximian.com>
2
3         * DuplexSessionBase.cs : new file, for session implementation.
4         * TcpDuplexSessionChannel.cs, PeerDuplexChannel.cs,
5           DuplexSessionChannelBase.cs : changed sync/async implementation
6           pattern. Now async methods call sync methods using delegates.
7
8 2009-05-21  Atsushi Enomoto  <atsushi@ximian.com>
9
10         * InputChannelBase.cs, TransportBindingElement.cs, RequestContext.cs:
11           a few minor API fixes.
12
13 2009-05-21  Atsushi Enomoto  <atsushi@ximian.com>
14
15         * MessageEncoderFactory.cs : implement CreateSessionEncoder().
16
17 2009-05-19  Atsushi Enomoto  <atsushi@ximian.com>
18
19         * TcpDuplexSessionChannel.cs : add To header.
20
21 2009-05-19  Atsushi Enomoto  <atsushi@ximian.com>
22
23         * MessageFault.cs : fix several SOAP12 fault deserialization in xml
24           parsing.
25
26 2009-05-18  Atsushi Enomoto  <atsushi@ximian.com>
27
28         * FaultConverter.cs : avoid NRE for null IncomingMessageHeaders.
29
30 2009-05-15  Atsushi Enomoto  <atsushi@ximian.com>
31
32         * MessageFault.cs : Reason is mandatory. raise XmlException, and
33           CommunicationException in each CreateFault().
34
35 2009-05-15  Atsushi Enomoto  <atsushi@ximian.com>
36
37         * TcpDuplexSessionChannel.cs : on listener side, get TcpClient at
38           Open(). Some (but not all yet) continuous communication works now.
39           Use ProtocolException. Remove dummy binary session string.
40
41 2009-05-14  Atsushi Enomoto  <atsushi@ximian.com>
42
43         * TcpDuplexSessionChannel.cs : more [MC-NMF] implementation. Moved
44           sending/receiving SizedMessageRecord parts to manager class.
45           Handle writer session, though it is likely broken at dictionary
46           writer part (no string is written so far).
47         * BinaryMessageEncoder.cs : add writer session and rename reader
48           session.
49
50 2009-05-14  Atsushi Enomoto  <atsushi@ximian.com>
51
52         * TcpDuplexSessionChannel.cs : more [MC-NMF] implementation. Via uri
53           is mandatory in initiator preamble packet. Handle Fault reply in
54           initiator preamble.
55
56 2009-05-14  Atsushi Enomoto  <atsushi@ximian.com>
57
58         * TcpDuplexSessionChannel.cs : ongoing refactoring to collect [MC-NMF]
59           based communication under TcpBinaryFrameManager class.
60
61 2009-05-13  Jb Evain  <jbevain@novell.com>
62
63         * MessageHeader.cs: use a SL friendly way of creating an XmlReader
64         from a StringReader.
65
66 2009-05-13  Atsushi Enomoto  <atsushi@ximian.com>
67
68         * MessageImpl.cs, MessageHeader.cs : eliminate xlinq in 2.1, and
69           actually eliminate DOM-based implementation too in 2.0.
70
71 2009-04-28  Atsushi Enomoto  <atsushi@ximian.com>
72
73         * TcpDuplexSessionChannel.cs : implement in-band dictionary support
74           in [MC-NMF] and [MC-NBFSE], used in duplex channels. Added some
75           comments for magic numbers based on [MC-NMF].
76
77 2009-04-28  Atsushi Enomoto  <atsushi@ximian.com>
78
79         * BinaryMessageEncoder.cs : implement part of in-band dictionary
80           support for [MC-NBFSE] record in [MC-NMF], in this class.
81
82 2009-04-28  Atsushi Enomoto  <atsushi@ximian.com>
83
84         * BinaryMessageEncodingBindingElement.cs : clear extra public members.
85
86 2009-04-27  Atsushi Enomoto  <atsushi@ximian.com>
87
88         * TcpDuplexSessionChannel.cs : implemented some channel methods.
89
90 2009-04-27  Atsushi Enomoto  <atsushi@ximian.com>
91
92         * BinaryMessageEncoder.cs : use XmlDictionary specified as [MC-NBFS].
93
94 2009-04-27  Atsushi Enomoto  <atsushi@ximian.com>
95
96         * ChannelManagerBase.cs : implement Open/CloseTimeout correctly.
97
98 2009-04-23  Atsushi Enomoto  <atsushi@ximian.com>
99
100         * BinaryMessageEncoder.cs : use quotas in binding element.
101           Implement WriteMessage().
102
103 2009-04-22  Atsushi Enomoto  <atsushi@ximian.com>
104
105         * PeerCustomResolverBindingElement.cs : do initialize field.
106
107 2009-04-21  Atsushi Enomoto  <atsushi@ximian.com>
108
109         * PeerCustomResolverBindingElement.cs :
110           implement full custom resolver.
111
112 2009-04-21  Atsushi Enomoto  <atsushi@ximian.com>
113
114         * PeerDuplexChannel.cs, PeerChannelListener.cs,
115           PeerOutputChannel.cs, PeerCustomResolverBindingElement.cs,
116           PeerChannelFactory.cs : ongoing p2p channel implementation.
117
118 2009-04-21  Atsushi Enomoto  <atsushi@ximian.com>
119
120         * PnrpPeerResolverBindingElement.cs : sync with PeerResolver changes.
121
122 2009-04-21  Atsushi Enomoto  <atsushi@ximian.com>
123
124         * BinaryMessageEncodingBindingElement.cs, ChannelBase.cs,
125           ChannelFactoryBase.cs, WindowsStreamSecurityBindingElement.cs :
126           implement GetProperty<T>(). Return documented objects or null.
127
128 2009-04-20  Atsushi Enomoto  <atsushi@ximian.com>
129
130         * PeerChannelFactory.cs, PeerChannelListener.cs,
131           PeerCustomResolverBindingElement.cs, PeerDuplexChannel.cs
132           PeerInputChannel.cs, PeerOutputChannel.cs :
133           new; ongoing peer transport implementation.
134         * DuplexSessionChannelBase.cs, InputChannelBase.cs
135           MsmqOutputChannel.cs, OutputChannelBase.cs,
136           PeerResolverBindingElement.cs, PeerTransportBindingElement.cs,
137           PnrpPeerResolverBindingElement.cs, TcpDuplexSessionChannel.cs :
138           several internal changes (either required or for simplification)
139           for ongoing peer transport implementation.
140
141 2009-04-08  Atsushi Enomoto  <atsushi@ximian.com>
142
143         * PeerTransportBindingElement.cs : ListenIPAddress is IPAddress.
144
145 2009-04-07  Atsushi Enomoto  <atsushi@ximian.com>
146
147         * TcpTransportBindingElement.cs : check build-ability before
148           actually building channels.
149         * ConnectionOrientedTransportBindingElement.cs : fixed build-ability
150           conditions according to MSDN.
151
152 2009-03-05  Atsushi Enomoto  <atsushi@ximian.com>
153
154         * MessageHeader.cs, MessageHeaders.cs, MessageImpl.cs :
155           handle headers in SL2. Slightly changed 3.0 code too.
156
157 2009-03-04  Atsushi Enomoto  <atsushi@ximian.com>
158
159         * HttpRequestChannel.cs : use cross domain access manager.
160
161 2009-02-27  Atsushi Enomoto  <atsushi@ximian.com>
162
163         * Message.cs : (in CreateBufferedCopy) do not pass the entire
164           message as BodyWriter.
165           (in GetReaderAtBodyContents) just write body contents.
166         * MessageImpl.cs : do not try to read body at ctor (fixed tons
167           of test failures).
168           Add some state check in GetReaderAtBodyContents().
169         * XmlReaderBodyWriter.cs : avoid possible extra xmldecl onto output.
170
171 2009-02-18  Atsushi Enomoto  <atsushi@ximian.com>
172
173         * Message.cs : do not forget to flush.
174         * HttpRequestChannel.cs : give more exact error info.
175
176 2009-02-18  Atsushi Enomoto  <atsushi@ximian.com>
177
178         * Message.cs, MessageBufferImpl.cs, XmlReaderBodyWriter.cs :
179           make buffered copy in ML2 really buffered.
180
181 2009-02-12  Atsushi Enomoto  <atsushi@ximian.com>
182
183         * Message.cs : if there is no header item to write, do not write
184           SOAP header element.
185
186 2009-01-22  Alan McGovern  <amcgovern@novell.com>
187
188         * MessageHeaders.cs : List<T>.RemoveAll(Predicate<T>) doesn't exist in Silverlight.
189         Rewrite to avoid usage of it.
190
191 2009-01-14  Atsushi Enomoto  <atsushi@ximian.com>
192
193         * ChannelParameterCollection.cs : implement, rather than NIE.
194
195 2008-05-22  Noam Lampert <noaml@mainsoft.com>
196
197         * MessageFault.cs: Correctly serialize ExceptionDetails. Expose SimpleMessageFault to allow
198           internal users to know the type of the detail. 
199         
200 2008-05-20  Noam Lampert <noaml@mainsoft.com>
201
202         * Message.c: Use private setter for state private variable to ease debugging.
203                                  Modify ToString not to change the state, as it is called quite often by VS debugger
204                                  
205 2008-04-21  Roei Erez <roeie@mainsoft.com>
206
207         * HttpChannleManager: Fix for multithreaded use.
208         * HttpReplyChannel: Fix crash during sutdown.
209
210 2008-04-17  Igor Zelmanovich <igorz@mainsoft.com>
211
212         * HttpChannleManager: ensure trailing slash in uri.
213
214 2008-04-17  Vladimir Krasnov  <vladimirk@mainsoft.com>
215
216         * added: HttpChannleManager,
217         * HttpChannelListener: added use of HttpChannelManager
218
219 2008-04-17  Vladimir Krasnov  <vladimirk@mainsoft.com>
220
221         * MessageEncodingBindingElement.cs: fixed ctor
222
223 2008-04-17  Vladimir Krasnov  <vladimirk@mainsoft.com>
224
225         * XmlReaderBodyWriter.cs: fixed ctor, skip xml declaration
226
227 2008-04-17  Vladimir Krasnov  <vladimirk@mainsoft.com>
228
229         * HttpReplyChannel.cs: fixed TryReceiveRequest, fix message header To
230
231 2008-04-17  Vladimir Krasnov  <vladimirk@mainsoft.com>
232
233         * MessageFault.cs: fixed CreateFault11, implemented "detail"
234
235 2008-04-17  Noam Lampert <noaml@mainsoft.com>
236
237         * HttpReplyChannel.cs: fix API - Fix crash during service shutdown.
238
239 2008-04-13  Igor Zelmanovich <igorz@mainsoft.com>
240
241         * BindingElementCollection.cs: fix API - .ctor's signature.
242
243 2008-04-10  Eyal Alaluf <eyala@mainsoft.com>
244
245         * XmlSerializerBodyWriter.cs: Removed.
246
247 2008-03-25  Vladimir Krasnov  <vladimirk@mainsoft.com>
248
249         * MessageFault.cs: fixed WriteReason, .net XmlWriter compatible
250
251 2008-02-20  Atsushi Enomoto  <atsushi@ximian.com>
252
253         * DuplexSessionChannelBase.cs : made it non-session (more reusable).
254         * TcpChannelFactory.cs, TcpChannelListener.cs :
255           unify factory and listener into TcpChannelInfo for use in
256           TCP channel implementation. Do not store stream in the listener.
257           Factory now uses BinaryMessageEncoder.
258         * TcpDuplexSessionChannel.cs : changes explained above, and now it
259           holds TcpClient that the listener has accepted.
260
261           tcp-transport-binding-element sample now communicates (though
262           only when both sides are mono: there seems binary mismatch).
263
264 2008-02-20  Atsushi Enomoto  <atsushi@ximian.com>
265
266         * TcpTransportBindingElement.cs, TcpConnectionPoolSettings.cs :
267           clone connection pool settings too.
268         * NamedPipetransportBindingElement.cs,
269           NamedPipeConnectionPoolSettings.cs : let's clean them up too (not
270           being likely implemented though).
271
272 2008-02-20  Atsushi Enomoto  <atsushi@ximian.com>
273
274         * ConnectionOrientedTransportBindingElement.cs, 
275           TcpTransportBindingElement.cs : some API updates.
276           Initialize default values.
277         * TcpConnectionPoolSettings.cs : new file.
278
279 2008-02-18  Atsushi Enomoto  <atsushi@ximian.com>
280
281         * ServiceHostParser.cs, SvcHttpHandlerFactory.cs, SvcHttpHandler.cs:
282           added support for "factory" attribute.
283
284 2008-02-15  Atsushi Enomoto  <atsushi@ximian.com>
285
286         * HttpRequestContent.cs : consider HttpResponseMessageProperty.
287
288 2008-02-15  Atsushi Enomoto  <atsushi@ximian.com>
289
290         * HttpRequestChannel.cs : pass response ContentType to ReadMessage().
291
292 2008-02-15  Atsushi Enomoto  <atsushi@ximian.com>
293
294         * HttpRequestChannel.cs : create WebRequest against To message header
295           item (if exists).
296           Consider HttpRequestMessageProperty.
297           Do not output body when suppressed or the method is GET.
298
299 2008-02-15  Atsushi Enomoto  <atsushi@ximian.com>
300
301         * HttpChannelListener.cs : BindingContext may not have listenUri
302           at its .ctor() step.
303
304 2008-02-08  Atsushi Enomoto  <atsushi@ximian.com>
305
306         * BindingContext.cs : RemainingBindingElements is not just a dummy
307           collection but is actually user-controlled.
308
309 2008-02-08  Atsushi Enomoto  <atsushi@ximian.com>
310
311         * TcpChannelFactory.cs, TcpChannelListener.cs, 
312           HttpChannelFactory.cs, HttpChannelListener.cs,
313           MsmqChannelFactory.cs, MsmqChannelListener.cs,
314           TextMessageEncodingBindingElement.cs,
315           BinaryMessageEncodingBindingElement.cs,
316           MtomMessageEncodingBindingElement.cs :
317           message encoder should be retrieved only through public API.
318         * BindingContext.cs : so my old guess was wrong.
319
320         See also: http://blogs.msdn.com/drnick/archive/2006/05/10/594134.aspx
321
322 2008-02-05  Atsushi Enomoto  <atsushi@ximian.com>
323
324         * HttpTransportBindingElement.cs : implemented copy constructor.
325
326 2007-08-20  Atsushi Enomoto  <atsushi@ximian.com>
327
328         * HttpRequestChannel.cs, HttpReplyChannel.cs : treat SOAPAction HTTP
329           header when AddressingVersion is None.
330
331 2007-08-20  Atsushi Enomoto  <atsushi@ximian.com>
332
333         * MessageHeaders.cs : AddressingVersion.None rejects some WSA
334           property setters.
335
336 2007-08-19  Atsushi Enomoto  <atsushi@ximian.com>
337
338         * OneWayBindingElementImporter.cs
339           CompositeDuplexBindingElementImporter.cs : new files.
340
341 2007-08-17  Atsushi Enomoto  <atsushi@ximian.com>
342
343         * MessageHeaders.cs : due to the DataContractSerializer.ReadObject()
344           semantic change, its bool parameter must be false, not true.
345
346 2007-07-13  Atsushi Enomoto  <atsushi@ximian.com>
347
348         * InputChannelBase.cs, MsmqChannelListener.cs, MsmqInputChannel.cs :
349           new files. Msmq transport listener Implementation.
350         * MsmqOutputChannel.cs : implemented Send(). Not sure if it works
351           (wait for System.Messaging impl.)
352         * HttpReplyChannel.cs : added comment
353
354 2007-07-06  Atsushi Enomoto  <atsushi@ximian.com>
355
356         * MsmqChannelFactory.cs MsmqOutputChannel.cs OutputChannelBase.cs :
357           new files. internal stuff for msmq channel.
358         * BinaryMessageEncoder.cs : added another .ctor().
359         * MsmqTransportBindingElement.cs :
360           implemented [Can]BuildChannelFactory().
361
362 2007-07-06  Atsushi Enomoto  <atsushi@ximian.com>
363
364         * MsmqBindingElementBase.cs MsmqTransportBindingElement.cs :
365           initialize some fields.
366
367 2007-07-05  Atsushi Enomoto  <atsushi@ximian.com>
368
369         * MsmqBindingElementBase.cs MsmqMessageProperty.cs
370           MsmqTransportBindingElement.cs ITransactedBindingElement.cs :
371           couple of msmq stubs.
372
373 2007-04-02  Atsushi Enomoto  <atsushi@ximian.com>
374
375         * SecureMessageGenerator.cs : SecurityContextToken support (though
376           it is still regarded as invalid by WCF).
377
378 2007-03-13  Atsushi Enomoto  <atsushi@ximian.com>
379
380         * WSSecurityMessageHeader.cs, SecureMessageGenerator.cs :
381           make header.Contents.Add() more strict.
382           Use HasAsymmetricKey to determine whether to use asymmetric algorithm
383           or not.
384           Added some hack to allow ssl token external mode.
385           Commented out such lines that always premised asymmtric key.
386
387 2007-03-08  Atsushi Enomoto  <atsushi@ximian.com>
388
389         * TransactionFlowBindingElement.cs : forgot necessary Clone().
390
391 2007-03-08  Atsushi Enomoto  <atsushi@ximian.com>
392
393         * MessageSecurityBindingSupport.cs : support check to create
394           authenticator is now done in both initiator/recipient sides.
395         * SecurityRequestContext.cs : don't encrypt WS-Trust RSTR.
396
397 2007-03-07  Atsushi Enomoto  <atsushi@ximian.com>
398
399         * MessageSecurityBindingSupport.cs : for now, comment out the code
400           that makes authenticator creation optional.
401         * SecurityRequestContext.cs : don't decrypt message when it is
402           WS-Trust messages. Also, do not secure SOAP Fault (it is likely
403           to fail).
404         * SecurityChannelListener.cs : GetProperty<T>() now returns
405           MessageSecurityBindingSupport when requested. It is used by
406           EndpointDispatcher to check if it supports WS-Trust negotiation.
407         * ChannelListenerBase.cs :
408           removed extra TODO and field. Implemented GetProperty<T>().
409         * Message.cs : In CreateMessage() for SOAP Fault, create
410           SimpleMessage with IsFault = true.
411
412 2007-03-07  Atsushi Enomoto  <atsushi@ximian.com>
413
414         * SecurityRequestContext.cs : try to reply fault with the inner
415           channel when an error occurred internally.
416         * FaultConverter.cs : implemented based on OperationContext (at normal
417           state it does not seem to create messages, so I implemented it this
418           way).
419
420 2007-03-07  Atsushi Enomoto  <atsushi@ximian.com>
421
422         * TransportBindingElement.cs : implemented GetProperty<T>().
423         * TransactionFlowBindingElement.cs : on building factory or listener,
424           reject channel types that cannot build.
425         * SecurityBindingElement.cs : added some TODO comments.
426         * HttpTransportBindingElement.cs : GetProperty<T>() should rather
427           delegate to base, not BindingContext.
428         * SecurityRequestContext.cs : somewhat late decryption.
429
430 2007-03-06  Atsushi Enomoto  <atsushi@ximian.com>
431
432         * MessageSecurityBindingSupport.cs,
433           AsymmetricSecurityBindingElement.cs,
434           SymmetricSecurityBindingElement.cs :
435           renamed *SecurityBindingElementSupport to *SecurityCapabilities and
436           implemented ISecurityCapabilities on them. Now those binding
437           elements support GetProperty<ISecurityCapabilities>().
438
439 2007-03-05  Atsushi Enomoto  <atsushi@ximian.com>
440
441         * SecurityBindingElement.cs : SetIssuerBindingContextIfRequired()
442           will work only for predefined parameter types.
443
444 2007-03-01  Atsushi Enomoto  <atsushi@ximian.com>
445
446         * MessageSecurityBindingSupport.cs :
447           Set proper MessageDirection to the requirement after creation.
448           split CreateTokenAuthenticator() as MessageDirection is different.
449           Removed extra creation of requirement.
450
451 2007-03-01  Atsushi Enomoto  <atsushi@ximian.com>
452
453         * MessageSecurityBindingSupport.cs : token authenticator is not
454           always created on channel-opening stage.
455         * SecurityBindingElement.cs : use SslSecurityTokenParameters for
456           Sslnego binding factory method.
457
458 2007-02-28  Atsushi Enomoto  <atsushi@ximian.com>
459
460         * SecureMessageGenerator.cs : inconsistent ReferenceList has caused
461           signature velification failure.
462
463 2007-02-27  Atsushi Enomoto  <atsushi@ximian.com>
464
465         * SecureMessageGenerator.cs : encrypt signature confirmations only
466           when they are required.
467
468 2007-02-27  Atsushi Enomoto  <atsushi@ximian.com>
469
470         * SecureMessageGenerator.cs : SignatureConfirmation must be encrypted
471           when [Signature Protection is true i.e. when we use
472           SignBeforeEncryptAndEncryptSignature.
473
474           With this change finally samplesvc.cs/samplecli.cs became
475           interoperable(!)
476
477 2007-02-27  Atsushi Enomoto  <atsushi@ximian.com>
478
479         * SecureMessageDecryptor.cs : signature verification was not done
480           for endorsing supporting tokens.
481         * SecureMessageGenerator.cs : moved SignatureConfirmation position
482           in the security header. Don't output empty ReferenceList.
483
484 2007-02-27  Atsushi Enomoto  <atsushi@ximian.com>
485
486         * SecureMessageGenerator.cs : signingToken was added before being
487           initialized and thus caused NRE.
488
489 2007-02-27  Atsushi Enomoto  <atsushi@ximian.com>
490
491         * WSSecurityMessageHeader.cs, SecureMessageDecryptor.cs,
492           SecureMessageGenerator.cs : use SHA1 instead of HMACSHA1. Now we
493           don't need workaround for symmetric key restoration.
494
495 2007-02-27  Atsushi Enomoto  <atsushi@ximian.com>
496
497         * WSSecurityMessageHeader.cs, SecureMessageDecryptor.cs,
498           SecureMessageGenerator.cs :
499           Avoid extra reference search from the request's ReferenceList.
500           create HMACSHA1 always with the key to compute hash (I'm not sure
501           it is correct; it is rather to adjust all hash consistent.)
502
503 2007-02-27  Atsushi Enomoto  <atsushi@ximian.com>
504
505         * SecureMessageDecryptor.cs : verify that endorsing supporting tokens
506           actually endorsed the primary signature.
507         * SecureMessageGenerator.cs : implemented endorsing of the primary
508           signature. So, now supporting tokens are fully implemented.
509
510 2007-02-27  Atsushi Enomoto  <atsushi@ximian.com>
511
512         * MessageSecurityBindingSupport.cs : so, those supporting tokens are
513           totally signing tokens.
514         * SecureMessageGenerator.cs : Endorsing tokens should also be
515           included in the message. They are just not signed.
516
517 2007-02-26  Atsushi Enomoto  <atsushi@ximian.com>
518
519         * SecureMessageGenerator.cs : support signing and encryption of
520           supporting tokens. Some required refactory to do it.
521         * MessageSecurityBindingSupport.cs : added EncryptedData member.
522
523 2007-02-26  Atsushi Enomoto  <atsushi@ximian.com>
524
525         * SecureMessageDecryptor.cs : fix exception message.
526         * WSSecurityMessageHeader.cs, WSSignedXml.cs, WSEncryptedXml.cs :
527           XmlNamespaceManager is not required for GetIdElement().
528
529 2007-02-22  Atsushi Enomoto  <atsushi@ximian.com>
530
531         * SecureMessageDecryptor.cs, WSSecurityMessageHeader.cs :
532           moved decryption part from former file to latter file, to reuse
533           SignedXml instance (though now I doubt how it actually was good)
534           which in turn required to replace EncryptedData in
535           WSSecurityMessageHeader with decrypted one.
536         * WSEncryptedXml.cs : similar to WSSignedXml.cs, to handle wsu:Id.
537
538 2007-02-21  Atsushi Enomoto  <atsushi@ximian.com>
539
540         * SecureMessageGenerator.cs : when we create DerivedKeyToken, those
541           EncryptedData should contain KeyInfo as it is not obvious which key
542           is used there. .net<->mono DerivedKeyToken introp is done.
543         * SecureMessageDecryptor.cs : check derived key requirement.
544           Reduce dom-dependent parts.
545
546 2007-02-21  Atsushi Enomoto  <atsushi@ximian.com>
547
548         * WSSecurityMessageHeader.cs : ReferenceList needs to be bound to
549           the related DerivedKeyToken (if any).
550         * SecureMessageGenerator.cs : largely done with DerivedKeyToken
551           support. Some refactoring to distinguish deried-token-related
552           variables.
553         * SecureMessageDecryptor.cs : removed its own support for derived
554           key tokens. Now it fully works with DerivedKeySecurityToken.
555
556 2007-02-21  Atsushi Enomoto  <atsushi@ximian.com>
557
558         * WSSecurityMessageHeader.cs, SecureMessageDecryptor.cs,
559           SecureMessageDecryptor.cs :
560           Implemented increment token reading in o:Security, as
561           DerivedKeyToken could reference to existing wrapped key.
562           Removed WsscDerivedKeyToken and all relevant code.
563         * SecureMessageGenerator.cs : replaced WsscDerivedKeyToken with
564           DerivedKeySecurityToken.
565
566 2007-02-16  Atsushi Enomoto  <atsushi@ximian.com>
567
568         * SecureMessageGenerator.cs : it was setting security tokens into
569           incorrect SecurityMessageProperty.
570           Use correct WrappedKeySecurityToken for EncryptedKeySHA1.
571           Now it uses SecurityRequestContext instead of just primary key.
572         * SecureMessageDecryptor.cs : removed extra lines. Limit workarounds
573           to symmetric reply decryption, which is the only trouble case.
574           Do not create another SignedXml.
575         * WSSecurityMessageHeader.cs : SignedXml processing changes above.
576
577 2007-02-15  Atsushi Enomoto  <atsushi@ximian.com>
578
579         * SecureMessageDecryptor.cs : Now it uses union token resolver and
580           the resolver works with in-progress token reading in o:Security.
581         * WSSecurityMessageHeader.cs : now it does not read EncryptedKey
582           as EncryptedKeyIdentifierClause. It is rather a SecurityToken.
583         * SecureMessageGenerator.cs : cosmetic refactoring.
584
585 2007-02-14  Atsushi Enomoto  <atsushi@ximian.com>
586
587         * WSSecurityMessageHeader.cs : read EncryptedKeyIdentifierClause
588           instead of EncryptedKey.
589
590 2007-02-13  Atsushi Enomoto  <atsushi@ximian.com>
591
592         * MessageSecurityBindingSupport.cs : SigningToken and EncryptionToken
593           should not be always prepared at channel Open(). It also caused
594           that extra token requirements.
595         * SecureMessageGenerator.cs : use correct key clause for encryption.
596         * SecureMessageDecryptor.cs : reduce extra key acquisition.
597
598 2007-02-06  Atsushi Enomoto  <atsushi@ximian.com>
599
600         * MessageSecurityBindingSupport.cs : added CreateTokenAuthenticator()
601           for supporting 'supporting tokens' .
602         * SecureMessageGenerator.cs : Supporting token creation is done only
603           at initiator (not sure if it is supposed that, but for now it is).
604           Removed extraneous CollectSupportingTokens().
605         * SecureMessageDecryptor.cs : implemented supporting token
606           authentication (partly). "Signed" supporting tokens are expected
607           to work fine.
608
609 2007-02-06  Atsushi Enomoto  <atsushi@ximian.com>
610
611         * SecureMessageGenerator.cs :
612           make SignBeforeEncryptAndEncryptSignature working.
613
614 2007-02-06  Atsushi Enomoto  <atsushi@ximian.com>
615
616         * SecureMessageGenerator.cs : EncryptedKeySHA1 needs key hash, not
617           the key itself. ProtectionToken is WrappedKey.
618         * SecureMessageDecryptor.cs : now it is internal encrypted key clause,
619           not EncryptedKeyIdentifierClause which is not for embedded key.
620         * MessageProperties.cs : Fixed copy direction in CopyProperties().
621
622 2007-02-05  Atsushi Enomoto  <atsushi@ximian.com>
623
624         * MessageSecurityBindingSupport.cs : added DefaultKeyWrapAlgorithm
625           to switch asymmetric and symmetric. Not used yet.
626         * SecurityRequestChannel.cs : now it pass the request security
627           property to reply receiver so that it could use the primary key
628           used at request phase.
629         * SecurityRequestContext.cs : now it pass the context itself to
630           reply sender so that it could embed related MessageID.
631         * SecureMessageGenerator.cs : ongoing changes to support symmetric
632           binding element. Add RelatesTo output and remove MessageID when
633           replying to the sender. Added some hacks to get symmetric binding
634           (kind of) working.
635         * SecureMessageDecryptor.cs : ditto. Handle embedded encryption key
636           in SecurityTokenReference (it also involved existing encrypted key 
637           retrieval). In reply receiver, reuse the key that was used at
638           request phase. It needs significant token resolution refactoring.
639
640 2007-02-02  Atsushi Enomoto  <atsushi@ximian.com>
641
642         * MessageSecurityBindingSupport.cs : cosmetic refactoring.
643         * SecureMessageDecryptor.cs : store token and its authentication
644           policies into the security property, and reuse it on reply.
645           Some code refactoring; there is at most one o:Security to solve at
646           one endpoint (depends on Actor). Some attempt to use correct
647           token parameters (but for now I have only samples that use x509).
648         * SecureMessageGenerator.cs : For replying message, use initiator's
649           signing token as the encryption token. Simply reuse security
650           property from the input message.
651
652           I have some nasty workaround at decryptor for initiator that could
653           not retrieve decryption key.
654
655 2007-02-02  Atsushi Enomoto  <atsushi@ximian.com>
656
657         * SecureMessageGenerator.cs, SecurityChannelListener.cs,
658           SecurityRequestContext.cs, MessageSecurityBindingSupport.cs:
659           several refactoring on token acquisition. Large part of
660           MessageSecurityBindingSupport code is unified.
661
662 2007-02-02  Atsushi Enomoto  <atsushi@ximian.com>
663
664         * MessageProperties.cs : Security property should be one of the items.
665           Actually many other properties should be similar as well.
666         * MessageImpl.cs, MessageBufferImpl.cs, Message.cs :
667           when copying a message, copy properties as well.
668         * SecurityRequestContext.cs : on replying, pass input 
669           SecurityMessageProperty to the security generator.
670         * SecureMessageGenerator.cs : both of above, for SignatureConfirmation
671           support.
672         * WSSecurityMessageHeader.cs : fixed lazy .ctor() that did nothing.
673
674 2007-02-01  Atsushi Enomoto  <atsushi@ximian.com>
675
676         * WSSignedXml.cs:
677           MessageHeader.cs, Message.cs, WSSecurityMessageHeader.cs,
678           SecureMessageDecryptor.cs, SecureMessageGenerator.cs:
679           use new WSSignedXml instead of SignedXml, and remove coexisting
680           Id and wsu:Id. Now we can live only with wsu:Id and therefore
681           - our reply messages could be consumed by .NET, and
682           - .NET signature could be verified.
683
684 2007-02-01  Atsushi Enomoto  <atsushi@ximian.com>
685
686         * SecureMessageDecryptor.cs : The signing key must be passed as
687           CheckSignature() argument, not SigningKey.
688
689 2007-01-31  Atsushi Enomoto  <atsushi@ximian.com>
690
691         * MessageImpl.cs : don't read attribute after ReadStartElement().
692
693 2007-01-31  Atsushi Enomoto  <atsushi@ximian.com>
694
695         * MessageSecurityBindingSupport.cs : some Release() refactoring.
696         * SecureMessageGenerator.cs : use correct signing key clause for
697           SecurityTokenReferenceKeyInfo to be serialized.
698         * SecureMessageDecryptor.cs : now it can try to parse signature.
699
700 2007-01-31  Atsushi Enomoto  <atsushi@ximian.com>
701
702         Ongoing changes to support signature confirmation
703         * SecureMessageGenerator.cs :
704           Don't output ReplyTo onto reply message.
705           Write SignatureConfirmation if needed.
706         * SecureMessageDecryptor.cs :
707           Some refactoring for header cunsumption. Added commented-out
708           signature verification part (not working yet, on client side due
709           to incorrect reply from service and insufficient clause reader).
710         * WSSecurityMessageHeader.cs :
711           Added SignatureConfirmation support.
712           KeyInfoClause for o:SecurityTokenReference should be replaced with
713           SecurityTokenReferenceKeyInfo.
714
715 2007-01-29  Atsushi Enomoto  <atsushi@ximian.com>
716
717         * SecureMessageGenerator.cs : support Timestamp signature.
718           Removed unused code, and extra argument in CreateReference().
719         * WSSecurityMessageHeader.cs : Timestamp also needs Id for SignedXml.
720
721 2007-01-29  Atsushi Enomoto  <atsushi@ximian.com>
722
723         * SecureMessageGenerator.cs :
724           Several fixes to make asymmetric binding working:
725           - Differentiate signing and encryption token in several areas.
726           - Fixed signing keyinfo.
727           Use SenderIdPrefix.
728           Added initial SecurityMessageProperty handling, not sure if it is
729           appropriate here though.
730         * HttpRequestChannel.cs : (some debugging lines)
731
732 2007-01-26  Atsushi Enomoto  <atsushi@ximian.com>
733
734         Woohoo! Here is a very basic WS-Security compliant message which could
735         be allowed by Indigo.
736         * MessageHeader.cs : added Id support for writing.
737         * Message.cs : added internal BodyId for signature reference.
738         * MessageImpl.cs : write Body Id if required.
739         * SecureMessageGenerator.cs : Before signing, the target elements must
740           be given wsu:Id. Since I still use System.Security.dll, I need some
741           trick for signing (I give both Id and wsu:Id, former to sign and
742           latter to be consumed). Maybe I will have to replace xmldsig/xmlenc
743           implementation later. Now singning mechanism works except for
744           wsu:Timestamp (which is kind of mandatory).
745
746         I can's still consume replies from Indigo but it's a big progress :)
747
748 2007-01-26  Atsushi Enomoto  <atsushi@ximian.com>
749
750         * MessageHeaderInfo.cs : added internal Id.
751         * MessageHeader.cs : read and write wsu:Id.
752         * Message.cs : output wsu namespace if Id exists in any header.
753         * HttpReplyChannel.cs : (some debugging lines.)
754         * SecureMessageDecryptor.cs : (remove debugging lines.)
755         * MessageImpl.cs : removed obsolete code.
756         * WSSecurityMessageHeader.cs : output "o" prefix.
757         * SecureMessageGenerator.cs : replaced XmlElement-based header
758           signing with MessageHeader-based signing, to support Id correctly.
759
760 2007-01-15  Atsushi Enomoto  <atsushi@ximian.com>
761
762         * SecureMessageGenerator.cs : some more refactoring and code comments.
763         * MessageSecurityUtility.cs : made decryptor into an instance class,
764           like I've done for SecureMessageGenerator.
765         * SecurityRequestContext.cs, SecurityRequestChannel.cs :
766           dependent changes for above.
767
768 2007-01-12  Atsushi Enomoto  <atsushi@ximian.com>
769
770         * SecureMessageGenerator.cs : fixed derived keysize. derived key was
771           causing NRE due to the lack of token reference.
772           No need to pass doc to SignedXml.ctor() anymore.
773           Moved ReferenceList before the signature(s).
774
775 2007-01-12  Atsushi Enomoto  <atsushi@ximian.com>
776
777         * SecureMessageGenerator.cs : add wsu:Timestamp to signing target.
778           Moved signing key generation code to non-HMACSHA1 signing part.
779           Don't try to sign wss:Security.
780           Pass document itself to SignedXml.ctor().
781           Use temporary DataObjects to avoid adding Ids (not sure what is the
782           expected processing yet).
783         * WSSecurityMessageHeader.cs : to support timestamp signing, add
784           WriteTo() method in WsuTimestamp.
785
786 2007-01-12  Atsushi Enomoto  <atsushi@ximian.com>
787
788         * SecureMessageGenerator.cs : wrong key was used for signing.
789           Omit KeyInfo for now - it seems that .net (sometimes?) omits it.
790
791 2007-01-11  Atsushi Enomoto  <atsushi@ximian.com>
792
793         * SecureMessageGenerator.cs :
794           Now ID generation process does not modify input message.
795           Moved derived key generation part into (virtual) signing loop.
796           MessagePartSpecification support for signing is done.
797
798 2007-01-11  Atsushi Enomoto  <atsushi@ximian.com>
799
800         * SecureMessageGenerator.cs : some reordering to handle signing and
801           encryption with supporting tokens. Fixed XPath query bug for
802           soap header contents (we want s:Header/*, not s:Header).
803
804 2007-01-11  Atsushi Enomoto  <atsushi@ximian.com>
805
806         * MessageSecurityBindingSupport.cs : more refactoring.
807           Made it abstract and added Initiator- and Recipient- classes.
808           Several members were moved to those derived types.
809         * AsymmetricSecurityBindingElement.cs, 
810           SymmetricSecurityBindingElement.cs
811           SecurityChannelFactory.cs, SecurityChannelListener.cs,
812           SecurityRequestChannel.cs, SecurityOutputChannel.cs,
813           SecurityRequestContext.cs, SecureMessageGenerator.cs :
814           All dependent changes by above. Removed ISecurityChannelSource
815           which became useless.
816
817 2007-01-11  Atsushi Enomoto  <atsushi@ximian.com>
818
819         * SecureMessageGenerator.cs : encryption parts should exist too.
820         * AsymmetricSecurityBindingElement.cs
821           SymmetricSecurityBindingElement.cs,
822           MessageSecurityBindingSupport.cs : some refactoring.
823           Split MessageSecurityBindingSupport into security binding element
824           specific parts and made MessageSecurityBindingSupport concrete.
825           It is likely split again, next time based on initiator/recipient.
826
827 2007-01-11  Atsushi Enomoto  <atsushi@ximian.com>
828
829         * MessageSecurityUtility.cs, SecureMessageGenerator.cs :
830           split encryptor part in the former file into latter file, and
831           make it nonstatic.
832         * SecurityRequestChannel.cs, SecurityOutputChannel.cs,
833           SecurityRequestContext.cs : apply the change above.
834
835 2007-01-11  Atsushi Enomoto  <atsushi@ximian.com>
836
837         * MessageSecurityBindingSupport.cs :
838           Fixed incorrect TrgGetValue() use.
839           Added CollectRecipientSupportingTokens().
840
841 2007-01-11  Atsushi Enomoto  <atsushi@ximian.com>
842
843         * MessageSecurityUtility.cs: acctually ReferenceList was inside
844           EncryptedKey. So, when a key itself is used to encrypt data,
845           ReferenceList is contained by itself.
846         * MessageSecurityBindingSupport.cs :
847           added CollectInitiatorSupportingTokens().
848
849 2007-01-10  Atsushi Enomoto  <atsushi@ximian.com>
850
851         * MessageSecurityUtility.cs: it should support ReferenceList-less
852           messages.
853
854 2007-01-10  Atsushi Enomoto  <atsushi@ximian.com>
855
856         * WSSecurityMessageHeader.cs : reverted previous unnecessary change.
857         * MessageSecurityUtility.cs : there already was uuid.
858
859 2007-01-09  Atsushi Enomoto  <atsushi@ximian.com>
860
861         * MessageSecurityUtility.cs : replaced EncryptedKey with
862           WrappedKeySecurityToken, which seems to be in actual use in .net.
863         * WSSecurityMessageHeader.cs : added internal Guid so that it
864           could be shared between header items.
865
866 2006-12-14  Atsushi Enomoto  <atsushi@ximian.com>
867
868         * HttpRequestContext.cs, TextMessageEncoder.cs :
869           some null arg check.
870
871 2006-12-08  Atsushi Enomoto  <atsushi@ximian.com>
872
873         * MessageSecurityUtility.cs : reducing DOM dependency. Use KeyInfoNode
874           for SecurityTokenReference resolution.
875
876 2006-12-08  Atsushi Enomoto  <atsushi@ximian.com>
877
878         * MessageSecurityUtility.cs : fixed EncryptedData decryption to
879           consider DerivedKeyTokens correctly.
880           When creating LocalId, don't add '#' here.
881
882 2006-12-07  Atsushi Enomoto  <atsushi@ximian.com>
883
884         * MessageSecurityUtility.cs :
885           handle key mapping for each wsse:Security.
886
887 2006-12-07  Atsushi Enomoto  <atsushi@ximian.com>
888
889         * WSSecurityMessageHeader.cs : use prefix "c" for ws-secureconv.
890
891 2006-12-06  Atsushi Enomoto  <atsushi@ximian.com>
892
893         * WSSecurityMessageHeader.cs : write top-level ReferenceList in
894           wsse:Security.
895         * MessageSecurityUtility.cs :
896           Now ReferenceList is placed under wsse:Security as WS-Security 1.1 
897           suggests, and it is used to dereference decryption targets.
898           Now it premises multiple wsse:Security elements to read.
899
900 2006-12-06  Atsushi Enomoto  <atsushi@ximian.com>
901
902         * WSSecurityMessageHeader.cs : don't write o:SecurityTokenReference
903           manually (and actually the namespace URI was wrong).
904
905 2006-12-06  Atsushi Enomoto  <atsushi@ximian.com>
906
907         * WSSecurityMessageHeader.cs : improved DerivedKeyToken writing
908           and reading.
909         * MessageSecurityUtility.cs : DerivedKeyToken creation.
910
911 2006-12-06  Atsushi Enomoto  <atsushi@ximian.com>
912
913         * SecurityBindingElement.cs,
914           SymmetricSecurityBindingElement.cs,
915           AsymmetricSecurityBindingElement.cs :
916           implemented SetKeyDerivation().
917
918 2006-12-06  Atsushi Enomoto  <atsushi@ximian.com>
919
920         * MessageSecurityUtility.cs : don't add KeyInfoClause to EncryptedKey
921           more than once.
922
923 2006-12-06  Atsushi Enomoto  <atsushi@ximian.com>
924
925         * MessageBufferImpl.cs : XmlReader-based buffer is not possible, so
926           don't use it.
927
928 2006-12-05  Atsushi Enomoto  <atsushi@ximian.com>
929
930         * MessageSecurityUtility.cs : u:Timestamp will be encrypted/signed,
931           thus move it in front of encryption/signing.
932
933 2006-12-04  Atsushi Enomoto  <atsushi@ximian.com>
934
935         * TransactionFlowBindingElement.cs : OnOpen()/OnClose() should not
936           check state by themselves (btw it's not really working).
937         * HttpChannelListener.cs : If the url does not end with '/' add it
938           so that it could be fed to HttpListener.
939
940 2006-12-04  Atsushi Enomoto  <atsushi@ximian.com>
941
942         * HttpChannelFactory.cs : check scheme on CreateChannel.
943         * MessageHeader.cs : finish IsMessageVersionSupported().
944
945 2006-12-04  Atsushi Enomoto  <atsushi@ximian.com>
946
947         * FaultConverter.cs : new file, not used yet though.
948
949 2006-10-21  Atsushi Enomoto  <atsushi@ximian.com>
950
951         * SvcHttpHandler.cs : set GET URL to ServiceMetadataBehavior.
952
953 2006-10-20  Atsushi Enomoto  <atsushi@ximian.com>
954
955         * SvcHttpHandler.cs : once AspNetReplyChannel get working with HTTP
956           GET as well as HttpReplyChannel, configuration would be ready now.
957
958 2006-10-18  Ankit Jain  <jankit@novell.com>
959
960         * TextMessageEncoder.cs (MediaType): Use 'application/soap+xml' for
961         EnvelopeVersion.Soap12 and 'text/xml' for others.
962         * HttpReplyChannel.cs (TryReceiveRequest): Revert earlier patch for GET
963         handling.
964         Strip '?' from the query string.
965
966 2006-10-13  Ankit Jain  <jankit@novell.com>
967
968         * MessageVersion.cs (None): Set AddressingVersion.None
969
970 2006-10-12  Atsushi Enomoto  <atsushi@ximian.com>
971
972         * SvcHttpHandler.cs : added config-based endpoint addition code.
973           Though due to some weird bug in mono-core it does not seem to work,
974           so commented out for now.
975         * HttpReplyChannel.cs : handle wsdl query parameter. btw creating
976           mex request message might just be wrong.
977           Use expected MessageVersion by the channel.
978         * AspNetReplyChannel.cs : ditto. Plus, HTTP GET support.
979
980 2006-10-12  Atsushi Enomoto  <atsushi@ximian.com>
981
982         * MessageSecurityBindingSupport.cs : added DefaultSignatureAlgorithm
983           which differs depending on whether it is asymmetric or symmetric.
984         * SecurityRequestChannel.cs, SecurityRequestContext.cs :
985           simplify SecureMessage() and DecryptMessage() arguments (just
986           take MessageSecurityBindingSupport instead of several parameters).
987         * MessageSecurityUtility.cs :
988           - simplify SecureMessage() and DecryptMessage() arguments (just
989             take MessageSecurityBindingSupport instead of several parameters).
990           - Take token inclusion mode into account. Don't include them when
991             it is not expected. Also, change the token reference style.
992           - add wsa:MessageID to the headers.
993           - For hmac-sha1 signing (default for symmetric binding), use
994             symmetric key created for encryption as well to create HMACSHA1.
995           - add Id to wsu:Timestamp.
996           - start to handle SecurityMessageProperty.
997         * WSSecurityMessageHeader.cs :
998           Added Id to WsuTimestamp. Also use prefixes for its XML output.
999           Changed date format.
1000
1001 2006-10-06  Atsushi Enomoto  <atsushi@ximian.com>
1002
1003         * CommunicationObject.cs : reject faulted state on Open()/Close().
1004         * MessageHeaders.cs : removed extra fields.
1005
1006 2006-10-06  Ankit Jain  <jankit@novell.com>
1007
1008         * HttpReplyChannel.cs (TryReceiveRequest): Handle HTTP GET.
1009
1010 2006-10-05  Atsushi Enomoto  <atsushi@ximian.com>
1011
1012         * MessageSecurityUtility.cs, SecurityRequestContext.cs :
1013           added some FIXMEs and additional arg.
1014
1015 2006-10-05  Atsushi Enomoto  <atsushi@ximian.com>
1016
1017         * MessageSecurityUtility.cs : remove duplicate Action header.
1018
1019 2006-10-05  Atsushi Enomoto  <atsushi@ximian.com>
1020
1021         * MessageFault.cs : partly implemented CreateFault(Message, int).
1022         * Message.cs, MessageImpl.cs, MessageBufferImpl.cs :
1023           handle IsFault correctly in each implementation.
1024
1025 2006-10-04  Ankit Jain  <jankit@novell.com>
1026
1027         * HttpRequestChannel.cs (ProcessRequest): Read till the end.
1028
1029 2006-10-04  Ankit Jain  <jankit@novell.com>
1030
1031         * HttpRequestChannel.cs (ProcessRequest): Temporary workaround for a bug
1032         in WebConnectionStream.
1033
1034 2006-10-04  Ankit Jain  <jankit@novell.com>
1035
1036         * MessageHeaders.cs (To): Use GetHeader<string> till
1037         DataContractSerializer gets ISerializable support.
1038         * CustomBinding.cs (.ctor): Get scheme from TransportBindingElement.
1039
1040 2006-10-04  Ankit Jain  <jankit@novell.com>
1041
1042         * ServiceHostParser.cs (Parse):
1043         (Split): Add some error checks.
1044
1045 2006-10-03  Atsushi Enomoto  <atsushi@ximian.com>
1046
1047         * SslStreamSecurityBindingElement.cs : updated API to Sep. CTP.
1048         * StreamUpgradeAcceptor.cs : Fix AcceptUpgrade().
1049         * SslStreamSecurityUpgradeProvider.cs,
1050           SslStreamSecurityUpgradeAcceptor.cs :
1051           new files for Ssl upgrade provider implementation.
1052         * MessageSecurityUtility.cs :
1053           Create proper C14NTransform. Don't use enveloped signature
1054           transform but sign every significant bits. On securing messages
1055           use ChannelProtectionRequirements.
1056         * SecurityRequestContext.cs : pass ChannelProtectionRequirements to
1057           SecureMessage().
1058         * MessageEncoder.cs : fix API (missing constraint).
1059         * WSSecurityMessageHeader.cs : it is MustUnderstand.
1060         * StreamUpgradeProvider.cs : API fix and implemented .ctor().
1061         * AsymmetricSecurityBindingElement.cs : default protection order is
1062           SignBeforeEncryptAndEncryptSignature.
1063
1064 2006-09-29  Ankit Jain  <jankit@novell.com>
1065
1066         * SvcHttpHandlerFactory.cs (GetTypeFromSvc): Extract and move code to
1067         ServicHostParser and use that here.
1068         (PrivateBinPath): New.
1069         (GetTypeFromBin): New. Load assembly from PrivateBinPath.
1070         (RemovedCallback): Remove and close the SvcHttpHandler when its
1071         corresponding file (.svc) changes.
1072         * SvcHttpHandler.cs (Close): New. Close the ServiceHost.
1073
1074         * ServiceHostParser.cs : New.
1075         * CachingCompiler.cs : New. Code extracted from
1076         System.Web.Compilation.CachingCompiler
1077         * CompilationException.cs : New. From System.Web.Compilation
1078         * HtmlizedException.cs : New. Likewise.
1079
1080 2006-09-29  Atsushi Enomoto  <atsushi@ximian.com>
1081
1082         * MessageSecurityBindingSupport.cs : For client side, it is always
1083           InitiatorServiceModelSecurityTokenRequirement which should be
1084           created. Fixed wrong client encryption key acquisition.
1085
1086 2006-09-29  Atsushi Enomoto  <atsushi@ximian.com>
1087
1088         * SecurityChannelListener.cs, SecurityRequestContext.cs,
1089           MessageSecurityBindingSupport.cs : made similar changes as factories
1090           to listener so that session channels and input channels would work.
1091           Added authenticator creation.
1092
1093 2006-09-29  Atsushi Enomoto  <atsushi@ximian.com>
1094
1095         * Binding.cs : added missing members.
1096
1097 2006-09-28  Atsushi Enomoto  <atsushi@ximian.com>
1098
1099         * SecurityRequestChannel.cs, SecurityOutputChannel.cs,
1100           MessageSecurityUtility.cs, MessageSecurityBindingSupport.cs :
1101           reduce code duplication between request and output channels.
1102           The common parts are now in MessageSecurityBindingSupport.
1103           Now reduced several arguments in SecureMessage() for client.
1104
1105 2006-09-28  Atsushi Enomoto  <atsushi@ximian.com>
1106
1107         * ChannelFactoryBase.cs : implemented ValidateCreateChannel().
1108
1109 2006-09-28  Atsushi Enomoto  <atsushi@ximian.com>
1110
1111         * AsymmetricSecurityBindingElement.cs,
1112           SecurityChannelListener.cs,
1113           SecurityRequestContext.cs,
1114           SymmetricSecurityBindingElement.cs,
1115           SecurityRequestChannel.cs,
1116           SecurityOutputChannel.cs,
1117           SecurityChannelFactory.cs,
1118           MessageSecurityBindingSupport.cs : 1) Refactoring. 
1119           IMessageSecurityBindingSupport now becomes a class and contains
1120           all the members which resided in ISecurityChannelSource.
1121           Now it takes more constructor params.
1122           Made dependent changes on all sources above.
1123
1124           2) Added SecurityTokenAuthenticator creation in
1125           SecurityRequestChannel (SecurityOutputChannel should do the same).
1126
1127 2006-09-27  Atsushi Enomoto  <atsushi@ximian.com>
1128
1129         * SecurityRequestChannel.cs : ongoing improvements on conditional
1130           key creation. Actually there must be some part that creates an
1131           authenticator (WinFX does that).
1132
1133 2006-09-27  Ankit Jain  <jankit@novell.com>
1134
1135         Add suport for handling .svc files.
1136         * SvcHttpHandlerFactory.cs: New.
1137         * SvcHttpHandler.cs: New.
1138
1139         * HttpChannelListener.cs (PopulateChannel): Use AspNetReplyChannel if in
1140         asp.net environment.
1141         (OnOpen): Do nothing in asp.net environment.
1142         (OnClose): Likewise.
1143         * HttpReplyChannel.cs (HttpRequestContext): Move to ..
1144         * HttpRequestContext.cs: .. here.
1145
1146         * AspNetReplyChannel.cs: New.
1147         * AspNetRequestContext.cs: New.
1148
1149 2006-09-26  Atsushi Enomoto  <atsushi@ximian.com>
1150
1151         * MessageSecurityUtility.cs :
1152           Significantly rewritten decryption parts to respect ReferenceList
1153           to decrypt (so no workaround anymore).
1154           Now e:ReferenceList inside o:Security is treated as the referenced
1155           EncryptedType items are encrypted by 1) the derived key which is
1156           immediately in front of it, or 2) the default key (it is according
1157           to WS-SecureConversation section 9.1). Thus removed immediately
1158           previous hack to auto-fill wsu:Id attributes.
1159
1160           On securing a message, generate correct Id and add DataReference
1161           to ReferenceList properly.
1162
1163 2006-09-26  Atsushi Enomoto  <atsushi@ximian.com>
1164
1165         * WSSecurityMessageHeader.cs : handle ReferenceList. It is being
1166           practically used.
1167
1168 2006-09-26  Atsushi Enomoto  <atsushi@ximian.com>
1169
1170         * WSSecurityMessageHeader.cs : handle DerivedKeyToken as a header content.
1171           Actually WSSecurityTokenSerializer should be able to consume it, but after
1172           spending a lot of time I still cannot successfully read it on WinFX.
1173           Skip ReferenceList for now.
1174         * MessageSecurityUtility.cs :
1175           Replaced some string literals with constants.
1176           Added some workaround for DerivedKeyToken retrieval.
1177           WinFX somehow sends incomplete ISO10126 padding which contains
1178           bigger number than the key size and is rejected by EncryptedXml,
1179           so added DecryptLax() which processes such ones in PaddingMode.None
1180           to workaround it (only for cross-connection between mono and winfx).
1181           Added some incomplete implicit wsu:Id processing.
1182           Don't try to replace SignedXml with EncryptedData. It is not added
1183           to the document tree.
1184
1185 2006-09-25  Atsushi Enomoto  <atsushi@ximian.com>
1186
1187         * MessageSecurityUtility.cs : support message signature encryption. Some
1188           more refactoring.
1189
1190 2006-09-22  Atsushi Enomoto  <atsushi@ximian.com>
1191
1192         * SecurityBindingElement.cs : implement Clone(). Remove some MonoTODOs.
1193
1194 2006-09-22  Atsushi Enomoto  <atsushi@ximian.com>
1195
1196         * MessageSecurityUtility.cs : fix warnings.
1197
1198 2006-09-22  Atsushi Enomoto  <atsushi@ximian.com>
1199
1200         * MessageSecurityUtility.cs : actually there would be more than one
1201           EncryptedData. Decrypt all.
1202
1203 2006-09-22  Atsushi Enomoto  <atsushi@ximian.com>
1204
1205         * MessageSecurityUtility.cs : supply correct URIs in SecureMessage().
1206           Use ISO10126 padding mode (it is not required but in manner).
1207
1208 2006-09-21  Atsushi Enomoto  <atsushi@ximian.com>
1209
1210         * MessageSecurityUtility.cs : now that EncryptedXml decryption bug is
1211           fixed, remove 16 bytes workaround (we still need encryption bugfix in
1212           that class to make it work fine with mono client).
1213           Removed buggy lines that reset decryption key to AES.
1214           Modified GetKey() argument to take EncryptedData/EncryptedKey element.
1215         * WSSecurityMessageHeader.cs :
1216           (SecurityTokenReferenceKeyInfo) support LoadXml.
1217
1218 2006-09-20  Atsushi Enomoto  <atsushi@ximian.com>
1219
1220         * TransactionMessageProperty.cs : new file.
1221
1222 2006-09-20  Atsushi Enomoto  <atsushi@ximian.com>
1223
1224         * ChannelPoolSettings.cs, OneWayBindingElement.cs : build fix, as
1225           gmcs happened to report wrong code.
1226
1227 2006-09-19  Atsushi Enomoto  <atsushi@ximian.com>
1228
1229         * SecurityChannelFactory.cs, SecurityChannelListener.cs :
1230           .ctor() now requires ChannelProtectionRequirements which will be
1231           supplied via BindingParameterCollection.
1232         * SymmetricSecurityBindingElement.cs,
1233           AsymmetricSecurityBindingElement.cs : thus add
1234           ChannelProtectionRequirement parameter to factory/listener.
1235         * SecurityRequestChannel.cs : use recipient token requirement to
1236           create an encryption token. Thus differentiate the logic from
1237           signing (initiator) token.
1238
1239 2006-09-19  Atsushi Enomoto  <atsushi@ximian.com>
1240
1241         * SymmetricSecurityChannelFactory.cs, SecurityChannelFactory.cs :
1242           renamed former to latter.
1243         * SymmetricSecurityChannelListener.cs, SecurityChannelListener.cs :
1244           ditto.
1245
1246 2006-09-19  Atsushi Enomoto  <atsushi@ximian.com>
1247
1248         * MessageSecurityBindingSupport.cs : new internal types to commonize
1249           AsymmetricSecurityBindingElement and SymmetricSecurityBindingElement
1250           and thus make internal factory and listener reusable.
1251         * SymmetricSecurityChannelFactory.cs, SecurityRequestContext.cs,
1252           SecurityRequestChannel.cs, SecurityOutputChannel.cs,
1253           SymmetricSecurityChannelListener.cs : rewrote dependent parts on
1254           SymmetricSecurityBindingElement, using the new types above.
1255         * SymmetricSecurityBindingElement.cs :
1256           Use SymmetricMessageSecurityBindingSupport.
1257         * AsymmetricSecurityBindingElement.cs :
1258           thus implemented, using AsymmetricMessageSecurityBindingSupport.
1259
1260 2006-09-19  Atsushi Enomoto  <atsushi@ximian.com>
1261
1262         * ChannelFactoryBase.cs : more RC1 update.
1263
1264 2006-09-19  Atsushi Enomoto  <atsushi@ximian.com>
1265
1266         * MessageEncoder.cs, BinaryMessageEncoder.cs, MtomMessageEncoder.cs,
1267           TextMessageEncoder.cs : updated ReadMessage() API to RC1.
1268         * ChannelListenerBase.cs, ChannelListenerBase_1.cs,
1269           ChannelBase.cs : RC1 API updates.
1270         * MessageImpl.cs : implemented Properties.
1271         * HttpReplyChannel.cs : added HttpRequestMessageProperty support.
1272
1273 2006-09-18  Ankit Jain  <jankit@novell.com>
1274
1275         * MessageHeaders.cs (MessageId):
1276         (RelatesTo): UniqueId is not serializable, serialize it as a string.
1277
1278 2006-09-17  Atsushi Enomoto  <atsushi@ximian.com>
1279
1280         * ChannelParameterCollection.cs : new file.
1281         * LayeredOutputChannel.cs, SecurityOutputChannel.cs :
1282           new files for IOutputChannel implementation.
1283         * OneWayBindingElement.cs : hacky implementation.
1284         * SymmetricSecurityChannelFactory.cs : support IOutputChannel.
1285         * MessageSecurityUtility.cs : now create identifier from the security
1286           token and the token parameters which is added as an argument.
1287         * SecurityRequestContext.cs,
1288           SecurityRequestChannel.cs : SecureMessage() argument changes.
1289           Set MessageSecurityVersion (SecurityTokenVersion) to the token
1290           requirement.
1291
1292 2006-09-17  Atsushi Enomoto  <atsushi@ximian.com>
1293
1294         * HttpRequestChannel.cs : close the HttpWebRequest.
1295
1296 2006-09-17  Atsushi Enomoto  <atsushi@ximian.com>
1297
1298         * HttpRequestChannel.cs,
1299           HttpChannelFactory.cs : implement async request/reply.
1300         * HttpChannelFactory.cs :
1301           verify factory state when creating a channel.
1302
1303 2006-09-17  Atsushi Enomoto  <atsushi@ximian.com>
1304
1305         * MessageEncoder.cs, TextMessageEncoder.cs, MtomMessageEncoder.cs,
1306           BinaryMessageEncoder.cs : added message version mismatch check.
1307
1308 2006-09-15  Atsushi Enomoto  <atsushi@ximian.com>
1309
1310         * SymmetricSecurityChannelListener.cs, SecurityRequestContext.cs :
1311           Making incomplete changes to handle different tokens for encryption
1312           and signature.
1313         * SymmetricSecurityChannelFactory.cs, SecurityRequestChannel.cs :
1314           split channel implementation classes out to the latter file.
1315         * MessageSecurityUtility.cs : seems like there is
1316           TimeStampValidityDuration property, so use it (incomplete; a server
1317           needs another love).
1318
1319 2006-09-12  Atsushi Enomoto  <atsushi@ximian.com>
1320
1321         * MessageSecurityUtility.cs, SymmetricSecurityChannelFactory.cs,
1322           SecurityRequestContext.cs : now that we have key identifier clause
1323           and working ResolveKeyIdentifierClause(), just create keys inside
1324           SecureMessage(). Add KeyInfo to the xmldsig.
1325
1326 2006-09-12  Atsushi Enomoto  <atsushi@ximian.com>
1327
1328         * SymmetricSecurityChannelFactory.cs, SecurityRequestContext.cs :
1329           pass SecurityKeyIdentifierClause to SecureMessage().
1330         * SecurityBindingElement.cs : set X509ReferenceStyle as Thumbprint
1331           for IssuedToken binding element.
1332         * SymmetricSecurityChannelListener.cs : removed hack to just create
1333           X509 security token, and implemented correct token creation.
1334         * WSSecurityMessageHeader.cs : added new KeyInfoClause type that
1335           wraps SecurityTokenReference element.
1336         * MessageSecurityUtility.cs : use the above.
1337
1338 2006-09-08  Atsushi Enomoto  <atsushi@ximian.com>
1339
1340         * MessageSecurityUtility.cs : raise MessageSecurityException when it
1341           could not find a security header.
1342         * SymmetricSecurityChannelFactory.cs : now it also supports
1343           IRequestSessionChannel. Extracted SecurityRequestChannel out from
1344           the factory type.
1345
1346 2006-09-08  Atsushi Enomoto  <atsushi@ximian.com>
1347
1348         * SecurityRequestContext.cs : moved securing message part to
1349           MessageSecurityUtility.cs.
1350         * MessageSecurityUtility.cs : the change above.
1351           use DateTime.Now for timestamp basis. Don't append signature to
1352           the document. Instead it is added to the header. Capture body
1353           content instead of the body itself.
1354         * SymmetricSecurityChannelFactory.cs : decrypt reply message to
1355           be processed by upper layers.
1356
1357 2006-09-08  Atsushi Enomoto  <atsushi@ximian.com>
1358
1359         * MessageSecurityUtility.cs, WSSecurityMessageHeader.cs,
1360           SymmetricSecurityChannelListener.cs,
1361           SymmetricSecurityChannelFactory.cs, SecurityRequestContext.cs :
1362           more refactoring. Request serialization became much more conformant
1363           and add required header items.
1364           Security Token retrieval is needed to send it in the request.
1365           Fixed wrong key encryption.
1366
1367 2006-09-07  Atsushi Enomoto  <atsushi@ximian.com>
1368
1369         * SecurityRequestContext.cs : the workaround was not functional.
1370
1371 2006-09-07  Atsushi Enomoto  <atsushi@ximian.com>
1372
1373         * SecurityRequestContext.cs : some more refactoring. Use EncryptedXml
1374           API, especially ReplaceData(), instead of native crypto stuff.
1375         * WSSecurityMessageHeader.cs : handle dsig:Signature as well (for
1376           MessageProtectionOrder.SignBeforeEncrypt).
1377
1378 2006-09-07  Atsushi Enomoto  <atsushi@ximian.com>
1379
1380         * SecurityRequestContext.cs : label should be combined of both
1381           the client's and the server's.
1382
1383 2006-09-06  Atsushi Enomoto  <atsushi@ximian.com>
1384
1385         * SecurityRequestContext.cs : enable key derivation (though for now
1386           GenerateDerivedKey() is unimplemented). Create meaningful,
1387           decrypted request message to be consumed by the upper layer.
1388
1389 2006-09-06  Atsushi Enomoto  <atsushi@ximian.com>
1390
1391         * SecurityRequestContext.cs : implement Close() and Reply().
1392           ongoing implementation of Reply(TimeSpan).
1393         * MessageSecurityUtility.cs : new file to collect utility methods.
1394         * SymmetricSecurityChannelFactory.cs : moved securing message code
1395           to the above file.
1396         * SymmetricSecurityChannelListener.cs : tiny renaming.
1397
1398 2006-09-06  Atsushi Enomoto  <atsushi@ximian.com>
1399
1400         * SecurityRequestContext.cs : security header is also stored.
1401           removed NotImpl.
1402         * WSSecurityMessageHeader.cs : read EncryptedKey and EncryptedData
1403           as well.
1404
1405 2006-09-06  Atsushi Enomoto  <atsushi@ximian.com>
1406
1407         * SymmetricSecurityChannelFactory.cs : tiny progress on securing
1408           message.
1409
1410 2006-09-05  Atsushi Enomoto  <atsushi@ximian.com>
1411
1412         * SymmetricSecurityChannelFactory.cs : specify KeyUsage.Exchange
1413           so that it retrieves the security key in that manner.
1414
1415 2006-09-05  Atsushi Enomoto  <atsushi@ximian.com>
1416
1417         * Binding.cs : MessageVersion is null when there is no
1418           MessageEncodingBindingElement.
1419         * Message.cs : null arg check.
1420
1421 2006-09-05  Atsushi Enomoto  <atsushi@ximian.com>
1422
1423         * ChannelPoolSettings.cs, OneWayBindingElement.cs : new files.
1424
1425 2006-09-04  Atsushi Enomoto  <atsushi@ximian.com>
1426
1427         * SymmetricSecurityChannelListener.cs, SecurityRequestContext.cs, 
1428           LayeredReplyChannel.cs, LayeredCommunicationObject.cs,
1429           LayeredRequestChannel.cs : some refactoring.
1430         * SymmetricSecurityChannelFactory.cs :
1431           ongoing secure message creation implementation.
1432
1433 2006-09-01  Atsushi Enomoto  <atsushi@ximian.com>
1434
1435         * SymmetricSecurityBindingElement.cs :
1436           pass specific ServiceCredentialsSecurityTokenManager type to
1437           SymmetricSecurityChannelListener as it needs ServiceCertificate.
1438         * SymmetricSecurityChannelListener.cs :
1439           get service certificate. It's a temporary hack.
1440           Move RequestContext code to below.
1441         * SecurityRequestContext.cs : new file.
1442         * WSSecurityMessageHeader.cs : implementing Read(), but to finish
1443           it I have to finish decryption of the incoming message.
1444
1445 2006-08-31  Atsushi Enomoto  <atsushi@ximian.com>
1446
1447         * MessageImpl.cs : don't write attributes on the first body content
1448           element *on soap Body element*.
1449         * MessageBufferImpl.cs : don't throw ArgumentNullException.
1450           ObjectDisposedException is appropriate.
1451         * MessageHeader.cs : (RawMessageHeader) don't write element itself
1452           in OnWriteHeader*Contents*().
1453
1454 2006-08-31  Atsushi Enomoto  <atsushi@ximian.com>
1455
1456         * WSSecurityMessageHeader.cs : new file.
1457         * SymmetricSecurityChannelFactory.cs :
1458           moved WSSecurityHeader and related types to the above.
1459         * SymmetricSecurityChannelListener.cs :
1460           reject SOAP-env-less message.
1461
1462 2006-08-31  Atsushi Enomoto  <atsushi@ximian.com>
1463
1464         * SecurityChannelListener.cs, SymmetricSecurityChannelListener.cs :
1465           renamed former to latter.
1466         * SymmetricSecurityChannelFactory.cs :
1467           create requirements every time. It is also likely that I need
1468           another requirement instance to get service credentials here.
1469
1470 2006-08-30  Atsushi Enomoto  <atsushi@ximian.com>
1471
1472         * SymmetricSecurityBindingElement.cs : make BuildChannelListener()
1473           similar to BuildChannelFactory() (set credentials, issuer binding
1474           context etc.).
1475         * SecurityChannelListener.cs :
1476           more ongoing security support implementation.
1477         * SymmetricSecurityChannelFactory.cs :
1478           moved GetSecurityKey() to SymmetricSecurityRequestChannel.
1479
1480 2006-08-29  Atsushi Enomoto  <atsushi@ximian.com>
1481
1482         * SecurityChannelListener.cs, SymmetricSecurityBindingElement.cs :
1483           Renamed SecurityChannelListener to SymmetricSecurityChannelListener.
1484           Implementation is underway.
1485         * LayeredReplyChannel.cs :
1486           like LayeredRequestChannel, use ChannelListenerBase to provide
1487           default timeouts.
1488
1489 2006-08-29  Atsushi Enomoto  <atsushi@ximian.com>
1490
1491         * MessageHeader.cs : added another implementation type that uses
1492           XmlElement, for buffering purpose.
1493         * MessageImpl.cs : Header item types are user-driven by
1494           MessageHeader.GetHeader<T>(int), so at storing phase just store
1495           nodes as XmlElement.
1496         * MessageHeaders.cs : avoid dumping XmlNode to string to create
1497           another XmlReader.
1498
1499 2006-08-28  Atsushi Enomoto  <atsushi@ximian.com>
1500
1501         * SymmetricSecurityBindingElement.cs : find ClientCredentials from
1502           BindingParameterCollection, not from binding element properties.
1503
1504 2006-08-28  Atsushi Enomoto  <atsushi@ximian.com>
1505
1506         * SecurityChannelFactory.cs, SymmetricSecurityChannelFactory.cs :
1507           renamed former to latter.
1508
1509 2006-08-25  Atsushi Enomoto  <atsushi@ximian.com>
1510
1511         * SecurityBindingElement.cs : SetIssuerBindingContext should also
1512           work for SslSecurityTokenParameters.
1513
1514 2006-08-24  Atsushi Enomoto  <atsushi@ximian.com>
1515
1516         * SecurityBindingElement.cs :
1517           Added SetIssuerBindingContextIfRequired().
1518         * SecurityChannelFactory.cs :
1519           Changed .ctor() arg again, just to receive binding element.
1520         * SymmetricSecurityBindingElement.cs :
1521           Call SetIssuerBindingContextIfRequired() in BuildChannelFactory().
1522           SymmetricSecurityChannelFactory .ctor() arg changes.
1523           "ProtectionTokenParameters" is not passed now.
1524
1525 2006-08-23  Atsushi Enomoto  <atsushi@ximian.com>
1526
1527         * SymmetricSecurityBindingElement.cs : requirements should be
1528           filled at InitializeSecurityTokenParameters as long as possible.
1529           SymmetricSecurityChannelFactory<T> now does not receive
1530           requirements (it now creates one inside it) at .ctor().
1531         * SecurityChannelFactory.cs : remove requirement argument.
1532
1533 2006-08-23  Atsushi Enomoto  <atsushi@ximian.com>
1534
1535         * SymmetricSecurityBindingElement.cs : implemented copy constructor.
1536
1537 2006-08-22  Atsushi Enomoto  <atsushi@ximian.com>
1538
1539         * SymmetricSecurityBindingElement.cs :
1540           MessageSecurityVersion property is of type SecurityTokenVersion.
1541         * SecurityBindingElement.cs :
1542           Implemented CreateSecureConversationBindingElement().
1543           For CreateIssuedTokenBindingElement(), ProtectionTokenParameters is
1544           the argument IssuedSecurityTokenParameters itself.
1545
1546 2006-08-22  Atsushi Enomoto  <atsushi@ximian.com>
1547
1548         * SymmetricSecurityBindingElement.cs :
1549           CreateSecurityTokenManager() can be directly used now. 
1550           Use CallInitializeSecurityTokenRequirement() to fill requirement
1551           properties.
1552
1553 2006-08-16  Atsushi Enomoto  <atsushi@ximian.com>
1554
1555         * ChannelFactoryBase.cs : GetProperty() is virtual.
1556
1557 2006-08-14  Atsushi Enomoto  <atsushi@ximian.com>
1558
1559         * SymmetricSecurityBindingElement.cs : in BuildChannelFactory(),
1560           create token manager, token parameters and token requirements,
1561           and fill some requirements.
1562         * TransportBindingElement.cs, HttpTransportBindingElement.cs,
1563           TextMessageEncodingBindingElement.cs : workaround to not throw NIE.
1564         * BindingContext.cs : implemented RemainingBindingElements.
1565           kill "no remaining binding element" error in GetInnerProperty()
1566         * SecurityChannelFactory.cs : now it became 
1567           SymmetricSecurityChannelFactory, thus soon to be renamed.
1568           Several ongoing actual security resolution is on.
1569
1570 2006-08-11  Atsushi Enomoto  <atsushi@ximian.com>
1571
1572         * CommunicationObject.cs :
1573           add GetCommunicationObjectType() and use it.
1574         * ChannelFactoryBase.cs, ChannelListenerBase_1.cs :
1575           use ThrowIfDisposedOrNotOpen().
1576         * LayeredCommunicationObject.cs : have similar ThrowIf...() methods
1577           to CommunicationObject. Make it IDisposable.
1578         * LayeredRequestChannel.cs : use above.
1579         * SecurityChannelFactory.cs : removed state check as it is done at
1580           above class.
1581
1582 2006-08-10  Atsushi Enomoto  <atsushi@ximian.com>
1583
1584         * SecurityBindingElement.cs : (CanBuildChannelFactory and
1585           CanBuildChannelListener) directly dispatch to BindingContext.
1586         * SymmetricSecurityBindingElement.cs : require protection token
1587           parameters before building a channel or a listener.
1588         * ChannelFactoryBase.cs : raise an error when a channel is being
1589           created without opening the factory.
1590         * ChannelListenerBase_1.cs : ditto for the listener.
1591         * SecurityChannelFactory.cs : before sending a request, it must be
1592           opened.
1593
1594 2006-08-07  Atsushi Enomoto  <atsushi@ximian.com>
1595
1596         * MessageBufferImpl.cs : initialize fields.
1597           workaround BufferSize just to return 0.
1598         * MessageImpl.cs : for BodyWriter, don't use DefaultMessageBuffer
1599           which does not support multi time write.
1600         * Message.cs : implemented State.
1601
1602 2006-08-07  Atsushi Enomoto  <atsushi@ximian.com>
1603
1604         * Message.cs : OnGetBodyAttribute() cannot return anything unless it
1605           is consuming XmlReader.
1606           Implemented OnCreateBufferedCopy(), to return XPathMessageBuffer.
1607         * MessageBuffer.cs : implemented CreateNavigator().
1608         * MessageBufferImpl.cs : added XPathMessageBuffer class.
1609
1610         I kinda know that MS heavily depends on binary XmlReader and may have
1611         XPathNavigator implementation based on the binary stuff, but at
1612         least for now we have almost no motivation to mimick it.
1613
1614 2006-08-07  Atsushi Enomoto  <atsushi@ximian.com>
1615
1616         * SecurityChannelFactory.cs : a bit more of security header code.
1617
1618 2006-08-04  Atsushi Enomoto  <atsushi@ximian.com>
1619
1620         * SymmetricSecurityBindingElement.cs :
1621           set default MessageProtectionOrder in every construction.
1622
1623 2006-08-03  Atsushi Enomoto  <atsushi@ximian.com>
1624
1625         * LayeredRequestChannel.cs, SecurityChannelFactory.cs : 
1626           changed to require ChannelFactoryBase to support default timeout.
1627           Made some methods non-virtual. Preparing code to add security
1628           headers (empty yet).
1629         * SecurityBindingElement.cs : implemented several factory methods
1630           that return SymmetricSecurityBindingElement.
1631
1632 2006-08-02  Atsushi Enomoto  <atsushi@ximian.com>
1633
1634         * IStreamUpgradeBindingElement.cs,
1635           StreamUpgradeBindingElement.cs : renamed from former to latter.
1636
1637 2006-08-02  Atsushi Enomoto  <atsushi@ximian.com>
1638
1639         * IStreamUpgradeBindingElement.cs : API update, soon to be renamed.
1640
1641 2006-07-31  Ankit Jain  <jankit@novell.com>
1642
1643         * MessageHeaders.cs (From): Use Constants.WSA1
1644         (MessageId): Implement the same pattern as other properties (From etc).
1645
1646 2006-07-28  Atsushi Enomoto  <atsushi@ximian.com>
1647
1648         * LocalClientSecuritySettings.cs : initialize IdentityVerifier as well.
1649         * SecurityBindingElement.cs : some cosmetic changes.
1650
1651 2006-07-28  Atsushi Enomoto  <atsushi@ximian.com>
1652
1653         * SecurityBindingElement.cs : LocalClientSettings and 
1654           LocalServiceSettings returns an instance for each.
1655         * LocalClientSecuritySettings.cs : initialized fields.
1656
1657 2006-07-28  Atsushi Enomoto  <atsushi@ximian.com>
1658
1659         * LocalClientSecuritySettings.cs : moved from S.SM.Description, and
1660           kinda implemented Clone() just with MemberwiseClone().
1661
1662 2006-07-27  Ankit Jain  <jankit@novell.com>
1663
1664         * MessageHeaders.cs (set_To): Use Uri.AbsoluteUri .
1665         * MessageHeader.cs (knownTypes): New. Known type array containing
1666         EndpointAddress10.
1667         (CreateHeader): Use knownTypes with the DataContractSerializer .ctor
1668
1669 2006-07-21  Atsushi Enomoto  <atsushi@ximian.com>
1670
1671         * LayeredRequestChannel.cs, LayeredReplyChannel.cs,
1672           LayeredCommunicationObject.cs,
1673           SecurityChannelFactory.cs, SecurityChannelListener.cs :
1674           new files to support security channels, though right now they
1675           just pass inner channels through.
1676         * SymmetricSecurityBindingElement.cs : use above.
1677
1678 2006-07-21  Atsushi Enomoto  <atsushi@ximian.com>
1679
1680         * AsymmetricSecurityBindingElement.cs,
1681           SymmetricSecurityBindingElement.cs :
1682           Default SecurityTokenParameters is null.
1683
1684 2006-07-20  Atsushi Enomoto  <atsushi@ximian.com>
1685
1686         * AsymmetricSecurityBindingElement.cs : remove NotImpl for now.
1687
1688 2006-07-20  Atsushi Enomoto  <atsushi@ximian.com>
1689
1690         * Message.cs : When EnvelopeVersion is None, don't write SOAP
1691           envelope.
1692         * MessageHeader.cs : don't write headers when EnvelopeVersion is None.
1693         * MessageHeaders.cs : When EnvelopeVersion is None, don't output
1694           headers. When AddressingVersion is None, don't output addressing
1695           headers as well, except for Action which is still needed by
1696           service dispatcher.
1697
1698 2006-07-20  Atsushi Enomoto  <atsushi@ximian.com>
1699
1700         * MessageHeaders.cs : changed specific properties to find it from
1701           headers as Action property does (local variables won't be set by
1702           setter). Cache serializers. Check null serializer arguments.
1703           For EndpointAddress, GetHeader<T>() shouldn't use serializer.
1704
1705 2006-07-19  Atsushi Enomoto  <atsushi@ximian.com>
1706
1707         * MessageHeader.cs : WriteTo() should treat EndpointAddress to not
1708           use XmlObjectSerializer (since it is not data contract type).
1709
1710 2006-07-18  Atsushi Enomoto  <atsushi@ximian.com>
1711
1712         * MessageImpl.cs : Improved ReadHeaders().
1713           For certain header items, use EndpointAddress.ReadFrom().
1714
1715 2006-07-18  Atsushi Enomoto  <atsushi@ximian.com>
1716
1717         * AsymmetricSecurityBindingElement.cs :
1718           it is not ISecurityCapabilities anymore.
1719
1720 2006-07-18  Atsushi Enomoto  <atsushi@ximian.com>
1721
1722         * MessageVersion.cs : added None.
1723
1724 2006-07-14  Atsushi Enomoto  <atsushi@ximian.com>
1725
1726         * Message.cs : GetReaderAtBodyContents() implementation using
1727           writer methods.
1728
1729 2006-07-13  Atsushi Enomoto  <atsushi@ximian.com>
1730
1731         * Message.cs : CreateMessage(version,action,xmlReader) incorrectly
1732           used MessageVersion.Default.
1733
1734 2006-07-12  Duncan Mak  <duncan@novell.com>
1735
1736         * MessageBuffer.cs (MessageContentType): Return
1737         "application/soap+msbin1".
1738
1739         * MessageImpl.cs (EmptyMessage.OnCreateBufferedCopy):
1740         (SimpleMessage.OnCreateBufferedCopy):
1741         (XmlReaderMessage.OnCreateBufferedCopy): Hook up with the new
1742         MessageBuffer implementations.
1743
1744         * MessageBufferImpl.cs: Concrete implmentations for MessageBuffer.
1745         (DefaultMessageBuffer): Used by EmptyMessage and SimpleMessage.
1746         (XmlReaderMessageBuffer): Used by XmlReaderMessage.
1747
1748 2006-07-12  Atsushi Enomoto  <atsushi@ximian.com>
1749
1750         * MessageImpl.cs : Action should be added in request messages. Omit
1751           it only in reply message, thus moved to dispatcher logic.
1752
1753 2006-07-12  Ankit Jain  <jankit@novell.com>
1754
1755         * HttpRequestChannel.cs (HttpRequestChannel.Request): Workaround for a
1756         bug in WebConnectionStream.
1757         * MessageHeaders.cs (MessageHeaders.From):
1758         (MessageHeaders.ReplyTo):
1759         (MessageHeaders.To): Add the corresponding MessageHeader on set.
1760
1761 2006-07-11  Atsushi Enomoto  <atsushi@ximian.com>
1762
1763         * MessageImpl.cs : when AddressingVersion is None (e.g. POX), don't
1764           add SOAP Action to the response at any time.
1765
1766 2006-07-10  Atsushi Enomoto  <atsushi@ximian.com>
1767
1768         * SymmetricSecurityBindingElement.cs,
1769           SecurityBindingElement.cs : They are not ISecurityCapabilities now.
1770           Implemented .ctor() and some properties.
1771
1772 2006-07-10  Atsushi Enomoto  <atsushi@ximian.com>
1773
1774         * TransactionFlowBindingElement.cs : new file.
1775         * HttpTransportBindingElement.cs : added missing KeepAliveEnabled.
1776
1777 2006-07-06  Atsushi Enomoto  <atsushi@ximian.com>
1778
1779         * MessageFault.cs :
1780           DefaultAction vanished. CreateFault() now takes bufferSize arg.
1781         * MessageHeaders.cs : ArgumentException -> MessageHeaderException.
1782         * AddressingVersion.cs : added None. Equals() and GetHashCode()
1783           vanished (there is anyways no way to instantiate this type).
1784         * MessageVersion.cs : added Soap11 and Soap12.
1785         * TextMessageEncoder.cs : silly quotation mark wrapper disappeared
1786           in June CTP. goodie.
1787
1788 2006-07-05  Atsushi Enomoto  <atsushi@ximian.com>
1789
1790         * MtomMessageEncoder.cs, BinaryMessageEncoder.cs, Message.cs :
1791           removed some vanished CreateMessage() overloads.
1792
1793 2006-07-05  Atsushi Enomoto  <atsushi@ximian.com>
1794
1795         * CustomBinding.cs, HttpsTransportBindingElement.cs, 
1796           HttpTransportBindingElement.cs :
1797           They are not ISecurityCapabilities anymore.
1798           Modified code to match June CTP behavior.
1799
1800 2006-07-05  Atsushi Enomoto  <atsushi@ximian.com>
1801
1802         * StreamSecurityUpgradeProvider.cs : Identity -> EndpointIdentity.
1803
1804 2006-07-05  Atsushi Enomoto  <atsushi@ximian.com>
1805
1806         * EmptyFaultException.cs : removed unused code.
1807         * IRequestContext.cs, RequestContext.cs : renamed former to latter.
1808
1809 2006-07-05  Atsushi Enomoto  <atsushi@ximian.com>
1810
1811         * LayeredChannelFactory.cs : removed obsolete class.
1812         * ChannelFactoryBase.cs, HttpChannelFactory.cs,
1813           ChannelListenerBase.cs, HttpChannelListener.cs,
1814           HttpReplyChannel.cs, ChannelManagerBase.cs :
1815           all those changes were brought by ChannelManagerBase changes.
1816
1817 2006-07-05  Atsushi Enomoto  <atsushi@ximian.com>
1818
1819         * ReplyChannelBase.cs, HttpChannelFactory.cs, ChannelBase.cs
1820           CommunicationObject.cs, HttpChannelListener.cs,
1821           ChannelFactoryBase.cs :
1822           CommunicationObject abstract changes brought this madness.
1823
1824 2006-07-05  Atsushi Enomoto  <atsushi@ximian.com>
1825
1826         * BindingContext.cs : listenUri address parameters could be null in
1827           June CTP.
1828
1829 2006-07-05  Atsushi Enomoto  <atsushi@ximian.com>
1830
1831         * IRequestContext.cs :
1832           Now it became a class. File renaming will follow soon.
1833         * IChannelFactory.cs, IInputChannel.cs, IReplyChannel.cs,
1834           IDuplexChannel.cs, IDuplexSessionChannel.cs,
1835           IOutputChannel.cs, IOutputSessionChannel.cs,
1836           IRequestChannel.cs, IRequestSessionChannel.cs :
1837           They are not IDisposable anymore.
1838           For IReplyChannel, IRequestContext -> RequestContext.
1839         * IChannelListener.cs : removed Identity. Added GetProperty().
1840         * ChannelListenerBase.cs, ChannelListenerBase.cs,
1841           ReplyChannelBase.cs, HttpReplyChannel.cs :
1842           Several members disappeared, and dependent changes.
1843         * HttpTransportBindingElement.cs,
1844           HttpChannelListener.cs, :
1845           ChannelListenerBase.SharedChannelListener vanished.
1846
1847 2006-07-05  Atsushi Enomoto  <atsushi@ximian.com>
1848
1849         * MessageEncodingBindingElement.cs
1850           MtomMessageEncodingBindingElement.cs,
1851           TextMessageEncodingBindingElement.cs,
1852           BinaryMessageEncodingBindingElement.cs :
1853           June CTP updates: AddressingVersion -> MessageVersion.
1854         * Binding.cs : June CTP. MessageVersion is added.
1855         * ChannelBase.cs, BindingContext.cs, IChannel.cs
1856           ChannelListenerBase_1.cs,
1857           ChannelListenerBase.cs, IChannelListener.cs,
1858           IChannelFactory.cs,
1859           ChannelFactoryBase.cs, ChannelManagerBase.cs :
1860           June CTP. Several interface changes.
1861         * HttpTransportBindingElement.cs : June CTP. HttpMappingMode is gone.
1862         * IChannelManager.cs, LayeredChannelListener.cs,
1863           GenericWrapperChannelFactory.cs,
1864           GenericWrapperChannelListener.cs : They are not used anymore.
1865
1866 2006-07-04  Atsushi Enomoto  <atsushi@ximian.com>
1867
1868         * MtomMessageEncoder.cs, BinaryMessageEncoder.cs :
1869           sync fix with June CTP API updates.
1870
1871 2006-07-03  Ankit Jain  <jankit@novell.com>
1872
1873         * MessageEncodingBindingElementConverter.cs:
1874         * StandardBindingConverter.cs:
1875         * TransportBindingElementConverter.cs:
1876         * TransactionFlowBindingElementConverter.cs:
1877         * ReliableSessionBindingElementConverter.cs:
1878         * SecurityBindingElementConverter.cs:
1879         Rename *Converter.cs to *Importer.cs
1880
1881         * TransferMode.cs: Move to System.ServiceModel
1882
1883 2006-06-22  Atsushi Enomoto  <atsushi@ximian.com>
1884
1885         * CommunicationObject.cs : make sure to change State before
1886           OnClosing/OnClosed/OnOpening/OnOpened when they are overriden.
1887
1888 2006-06-20  Atsushi Enomoto  <atsushi@ximian.com>
1889
1890         * Message.cs : output WSAddressing xmlns only when Action is
1891           specified (To should be affected, but seems like it is ignored).
1892
1893 2006-06-20  Atsushi Enomoto  <atsushi@ximian.com>
1894
1895         * MessageImpl.cs : don't set Action when it is null.
1896
1897 2006-06-12  Ankit Jain  <jankit@novell.com>
1898
1899         * TransportBindingElementConverter.cs (ImportEndpoint): Implement.
1900
1901 2006-05-29  Atsushi Enomoto  <atsushi@ximian.com>
1902
1903         * SecurityBindingElement.cs, SecurityBindingElementConverter.cs :
1904           some updated API fixes.
1905
1906 2006-05-29  Atsushi Enomoto  <atsushi@ximian.com>
1907
1908         * EnvelopeVersion.cs : moved back to S.SM.
1909
1910 2006-05-29  Atsushi Enomoto  <atsushi@ximian.com>
1911
1912         * IBindingManualAddressing.cs : vanished in beta2.
1913         * HostedTransportConfiguration.cs, EnvelopeVersion.cs,
1914           LocalClientSecuritySettings.cs, LocalServiceSecuritySettings.cs :
1915           namespace changes.
1916         * SecurityBindingElement.cs :
1917           SecurityStandardsManager -> SecurityTokenSerializer.
1918
1919 2006-05-29  Atsushi Enomoto  <atsushi@ximian.com>
1920
1921         * XmlSerializerBodyWriter.cs : new file to handle 
1922           TypedMessageConverter.ToMessage().
1923
1924 2006-04-26  Ankit Jain  <jankit@novell.com>
1925
1926         * TransportBindingElementConverter.cs (BeforeImport): Remove
1927         NotImplementedException.
1928         (ImportContract): Likewise.
1929         * CustomBinding.cs (.ctor): Use scheme from the binding parameter.
1930
1931 2006-04-14  Atsushi Enomoto  <atsushi@ximian.com>
1932
1933         * HttpRequestChannel.cs, HttpChannelFactory.cs : message encoder 
1934           being used was not reflecting that of Binding elements.
1935
1936 2006-04-07  Atsushi Enomoto  <atsushi@ximian.com>
1937
1938         * HttpReplyChannel.cs : when SOAP action is not set as a header item,
1939           just assume that it is in the message.
1940
1941 2006-04-06  Atsushi Enomoto  <atsushi@ximian.com>
1942
1943         * HttpReplyChannel.cs : actually HTTP header item might be null.
1944
1945 2006-04-06  Atsushi Enomoto  <atsushi@ximian.com>
1946
1947         * HttpReplyChannel.cs : under SOAP 1.1 SOAP Action is sent as HTTP
1948           header.
1949
1950 2006-04-06  Atsushi Enomoto  <atsushi@ximian.com>
1951
1952         * TextMessageEncoder.cs : for SOAP 1.1 content type is text/xml.
1953
1954 2006-04-06  Atsushi Enomoto  <atsushi@ximian.com>
1955
1956         * MessageFault.cs : Fixed SOAP12 reason output.
1957
1958 2006-04-05  Atsushi Enomoto  <atsushi@ximian.com>
1959
1960         * HttpReplyChannel.cs : no need to set response ContentEncoding since
1961           MessageEncoder.ContentType explicitly contains encoding.
1962         * AddressingVersion.cs : added ActionNotSupported property. Not sure
1963           if it is SOAP version dependent.
1964
1965 2006-03-23  Atsushi Enomoto  <atsushi@ximian.com>
1966
1967         * HttpReplyChannel.cs : actually I could just workaround bug #77816.
1968
1969 2006-03-16  Atsushi Enomoto  <atsushi@ximian.com>
1970
1971         * HttpChannelFactory.cs BindingContext.cs
1972           HttpChannelListener.cs HttpTransportBindingElement.cs :
1973           Now BindingContext holds MessageEncoder, and non-custom
1974           channel factory/listener should use it.
1975         * MtomMessageEncodingBindingElement.cs
1976           TextMessageEncodingBindingElement.cs
1977           BinaryMessageEncodingBindingElement.cs : BuildChannelFactory()/
1978           -Listener() now sets internal BindingContext.MessageEncoder.
1979           Fixed some public API.
1980
1981 2006-03-15  Atsushi Enomoto  <atsushi@ximian.com>
1982
1983         * BindingContext.cs : CanBuildChannelXXX() should not raise error
1984           for insufficient elements.
1985         * DispatchRuntime.cs : OperationDescription name is not action. So
1986           OperationSelector is created by name, not by action.
1987         * TextMessageEncodingBindingElement.cs : Feb. CTP API fixes.
1988
1989 2006-03-14  Atsushi Enomoto  <atsushi@ximian.com>
1990
1991         * MessageFaultBodyWriter.cs
1992           XmlReaderBodyWriter.cs
1993           XmlObjectSerializerBodyWriter.cs : made internal.
1994         * SecurityBindingElement.cs
1995           AsymmetricSecurityBindingElement.cs
1996           SymmetricSecurityBindingElement.cs : API fixes.
1997         * TransportBindingElementConverter.cs : ditto.
1998         * TextMessageEncodingBindingElement.cs : added set_AddressingVersion.
1999         * WindowsStreamSecurityBindingElement.cs
2000           SslStreamSecurityBindingElement.cs
2001           TransportSecurityBindingElement.cs : new files.
2002
2003 2006-03-14  Atsushi Enomoto  <atsushi@ximian.com>
2004
2005         * MessageImpl.cs : according to the W3C REC, mustUnderstand when
2006           reading can be any xs:boolean value.
2007
2008 2006-03-14  Atsushi Enomoto  <atsushi@ximian.com>
2009
2010         * Message.cs MessageImpl.cs : more sorting out the role of each
2011           write method.
2012         * MessageHeader.cs : use envelope namespace, not addressing namespace.
2013
2014 2006-03-14  Atsushi Enomoto  <atsushi@ximian.com>
2015
2016         * Message.cs : don't write body contents if it is empty.
2017           Moved WriteStartElement(,"Header",) to OnWriteStartHeaders().
2018         * MessageImpl.cs : implemented XmlReaderMessage.OnWriteBodyContents().
2019         * TextMessageEncoder.cs : WriteMessage() should close XmlWriter.
2020         * HttpRequestChannel.cs : close request stream before GetResponse().
2021
2022 2006-03-13  Atsushi Enomoto  <atsushi@ximian.com>
2023
2024         * TextMessageEncoderFactory.cs
2025           TextMessageEncoder.cs : encoder does not hold reference to the
2026           factory anymore. Use MessageVersion property in CreateMssage().
2027         * HttpChannelListener.cs : now it holds message encoder.
2028         * HttpReplyChannel.cs : now it uses listener's shared message encoder.
2029         * MessageImpl.cs : header is optional.
2030         * EnvelopeVersion.cs : namespace URI is missing.
2031
2032 2006-03-10  Atsushi Enomoto  <atsushi@ximian.com>
2033
2034         * CustomBinding.cs : removed Initialize().
2035         * Message.cs : renamed ForwardingMessage -> XmlReaderMessage.
2036         * MessageImpl.cs : renamed ForwardingMessage to XmlReaderMessage (used
2037           by Message.CreateMessage(MessageVersion,XmlReader,int) and
2038           implemented Headers, IsEmpty and GetReaderAtBodyContents().
2039
2040 2006-03-08  Atsushi Enomoto  <atsushi@ximian.com>
2041
2042         * MessageHeaders.cs : implemented GetReaderAtHeader() and Action (it
2043           could be also added by Add() method and could be reset by Remove()).
2044         * MessageImpl.cs : implemented more. As noted above, Now we don't 
2045           have to add Action header explicitly.
2046         * MessageHeader.cs : recovered Writer methods and ToString() from
2047           commented old version. Use prefixes for writing.
2048           Use WriteObjectContent() rather than WriteObject() (it needs
2049           DataContractSerializer fix btw).
2050
2051 2006-03-08  Atsushi Enomoto  <atsushi@ximian.com>
2052
2053         * MessageHeader.cs : added missing IsReferenceParameter.
2054         * MessageHeaderInfo.cs : added missing IsReferenceParameter.
2055         * MessageHeaders.cs : avoid NullRef when actors is null.
2056         * MessageImpl.cs : (MessageImplBase) add Action header in .ctor().
2057           (ForwardingMessage) reader consumer is being added (not done).
2058         * MtomMessageEncodingBindingElement.cs : simply use Mtom factory.
2059         * MtomMessageEncoder.cs : updated ContentType value to Feb. CTP.
2060         * HttpRequestChannel.cs : this channel automatically call Open()
2061           when Request() is called. Set content length for request.
2062           Use MessageEncoder's ContentType to also handle charset.
2063
2064 2006-03-07  Atsushi Enomoto  <atsushi@ximian.com>
2065
2066         * MessageImpl.cs : make them internal.
2067         * HttpReplyChannel.cs : set HttpListenerResponse properties correctly.
2068
2069 2006-03-07  Atsushi Enomoto  <atsushi@ximian.com>
2070
2071         * ChannelManagerBase.cs : cleanup MonoTODO and unused field.
2072         * HttpChannelListener.cs : removed commented line.
2073         * RequestChannelBase.cs : new base class for request channel classes.
2074         * ChannelListenerBase.cs : OnEndClose() is rather NotImplemented yet.
2075         * HttpReplyChannel.cs : WaitHandle accepts limited timeout value.
2076         * Message.cs : default IsEmpty and IsFault false by default.
2077         * LayeredChannelListener.cs : removed Uri (no chance to set).
2078         * ChannelBase.cs : reimplemented timeout properties.
2079         * HttpRequestChannel.cs : now it is mostly based on
2080           RequestChannelBase. Some more attempt to implement Request().
2081
2082 2006-03-07  Atsushi Enomoto  <atsushi@ximian.com>
2083
2084         * Binding.cs CustomBinding.cs : removed OnApplyConfiguration() and
2085           OnInitialize(). Added more BuildChannelListener() overloads.
2086
2087 2006-03-06  Atsushi Enomoto  <atsushi@ximian.com>
2088
2089         * Binding.cs : added some more missing members especially to support
2090           listener creation.
2091         * HttpChannelListener.cs : Uri should not be null.
2092         * HttpTransportBindingElement.cs : implemented
2093           CanBuildChannelFactory() and CanBuildChannelListener().
2094         * ServiceHostBase.cs : make Initialize() practically work at OnOpen().
2095
2096 2006-03-06  Atsushi Enomoto  <atsushi@ximian.com>
2097
2098         * Binding.cs : updated default namespace property value to Feb. CTP.
2099
2100 2006-03-03  Atsushi Enomoto  <atsushi@ximian.com>
2101
2102         * AddressHeader.cs : avoid null reference when value is null.
2103         * BindingContext.cs : check null ListenUri args.
2104
2105 2006-03-03  Atsushi Enomoto  <atsushi@ximian.com>
2106
2107         * MessageFault.cs : Fixed default action name. Null arg check.
2108
2109 2006-03-03  Atsushi Enomoto  <atsushi@ximian.com>
2110
2111         * BindingElement.cs : Dequeue elements in BindingContext directly.
2112         * BindingContext.cs : Added GetProperty<T>().
2113         * GenericWrapperChannelFactory.cs GenericWrapperChannelListener.cs :
2114           Now we don't need these extra classes, so marked as deprecated.
2115
2116 2006-03-03  Atsushi Enomoto  <atsushi@ximian.com>
2117
2118         * Binding.cs : null arg check.
2119         * AddressingVersion.cs : fixed constants to pass the tests.
2120         * BindingElement.cs : tiny meessage fix.
2121
2122 2006-03-02  Atsushi Enomoto  <atsushi@ximian.com>
2123
2124         * MessageEncodingBindingElement.cs
2125           BinaryMessageEncodingBindingElement.cs
2126           TextMessageEncodingBindingElement.cs
2127           MtomMessageEncodingBindingElement.cs
2128           MessageEncodingBindingElementConverter.cs : several API fixes.
2129         * BindingElement.cs : now if we use generic wrapper it causes
2130           infinite loop, so for now replace it with most-possible-but-
2131           untested logic.
2132
2133 2006-03-02  Atsushi Enomoto  <atsushi@ximian.com>
2134
2135         (back to normal "record-ChangeLogs" mode after the big API change mess)
2136         * HttpTransportBindingElement.cs : fixed minor API differences.
2137
2138 2006-02-23  Atsushi Enomoto  <atsushi@ximian.com>
2139
2140         * AsymmetricSecurityBindingElement.cs SecurityBindingElement.cs
2141           SymmetricSecurityBindingElement.cs :
2142           Dependent fixes for System.IdentityModel reorgainzation.
2143
2144 2006-02-23  Atsushi Enomoto  <atsushi@ximian.com>
2145
2146         * InputChannelBase.cs.notused IInputSession.cs IOutputSession.cs
2147           IProxyFormatter.cs WSHttpBindingBase.cs 
2148           PnrpPeerResolverBindingElement.cs IMessageHeaderInfo.cs
2149           MessageInterceptorEventArgs.cs WSHttpBinding.cs
2150           WSFederationBinding.cs ISessionChannel.cs
2151           CompositeDuplexBindingElement.cs MessageVersion.cs
2152           MessageHeader.cs IRequestSessionChannel.cs 
2153           BindingElementCollection.cs IReplySessionChannel.cs
2154           MessageProperties.cs IDuplexClientChannel.cs
2155           IInputSessionChannel.cs MessageImpl.cs IDuplexSessionChannel.cs
2156           TcpTransportBindingElement.cs EmptyFaultException.cs
2157           IBindingRuntimePreferences.cs AddressHeaderCollection.cs
2158           IStubFormatter.cs AsymmetricSecurityBindingElement.cs
2159           ConnectionOrientedTransportBindingElement.cs
2160           IProxyOperationSelector.cs MessageBuffer.cs IChannel.cs
2161           PeerResolverBindingElement.cs Message.cs
2162           HttpsTransportBindingElement.cs BindingElement.cs
2163           NamedPipetransportBindingElement.cs IBindingManualAddressing.cs
2164           MessageFaultBodyWriter.cs IReplyChannel.cs
2165           IBindingCapabilities.cs AddressHeader.cs IInputChannel.cs
2166           IMessageProperty.cs IOutputChannel.cs NetPeerTcpBinding.cs
2167           IRequestContext.cs IInputSessionShutdown.cs
2168           SecurityBindingElement.cs PeerTransportBindingElement.cs
2169           IDuplexSession.cs IChannelInitializer.cs
2170           IProxyMessageInspector.cs IChannelListener.cs NetTcpBinding.cs
2171           AddressingVersion.cs FaultException.cs
2172           IRequestChannel.cs MtomMessageEncodingBindingElement.cs
2173           TransportBindingElement.cs BinaryMessageEncodingBindingElement.cs
2174           TextMessageEncodingBindingElement.cs IChannelFactory.cs Binding.cs
2175           ITransportBindingElement.cs IChannelManager.cs MessageFault.cs
2176           MessageHeaders.cs IStubMessageInspector.cs UnderstoodHeaders.cs
2177           BindingParameterCollection.cs IInstanceProvider.cs
2178           WSDualHttpBinding.cs ISession.cs IErrorHandler.cs
2179           MessageEncodingBindingElement.cs HttpTransportBindingElement.cs
2180           IDuplexChannel.cs CustomBinding.cs IOutputSessionChannel.cs
2181           MessageContractAttribute.cs SymmetricSecurityBindingElement.cs :
2182           moved from System.ServiceModel due to the API changes.
2183
2184 2006-02-23  Atsushi Enomoto  <atsushi@ximian.com>
2185
2186         * ChannelFactoryBase.cs ChannelListenerBase.cs HttpChannelFactory.cs
2187           HttpChannelListener.cs HttpRequestChannel.cs
2188           LayeredChannelListener.cs PeerMessagePropagationFilter.cs
2189           PeerNode.cs ReplyChannelBase.cs :
2190           Feb. CTP API changes - chapter 1.
2191
2192 2006-02-15  Atsushi Enomoto  <atsushi@ximian.com>
2193
2194         * ChannelBase.cs : OnOpen() and OnClosed() do nothing.
2195         * ReplyChannelBase.cs : now it is based on ChannelBase.
2196         * ChannelListenerBase_1.cs : use DefaultCommunicationTimeouts.Instance
2197           and check null argument in .ctor().
2198         * HttpReplyChannel.cs : several changes.
2199           Non-async members are mostly implemented.
2200         * HttpChannelListener.cs : no need to receive 
2201           IDefaultCommunicationTimeouts.
2202         * HttpRequestChannel.cs : maxSizeOfHeaders is used in MessageHeaders
2203           to allocate buffer array and int.MaxValue causes OutOfMemory.
2204
2205 2006-02-15  Atsushi Enomoto  <atsushi@ximian.com>
2206
2207         * ClientFramingDecoderState.cs : added missing enum.
2208         * HttpRequestMessageProperty.cs HttpResponseMessageProperty.cs :
2209           added missing bits.
2210         * ChannelBase.cs, LayeredChannelListener.cs : tiny API fixes.
2211
2212 2006-02-15  Atsushi Enomoto  <atsushi@ximian.com>
2213
2214         * HttpChannelListener.cs : Added GetChannels() and OnClose().
2215           AcceptChannel() has some code now but it needs more love.
2216
2217 2006-02-14  Atsushi Enomoto  <atsushi@ximian.com>
2218
2219         * CommunicationObject.cs : Close() does not call Begin/EndClose().
2220         * ChannelManagerBase.cs : implemented AbortChannel and CloseChannel.
2221         * ChannelListenerBase.cs : implemented OnAbort and OnClose.
2222
2223 2006-02-10  Atsushi Enomoto  <atsushi@ximian.com>
2224
2225         * HttpRequestChannel.cs : close the streams.
2226         * HttpListener.cs
2227           HttpChannelListener.cs : renamed from former to latter.
2228
2229 2006-02-09  Atsushi Enomoto  <atsushi@ximian.com>
2230
2231         * ReplyChannelBase.cs : new file for IReplyChannel implementations.
2232         * HttpReplyChannel.cs : new file for HTTP IReplyChannel.
2233         * HttpListenerFactory.cs : removed obsolete file.
2234         * HttpListener.cs : hacky WaitForChannel and AcceptChannel.
2235         * ChannelListenerBase_1.cs : implemented virtual stuff.
2236         * CommunicationObject.cs : Open() should not call BeginOpen() and
2237           EndOpen(). Instead, invoke events individually.
2238         * ChannelListenerBase.cs : its Open() is WaitForChannel().
2239
2240 2006-02-08  Atsushi Enomoto  <atsushi@ximian.com>
2241
2242         * HttpRequestChannel.cs : call Flush() after serializing message
2243           into HTTP stream.
2244
2245 2006-02-08  Atsushi Enomoto  <atsushi@ximian.com>
2246
2247         * HttpRequestChannel.cs : implemented pretty hacky Request().
2248
2249 2006-02-02  Atsushi Enomoto  <atsushi@ximian.com>
2250
2251         * HttpRequestChannel.cs : Manager is HttpChannelFactory.
2252
2253 2006-02-01  Atsushi Enomoto  <atsushi@ximian.com>
2254
2255         * ChannelFactoryBase.cs : removed some NotImplementedException for
2256           further internal implementation.
2257
2258 2006-01-26  Atsushi Enomoto  <atsushi@ximian.com>
2259
2260         * HttpRequestChannel.cs : new file. mostly not implemented.
2261         * HttpChannelFactory.cs : Implemented CanCreateChannel().
2262           Partly implemented CreateChannel().
2263
2264 2006-01-26  Atsushi Enomoto  <atsushi@ximian.com>
2265
2266         * HttpChannelFactory.cs : (.ctor())
2267           Don't take ChannelBuildContext.
2268
2269 2005-11-21  Atsushi Enomoto  <atsushi@ximian.com>
2270
2271         * StreamSecurityUpgradeInitiator.cs PeerMessageOrigination.cs
2272           ChannelBase.cs StreamSecurityUpgradeAcceptor.cs
2273           PeerMessagePropagation.cs : updated to Nov. CTP.
2274
2275 2005-11-21  Atsushi Enomoto  <atsushi@ximian.com>
2276
2277         * ChannelListenerBase.cs, ChannelManagerBase.cs,
2278           ChannelListenerBase_1.cs, LayeredChannelListener.cs,
2279           StreamSecurityUpgradeAcceptor.cs,
2280           StreamSecurityUpgradeInitiator.cs :
2281           Updated to Nov. CTP API.
2282
2283 2005-11-21  Atsushi Enomoto  <atsushi@ximian.com>
2284
2285         Now we can rename ListenerFactoryBase.cs to ChannelListenerBase.cs.
2286
2287 2005-11-21  Atsushi Enomoto  <atsushi@ximian.com>
2288
2289         renamed ChannelListenerBase.cs to ChannelListenerBase_1.cs.
2290
2291 2005-11-21  Atsushi Enomoto  <atsushi@ximian.com>
2292
2293         * ChannelBase.cs : tiny filename fix.
2294         * ChannelListenerBase.cs : added more .ctor()s.
2295
2296 2005-11-21  Atsushi Enomoto  <atsushi@ximian.com>
2297
2298         * HttpListenerFactory.cs LayeredChannelListener.cs HttpListener.cs
2299           ListenerFactoryBase.cs ChannelListenerBase.cs :
2300           updated IListener related stuff to Nov. CTP.
2301           file renaming will come soon.
2302
2303 2005-11-21  Atsushi Enomoto  <atsushi@ximian.com>
2304
2305         * ListenerBase.cs, ChannelListenerBase.cs :
2306           moved from former to latter.
2307         * LayeredListenerFactory.cs, LayeredChannelListener.cs :
2308           moved from former to latter.
2309
2310 2005-11-20  Atsushi Enomoto  <atsushi@ximian.com>
2311
2312         * SessionFaultedException.cs : removed in Nov. CTP
2313
2314 2005-11-20  Atsushi Enomoto  <atsushi@ximian.com>
2315
2316         * CommunicationObject.cs : updated to Nov. CTP.
2317         * SessionFaultedException.cs : removed (in Nov. CTP)
2318
2319 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
2320
2321         * TextMessageEncoder.cs : kinda implemented (untested; Message is not
2322           working).
2323
2324 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
2325
2326         * MtomMessageEncoder.cs, BinaryMessageEncoderFactory.cs,
2327           TextMessageEncoderFactory.cs, BinaryMessageEncoder.cs,
2328           TextMessageEncoder.cs, MtomMessageEncoderFactory.cs : new files.
2329         * MessageEncoder.cs : largely implemented.
2330
2331 2005-11-02  Atsushi Enomoto  <atsushi@ximian.com>
2332
2333         * IRequestReplyCorrelator.cs : new file.
2334
2335 2005-11-02  Atsushi Enomoto  <atsushi@ximian.com>
2336
2337         * CommunicationObject.cs : OnClose() and OnError() are not virtual.
2338         * DirectionalAction.cs : implemented IComparable<DirectionalAction>.
2339         * MessageEncoder.cs : added misssing ToString().
2340
2341 2005-11-02  Atsushi Enomoto  <atsushi@ximian.com>
2342
2343         * ChannelBehaviorCollection.cs : moved to sys.sm.
2344
2345 2005-10-28  Atsushi Enomoto  <atsushi@ximian.com>
2346
2347         * HttpListenerFactory.cs, HttpListener.cs : new files.
2348         * ListenerFactoryBase.cs, ChannelManagerBase.cs,
2349           CommunicationObject.cs, ChannelFactoryBase.cs,
2350           StreamUpgradeProvider.cs, ChannelBase.cs : timeouts are now
2351           protected internal.
2352         * CommunicationObject.cs : Aborted is bool. Added InternalClose()
2353         * ListenerFactoryBase.cs : kinda implemented GetListeners().
2354
2355 2005-10-26  Atsushi Enomoto  <atsushi@ximian.com>
2356
2357         * ListenerFactoryBase.cs : some implementation.
2358
2359 2005-10-26  Atsushi Enomoto  <atsushi@ximian.com>
2360
2361         * CommunicationObject.cs : more state fixes.
2362
2363 2005-10-26  Atsushi Enomoto  <atsushi@ximian.com>
2364
2365         * CommunicationObject.cs : some state machine fixes.
2366
2367 2005-10-26  Atsushi Enomoto  <atsushi@ximian.com>
2368
2369         * PeerNode.cs, ChannelManagerBase.cs :
2370           several API fixes detected by improved corcompare.
2371
2372 2005-10-25  Atsushi Enomoto  <atsushi@ximian.com>
2373
2374         * LayeredListenerFactory.cs : added missing generic class constraint.
2375
2376 2005-10-25  Atsushi Enomoto  <atsushi@ximian.com>
2377
2378         * ListenerFactoryBase.cs,
2379           ListenerBase.cs : class constraints were missing for generic args.
2380
2381 2005-10-24  Atsushi Enomoto  <atsushi@ximian.com>
2382
2383         * StreamUpgradeInitiator.cs : tiny API fix.
2384
2385 2005-10-23  Atsushi Enomoto  <atsushi@ximian.com>
2386
2387         * PeerMessagePropagationFilter.cs : tiny build fix.
2388
2389 2005-10-23  Atsushi Enomoto  <atsushi@ximian.com>
2390
2391         * HttpRequestMessageProperty.cs, HttpResponseMessageProperty.cs :
2392           added Name. fixed StatusCode type.
2393         * StreamSecurityUpgradeInitiator.cs, StreamUpgradeAcceptor.cs,
2394           PeerNode.cs, StreamSecurityUpgradeAcceptor.cs,
2395           StreamUpgradeProvider.cs, StreamUpgradeInitiator.cs,
2396           DirectionalAction.cs, HostedTransportConfiguration.cs,
2397           StreamSecurityUpgradeProvider.cs, SessionFaultedException.cs,
2398           PeerMessagePropagationFilter.cs : added missing files.
2399         * Dummy.cs : removed. MSMQ stuff can be added later.
2400
2401 2005-10-21  Atsushi Enomoto  <atsushi@ximian.com>
2402
2403         * DeliveryStatus.cs, DeliveryFailure.cs,
2404           HttpRequestMessageProperty.cs, PeerMessageOrigination.cs,
2405           PeerMessagePropagation.cs, HttpResponseMessageProperty.cs :
2406           new files.
2407         * Dummy.cs : removed above.
2408
2409 2005-10-18  Atsushi Enomoto  <atsushi@ximian.com>
2410
2411         * ChannelFactoryBase.cs : tiny .ctor() delegation fix.
2412
2413 2005-10-09  Atsushi Enomoto  <atsushi@ximian.com>
2414
2415         * MessageEncoderFactory.cs, LayeredListenerFactory.cs,
2416           MessageEncoder.cs, BufferManager.cs : new files.
2417         * Dummy.cs : removed above.
2418
2419 2005-10-09  Atsushi Enomoto  <atsushi@ximian.com>
2420
2421         * ChannelBase.cs, ChannelBehaviorCollection.cs : new channel files.
2422         * Dummy.cs : removed above.
2423         * CommunicationObject.cs, ListenerFactoryBase.cs : added missing bits.
2424
2425 2005-10-09  Atsushi Enomoto  <atsushi@ximian.com>
2426
2427         * HttpChannelFactory.cs : new file.
2428
2429 2005-10-08  Atsushi Enomoto  <atsushi@ximian.com>
2430
2431         * IReplyChannel.cs, IRequestContext.cs, IRequestChannel.cs:
2432           moved to ../System.ServiceModel (correct location).
2433         * ChannelFactoryBase.cs, LayeredChannelFactory.cs, TransferMode.cs:
2434           new files for channels.
2435         * Dummy.cs : reflected above changes.
2436         * ChannelManagerBase.cs : added a bit of code and todos.
2437
2438 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
2439
2440         * ChannelManagerBase.cs, ListenerBase.cs, ListenerFactoryBase.cs :
2441           added listener support files.
2442         * Dummy.cs : removed above.
2443
2444 2005-10-03  Atsushi Enomoto  <atsushi@ximian.com>
2445
2446         * IReplyChannel.cs, IRequestContext.cs, IRequestChannel.cs :
2447           added request/reply channel interfaces.
2448         * Dummy.cs : removed above.
2449         * CommunicationObject.cs : FIXME comments.
2450
2451 2005-10-03  Atsushi Enomoto  <atsushi@ximian.com>
2452
2453         * CommunicationObject.cs : implemented some members.
2454
2455 2005-09-29  Atsushi Enomoto  <atsushi@ximian.com>
2456
2457         * CommunicationObject.cs : some signature fixes.
2458