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