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