1 2010-03-29 Atsushi Enomoto <atsushi@ximian.com>
3 * FaultConverter.cs : implemented TryCreateException().
5 2010-03-29 Atsushi Enomoto <atsushi@ximian.com>
7 * MessageFault.cs : cosmetic method name clarification.
9 2010-03-29 Atsushi Enomoto <atsushi@ximian.com>
11 * XmlReaderBodyWriter.cs, Message.cs, MessageImpl.cs, BodyWriter.cs:
12 fix BodyWriter buffering that dropped in-scope namespaces and thus
13 caused problem on resolving QNames.
15 2010-03-26 Atsushi Enomoto <atsushi@ximian.com>
17 * FaultConverter.cs : do implement OnTryCreateFaultMessage() to work
18 with certain Exception types.
20 2010-03-26 Atsushi Enomoto <atsushi@ximian.com>
22 * Message.cs : fix explanation on CreateMessage() overloads.
24 2010-03-26 Atsushi Enomoto <atsushi@ximian.com>
26 * MessageFault.cs : Write Subcode element correctly and fix wrong
27 Code/Value/Subcode element relationship. Give better error message.
29 2010-03-26 Atsushi Enomoto <atsushi@ximian.com>
31 * HttpRequestChannel.cs : ok, no need for conditional code path.
33 2010-03-26 Atsushi Enomoto <atsushi@ximian.com>
35 * AddressingVersion.cs : add fault action namespace.
37 2010-03-26 Sebastien Pouliot <sebastien@ximian.com>
39 * HttpRequestChannel.cs: There is no WebHeaderCollection.Add
42 2010-03-26 Atsushi Enomoto <atsushi@ximian.com>
44 * MessageImpl.cs : pass IsFault argument in OnCreateBufferedCopy().
46 2010-03-26 Atsushi Enomoto <atsushi@ximian.com>
48 * HttpRequestContext.cs, AspNetRequestContext.cs : return HTTP 500
51 2010-03-26 Atsushi Enomoto <atsushi@ximian.com>
53 * HttpRequestChannel.cs : create HttpResponseMessageProperty.
55 2010-03-25 Atsushi Enomoto <atsushi@ximian.com>
57 * HttpRequestContext.cs : removed HTTP status rewriting for
60 2010-03-25 Atsushi Enomoto <atsushi@ximian.com>
62 * HttpRequestChannel.cs : handle only 4xx errors as to not process
65 2010-03-25 Atsushi Enomoto <atsushi@ximian.com>
67 * MessageFault.cs : do not use SOAP11 namespace for fault contents.
69 2010-03-24 Atsushi Enomoto <atsushi@ximian.com>
71 * ReplyChannelBase.cs, HttpReplyChannel.cs : add some locking.
72 Patch by Matt Dargavel.
74 2010-03-24 Atsushi Enomoto <atsushi@ximian.com>
76 * HttpListenerManager.cs : use lock object which is subject to
77 change. Fix by Matt Dargavel.
79 2010-03-24 Atsushi Enomoto <atsushi@ximian.com>
81 * HttpListenerManager.cs : remove consumed HttpListenerContext from
82 the pending queue. Compare "wsdl" request in case insensitive
83 manner. Patch by Matt Dargavel.
85 2010-03-24 Atsushi Enomoto <atsushi@ximian.com>
87 * HttpRequestContext.cs : apply the patch by Matt Dargavel, which is
88 supposed to provide detailed 400 error message.
90 2010-03-24 Atsushi Enomoto <atsushi@ximian.com>
92 * TransactionFlowBindingElement.cs: revamp the previous change to
93 not regress regarding service metadata.
95 2010-03-24 Atsushi Enomoto <atsushi@ximian.com>
97 * ChannelListenerBase.cs, TransactionFlowBindingElement.cs: fix
98 GetProperty<T>() bug that fails to retrieve properties. (This may
99 be rewritten later if an ongoing change proposal is to take place.)
101 2010-03-18 Atsushi Enomoto <atsushi@ximian.com>
103 * ReliableSessionBindingElement.cs,
104 PrivacyNoticeBindingElement.cs,
105 RemoteEndpointMessageProperty.cs : added some missing types.
107 2010-03-17 Atsushi Enomoto <atsushi@ximian.com>
109 * MessageHeaders.cs :
110 why does it filter out most of the headers? kill it.
112 2010-03-17 Atsushi Enomoto <atsushi@ximian.com>
114 * SvcHttpHandler.cs, AspNetReplyChannel.cs, HttpChannelListener.cs,
115 HttpListenerManager.cs : refactoring on acquiring SvcHttpHandler
116 to not raise "not found" error (see bug #573795).
118 2010-03-16 Jb Evain <jbevain@novell.com>
120 * HttpRequestChannel.cs, HttpTransportBindingElement.cs: use
121 MOONLIGHT symbol to disambiguate MonoTouch and Moonlight code.
123 2010-03-09 Atsushi Enomoto <atsushi@ximian.com>
125 * HttpListenerManager.cs : For ASP.NET, use correct GenericIdentity
126 type, and use null password unless we find a chance to get password
127 in ASP.NET HttpContext.
129 2010-03-03 Atsushi Enomoto <atsushi@ximian.com>
131 * HttpReplyChannel.cs, AspNetReplyChannel.cs, HttpChannelListener.cs,
132 HttpListenerManager.cs : ongoing authentication support. It returns
133 401 as expected, but somehow fails to retrieve user info.
135 2010-02-10 Atsushi Enomoto <atsushi@ximian.com>
137 * HttpListenerManager.cs : this change (along with HttpListener
138 implementation) somehow fixes basic auth. connection error...
140 2010-02-10 Atsushi Enomoto <atsushi@ximian.com>
142 * MessageHeaders.cs : add !NET_2_1.
144 2010-02-10 Atsushi Enomoto <atsushi@ximian.com>
146 * MessageHeader.cs, MessageHeaders.cs : add nasty workaround for
147 typed UniqueId output.
149 2010-02-10 Atsushi Enomoto <atsushi@ximian.com>
151 * MessageHeader.cs : no need to treat EndpointAddress as a special
154 2010-02-10 Atsushi Enomoto <atsushi@ximian.com>
156 * MessageHeaders.cs : remove duplicate constant.
158 2010-02-10 Atsushi Enomoto <atsushi@ximian.com>
160 * MessageHeader.cs, MessageHeaders.cs: MessageHeader does not treat
161 EndpointAddress as a special case. Instead, each MessageHeaders
162 property should convert it to appropriate serializable objects.
164 (Our DataContractSerializer fails to reject EndpointAddress as
165 serializable type, so it's rather a preparation step.)
167 2010-02-10 Atsushi Enomoto <atsushi@ximian.com>
169 * MessageHeader.cs, Message.cs : use dictionary string whenever
170 applicable. The binary output on #577139 is getting closer (no
171 idea if it is really about binary output though).
173 2010-02-10 Atsushi Enomoto <atsushi@ximian.com>
175 * BinaryMessageEncoder.cs : moved soap_dictionary to Constants.
177 2010-02-05 Atsushi Enomoto <atsushi@ximian.com>
179 * HttpTransportBindingElement.cs : ... and add MONOTOUCH on #ifs.
181 2010-02-05 Atsushi Enomoto <atsushi@ximian.com>
183 * HttpRequestChannel.cs, HttpTransportBindingElement.cs :
184 enable authentication schemes on monotouch.
186 2010-02-04 Atsushi Enomoto <atsushi@ximian.com>
188 * SvcHttpHandler.cs : a wait handle could be used for more than one
189 requests and hence it sometimes blocked one reply channel. Now
190 it creates a wait handle for each ASP.NET request so that such
191 multiple use should not occur. This should fix blocking on
192 concurrent requests (it indeed fixes as long as I can see).
194 2010-02-04 Atsushi Enomoto <atsushi@ximian.com>
196 * AspNetReplyChannel.cs : remove garbage output.
198 2010-02-04 Atsushi Enomoto <atsushi@ximian.com>
200 * SvcHttpHandler.cs : Use lock when it tries to create the service
203 2010-02-02 Atsushi Enomoto <atsushi@ximian.com>
205 * SvcHttpHandlerFactory.cs : lock when it tries to acquire
208 2010-02-02 Atsushi Enomoto <atsushi@ximian.com>
210 * HttpListenerManager.cs : add another workaround for blocking
213 2010-02-02 Atsushi Enomoto <atsushi@ximian.com>
215 * HttpListenerManager.cs : small refactoring.
217 2010-01-22 Atsushi Enomoto <atsushi@ximian.com>
219 * TcpDuplexSessionChannel.cs : added a workaround receiver delay
220 that somehow makes callback client to not cause infinite loop.
222 2010-01-22 Atsushi Enomoto <atsushi@ximian.com>
224 * TcpDuplexSessionChannel.cs, PeerDuplexChannel.cs,
225 DuplexChannelBase.cs : Receive() should rather use TryReceive().
226 It should not be in reverse order.
228 2010-01-22 Atsushi Enomoto <atsushi@ximian.com>
230 * HttpReplyChannel.cs, HttpListenerManager.cs :
231 Implement async cancellation in the expected manner (though with
232 some hack). This mostly removed nunit blockers.
234 2010-01-22 Atsushi Enomoto <atsushi@ximian.com>
236 * CommunicationObject.cs : fix wrong status changes.
238 2010-01-20 Atsushi Enomoto <atsushi@ximian.com>
240 * AddressHeader.cs : XmlSchema.InstanceNamespace didn't exist in 2.1 :(
242 2010-01-20 Atsushi Enomoto <atsushi@ximian.com>
244 * AddressHeader.cs : implement remaining bits.
245 Eliminate dependency on NetDataContractSerializer.
247 2010-01-20 Atsushi Enomoto <atsushi@ximian.com>
249 * CommunicationObject.cs : in Fault(), do similar work as previous
252 2010-01-19 Atsushi Enomoto <atsushi@ximian.com>
254 * CommunicationObject.cs : when process state changes, lock the
255 object to make sure the state transition is valid.
256 Change OnClosed/OnClosing to do the way OnOpened/OnOpening does.
258 2010-01-13 Atsushi Enomoto <atsushi@ximian.com>
260 * MessageHeaders.cs : implement SetAction().
262 2010-01-13 Atsushi Enomoto <atsushi@ximian.com>
264 * ChannelFactoryBase.cs : fix build.
266 2010-01-13 Atsushi Enomoto <atsushi@ximian.com>
268 * ChannelBase.cs : cosmetic API fix for SL3.
270 2010-01-13 Atsushi Enomoto <atsushi@ximian.com>
272 * ChannelFactoryBase.cs :
273 implement On{Begin/End}Close() on the generic type.
275 2010-01-13 Atsushi Enomoto <atsushi@ximian.com>
277 * HttpChannelFactory.cs, TcpChannelFactory.cs,
278 ChannelFactoryBase.cs, NamedPipeChannelFactory.cs
279 PeerChannelFactory.cs, HttpRequestChannel.cs:
280 fix ChannelFactoryBase API; move On(Begin/End)Open() to internal
281 type and made required changes.
283 2010-01-13 Atsushi Enomoto <atsushi@ximian.com>
285 * HttpCookieContainerBindingElement.cs : new.
286 * IHttpCookieContainer.cs : fix type name.
287 * HttpRequestChannel.cs, HttpChannelFactory.cs : support above.
289 2010-01-07 Atsushi Enomoto <atsushi@ximian.com>
291 * TcpBinaryFrameManager.cs : treat EOF as interrupted stream too (it
292 does not happen when communicating with .NET client but happens with
293 mono). Seealso FIXME comment.
294 * TcpDuplexSessionChannel.cs : do not try to close session when it
295 failed to read sized message. The connection is already dead.
299 2010-01-07 Atsushi Enomoto <atsushi@ximian.com>
301 * TcpDuplexSessionChannel.cs :
302 Write EndRecord only when the connection is available.
303 Remove hack - do let ChannelDispatcher close the channel.
304 * TcpBinaryFrameManager.cs :
305 The socket may be disconnected when trying to read a sized message,
306 so check some socket exceptions.
307 In case the client silently shuts down without EndRecord and
308 reconnects to the server with preamble while expecting a sized
309 message (which is so lame, but that's what .NET often does), refresh
310 preamble and continue.
312 This fixes some cases of bug #567949 but not all.
314 2010-01-06 Atsushi Enomoto <atsushi@ximian.com>
316 * BinaryMessageEncoder.cs : enable workaround buffering only when
317 the argument stream does *not* support seek. This fixes some
318 net.tcp connection problem.
320 2009-12-26 Atsushi Enomoto <atsushi@ximian.com>
322 * TcpBinaryFrameManager.cs : If preamble byte is not available from
323 the client stream, detect it to close the reply or input channel.
324 * TcpRequestChannel.cs : send preamble at each request time.
325 It differentiates communication behavior on such cases that involve
326 single open and multiple requests.
327 * TcpReplyChannel.cs : close the channel only when the channel is
328 oeprated to close i.e. do not close the socket every time.
329 Process preambles on each request (the same as request channel).
331 2009-12-26 Atsushi Enomoto <atsushi@ximian.com>
333 * TcpBinaryFrameManager.cs : unsized envelope record may have more
334 than one data block, so consume them accordingly. This should fix
335 large buffer consumption.
337 2009-12-21 Atsushi Enomoto <atsushi@ximian.com>
339 * MessageFault.cs : support EnvelopeVersion.None as well, as almost
342 2009-12-17 Atsushi Enomoto <atsushi@ximian.com>
344 * HttpRequestContext.cs : for DestinationUnreachable message, this
345 channel returns 400 in .NET.
347 2009-12-16 Atsushi Enomoto <atsushi@ximian.com>
349 * BinaryMessageEncoder.cs : added workaround for strange stream
350 consumption error raised by HttpTransport + Binary encoder example.
351 * BinaryMessageEncodingBindingElement.cs:
352 only SOAP 1.2 is allowed for this encoder.
354 2009-12-14 Atsushi Enomoto <atsushi@ximian.com>
356 * XmlReaderBodyWriter.cs : don't try to write empty xml.
358 2009-12-10 Atsushi Enomoto <atsushi@ximian.com>
360 * HttpRequestChannel.cs : avoid adding duplicate headers. Basically
361 default WebHeaderCollection items are overwritten.
363 2009-12-10 Atsushi Enomoto <atsushi@ximian.com>
365 * HttpRequestChannel.cs : when HTTP response was error, do not try
366 to read message but just raise an error.
368 2009-12-10 Atsushi Enomoto <atsushi@ximian.com>
370 * MessageHeaders.cs : null can be set as a WS-Addressing header item.
372 2009-12-10 Atsushi Enomoto <atsushi@ximian.com>
374 * HttpRequestChannel.cs : WebException.Response might be null.
376 2009-12-04 Atsushi Enomoto <atsushi@ximian.com>
378 * ReplyChannelBase.cs : added listener property.
379 * SecurityChannelListener.cs : quick async impl, as ServiceHost has
380 been updated to prefer async by default, a while ago.
382 2009-12-04 Atsushi Enomoto <atsushi@ximian.com>
384 * HttpTransportBindingElement.cs : finished all GetProperty() values.
386 2009-12-04 Atsushi Enomoto <atsushi@ximian.com>
388 * HttpRequestChannel.cs : disabled carelessly added
389 "UseDefaultCredentials = false" line. It blocked basic auth.
391 2009-12-04 Atsushi Enomoto <atsushi@ximian.com>
393 * HttpRequestChannel.cs, HttpChannelFactory.cs,
394 HttpChannelListener.cs, HttpListenerManager.cs :
395 implemented http client authentication and some of corresponding
396 service code. Only client works so far.
398 2009-12-03 Atsushi Enomoto <atsushi@ximian.com>
400 * HttpsTransportBindingElement.cs, HttpChannelListener.cs :
401 added URI scheme check.
403 2009-12-03 Atsushi Enomoto <atsushi@ximian.com>
405 * TransportSecurityBindingElement.cs : fix 2.1 build.
407 2009-12-03 Atsushi Enomoto <atsushi@ximian.com>
409 * HttpsTransportBindingElement.cs :
410 RequireClientCertificate is false by default.
411 Remove extra #if NET_2_1.
412 * SecurityBindingElement.cs :
413 Implement some transport security factory methods.
414 * TransportSecurityBindingElement.cs :
415 It is not ISecurityCapabilities anymore.
417 2009-11-25 Atsushi Enomoto <atsushi@ximian.com>
420 SecurityBindingElement.cs
421 LocalClientSecuritySettings.cs
422 TransportSecurityBindingElement.cs
423 FaultConverter.cs : They are now part of SL3 API.
425 2009-11-17 Atsushi Enomoto <atsushi@ximian.com>
427 * BinaryMessageEncodingBindingElement.cs : changes for 2.1 build.
429 2009-11-05 Geoff Norton <gnorton@novell.com>
431 * HttpsTransportBindingElement.cs: Implement basic https transport
432 binding support for Moonlight and MonoTouch
434 2009-10-22 Atsushi Enomoto <atsushi@ximian.com>
436 * HttpListenerManager.cs : remove CWLs.
438 2009-10-22 Atsushi Enomoto <atsushi@ximian.com>
440 * SvcHttpHandler.cs : move back previous listener selector code in
441 ProcessRequest(). Unlike HttpListener, ASP.NET does not refine
442 and differentiate requests to deeper paths (such as /jsdebug), so
443 we need such refinement here.
445 2009-10-22 Atsushi Enomoto <atsushi@ximian.com>
447 * HttpListenerManager.cs : dependent fix to ServiceMetadataExtension
450 2009-10-22 Atsushi Enomoto <atsushi@ximian.com>
452 * SvcHttpHandler.cs, HttpReplyChannel.cs, AspNetReplyChannel.cs,
453 HttpChannelListener.cs, HttpListenerManager.cs :
454 Similar refactoring on ASP.NET side to the previous one.
455 Added ASP.NET implementation of HttpListenerManager and use some
456 part of it in SvcHttpHandler (ASP.NET stack does not fully make use
458 Rewrote AspNetReplyChannel to become almost the same as
459 HttpSimpleReplyChannel, to hopefully unify them later.
460 Now it dispatches requests to *.svc for wsdl, help and SOAP as long
461 as ServiceThrottle has MaxConcurrentSessions=1. Also REST calls
464 2009-10-20 Atsushi Enomoto <atsushi@ximian.com>
466 * HttpReplyChannel.cs, HttpChannelListener.cs, HttpListenerManager.cs:
467 Refactoring on listener manager to correctly handle wsdl and help
468 requests for such case that they conflict in addressing. Now it
469 can correctly distinguish service calls, WSDL requests and help
470 requests when all of them point to "http://localhost/foo.svc"
471 (which is very common case that the user does not change Http*Url).
473 2009-10-16 Atsushi Enomoto <atsushi@ximian.com>
475 * ChannelListenerBase.cs : add Properties property to add arbitrary
476 properties handy (only inside this assembly).
478 2009-10-16 Atsushi Enomoto <atsushi@ximian.com>
480 * HttpReplyChannel.cs : fix warning.
482 2009-10-15 Atsushi Enomoto <atsushi@ximian.com>
484 * HttpReplyChannel.cs, AspNetReplyChannel.cs : set Via property.
486 2009-10-15 Atsushi Enomoto <atsushi@ximian.com>
488 * HttpReplyChannel.cs : make sure to release wait lock.
489 * HttpChannelListener.cs : session channels are not supported, so
490 remove relevant NIEs.
492 2009-10-15 Sebastien Pouliot <sebastien@ximian.com>
494 * HttpRequestChannel.cs (WaitEnd): Neither Moonlight nor MonoTouch
495 support contexts so we call the non-overloaded WaitOne method
496 (which defaults to false).
498 2009-10-13 Atsushi Enomoto <atsushi@ximian.com>
500 * SvcHttpHandler.cs, AspNetReplyChannel.cs, HttpChannelListener.cs:
501 significant rewrite to cooperate wcf handler and asp.net handler
502 to not mix multiple WCF listener within the asp.net handler.
503 So far it mostly works when 1) there are no ChannelDispatchers
504 that have an identical listen Uri and 2) MaxConcurrentSessions is
505 1 (must be explicitly set).
507 2009-10-13 Atsushi Enomoto <atsushi@ximian.com>
509 * CommunicationObject.cs : give better state error description.
511 2009-10-09 Atsushi Enomoto <atsushi@ximian.com>
513 * CommunicationObject.cs : OnOpening() and OnOpened() require calls
514 to base methods. This resulted in not a few changes everywhere.
516 2009-10-07 Atsushi Enomoto <atsushi@ximian.com>
518 * IHttpCookieContainer.cs : new 2.1-only interface (no use).
520 2009-10-06 Atsushi Enomoto <atsushi@ximian.com>
522 * SvcHttpHandler.cs : use file path given by the factory to
523 construct BaseAddresses. Requests to "test.svc/jsdebug" should
524 not be handled as request to "jsdebug" file, it's rather an
525 "argument" to "test.svc".
527 2009-10-06 Atsushi Enomoto <atsushi@ximian.com>
529 * SvcHttpHandler.cs, HttpChannelListener.cs : some significant
530 rewrite to handle shutdown situation better. The listeners should
531 not close channels that it opened. Instead, just stop accepting
532 further requests. Removed blocking mutex on WaitForRequest().
533 Now xsp shuts down as expected.
535 2009-10-06 Atsushi Enomoto <atsushi@ximian.com>
537 * HttpReplyChannel.cs : lock list when releasing its content contexts.
538 * AspNetReplyChannel.cs : send EndRequest() to handler when it is
541 2009-10-06 Atsushi Enomoto <atsushi@ximian.com>
543 * SvcHttpHandlerFactory.cs : remove todo.
544 * ReplyChannelBase.cs : add comment.
546 2009-10-02 Atsushi Enomoto <atsushi@ximian.com>
548 * HttpTransportBindingElement.cs, SvcHttpHandlerFactory.cs :
549 revert the change, to use internal asp.net state again.
550 * SvcHttpHandler.cs : add VirtualPathExtension.
552 2009-10-02 Atsushi Enomoto <atsushi@ximian.com>
554 * HttpReplyChannel.cs, AspNetReplyChannel.cs, AspNetRequestContext.cs:
555 asp.net response was not written correctly.
556 Fill HttpRequestMessageProperty to get handle WSDL requests
557 processed in ServiceMetadataExtension without NRE.
558 Remove wrong HttpListenerContext iteration at Abort and Close in
559 common base class and move it to non-asp derived channel.
561 2009-10-02 Atsushi Enomoto <atsushi@ximian.com>
563 * SvcHttpHandler.cs : remove unused code.
565 2009-09-30 Jb Evain <jbevain@novell.com>
567 * HttpRequestChannel.cs: When compiling for MonoTouch, avoid
568 to use any of the remoting features.
570 2009-09-30 Atsushi Enomoto <atsushi@ximian.com>
572 * SvcHttpHandlerFactory.cs, HttpTransportBindingElement.cs :
573 use AspNetCompatibilityEnabled.
574 * SvcHttpHandler.cs : disable ApplyConfiguration(). It should be done
576 * AspNetReplyChannel.cs : remove extra field.
578 2009-09-29 Atsushi Enomoto <atsushi@ximian.com>
580 * HttpReplyChannel.cs : remove extra field.
582 2009-09-29 Atsushi Enomoto <atsushi@ximian.com>
584 * AspNetRequestContext.cs : remove CWL.
586 2009-09-29 Atsushi Enomoto <atsushi@ximian.com>
588 * AspNetReplyChannel.cs, AspNetRequestContext.cs : close HttpContext
589 only after AspNetRequestContext is closed. Do not close it
590 immediately after receiving the context. (HttpRuntime destructs it
591 and further uses then becomes impossible.)
593 2009-09-29 Atsushi Enomoto <atsushi@ximian.com>
595 * AspNetReplyChannel.cs, HttpReplyChannel.cs : add some comments.
596 * SvcHttpHandlerFactory.cs, SvcHttpHandler.cs, HttpChannelListener.cs:
597 Make sure that AspNetChannelListener is bound to correct
598 SvcHttpHandler, regardless of specific request URI. It is required
599 for both WSDL requests and RESTful binding requests.
601 2009-09-14 Atsushi Enomoto <atsushi@ximian.com>
603 * MessageProperties.cs : fix CopyProperties() behavior to not
604 clear existing items. Make all properties call this[name].
606 2009-09-14 Atsushi Enomoto <atsushi@ximian.com>
608 * HttpTransportBindingElement.cs : fix 2.1 build.
610 2009-09-14 Atsushi Enomoto <atsushi@ximian.com>
612 * TransportBindingElement.cs : another GetProperty fix, iterate
613 other binding elements.
615 2009-09-14 Atsushi Enomoto <atsushi@ximian.com>
617 * HttpTransportBindingElement.cs, PeerTransportBindingElement.cs :
618 some GetProperty() implementation.
620 2009-09-14 Atsushi Enomoto <atsushi@ximian.com>
622 * HttpListenerManager.cs : release HttpListener and avoid extra
623 close process more than once.
625 2009-09-11 Atsushi Enomoto <atsushi@ximian.com>
627 * HttpChannelListener.cs : do not iterate channel list to close
628 channels which in turn removes them from the list while iteration.
630 2009-09-06 Atsushi Enomoto <atsushi@ximian.com>
632 * HttpRequestChannel.cs : Fix message version member comparison.
633 Double-quote SOAPAction. Remove extra Exception.
634 * HttpReplyChannel.cs : ditto for version comparison. Unquote above.
635 * HttpRequestContext.cs : when addressing is None, remove action
638 2009-09-04 Atsushi Enomoto <atsushi@ximian.com>
640 * SvcHttpHandler.cs : set Uri property based on baseAddresses and
641 path, to pick those endpoints that are added at custom factories.
643 2009-09-03 Atsushi Enomoto <atsushi@ximian.com>
645 * SvcHttpHandler.cs : apply configuration, and if there is still no
646 endpoint, then add default one.
648 2009-09-03 Atsushi Enomoto <atsushi@ximian.com>
650 * SvcHttpHandler.cs : another URL to make relative.
652 2009-09-03 Atsushi Enomoto <atsushi@ximian.com>
654 * SvcHttpHandlerFactory.cs : some GetHandler changes.
655 * SvcHttpHandler.cs : significant changes on receiver structure. Now
656 ProcessRequest() stores pending requests (this might be extraneous,
657 but maybe useful when it implements async handler). Also removed
658 reply_channel field as it may become to handle multiple requests.
659 * HttpChannelListener.cs : bind to corresponding SvcHttpHandler.
660 * AspNetReplyChannel.cs : make it receive requests like
661 HttpReplyChannel (for HttpListener) to make them consistent.
663 2009-09-03 Atsushi Enomoto <atsushi@ximian.com>
665 * AspNetRequestContext.cs, HttpRequestContext.cs :
666 fix NRE on HttpListenerContext for AspNetRequestContext (mismatch)
667 by splitting HttpListener-based context out from common code base.
669 2009-09-03 Atsushi Enomoto <atsushi@ximian.com>
671 * SvcHttpHandler.cs : use baseAddresses in ServiceHost and make URIs
672 relative or absolute. new Uri ("/foobar") doesn't work on non-unix
675 2009-09-02 Atsushi Enomoto <atsushi@ximian.com>
677 * SvcHttpHandlerFactory.cs : make use of BuildManager aid. Now it
678 loads types from system assemblies appropriately.
680 2009-09-02 Atsushi Enomoto <atsushi@ximian.com>
682 * XmlReaderBodyWriter.cs : implement OnCreateBufferedCopy()
685 2009-09-02 Atsushi Enomoto <atsushi@ximian.com>
687 * HttpRequestMessageProperty.cs : fix default values.
689 2009-08-31 Atsushi Enomoto <atsushi@ximian.com>
691 * HttpChannelFactory.cs, HttpRequestChannel.cs,
692 ChannelFactoryBase.cs : fix to previous one; allow null Via uri.
693 Check ManualAddressing value and reject address-missing ones.
695 2009-08-31 Atsushi Enomoto <atsushi@ximian.com>
697 * HttpChannelFactory.cs : reject URI mismatch cases when required.
699 2009-08-26 Atsushi Enomoto <atsushi@ximian.com>
701 * PeerDuplexChannel.cs : When received Connect() from neighbor,
702 add the peer to its internal list.
703 Finally ChatApplication got working.
705 2009-08-26 Atsushi Enomoto <atsushi@ximian.com>
707 * PeerDuplexChannel.cs : since the channel factory is per instance,
708 do not reuse factory that is tied to different callback instance.
709 It resolved the issue that mono callback client didn't receive
710 messages from the client itself.
712 2009-08-26 Atsushi Enomoto <atsushi@ximian.com>
714 * PeerDuplexChannel.cs : in the Welcome response, return the NodeId
715 of the receiver, not the requestor. It resolved the issue that
716 .NET client didn't send further messages to mono server.
718 2009-08-26 Atsushi Enomoto <atsushi@ximian.com>
720 * PeerDuplexChannel.cs : remove some comment on [MC-PRCH] behavior.
721 * TcpDuplexSessionChannel.cs, TcpBinaryFrameManager.cs,
722 TcpReplyChannel.cs, TcpRequestChannel.cs,
723 NamedPipeReplyChannel.cs, NamedPipeRequestChannel.cs:
724 rename EndRecord handling method to appropriate one.
725 Write EndRecord from recipient too.
727 2009-08-24 Atsushi Enomoto <atsushi@ximian.com>
729 * PeerDuplexChannel.cs : add PeerFlooder header (see comment).
730 Process PeerTo header to upgrade Message To header. Now mono
731 service accepts mono client (somehow not true for .NET client).
733 2009-08-24 Atsushi Enomoto <atsushi@ximian.com>
735 * TcpDuplexSessionChannel.cs, TcpRequestChannel.cs,
736 NamedPipeRequestChannel.cs : no need to add ReplyTo headers.
738 2009-08-24 Atsushi Enomoto <atsushi@ximian.com>
740 * PeerDuplexChannel.cs : fix PeerTo/PeerVia header namespace.
742 2009-08-24 Atsushi Enomoto <atsushi@ximian.com>
744 * TcpDuplexSessionChannel.cs : check channel state before processing
747 2009-08-20 Atsushi Enomoto <atsushi@ximian.com>
749 * NamedPipeReplyChannel.cs, NamedPipeRequestChannel.cs,
750 NamedPipeChannelFactory.cs, NamedPipeChannelListener.cs :
751 ongoing works, not working at all yet.
753 2009-08-20 Atsushi Enomoto <atsushi@ximian.com>
755 * TcpChannelListener.cs, TcpReplyChannel.cs :
756 cosmetic cleanup and corrections.
758 2009-08-20 Atsushi Enomoto <atsushi@ximian.com>
760 * TcpChannelFactory.cs : use expected Via uri.
761 Remove extra NIE stuff that are implemented in base.
763 2009-08-20 Atsushi Enomoto <atsushi@ximian.com>
765 * TcpDuplexSessionChannel.cs : remove extra code.
767 2009-08-20 Atsushi Enomoto <atsushi@ximian.com>
769 * PeerDuplexChannel.cs : ongoing implementation towards get callback
770 replies on peer connector clients (not working as duplex client
771 callback is not working yet).
773 2009-08-20 Atsushi Enomoto <atsushi@ximian.com>
775 * TcpDuplexSessionChannel.cs : in callback client channels,
776 OperationContext.IncomingMessageHeaders is null.
778 2009-08-20 Atsushi Enomoto <atsushi@ximian.com>
780 * MessageHeaders.cs : duplicate check was sloppy.
782 2009-08-18 Atsushi Enomoto <atsushi@ximian.com>
784 * Message.cs, MessageImpl.cs, BodyWriter.cs :
785 Implement BodyWriter.OnCreateBufferedCopy() and use it.
787 2009-08-18 Atsushi Enomoto <atsushi@ximian.com>
789 * ReplyChannelBase.cs : initialize field.
791 2009-08-17 Atsushi Enomoto <atsushi@ximian.com>
793 * ReplyChannelBase.cs, DuplexChannelBase.cs, RequestChannelBase.cs:
794 implement GetProperty<T>() and return its channel manager.
796 2009-08-17 Atsushi Enomoto <atsushi@ximian.com>
798 * PeerDuplexChannel.cs : ongoing implementation. Fix wrong peer
799 destination address in Connect() request. To repeat sending
800 request, use buffered copy. Set some peer-channel specific
801 header items. (todo: and consume them.)
803 2009-08-17 Atsushi Enomoto <atsushi@ximian.com>
805 * Message.cs : state is set only after WriteBodyContents().
807 2009-08-17 Atsushi Enomoto <atsushi@ximian.com>
809 * MessageHeaders.cs : eliminate wrong use of
810 ReadElementContentAsString() (it is not always simple string).
812 2009-08-17 Atsushi Enomoto <atsushi@ximian.com>
814 * MessageHeaders.cs : when the value is null, do not try to
815 deserialize EndpointAddress.
817 2009-08-17 Atsushi Enomoto <atsushi@ximian.com>
819 * MessageHeader.cs : add Value property. (Forgot dependent change.)
821 2009-08-17 Atsushi Enomoto <atsushi@ximian.com>
823 * MessageHeaders.cs : GetHeader<T>() could mostly skip extra
824 serialization and deserialization of values.
826 2009-08-14 Atsushi Enomoto <atsushi@ximian.com>
828 * PeerDuplexChannel.cs : handle Welcome and Refuse at client side.
829 Now simply use connector contract.
831 2009-08-14 Atsushi Enomoto <atsushi@ximian.com>
833 * PeerDuplexChannel.cs : handle Disconnect(). Fix URLs a bit.
835 2009-08-14 Atsushi Enomoto <atsushi@ximian.com>
837 * TcpChannelListener.cs : do not try to compare dead connection's
838 IPEndPoint (it raises an error).
840 2009-08-14 Atsushi Enomoto <atsushi@ximian.com>
842 * MessageHeaders.cs : allow null header value on each specific setter.
844 2009-08-14 Atsushi Enomoto <atsushi@ximian.com>
846 * DuplexChannelBase.cs, TcpDuplexSessionChannel.cs :
847 get local and remote address of connected counterpart to get
848 callback channel connected.
849 * PeerDuplexChannel.cs : remove FIXME wrt above.
851 2009-08-07 Atsushi Enomoto <atsushi@ximian.com>
853 * PeerDuplexChannel.cs : add fixme comment and remove extra FIXME.
855 2009-08-07 Atsushi Enomoto <atsushi@ximian.com>
857 * MessageHeader.cs : fill IsReferenceParameter.
859 2009-08-06 Atsushi Enomoto <atsushi@ximian.com>
861 * ReplyChannelBase.cs, TcpReplyChannel.cs, HttpReplyChannel.cs:
862 implement remaining async methods and LocalAddress.
864 2009-08-05 Atsushi Enomoto <atsushi@ximian.com>
866 * PeerDuplexChannel.cs : ongoing listener refactoring. Now it uses
867 ServiceHost to process neighbor connection (not sure if this is
868 right way to go though ...).
870 2009-07-31 Atsushi Enomoto <atsushi@ximian.com>
872 * PeerDuplexChannel.cs : ongoing [MC-PRCH] implementation. Rewrote
873 connection part to use new internal IPeerConnectorContract for
876 2009-07-31 Atsushi Enomoto <atsushi@ximian.com>
878 * ChannelListenerBase_1.cs, TcpChannelListener.cs,
879 PeerChannelListener.cs, HttpChannelListener.cs :
880 support ListenUri accordingly too so that it could be used when
881 it is different from LocalAddress.Uri.
883 2009-07-31 Atsushi Enomoto <atsushi@ximian.com>
885 * TcpChannelFactory.cs, TcpDuplexSessionChannel.cs,
886 TcpRequestChannel.cs : use Via uri to validate and connect.
888 2009-07-31 Atsushi Enomoto <atsushi@ximian.com>
890 * RequestChannelBase.cs, DuplexChannelBase.cs :
891 Return endpoint address Uri when no explicit Via uri is specified.
892 * ChannelFactoryBase.cs : Remove extra async close methods.
893 Add async open methods. Reject null EndpointAddress.
894 * PeerChannelFactory.cs : remove async open methods (now in base).
896 2009-07-31 Atsushi Enomoto <atsushi@ximian.com>
898 * PeerDuplexChannel.cs : set correct message endpoint (To header).
900 2009-07-31 Atsushi Enomoto <atsushi@ximian.com>
902 * TcpDuplexSessionChannel.cs, PeerDuplexChannel.cs,
903 DuplexChannelBase.cs : set LocalAddress property at base.
905 2009-07-30 Atsushi Enomoto <atsushi@ximian.com>
907 * PeerDuplexChannel.cs : ongoing refactoring to work both as
908 listener and client. Now it creates a listening peer node, and
909 creates a set of TCP client channels for each peer in the mesh.
911 (EndpointAddress must be fixed to not filter out correct inputs).
913 2009-07-30 Atsushi Enomoto <atsushi@ximian.com>
915 * PeerChannelListener.cs : do not accept more than one channel
916 which results in lots of listening peer node. Only one is enough.
918 2009-07-30 Atsushi Enomoto <atsushi@ximian.com>
920 * DuplexChannelBase.cs : fix wrong loop implementation.
922 2009-07-28 Atsushi Enomoto <atsushi@ximian.com>
924 * TcpChannelListener.cs : to avoid creating two or more channels
925 for one remote endpoint, check existing remote endpoints and
926 ignore such connections (it must be handled in different thread
927 fired by ChannelDispatcher loop).
929 2009-07-28 Atsushi Enomoto <atsushi@ximian.com>
931 * TcpReplyChannel.cs : make sure to not try to receive request when
932 it is already closed.
934 2009-07-28 Atsushi Enomoto <atsushi@ximian.com>
936 * TcpChannelListener.cs, TcpDuplexSessionChannel.cs :
937 some mannerless clients [*1] do not send EndRecord accordingly, but
938 such channels at listener side should not be kept open. So, close
939 disconnected channels when the listener needs to accept another
941 [*1] see olive/samples/wcf/clientbase/samplecli4.cs.
943 2009-07-28 Atsushi Enomoto <atsushi@ximian.com>
945 * TcpDuplexSessionChannel.cs :
946 Remove extra NIE overrides.
947 Implement OnAbort() apart from OnClose().
948 For duplex session channel, unlike reply channel, it must acquire
949 TCP connection before OnOpen(), otherwise ChannelDispatcher
950 releases the connection acceptance WaitHandle and the detected
951 live connection may be stolen by another channel acceptor.
953 2009-07-28 Atsushi Enomoto <atsushi@ximian.com>
955 * HttpRequestChannel.cs : implement OnAbort().
957 2009-07-24 Atsushi Enomoto <atsushi@ximian.com>
959 * PeerChannelListener.cs : set source field. Remove unnecessary NIE.
960 * DuplexChannelBase.cs : comment out some extra fields (so far).
961 * PeerDuplexChannel.cs : pass valid EndpointAddress to PeerNodeImpl.
963 2009-07-24 Atsushi Enomoto <atsushi@ximian.com>
965 * PeerCustomResolverBindingElement.cs : add some null checks.
967 2009-07-23 Atsushi Enomoto <atsushi@ximian.com>
969 * TcpChannelListener.cs, TcpReplyChannel.cs, TcpRequestChannel.cs:
970 Acquire TcpClient for each request/reply. Now it is fully
971 interoperable with .NET.
973 2009-07-23 Atsushi Enomoto <atsushi@ximian.com>
975 * TcpReplyChannel.cs, TcpRequestChannel.cs: it somehow adds/expects
976 ReplyTo and MessageId (though it is session-less), and it expects
977 EndRecord at weird stage, inconsistent with [MC-NMF]...
978 Now .NET service accepts one mono client request.
980 2009-07-23 Atsushi Enomoto <atsushi@ximian.com>
982 * TcpReplyChannel.cs, TcpRequestChannel.cs, TcpBinaryFrameManager.cs:
983 Send and receive unsized message terminator at once.
984 Send EndRecord mutually. Got one .net client request working.
986 2009-07-23 Atsushi Enomoto <atsushi@ximian.com>
988 * BinaryMessageEncoder.cs : revert the previous dictionary change.
989 They are indeed used for non-in-band-dictionary messages.
991 2009-07-23 Atsushi Enomoto <atsushi@ximian.com>
993 * TcpDuplexSessionChannel.cs, TcpBinaryFrameManager.cs:
994 split out binary frame manager class into separate file.
996 2009-07-21 Atsushi Enomoto <atsushi@ximian.com>
998 * TcpReplyChannel.cs : new reply channel implementation.
999 * TcpChannelListener.cs : use above for streamed reply channel.
1000 * TcpDuplexSessionChannel.cs : more streaming mode support.
1001 * TcpRequestChannel.cs : a couple of updates to get it working
1002 with the reply channel above. Still some issues on .NET interop.
1004 2009-07-21 Atsushi Enomoto <atsushi@ximian.com>
1006 * RequestContext.cs : added internal derived class that implements
1009 2009-07-21 Atsushi Enomoto <atsushi@ximian.com>
1011 * BinaryMessageEncoder.cs : for non-session reader and writer, do not
1014 2009-07-17 Atsushi Enomoto <atsushi@ximian.com>
1016 * PeerDuplexChannel.cs: add the registered node itself to peer list.
1017 (The messaging must be done as TCP request/reply pattern, so it's
1020 2009-07-17 Atsushi Enomoto <atsushi@ximian.com>
1022 * TcpRequestChannel.cs : new channel file (TCP for request/reply
1023 messaging pattern). The messaging part is not working yet.
1024 * TcpChannelFactory.cs : support IRequestChannel.
1025 * TcpDuplexSessionChannel.cs : add unsized message support.
1027 2009-07-17 Atsushi Enomoto <atsushi@ximian.com>
1029 * HttpRequestChannel.cs, RequestChannelBase.cs :
1030 A couple of async members are now implemented in the base class.
1031 Ditto for EndpointAddress and Via.
1033 2009-07-10 Atsushi Enomoto <atsushi@ximian.com>
1035 * PeerDuplexChannel.cs : now it implements some of node management
1036 functionality and Send operation. The receiver part is not yet.
1038 2009-07-10 Atsushi Enomoto <atsushi@ximian.com>
1040 * TcpChannelListener.cs, TcpDuplexSessionChannel.cs : do not pass
1041 timeout to channel constructor. it does not make sense.
1043 2009-07-10 Atsushi Enomoto <atsushi@ximian.com>
1045 * PeerChannelFactory.cs, PeerChannelListener.cs : add MessageEncoder
1046 as common interface member, and use binary encoder (not text).
1048 2009-07-09 Atsushi Enomoto <atsushi@ximian.com>
1050 * PeerDuplexChannel.cs : PeerNode constructor argument changes.
1052 2009-07-08 Atsushi Enomoto <atsushi@ximian.com>
1054 * PeerDuplexChannel.cs, PeerChannelListener.cs, PeerOutputChannel.cs,
1055 PeerInputChannel.cs, PeerChannelFactory.cs : those channels are
1056 going to be unified to PeerDuplexChannel. And it is likely that
1057 input and output functionalities are to be unified too.
1059 2009-07-08 Atsushi Enomoto <atsushi@ximian.com>
1061 * TcpChannelFactory.cs : (TcpChannelInfo) ease type restriction. I
1062 may have to reuse it for peer transport.
1063 * PeerChannelListener.cs : add binding member.
1064 * PeerDuplexChannel.cs : remove NIE overrides. Fill fields a bit.
1066 2009-07-08 Atsushi Enomoto <atsushi@ximian.com>
1068 * ChannelFactoryBase.cs, HttpChannelFactory.cs,
1069 PeerChannelFactory.cs : close opened channels at OnClose() as
1070 documented. Implement async methods.
1071 * PeerChannelListener.cs : removed some NIE overrides.
1073 2009-07-02 Atsushi Enomoto <atsushi@ximian.com>
1075 * DuplexChannelBase.cs : some more async methods.
1077 2009-06-29 Atsushi Enomoto <atsushi@ximian.com>
1079 * TcpDuplexSessionChannel.cs : on Abort(), do just Close() within
1081 * TcpChannelListener.cs : accept multiple channels at a time.
1083 2009-06-29 Atsushi Enomoto <atsushi@ximian.com>
1085 * TcpDuplexSessionChannel.cs : do not output all (stored) writer
1086 session strings but output only those new ones in current message.
1087 This fixes inconsistent body output in repetitive use of sender.
1089 2009-06-26 Atsushi Enomoto <atsushi@ximian.com>
1091 * TcpDuplexSessionChannel.cs : handle EndRecord for repetitive
1092 operation that does not involve session.
1093 Preserve writer session as well as reader session.
1094 * MessageHeaders.cs : take name and namespace into consideration
1095 when creating a serializer.
1097 2009-06-25 Atsushi Enomoto <atsushi@ximian.com>
1099 * TcpChannelListener.cs, TcpDuplexSessionChannel.cs :
1100 Made required changes for repeated use of message exchanges.
1101 Hold binary reader session. The channels use it incrementally.
1102 Preambles are handled at Open, and EndRecords are handled at
1103 Close, Add session shutdown hook here (not working yet though).
1105 2009-06-18 Atsushi Enomoto <atsushi@ximian.com>
1107 * ChannelListenerBase_1.cs : added cancellation hook here too.
1108 HttpChannelListener.cs : use above.
1109 Do not allow parallel channel creation (this listener does not
1110 allow more than one AcceptChannel().
1112 2009-06-18 Atsushi Enomoto <atsushi@ximian.com>
1114 * ReplyChannelBase.cs, HttpReplyChannel.cs :
1115 Add cancellation hook for async TryReceiveRequest.
1117 2009-06-18 Atsushi Enomoto <atsushi@ximian.com>
1119 * HttpChannelListener.cs, HttpListenerManager.cs :
1120 slightly improved BuildChannelListener().
1121 Implement OnAbort() and differentiate it from OnClose().
1123 2009-06-18 Atsushi Enomoto <atsushi@ximian.com>
1125 * TcpDuplexSessionChannel.cs : remove NIE stubs.
1127 2009-06-18 Atsushi Enomoto <atsushi@ximian.com>
1129 * DuplexChannelBase.cs : simple async delegate calls here too.
1131 2009-06-16 Atsushi Enomoto <atsushi@ximian.com>
1133 * ReplyChannelBase.cs : cosmetic dependency reduction on listener.
1135 2009-06-16 Atsushi Enomoto <atsushi@ximian.com>
1137 * HttpReplyChannel.cs : cosometic simplification.
1139 2009-06-16 Atsushi Enomoto <atsushi@ximian.com>
1141 * HttpRequestChannel.cs : Fixed timeout handling. It was causing
1142 infinite block in 2.0 profile.
1144 2009-06-12 Atsushi Enomoto <atsushi@ximian.com>
1146 * TcpChannelListener.cs, TcpDuplexSessionChannel.cs :
1147 more careful close to avoid NRE.
1149 2009-06-12 Atsushi Enomoto <atsushi@ximian.com>
1151 * HttpChannelListener.cs : do not Close() more than once (though
1152 it is allowed to call it twice, we don't reject it; just ignore).
1154 2009-06-12 Atsushi Enomoto <atsushi@ximian.com>
1156 * CustomBinding.cs : copy timeouts from argument binding in copy ctr.
1158 2009-06-11 Atsushi Enomoto <atsushi@ximian.com>
1160 * HttpReplyChannel.cs : reject multiple WaitForRequest calls.
1161 Temporarily disable HTTP Keep-Alive since it somehow results in
1162 wrong reuse of connection (shown as NRE in HttpConnection).
1163 Make sure to close RequestContext which was created from it.
1164 * HttpRequestContext.cs : simplify.
1166 2009-06-11 Atsushi Enomoto <atsushi@ximian.com>
1168 * HttpChannelListener.cs, TcpChannelListener.cs,
1169 ChannelListenerBase_1.cs : put common internal listener base
1170 and let it handle those async stuff.
1172 2009-06-10 Atsushi Enomoto <atsushi@ximian.com>
1174 * ReplyChannelBase.cs : fix wrong null delegate check point.
1176 2009-06-10 Atsushi Enomoto <atsushi@ximian.com>
1178 * HttpReplyChannel.cs, ReplyChannelBase.cs : async operations are
1179 now implemented as virtual in base class. Remove NIEs in http.
1181 2009-06-10 Atsushi Enomoto <atsushi@ximian.com>
1183 * HttpChannelListener.cs : hack async implementation.
1185 2009-06-08 Atsushi Enomoto <atsushi@ximian.com>
1187 * HttpListenerManager.cs : oops, extra line removal.
1189 2009-06-08 Atsushi Enomoto <atsushi@ximian.com>
1191 * HttpChannelManager.cs, HttpListenerManager.cs : rename file too.
1193 2009-06-08 Atsushi Enomoto <atsushi@ximian.com>
1195 * HttpChannelManager.cs, HttpChannelListener.cs: renaming, as
1196 "ChannelManager" is confusing (there is ChannelManagerBase).
1198 2009-06-08 Atsushi Enomoto <atsushi@ximian.com>
1200 * HttpChannelManager.cs, HttpTransportBindingElement.cs,
1201 HttpReplyChannel.cs, AspNetReplyChannel.cs, HttpChannelListener.cs:
1202 they should be split into separate listener->reply channel lines
1203 (remove "if (HostingEnvironment.IsAspNet)".)
1205 2009-06-08 Atsushi Enomoto <atsushi@ximian.com>
1207 * CommunicationObject.cs : OnClosed() requires call to base method.
1208 Close() could rather abort the channel, and Abort() does not
1209 always invke OnAbort().
1210 * ChannelBase.cs : add call to base as above.
1212 2009-06-05 Sebastien Pouliot <sebastien@ximian.com>
1214 * ClientAccessPolicy.cs: Removed
1215 * CrossDomainAccessManager.cs: Removed
1216 * CrossDomainPolicy.cs: Removed
1217 * HttpRequestChannel.cs: Remove call to CrossDomainAccessManager
1218 since this is now done inside the BeginGetResponse call (outside
1219 this assembly) for Moonlight (NET_2_1)
1221 2009-06-04 Alan McGovern <amcgovern@novell.com>
1223 * HttpRequestChannel.cs : Rewrite ProcessRequest to use the async APIs
1224 instead of the sync apis. Prevents a possible deadlock condition in
1227 2009-06-03 Atsushi Enomoto <atsushi@ximian.com>
1229 * HttpRequestChannel.cs : that SL2/ML2 does not seem to allow null
1230 callbacks, so add hacky ones.
1232 2009-06-01 Atsushi Enomoto <atsushi@ximian.com>
1234 * TcpDuplexSessionChannel.cs : WaitForMessage() should not return
1235 true when socket input is not available.
1237 2009-05-29 Atsushi Enomoto <atsushi@ximian.com>
1239 * TcpDuplexSessionChannel.cs : Moved tcp listener accept to OnOpen().
1240 I cannot precisely identify when EndRecord should be consumed,
1241 so allow it at either at the end of ReadSizedMessage() or on
1242 consuming preamble (it's likely handling EndRecord of previous
1245 Now duplex IPeerResolverContract communication works between
1246 either of .NET/Mono client and .NET/Mono server.
1248 2009-05-29 Atsushi Enomoto <atsushi@ximian.com>
1250 * TcpDuplexSessionChannel.cs : looks like I have added some bogus
1251 code. Handle preamble ack on ReadSizedMessage() only at server.
1252 Consume EndRecord from server, at client side. Though it is likely
1253 changed as it's blocking when mono is at server side.
1255 2009-05-29 Atsushi Enomoto <atsushi@ximian.com>
1257 * TcpDuplexSessionChannel.cs : .NET seems to be based on somewhat
1258 different protocol than existing code with related to preamble ack.
1259 So changed it to work fine with .NET client (finally).
1261 2009-05-28 Atsushi Enomoto <atsushi@ximian.com>
1263 * MessageBufferImpl.cs : do not output Action twice.
1265 2009-05-28 Atsushi Enomoto <atsushi@ximian.com>
1267 * MessageBufferImpl.cs : it did not copy headers.
1268 * Message.cs : remove 2_1 conditional implementation for buffered
1269 copy and hence remove bogus code.
1271 2009-05-28 Atsushi Enomoto <atsushi@ximian.com>
1273 * MessageProperties.cs : copy argument is wrong.
1275 2009-05-27 Atsushi Enomoto <atsushi@ximian.com>
1277 * PeerCustomResolverBindingElement.cs : some argument check.
1279 2009-05-27 Atsushi Enomoto <atsushi@ximian.com>
1281 * BinaryMessageEncoder.cs : the serializer somehow leaves binary
1282 xml open, so close the writer as well as open elements.
1283 * TcpDuplexSessionChannel.cs : clear write buffer on each operation.
1284 Do not output EndRecord and SizedMessage at a time.
1286 2009-05-26 Atsushi Enomoto <atsushi@ximian.com>
1288 * TcpDuplexSessionChannel.cs : there was a miscalculation on the
1289 length of the SizedMessage in the output.
1291 2009-05-26 Atsushi Enomoto <atsushi@ximian.com>
1293 * CommunicationObject.cs : use sane default timeout.
1294 * PeerCustomResolverBindingElement.cs : check timeout arg sanity.
1295 * TcpDuplexSessionChannel.cs : ditto.
1297 2009-05-26 Atsushi Enomoto <atsushi@ximian.com>
1299 * TcpDuplexSessionChannel.cs : It seems that buffered stream channel
1300 only accepts buffered messages, so do as such for write buffers.
1301 Add RelatesTo header.
1303 2009-05-26 Atsushi Enomoto <atsushi@ximian.com>
1305 * DuplexSessionChannelBase.cs, DuplexChannelBase.cs:
1306 rename from former to latter.
1308 2009-05-25 Atsushi Enomoto <atsushi@ximian.com>
1310 * TcpDuplexSessionChannel.cs : reader does not always return full
1311 buffer (depending on the stream).
1313 2009-05-25 Atsushi Enomoto <atsushi@ximian.com>
1315 * PeerDuplexChannel.cs, PeerOutputChannel.cs : use new PeerNode.ctor.
1317 2009-05-25 Atsushi Enomoto <atsushi@ximian.com>
1319 * PeerCustomResolverBindingElement.cs : (Resolve) returned addresses
1322 2009-05-22 Atsushi Enomoto <atsushi@ximian.com>
1324 * ChannelManagerBase.cs : there was annoying non-2.1 stuff.
1326 2009-05-22 Atsushi Enomoto <atsushi@ximian.com>
1328 * TcpChannelListener.cs, TcpChannelFactory.cs : get reader quotas.
1330 2009-05-22 Atsushi Enomoto <atsushi@ximian.com>
1332 * ChannelManagerBase.cs : fix wrong session channel detection.
1334 2009-05-22 Atsushi Enomoto <atsushi@ximian.com>
1336 * BinaryMessageEncoderFactory.cs, BinaryMessageEncoder.cs
1337 This encoder factory implements CreateSessionEncoder() and binary
1338 encoder does support session transmit, in different media type.
1339 * ChannelManagerBase.cs : added utility method to create appropriate
1341 * HttpChannelFactory.cs, HttpChannelListener.cs,
1342 MsmqChannelFactory.cs, MsmqChannelListener.cs,
1343 PeerChannelFactory.cs, PeerChannelListener.cs,
1344 TcpChannelFactory.cs, TcpChannelListener.cs : use above.
1346 2009-05-22 Atsushi Enomoto <atsushi@ximian.com>
1348 * TcpDuplexSessionChannel.cs : add ReplyTo header.
1350 2009-05-21 Atsushi Enomoto <atsushi@ximian.com>
1352 * DuplexSessionBase.cs : new file, for session implementation.
1353 * TcpDuplexSessionChannel.cs, PeerDuplexChannel.cs,
1354 DuplexSessionChannelBase.cs : changed sync/async implementation
1355 pattern. Now async methods call sync methods using delegates.
1357 2009-05-21 Atsushi Enomoto <atsushi@ximian.com>
1359 * InputChannelBase.cs, TransportBindingElement.cs, RequestContext.cs:
1360 a few minor API fixes.
1362 2009-05-21 Atsushi Enomoto <atsushi@ximian.com>
1364 * MessageEncoderFactory.cs : implement CreateSessionEncoder().
1366 2009-05-19 Atsushi Enomoto <atsushi@ximian.com>
1368 * TcpDuplexSessionChannel.cs : add To header.
1370 2009-05-19 Atsushi Enomoto <atsushi@ximian.com>
1372 * MessageFault.cs : fix several SOAP12 fault deserialization in xml
1375 2009-05-18 Atsushi Enomoto <atsushi@ximian.com>
1377 * FaultConverter.cs : avoid NRE for null IncomingMessageHeaders.
1379 2009-05-15 Atsushi Enomoto <atsushi@ximian.com>
1381 * MessageFault.cs : Reason is mandatory. raise XmlException, and
1382 CommunicationException in each CreateFault().
1384 2009-05-15 Atsushi Enomoto <atsushi@ximian.com>
1386 * TcpDuplexSessionChannel.cs : on listener side, get TcpClient at
1387 Open(). Some (but not all yet) continuous communication works now.
1388 Use ProtocolException. Remove dummy binary session string.
1390 2009-05-14 Atsushi Enomoto <atsushi@ximian.com>
1392 * TcpDuplexSessionChannel.cs : more [MC-NMF] implementation. Moved
1393 sending/receiving SizedMessageRecord parts to manager class.
1394 Handle writer session, though it is likely broken at dictionary
1395 writer part (no string is written so far).
1396 * BinaryMessageEncoder.cs : add writer session and rename reader
1399 2009-05-14 Atsushi Enomoto <atsushi@ximian.com>
1401 * TcpDuplexSessionChannel.cs : more [MC-NMF] implementation. Via uri
1402 is mandatory in initiator preamble packet. Handle Fault reply in
1405 2009-05-14 Atsushi Enomoto <atsushi@ximian.com>
1407 * TcpDuplexSessionChannel.cs : ongoing refactoring to collect [MC-NMF]
1408 based communication under TcpBinaryFrameManager class.
1410 2009-05-13 Jb Evain <jbevain@novell.com>
1412 * MessageHeader.cs: use a SL friendly way of creating an XmlReader
1413 from a StringReader.
1415 2009-05-13 Atsushi Enomoto <atsushi@ximian.com>
1417 * MessageImpl.cs, MessageHeader.cs : eliminate xlinq in 2.1, and
1418 actually eliminate DOM-based implementation too in 2.0.
1420 2009-04-28 Atsushi Enomoto <atsushi@ximian.com>
1422 * TcpDuplexSessionChannel.cs : implement in-band dictionary support
1423 in [MC-NMF] and [MC-NBFSE], used in duplex channels. Added some
1424 comments for magic numbers based on [MC-NMF].
1426 2009-04-28 Atsushi Enomoto <atsushi@ximian.com>
1428 * BinaryMessageEncoder.cs : implement part of in-band dictionary
1429 support for [MC-NBFSE] record in [MC-NMF], in this class.
1431 2009-04-28 Atsushi Enomoto <atsushi@ximian.com>
1433 * BinaryMessageEncodingBindingElement.cs : clear extra public members.
1435 2009-04-27 Atsushi Enomoto <atsushi@ximian.com>
1437 * TcpDuplexSessionChannel.cs : implemented some channel methods.
1439 2009-04-27 Atsushi Enomoto <atsushi@ximian.com>
1441 * BinaryMessageEncoder.cs : use XmlDictionary specified as [MC-NBFS].
1443 2009-04-27 Atsushi Enomoto <atsushi@ximian.com>
1445 * ChannelManagerBase.cs : implement Open/CloseTimeout correctly.
1447 2009-04-23 Atsushi Enomoto <atsushi@ximian.com>
1449 * BinaryMessageEncoder.cs : use quotas in binding element.
1450 Implement WriteMessage().
1452 2009-04-22 Atsushi Enomoto <atsushi@ximian.com>
1454 * PeerCustomResolverBindingElement.cs : do initialize field.
1456 2009-04-21 Atsushi Enomoto <atsushi@ximian.com>
1458 * PeerCustomResolverBindingElement.cs :
1459 implement full custom resolver.
1461 2009-04-21 Atsushi Enomoto <atsushi@ximian.com>
1463 * PeerDuplexChannel.cs, PeerChannelListener.cs,
1464 PeerOutputChannel.cs, PeerCustomResolverBindingElement.cs,
1465 PeerChannelFactory.cs : ongoing p2p channel implementation.
1467 2009-04-21 Atsushi Enomoto <atsushi@ximian.com>
1469 * PnrpPeerResolverBindingElement.cs : sync with PeerResolver changes.
1471 2009-04-21 Atsushi Enomoto <atsushi@ximian.com>
1473 * BinaryMessageEncodingBindingElement.cs, ChannelBase.cs,
1474 ChannelFactoryBase.cs, WindowsStreamSecurityBindingElement.cs :
1475 implement GetProperty<T>(). Return documented objects or null.
1477 2009-04-20 Atsushi Enomoto <atsushi@ximian.com>
1479 * PeerChannelFactory.cs, PeerChannelListener.cs,
1480 PeerCustomResolverBindingElement.cs, PeerDuplexChannel.cs
1481 PeerInputChannel.cs, PeerOutputChannel.cs :
1482 new; ongoing peer transport implementation.
1483 * DuplexSessionChannelBase.cs, InputChannelBase.cs
1484 MsmqOutputChannel.cs, OutputChannelBase.cs,
1485 PeerResolverBindingElement.cs, PeerTransportBindingElement.cs,
1486 PnrpPeerResolverBindingElement.cs, TcpDuplexSessionChannel.cs :
1487 several internal changes (either required or for simplification)
1488 for ongoing peer transport implementation.
1490 2009-04-08 Atsushi Enomoto <atsushi@ximian.com>
1492 * PeerTransportBindingElement.cs : ListenIPAddress is IPAddress.
1494 2009-04-07 Atsushi Enomoto <atsushi@ximian.com>
1496 * TcpTransportBindingElement.cs : check build-ability before
1497 actually building channels.
1498 * ConnectionOrientedTransportBindingElement.cs : fixed build-ability
1499 conditions according to MSDN.
1501 2009-03-05 Atsushi Enomoto <atsushi@ximian.com>
1503 * MessageHeader.cs, MessageHeaders.cs, MessageImpl.cs :
1504 handle headers in SL2. Slightly changed 3.0 code too.
1506 2009-03-04 Atsushi Enomoto <atsushi@ximian.com>
1508 * HttpRequestChannel.cs : use cross domain access manager.
1510 2009-02-27 Atsushi Enomoto <atsushi@ximian.com>
1512 * Message.cs : (in CreateBufferedCopy) do not pass the entire
1513 message as BodyWriter.
1514 (in GetReaderAtBodyContents) just write body contents.
1515 * MessageImpl.cs : do not try to read body at ctor (fixed tons
1517 Add some state check in GetReaderAtBodyContents().
1518 * XmlReaderBodyWriter.cs : avoid possible extra xmldecl onto output.
1520 2009-02-18 Atsushi Enomoto <atsushi@ximian.com>
1522 * Message.cs : do not forget to flush.
1523 * HttpRequestChannel.cs : give more exact error info.
1525 2009-02-18 Atsushi Enomoto <atsushi@ximian.com>
1527 * Message.cs, MessageBufferImpl.cs, XmlReaderBodyWriter.cs :
1528 make buffered copy in ML2 really buffered.
1530 2009-02-12 Atsushi Enomoto <atsushi@ximian.com>
1532 * Message.cs : if there is no header item to write, do not write
1533 SOAP header element.
1535 2009-01-22 Alan McGovern <amcgovern@novell.com>
1537 * MessageHeaders.cs : List<T>.RemoveAll(Predicate<T>) doesn't exist in Silverlight.
1538 Rewrite to avoid usage of it.
1540 2009-01-14 Atsushi Enomoto <atsushi@ximian.com>
1542 * ChannelParameterCollection.cs : implement, rather than NIE.
1544 2008-05-22 Noam Lampert <noaml@mainsoft.com>
1546 * MessageFault.cs: Correctly serialize ExceptionDetails. Expose SimpleMessageFault to allow
1547 internal users to know the type of the detail.
1549 2008-05-20 Noam Lampert <noaml@mainsoft.com>
1551 * Message.c: Use private setter for state private variable to ease debugging.
1552 Modify ToString not to change the state, as it is called quite often by VS debugger
1554 2008-04-21 Roei Erez <roeie@mainsoft.com>
1556 * HttpChannleManager: Fix for multithreaded use.
1557 * HttpReplyChannel: Fix crash during sutdown.
1559 2008-04-17 Igor Zelmanovich <igorz@mainsoft.com>
1561 * HttpChannleManager: ensure trailing slash in uri.
1563 2008-04-17 Vladimir Krasnov <vladimirk@mainsoft.com>
1565 * added: HttpChannleManager,
1566 * HttpChannelListener: added use of HttpChannelManager
1568 2008-04-17 Vladimir Krasnov <vladimirk@mainsoft.com>
1570 * MessageEncodingBindingElement.cs: fixed ctor
1572 2008-04-17 Vladimir Krasnov <vladimirk@mainsoft.com>
1574 * XmlReaderBodyWriter.cs: fixed ctor, skip xml declaration
1576 2008-04-17 Vladimir Krasnov <vladimirk@mainsoft.com>
1578 * HttpReplyChannel.cs: fixed TryReceiveRequest, fix message header To
1580 2008-04-17 Vladimir Krasnov <vladimirk@mainsoft.com>
1582 * MessageFault.cs: fixed CreateFault11, implemented "detail"
1584 2008-04-17 Noam Lampert <noaml@mainsoft.com>
1586 * HttpReplyChannel.cs: fix API - Fix crash during service shutdown.
1588 2008-04-13 Igor Zelmanovich <igorz@mainsoft.com>
1590 * BindingElementCollection.cs: fix API - .ctor's signature.
1592 2008-04-10 Eyal Alaluf <eyala@mainsoft.com>
1594 * XmlSerializerBodyWriter.cs: Removed.
1596 2008-03-25 Vladimir Krasnov <vladimirk@mainsoft.com>
1598 * MessageFault.cs: fixed WriteReason, .net XmlWriter compatible
1600 2008-02-20 Atsushi Enomoto <atsushi@ximian.com>
1602 * DuplexSessionChannelBase.cs : made it non-session (more reusable).
1603 * TcpChannelFactory.cs, TcpChannelListener.cs :
1604 unify factory and listener into TcpChannelInfo for use in
1605 TCP channel implementation. Do not store stream in the listener.
1606 Factory now uses BinaryMessageEncoder.
1607 * TcpDuplexSessionChannel.cs : changes explained above, and now it
1608 holds TcpClient that the listener has accepted.
1610 tcp-transport-binding-element sample now communicates (though
1611 only when both sides are mono: there seems binary mismatch).
1613 2008-02-20 Atsushi Enomoto <atsushi@ximian.com>
1615 * TcpTransportBindingElement.cs, TcpConnectionPoolSettings.cs :
1616 clone connection pool settings too.
1617 * NamedPipetransportBindingElement.cs,
1618 NamedPipeConnectionPoolSettings.cs : let's clean them up too (not
1619 being likely implemented though).
1621 2008-02-20 Atsushi Enomoto <atsushi@ximian.com>
1623 * ConnectionOrientedTransportBindingElement.cs,
1624 TcpTransportBindingElement.cs : some API updates.
1625 Initialize default values.
1626 * TcpConnectionPoolSettings.cs : new file.
1628 2008-02-18 Atsushi Enomoto <atsushi@ximian.com>
1630 * ServiceHostParser.cs, SvcHttpHandlerFactory.cs, SvcHttpHandler.cs:
1631 added support for "factory" attribute.
1633 2008-02-15 Atsushi Enomoto <atsushi@ximian.com>
1635 * HttpRequestContent.cs : consider HttpResponseMessageProperty.
1637 2008-02-15 Atsushi Enomoto <atsushi@ximian.com>
1639 * HttpRequestChannel.cs : pass response ContentType to ReadMessage().
1641 2008-02-15 Atsushi Enomoto <atsushi@ximian.com>
1643 * HttpRequestChannel.cs : create WebRequest against To message header
1645 Consider HttpRequestMessageProperty.
1646 Do not output body when suppressed or the method is GET.
1648 2008-02-15 Atsushi Enomoto <atsushi@ximian.com>
1650 * HttpChannelListener.cs : BindingContext may not have listenUri
1651 at its .ctor() step.
1653 2008-02-08 Atsushi Enomoto <atsushi@ximian.com>
1655 * BindingContext.cs : RemainingBindingElements is not just a dummy
1656 collection but is actually user-controlled.
1658 2008-02-08 Atsushi Enomoto <atsushi@ximian.com>
1660 * TcpChannelFactory.cs, TcpChannelListener.cs,
1661 HttpChannelFactory.cs, HttpChannelListener.cs,
1662 MsmqChannelFactory.cs, MsmqChannelListener.cs,
1663 TextMessageEncodingBindingElement.cs,
1664 BinaryMessageEncodingBindingElement.cs,
1665 MtomMessageEncodingBindingElement.cs :
1666 message encoder should be retrieved only through public API.
1667 * BindingContext.cs : so my old guess was wrong.
1669 See also: http://blogs.msdn.com/drnick/archive/2006/05/10/594134.aspx
1671 2008-02-05 Atsushi Enomoto <atsushi@ximian.com>
1673 * HttpTransportBindingElement.cs : implemented copy constructor.
1675 2007-08-20 Atsushi Enomoto <atsushi@ximian.com>
1677 * HttpRequestChannel.cs, HttpReplyChannel.cs : treat SOAPAction HTTP
1678 header when AddressingVersion is None.
1680 2007-08-20 Atsushi Enomoto <atsushi@ximian.com>
1682 * MessageHeaders.cs : AddressingVersion.None rejects some WSA
1685 2007-08-19 Atsushi Enomoto <atsushi@ximian.com>
1687 * OneWayBindingElementImporter.cs
1688 CompositeDuplexBindingElementImporter.cs : new files.
1690 2007-08-17 Atsushi Enomoto <atsushi@ximian.com>
1692 * MessageHeaders.cs : due to the DataContractSerializer.ReadObject()
1693 semantic change, its bool parameter must be false, not true.
1695 2007-07-13 Atsushi Enomoto <atsushi@ximian.com>
1697 * InputChannelBase.cs, MsmqChannelListener.cs, MsmqInputChannel.cs :
1698 new files. Msmq transport listener Implementation.
1699 * MsmqOutputChannel.cs : implemented Send(). Not sure if it works
1700 (wait for System.Messaging impl.)
1701 * HttpReplyChannel.cs : added comment
1703 2007-07-06 Atsushi Enomoto <atsushi@ximian.com>
1705 * MsmqChannelFactory.cs MsmqOutputChannel.cs OutputChannelBase.cs :
1706 new files. internal stuff for msmq channel.
1707 * BinaryMessageEncoder.cs : added another .ctor().
1708 * MsmqTransportBindingElement.cs :
1709 implemented [Can]BuildChannelFactory().
1711 2007-07-06 Atsushi Enomoto <atsushi@ximian.com>
1713 * MsmqBindingElementBase.cs MsmqTransportBindingElement.cs :
1714 initialize some fields.
1716 2007-07-05 Atsushi Enomoto <atsushi@ximian.com>
1718 * MsmqBindingElementBase.cs MsmqMessageProperty.cs
1719 MsmqTransportBindingElement.cs ITransactedBindingElement.cs :
1720 couple of msmq stubs.
1722 2007-04-02 Atsushi Enomoto <atsushi@ximian.com>
1724 * SecureMessageGenerator.cs : SecurityContextToken support (though
1725 it is still regarded as invalid by WCF).
1727 2007-03-13 Atsushi Enomoto <atsushi@ximian.com>
1729 * WSSecurityMessageHeader.cs, SecureMessageGenerator.cs :
1730 make header.Contents.Add() more strict.
1731 Use HasAsymmetricKey to determine whether to use asymmetric algorithm
1733 Added some hack to allow ssl token external mode.
1734 Commented out such lines that always premised asymmtric key.
1736 2007-03-08 Atsushi Enomoto <atsushi@ximian.com>
1738 * TransactionFlowBindingElement.cs : forgot necessary Clone().
1740 2007-03-08 Atsushi Enomoto <atsushi@ximian.com>
1742 * MessageSecurityBindingSupport.cs : support check to create
1743 authenticator is now done in both initiator/recipient sides.
1744 * SecurityRequestContext.cs : don't encrypt WS-Trust RSTR.
1746 2007-03-07 Atsushi Enomoto <atsushi@ximian.com>
1748 * MessageSecurityBindingSupport.cs : for now, comment out the code
1749 that makes authenticator creation optional.
1750 * SecurityRequestContext.cs : don't decrypt message when it is
1751 WS-Trust messages. Also, do not secure SOAP Fault (it is likely
1753 * SecurityChannelListener.cs : GetProperty<T>() now returns
1754 MessageSecurityBindingSupport when requested. It is used by
1755 EndpointDispatcher to check if it supports WS-Trust negotiation.
1756 * ChannelListenerBase.cs :
1757 removed extra TODO and field. Implemented GetProperty<T>().
1758 * Message.cs : In CreateMessage() for SOAP Fault, create
1759 SimpleMessage with IsFault = true.
1761 2007-03-07 Atsushi Enomoto <atsushi@ximian.com>
1763 * SecurityRequestContext.cs : try to reply fault with the inner
1764 channel when an error occurred internally.
1765 * FaultConverter.cs : implemented based on OperationContext (at normal
1766 state it does not seem to create messages, so I implemented it this
1769 2007-03-07 Atsushi Enomoto <atsushi@ximian.com>
1771 * TransportBindingElement.cs : implemented GetProperty<T>().
1772 * TransactionFlowBindingElement.cs : on building factory or listener,
1773 reject channel types that cannot build.
1774 * SecurityBindingElement.cs : added some TODO comments.
1775 * HttpTransportBindingElement.cs : GetProperty<T>() should rather
1776 delegate to base, not BindingContext.
1777 * SecurityRequestContext.cs : somewhat late decryption.
1779 2007-03-06 Atsushi Enomoto <atsushi@ximian.com>
1781 * MessageSecurityBindingSupport.cs,
1782 AsymmetricSecurityBindingElement.cs,
1783 SymmetricSecurityBindingElement.cs :
1784 renamed *SecurityBindingElementSupport to *SecurityCapabilities and
1785 implemented ISecurityCapabilities on them. Now those binding
1786 elements support GetProperty<ISecurityCapabilities>().
1788 2007-03-05 Atsushi Enomoto <atsushi@ximian.com>
1790 * SecurityBindingElement.cs : SetIssuerBindingContextIfRequired()
1791 will work only for predefined parameter types.
1793 2007-03-01 Atsushi Enomoto <atsushi@ximian.com>
1795 * MessageSecurityBindingSupport.cs :
1796 Set proper MessageDirection to the requirement after creation.
1797 split CreateTokenAuthenticator() as MessageDirection is different.
1798 Removed extra creation of requirement.
1800 2007-03-01 Atsushi Enomoto <atsushi@ximian.com>
1802 * MessageSecurityBindingSupport.cs : token authenticator is not
1803 always created on channel-opening stage.
1804 * SecurityBindingElement.cs : use SslSecurityTokenParameters for
1805 Sslnego binding factory method.
1807 2007-02-28 Atsushi Enomoto <atsushi@ximian.com>
1809 * SecureMessageGenerator.cs : inconsistent ReferenceList has caused
1810 signature velification failure.
1812 2007-02-27 Atsushi Enomoto <atsushi@ximian.com>
1814 * SecureMessageGenerator.cs : encrypt signature confirmations only
1815 when they are required.
1817 2007-02-27 Atsushi Enomoto <atsushi@ximian.com>
1819 * SecureMessageGenerator.cs : SignatureConfirmation must be encrypted
1820 when [Signature Protection is true i.e. when we use
1821 SignBeforeEncryptAndEncryptSignature.
1823 With this change finally samplesvc.cs/samplecli.cs became
1826 2007-02-27 Atsushi Enomoto <atsushi@ximian.com>
1828 * SecureMessageDecryptor.cs : signature verification was not done
1829 for endorsing supporting tokens.
1830 * SecureMessageGenerator.cs : moved SignatureConfirmation position
1831 in the security header. Don't output empty ReferenceList.
1833 2007-02-27 Atsushi Enomoto <atsushi@ximian.com>
1835 * SecureMessageGenerator.cs : signingToken was added before being
1836 initialized and thus caused NRE.
1838 2007-02-27 Atsushi Enomoto <atsushi@ximian.com>
1840 * WSSecurityMessageHeader.cs, SecureMessageDecryptor.cs,
1841 SecureMessageGenerator.cs : use SHA1 instead of HMACSHA1. Now we
1842 don't need workaround for symmetric key restoration.
1844 2007-02-27 Atsushi Enomoto <atsushi@ximian.com>
1846 * WSSecurityMessageHeader.cs, SecureMessageDecryptor.cs,
1847 SecureMessageGenerator.cs :
1848 Avoid extra reference search from the request's ReferenceList.
1849 create HMACSHA1 always with the key to compute hash (I'm not sure
1850 it is correct; it is rather to adjust all hash consistent.)
1852 2007-02-27 Atsushi Enomoto <atsushi@ximian.com>
1854 * SecureMessageDecryptor.cs : verify that endorsing supporting tokens
1855 actually endorsed the primary signature.
1856 * SecureMessageGenerator.cs : implemented endorsing of the primary
1857 signature. So, now supporting tokens are fully implemented.
1859 2007-02-27 Atsushi Enomoto <atsushi@ximian.com>
1861 * MessageSecurityBindingSupport.cs : so, those supporting tokens are
1862 totally signing tokens.
1863 * SecureMessageGenerator.cs : Endorsing tokens should also be
1864 included in the message. They are just not signed.
1866 2007-02-26 Atsushi Enomoto <atsushi@ximian.com>
1868 * SecureMessageGenerator.cs : support signing and encryption of
1869 supporting tokens. Some required refactory to do it.
1870 * MessageSecurityBindingSupport.cs : added EncryptedData member.
1872 2007-02-26 Atsushi Enomoto <atsushi@ximian.com>
1874 * SecureMessageDecryptor.cs : fix exception message.
1875 * WSSecurityMessageHeader.cs, WSSignedXml.cs, WSEncryptedXml.cs :
1876 XmlNamespaceManager is not required for GetIdElement().
1878 2007-02-22 Atsushi Enomoto <atsushi@ximian.com>
1880 * SecureMessageDecryptor.cs, WSSecurityMessageHeader.cs :
1881 moved decryption part from former file to latter file, to reuse
1882 SignedXml instance (though now I doubt how it actually was good)
1883 which in turn required to replace EncryptedData in
1884 WSSecurityMessageHeader with decrypted one.
1885 * WSEncryptedXml.cs : similar to WSSignedXml.cs, to handle wsu:Id.
1887 2007-02-21 Atsushi Enomoto <atsushi@ximian.com>
1889 * SecureMessageGenerator.cs : when we create DerivedKeyToken, those
1890 EncryptedData should contain KeyInfo as it is not obvious which key
1891 is used there. .net<->mono DerivedKeyToken introp is done.
1892 * SecureMessageDecryptor.cs : check derived key requirement.
1893 Reduce dom-dependent parts.
1895 2007-02-21 Atsushi Enomoto <atsushi@ximian.com>
1897 * WSSecurityMessageHeader.cs : ReferenceList needs to be bound to
1898 the related DerivedKeyToken (if any).
1899 * SecureMessageGenerator.cs : largely done with DerivedKeyToken
1900 support. Some refactoring to distinguish deried-token-related
1902 * SecureMessageDecryptor.cs : removed its own support for derived
1903 key tokens. Now it fully works with DerivedKeySecurityToken.
1905 2007-02-21 Atsushi Enomoto <atsushi@ximian.com>
1907 * WSSecurityMessageHeader.cs, SecureMessageDecryptor.cs,
1908 SecureMessageDecryptor.cs :
1909 Implemented increment token reading in o:Security, as
1910 DerivedKeyToken could reference to existing wrapped key.
1911 Removed WsscDerivedKeyToken and all relevant code.
1912 * SecureMessageGenerator.cs : replaced WsscDerivedKeyToken with
1913 DerivedKeySecurityToken.
1915 2007-02-16 Atsushi Enomoto <atsushi@ximian.com>
1917 * SecureMessageGenerator.cs : it was setting security tokens into
1918 incorrect SecurityMessageProperty.
1919 Use correct WrappedKeySecurityToken for EncryptedKeySHA1.
1920 Now it uses SecurityRequestContext instead of just primary key.
1921 * SecureMessageDecryptor.cs : removed extra lines. Limit workarounds
1922 to symmetric reply decryption, which is the only trouble case.
1923 Do not create another SignedXml.
1924 * WSSecurityMessageHeader.cs : SignedXml processing changes above.
1926 2007-02-15 Atsushi Enomoto <atsushi@ximian.com>
1928 * SecureMessageDecryptor.cs : Now it uses union token resolver and
1929 the resolver works with in-progress token reading in o:Security.
1930 * WSSecurityMessageHeader.cs : now it does not read EncryptedKey
1931 as EncryptedKeyIdentifierClause. It is rather a SecurityToken.
1932 * SecureMessageGenerator.cs : cosmetic refactoring.
1934 2007-02-14 Atsushi Enomoto <atsushi@ximian.com>
1936 * WSSecurityMessageHeader.cs : read EncryptedKeyIdentifierClause
1937 instead of EncryptedKey.
1939 2007-02-13 Atsushi Enomoto <atsushi@ximian.com>
1941 * MessageSecurityBindingSupport.cs : SigningToken and EncryptionToken
1942 should not be always prepared at channel Open(). It also caused
1943 that extra token requirements.
1944 * SecureMessageGenerator.cs : use correct key clause for encryption.
1945 * SecureMessageDecryptor.cs : reduce extra key acquisition.
1947 2007-02-06 Atsushi Enomoto <atsushi@ximian.com>
1949 * MessageSecurityBindingSupport.cs : added CreateTokenAuthenticator()
1950 for supporting 'supporting tokens' .
1951 * SecureMessageGenerator.cs : Supporting token creation is done only
1952 at initiator (not sure if it is supposed that, but for now it is).
1953 Removed extraneous CollectSupportingTokens().
1954 * SecureMessageDecryptor.cs : implemented supporting token
1955 authentication (partly). "Signed" supporting tokens are expected
1958 2007-02-06 Atsushi Enomoto <atsushi@ximian.com>
1960 * SecureMessageGenerator.cs :
1961 make SignBeforeEncryptAndEncryptSignature working.
1963 2007-02-06 Atsushi Enomoto <atsushi@ximian.com>
1965 * SecureMessageGenerator.cs : EncryptedKeySHA1 needs key hash, not
1966 the key itself. ProtectionToken is WrappedKey.
1967 * SecureMessageDecryptor.cs : now it is internal encrypted key clause,
1968 not EncryptedKeyIdentifierClause which is not for embedded key.
1969 * MessageProperties.cs : Fixed copy direction in CopyProperties().
1971 2007-02-05 Atsushi Enomoto <atsushi@ximian.com>
1973 * MessageSecurityBindingSupport.cs : added DefaultKeyWrapAlgorithm
1974 to switch asymmetric and symmetric. Not used yet.
1975 * SecurityRequestChannel.cs : now it pass the request security
1976 property to reply receiver so that it could use the primary key
1977 used at request phase.
1978 * SecurityRequestContext.cs : now it pass the context itself to
1979 reply sender so that it could embed related MessageID.
1980 * SecureMessageGenerator.cs : ongoing changes to support symmetric
1981 binding element. Add RelatesTo output and remove MessageID when
1982 replying to the sender. Added some hacks to get symmetric binding
1984 * SecureMessageDecryptor.cs : ditto. Handle embedded encryption key
1985 in SecurityTokenReference (it also involved existing encrypted key
1986 retrieval). In reply receiver, reuse the key that was used at
1987 request phase. It needs significant token resolution refactoring.
1989 2007-02-02 Atsushi Enomoto <atsushi@ximian.com>
1991 * MessageSecurityBindingSupport.cs : cosmetic refactoring.
1992 * SecureMessageDecryptor.cs : store token and its authentication
1993 policies into the security property, and reuse it on reply.
1994 Some code refactoring; there is at most one o:Security to solve at
1995 one endpoint (depends on Actor). Some attempt to use correct
1996 token parameters (but for now I have only samples that use x509).
1997 * SecureMessageGenerator.cs : For replying message, use initiator's
1998 signing token as the encryption token. Simply reuse security
1999 property from the input message.
2001 I have some nasty workaround at decryptor for initiator that could
2002 not retrieve decryption key.
2004 2007-02-02 Atsushi Enomoto <atsushi@ximian.com>
2006 * SecureMessageGenerator.cs, SecurityChannelListener.cs,
2007 SecurityRequestContext.cs, MessageSecurityBindingSupport.cs:
2008 several refactoring on token acquisition. Large part of
2009 MessageSecurityBindingSupport code is unified.
2011 2007-02-02 Atsushi Enomoto <atsushi@ximian.com>
2013 * MessageProperties.cs : Security property should be one of the items.
2014 Actually many other properties should be similar as well.
2015 * MessageImpl.cs, MessageBufferImpl.cs, Message.cs :
2016 when copying a message, copy properties as well.
2017 * SecurityRequestContext.cs : on replying, pass input
2018 SecurityMessageProperty to the security generator.
2019 * SecureMessageGenerator.cs : both of above, for SignatureConfirmation
2021 * WSSecurityMessageHeader.cs : fixed lazy .ctor() that did nothing.
2023 2007-02-01 Atsushi Enomoto <atsushi@ximian.com>
2026 MessageHeader.cs, Message.cs, WSSecurityMessageHeader.cs,
2027 SecureMessageDecryptor.cs, SecureMessageGenerator.cs:
2028 use new WSSignedXml instead of SignedXml, and remove coexisting
2029 Id and wsu:Id. Now we can live only with wsu:Id and therefore
2030 - our reply messages could be consumed by .NET, and
2031 - .NET signature could be verified.
2033 2007-02-01 Atsushi Enomoto <atsushi@ximian.com>
2035 * SecureMessageDecryptor.cs : The signing key must be passed as
2036 CheckSignature() argument, not SigningKey.
2038 2007-01-31 Atsushi Enomoto <atsushi@ximian.com>
2040 * MessageImpl.cs : don't read attribute after ReadStartElement().
2042 2007-01-31 Atsushi Enomoto <atsushi@ximian.com>
2044 * MessageSecurityBindingSupport.cs : some Release() refactoring.
2045 * SecureMessageGenerator.cs : use correct signing key clause for
2046 SecurityTokenReferenceKeyInfo to be serialized.
2047 * SecureMessageDecryptor.cs : now it can try to parse signature.
2049 2007-01-31 Atsushi Enomoto <atsushi@ximian.com>
2051 Ongoing changes to support signature confirmation
2052 * SecureMessageGenerator.cs :
2053 Don't output ReplyTo onto reply message.
2054 Write SignatureConfirmation if needed.
2055 * SecureMessageDecryptor.cs :
2056 Some refactoring for header cunsumption. Added commented-out
2057 signature verification part (not working yet, on client side due
2058 to incorrect reply from service and insufficient clause reader).
2059 * WSSecurityMessageHeader.cs :
2060 Added SignatureConfirmation support.
2061 KeyInfoClause for o:SecurityTokenReference should be replaced with
2062 SecurityTokenReferenceKeyInfo.
2064 2007-01-29 Atsushi Enomoto <atsushi@ximian.com>
2066 * SecureMessageGenerator.cs : support Timestamp signature.
2067 Removed unused code, and extra argument in CreateReference().
2068 * WSSecurityMessageHeader.cs : Timestamp also needs Id for SignedXml.
2070 2007-01-29 Atsushi Enomoto <atsushi@ximian.com>
2072 * SecureMessageGenerator.cs :
2073 Several fixes to make asymmetric binding working:
2074 - Differentiate signing and encryption token in several areas.
2075 - Fixed signing keyinfo.
2077 Added initial SecurityMessageProperty handling, not sure if it is
2078 appropriate here though.
2079 * HttpRequestChannel.cs : (some debugging lines)
2081 2007-01-26 Atsushi Enomoto <atsushi@ximian.com>
2083 Woohoo! Here is a very basic WS-Security compliant message which could
2084 be allowed by Indigo.
2085 * MessageHeader.cs : added Id support for writing.
2086 * Message.cs : added internal BodyId for signature reference.
2087 * MessageImpl.cs : write Body Id if required.
2088 * SecureMessageGenerator.cs : Before signing, the target elements must
2089 be given wsu:Id. Since I still use System.Security.dll, I need some
2090 trick for signing (I give both Id and wsu:Id, former to sign and
2091 latter to be consumed). Maybe I will have to replace xmldsig/xmlenc
2092 implementation later. Now singning mechanism works except for
2093 wsu:Timestamp (which is kind of mandatory).
2095 I can's still consume replies from Indigo but it's a big progress :)
2097 2007-01-26 Atsushi Enomoto <atsushi@ximian.com>
2099 * MessageHeaderInfo.cs : added internal Id.
2100 * MessageHeader.cs : read and write wsu:Id.
2101 * Message.cs : output wsu namespace if Id exists in any header.
2102 * HttpReplyChannel.cs : (some debugging lines.)
2103 * SecureMessageDecryptor.cs : (remove debugging lines.)
2104 * MessageImpl.cs : removed obsolete code.
2105 * WSSecurityMessageHeader.cs : output "o" prefix.
2106 * SecureMessageGenerator.cs : replaced XmlElement-based header
2107 signing with MessageHeader-based signing, to support Id correctly.
2109 2007-01-15 Atsushi Enomoto <atsushi@ximian.com>
2111 * SecureMessageGenerator.cs : some more refactoring and code comments.
2112 * MessageSecurityUtility.cs : made decryptor into an instance class,
2113 like I've done for SecureMessageGenerator.
2114 * SecurityRequestContext.cs, SecurityRequestChannel.cs :
2115 dependent changes for above.
2117 2007-01-12 Atsushi Enomoto <atsushi@ximian.com>
2119 * SecureMessageGenerator.cs : fixed derived keysize. derived key was
2120 causing NRE due to the lack of token reference.
2121 No need to pass doc to SignedXml.ctor() anymore.
2122 Moved ReferenceList before the signature(s).
2124 2007-01-12 Atsushi Enomoto <atsushi@ximian.com>
2126 * SecureMessageGenerator.cs : add wsu:Timestamp to signing target.
2127 Moved signing key generation code to non-HMACSHA1 signing part.
2128 Don't try to sign wss:Security.
2129 Pass document itself to SignedXml.ctor().
2130 Use temporary DataObjects to avoid adding Ids (not sure what is the
2131 expected processing yet).
2132 * WSSecurityMessageHeader.cs : to support timestamp signing, add
2133 WriteTo() method in WsuTimestamp.
2135 2007-01-12 Atsushi Enomoto <atsushi@ximian.com>
2137 * SecureMessageGenerator.cs : wrong key was used for signing.
2138 Omit KeyInfo for now - it seems that .net (sometimes?) omits it.
2140 2007-01-11 Atsushi Enomoto <atsushi@ximian.com>
2142 * SecureMessageGenerator.cs :
2143 Now ID generation process does not modify input message.
2144 Moved derived key generation part into (virtual) signing loop.
2145 MessagePartSpecification support for signing is done.
2147 2007-01-11 Atsushi Enomoto <atsushi@ximian.com>
2149 * SecureMessageGenerator.cs : some reordering to handle signing and
2150 encryption with supporting tokens. Fixed XPath query bug for
2151 soap header contents (we want s:Header/*, not s:Header).
2153 2007-01-11 Atsushi Enomoto <atsushi@ximian.com>
2155 * MessageSecurityBindingSupport.cs : more refactoring.
2156 Made it abstract and added Initiator- and Recipient- classes.
2157 Several members were moved to those derived types.
2158 * AsymmetricSecurityBindingElement.cs,
2159 SymmetricSecurityBindingElement.cs
2160 SecurityChannelFactory.cs, SecurityChannelListener.cs,
2161 SecurityRequestChannel.cs, SecurityOutputChannel.cs,
2162 SecurityRequestContext.cs, SecureMessageGenerator.cs :
2163 All dependent changes by above. Removed ISecurityChannelSource
2164 which became useless.
2166 2007-01-11 Atsushi Enomoto <atsushi@ximian.com>
2168 * SecureMessageGenerator.cs : encryption parts should exist too.
2169 * AsymmetricSecurityBindingElement.cs
2170 SymmetricSecurityBindingElement.cs,
2171 MessageSecurityBindingSupport.cs : some refactoring.
2172 Split MessageSecurityBindingSupport into security binding element
2173 specific parts and made MessageSecurityBindingSupport concrete.
2174 It is likely split again, next time based on initiator/recipient.
2176 2007-01-11 Atsushi Enomoto <atsushi@ximian.com>
2178 * MessageSecurityUtility.cs, SecureMessageGenerator.cs :
2179 split encryptor part in the former file into latter file, and
2181 * SecurityRequestChannel.cs, SecurityOutputChannel.cs,
2182 SecurityRequestContext.cs : apply the change above.
2184 2007-01-11 Atsushi Enomoto <atsushi@ximian.com>
2186 * MessageSecurityBindingSupport.cs :
2187 Fixed incorrect TrgGetValue() use.
2188 Added CollectRecipientSupportingTokens().
2190 2007-01-11 Atsushi Enomoto <atsushi@ximian.com>
2192 * MessageSecurityUtility.cs: acctually ReferenceList was inside
2193 EncryptedKey. So, when a key itself is used to encrypt data,
2194 ReferenceList is contained by itself.
2195 * MessageSecurityBindingSupport.cs :
2196 added CollectInitiatorSupportingTokens().
2198 2007-01-10 Atsushi Enomoto <atsushi@ximian.com>
2200 * MessageSecurityUtility.cs: it should support ReferenceList-less
2203 2007-01-10 Atsushi Enomoto <atsushi@ximian.com>
2205 * WSSecurityMessageHeader.cs : reverted previous unnecessary change.
2206 * MessageSecurityUtility.cs : there already was uuid.
2208 2007-01-09 Atsushi Enomoto <atsushi@ximian.com>
2210 * MessageSecurityUtility.cs : replaced EncryptedKey with
2211 WrappedKeySecurityToken, which seems to be in actual use in .net.
2212 * WSSecurityMessageHeader.cs : added internal Guid so that it
2213 could be shared between header items.
2215 2006-12-14 Atsushi Enomoto <atsushi@ximian.com>
2217 * HttpRequestContext.cs, TextMessageEncoder.cs :
2218 some null arg check.
2220 2006-12-08 Atsushi Enomoto <atsushi@ximian.com>
2222 * MessageSecurityUtility.cs : reducing DOM dependency. Use KeyInfoNode
2223 for SecurityTokenReference resolution.
2225 2006-12-08 Atsushi Enomoto <atsushi@ximian.com>
2227 * MessageSecurityUtility.cs : fixed EncryptedData decryption to
2228 consider DerivedKeyTokens correctly.
2229 When creating LocalId, don't add '#' here.
2231 2006-12-07 Atsushi Enomoto <atsushi@ximian.com>
2233 * MessageSecurityUtility.cs :
2234 handle key mapping for each wsse:Security.
2236 2006-12-07 Atsushi Enomoto <atsushi@ximian.com>
2238 * WSSecurityMessageHeader.cs : use prefix "c" for ws-secureconv.
2240 2006-12-06 Atsushi Enomoto <atsushi@ximian.com>
2242 * WSSecurityMessageHeader.cs : write top-level ReferenceList in
2244 * MessageSecurityUtility.cs :
2245 Now ReferenceList is placed under wsse:Security as WS-Security 1.1
2246 suggests, and it is used to dereference decryption targets.
2247 Now it premises multiple wsse:Security elements to read.
2249 2006-12-06 Atsushi Enomoto <atsushi@ximian.com>
2251 * WSSecurityMessageHeader.cs : don't write o:SecurityTokenReference
2252 manually (and actually the namespace URI was wrong).
2254 2006-12-06 Atsushi Enomoto <atsushi@ximian.com>
2256 * WSSecurityMessageHeader.cs : improved DerivedKeyToken writing
2258 * MessageSecurityUtility.cs : DerivedKeyToken creation.
2260 2006-12-06 Atsushi Enomoto <atsushi@ximian.com>
2262 * SecurityBindingElement.cs,
2263 SymmetricSecurityBindingElement.cs,
2264 AsymmetricSecurityBindingElement.cs :
2265 implemented SetKeyDerivation().
2267 2006-12-06 Atsushi Enomoto <atsushi@ximian.com>
2269 * MessageSecurityUtility.cs : don't add KeyInfoClause to EncryptedKey
2272 2006-12-06 Atsushi Enomoto <atsushi@ximian.com>
2274 * MessageBufferImpl.cs : XmlReader-based buffer is not possible, so
2277 2006-12-05 Atsushi Enomoto <atsushi@ximian.com>
2279 * MessageSecurityUtility.cs : u:Timestamp will be encrypted/signed,
2280 thus move it in front of encryption/signing.
2282 2006-12-04 Atsushi Enomoto <atsushi@ximian.com>
2284 * TransactionFlowBindingElement.cs : OnOpen()/OnClose() should not
2285 check state by themselves (btw it's not really working).
2286 * HttpChannelListener.cs : If the url does not end with '/' add it
2287 so that it could be fed to HttpListener.
2289 2006-12-04 Atsushi Enomoto <atsushi@ximian.com>
2291 * HttpChannelFactory.cs : check scheme on CreateChannel.
2292 * MessageHeader.cs : finish IsMessageVersionSupported().
2294 2006-12-04 Atsushi Enomoto <atsushi@ximian.com>
2296 * FaultConverter.cs : new file, not used yet though.
2298 2006-10-21 Atsushi Enomoto <atsushi@ximian.com>
2300 * SvcHttpHandler.cs : set GET URL to ServiceMetadataBehavior.
2302 2006-10-20 Atsushi Enomoto <atsushi@ximian.com>
2304 * SvcHttpHandler.cs : once AspNetReplyChannel get working with HTTP
2305 GET as well as HttpReplyChannel, configuration would be ready now.
2307 2006-10-18 Ankit Jain <jankit@novell.com>
2309 * TextMessageEncoder.cs (MediaType): Use 'application/soap+xml' for
2310 EnvelopeVersion.Soap12 and 'text/xml' for others.
2311 * HttpReplyChannel.cs (TryReceiveRequest): Revert earlier patch for GET
2313 Strip '?' from the query string.
2315 2006-10-13 Ankit Jain <jankit@novell.com>
2317 * MessageVersion.cs (None): Set AddressingVersion.None
2319 2006-10-12 Atsushi Enomoto <atsushi@ximian.com>
2321 * SvcHttpHandler.cs : added config-based endpoint addition code.
2322 Though due to some weird bug in mono-core it does not seem to work,
2323 so commented out for now.
2324 * HttpReplyChannel.cs : handle wsdl query parameter. btw creating
2325 mex request message might just be wrong.
2326 Use expected MessageVersion by the channel.
2327 * AspNetReplyChannel.cs : ditto. Plus, HTTP GET support.
2329 2006-10-12 Atsushi Enomoto <atsushi@ximian.com>
2331 * MessageSecurityBindingSupport.cs : added DefaultSignatureAlgorithm
2332 which differs depending on whether it is asymmetric or symmetric.
2333 * SecurityRequestChannel.cs, SecurityRequestContext.cs :
2334 simplify SecureMessage() and DecryptMessage() arguments (just
2335 take MessageSecurityBindingSupport instead of several parameters).
2336 * MessageSecurityUtility.cs :
2337 - simplify SecureMessage() and DecryptMessage() arguments (just
2338 take MessageSecurityBindingSupport instead of several parameters).
2339 - Take token inclusion mode into account. Don't include them when
2340 it is not expected. Also, change the token reference style.
2341 - add wsa:MessageID to the headers.
2342 - For hmac-sha1 signing (default for symmetric binding), use
2343 symmetric key created for encryption as well to create HMACSHA1.
2344 - add Id to wsu:Timestamp.
2345 - start to handle SecurityMessageProperty.
2346 * WSSecurityMessageHeader.cs :
2347 Added Id to WsuTimestamp. Also use prefixes for its XML output.
2348 Changed date format.
2350 2006-10-06 Atsushi Enomoto <atsushi@ximian.com>
2352 * CommunicationObject.cs : reject faulted state on Open()/Close().
2353 * MessageHeaders.cs : removed extra fields.
2355 2006-10-06 Ankit Jain <jankit@novell.com>
2357 * HttpReplyChannel.cs (TryReceiveRequest): Handle HTTP GET.
2359 2006-10-05 Atsushi Enomoto <atsushi@ximian.com>
2361 * MessageSecurityUtility.cs, SecurityRequestContext.cs :
2362 added some FIXMEs and additional arg.
2364 2006-10-05 Atsushi Enomoto <atsushi@ximian.com>
2366 * MessageSecurityUtility.cs : remove duplicate Action header.
2368 2006-10-05 Atsushi Enomoto <atsushi@ximian.com>
2370 * MessageFault.cs : partly implemented CreateFault(Message, int).
2371 * Message.cs, MessageImpl.cs, MessageBufferImpl.cs :
2372 handle IsFault correctly in each implementation.
2374 2006-10-04 Ankit Jain <jankit@novell.com>
2376 * HttpRequestChannel.cs (ProcessRequest): Read till the end.
2378 2006-10-04 Ankit Jain <jankit@novell.com>
2380 * HttpRequestChannel.cs (ProcessRequest): Temporary workaround for a bug
2381 in WebConnectionStream.
2383 2006-10-04 Ankit Jain <jankit@novell.com>
2385 * MessageHeaders.cs (To): Use GetHeader<string> till
2386 DataContractSerializer gets ISerializable support.
2387 * CustomBinding.cs (.ctor): Get scheme from TransportBindingElement.
2389 2006-10-04 Ankit Jain <jankit@novell.com>
2391 * ServiceHostParser.cs (Parse):
2392 (Split): Add some error checks.
2394 2006-10-03 Atsushi Enomoto <atsushi@ximian.com>
2396 * SslStreamSecurityBindingElement.cs : updated API to Sep. CTP.
2397 * StreamUpgradeAcceptor.cs : Fix AcceptUpgrade().
2398 * SslStreamSecurityUpgradeProvider.cs,
2399 SslStreamSecurityUpgradeAcceptor.cs :
2400 new files for Ssl upgrade provider implementation.
2401 * MessageSecurityUtility.cs :
2402 Create proper C14NTransform. Don't use enveloped signature
2403 transform but sign every significant bits. On securing messages
2404 use ChannelProtectionRequirements.
2405 * SecurityRequestContext.cs : pass ChannelProtectionRequirements to
2407 * MessageEncoder.cs : fix API (missing constraint).
2408 * WSSecurityMessageHeader.cs : it is MustUnderstand.
2409 * StreamUpgradeProvider.cs : API fix and implemented .ctor().
2410 * AsymmetricSecurityBindingElement.cs : default protection order is
2411 SignBeforeEncryptAndEncryptSignature.
2413 2006-09-29 Ankit Jain <jankit@novell.com>
2415 * SvcHttpHandlerFactory.cs (GetTypeFromSvc): Extract and move code to
2416 ServicHostParser and use that here.
2417 (PrivateBinPath): New.
2418 (GetTypeFromBin): New. Load assembly from PrivateBinPath.
2419 (RemovedCallback): Remove and close the SvcHttpHandler when its
2420 corresponding file (.svc) changes.
2421 * SvcHttpHandler.cs (Close): New. Close the ServiceHost.
2423 * ServiceHostParser.cs : New.
2424 * CachingCompiler.cs : New. Code extracted from
2425 System.Web.Compilation.CachingCompiler
2426 * CompilationException.cs : New. From System.Web.Compilation
2427 * HtmlizedException.cs : New. Likewise.
2429 2006-09-29 Atsushi Enomoto <atsushi@ximian.com>
2431 * MessageSecurityBindingSupport.cs : For client side, it is always
2432 InitiatorServiceModelSecurityTokenRequirement which should be
2433 created. Fixed wrong client encryption key acquisition.
2435 2006-09-29 Atsushi Enomoto <atsushi@ximian.com>
2437 * SecurityChannelListener.cs, SecurityRequestContext.cs,
2438 MessageSecurityBindingSupport.cs : made similar changes as factories
2439 to listener so that session channels and input channels would work.
2440 Added authenticator creation.
2442 2006-09-29 Atsushi Enomoto <atsushi@ximian.com>
2444 * Binding.cs : added missing members.
2446 2006-09-28 Atsushi Enomoto <atsushi@ximian.com>
2448 * SecurityRequestChannel.cs, SecurityOutputChannel.cs,
2449 MessageSecurityUtility.cs, MessageSecurityBindingSupport.cs :
2450 reduce code duplication between request and output channels.
2451 The common parts are now in MessageSecurityBindingSupport.
2452 Now reduced several arguments in SecureMessage() for client.
2454 2006-09-28 Atsushi Enomoto <atsushi@ximian.com>
2456 * ChannelFactoryBase.cs : implemented ValidateCreateChannel().
2458 2006-09-28 Atsushi Enomoto <atsushi@ximian.com>
2460 * AsymmetricSecurityBindingElement.cs,
2461 SecurityChannelListener.cs,
2462 SecurityRequestContext.cs,
2463 SymmetricSecurityBindingElement.cs,
2464 SecurityRequestChannel.cs,
2465 SecurityOutputChannel.cs,
2466 SecurityChannelFactory.cs,
2467 MessageSecurityBindingSupport.cs : 1) Refactoring.
2468 IMessageSecurityBindingSupport now becomes a class and contains
2469 all the members which resided in ISecurityChannelSource.
2470 Now it takes more constructor params.
2471 Made dependent changes on all sources above.
2473 2) Added SecurityTokenAuthenticator creation in
2474 SecurityRequestChannel (SecurityOutputChannel should do the same).
2476 2006-09-27 Atsushi Enomoto <atsushi@ximian.com>
2478 * SecurityRequestChannel.cs : ongoing improvements on conditional
2479 key creation. Actually there must be some part that creates an
2480 authenticator (WinFX does that).
2482 2006-09-27 Ankit Jain <jankit@novell.com>
2484 Add suport for handling .svc files.
2485 * SvcHttpHandlerFactory.cs: New.
2486 * SvcHttpHandler.cs: New.
2488 * HttpChannelListener.cs (PopulateChannel): Use AspNetReplyChannel if in
2489 asp.net environment.
2490 (OnOpen): Do nothing in asp.net environment.
2491 (OnClose): Likewise.
2492 * HttpReplyChannel.cs (HttpRequestContext): Move to ..
2493 * HttpRequestContext.cs: .. here.
2495 * AspNetReplyChannel.cs: New.
2496 * AspNetRequestContext.cs: New.
2498 2006-09-26 Atsushi Enomoto <atsushi@ximian.com>
2500 * MessageSecurityUtility.cs :
2501 Significantly rewritten decryption parts to respect ReferenceList
2502 to decrypt (so no workaround anymore).
2503 Now e:ReferenceList inside o:Security is treated as the referenced
2504 EncryptedType items are encrypted by 1) the derived key which is
2505 immediately in front of it, or 2) the default key (it is according
2506 to WS-SecureConversation section 9.1). Thus removed immediately
2507 previous hack to auto-fill wsu:Id attributes.
2509 On securing a message, generate correct Id and add DataReference
2510 to ReferenceList properly.
2512 2006-09-26 Atsushi Enomoto <atsushi@ximian.com>
2514 * WSSecurityMessageHeader.cs : handle ReferenceList. It is being
2517 2006-09-26 Atsushi Enomoto <atsushi@ximian.com>
2519 * WSSecurityMessageHeader.cs : handle DerivedKeyToken as a header content.
2520 Actually WSSecurityTokenSerializer should be able to consume it, but after
2521 spending a lot of time I still cannot successfully read it on WinFX.
2522 Skip ReferenceList for now.
2523 * MessageSecurityUtility.cs :
2524 Replaced some string literals with constants.
2525 Added some workaround for DerivedKeyToken retrieval.
2526 WinFX somehow sends incomplete ISO10126 padding which contains
2527 bigger number than the key size and is rejected by EncryptedXml,
2528 so added DecryptLax() which processes such ones in PaddingMode.None
2529 to workaround it (only for cross-connection between mono and winfx).
2530 Added some incomplete implicit wsu:Id processing.
2531 Don't try to replace SignedXml with EncryptedData. It is not added
2532 to the document tree.
2534 2006-09-25 Atsushi Enomoto <atsushi@ximian.com>
2536 * MessageSecurityUtility.cs : support message signature encryption. Some
2539 2006-09-22 Atsushi Enomoto <atsushi@ximian.com>
2541 * SecurityBindingElement.cs : implement Clone(). Remove some MonoTODOs.
2543 2006-09-22 Atsushi Enomoto <atsushi@ximian.com>
2545 * MessageSecurityUtility.cs : fix warnings.
2547 2006-09-22 Atsushi Enomoto <atsushi@ximian.com>
2549 * MessageSecurityUtility.cs : actually there would be more than one
2550 EncryptedData. Decrypt all.
2552 2006-09-22 Atsushi Enomoto <atsushi@ximian.com>
2554 * MessageSecurityUtility.cs : supply correct URIs in SecureMessage().
2555 Use ISO10126 padding mode (it is not required but in manner).
2557 2006-09-21 Atsushi Enomoto <atsushi@ximian.com>
2559 * MessageSecurityUtility.cs : now that EncryptedXml decryption bug is
2560 fixed, remove 16 bytes workaround (we still need encryption bugfix in
2561 that class to make it work fine with mono client).
2562 Removed buggy lines that reset decryption key to AES.
2563 Modified GetKey() argument to take EncryptedData/EncryptedKey element.
2564 * WSSecurityMessageHeader.cs :
2565 (SecurityTokenReferenceKeyInfo) support LoadXml.
2567 2006-09-20 Atsushi Enomoto <atsushi@ximian.com>
2569 * TransactionMessageProperty.cs : new file.
2571 2006-09-20 Atsushi Enomoto <atsushi@ximian.com>
2573 * ChannelPoolSettings.cs, OneWayBindingElement.cs : build fix, as
2574 gmcs happened to report wrong code.
2576 2006-09-19 Atsushi Enomoto <atsushi@ximian.com>
2578 * SecurityChannelFactory.cs, SecurityChannelListener.cs :
2579 .ctor() now requires ChannelProtectionRequirements which will be
2580 supplied via BindingParameterCollection.
2581 * SymmetricSecurityBindingElement.cs,
2582 AsymmetricSecurityBindingElement.cs : thus add
2583 ChannelProtectionRequirement parameter to factory/listener.
2584 * SecurityRequestChannel.cs : use recipient token requirement to
2585 create an encryption token. Thus differentiate the logic from
2586 signing (initiator) token.
2588 2006-09-19 Atsushi Enomoto <atsushi@ximian.com>
2590 * SymmetricSecurityChannelFactory.cs, SecurityChannelFactory.cs :
2591 renamed former to latter.
2592 * SymmetricSecurityChannelListener.cs, SecurityChannelListener.cs :
2595 2006-09-19 Atsushi Enomoto <atsushi@ximian.com>
2597 * MessageSecurityBindingSupport.cs : new internal types to commonize
2598 AsymmetricSecurityBindingElement and SymmetricSecurityBindingElement
2599 and thus make internal factory and listener reusable.
2600 * SymmetricSecurityChannelFactory.cs, SecurityRequestContext.cs,
2601 SecurityRequestChannel.cs, SecurityOutputChannel.cs,
2602 SymmetricSecurityChannelListener.cs : rewrote dependent parts on
2603 SymmetricSecurityBindingElement, using the new types above.
2604 * SymmetricSecurityBindingElement.cs :
2605 Use SymmetricMessageSecurityBindingSupport.
2606 * AsymmetricSecurityBindingElement.cs :
2607 thus implemented, using AsymmetricMessageSecurityBindingSupport.
2609 2006-09-19 Atsushi Enomoto <atsushi@ximian.com>
2611 * ChannelFactoryBase.cs : more RC1 update.
2613 2006-09-19 Atsushi Enomoto <atsushi@ximian.com>
2615 * MessageEncoder.cs, BinaryMessageEncoder.cs, MtomMessageEncoder.cs,
2616 TextMessageEncoder.cs : updated ReadMessage() API to RC1.
2617 * ChannelListenerBase.cs, ChannelListenerBase_1.cs,
2618 ChannelBase.cs : RC1 API updates.
2619 * MessageImpl.cs : implemented Properties.
2620 * HttpReplyChannel.cs : added HttpRequestMessageProperty support.
2622 2006-09-18 Ankit Jain <jankit@novell.com>
2624 * MessageHeaders.cs (MessageId):
2625 (RelatesTo): UniqueId is not serializable, serialize it as a string.
2627 2006-09-17 Atsushi Enomoto <atsushi@ximian.com>
2629 * ChannelParameterCollection.cs : new file.
2630 * LayeredOutputChannel.cs, SecurityOutputChannel.cs :
2631 new files for IOutputChannel implementation.
2632 * OneWayBindingElement.cs : hacky implementation.
2633 * SymmetricSecurityChannelFactory.cs : support IOutputChannel.
2634 * MessageSecurityUtility.cs : now create identifier from the security
2635 token and the token parameters which is added as an argument.
2636 * SecurityRequestContext.cs,
2637 SecurityRequestChannel.cs : SecureMessage() argument changes.
2638 Set MessageSecurityVersion (SecurityTokenVersion) to the token
2641 2006-09-17 Atsushi Enomoto <atsushi@ximian.com>
2643 * HttpRequestChannel.cs : close the HttpWebRequest.
2645 2006-09-17 Atsushi Enomoto <atsushi@ximian.com>
2647 * HttpRequestChannel.cs,
2648 HttpChannelFactory.cs : implement async request/reply.
2649 * HttpChannelFactory.cs :
2650 verify factory state when creating a channel.
2652 2006-09-17 Atsushi Enomoto <atsushi@ximian.com>
2654 * MessageEncoder.cs, TextMessageEncoder.cs, MtomMessageEncoder.cs,
2655 BinaryMessageEncoder.cs : added message version mismatch check.
2657 2006-09-15 Atsushi Enomoto <atsushi@ximian.com>
2659 * SymmetricSecurityChannelListener.cs, SecurityRequestContext.cs :
2660 Making incomplete changes to handle different tokens for encryption
2662 * SymmetricSecurityChannelFactory.cs, SecurityRequestChannel.cs :
2663 split channel implementation classes out to the latter file.
2664 * MessageSecurityUtility.cs : seems like there is
2665 TimeStampValidityDuration property, so use it (incomplete; a server
2666 needs another love).
2668 2006-09-12 Atsushi Enomoto <atsushi@ximian.com>
2670 * MessageSecurityUtility.cs, SymmetricSecurityChannelFactory.cs,
2671 SecurityRequestContext.cs : now that we have key identifier clause
2672 and working ResolveKeyIdentifierClause(), just create keys inside
2673 SecureMessage(). Add KeyInfo to the xmldsig.
2675 2006-09-12 Atsushi Enomoto <atsushi@ximian.com>
2677 * SymmetricSecurityChannelFactory.cs, SecurityRequestContext.cs :
2678 pass SecurityKeyIdentifierClause to SecureMessage().
2679 * SecurityBindingElement.cs : set X509ReferenceStyle as Thumbprint
2680 for IssuedToken binding element.
2681 * SymmetricSecurityChannelListener.cs : removed hack to just create
2682 X509 security token, and implemented correct token creation.
2683 * WSSecurityMessageHeader.cs : added new KeyInfoClause type that
2684 wraps SecurityTokenReference element.
2685 * MessageSecurityUtility.cs : use the above.
2687 2006-09-08 Atsushi Enomoto <atsushi@ximian.com>
2689 * MessageSecurityUtility.cs : raise MessageSecurityException when it
2690 could not find a security header.
2691 * SymmetricSecurityChannelFactory.cs : now it also supports
2692 IRequestSessionChannel. Extracted SecurityRequestChannel out from
2695 2006-09-08 Atsushi Enomoto <atsushi@ximian.com>
2697 * SecurityRequestContext.cs : moved securing message part to
2698 MessageSecurityUtility.cs.
2699 * MessageSecurityUtility.cs : the change above.
2700 use DateTime.Now for timestamp basis. Don't append signature to
2701 the document. Instead it is added to the header. Capture body
2702 content instead of the body itself.
2703 * SymmetricSecurityChannelFactory.cs : decrypt reply message to
2704 be processed by upper layers.
2706 2006-09-08 Atsushi Enomoto <atsushi@ximian.com>
2708 * MessageSecurityUtility.cs, WSSecurityMessageHeader.cs,
2709 SymmetricSecurityChannelListener.cs,
2710 SymmetricSecurityChannelFactory.cs, SecurityRequestContext.cs :
2711 more refactoring. Request serialization became much more conformant
2712 and add required header items.
2713 Security Token retrieval is needed to send it in the request.
2714 Fixed wrong key encryption.
2716 2006-09-07 Atsushi Enomoto <atsushi@ximian.com>
2718 * SecurityRequestContext.cs : the workaround was not functional.
2720 2006-09-07 Atsushi Enomoto <atsushi@ximian.com>
2722 * SecurityRequestContext.cs : some more refactoring. Use EncryptedXml
2723 API, especially ReplaceData(), instead of native crypto stuff.
2724 * WSSecurityMessageHeader.cs : handle dsig:Signature as well (for
2725 MessageProtectionOrder.SignBeforeEncrypt).
2727 2006-09-07 Atsushi Enomoto <atsushi@ximian.com>
2729 * SecurityRequestContext.cs : label should be combined of both
2730 the client's and the server's.
2732 2006-09-06 Atsushi Enomoto <atsushi@ximian.com>
2734 * SecurityRequestContext.cs : enable key derivation (though for now
2735 GenerateDerivedKey() is unimplemented). Create meaningful,
2736 decrypted request message to be consumed by the upper layer.
2738 2006-09-06 Atsushi Enomoto <atsushi@ximian.com>
2740 * SecurityRequestContext.cs : implement Close() and Reply().
2741 ongoing implementation of Reply(TimeSpan).
2742 * MessageSecurityUtility.cs : new file to collect utility methods.
2743 * SymmetricSecurityChannelFactory.cs : moved securing message code
2745 * SymmetricSecurityChannelListener.cs : tiny renaming.
2747 2006-09-06 Atsushi Enomoto <atsushi@ximian.com>
2749 * SecurityRequestContext.cs : security header is also stored.
2751 * WSSecurityMessageHeader.cs : read EncryptedKey and EncryptedData
2754 2006-09-06 Atsushi Enomoto <atsushi@ximian.com>
2756 * SymmetricSecurityChannelFactory.cs : tiny progress on securing
2759 2006-09-05 Atsushi Enomoto <atsushi@ximian.com>
2761 * SymmetricSecurityChannelFactory.cs : specify KeyUsage.Exchange
2762 so that it retrieves the security key in that manner.
2764 2006-09-05 Atsushi Enomoto <atsushi@ximian.com>
2766 * Binding.cs : MessageVersion is null when there is no
2767 MessageEncodingBindingElement.
2768 * Message.cs : null arg check.
2770 2006-09-05 Atsushi Enomoto <atsushi@ximian.com>
2772 * ChannelPoolSettings.cs, OneWayBindingElement.cs : new files.
2774 2006-09-04 Atsushi Enomoto <atsushi@ximian.com>
2776 * SymmetricSecurityChannelListener.cs, SecurityRequestContext.cs,
2777 LayeredReplyChannel.cs, LayeredCommunicationObject.cs,
2778 LayeredRequestChannel.cs : some refactoring.
2779 * SymmetricSecurityChannelFactory.cs :
2780 ongoing secure message creation implementation.
2782 2006-09-01 Atsushi Enomoto <atsushi@ximian.com>
2784 * SymmetricSecurityBindingElement.cs :
2785 pass specific ServiceCredentialsSecurityTokenManager type to
2786 SymmetricSecurityChannelListener as it needs ServiceCertificate.
2787 * SymmetricSecurityChannelListener.cs :
2788 get service certificate. It's a temporary hack.
2789 Move RequestContext code to below.
2790 * SecurityRequestContext.cs : new file.
2791 * WSSecurityMessageHeader.cs : implementing Read(), but to finish
2792 it I have to finish decryption of the incoming message.
2794 2006-08-31 Atsushi Enomoto <atsushi@ximian.com>
2796 * MessageImpl.cs : don't write attributes on the first body content
2797 element *on soap Body element*.
2798 * MessageBufferImpl.cs : don't throw ArgumentNullException.
2799 ObjectDisposedException is appropriate.
2800 * MessageHeader.cs : (RawMessageHeader) don't write element itself
2801 in OnWriteHeader*Contents*().
2803 2006-08-31 Atsushi Enomoto <atsushi@ximian.com>
2805 * WSSecurityMessageHeader.cs : new file.
2806 * SymmetricSecurityChannelFactory.cs :
2807 moved WSSecurityHeader and related types to the above.
2808 * SymmetricSecurityChannelListener.cs :
2809 reject SOAP-env-less message.
2811 2006-08-31 Atsushi Enomoto <atsushi@ximian.com>
2813 * SecurityChannelListener.cs, SymmetricSecurityChannelListener.cs :
2814 renamed former to latter.
2815 * SymmetricSecurityChannelFactory.cs :
2816 create requirements every time. It is also likely that I need
2817 another requirement instance to get service credentials here.
2819 2006-08-30 Atsushi Enomoto <atsushi@ximian.com>
2821 * SymmetricSecurityBindingElement.cs : make BuildChannelListener()
2822 similar to BuildChannelFactory() (set credentials, issuer binding
2824 * SecurityChannelListener.cs :
2825 more ongoing security support implementation.
2826 * SymmetricSecurityChannelFactory.cs :
2827 moved GetSecurityKey() to SymmetricSecurityRequestChannel.
2829 2006-08-29 Atsushi Enomoto <atsushi@ximian.com>
2831 * SecurityChannelListener.cs, SymmetricSecurityBindingElement.cs :
2832 Renamed SecurityChannelListener to SymmetricSecurityChannelListener.
2833 Implementation is underway.
2834 * LayeredReplyChannel.cs :
2835 like LayeredRequestChannel, use ChannelListenerBase to provide
2838 2006-08-29 Atsushi Enomoto <atsushi@ximian.com>
2840 * MessageHeader.cs : added another implementation type that uses
2841 XmlElement, for buffering purpose.
2842 * MessageImpl.cs : Header item types are user-driven by
2843 MessageHeader.GetHeader<T>(int), so at storing phase just store
2844 nodes as XmlElement.
2845 * MessageHeaders.cs : avoid dumping XmlNode to string to create
2848 2006-08-28 Atsushi Enomoto <atsushi@ximian.com>
2850 * SymmetricSecurityBindingElement.cs : find ClientCredentials from
2851 BindingParameterCollection, not from binding element properties.
2853 2006-08-28 Atsushi Enomoto <atsushi@ximian.com>
2855 * SecurityChannelFactory.cs, SymmetricSecurityChannelFactory.cs :
2856 renamed former to latter.
2858 2006-08-25 Atsushi Enomoto <atsushi@ximian.com>
2860 * SecurityBindingElement.cs : SetIssuerBindingContext should also
2861 work for SslSecurityTokenParameters.
2863 2006-08-24 Atsushi Enomoto <atsushi@ximian.com>
2865 * SecurityBindingElement.cs :
2866 Added SetIssuerBindingContextIfRequired().
2867 * SecurityChannelFactory.cs :
2868 Changed .ctor() arg again, just to receive binding element.
2869 * SymmetricSecurityBindingElement.cs :
2870 Call SetIssuerBindingContextIfRequired() in BuildChannelFactory().
2871 SymmetricSecurityChannelFactory .ctor() arg changes.
2872 "ProtectionTokenParameters" is not passed now.
2874 2006-08-23 Atsushi Enomoto <atsushi@ximian.com>
2876 * SymmetricSecurityBindingElement.cs : requirements should be
2877 filled at InitializeSecurityTokenParameters as long as possible.
2878 SymmetricSecurityChannelFactory<T> now does not receive
2879 requirements (it now creates one inside it) at .ctor().
2880 * SecurityChannelFactory.cs : remove requirement argument.
2882 2006-08-23 Atsushi Enomoto <atsushi@ximian.com>
2884 * SymmetricSecurityBindingElement.cs : implemented copy constructor.
2886 2006-08-22 Atsushi Enomoto <atsushi@ximian.com>
2888 * SymmetricSecurityBindingElement.cs :
2889 MessageSecurityVersion property is of type SecurityTokenVersion.
2890 * SecurityBindingElement.cs :
2891 Implemented CreateSecureConversationBindingElement().
2892 For CreateIssuedTokenBindingElement(), ProtectionTokenParameters is
2893 the argument IssuedSecurityTokenParameters itself.
2895 2006-08-22 Atsushi Enomoto <atsushi@ximian.com>
2897 * SymmetricSecurityBindingElement.cs :
2898 CreateSecurityTokenManager() can be directly used now.
2899 Use CallInitializeSecurityTokenRequirement() to fill requirement
2902 2006-08-16 Atsushi Enomoto <atsushi@ximian.com>
2904 * ChannelFactoryBase.cs : GetProperty() is virtual.
2906 2006-08-14 Atsushi Enomoto <atsushi@ximian.com>
2908 * SymmetricSecurityBindingElement.cs : in BuildChannelFactory(),
2909 create token manager, token parameters and token requirements,
2910 and fill some requirements.
2911 * TransportBindingElement.cs, HttpTransportBindingElement.cs,
2912 TextMessageEncodingBindingElement.cs : workaround to not throw NIE.
2913 * BindingContext.cs : implemented RemainingBindingElements.
2914 kill "no remaining binding element" error in GetInnerProperty()
2915 * SecurityChannelFactory.cs : now it became
2916 SymmetricSecurityChannelFactory, thus soon to be renamed.
2917 Several ongoing actual security resolution is on.
2919 2006-08-11 Atsushi Enomoto <atsushi@ximian.com>
2921 * CommunicationObject.cs :
2922 add GetCommunicationObjectType() and use it.
2923 * ChannelFactoryBase.cs, ChannelListenerBase_1.cs :
2924 use ThrowIfDisposedOrNotOpen().
2925 * LayeredCommunicationObject.cs : have similar ThrowIf...() methods
2926 to CommunicationObject. Make it IDisposable.
2927 * LayeredRequestChannel.cs : use above.
2928 * SecurityChannelFactory.cs : removed state check as it is done at
2931 2006-08-10 Atsushi Enomoto <atsushi@ximian.com>
2933 * SecurityBindingElement.cs : (CanBuildChannelFactory and
2934 CanBuildChannelListener) directly dispatch to BindingContext.
2935 * SymmetricSecurityBindingElement.cs : require protection token
2936 parameters before building a channel or a listener.
2937 * ChannelFactoryBase.cs : raise an error when a channel is being
2938 created without opening the factory.
2939 * ChannelListenerBase_1.cs : ditto for the listener.
2940 * SecurityChannelFactory.cs : before sending a request, it must be
2943 2006-08-07 Atsushi Enomoto <atsushi@ximian.com>
2945 * MessageBufferImpl.cs : initialize fields.
2946 workaround BufferSize just to return 0.
2947 * MessageImpl.cs : for BodyWriter, don't use DefaultMessageBuffer
2948 which does not support multi time write.
2949 * Message.cs : implemented State.
2951 2006-08-07 Atsushi Enomoto <atsushi@ximian.com>
2953 * Message.cs : OnGetBodyAttribute() cannot return anything unless it
2954 is consuming XmlReader.
2955 Implemented OnCreateBufferedCopy(), to return XPathMessageBuffer.
2956 * MessageBuffer.cs : implemented CreateNavigator().
2957 * MessageBufferImpl.cs : added XPathMessageBuffer class.
2959 I kinda know that MS heavily depends on binary XmlReader and may have
2960 XPathNavigator implementation based on the binary stuff, but at
2961 least for now we have almost no motivation to mimick it.
2963 2006-08-07 Atsushi Enomoto <atsushi@ximian.com>
2965 * SecurityChannelFactory.cs : a bit more of security header code.
2967 2006-08-04 Atsushi Enomoto <atsushi@ximian.com>
2969 * SymmetricSecurityBindingElement.cs :
2970 set default MessageProtectionOrder in every construction.
2972 2006-08-03 Atsushi Enomoto <atsushi@ximian.com>
2974 * LayeredRequestChannel.cs, SecurityChannelFactory.cs :
2975 changed to require ChannelFactoryBase to support default timeout.
2976 Made some methods non-virtual. Preparing code to add security
2977 headers (empty yet).
2978 * SecurityBindingElement.cs : implemented several factory methods
2979 that return SymmetricSecurityBindingElement.
2981 2006-08-02 Atsushi Enomoto <atsushi@ximian.com>
2983 * IStreamUpgradeBindingElement.cs,
2984 StreamUpgradeBindingElement.cs : renamed from former to latter.
2986 2006-08-02 Atsushi Enomoto <atsushi@ximian.com>
2988 * IStreamUpgradeBindingElement.cs : API update, soon to be renamed.
2990 2006-07-31 Ankit Jain <jankit@novell.com>
2992 * MessageHeaders.cs (From): Use Constants.WSA1
2993 (MessageId): Implement the same pattern as other properties (From etc).
2995 2006-07-28 Atsushi Enomoto <atsushi@ximian.com>
2997 * LocalClientSecuritySettings.cs : initialize IdentityVerifier as well.
2998 * SecurityBindingElement.cs : some cosmetic changes.
3000 2006-07-28 Atsushi Enomoto <atsushi@ximian.com>
3002 * SecurityBindingElement.cs : LocalClientSettings and
3003 LocalServiceSettings returns an instance for each.
3004 * LocalClientSecuritySettings.cs : initialized fields.
3006 2006-07-28 Atsushi Enomoto <atsushi@ximian.com>
3008 * LocalClientSecuritySettings.cs : moved from S.SM.Description, and
3009 kinda implemented Clone() just with MemberwiseClone().
3011 2006-07-27 Ankit Jain <jankit@novell.com>
3013 * MessageHeaders.cs (set_To): Use Uri.AbsoluteUri .
3014 * MessageHeader.cs (knownTypes): New. Known type array containing
3016 (CreateHeader): Use knownTypes with the DataContractSerializer .ctor
3018 2006-07-21 Atsushi Enomoto <atsushi@ximian.com>
3020 * LayeredRequestChannel.cs, LayeredReplyChannel.cs,
3021 LayeredCommunicationObject.cs,
3022 SecurityChannelFactory.cs, SecurityChannelListener.cs :
3023 new files to support security channels, though right now they
3024 just pass inner channels through.
3025 * SymmetricSecurityBindingElement.cs : use above.
3027 2006-07-21 Atsushi Enomoto <atsushi@ximian.com>
3029 * AsymmetricSecurityBindingElement.cs,
3030 SymmetricSecurityBindingElement.cs :
3031 Default SecurityTokenParameters is null.
3033 2006-07-20 Atsushi Enomoto <atsushi@ximian.com>
3035 * AsymmetricSecurityBindingElement.cs : remove NotImpl for now.
3037 2006-07-20 Atsushi Enomoto <atsushi@ximian.com>
3039 * Message.cs : When EnvelopeVersion is None, don't write SOAP
3041 * MessageHeader.cs : don't write headers when EnvelopeVersion is None.
3042 * MessageHeaders.cs : When EnvelopeVersion is None, don't output
3043 headers. When AddressingVersion is None, don't output addressing
3044 headers as well, except for Action which is still needed by
3047 2006-07-20 Atsushi Enomoto <atsushi@ximian.com>
3049 * MessageHeaders.cs : changed specific properties to find it from
3050 headers as Action property does (local variables won't be set by
3051 setter). Cache serializers. Check null serializer arguments.
3052 For EndpointAddress, GetHeader<T>() shouldn't use serializer.
3054 2006-07-19 Atsushi Enomoto <atsushi@ximian.com>
3056 * MessageHeader.cs : WriteTo() should treat EndpointAddress to not
3057 use XmlObjectSerializer (since it is not data contract type).
3059 2006-07-18 Atsushi Enomoto <atsushi@ximian.com>
3061 * MessageImpl.cs : Improved ReadHeaders().
3062 For certain header items, use EndpointAddress.ReadFrom().
3064 2006-07-18 Atsushi Enomoto <atsushi@ximian.com>
3066 * AsymmetricSecurityBindingElement.cs :
3067 it is not ISecurityCapabilities anymore.
3069 2006-07-18 Atsushi Enomoto <atsushi@ximian.com>
3071 * MessageVersion.cs : added None.
3073 2006-07-14 Atsushi Enomoto <atsushi@ximian.com>
3075 * Message.cs : GetReaderAtBodyContents() implementation using
3078 2006-07-13 Atsushi Enomoto <atsushi@ximian.com>
3080 * Message.cs : CreateMessage(version,action,xmlReader) incorrectly
3081 used MessageVersion.Default.
3083 2006-07-12 Duncan Mak <duncan@novell.com>
3085 * MessageBuffer.cs (MessageContentType): Return
3086 "application/soap+msbin1".
3088 * MessageImpl.cs (EmptyMessage.OnCreateBufferedCopy):
3089 (SimpleMessage.OnCreateBufferedCopy):
3090 (XmlReaderMessage.OnCreateBufferedCopy): Hook up with the new
3091 MessageBuffer implementations.
3093 * MessageBufferImpl.cs: Concrete implmentations for MessageBuffer.
3094 (DefaultMessageBuffer): Used by EmptyMessage and SimpleMessage.
3095 (XmlReaderMessageBuffer): Used by XmlReaderMessage.
3097 2006-07-12 Atsushi Enomoto <atsushi@ximian.com>
3099 * MessageImpl.cs : Action should be added in request messages. Omit
3100 it only in reply message, thus moved to dispatcher logic.
3102 2006-07-12 Ankit Jain <jankit@novell.com>
3104 * HttpRequestChannel.cs (HttpRequestChannel.Request): Workaround for a
3105 bug in WebConnectionStream.
3106 * MessageHeaders.cs (MessageHeaders.From):
3107 (MessageHeaders.ReplyTo):
3108 (MessageHeaders.To): Add the corresponding MessageHeader on set.
3110 2006-07-11 Atsushi Enomoto <atsushi@ximian.com>
3112 * MessageImpl.cs : when AddressingVersion is None (e.g. POX), don't
3113 add SOAP Action to the response at any time.
3115 2006-07-10 Atsushi Enomoto <atsushi@ximian.com>
3117 * SymmetricSecurityBindingElement.cs,
3118 SecurityBindingElement.cs : They are not ISecurityCapabilities now.
3119 Implemented .ctor() and some properties.
3121 2006-07-10 Atsushi Enomoto <atsushi@ximian.com>
3123 * TransactionFlowBindingElement.cs : new file.
3124 * HttpTransportBindingElement.cs : added missing KeepAliveEnabled.
3126 2006-07-06 Atsushi Enomoto <atsushi@ximian.com>
3129 DefaultAction vanished. CreateFault() now takes bufferSize arg.
3130 * MessageHeaders.cs : ArgumentException -> MessageHeaderException.
3131 * AddressingVersion.cs : added None. Equals() and GetHashCode()
3132 vanished (there is anyways no way to instantiate this type).
3133 * MessageVersion.cs : added Soap11 and Soap12.
3134 * TextMessageEncoder.cs : silly quotation mark wrapper disappeared
3135 in June CTP. goodie.
3137 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
3139 * MtomMessageEncoder.cs, BinaryMessageEncoder.cs, Message.cs :
3140 removed some vanished CreateMessage() overloads.
3142 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
3144 * CustomBinding.cs, HttpsTransportBindingElement.cs,
3145 HttpTransportBindingElement.cs :
3146 They are not ISecurityCapabilities anymore.
3147 Modified code to match June CTP behavior.
3149 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
3151 * StreamSecurityUpgradeProvider.cs : Identity -> EndpointIdentity.
3153 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
3155 * EmptyFaultException.cs : removed unused code.
3156 * IRequestContext.cs, RequestContext.cs : renamed former to latter.
3158 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
3160 * LayeredChannelFactory.cs : removed obsolete class.
3161 * ChannelFactoryBase.cs, HttpChannelFactory.cs,
3162 ChannelListenerBase.cs, HttpChannelListener.cs,
3163 HttpReplyChannel.cs, ChannelManagerBase.cs :
3164 all those changes were brought by ChannelManagerBase changes.
3166 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
3168 * ReplyChannelBase.cs, HttpChannelFactory.cs, ChannelBase.cs
3169 CommunicationObject.cs, HttpChannelListener.cs,
3170 ChannelFactoryBase.cs :
3171 CommunicationObject abstract changes brought this madness.
3173 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
3175 * BindingContext.cs : listenUri address parameters could be null in
3178 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
3180 * IRequestContext.cs :
3181 Now it became a class. File renaming will follow soon.
3182 * IChannelFactory.cs, IInputChannel.cs, IReplyChannel.cs,
3183 IDuplexChannel.cs, IDuplexSessionChannel.cs,
3184 IOutputChannel.cs, IOutputSessionChannel.cs,
3185 IRequestChannel.cs, IRequestSessionChannel.cs :
3186 They are not IDisposable anymore.
3187 For IReplyChannel, IRequestContext -> RequestContext.
3188 * IChannelListener.cs : removed Identity. Added GetProperty().
3189 * ChannelListenerBase.cs, ChannelListenerBase.cs,
3190 ReplyChannelBase.cs, HttpReplyChannel.cs :
3191 Several members disappeared, and dependent changes.
3192 * HttpTransportBindingElement.cs,
3193 HttpChannelListener.cs, :
3194 ChannelListenerBase.SharedChannelListener vanished.
3196 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
3198 * MessageEncodingBindingElement.cs
3199 MtomMessageEncodingBindingElement.cs,
3200 TextMessageEncodingBindingElement.cs,
3201 BinaryMessageEncodingBindingElement.cs :
3202 June CTP updates: AddressingVersion -> MessageVersion.
3203 * Binding.cs : June CTP. MessageVersion is added.
3204 * ChannelBase.cs, BindingContext.cs, IChannel.cs
3205 ChannelListenerBase_1.cs,
3206 ChannelListenerBase.cs, IChannelListener.cs,
3208 ChannelFactoryBase.cs, ChannelManagerBase.cs :
3209 June CTP. Several interface changes.
3210 * HttpTransportBindingElement.cs : June CTP. HttpMappingMode is gone.
3211 * IChannelManager.cs, LayeredChannelListener.cs,
3212 GenericWrapperChannelFactory.cs,
3213 GenericWrapperChannelListener.cs : They are not used anymore.
3215 2006-07-04 Atsushi Enomoto <atsushi@ximian.com>
3217 * MtomMessageEncoder.cs, BinaryMessageEncoder.cs :
3218 sync fix with June CTP API updates.
3220 2006-07-03 Ankit Jain <jankit@novell.com>
3222 * MessageEncodingBindingElementConverter.cs:
3223 * StandardBindingConverter.cs:
3224 * TransportBindingElementConverter.cs:
3225 * TransactionFlowBindingElementConverter.cs:
3226 * ReliableSessionBindingElementConverter.cs:
3227 * SecurityBindingElementConverter.cs:
3228 Rename *Converter.cs to *Importer.cs
3230 * TransferMode.cs: Move to System.ServiceModel
3232 2006-06-22 Atsushi Enomoto <atsushi@ximian.com>
3234 * CommunicationObject.cs : make sure to change State before
3235 OnClosing/OnClosed/OnOpening/OnOpened when they are overriden.
3237 2006-06-20 Atsushi Enomoto <atsushi@ximian.com>
3239 * Message.cs : output WSAddressing xmlns only when Action is
3240 specified (To should be affected, but seems like it is ignored).
3242 2006-06-20 Atsushi Enomoto <atsushi@ximian.com>
3244 * MessageImpl.cs : don't set Action when it is null.
3246 2006-06-12 Ankit Jain <jankit@novell.com>
3248 * TransportBindingElementConverter.cs (ImportEndpoint): Implement.
3250 2006-05-29 Atsushi Enomoto <atsushi@ximian.com>
3252 * SecurityBindingElement.cs, SecurityBindingElementConverter.cs :
3253 some updated API fixes.
3255 2006-05-29 Atsushi Enomoto <atsushi@ximian.com>
3257 * EnvelopeVersion.cs : moved back to S.SM.
3259 2006-05-29 Atsushi Enomoto <atsushi@ximian.com>
3261 * IBindingManualAddressing.cs : vanished in beta2.
3262 * HostedTransportConfiguration.cs, EnvelopeVersion.cs,
3263 LocalClientSecuritySettings.cs, LocalServiceSecuritySettings.cs :
3265 * SecurityBindingElement.cs :
3266 SecurityStandardsManager -> SecurityTokenSerializer.
3268 2006-05-29 Atsushi Enomoto <atsushi@ximian.com>
3270 * XmlSerializerBodyWriter.cs : new file to handle
3271 TypedMessageConverter.ToMessage().
3273 2006-04-26 Ankit Jain <jankit@novell.com>
3275 * TransportBindingElementConverter.cs (BeforeImport): Remove
3276 NotImplementedException.
3277 (ImportContract): Likewise.
3278 * CustomBinding.cs (.ctor): Use scheme from the binding parameter.
3280 2006-04-14 Atsushi Enomoto <atsushi@ximian.com>
3282 * HttpRequestChannel.cs, HttpChannelFactory.cs : message encoder
3283 being used was not reflecting that of Binding elements.
3285 2006-04-07 Atsushi Enomoto <atsushi@ximian.com>
3287 * HttpReplyChannel.cs : when SOAP action is not set as a header item,
3288 just assume that it is in the message.
3290 2006-04-06 Atsushi Enomoto <atsushi@ximian.com>
3292 * HttpReplyChannel.cs : actually HTTP header item might be null.
3294 2006-04-06 Atsushi Enomoto <atsushi@ximian.com>
3296 * HttpReplyChannel.cs : under SOAP 1.1 SOAP Action is sent as HTTP
3299 2006-04-06 Atsushi Enomoto <atsushi@ximian.com>
3301 * TextMessageEncoder.cs : for SOAP 1.1 content type is text/xml.
3303 2006-04-06 Atsushi Enomoto <atsushi@ximian.com>
3305 * MessageFault.cs : Fixed SOAP12 reason output.
3307 2006-04-05 Atsushi Enomoto <atsushi@ximian.com>
3309 * HttpReplyChannel.cs : no need to set response ContentEncoding since
3310 MessageEncoder.ContentType explicitly contains encoding.
3311 * AddressingVersion.cs : added ActionNotSupported property. Not sure
3312 if it is SOAP version dependent.
3314 2006-03-23 Atsushi Enomoto <atsushi@ximian.com>
3316 * HttpReplyChannel.cs : actually I could just workaround bug #77816.
3318 2006-03-16 Atsushi Enomoto <atsushi@ximian.com>
3320 * HttpChannelFactory.cs BindingContext.cs
3321 HttpChannelListener.cs HttpTransportBindingElement.cs :
3322 Now BindingContext holds MessageEncoder, and non-custom
3323 channel factory/listener should use it.
3324 * MtomMessageEncodingBindingElement.cs
3325 TextMessageEncodingBindingElement.cs
3326 BinaryMessageEncodingBindingElement.cs : BuildChannelFactory()/
3327 -Listener() now sets internal BindingContext.MessageEncoder.
3328 Fixed some public API.
3330 2006-03-15 Atsushi Enomoto <atsushi@ximian.com>
3332 * BindingContext.cs : CanBuildChannelXXX() should not raise error
3333 for insufficient elements.
3334 * DispatchRuntime.cs : OperationDescription name is not action. So
3335 OperationSelector is created by name, not by action.
3336 * TextMessageEncodingBindingElement.cs : Feb. CTP API fixes.
3338 2006-03-14 Atsushi Enomoto <atsushi@ximian.com>
3340 * MessageFaultBodyWriter.cs
3341 XmlReaderBodyWriter.cs
3342 XmlObjectSerializerBodyWriter.cs : made internal.
3343 * SecurityBindingElement.cs
3344 AsymmetricSecurityBindingElement.cs
3345 SymmetricSecurityBindingElement.cs : API fixes.
3346 * TransportBindingElementConverter.cs : ditto.
3347 * TextMessageEncodingBindingElement.cs : added set_AddressingVersion.
3348 * WindowsStreamSecurityBindingElement.cs
3349 SslStreamSecurityBindingElement.cs
3350 TransportSecurityBindingElement.cs : new files.
3352 2006-03-14 Atsushi Enomoto <atsushi@ximian.com>
3354 * MessageImpl.cs : according to the W3C REC, mustUnderstand when
3355 reading can be any xs:boolean value.
3357 2006-03-14 Atsushi Enomoto <atsushi@ximian.com>
3359 * Message.cs MessageImpl.cs : more sorting out the role of each
3361 * MessageHeader.cs : use envelope namespace, not addressing namespace.
3363 2006-03-14 Atsushi Enomoto <atsushi@ximian.com>
3365 * Message.cs : don't write body contents if it is empty.
3366 Moved WriteStartElement(,"Header",) to OnWriteStartHeaders().
3367 * MessageImpl.cs : implemented XmlReaderMessage.OnWriteBodyContents().
3368 * TextMessageEncoder.cs : WriteMessage() should close XmlWriter.
3369 * HttpRequestChannel.cs : close request stream before GetResponse().
3371 2006-03-13 Atsushi Enomoto <atsushi@ximian.com>
3373 * TextMessageEncoderFactory.cs
3374 TextMessageEncoder.cs : encoder does not hold reference to the
3375 factory anymore. Use MessageVersion property in CreateMssage().
3376 * HttpChannelListener.cs : now it holds message encoder.
3377 * HttpReplyChannel.cs : now it uses listener's shared message encoder.
3378 * MessageImpl.cs : header is optional.
3379 * EnvelopeVersion.cs : namespace URI is missing.
3381 2006-03-10 Atsushi Enomoto <atsushi@ximian.com>
3383 * CustomBinding.cs : removed Initialize().
3384 * Message.cs : renamed ForwardingMessage -> XmlReaderMessage.
3385 * MessageImpl.cs : renamed ForwardingMessage to XmlReaderMessage (used
3386 by Message.CreateMessage(MessageVersion,XmlReader,int) and
3387 implemented Headers, IsEmpty and GetReaderAtBodyContents().
3389 2006-03-08 Atsushi Enomoto <atsushi@ximian.com>
3391 * MessageHeaders.cs : implemented GetReaderAtHeader() and Action (it
3392 could be also added by Add() method and could be reset by Remove()).
3393 * MessageImpl.cs : implemented more. As noted above, Now we don't
3394 have to add Action header explicitly.
3395 * MessageHeader.cs : recovered Writer methods and ToString() from
3396 commented old version. Use prefixes for writing.
3397 Use WriteObjectContent() rather than WriteObject() (it needs
3398 DataContractSerializer fix btw).
3400 2006-03-08 Atsushi Enomoto <atsushi@ximian.com>
3402 * MessageHeader.cs : added missing IsReferenceParameter.
3403 * MessageHeaderInfo.cs : added missing IsReferenceParameter.
3404 * MessageHeaders.cs : avoid NullRef when actors is null.
3405 * MessageImpl.cs : (MessageImplBase) add Action header in .ctor().
3406 (ForwardingMessage) reader consumer is being added (not done).
3407 * MtomMessageEncodingBindingElement.cs : simply use Mtom factory.
3408 * MtomMessageEncoder.cs : updated ContentType value to Feb. CTP.
3409 * HttpRequestChannel.cs : this channel automatically call Open()
3410 when Request() is called. Set content length for request.
3411 Use MessageEncoder's ContentType to also handle charset.
3413 2006-03-07 Atsushi Enomoto <atsushi@ximian.com>
3415 * MessageImpl.cs : make them internal.
3416 * HttpReplyChannel.cs : set HttpListenerResponse properties correctly.
3418 2006-03-07 Atsushi Enomoto <atsushi@ximian.com>
3420 * ChannelManagerBase.cs : cleanup MonoTODO and unused field.
3421 * HttpChannelListener.cs : removed commented line.
3422 * RequestChannelBase.cs : new base class for request channel classes.
3423 * ChannelListenerBase.cs : OnEndClose() is rather NotImplemented yet.
3424 * HttpReplyChannel.cs : WaitHandle accepts limited timeout value.
3425 * Message.cs : default IsEmpty and IsFault false by default.
3426 * LayeredChannelListener.cs : removed Uri (no chance to set).
3427 * ChannelBase.cs : reimplemented timeout properties.
3428 * HttpRequestChannel.cs : now it is mostly based on
3429 RequestChannelBase. Some more attempt to implement Request().
3431 2006-03-07 Atsushi Enomoto <atsushi@ximian.com>
3433 * Binding.cs CustomBinding.cs : removed OnApplyConfiguration() and
3434 OnInitialize(). Added more BuildChannelListener() overloads.
3436 2006-03-06 Atsushi Enomoto <atsushi@ximian.com>
3438 * Binding.cs : added some more missing members especially to support
3440 * HttpChannelListener.cs : Uri should not be null.
3441 * HttpTransportBindingElement.cs : implemented
3442 CanBuildChannelFactory() and CanBuildChannelListener().
3443 * ServiceHostBase.cs : make Initialize() practically work at OnOpen().
3445 2006-03-06 Atsushi Enomoto <atsushi@ximian.com>
3447 * Binding.cs : updated default namespace property value to Feb. CTP.
3449 2006-03-03 Atsushi Enomoto <atsushi@ximian.com>
3451 * AddressHeader.cs : avoid null reference when value is null.
3452 * BindingContext.cs : check null ListenUri args.
3454 2006-03-03 Atsushi Enomoto <atsushi@ximian.com>
3456 * MessageFault.cs : Fixed default action name. Null arg check.
3458 2006-03-03 Atsushi Enomoto <atsushi@ximian.com>
3460 * BindingElement.cs : Dequeue elements in BindingContext directly.
3461 * BindingContext.cs : Added GetProperty<T>().
3462 * GenericWrapperChannelFactory.cs GenericWrapperChannelListener.cs :
3463 Now we don't need these extra classes, so marked as deprecated.
3465 2006-03-03 Atsushi Enomoto <atsushi@ximian.com>
3467 * Binding.cs : null arg check.
3468 * AddressingVersion.cs : fixed constants to pass the tests.
3469 * BindingElement.cs : tiny meessage fix.
3471 2006-03-02 Atsushi Enomoto <atsushi@ximian.com>
3473 * MessageEncodingBindingElement.cs
3474 BinaryMessageEncodingBindingElement.cs
3475 TextMessageEncodingBindingElement.cs
3476 MtomMessageEncodingBindingElement.cs
3477 MessageEncodingBindingElementConverter.cs : several API fixes.
3478 * BindingElement.cs : now if we use generic wrapper it causes
3479 infinite loop, so for now replace it with most-possible-but-
3482 2006-03-02 Atsushi Enomoto <atsushi@ximian.com>
3484 (back to normal "record-ChangeLogs" mode after the big API change mess)
3485 * HttpTransportBindingElement.cs : fixed minor API differences.
3487 2006-02-23 Atsushi Enomoto <atsushi@ximian.com>
3489 * AsymmetricSecurityBindingElement.cs SecurityBindingElement.cs
3490 SymmetricSecurityBindingElement.cs :
3491 Dependent fixes for System.IdentityModel reorgainzation.
3493 2006-02-23 Atsushi Enomoto <atsushi@ximian.com>
3495 * InputChannelBase.cs.notused IInputSession.cs IOutputSession.cs
3496 IProxyFormatter.cs WSHttpBindingBase.cs
3497 PnrpPeerResolverBindingElement.cs IMessageHeaderInfo.cs
3498 MessageInterceptorEventArgs.cs WSHttpBinding.cs
3499 WSFederationBinding.cs ISessionChannel.cs
3500 CompositeDuplexBindingElement.cs MessageVersion.cs
3501 MessageHeader.cs IRequestSessionChannel.cs
3502 BindingElementCollection.cs IReplySessionChannel.cs
3503 MessageProperties.cs IDuplexClientChannel.cs
3504 IInputSessionChannel.cs MessageImpl.cs IDuplexSessionChannel.cs
3505 TcpTransportBindingElement.cs EmptyFaultException.cs
3506 IBindingRuntimePreferences.cs AddressHeaderCollection.cs
3507 IStubFormatter.cs AsymmetricSecurityBindingElement.cs
3508 ConnectionOrientedTransportBindingElement.cs
3509 IProxyOperationSelector.cs MessageBuffer.cs IChannel.cs
3510 PeerResolverBindingElement.cs Message.cs
3511 HttpsTransportBindingElement.cs BindingElement.cs
3512 NamedPipetransportBindingElement.cs IBindingManualAddressing.cs
3513 MessageFaultBodyWriter.cs IReplyChannel.cs
3514 IBindingCapabilities.cs AddressHeader.cs IInputChannel.cs
3515 IMessageProperty.cs IOutputChannel.cs NetPeerTcpBinding.cs
3516 IRequestContext.cs IInputSessionShutdown.cs
3517 SecurityBindingElement.cs PeerTransportBindingElement.cs
3518 IDuplexSession.cs IChannelInitializer.cs
3519 IProxyMessageInspector.cs IChannelListener.cs NetTcpBinding.cs
3520 AddressingVersion.cs FaultException.cs
3521 IRequestChannel.cs MtomMessageEncodingBindingElement.cs
3522 TransportBindingElement.cs BinaryMessageEncodingBindingElement.cs
3523 TextMessageEncodingBindingElement.cs IChannelFactory.cs Binding.cs
3524 ITransportBindingElement.cs IChannelManager.cs MessageFault.cs
3525 MessageHeaders.cs IStubMessageInspector.cs UnderstoodHeaders.cs
3526 BindingParameterCollection.cs IInstanceProvider.cs
3527 WSDualHttpBinding.cs ISession.cs IErrorHandler.cs
3528 MessageEncodingBindingElement.cs HttpTransportBindingElement.cs
3529 IDuplexChannel.cs CustomBinding.cs IOutputSessionChannel.cs
3530 MessageContractAttribute.cs SymmetricSecurityBindingElement.cs :
3531 moved from System.ServiceModel due to the API changes.
3533 2006-02-23 Atsushi Enomoto <atsushi@ximian.com>
3535 * ChannelFactoryBase.cs ChannelListenerBase.cs HttpChannelFactory.cs
3536 HttpChannelListener.cs HttpRequestChannel.cs
3537 LayeredChannelListener.cs PeerMessagePropagationFilter.cs
3538 PeerNode.cs ReplyChannelBase.cs :
3539 Feb. CTP API changes - chapter 1.
3541 2006-02-15 Atsushi Enomoto <atsushi@ximian.com>
3543 * ChannelBase.cs : OnOpen() and OnClosed() do nothing.
3544 * ReplyChannelBase.cs : now it is based on ChannelBase.
3545 * ChannelListenerBase_1.cs : use DefaultCommunicationTimeouts.Instance
3546 and check null argument in .ctor().
3547 * HttpReplyChannel.cs : several changes.
3548 Non-async members are mostly implemented.
3549 * HttpChannelListener.cs : no need to receive
3550 IDefaultCommunicationTimeouts.
3551 * HttpRequestChannel.cs : maxSizeOfHeaders is used in MessageHeaders
3552 to allocate buffer array and int.MaxValue causes OutOfMemory.
3554 2006-02-15 Atsushi Enomoto <atsushi@ximian.com>
3556 * ClientFramingDecoderState.cs : added missing enum.
3557 * HttpRequestMessageProperty.cs HttpResponseMessageProperty.cs :
3559 * ChannelBase.cs, LayeredChannelListener.cs : tiny API fixes.
3561 2006-02-15 Atsushi Enomoto <atsushi@ximian.com>
3563 * HttpChannelListener.cs : Added GetChannels() and OnClose().
3564 AcceptChannel() has some code now but it needs more love.
3566 2006-02-14 Atsushi Enomoto <atsushi@ximian.com>
3568 * CommunicationObject.cs : Close() does not call Begin/EndClose().
3569 * ChannelManagerBase.cs : implemented AbortChannel and CloseChannel.
3570 * ChannelListenerBase.cs : implemented OnAbort and OnClose.
3572 2006-02-10 Atsushi Enomoto <atsushi@ximian.com>
3574 * HttpRequestChannel.cs : close the streams.
3576 HttpChannelListener.cs : renamed from former to latter.
3578 2006-02-09 Atsushi Enomoto <atsushi@ximian.com>
3580 * ReplyChannelBase.cs : new file for IReplyChannel implementations.
3581 * HttpReplyChannel.cs : new file for HTTP IReplyChannel.
3582 * HttpListenerFactory.cs : removed obsolete file.
3583 * HttpListener.cs : hacky WaitForChannel and AcceptChannel.
3584 * ChannelListenerBase_1.cs : implemented virtual stuff.
3585 * CommunicationObject.cs : Open() should not call BeginOpen() and
3586 EndOpen(). Instead, invoke events individually.
3587 * ChannelListenerBase.cs : its Open() is WaitForChannel().
3589 2006-02-08 Atsushi Enomoto <atsushi@ximian.com>
3591 * HttpRequestChannel.cs : call Flush() after serializing message
3594 2006-02-08 Atsushi Enomoto <atsushi@ximian.com>
3596 * HttpRequestChannel.cs : implemented pretty hacky Request().
3598 2006-02-02 Atsushi Enomoto <atsushi@ximian.com>
3600 * HttpRequestChannel.cs : Manager is HttpChannelFactory.
3602 2006-02-01 Atsushi Enomoto <atsushi@ximian.com>
3604 * ChannelFactoryBase.cs : removed some NotImplementedException for
3605 further internal implementation.
3607 2006-01-26 Atsushi Enomoto <atsushi@ximian.com>
3609 * HttpRequestChannel.cs : new file. mostly not implemented.
3610 * HttpChannelFactory.cs : Implemented CanCreateChannel().
3611 Partly implemented CreateChannel().
3613 2006-01-26 Atsushi Enomoto <atsushi@ximian.com>
3615 * HttpChannelFactory.cs : (.ctor())
3616 Don't take ChannelBuildContext.
3618 2005-11-21 Atsushi Enomoto <atsushi@ximian.com>
3620 * StreamSecurityUpgradeInitiator.cs PeerMessageOrigination.cs
3621 ChannelBase.cs StreamSecurityUpgradeAcceptor.cs
3622 PeerMessagePropagation.cs : updated to Nov. CTP.
3624 2005-11-21 Atsushi Enomoto <atsushi@ximian.com>
3626 * ChannelListenerBase.cs, ChannelManagerBase.cs,
3627 ChannelListenerBase_1.cs, LayeredChannelListener.cs,
3628 StreamSecurityUpgradeAcceptor.cs,
3629 StreamSecurityUpgradeInitiator.cs :
3630 Updated to Nov. CTP API.
3632 2005-11-21 Atsushi Enomoto <atsushi@ximian.com>
3634 Now we can rename ListenerFactoryBase.cs to ChannelListenerBase.cs.
3636 2005-11-21 Atsushi Enomoto <atsushi@ximian.com>
3638 renamed ChannelListenerBase.cs to ChannelListenerBase_1.cs.
3640 2005-11-21 Atsushi Enomoto <atsushi@ximian.com>
3642 * ChannelBase.cs : tiny filename fix.
3643 * ChannelListenerBase.cs : added more .ctor()s.
3645 2005-11-21 Atsushi Enomoto <atsushi@ximian.com>
3647 * HttpListenerFactory.cs LayeredChannelListener.cs HttpListener.cs
3648 ListenerFactoryBase.cs ChannelListenerBase.cs :
3649 updated IListener related stuff to Nov. CTP.
3650 file renaming will come soon.
3652 2005-11-21 Atsushi Enomoto <atsushi@ximian.com>
3654 * ListenerBase.cs, ChannelListenerBase.cs :
3655 moved from former to latter.
3656 * LayeredListenerFactory.cs, LayeredChannelListener.cs :
3657 moved from former to latter.
3659 2005-11-20 Atsushi Enomoto <atsushi@ximian.com>
3661 * SessionFaultedException.cs : removed in Nov. CTP
3663 2005-11-20 Atsushi Enomoto <atsushi@ximian.com>
3665 * CommunicationObject.cs : updated to Nov. CTP.
3666 * SessionFaultedException.cs : removed (in Nov. CTP)
3668 2005-11-03 Atsushi Enomoto <atsushi@ximian.com>
3670 * TextMessageEncoder.cs : kinda implemented (untested; Message is not
3673 2005-11-03 Atsushi Enomoto <atsushi@ximian.com>
3675 * MtomMessageEncoder.cs, BinaryMessageEncoderFactory.cs,
3676 TextMessageEncoderFactory.cs, BinaryMessageEncoder.cs,
3677 TextMessageEncoder.cs, MtomMessageEncoderFactory.cs : new files.
3678 * MessageEncoder.cs : largely implemented.
3680 2005-11-02 Atsushi Enomoto <atsushi@ximian.com>
3682 * IRequestReplyCorrelator.cs : new file.
3684 2005-11-02 Atsushi Enomoto <atsushi@ximian.com>
3686 * CommunicationObject.cs : OnClose() and OnError() are not virtual.
3687 * DirectionalAction.cs : implemented IComparable<DirectionalAction>.
3688 * MessageEncoder.cs : added misssing ToString().
3690 2005-11-02 Atsushi Enomoto <atsushi@ximian.com>
3692 * ChannelBehaviorCollection.cs : moved to sys.sm.
3694 2005-10-28 Atsushi Enomoto <atsushi@ximian.com>
3696 * HttpListenerFactory.cs, HttpListener.cs : new files.
3697 * ListenerFactoryBase.cs, ChannelManagerBase.cs,
3698 CommunicationObject.cs, ChannelFactoryBase.cs,
3699 StreamUpgradeProvider.cs, ChannelBase.cs : timeouts are now
3701 * CommunicationObject.cs : Aborted is bool. Added InternalClose()
3702 * ListenerFactoryBase.cs : kinda implemented GetListeners().
3704 2005-10-26 Atsushi Enomoto <atsushi@ximian.com>
3706 * ListenerFactoryBase.cs : some implementation.
3708 2005-10-26 Atsushi Enomoto <atsushi@ximian.com>
3710 * CommunicationObject.cs : more state fixes.
3712 2005-10-26 Atsushi Enomoto <atsushi@ximian.com>
3714 * CommunicationObject.cs : some state machine fixes.
3716 2005-10-26 Atsushi Enomoto <atsushi@ximian.com>
3718 * PeerNode.cs, ChannelManagerBase.cs :
3719 several API fixes detected by improved corcompare.
3721 2005-10-25 Atsushi Enomoto <atsushi@ximian.com>
3723 * LayeredListenerFactory.cs : added missing generic class constraint.
3725 2005-10-25 Atsushi Enomoto <atsushi@ximian.com>
3727 * ListenerFactoryBase.cs,
3728 ListenerBase.cs : class constraints were missing for generic args.
3730 2005-10-24 Atsushi Enomoto <atsushi@ximian.com>
3732 * StreamUpgradeInitiator.cs : tiny API fix.
3734 2005-10-23 Atsushi Enomoto <atsushi@ximian.com>
3736 * PeerMessagePropagationFilter.cs : tiny build fix.
3738 2005-10-23 Atsushi Enomoto <atsushi@ximian.com>
3740 * HttpRequestMessageProperty.cs, HttpResponseMessageProperty.cs :
3741 added Name. fixed StatusCode type.
3742 * StreamSecurityUpgradeInitiator.cs, StreamUpgradeAcceptor.cs,
3743 PeerNode.cs, StreamSecurityUpgradeAcceptor.cs,
3744 StreamUpgradeProvider.cs, StreamUpgradeInitiator.cs,
3745 DirectionalAction.cs, HostedTransportConfiguration.cs,
3746 StreamSecurityUpgradeProvider.cs, SessionFaultedException.cs,
3747 PeerMessagePropagationFilter.cs : added missing files.
3748 * Dummy.cs : removed. MSMQ stuff can be added later.
3750 2005-10-21 Atsushi Enomoto <atsushi@ximian.com>
3752 * DeliveryStatus.cs, DeliveryFailure.cs,
3753 HttpRequestMessageProperty.cs, PeerMessageOrigination.cs,
3754 PeerMessagePropagation.cs, HttpResponseMessageProperty.cs :
3756 * Dummy.cs : removed above.
3758 2005-10-18 Atsushi Enomoto <atsushi@ximian.com>
3760 * ChannelFactoryBase.cs : tiny .ctor() delegation fix.
3762 2005-10-09 Atsushi Enomoto <atsushi@ximian.com>
3764 * MessageEncoderFactory.cs, LayeredListenerFactory.cs,
3765 MessageEncoder.cs, BufferManager.cs : new files.
3766 * Dummy.cs : removed above.
3768 2005-10-09 Atsushi Enomoto <atsushi@ximian.com>
3770 * ChannelBase.cs, ChannelBehaviorCollection.cs : new channel files.
3771 * Dummy.cs : removed above.
3772 * CommunicationObject.cs, ListenerFactoryBase.cs : added missing bits.
3774 2005-10-09 Atsushi Enomoto <atsushi@ximian.com>
3776 * HttpChannelFactory.cs : new file.
3778 2005-10-08 Atsushi Enomoto <atsushi@ximian.com>
3780 * IReplyChannel.cs, IRequestContext.cs, IRequestChannel.cs:
3781 moved to ../System.ServiceModel (correct location).
3782 * ChannelFactoryBase.cs, LayeredChannelFactory.cs, TransferMode.cs:
3783 new files for channels.
3784 * Dummy.cs : reflected above changes.
3785 * ChannelManagerBase.cs : added a bit of code and todos.
3787 2005-10-04 Atsushi Enomoto <atsushi@ximian.com>
3789 * ChannelManagerBase.cs, ListenerBase.cs, ListenerFactoryBase.cs :
3790 added listener support files.
3791 * Dummy.cs : removed above.
3793 2005-10-03 Atsushi Enomoto <atsushi@ximian.com>
3795 * IReplyChannel.cs, IRequestContext.cs, IRequestChannel.cs :
3796 added request/reply channel interfaces.
3797 * Dummy.cs : removed above.
3798 * CommunicationObject.cs : FIXME comments.
3800 2005-10-03 Atsushi Enomoto <atsushi@ximian.com>
3802 * CommunicationObject.cs : implemented some members.
3804 2005-09-29 Atsushi Enomoto <atsushi@ximian.com>
3806 * CommunicationObject.cs : some signature fixes.