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