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