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