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