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