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