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