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