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