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