1 2010-03-25 Atsushi Enomoto <atsushi@ximian.com>
3 * MessageFault.cs : do not use SOAP11 namespace for fault contents.
5 2010-03-24 Atsushi Enomoto <atsushi@ximian.com>
7 * ReplyChannelBase.cs, HttpReplyChannel.cs : add some locking.
8 Patch by Matt Dargavel.
10 2010-03-24 Atsushi Enomoto <atsushi@ximian.com>
12 * HttpListenerManager.cs : use lock object which is subject to
13 change. Fix by Matt Dargavel.
15 2010-03-24 Atsushi Enomoto <atsushi@ximian.com>
17 * HttpListenerManager.cs : remove consumed HttpListenerContext from
18 the pending queue. Compare "wsdl" request in case insensitive
19 manner. Patch by Matt Dargavel.
21 2010-03-24 Atsushi Enomoto <atsushi@ximian.com>
23 * HttpRequestContext.cs : apply the patch by Matt Dargavel, which is
24 supposed to provide detailed 400 error message.
26 2010-03-24 Atsushi Enomoto <atsushi@ximian.com>
28 * TransactionFlowBindingElement.cs: revamp the previous change to
29 not regress regarding service metadata.
31 2010-03-24 Atsushi Enomoto <atsushi@ximian.com>
33 * ChannelListenerBase.cs, TransactionFlowBindingElement.cs: fix
34 GetProperty<T>() bug that fails to retrieve properties. (This may
35 be rewritten later if an ongoing change proposal is to take place.)
37 2010-03-18 Atsushi Enomoto <atsushi@ximian.com>
39 * ReliableSessionBindingElement.cs,
40 PrivacyNoticeBindingElement.cs,
41 RemoteEndpointMessageProperty.cs : added some missing types.
43 2010-03-17 Atsushi Enomoto <atsushi@ximian.com>
46 why does it filter out most of the headers? kill it.
48 2010-03-17 Atsushi Enomoto <atsushi@ximian.com>
50 * SvcHttpHandler.cs, AspNetReplyChannel.cs, HttpChannelListener.cs,
51 HttpListenerManager.cs : refactoring on acquiring SvcHttpHandler
52 to not raise "not found" error (see bug #573795).
54 2010-03-16 Jb Evain <jbevain@novell.com>
56 * HttpRequestChannel.cs, HttpTransportBindingElement.cs: use
57 MOONLIGHT symbol to disambiguate MonoTouch and Moonlight code.
59 2010-03-09 Atsushi Enomoto <atsushi@ximian.com>
61 * HttpListenerManager.cs : For ASP.NET, use correct GenericIdentity
62 type, and use null password unless we find a chance to get password
63 in ASP.NET HttpContext.
65 2010-03-03 Atsushi Enomoto <atsushi@ximian.com>
67 * HttpReplyChannel.cs, AspNetReplyChannel.cs, HttpChannelListener.cs,
68 HttpListenerManager.cs : ongoing authentication support. It returns
69 401 as expected, but somehow fails to retrieve user info.
71 2010-02-10 Atsushi Enomoto <atsushi@ximian.com>
73 * HttpListenerManager.cs : this change (along with HttpListener
74 implementation) somehow fixes basic auth. connection error...
76 2010-02-10 Atsushi Enomoto <atsushi@ximian.com>
78 * MessageHeaders.cs : add !NET_2_1.
80 2010-02-10 Atsushi Enomoto <atsushi@ximian.com>
82 * MessageHeader.cs, MessageHeaders.cs : add nasty workaround for
83 typed UniqueId output.
85 2010-02-10 Atsushi Enomoto <atsushi@ximian.com>
87 * MessageHeader.cs : no need to treat EndpointAddress as a special
90 2010-02-10 Atsushi Enomoto <atsushi@ximian.com>
92 * MessageHeaders.cs : remove duplicate constant.
94 2010-02-10 Atsushi Enomoto <atsushi@ximian.com>
96 * MessageHeader.cs, MessageHeaders.cs: MessageHeader does not treat
97 EndpointAddress as a special case. Instead, each MessageHeaders
98 property should convert it to appropriate serializable objects.
100 (Our DataContractSerializer fails to reject EndpointAddress as
101 serializable type, so it's rather a preparation step.)
103 2010-02-10 Atsushi Enomoto <atsushi@ximian.com>
105 * MessageHeader.cs, Message.cs : use dictionary string whenever
106 applicable. The binary output on #577139 is getting closer (no
107 idea if it is really about binary output though).
109 2010-02-10 Atsushi Enomoto <atsushi@ximian.com>
111 * BinaryMessageEncoder.cs : moved soap_dictionary to Constants.
113 2010-02-05 Atsushi Enomoto <atsushi@ximian.com>
115 * HttpTransportBindingElement.cs : ... and add MONOTOUCH on #ifs.
117 2010-02-05 Atsushi Enomoto <atsushi@ximian.com>
119 * HttpRequestChannel.cs, HttpTransportBindingElement.cs :
120 enable authentication schemes on monotouch.
122 2010-02-04 Atsushi Enomoto <atsushi@ximian.com>
124 * SvcHttpHandler.cs : a wait handle could be used for more than one
125 requests and hence it sometimes blocked one reply channel. Now
126 it creates a wait handle for each ASP.NET request so that such
127 multiple use should not occur. This should fix blocking on
128 concurrent requests (it indeed fixes as long as I can see).
130 2010-02-04 Atsushi Enomoto <atsushi@ximian.com>
132 * AspNetReplyChannel.cs : remove garbage output.
134 2010-02-04 Atsushi Enomoto <atsushi@ximian.com>
136 * SvcHttpHandler.cs : Use lock when it tries to create the service
139 2010-02-02 Atsushi Enomoto <atsushi@ximian.com>
141 * SvcHttpHandlerFactory.cs : lock when it tries to acquire
144 2010-02-02 Atsushi Enomoto <atsushi@ximian.com>
146 * HttpListenerManager.cs : add another workaround for blocking
149 2010-02-02 Atsushi Enomoto <atsushi@ximian.com>
151 * HttpListenerManager.cs : small refactoring.
153 2010-01-22 Atsushi Enomoto <atsushi@ximian.com>
155 * TcpDuplexSessionChannel.cs : added a workaround receiver delay
156 that somehow makes callback client to not cause infinite loop.
158 2010-01-22 Atsushi Enomoto <atsushi@ximian.com>
160 * TcpDuplexSessionChannel.cs, PeerDuplexChannel.cs,
161 DuplexChannelBase.cs : Receive() should rather use TryReceive().
162 It should not be in reverse order.
164 2010-01-22 Atsushi Enomoto <atsushi@ximian.com>
166 * HttpReplyChannel.cs, HttpListenerManager.cs :
167 Implement async cancellation in the expected manner (though with
168 some hack). This mostly removed nunit blockers.
170 2010-01-22 Atsushi Enomoto <atsushi@ximian.com>
172 * CommunicationObject.cs : fix wrong status changes.
174 2010-01-20 Atsushi Enomoto <atsushi@ximian.com>
176 * AddressHeader.cs : XmlSchema.InstanceNamespace didn't exist in 2.1 :(
178 2010-01-20 Atsushi Enomoto <atsushi@ximian.com>
180 * AddressHeader.cs : implement remaining bits.
181 Eliminate dependency on NetDataContractSerializer.
183 2010-01-20 Atsushi Enomoto <atsushi@ximian.com>
185 * CommunicationObject.cs : in Fault(), do similar work as previous
188 2010-01-19 Atsushi Enomoto <atsushi@ximian.com>
190 * CommunicationObject.cs : when process state changes, lock the
191 object to make sure the state transition is valid.
192 Change OnClosed/OnClosing to do the way OnOpened/OnOpening does.
194 2010-01-13 Atsushi Enomoto <atsushi@ximian.com>
196 * MessageHeaders.cs : implement SetAction().
198 2010-01-13 Atsushi Enomoto <atsushi@ximian.com>
200 * ChannelFactoryBase.cs : fix build.
202 2010-01-13 Atsushi Enomoto <atsushi@ximian.com>
204 * ChannelBase.cs : cosmetic API fix for SL3.
206 2010-01-13 Atsushi Enomoto <atsushi@ximian.com>
208 * ChannelFactoryBase.cs :
209 implement On{Begin/End}Close() on the generic type.
211 2010-01-13 Atsushi Enomoto <atsushi@ximian.com>
213 * HttpChannelFactory.cs, TcpChannelFactory.cs,
214 ChannelFactoryBase.cs, NamedPipeChannelFactory.cs
215 PeerChannelFactory.cs, HttpRequestChannel.cs:
216 fix ChannelFactoryBase API; move On(Begin/End)Open() to internal
217 type and made required changes.
219 2010-01-13 Atsushi Enomoto <atsushi@ximian.com>
221 * HttpCookieContainerBindingElement.cs : new.
222 * IHttpCookieContainer.cs : fix type name.
223 * HttpRequestChannel.cs, HttpChannelFactory.cs : support above.
225 2010-01-07 Atsushi Enomoto <atsushi@ximian.com>
227 * TcpBinaryFrameManager.cs : treat EOF as interrupted stream too (it
228 does not happen when communicating with .NET client but happens with
229 mono). Seealso FIXME comment.
230 * TcpDuplexSessionChannel.cs : do not try to close session when it
231 failed to read sized message. The connection is already dead.
235 2010-01-07 Atsushi Enomoto <atsushi@ximian.com>
237 * TcpDuplexSessionChannel.cs :
238 Write EndRecord only when the connection is available.
239 Remove hack - do let ChannelDispatcher close the channel.
240 * TcpBinaryFrameManager.cs :
241 The socket may be disconnected when trying to read a sized message,
242 so check some socket exceptions.
243 In case the client silently shuts down without EndRecord and
244 reconnects to the server with preamble while expecting a sized
245 message (which is so lame, but that's what .NET often does), refresh
246 preamble and continue.
248 This fixes some cases of bug #567949 but not all.
250 2010-01-06 Atsushi Enomoto <atsushi@ximian.com>
252 * BinaryMessageEncoder.cs : enable workaround buffering only when
253 the argument stream does *not* support seek. This fixes some
254 net.tcp connection problem.
256 2009-12-26 Atsushi Enomoto <atsushi@ximian.com>
258 * TcpBinaryFrameManager.cs : If preamble byte is not available from
259 the client stream, detect it to close the reply or input channel.
260 * TcpRequestChannel.cs : send preamble at each request time.
261 It differentiates communication behavior on such cases that involve
262 single open and multiple requests.
263 * TcpReplyChannel.cs : close the channel only when the channel is
264 oeprated to close i.e. do not close the socket every time.
265 Process preambles on each request (the same as request channel).
267 2009-12-26 Atsushi Enomoto <atsushi@ximian.com>
269 * TcpBinaryFrameManager.cs : unsized envelope record may have more
270 than one data block, so consume them accordingly. This should fix
271 large buffer consumption.
273 2009-12-21 Atsushi Enomoto <atsushi@ximian.com>
275 * MessageFault.cs : support EnvelopeVersion.None as well, as almost
278 2009-12-17 Atsushi Enomoto <atsushi@ximian.com>
280 * HttpRequestContext.cs : for DestinationUnreachable message, this
281 channel returns 400 in .NET.
283 2009-12-16 Atsushi Enomoto <atsushi@ximian.com>
285 * BinaryMessageEncoder.cs : added workaround for strange stream
286 consumption error raised by HttpTransport + Binary encoder example.
287 * BinaryMessageEncodingBindingElement.cs:
288 only SOAP 1.2 is allowed for this encoder.
290 2009-12-14 Atsushi Enomoto <atsushi@ximian.com>
292 * XmlReaderBodyWriter.cs : don't try to write empty xml.
294 2009-12-10 Atsushi Enomoto <atsushi@ximian.com>
296 * HttpRequestChannel.cs : avoid adding duplicate headers. Basically
297 default WebHeaderCollection items are overwritten.
299 2009-12-10 Atsushi Enomoto <atsushi@ximian.com>
301 * HttpRequestChannel.cs : when HTTP response was error, do not try
302 to read message but just raise an error.
304 2009-12-10 Atsushi Enomoto <atsushi@ximian.com>
306 * MessageHeaders.cs : null can be set as a WS-Addressing header item.
308 2009-12-10 Atsushi Enomoto <atsushi@ximian.com>
310 * HttpRequestChannel.cs : WebException.Response might be null.
312 2009-12-04 Atsushi Enomoto <atsushi@ximian.com>
314 * ReplyChannelBase.cs : added listener property.
315 * SecurityChannelListener.cs : quick async impl, as ServiceHost has
316 been updated to prefer async by default, a while ago.
318 2009-12-04 Atsushi Enomoto <atsushi@ximian.com>
320 * HttpTransportBindingElement.cs : finished all GetProperty() values.
322 2009-12-04 Atsushi Enomoto <atsushi@ximian.com>
324 * HttpRequestChannel.cs : disabled carelessly added
325 "UseDefaultCredentials = false" line. It blocked basic auth.
327 2009-12-04 Atsushi Enomoto <atsushi@ximian.com>
329 * HttpRequestChannel.cs, HttpChannelFactory.cs,
330 HttpChannelListener.cs, HttpListenerManager.cs :
331 implemented http client authentication and some of corresponding
332 service code. Only client works so far.
334 2009-12-03 Atsushi Enomoto <atsushi@ximian.com>
336 * HttpsTransportBindingElement.cs, HttpChannelListener.cs :
337 added URI scheme check.
339 2009-12-03 Atsushi Enomoto <atsushi@ximian.com>
341 * TransportSecurityBindingElement.cs : fix 2.1 build.
343 2009-12-03 Atsushi Enomoto <atsushi@ximian.com>
345 * HttpsTransportBindingElement.cs :
346 RequireClientCertificate is false by default.
347 Remove extra #if NET_2_1.
348 * SecurityBindingElement.cs :
349 Implement some transport security factory methods.
350 * TransportSecurityBindingElement.cs :
351 It is not ISecurityCapabilities anymore.
353 2009-11-25 Atsushi Enomoto <atsushi@ximian.com>
356 SecurityBindingElement.cs
357 LocalClientSecuritySettings.cs
358 TransportSecurityBindingElement.cs
359 FaultConverter.cs : They are now part of SL3 API.
361 2009-11-17 Atsushi Enomoto <atsushi@ximian.com>
363 * BinaryMessageEncodingBindingElement.cs : changes for 2.1 build.
365 2009-11-05 Geoff Norton <gnorton@novell.com>
367 * HttpsTransportBindingElement.cs: Implement basic https transport
368 binding support for Moonlight and MonoTouch
370 2009-10-22 Atsushi Enomoto <atsushi@ximian.com>
372 * HttpListenerManager.cs : remove CWLs.
374 2009-10-22 Atsushi Enomoto <atsushi@ximian.com>
376 * SvcHttpHandler.cs : move back previous listener selector code in
377 ProcessRequest(). Unlike HttpListener, ASP.NET does not refine
378 and differentiate requests to deeper paths (such as /jsdebug), so
379 we need such refinement here.
381 2009-10-22 Atsushi Enomoto <atsushi@ximian.com>
383 * HttpListenerManager.cs : dependent fix to ServiceMetadataExtension
386 2009-10-22 Atsushi Enomoto <atsushi@ximian.com>
388 * SvcHttpHandler.cs, HttpReplyChannel.cs, AspNetReplyChannel.cs,
389 HttpChannelListener.cs, HttpListenerManager.cs :
390 Similar refactoring on ASP.NET side to the previous one.
391 Added ASP.NET implementation of HttpListenerManager and use some
392 part of it in SvcHttpHandler (ASP.NET stack does not fully make use
394 Rewrote AspNetReplyChannel to become almost the same as
395 HttpSimpleReplyChannel, to hopefully unify them later.
396 Now it dispatches requests to *.svc for wsdl, help and SOAP as long
397 as ServiceThrottle has MaxConcurrentSessions=1. Also REST calls
400 2009-10-20 Atsushi Enomoto <atsushi@ximian.com>
402 * HttpReplyChannel.cs, HttpChannelListener.cs, HttpListenerManager.cs:
403 Refactoring on listener manager to correctly handle wsdl and help
404 requests for such case that they conflict in addressing. Now it
405 can correctly distinguish service calls, WSDL requests and help
406 requests when all of them point to "http://localhost/foo.svc"
407 (which is very common case that the user does not change Http*Url).
409 2009-10-16 Atsushi Enomoto <atsushi@ximian.com>
411 * ChannelListenerBase.cs : add Properties property to add arbitrary
412 properties handy (only inside this assembly).
414 2009-10-16 Atsushi Enomoto <atsushi@ximian.com>
416 * HttpReplyChannel.cs : fix warning.
418 2009-10-15 Atsushi Enomoto <atsushi@ximian.com>
420 * HttpReplyChannel.cs, AspNetReplyChannel.cs : set Via property.
422 2009-10-15 Atsushi Enomoto <atsushi@ximian.com>
424 * HttpReplyChannel.cs : make sure to release wait lock.
425 * HttpChannelListener.cs : session channels are not supported, so
426 remove relevant NIEs.
428 2009-10-15 Sebastien Pouliot <sebastien@ximian.com>
430 * HttpRequestChannel.cs (WaitEnd): Neither Moonlight nor MonoTouch
431 support contexts so we call the non-overloaded WaitOne method
432 (which defaults to false).
434 2009-10-13 Atsushi Enomoto <atsushi@ximian.com>
436 * SvcHttpHandler.cs, AspNetReplyChannel.cs, HttpChannelListener.cs:
437 significant rewrite to cooperate wcf handler and asp.net handler
438 to not mix multiple WCF listener within the asp.net handler.
439 So far it mostly works when 1) there are no ChannelDispatchers
440 that have an identical listen Uri and 2) MaxConcurrentSessions is
441 1 (must be explicitly set).
443 2009-10-13 Atsushi Enomoto <atsushi@ximian.com>
445 * CommunicationObject.cs : give better state error description.
447 2009-10-09 Atsushi Enomoto <atsushi@ximian.com>
449 * CommunicationObject.cs : OnOpening() and OnOpened() require calls
450 to base methods. This resulted in not a few changes everywhere.
452 2009-10-07 Atsushi Enomoto <atsushi@ximian.com>
454 * IHttpCookieContainer.cs : new 2.1-only interface (no use).
456 2009-10-06 Atsushi Enomoto <atsushi@ximian.com>
458 * SvcHttpHandler.cs : use file path given by the factory to
459 construct BaseAddresses. Requests to "test.svc/jsdebug" should
460 not be handled as request to "jsdebug" file, it's rather an
461 "argument" to "test.svc".
463 2009-10-06 Atsushi Enomoto <atsushi@ximian.com>
465 * SvcHttpHandler.cs, HttpChannelListener.cs : some significant
466 rewrite to handle shutdown situation better. The listeners should
467 not close channels that it opened. Instead, just stop accepting
468 further requests. Removed blocking mutex on WaitForRequest().
469 Now xsp shuts down as expected.
471 2009-10-06 Atsushi Enomoto <atsushi@ximian.com>
473 * HttpReplyChannel.cs : lock list when releasing its content contexts.
474 * AspNetReplyChannel.cs : send EndRequest() to handler when it is
477 2009-10-06 Atsushi Enomoto <atsushi@ximian.com>
479 * SvcHttpHandlerFactory.cs : remove todo.
480 * ReplyChannelBase.cs : add comment.
482 2009-10-02 Atsushi Enomoto <atsushi@ximian.com>
484 * HttpTransportBindingElement.cs, SvcHttpHandlerFactory.cs :
485 revert the change, to use internal asp.net state again.
486 * SvcHttpHandler.cs : add VirtualPathExtension.
488 2009-10-02 Atsushi Enomoto <atsushi@ximian.com>
490 * HttpReplyChannel.cs, AspNetReplyChannel.cs, AspNetRequestContext.cs:
491 asp.net response was not written correctly.
492 Fill HttpRequestMessageProperty to get handle WSDL requests
493 processed in ServiceMetadataExtension without NRE.
494 Remove wrong HttpListenerContext iteration at Abort and Close in
495 common base class and move it to non-asp derived channel.
497 2009-10-02 Atsushi Enomoto <atsushi@ximian.com>
499 * SvcHttpHandler.cs : remove unused code.
501 2009-09-30 Jb Evain <jbevain@novell.com>
503 * HttpRequestChannel.cs: When compiling for MonoTouch, avoid
504 to use any of the remoting features.
506 2009-09-30 Atsushi Enomoto <atsushi@ximian.com>
508 * SvcHttpHandlerFactory.cs, HttpTransportBindingElement.cs :
509 use AspNetCompatibilityEnabled.
510 * SvcHttpHandler.cs : disable ApplyConfiguration(). It should be done
512 * AspNetReplyChannel.cs : remove extra field.
514 2009-09-29 Atsushi Enomoto <atsushi@ximian.com>
516 * HttpReplyChannel.cs : remove extra field.
518 2009-09-29 Atsushi Enomoto <atsushi@ximian.com>
520 * AspNetRequestContext.cs : remove CWL.
522 2009-09-29 Atsushi Enomoto <atsushi@ximian.com>
524 * AspNetReplyChannel.cs, AspNetRequestContext.cs : close HttpContext
525 only after AspNetRequestContext is closed. Do not close it
526 immediately after receiving the context. (HttpRuntime destructs it
527 and further uses then becomes impossible.)
529 2009-09-29 Atsushi Enomoto <atsushi@ximian.com>
531 * AspNetReplyChannel.cs, HttpReplyChannel.cs : add some comments.
532 * SvcHttpHandlerFactory.cs, SvcHttpHandler.cs, HttpChannelListener.cs:
533 Make sure that AspNetChannelListener is bound to correct
534 SvcHttpHandler, regardless of specific request URI. It is required
535 for both WSDL requests and RESTful binding requests.
537 2009-09-14 Atsushi Enomoto <atsushi@ximian.com>
539 * MessageProperties.cs : fix CopyProperties() behavior to not
540 clear existing items. Make all properties call this[name].
542 2009-09-14 Atsushi Enomoto <atsushi@ximian.com>
544 * HttpTransportBindingElement.cs : fix 2.1 build.
546 2009-09-14 Atsushi Enomoto <atsushi@ximian.com>
548 * TransportBindingElement.cs : another GetProperty fix, iterate
549 other binding elements.
551 2009-09-14 Atsushi Enomoto <atsushi@ximian.com>
553 * HttpTransportBindingElement.cs, PeerTransportBindingElement.cs :
554 some GetProperty() implementation.
556 2009-09-14 Atsushi Enomoto <atsushi@ximian.com>
558 * HttpListenerManager.cs : release HttpListener and avoid extra
559 close process more than once.
561 2009-09-11 Atsushi Enomoto <atsushi@ximian.com>
563 * HttpChannelListener.cs : do not iterate channel list to close
564 channels which in turn removes them from the list while iteration.
566 2009-09-06 Atsushi Enomoto <atsushi@ximian.com>
568 * HttpRequestChannel.cs : Fix message version member comparison.
569 Double-quote SOAPAction. Remove extra Exception.
570 * HttpReplyChannel.cs : ditto for version comparison. Unquote above.
571 * HttpRequestContext.cs : when addressing is None, remove action
574 2009-09-04 Atsushi Enomoto <atsushi@ximian.com>
576 * SvcHttpHandler.cs : set Uri property based on baseAddresses and
577 path, to pick those endpoints that are added at custom factories.
579 2009-09-03 Atsushi Enomoto <atsushi@ximian.com>
581 * SvcHttpHandler.cs : apply configuration, and if there is still no
582 endpoint, then add default one.
584 2009-09-03 Atsushi Enomoto <atsushi@ximian.com>
586 * SvcHttpHandler.cs : another URL to make relative.
588 2009-09-03 Atsushi Enomoto <atsushi@ximian.com>
590 * SvcHttpHandlerFactory.cs : some GetHandler changes.
591 * SvcHttpHandler.cs : significant changes on receiver structure. Now
592 ProcessRequest() stores pending requests (this might be extraneous,
593 but maybe useful when it implements async handler). Also removed
594 reply_channel field as it may become to handle multiple requests.
595 * HttpChannelListener.cs : bind to corresponding SvcHttpHandler.
596 * AspNetReplyChannel.cs : make it receive requests like
597 HttpReplyChannel (for HttpListener) to make them consistent.
599 2009-09-03 Atsushi Enomoto <atsushi@ximian.com>
601 * AspNetRequestContext.cs, HttpRequestContext.cs :
602 fix NRE on HttpListenerContext for AspNetRequestContext (mismatch)
603 by splitting HttpListener-based context out from common code base.
605 2009-09-03 Atsushi Enomoto <atsushi@ximian.com>
607 * SvcHttpHandler.cs : use baseAddresses in ServiceHost and make URIs
608 relative or absolute. new Uri ("/foobar") doesn't work on non-unix
611 2009-09-02 Atsushi Enomoto <atsushi@ximian.com>
613 * SvcHttpHandlerFactory.cs : make use of BuildManager aid. Now it
614 loads types from system assemblies appropriately.
616 2009-09-02 Atsushi Enomoto <atsushi@ximian.com>
618 * XmlReaderBodyWriter.cs : implement OnCreateBufferedCopy()
621 2009-09-02 Atsushi Enomoto <atsushi@ximian.com>
623 * HttpRequestMessageProperty.cs : fix default values.
625 2009-08-31 Atsushi Enomoto <atsushi@ximian.com>
627 * HttpChannelFactory.cs, HttpRequestChannel.cs,
628 ChannelFactoryBase.cs : fix to previous one; allow null Via uri.
629 Check ManualAddressing value and reject address-missing ones.
631 2009-08-31 Atsushi Enomoto <atsushi@ximian.com>
633 * HttpChannelFactory.cs : reject URI mismatch cases when required.
635 2009-08-26 Atsushi Enomoto <atsushi@ximian.com>
637 * PeerDuplexChannel.cs : When received Connect() from neighbor,
638 add the peer to its internal list.
639 Finally ChatApplication got working.
641 2009-08-26 Atsushi Enomoto <atsushi@ximian.com>
643 * PeerDuplexChannel.cs : since the channel factory is per instance,
644 do not reuse factory that is tied to different callback instance.
645 It resolved the issue that mono callback client didn't receive
646 messages from the client itself.
648 2009-08-26 Atsushi Enomoto <atsushi@ximian.com>
650 * PeerDuplexChannel.cs : in the Welcome response, return the NodeId
651 of the receiver, not the requestor. It resolved the issue that
652 .NET client didn't send further messages to mono server.
654 2009-08-26 Atsushi Enomoto <atsushi@ximian.com>
656 * PeerDuplexChannel.cs : remove some comment on [MC-PRCH] behavior.
657 * TcpDuplexSessionChannel.cs, TcpBinaryFrameManager.cs,
658 TcpReplyChannel.cs, TcpRequestChannel.cs,
659 NamedPipeReplyChannel.cs, NamedPipeRequestChannel.cs:
660 rename EndRecord handling method to appropriate one.
661 Write EndRecord from recipient too.
663 2009-08-24 Atsushi Enomoto <atsushi@ximian.com>
665 * PeerDuplexChannel.cs : add PeerFlooder header (see comment).
666 Process PeerTo header to upgrade Message To header. Now mono
667 service accepts mono client (somehow not true for .NET client).
669 2009-08-24 Atsushi Enomoto <atsushi@ximian.com>
671 * TcpDuplexSessionChannel.cs, TcpRequestChannel.cs,
672 NamedPipeRequestChannel.cs : no need to add ReplyTo headers.
674 2009-08-24 Atsushi Enomoto <atsushi@ximian.com>
676 * PeerDuplexChannel.cs : fix PeerTo/PeerVia header namespace.
678 2009-08-24 Atsushi Enomoto <atsushi@ximian.com>
680 * TcpDuplexSessionChannel.cs : check channel state before processing
683 2009-08-20 Atsushi Enomoto <atsushi@ximian.com>
685 * NamedPipeReplyChannel.cs, NamedPipeRequestChannel.cs,
686 NamedPipeChannelFactory.cs, NamedPipeChannelListener.cs :
687 ongoing works, not working at all yet.
689 2009-08-20 Atsushi Enomoto <atsushi@ximian.com>
691 * TcpChannelListener.cs, TcpReplyChannel.cs :
692 cosmetic cleanup and corrections.
694 2009-08-20 Atsushi Enomoto <atsushi@ximian.com>
696 * TcpChannelFactory.cs : use expected Via uri.
697 Remove extra NIE stuff that are implemented in base.
699 2009-08-20 Atsushi Enomoto <atsushi@ximian.com>
701 * TcpDuplexSessionChannel.cs : remove extra code.
703 2009-08-20 Atsushi Enomoto <atsushi@ximian.com>
705 * PeerDuplexChannel.cs : ongoing implementation towards get callback
706 replies on peer connector clients (not working as duplex client
707 callback is not working yet).
709 2009-08-20 Atsushi Enomoto <atsushi@ximian.com>
711 * TcpDuplexSessionChannel.cs : in callback client channels,
712 OperationContext.IncomingMessageHeaders is null.
714 2009-08-20 Atsushi Enomoto <atsushi@ximian.com>
716 * MessageHeaders.cs : duplicate check was sloppy.
718 2009-08-18 Atsushi Enomoto <atsushi@ximian.com>
720 * Message.cs, MessageImpl.cs, BodyWriter.cs :
721 Implement BodyWriter.OnCreateBufferedCopy() and use it.
723 2009-08-18 Atsushi Enomoto <atsushi@ximian.com>
725 * ReplyChannelBase.cs : initialize field.
727 2009-08-17 Atsushi Enomoto <atsushi@ximian.com>
729 * ReplyChannelBase.cs, DuplexChannelBase.cs, RequestChannelBase.cs:
730 implement GetProperty<T>() and return its channel manager.
732 2009-08-17 Atsushi Enomoto <atsushi@ximian.com>
734 * PeerDuplexChannel.cs : ongoing implementation. Fix wrong peer
735 destination address in Connect() request. To repeat sending
736 request, use buffered copy. Set some peer-channel specific
737 header items. (todo: and consume them.)
739 2009-08-17 Atsushi Enomoto <atsushi@ximian.com>
741 * Message.cs : state is set only after WriteBodyContents().
743 2009-08-17 Atsushi Enomoto <atsushi@ximian.com>
745 * MessageHeaders.cs : eliminate wrong use of
746 ReadElementContentAsString() (it is not always simple string).
748 2009-08-17 Atsushi Enomoto <atsushi@ximian.com>
750 * MessageHeaders.cs : when the value is null, do not try to
751 deserialize EndpointAddress.
753 2009-08-17 Atsushi Enomoto <atsushi@ximian.com>
755 * MessageHeader.cs : add Value property. (Forgot dependent change.)
757 2009-08-17 Atsushi Enomoto <atsushi@ximian.com>
759 * MessageHeaders.cs : GetHeader<T>() could mostly skip extra
760 serialization and deserialization of values.
762 2009-08-14 Atsushi Enomoto <atsushi@ximian.com>
764 * PeerDuplexChannel.cs : handle Welcome and Refuse at client side.
765 Now simply use connector contract.
767 2009-08-14 Atsushi Enomoto <atsushi@ximian.com>
769 * PeerDuplexChannel.cs : handle Disconnect(). Fix URLs a bit.
771 2009-08-14 Atsushi Enomoto <atsushi@ximian.com>
773 * TcpChannelListener.cs : do not try to compare dead connection's
774 IPEndPoint (it raises an error).
776 2009-08-14 Atsushi Enomoto <atsushi@ximian.com>
778 * MessageHeaders.cs : allow null header value on each specific setter.
780 2009-08-14 Atsushi Enomoto <atsushi@ximian.com>
782 * DuplexChannelBase.cs, TcpDuplexSessionChannel.cs :
783 get local and remote address of connected counterpart to get
784 callback channel connected.
785 * PeerDuplexChannel.cs : remove FIXME wrt above.
787 2009-08-07 Atsushi Enomoto <atsushi@ximian.com>
789 * PeerDuplexChannel.cs : add fixme comment and remove extra FIXME.
791 2009-08-07 Atsushi Enomoto <atsushi@ximian.com>
793 * MessageHeader.cs : fill IsReferenceParameter.
795 2009-08-06 Atsushi Enomoto <atsushi@ximian.com>
797 * ReplyChannelBase.cs, TcpReplyChannel.cs, HttpReplyChannel.cs:
798 implement remaining async methods and LocalAddress.
800 2009-08-05 Atsushi Enomoto <atsushi@ximian.com>
802 * PeerDuplexChannel.cs : ongoing listener refactoring. Now it uses
803 ServiceHost to process neighbor connection (not sure if this is
804 right way to go though ...).
806 2009-07-31 Atsushi Enomoto <atsushi@ximian.com>
808 * PeerDuplexChannel.cs : ongoing [MC-PRCH] implementation. Rewrote
809 connection part to use new internal IPeerConnectorContract for
812 2009-07-31 Atsushi Enomoto <atsushi@ximian.com>
814 * ChannelListenerBase_1.cs, TcpChannelListener.cs,
815 PeerChannelListener.cs, HttpChannelListener.cs :
816 support ListenUri accordingly too so that it could be used when
817 it is different from LocalAddress.Uri.
819 2009-07-31 Atsushi Enomoto <atsushi@ximian.com>
821 * TcpChannelFactory.cs, TcpDuplexSessionChannel.cs,
822 TcpRequestChannel.cs : use Via uri to validate and connect.
824 2009-07-31 Atsushi Enomoto <atsushi@ximian.com>
826 * RequestChannelBase.cs, DuplexChannelBase.cs :
827 Return endpoint address Uri when no explicit Via uri is specified.
828 * ChannelFactoryBase.cs : Remove extra async close methods.
829 Add async open methods. Reject null EndpointAddress.
830 * PeerChannelFactory.cs : remove async open methods (now in base).
832 2009-07-31 Atsushi Enomoto <atsushi@ximian.com>
834 * PeerDuplexChannel.cs : set correct message endpoint (To header).
836 2009-07-31 Atsushi Enomoto <atsushi@ximian.com>
838 * TcpDuplexSessionChannel.cs, PeerDuplexChannel.cs,
839 DuplexChannelBase.cs : set LocalAddress property at base.
841 2009-07-30 Atsushi Enomoto <atsushi@ximian.com>
843 * PeerDuplexChannel.cs : ongoing refactoring to work both as
844 listener and client. Now it creates a listening peer node, and
845 creates a set of TCP client channels for each peer in the mesh.
847 (EndpointAddress must be fixed to not filter out correct inputs).
849 2009-07-30 Atsushi Enomoto <atsushi@ximian.com>
851 * PeerChannelListener.cs : do not accept more than one channel
852 which results in lots of listening peer node. Only one is enough.
854 2009-07-30 Atsushi Enomoto <atsushi@ximian.com>
856 * DuplexChannelBase.cs : fix wrong loop implementation.
858 2009-07-28 Atsushi Enomoto <atsushi@ximian.com>
860 * TcpChannelListener.cs : to avoid creating two or more channels
861 for one remote endpoint, check existing remote endpoints and
862 ignore such connections (it must be handled in different thread
863 fired by ChannelDispatcher loop).
865 2009-07-28 Atsushi Enomoto <atsushi@ximian.com>
867 * TcpReplyChannel.cs : make sure to not try to receive request when
868 it is already closed.
870 2009-07-28 Atsushi Enomoto <atsushi@ximian.com>
872 * TcpChannelListener.cs, TcpDuplexSessionChannel.cs :
873 some mannerless clients [*1] do not send EndRecord accordingly, but
874 such channels at listener side should not be kept open. So, close
875 disconnected channels when the listener needs to accept another
877 [*1] see olive/samples/wcf/clientbase/samplecli4.cs.
879 2009-07-28 Atsushi Enomoto <atsushi@ximian.com>
881 * TcpDuplexSessionChannel.cs :
882 Remove extra NIE overrides.
883 Implement OnAbort() apart from OnClose().
884 For duplex session channel, unlike reply channel, it must acquire
885 TCP connection before OnOpen(), otherwise ChannelDispatcher
886 releases the connection acceptance WaitHandle and the detected
887 live connection may be stolen by another channel acceptor.
889 2009-07-28 Atsushi Enomoto <atsushi@ximian.com>
891 * HttpRequestChannel.cs : implement OnAbort().
893 2009-07-24 Atsushi Enomoto <atsushi@ximian.com>
895 * PeerChannelListener.cs : set source field. Remove unnecessary NIE.
896 * DuplexChannelBase.cs : comment out some extra fields (so far).
897 * PeerDuplexChannel.cs : pass valid EndpointAddress to PeerNodeImpl.
899 2009-07-24 Atsushi Enomoto <atsushi@ximian.com>
901 * PeerCustomResolverBindingElement.cs : add some null checks.
903 2009-07-23 Atsushi Enomoto <atsushi@ximian.com>
905 * TcpChannelListener.cs, TcpReplyChannel.cs, TcpRequestChannel.cs:
906 Acquire TcpClient for each request/reply. Now it is fully
907 interoperable with .NET.
909 2009-07-23 Atsushi Enomoto <atsushi@ximian.com>
911 * TcpReplyChannel.cs, TcpRequestChannel.cs: it somehow adds/expects
912 ReplyTo and MessageId (though it is session-less), and it expects
913 EndRecord at weird stage, inconsistent with [MC-NMF]...
914 Now .NET service accepts one mono client request.
916 2009-07-23 Atsushi Enomoto <atsushi@ximian.com>
918 * TcpReplyChannel.cs, TcpRequestChannel.cs, TcpBinaryFrameManager.cs:
919 Send and receive unsized message terminator at once.
920 Send EndRecord mutually. Got one .net client request working.
922 2009-07-23 Atsushi Enomoto <atsushi@ximian.com>
924 * BinaryMessageEncoder.cs : revert the previous dictionary change.
925 They are indeed used for non-in-band-dictionary messages.
927 2009-07-23 Atsushi Enomoto <atsushi@ximian.com>
929 * TcpDuplexSessionChannel.cs, TcpBinaryFrameManager.cs:
930 split out binary frame manager class into separate file.
932 2009-07-21 Atsushi Enomoto <atsushi@ximian.com>
934 * TcpReplyChannel.cs : new reply channel implementation.
935 * TcpChannelListener.cs : use above for streamed reply channel.
936 * TcpDuplexSessionChannel.cs : more streaming mode support.
937 * TcpRequestChannel.cs : a couple of updates to get it working
938 with the reply channel above. Still some issues on .NET interop.
940 2009-07-21 Atsushi Enomoto <atsushi@ximian.com>
942 * RequestContext.cs : added internal derived class that implements
945 2009-07-21 Atsushi Enomoto <atsushi@ximian.com>
947 * BinaryMessageEncoder.cs : for non-session reader and writer, do not
950 2009-07-17 Atsushi Enomoto <atsushi@ximian.com>
952 * PeerDuplexChannel.cs: add the registered node itself to peer list.
953 (The messaging must be done as TCP request/reply pattern, so it's
956 2009-07-17 Atsushi Enomoto <atsushi@ximian.com>
958 * TcpRequestChannel.cs : new channel file (TCP for request/reply
959 messaging pattern). The messaging part is not working yet.
960 * TcpChannelFactory.cs : support IRequestChannel.
961 * TcpDuplexSessionChannel.cs : add unsized message support.
963 2009-07-17 Atsushi Enomoto <atsushi@ximian.com>
965 * HttpRequestChannel.cs, RequestChannelBase.cs :
966 A couple of async members are now implemented in the base class.
967 Ditto for EndpointAddress and Via.
969 2009-07-10 Atsushi Enomoto <atsushi@ximian.com>
971 * PeerDuplexChannel.cs : now it implements some of node management
972 functionality and Send operation. The receiver part is not yet.
974 2009-07-10 Atsushi Enomoto <atsushi@ximian.com>
976 * TcpChannelListener.cs, TcpDuplexSessionChannel.cs : do not pass
977 timeout to channel constructor. it does not make sense.
979 2009-07-10 Atsushi Enomoto <atsushi@ximian.com>
981 * PeerChannelFactory.cs, PeerChannelListener.cs : add MessageEncoder
982 as common interface member, and use binary encoder (not text).
984 2009-07-09 Atsushi Enomoto <atsushi@ximian.com>
986 * PeerDuplexChannel.cs : PeerNode constructor argument changes.
988 2009-07-08 Atsushi Enomoto <atsushi@ximian.com>
990 * PeerDuplexChannel.cs, PeerChannelListener.cs, PeerOutputChannel.cs,
991 PeerInputChannel.cs, PeerChannelFactory.cs : those channels are
992 going to be unified to PeerDuplexChannel. And it is likely that
993 input and output functionalities are to be unified too.
995 2009-07-08 Atsushi Enomoto <atsushi@ximian.com>
997 * TcpChannelFactory.cs : (TcpChannelInfo) ease type restriction. I
998 may have to reuse it for peer transport.
999 * PeerChannelListener.cs : add binding member.
1000 * PeerDuplexChannel.cs : remove NIE overrides. Fill fields a bit.
1002 2009-07-08 Atsushi Enomoto <atsushi@ximian.com>
1004 * ChannelFactoryBase.cs, HttpChannelFactory.cs,
1005 PeerChannelFactory.cs : close opened channels at OnClose() as
1006 documented. Implement async methods.
1007 * PeerChannelListener.cs : removed some NIE overrides.
1009 2009-07-02 Atsushi Enomoto <atsushi@ximian.com>
1011 * DuplexChannelBase.cs : some more async methods.
1013 2009-06-29 Atsushi Enomoto <atsushi@ximian.com>
1015 * TcpDuplexSessionChannel.cs : on Abort(), do just Close() within
1017 * TcpChannelListener.cs : accept multiple channels at a time.
1019 2009-06-29 Atsushi Enomoto <atsushi@ximian.com>
1021 * TcpDuplexSessionChannel.cs : do not output all (stored) writer
1022 session strings but output only those new ones in current message.
1023 This fixes inconsistent body output in repetitive use of sender.
1025 2009-06-26 Atsushi Enomoto <atsushi@ximian.com>
1027 * TcpDuplexSessionChannel.cs : handle EndRecord for repetitive
1028 operation that does not involve session.
1029 Preserve writer session as well as reader session.
1030 * MessageHeaders.cs : take name and namespace into consideration
1031 when creating a serializer.
1033 2009-06-25 Atsushi Enomoto <atsushi@ximian.com>
1035 * TcpChannelListener.cs, TcpDuplexSessionChannel.cs :
1036 Made required changes for repeated use of message exchanges.
1037 Hold binary reader session. The channels use it incrementally.
1038 Preambles are handled at Open, and EndRecords are handled at
1039 Close, Add session shutdown hook here (not working yet though).
1041 2009-06-18 Atsushi Enomoto <atsushi@ximian.com>
1043 * ChannelListenerBase_1.cs : added cancellation hook here too.
1044 HttpChannelListener.cs : use above.
1045 Do not allow parallel channel creation (this listener does not
1046 allow more than one AcceptChannel().
1048 2009-06-18 Atsushi Enomoto <atsushi@ximian.com>
1050 * ReplyChannelBase.cs, HttpReplyChannel.cs :
1051 Add cancellation hook for async TryReceiveRequest.
1053 2009-06-18 Atsushi Enomoto <atsushi@ximian.com>
1055 * HttpChannelListener.cs, HttpListenerManager.cs :
1056 slightly improved BuildChannelListener().
1057 Implement OnAbort() and differentiate it from OnClose().
1059 2009-06-18 Atsushi Enomoto <atsushi@ximian.com>
1061 * TcpDuplexSessionChannel.cs : remove NIE stubs.
1063 2009-06-18 Atsushi Enomoto <atsushi@ximian.com>
1065 * DuplexChannelBase.cs : simple async delegate calls here too.
1067 2009-06-16 Atsushi Enomoto <atsushi@ximian.com>
1069 * ReplyChannelBase.cs : cosmetic dependency reduction on listener.
1071 2009-06-16 Atsushi Enomoto <atsushi@ximian.com>
1073 * HttpReplyChannel.cs : cosometic simplification.
1075 2009-06-16 Atsushi Enomoto <atsushi@ximian.com>
1077 * HttpRequestChannel.cs : Fixed timeout handling. It was causing
1078 infinite block in 2.0 profile.
1080 2009-06-12 Atsushi Enomoto <atsushi@ximian.com>
1082 * TcpChannelListener.cs, TcpDuplexSessionChannel.cs :
1083 more careful close to avoid NRE.
1085 2009-06-12 Atsushi Enomoto <atsushi@ximian.com>
1087 * HttpChannelListener.cs : do not Close() more than once (though
1088 it is allowed to call it twice, we don't reject it; just ignore).
1090 2009-06-12 Atsushi Enomoto <atsushi@ximian.com>
1092 * CustomBinding.cs : copy timeouts from argument binding in copy ctr.
1094 2009-06-11 Atsushi Enomoto <atsushi@ximian.com>
1096 * HttpReplyChannel.cs : reject multiple WaitForRequest calls.
1097 Temporarily disable HTTP Keep-Alive since it somehow results in
1098 wrong reuse of connection (shown as NRE in HttpConnection).
1099 Make sure to close RequestContext which was created from it.
1100 * HttpRequestContext.cs : simplify.
1102 2009-06-11 Atsushi Enomoto <atsushi@ximian.com>
1104 * HttpChannelListener.cs, TcpChannelListener.cs,
1105 ChannelListenerBase_1.cs : put common internal listener base
1106 and let it handle those async stuff.
1108 2009-06-10 Atsushi Enomoto <atsushi@ximian.com>
1110 * ReplyChannelBase.cs : fix wrong null delegate check point.
1112 2009-06-10 Atsushi Enomoto <atsushi@ximian.com>
1114 * HttpReplyChannel.cs, ReplyChannelBase.cs : async operations are
1115 now implemented as virtual in base class. Remove NIEs in http.
1117 2009-06-10 Atsushi Enomoto <atsushi@ximian.com>
1119 * HttpChannelListener.cs : hack async implementation.
1121 2009-06-08 Atsushi Enomoto <atsushi@ximian.com>
1123 * HttpListenerManager.cs : oops, extra line removal.
1125 2009-06-08 Atsushi Enomoto <atsushi@ximian.com>
1127 * HttpChannelManager.cs, HttpListenerManager.cs : rename file too.
1129 2009-06-08 Atsushi Enomoto <atsushi@ximian.com>
1131 * HttpChannelManager.cs, HttpChannelListener.cs: renaming, as
1132 "ChannelManager" is confusing (there is ChannelManagerBase).
1134 2009-06-08 Atsushi Enomoto <atsushi@ximian.com>
1136 * HttpChannelManager.cs, HttpTransportBindingElement.cs,
1137 HttpReplyChannel.cs, AspNetReplyChannel.cs, HttpChannelListener.cs:
1138 they should be split into separate listener->reply channel lines
1139 (remove "if (HostingEnvironment.IsAspNet)".)
1141 2009-06-08 Atsushi Enomoto <atsushi@ximian.com>
1143 * CommunicationObject.cs : OnClosed() requires call to base method.
1144 Close() could rather abort the channel, and Abort() does not
1145 always invke OnAbort().
1146 * ChannelBase.cs : add call to base as above.
1148 2009-06-05 Sebastien Pouliot <sebastien@ximian.com>
1150 * ClientAccessPolicy.cs: Removed
1151 * CrossDomainAccessManager.cs: Removed
1152 * CrossDomainPolicy.cs: Removed
1153 * HttpRequestChannel.cs: Remove call to CrossDomainAccessManager
1154 since this is now done inside the BeginGetResponse call (outside
1155 this assembly) for Moonlight (NET_2_1)
1157 2009-06-04 Alan McGovern <amcgovern@novell.com>
1159 * HttpRequestChannel.cs : Rewrite ProcessRequest to use the async APIs
1160 instead of the sync apis. Prevents a possible deadlock condition in
1163 2009-06-03 Atsushi Enomoto <atsushi@ximian.com>
1165 * HttpRequestChannel.cs : that SL2/ML2 does not seem to allow null
1166 callbacks, so add hacky ones.
1168 2009-06-01 Atsushi Enomoto <atsushi@ximian.com>
1170 * TcpDuplexSessionChannel.cs : WaitForMessage() should not return
1171 true when socket input is not available.
1173 2009-05-29 Atsushi Enomoto <atsushi@ximian.com>
1175 * TcpDuplexSessionChannel.cs : Moved tcp listener accept to OnOpen().
1176 I cannot precisely identify when EndRecord should be consumed,
1177 so allow it at either at the end of ReadSizedMessage() or on
1178 consuming preamble (it's likely handling EndRecord of previous
1181 Now duplex IPeerResolverContract communication works between
1182 either of .NET/Mono client and .NET/Mono server.
1184 2009-05-29 Atsushi Enomoto <atsushi@ximian.com>
1186 * TcpDuplexSessionChannel.cs : looks like I have added some bogus
1187 code. Handle preamble ack on ReadSizedMessage() only at server.
1188 Consume EndRecord from server, at client side. Though it is likely
1189 changed as it's blocking when mono is at server side.
1191 2009-05-29 Atsushi Enomoto <atsushi@ximian.com>
1193 * TcpDuplexSessionChannel.cs : .NET seems to be based on somewhat
1194 different protocol than existing code with related to preamble ack.
1195 So changed it to work fine with .NET client (finally).
1197 2009-05-28 Atsushi Enomoto <atsushi@ximian.com>
1199 * MessageBufferImpl.cs : do not output Action twice.
1201 2009-05-28 Atsushi Enomoto <atsushi@ximian.com>
1203 * MessageBufferImpl.cs : it did not copy headers.
1204 * Message.cs : remove 2_1 conditional implementation for buffered
1205 copy and hence remove bogus code.
1207 2009-05-28 Atsushi Enomoto <atsushi@ximian.com>
1209 * MessageProperties.cs : copy argument is wrong.
1211 2009-05-27 Atsushi Enomoto <atsushi@ximian.com>
1213 * PeerCustomResolverBindingElement.cs : some argument check.
1215 2009-05-27 Atsushi Enomoto <atsushi@ximian.com>
1217 * BinaryMessageEncoder.cs : the serializer somehow leaves binary
1218 xml open, so close the writer as well as open elements.
1219 * TcpDuplexSessionChannel.cs : clear write buffer on each operation.
1220 Do not output EndRecord and SizedMessage at a time.
1222 2009-05-26 Atsushi Enomoto <atsushi@ximian.com>
1224 * TcpDuplexSessionChannel.cs : there was a miscalculation on the
1225 length of the SizedMessage in the output.
1227 2009-05-26 Atsushi Enomoto <atsushi@ximian.com>
1229 * CommunicationObject.cs : use sane default timeout.
1230 * PeerCustomResolverBindingElement.cs : check timeout arg sanity.
1231 * TcpDuplexSessionChannel.cs : ditto.
1233 2009-05-26 Atsushi Enomoto <atsushi@ximian.com>
1235 * TcpDuplexSessionChannel.cs : It seems that buffered stream channel
1236 only accepts buffered messages, so do as such for write buffers.
1237 Add RelatesTo header.
1239 2009-05-26 Atsushi Enomoto <atsushi@ximian.com>
1241 * DuplexSessionChannelBase.cs, DuplexChannelBase.cs:
1242 rename from former to latter.
1244 2009-05-25 Atsushi Enomoto <atsushi@ximian.com>
1246 * TcpDuplexSessionChannel.cs : reader does not always return full
1247 buffer (depending on the stream).
1249 2009-05-25 Atsushi Enomoto <atsushi@ximian.com>
1251 * PeerDuplexChannel.cs, PeerOutputChannel.cs : use new PeerNode.ctor.
1253 2009-05-25 Atsushi Enomoto <atsushi@ximian.com>
1255 * PeerCustomResolverBindingElement.cs : (Resolve) returned addresses
1258 2009-05-22 Atsushi Enomoto <atsushi@ximian.com>
1260 * ChannelManagerBase.cs : there was annoying non-2.1 stuff.
1262 2009-05-22 Atsushi Enomoto <atsushi@ximian.com>
1264 * TcpChannelListener.cs, TcpChannelFactory.cs : get reader quotas.
1266 2009-05-22 Atsushi Enomoto <atsushi@ximian.com>
1268 * ChannelManagerBase.cs : fix wrong session channel detection.
1270 2009-05-22 Atsushi Enomoto <atsushi@ximian.com>
1272 * BinaryMessageEncoderFactory.cs, BinaryMessageEncoder.cs
1273 This encoder factory implements CreateSessionEncoder() and binary
1274 encoder does support session transmit, in different media type.
1275 * ChannelManagerBase.cs : added utility method to create appropriate
1277 * HttpChannelFactory.cs, HttpChannelListener.cs,
1278 MsmqChannelFactory.cs, MsmqChannelListener.cs,
1279 PeerChannelFactory.cs, PeerChannelListener.cs,
1280 TcpChannelFactory.cs, TcpChannelListener.cs : use above.
1282 2009-05-22 Atsushi Enomoto <atsushi@ximian.com>
1284 * TcpDuplexSessionChannel.cs : add ReplyTo header.
1286 2009-05-21 Atsushi Enomoto <atsushi@ximian.com>
1288 * DuplexSessionBase.cs : new file, for session implementation.
1289 * TcpDuplexSessionChannel.cs, PeerDuplexChannel.cs,
1290 DuplexSessionChannelBase.cs : changed sync/async implementation
1291 pattern. Now async methods call sync methods using delegates.
1293 2009-05-21 Atsushi Enomoto <atsushi@ximian.com>
1295 * InputChannelBase.cs, TransportBindingElement.cs, RequestContext.cs:
1296 a few minor API fixes.
1298 2009-05-21 Atsushi Enomoto <atsushi@ximian.com>
1300 * MessageEncoderFactory.cs : implement CreateSessionEncoder().
1302 2009-05-19 Atsushi Enomoto <atsushi@ximian.com>
1304 * TcpDuplexSessionChannel.cs : add To header.
1306 2009-05-19 Atsushi Enomoto <atsushi@ximian.com>
1308 * MessageFault.cs : fix several SOAP12 fault deserialization in xml
1311 2009-05-18 Atsushi Enomoto <atsushi@ximian.com>
1313 * FaultConverter.cs : avoid NRE for null IncomingMessageHeaders.
1315 2009-05-15 Atsushi Enomoto <atsushi@ximian.com>
1317 * MessageFault.cs : Reason is mandatory. raise XmlException, and
1318 CommunicationException in each CreateFault().
1320 2009-05-15 Atsushi Enomoto <atsushi@ximian.com>
1322 * TcpDuplexSessionChannel.cs : on listener side, get TcpClient at
1323 Open(). Some (but not all yet) continuous communication works now.
1324 Use ProtocolException. Remove dummy binary session string.
1326 2009-05-14 Atsushi Enomoto <atsushi@ximian.com>
1328 * TcpDuplexSessionChannel.cs : more [MC-NMF] implementation. Moved
1329 sending/receiving SizedMessageRecord parts to manager class.
1330 Handle writer session, though it is likely broken at dictionary
1331 writer part (no string is written so far).
1332 * BinaryMessageEncoder.cs : add writer session and rename reader
1335 2009-05-14 Atsushi Enomoto <atsushi@ximian.com>
1337 * TcpDuplexSessionChannel.cs : more [MC-NMF] implementation. Via uri
1338 is mandatory in initiator preamble packet. Handle Fault reply in
1341 2009-05-14 Atsushi Enomoto <atsushi@ximian.com>
1343 * TcpDuplexSessionChannel.cs : ongoing refactoring to collect [MC-NMF]
1344 based communication under TcpBinaryFrameManager class.
1346 2009-05-13 Jb Evain <jbevain@novell.com>
1348 * MessageHeader.cs: use a SL friendly way of creating an XmlReader
1349 from a StringReader.
1351 2009-05-13 Atsushi Enomoto <atsushi@ximian.com>
1353 * MessageImpl.cs, MessageHeader.cs : eliminate xlinq in 2.1, and
1354 actually eliminate DOM-based implementation too in 2.0.
1356 2009-04-28 Atsushi Enomoto <atsushi@ximian.com>
1358 * TcpDuplexSessionChannel.cs : implement in-band dictionary support
1359 in [MC-NMF] and [MC-NBFSE], used in duplex channels. Added some
1360 comments for magic numbers based on [MC-NMF].
1362 2009-04-28 Atsushi Enomoto <atsushi@ximian.com>
1364 * BinaryMessageEncoder.cs : implement part of in-band dictionary
1365 support for [MC-NBFSE] record in [MC-NMF], in this class.
1367 2009-04-28 Atsushi Enomoto <atsushi@ximian.com>
1369 * BinaryMessageEncodingBindingElement.cs : clear extra public members.
1371 2009-04-27 Atsushi Enomoto <atsushi@ximian.com>
1373 * TcpDuplexSessionChannel.cs : implemented some channel methods.
1375 2009-04-27 Atsushi Enomoto <atsushi@ximian.com>
1377 * BinaryMessageEncoder.cs : use XmlDictionary specified as [MC-NBFS].
1379 2009-04-27 Atsushi Enomoto <atsushi@ximian.com>
1381 * ChannelManagerBase.cs : implement Open/CloseTimeout correctly.
1383 2009-04-23 Atsushi Enomoto <atsushi@ximian.com>
1385 * BinaryMessageEncoder.cs : use quotas in binding element.
1386 Implement WriteMessage().
1388 2009-04-22 Atsushi Enomoto <atsushi@ximian.com>
1390 * PeerCustomResolverBindingElement.cs : do initialize field.
1392 2009-04-21 Atsushi Enomoto <atsushi@ximian.com>
1394 * PeerCustomResolverBindingElement.cs :
1395 implement full custom resolver.
1397 2009-04-21 Atsushi Enomoto <atsushi@ximian.com>
1399 * PeerDuplexChannel.cs, PeerChannelListener.cs,
1400 PeerOutputChannel.cs, PeerCustomResolverBindingElement.cs,
1401 PeerChannelFactory.cs : ongoing p2p channel implementation.
1403 2009-04-21 Atsushi Enomoto <atsushi@ximian.com>
1405 * PnrpPeerResolverBindingElement.cs : sync with PeerResolver changes.
1407 2009-04-21 Atsushi Enomoto <atsushi@ximian.com>
1409 * BinaryMessageEncodingBindingElement.cs, ChannelBase.cs,
1410 ChannelFactoryBase.cs, WindowsStreamSecurityBindingElement.cs :
1411 implement GetProperty<T>(). Return documented objects or null.
1413 2009-04-20 Atsushi Enomoto <atsushi@ximian.com>
1415 * PeerChannelFactory.cs, PeerChannelListener.cs,
1416 PeerCustomResolverBindingElement.cs, PeerDuplexChannel.cs
1417 PeerInputChannel.cs, PeerOutputChannel.cs :
1418 new; ongoing peer transport implementation.
1419 * DuplexSessionChannelBase.cs, InputChannelBase.cs
1420 MsmqOutputChannel.cs, OutputChannelBase.cs,
1421 PeerResolverBindingElement.cs, PeerTransportBindingElement.cs,
1422 PnrpPeerResolverBindingElement.cs, TcpDuplexSessionChannel.cs :
1423 several internal changes (either required or for simplification)
1424 for ongoing peer transport implementation.
1426 2009-04-08 Atsushi Enomoto <atsushi@ximian.com>
1428 * PeerTransportBindingElement.cs : ListenIPAddress is IPAddress.
1430 2009-04-07 Atsushi Enomoto <atsushi@ximian.com>
1432 * TcpTransportBindingElement.cs : check build-ability before
1433 actually building channels.
1434 * ConnectionOrientedTransportBindingElement.cs : fixed build-ability
1435 conditions according to MSDN.
1437 2009-03-05 Atsushi Enomoto <atsushi@ximian.com>
1439 * MessageHeader.cs, MessageHeaders.cs, MessageImpl.cs :
1440 handle headers in SL2. Slightly changed 3.0 code too.
1442 2009-03-04 Atsushi Enomoto <atsushi@ximian.com>
1444 * HttpRequestChannel.cs : use cross domain access manager.
1446 2009-02-27 Atsushi Enomoto <atsushi@ximian.com>
1448 * Message.cs : (in CreateBufferedCopy) do not pass the entire
1449 message as BodyWriter.
1450 (in GetReaderAtBodyContents) just write body contents.
1451 * MessageImpl.cs : do not try to read body at ctor (fixed tons
1453 Add some state check in GetReaderAtBodyContents().
1454 * XmlReaderBodyWriter.cs : avoid possible extra xmldecl onto output.
1456 2009-02-18 Atsushi Enomoto <atsushi@ximian.com>
1458 * Message.cs : do not forget to flush.
1459 * HttpRequestChannel.cs : give more exact error info.
1461 2009-02-18 Atsushi Enomoto <atsushi@ximian.com>
1463 * Message.cs, MessageBufferImpl.cs, XmlReaderBodyWriter.cs :
1464 make buffered copy in ML2 really buffered.
1466 2009-02-12 Atsushi Enomoto <atsushi@ximian.com>
1468 * Message.cs : if there is no header item to write, do not write
1469 SOAP header element.
1471 2009-01-22 Alan McGovern <amcgovern@novell.com>
1473 * MessageHeaders.cs : List<T>.RemoveAll(Predicate<T>) doesn't exist in Silverlight.
1474 Rewrite to avoid usage of it.
1476 2009-01-14 Atsushi Enomoto <atsushi@ximian.com>
1478 * ChannelParameterCollection.cs : implement, rather than NIE.
1480 2008-05-22 Noam Lampert <noaml@mainsoft.com>
1482 * MessageFault.cs: Correctly serialize ExceptionDetails. Expose SimpleMessageFault to allow
1483 internal users to know the type of the detail.
1485 2008-05-20 Noam Lampert <noaml@mainsoft.com>
1487 * Message.c: Use private setter for state private variable to ease debugging.
1488 Modify ToString not to change the state, as it is called quite often by VS debugger
1490 2008-04-21 Roei Erez <roeie@mainsoft.com>
1492 * HttpChannleManager: Fix for multithreaded use.
1493 * HttpReplyChannel: Fix crash during sutdown.
1495 2008-04-17 Igor Zelmanovich <igorz@mainsoft.com>
1497 * HttpChannleManager: ensure trailing slash in uri.
1499 2008-04-17 Vladimir Krasnov <vladimirk@mainsoft.com>
1501 * added: HttpChannleManager,
1502 * HttpChannelListener: added use of HttpChannelManager
1504 2008-04-17 Vladimir Krasnov <vladimirk@mainsoft.com>
1506 * MessageEncodingBindingElement.cs: fixed ctor
1508 2008-04-17 Vladimir Krasnov <vladimirk@mainsoft.com>
1510 * XmlReaderBodyWriter.cs: fixed ctor, skip xml declaration
1512 2008-04-17 Vladimir Krasnov <vladimirk@mainsoft.com>
1514 * HttpReplyChannel.cs: fixed TryReceiveRequest, fix message header To
1516 2008-04-17 Vladimir Krasnov <vladimirk@mainsoft.com>
1518 * MessageFault.cs: fixed CreateFault11, implemented "detail"
1520 2008-04-17 Noam Lampert <noaml@mainsoft.com>
1522 * HttpReplyChannel.cs: fix API - Fix crash during service shutdown.
1524 2008-04-13 Igor Zelmanovich <igorz@mainsoft.com>
1526 * BindingElementCollection.cs: fix API - .ctor's signature.
1528 2008-04-10 Eyal Alaluf <eyala@mainsoft.com>
1530 * XmlSerializerBodyWriter.cs: Removed.
1532 2008-03-25 Vladimir Krasnov <vladimirk@mainsoft.com>
1534 * MessageFault.cs: fixed WriteReason, .net XmlWriter compatible
1536 2008-02-20 Atsushi Enomoto <atsushi@ximian.com>
1538 * DuplexSessionChannelBase.cs : made it non-session (more reusable).
1539 * TcpChannelFactory.cs, TcpChannelListener.cs :
1540 unify factory and listener into TcpChannelInfo for use in
1541 TCP channel implementation. Do not store stream in the listener.
1542 Factory now uses BinaryMessageEncoder.
1543 * TcpDuplexSessionChannel.cs : changes explained above, and now it
1544 holds TcpClient that the listener has accepted.
1546 tcp-transport-binding-element sample now communicates (though
1547 only when both sides are mono: there seems binary mismatch).
1549 2008-02-20 Atsushi Enomoto <atsushi@ximian.com>
1551 * TcpTransportBindingElement.cs, TcpConnectionPoolSettings.cs :
1552 clone connection pool settings too.
1553 * NamedPipetransportBindingElement.cs,
1554 NamedPipeConnectionPoolSettings.cs : let's clean them up too (not
1555 being likely implemented though).
1557 2008-02-20 Atsushi Enomoto <atsushi@ximian.com>
1559 * ConnectionOrientedTransportBindingElement.cs,
1560 TcpTransportBindingElement.cs : some API updates.
1561 Initialize default values.
1562 * TcpConnectionPoolSettings.cs : new file.
1564 2008-02-18 Atsushi Enomoto <atsushi@ximian.com>
1566 * ServiceHostParser.cs, SvcHttpHandlerFactory.cs, SvcHttpHandler.cs:
1567 added support for "factory" attribute.
1569 2008-02-15 Atsushi Enomoto <atsushi@ximian.com>
1571 * HttpRequestContent.cs : consider HttpResponseMessageProperty.
1573 2008-02-15 Atsushi Enomoto <atsushi@ximian.com>
1575 * HttpRequestChannel.cs : pass response ContentType to ReadMessage().
1577 2008-02-15 Atsushi Enomoto <atsushi@ximian.com>
1579 * HttpRequestChannel.cs : create WebRequest against To message header
1581 Consider HttpRequestMessageProperty.
1582 Do not output body when suppressed or the method is GET.
1584 2008-02-15 Atsushi Enomoto <atsushi@ximian.com>
1586 * HttpChannelListener.cs : BindingContext may not have listenUri
1587 at its .ctor() step.
1589 2008-02-08 Atsushi Enomoto <atsushi@ximian.com>
1591 * BindingContext.cs : RemainingBindingElements is not just a dummy
1592 collection but is actually user-controlled.
1594 2008-02-08 Atsushi Enomoto <atsushi@ximian.com>
1596 * TcpChannelFactory.cs, TcpChannelListener.cs,
1597 HttpChannelFactory.cs, HttpChannelListener.cs,
1598 MsmqChannelFactory.cs, MsmqChannelListener.cs,
1599 TextMessageEncodingBindingElement.cs,
1600 BinaryMessageEncodingBindingElement.cs,
1601 MtomMessageEncodingBindingElement.cs :
1602 message encoder should be retrieved only through public API.
1603 * BindingContext.cs : so my old guess was wrong.
1605 See also: http://blogs.msdn.com/drnick/archive/2006/05/10/594134.aspx
1607 2008-02-05 Atsushi Enomoto <atsushi@ximian.com>
1609 * HttpTransportBindingElement.cs : implemented copy constructor.
1611 2007-08-20 Atsushi Enomoto <atsushi@ximian.com>
1613 * HttpRequestChannel.cs, HttpReplyChannel.cs : treat SOAPAction HTTP
1614 header when AddressingVersion is None.
1616 2007-08-20 Atsushi Enomoto <atsushi@ximian.com>
1618 * MessageHeaders.cs : AddressingVersion.None rejects some WSA
1621 2007-08-19 Atsushi Enomoto <atsushi@ximian.com>
1623 * OneWayBindingElementImporter.cs
1624 CompositeDuplexBindingElementImporter.cs : new files.
1626 2007-08-17 Atsushi Enomoto <atsushi@ximian.com>
1628 * MessageHeaders.cs : due to the DataContractSerializer.ReadObject()
1629 semantic change, its bool parameter must be false, not true.
1631 2007-07-13 Atsushi Enomoto <atsushi@ximian.com>
1633 * InputChannelBase.cs, MsmqChannelListener.cs, MsmqInputChannel.cs :
1634 new files. Msmq transport listener Implementation.
1635 * MsmqOutputChannel.cs : implemented Send(). Not sure if it works
1636 (wait for System.Messaging impl.)
1637 * HttpReplyChannel.cs : added comment
1639 2007-07-06 Atsushi Enomoto <atsushi@ximian.com>
1641 * MsmqChannelFactory.cs MsmqOutputChannel.cs OutputChannelBase.cs :
1642 new files. internal stuff for msmq channel.
1643 * BinaryMessageEncoder.cs : added another .ctor().
1644 * MsmqTransportBindingElement.cs :
1645 implemented [Can]BuildChannelFactory().
1647 2007-07-06 Atsushi Enomoto <atsushi@ximian.com>
1649 * MsmqBindingElementBase.cs MsmqTransportBindingElement.cs :
1650 initialize some fields.
1652 2007-07-05 Atsushi Enomoto <atsushi@ximian.com>
1654 * MsmqBindingElementBase.cs MsmqMessageProperty.cs
1655 MsmqTransportBindingElement.cs ITransactedBindingElement.cs :
1656 couple of msmq stubs.
1658 2007-04-02 Atsushi Enomoto <atsushi@ximian.com>
1660 * SecureMessageGenerator.cs : SecurityContextToken support (though
1661 it is still regarded as invalid by WCF).
1663 2007-03-13 Atsushi Enomoto <atsushi@ximian.com>
1665 * WSSecurityMessageHeader.cs, SecureMessageGenerator.cs :
1666 make header.Contents.Add() more strict.
1667 Use HasAsymmetricKey to determine whether to use asymmetric algorithm
1669 Added some hack to allow ssl token external mode.
1670 Commented out such lines that always premised asymmtric key.
1672 2007-03-08 Atsushi Enomoto <atsushi@ximian.com>
1674 * TransactionFlowBindingElement.cs : forgot necessary Clone().
1676 2007-03-08 Atsushi Enomoto <atsushi@ximian.com>
1678 * MessageSecurityBindingSupport.cs : support check to create
1679 authenticator is now done in both initiator/recipient sides.
1680 * SecurityRequestContext.cs : don't encrypt WS-Trust RSTR.
1682 2007-03-07 Atsushi Enomoto <atsushi@ximian.com>
1684 * MessageSecurityBindingSupport.cs : for now, comment out the code
1685 that makes authenticator creation optional.
1686 * SecurityRequestContext.cs : don't decrypt message when it is
1687 WS-Trust messages. Also, do not secure SOAP Fault (it is likely
1689 * SecurityChannelListener.cs : GetProperty<T>() now returns
1690 MessageSecurityBindingSupport when requested. It is used by
1691 EndpointDispatcher to check if it supports WS-Trust negotiation.
1692 * ChannelListenerBase.cs :
1693 removed extra TODO and field. Implemented GetProperty<T>().
1694 * Message.cs : In CreateMessage() for SOAP Fault, create
1695 SimpleMessage with IsFault = true.
1697 2007-03-07 Atsushi Enomoto <atsushi@ximian.com>
1699 * SecurityRequestContext.cs : try to reply fault with the inner
1700 channel when an error occurred internally.
1701 * FaultConverter.cs : implemented based on OperationContext (at normal
1702 state it does not seem to create messages, so I implemented it this
1705 2007-03-07 Atsushi Enomoto <atsushi@ximian.com>
1707 * TransportBindingElement.cs : implemented GetProperty<T>().
1708 * TransactionFlowBindingElement.cs : on building factory or listener,
1709 reject channel types that cannot build.
1710 * SecurityBindingElement.cs : added some TODO comments.
1711 * HttpTransportBindingElement.cs : GetProperty<T>() should rather
1712 delegate to base, not BindingContext.
1713 * SecurityRequestContext.cs : somewhat late decryption.
1715 2007-03-06 Atsushi Enomoto <atsushi@ximian.com>
1717 * MessageSecurityBindingSupport.cs,
1718 AsymmetricSecurityBindingElement.cs,
1719 SymmetricSecurityBindingElement.cs :
1720 renamed *SecurityBindingElementSupport to *SecurityCapabilities and
1721 implemented ISecurityCapabilities on them. Now those binding
1722 elements support GetProperty<ISecurityCapabilities>().
1724 2007-03-05 Atsushi Enomoto <atsushi@ximian.com>
1726 * SecurityBindingElement.cs : SetIssuerBindingContextIfRequired()
1727 will work only for predefined parameter types.
1729 2007-03-01 Atsushi Enomoto <atsushi@ximian.com>
1731 * MessageSecurityBindingSupport.cs :
1732 Set proper MessageDirection to the requirement after creation.
1733 split CreateTokenAuthenticator() as MessageDirection is different.
1734 Removed extra creation of requirement.
1736 2007-03-01 Atsushi Enomoto <atsushi@ximian.com>
1738 * MessageSecurityBindingSupport.cs : token authenticator is not
1739 always created on channel-opening stage.
1740 * SecurityBindingElement.cs : use SslSecurityTokenParameters for
1741 Sslnego binding factory method.
1743 2007-02-28 Atsushi Enomoto <atsushi@ximian.com>
1745 * SecureMessageGenerator.cs : inconsistent ReferenceList has caused
1746 signature velification failure.
1748 2007-02-27 Atsushi Enomoto <atsushi@ximian.com>
1750 * SecureMessageGenerator.cs : encrypt signature confirmations only
1751 when they are required.
1753 2007-02-27 Atsushi Enomoto <atsushi@ximian.com>
1755 * SecureMessageGenerator.cs : SignatureConfirmation must be encrypted
1756 when [Signature Protection is true i.e. when we use
1757 SignBeforeEncryptAndEncryptSignature.
1759 With this change finally samplesvc.cs/samplecli.cs became
1762 2007-02-27 Atsushi Enomoto <atsushi@ximian.com>
1764 * SecureMessageDecryptor.cs : signature verification was not done
1765 for endorsing supporting tokens.
1766 * SecureMessageGenerator.cs : moved SignatureConfirmation position
1767 in the security header. Don't output empty ReferenceList.
1769 2007-02-27 Atsushi Enomoto <atsushi@ximian.com>
1771 * SecureMessageGenerator.cs : signingToken was added before being
1772 initialized and thus caused NRE.
1774 2007-02-27 Atsushi Enomoto <atsushi@ximian.com>
1776 * WSSecurityMessageHeader.cs, SecureMessageDecryptor.cs,
1777 SecureMessageGenerator.cs : use SHA1 instead of HMACSHA1. Now we
1778 don't need workaround for symmetric key restoration.
1780 2007-02-27 Atsushi Enomoto <atsushi@ximian.com>
1782 * WSSecurityMessageHeader.cs, SecureMessageDecryptor.cs,
1783 SecureMessageGenerator.cs :
1784 Avoid extra reference search from the request's ReferenceList.
1785 create HMACSHA1 always with the key to compute hash (I'm not sure
1786 it is correct; it is rather to adjust all hash consistent.)
1788 2007-02-27 Atsushi Enomoto <atsushi@ximian.com>
1790 * SecureMessageDecryptor.cs : verify that endorsing supporting tokens
1791 actually endorsed the primary signature.
1792 * SecureMessageGenerator.cs : implemented endorsing of the primary
1793 signature. So, now supporting tokens are fully implemented.
1795 2007-02-27 Atsushi Enomoto <atsushi@ximian.com>
1797 * MessageSecurityBindingSupport.cs : so, those supporting tokens are
1798 totally signing tokens.
1799 * SecureMessageGenerator.cs : Endorsing tokens should also be
1800 included in the message. They are just not signed.
1802 2007-02-26 Atsushi Enomoto <atsushi@ximian.com>
1804 * SecureMessageGenerator.cs : support signing and encryption of
1805 supporting tokens. Some required refactory to do it.
1806 * MessageSecurityBindingSupport.cs : added EncryptedData member.
1808 2007-02-26 Atsushi Enomoto <atsushi@ximian.com>
1810 * SecureMessageDecryptor.cs : fix exception message.
1811 * WSSecurityMessageHeader.cs, WSSignedXml.cs, WSEncryptedXml.cs :
1812 XmlNamespaceManager is not required for GetIdElement().
1814 2007-02-22 Atsushi Enomoto <atsushi@ximian.com>
1816 * SecureMessageDecryptor.cs, WSSecurityMessageHeader.cs :
1817 moved decryption part from former file to latter file, to reuse
1818 SignedXml instance (though now I doubt how it actually was good)
1819 which in turn required to replace EncryptedData in
1820 WSSecurityMessageHeader with decrypted one.
1821 * WSEncryptedXml.cs : similar to WSSignedXml.cs, to handle wsu:Id.
1823 2007-02-21 Atsushi Enomoto <atsushi@ximian.com>
1825 * SecureMessageGenerator.cs : when we create DerivedKeyToken, those
1826 EncryptedData should contain KeyInfo as it is not obvious which key
1827 is used there. .net<->mono DerivedKeyToken introp is done.
1828 * SecureMessageDecryptor.cs : check derived key requirement.
1829 Reduce dom-dependent parts.
1831 2007-02-21 Atsushi Enomoto <atsushi@ximian.com>
1833 * WSSecurityMessageHeader.cs : ReferenceList needs to be bound to
1834 the related DerivedKeyToken (if any).
1835 * SecureMessageGenerator.cs : largely done with DerivedKeyToken
1836 support. Some refactoring to distinguish deried-token-related
1838 * SecureMessageDecryptor.cs : removed its own support for derived
1839 key tokens. Now it fully works with DerivedKeySecurityToken.
1841 2007-02-21 Atsushi Enomoto <atsushi@ximian.com>
1843 * WSSecurityMessageHeader.cs, SecureMessageDecryptor.cs,
1844 SecureMessageDecryptor.cs :
1845 Implemented increment token reading in o:Security, as
1846 DerivedKeyToken could reference to existing wrapped key.
1847 Removed WsscDerivedKeyToken and all relevant code.
1848 * SecureMessageGenerator.cs : replaced WsscDerivedKeyToken with
1849 DerivedKeySecurityToken.
1851 2007-02-16 Atsushi Enomoto <atsushi@ximian.com>
1853 * SecureMessageGenerator.cs : it was setting security tokens into
1854 incorrect SecurityMessageProperty.
1855 Use correct WrappedKeySecurityToken for EncryptedKeySHA1.
1856 Now it uses SecurityRequestContext instead of just primary key.
1857 * SecureMessageDecryptor.cs : removed extra lines. Limit workarounds
1858 to symmetric reply decryption, which is the only trouble case.
1859 Do not create another SignedXml.
1860 * WSSecurityMessageHeader.cs : SignedXml processing changes above.
1862 2007-02-15 Atsushi Enomoto <atsushi@ximian.com>
1864 * SecureMessageDecryptor.cs : Now it uses union token resolver and
1865 the resolver works with in-progress token reading in o:Security.
1866 * WSSecurityMessageHeader.cs : now it does not read EncryptedKey
1867 as EncryptedKeyIdentifierClause. It is rather a SecurityToken.
1868 * SecureMessageGenerator.cs : cosmetic refactoring.
1870 2007-02-14 Atsushi Enomoto <atsushi@ximian.com>
1872 * WSSecurityMessageHeader.cs : read EncryptedKeyIdentifierClause
1873 instead of EncryptedKey.
1875 2007-02-13 Atsushi Enomoto <atsushi@ximian.com>
1877 * MessageSecurityBindingSupport.cs : SigningToken and EncryptionToken
1878 should not be always prepared at channel Open(). It also caused
1879 that extra token requirements.
1880 * SecureMessageGenerator.cs : use correct key clause for encryption.
1881 * SecureMessageDecryptor.cs : reduce extra key acquisition.
1883 2007-02-06 Atsushi Enomoto <atsushi@ximian.com>
1885 * MessageSecurityBindingSupport.cs : added CreateTokenAuthenticator()
1886 for supporting 'supporting tokens' .
1887 * SecureMessageGenerator.cs : Supporting token creation is done only
1888 at initiator (not sure if it is supposed that, but for now it is).
1889 Removed extraneous CollectSupportingTokens().
1890 * SecureMessageDecryptor.cs : implemented supporting token
1891 authentication (partly). "Signed" supporting tokens are expected
1894 2007-02-06 Atsushi Enomoto <atsushi@ximian.com>
1896 * SecureMessageGenerator.cs :
1897 make SignBeforeEncryptAndEncryptSignature working.
1899 2007-02-06 Atsushi Enomoto <atsushi@ximian.com>
1901 * SecureMessageGenerator.cs : EncryptedKeySHA1 needs key hash, not
1902 the key itself. ProtectionToken is WrappedKey.
1903 * SecureMessageDecryptor.cs : now it is internal encrypted key clause,
1904 not EncryptedKeyIdentifierClause which is not for embedded key.
1905 * MessageProperties.cs : Fixed copy direction in CopyProperties().
1907 2007-02-05 Atsushi Enomoto <atsushi@ximian.com>
1909 * MessageSecurityBindingSupport.cs : added DefaultKeyWrapAlgorithm
1910 to switch asymmetric and symmetric. Not used yet.
1911 * SecurityRequestChannel.cs : now it pass the request security
1912 property to reply receiver so that it could use the primary key
1913 used at request phase.
1914 * SecurityRequestContext.cs : now it pass the context itself to
1915 reply sender so that it could embed related MessageID.
1916 * SecureMessageGenerator.cs : ongoing changes to support symmetric
1917 binding element. Add RelatesTo output and remove MessageID when
1918 replying to the sender. Added some hacks to get symmetric binding
1920 * SecureMessageDecryptor.cs : ditto. Handle embedded encryption key
1921 in SecurityTokenReference (it also involved existing encrypted key
1922 retrieval). In reply receiver, reuse the key that was used at
1923 request phase. It needs significant token resolution refactoring.
1925 2007-02-02 Atsushi Enomoto <atsushi@ximian.com>
1927 * MessageSecurityBindingSupport.cs : cosmetic refactoring.
1928 * SecureMessageDecryptor.cs : store token and its authentication
1929 policies into the security property, and reuse it on reply.
1930 Some code refactoring; there is at most one o:Security to solve at
1931 one endpoint (depends on Actor). Some attempt to use correct
1932 token parameters (but for now I have only samples that use x509).
1933 * SecureMessageGenerator.cs : For replying message, use initiator's
1934 signing token as the encryption token. Simply reuse security
1935 property from the input message.
1937 I have some nasty workaround at decryptor for initiator that could
1938 not retrieve decryption key.
1940 2007-02-02 Atsushi Enomoto <atsushi@ximian.com>
1942 * SecureMessageGenerator.cs, SecurityChannelListener.cs,
1943 SecurityRequestContext.cs, MessageSecurityBindingSupport.cs:
1944 several refactoring on token acquisition. Large part of
1945 MessageSecurityBindingSupport code is unified.
1947 2007-02-02 Atsushi Enomoto <atsushi@ximian.com>
1949 * MessageProperties.cs : Security property should be one of the items.
1950 Actually many other properties should be similar as well.
1951 * MessageImpl.cs, MessageBufferImpl.cs, Message.cs :
1952 when copying a message, copy properties as well.
1953 * SecurityRequestContext.cs : on replying, pass input
1954 SecurityMessageProperty to the security generator.
1955 * SecureMessageGenerator.cs : both of above, for SignatureConfirmation
1957 * WSSecurityMessageHeader.cs : fixed lazy .ctor() that did nothing.
1959 2007-02-01 Atsushi Enomoto <atsushi@ximian.com>
1962 MessageHeader.cs, Message.cs, WSSecurityMessageHeader.cs,
1963 SecureMessageDecryptor.cs, SecureMessageGenerator.cs:
1964 use new WSSignedXml instead of SignedXml, and remove coexisting
1965 Id and wsu:Id. Now we can live only with wsu:Id and therefore
1966 - our reply messages could be consumed by .NET, and
1967 - .NET signature could be verified.
1969 2007-02-01 Atsushi Enomoto <atsushi@ximian.com>
1971 * SecureMessageDecryptor.cs : The signing key must be passed as
1972 CheckSignature() argument, not SigningKey.
1974 2007-01-31 Atsushi Enomoto <atsushi@ximian.com>
1976 * MessageImpl.cs : don't read attribute after ReadStartElement().
1978 2007-01-31 Atsushi Enomoto <atsushi@ximian.com>
1980 * MessageSecurityBindingSupport.cs : some Release() refactoring.
1981 * SecureMessageGenerator.cs : use correct signing key clause for
1982 SecurityTokenReferenceKeyInfo to be serialized.
1983 * SecureMessageDecryptor.cs : now it can try to parse signature.
1985 2007-01-31 Atsushi Enomoto <atsushi@ximian.com>
1987 Ongoing changes to support signature confirmation
1988 * SecureMessageGenerator.cs :
1989 Don't output ReplyTo onto reply message.
1990 Write SignatureConfirmation if needed.
1991 * SecureMessageDecryptor.cs :
1992 Some refactoring for header cunsumption. Added commented-out
1993 signature verification part (not working yet, on client side due
1994 to incorrect reply from service and insufficient clause reader).
1995 * WSSecurityMessageHeader.cs :
1996 Added SignatureConfirmation support.
1997 KeyInfoClause for o:SecurityTokenReference should be replaced with
1998 SecurityTokenReferenceKeyInfo.
2000 2007-01-29 Atsushi Enomoto <atsushi@ximian.com>
2002 * SecureMessageGenerator.cs : support Timestamp signature.
2003 Removed unused code, and extra argument in CreateReference().
2004 * WSSecurityMessageHeader.cs : Timestamp also needs Id for SignedXml.
2006 2007-01-29 Atsushi Enomoto <atsushi@ximian.com>
2008 * SecureMessageGenerator.cs :
2009 Several fixes to make asymmetric binding working:
2010 - Differentiate signing and encryption token in several areas.
2011 - Fixed signing keyinfo.
2013 Added initial SecurityMessageProperty handling, not sure if it is
2014 appropriate here though.
2015 * HttpRequestChannel.cs : (some debugging lines)
2017 2007-01-26 Atsushi Enomoto <atsushi@ximian.com>
2019 Woohoo! Here is a very basic WS-Security compliant message which could
2020 be allowed by Indigo.
2021 * MessageHeader.cs : added Id support for writing.
2022 * Message.cs : added internal BodyId for signature reference.
2023 * MessageImpl.cs : write Body Id if required.
2024 * SecureMessageGenerator.cs : Before signing, the target elements must
2025 be given wsu:Id. Since I still use System.Security.dll, I need some
2026 trick for signing (I give both Id and wsu:Id, former to sign and
2027 latter to be consumed). Maybe I will have to replace xmldsig/xmlenc
2028 implementation later. Now singning mechanism works except for
2029 wsu:Timestamp (which is kind of mandatory).
2031 I can's still consume replies from Indigo but it's a big progress :)
2033 2007-01-26 Atsushi Enomoto <atsushi@ximian.com>
2035 * MessageHeaderInfo.cs : added internal Id.
2036 * MessageHeader.cs : read and write wsu:Id.
2037 * Message.cs : output wsu namespace if Id exists in any header.
2038 * HttpReplyChannel.cs : (some debugging lines.)
2039 * SecureMessageDecryptor.cs : (remove debugging lines.)
2040 * MessageImpl.cs : removed obsolete code.
2041 * WSSecurityMessageHeader.cs : output "o" prefix.
2042 * SecureMessageGenerator.cs : replaced XmlElement-based header
2043 signing with MessageHeader-based signing, to support Id correctly.
2045 2007-01-15 Atsushi Enomoto <atsushi@ximian.com>
2047 * SecureMessageGenerator.cs : some more refactoring and code comments.
2048 * MessageSecurityUtility.cs : made decryptor into an instance class,
2049 like I've done for SecureMessageGenerator.
2050 * SecurityRequestContext.cs, SecurityRequestChannel.cs :
2051 dependent changes for above.
2053 2007-01-12 Atsushi Enomoto <atsushi@ximian.com>
2055 * SecureMessageGenerator.cs : fixed derived keysize. derived key was
2056 causing NRE due to the lack of token reference.
2057 No need to pass doc to SignedXml.ctor() anymore.
2058 Moved ReferenceList before the signature(s).
2060 2007-01-12 Atsushi Enomoto <atsushi@ximian.com>
2062 * SecureMessageGenerator.cs : add wsu:Timestamp to signing target.
2063 Moved signing key generation code to non-HMACSHA1 signing part.
2064 Don't try to sign wss:Security.
2065 Pass document itself to SignedXml.ctor().
2066 Use temporary DataObjects to avoid adding Ids (not sure what is the
2067 expected processing yet).
2068 * WSSecurityMessageHeader.cs : to support timestamp signing, add
2069 WriteTo() method in WsuTimestamp.
2071 2007-01-12 Atsushi Enomoto <atsushi@ximian.com>
2073 * SecureMessageGenerator.cs : wrong key was used for signing.
2074 Omit KeyInfo for now - it seems that .net (sometimes?) omits it.
2076 2007-01-11 Atsushi Enomoto <atsushi@ximian.com>
2078 * SecureMessageGenerator.cs :
2079 Now ID generation process does not modify input message.
2080 Moved derived key generation part into (virtual) signing loop.
2081 MessagePartSpecification support for signing is done.
2083 2007-01-11 Atsushi Enomoto <atsushi@ximian.com>
2085 * SecureMessageGenerator.cs : some reordering to handle signing and
2086 encryption with supporting tokens. Fixed XPath query bug for
2087 soap header contents (we want s:Header/*, not s:Header).
2089 2007-01-11 Atsushi Enomoto <atsushi@ximian.com>
2091 * MessageSecurityBindingSupport.cs : more refactoring.
2092 Made it abstract and added Initiator- and Recipient- classes.
2093 Several members were moved to those derived types.
2094 * AsymmetricSecurityBindingElement.cs,
2095 SymmetricSecurityBindingElement.cs
2096 SecurityChannelFactory.cs, SecurityChannelListener.cs,
2097 SecurityRequestChannel.cs, SecurityOutputChannel.cs,
2098 SecurityRequestContext.cs, SecureMessageGenerator.cs :
2099 All dependent changes by above. Removed ISecurityChannelSource
2100 which became useless.
2102 2007-01-11 Atsushi Enomoto <atsushi@ximian.com>
2104 * SecureMessageGenerator.cs : encryption parts should exist too.
2105 * AsymmetricSecurityBindingElement.cs
2106 SymmetricSecurityBindingElement.cs,
2107 MessageSecurityBindingSupport.cs : some refactoring.
2108 Split MessageSecurityBindingSupport into security binding element
2109 specific parts and made MessageSecurityBindingSupport concrete.
2110 It is likely split again, next time based on initiator/recipient.
2112 2007-01-11 Atsushi Enomoto <atsushi@ximian.com>
2114 * MessageSecurityUtility.cs, SecureMessageGenerator.cs :
2115 split encryptor part in the former file into latter file, and
2117 * SecurityRequestChannel.cs, SecurityOutputChannel.cs,
2118 SecurityRequestContext.cs : apply the change above.
2120 2007-01-11 Atsushi Enomoto <atsushi@ximian.com>
2122 * MessageSecurityBindingSupport.cs :
2123 Fixed incorrect TrgGetValue() use.
2124 Added CollectRecipientSupportingTokens().
2126 2007-01-11 Atsushi Enomoto <atsushi@ximian.com>
2128 * MessageSecurityUtility.cs: acctually ReferenceList was inside
2129 EncryptedKey. So, when a key itself is used to encrypt data,
2130 ReferenceList is contained by itself.
2131 * MessageSecurityBindingSupport.cs :
2132 added CollectInitiatorSupportingTokens().
2134 2007-01-10 Atsushi Enomoto <atsushi@ximian.com>
2136 * MessageSecurityUtility.cs: it should support ReferenceList-less
2139 2007-01-10 Atsushi Enomoto <atsushi@ximian.com>
2141 * WSSecurityMessageHeader.cs : reverted previous unnecessary change.
2142 * MessageSecurityUtility.cs : there already was uuid.
2144 2007-01-09 Atsushi Enomoto <atsushi@ximian.com>
2146 * MessageSecurityUtility.cs : replaced EncryptedKey with
2147 WrappedKeySecurityToken, which seems to be in actual use in .net.
2148 * WSSecurityMessageHeader.cs : added internal Guid so that it
2149 could be shared between header items.
2151 2006-12-14 Atsushi Enomoto <atsushi@ximian.com>
2153 * HttpRequestContext.cs, TextMessageEncoder.cs :
2154 some null arg check.
2156 2006-12-08 Atsushi Enomoto <atsushi@ximian.com>
2158 * MessageSecurityUtility.cs : reducing DOM dependency. Use KeyInfoNode
2159 for SecurityTokenReference resolution.
2161 2006-12-08 Atsushi Enomoto <atsushi@ximian.com>
2163 * MessageSecurityUtility.cs : fixed EncryptedData decryption to
2164 consider DerivedKeyTokens correctly.
2165 When creating LocalId, don't add '#' here.
2167 2006-12-07 Atsushi Enomoto <atsushi@ximian.com>
2169 * MessageSecurityUtility.cs :
2170 handle key mapping for each wsse:Security.
2172 2006-12-07 Atsushi Enomoto <atsushi@ximian.com>
2174 * WSSecurityMessageHeader.cs : use prefix "c" for ws-secureconv.
2176 2006-12-06 Atsushi Enomoto <atsushi@ximian.com>
2178 * WSSecurityMessageHeader.cs : write top-level ReferenceList in
2180 * MessageSecurityUtility.cs :
2181 Now ReferenceList is placed under wsse:Security as WS-Security 1.1
2182 suggests, and it is used to dereference decryption targets.
2183 Now it premises multiple wsse:Security elements to read.
2185 2006-12-06 Atsushi Enomoto <atsushi@ximian.com>
2187 * WSSecurityMessageHeader.cs : don't write o:SecurityTokenReference
2188 manually (and actually the namespace URI was wrong).
2190 2006-12-06 Atsushi Enomoto <atsushi@ximian.com>
2192 * WSSecurityMessageHeader.cs : improved DerivedKeyToken writing
2194 * MessageSecurityUtility.cs : DerivedKeyToken creation.
2196 2006-12-06 Atsushi Enomoto <atsushi@ximian.com>
2198 * SecurityBindingElement.cs,
2199 SymmetricSecurityBindingElement.cs,
2200 AsymmetricSecurityBindingElement.cs :
2201 implemented SetKeyDerivation().
2203 2006-12-06 Atsushi Enomoto <atsushi@ximian.com>
2205 * MessageSecurityUtility.cs : don't add KeyInfoClause to EncryptedKey
2208 2006-12-06 Atsushi Enomoto <atsushi@ximian.com>
2210 * MessageBufferImpl.cs : XmlReader-based buffer is not possible, so
2213 2006-12-05 Atsushi Enomoto <atsushi@ximian.com>
2215 * MessageSecurityUtility.cs : u:Timestamp will be encrypted/signed,
2216 thus move it in front of encryption/signing.
2218 2006-12-04 Atsushi Enomoto <atsushi@ximian.com>
2220 * TransactionFlowBindingElement.cs : OnOpen()/OnClose() should not
2221 check state by themselves (btw it's not really working).
2222 * HttpChannelListener.cs : If the url does not end with '/' add it
2223 so that it could be fed to HttpListener.
2225 2006-12-04 Atsushi Enomoto <atsushi@ximian.com>
2227 * HttpChannelFactory.cs : check scheme on CreateChannel.
2228 * MessageHeader.cs : finish IsMessageVersionSupported().
2230 2006-12-04 Atsushi Enomoto <atsushi@ximian.com>
2232 * FaultConverter.cs : new file, not used yet though.
2234 2006-10-21 Atsushi Enomoto <atsushi@ximian.com>
2236 * SvcHttpHandler.cs : set GET URL to ServiceMetadataBehavior.
2238 2006-10-20 Atsushi Enomoto <atsushi@ximian.com>
2240 * SvcHttpHandler.cs : once AspNetReplyChannel get working with HTTP
2241 GET as well as HttpReplyChannel, configuration would be ready now.
2243 2006-10-18 Ankit Jain <jankit@novell.com>
2245 * TextMessageEncoder.cs (MediaType): Use 'application/soap+xml' for
2246 EnvelopeVersion.Soap12 and 'text/xml' for others.
2247 * HttpReplyChannel.cs (TryReceiveRequest): Revert earlier patch for GET
2249 Strip '?' from the query string.
2251 2006-10-13 Ankit Jain <jankit@novell.com>
2253 * MessageVersion.cs (None): Set AddressingVersion.None
2255 2006-10-12 Atsushi Enomoto <atsushi@ximian.com>
2257 * SvcHttpHandler.cs : added config-based endpoint addition code.
2258 Though due to some weird bug in mono-core it does not seem to work,
2259 so commented out for now.
2260 * HttpReplyChannel.cs : handle wsdl query parameter. btw creating
2261 mex request message might just be wrong.
2262 Use expected MessageVersion by the channel.
2263 * AspNetReplyChannel.cs : ditto. Plus, HTTP GET support.
2265 2006-10-12 Atsushi Enomoto <atsushi@ximian.com>
2267 * MessageSecurityBindingSupport.cs : added DefaultSignatureAlgorithm
2268 which differs depending on whether it is asymmetric or symmetric.
2269 * SecurityRequestChannel.cs, SecurityRequestContext.cs :
2270 simplify SecureMessage() and DecryptMessage() arguments (just
2271 take MessageSecurityBindingSupport instead of several parameters).
2272 * MessageSecurityUtility.cs :
2273 - simplify SecureMessage() and DecryptMessage() arguments (just
2274 take MessageSecurityBindingSupport instead of several parameters).
2275 - Take token inclusion mode into account. Don't include them when
2276 it is not expected. Also, change the token reference style.
2277 - add wsa:MessageID to the headers.
2278 - For hmac-sha1 signing (default for symmetric binding), use
2279 symmetric key created for encryption as well to create HMACSHA1.
2280 - add Id to wsu:Timestamp.
2281 - start to handle SecurityMessageProperty.
2282 * WSSecurityMessageHeader.cs :
2283 Added Id to WsuTimestamp. Also use prefixes for its XML output.
2284 Changed date format.
2286 2006-10-06 Atsushi Enomoto <atsushi@ximian.com>
2288 * CommunicationObject.cs : reject faulted state on Open()/Close().
2289 * MessageHeaders.cs : removed extra fields.
2291 2006-10-06 Ankit Jain <jankit@novell.com>
2293 * HttpReplyChannel.cs (TryReceiveRequest): Handle HTTP GET.
2295 2006-10-05 Atsushi Enomoto <atsushi@ximian.com>
2297 * MessageSecurityUtility.cs, SecurityRequestContext.cs :
2298 added some FIXMEs and additional arg.
2300 2006-10-05 Atsushi Enomoto <atsushi@ximian.com>
2302 * MessageSecurityUtility.cs : remove duplicate Action header.
2304 2006-10-05 Atsushi Enomoto <atsushi@ximian.com>
2306 * MessageFault.cs : partly implemented CreateFault(Message, int).
2307 * Message.cs, MessageImpl.cs, MessageBufferImpl.cs :
2308 handle IsFault correctly in each implementation.
2310 2006-10-04 Ankit Jain <jankit@novell.com>
2312 * HttpRequestChannel.cs (ProcessRequest): Read till the end.
2314 2006-10-04 Ankit Jain <jankit@novell.com>
2316 * HttpRequestChannel.cs (ProcessRequest): Temporary workaround for a bug
2317 in WebConnectionStream.
2319 2006-10-04 Ankit Jain <jankit@novell.com>
2321 * MessageHeaders.cs (To): Use GetHeader<string> till
2322 DataContractSerializer gets ISerializable support.
2323 * CustomBinding.cs (.ctor): Get scheme from TransportBindingElement.
2325 2006-10-04 Ankit Jain <jankit@novell.com>
2327 * ServiceHostParser.cs (Parse):
2328 (Split): Add some error checks.
2330 2006-10-03 Atsushi Enomoto <atsushi@ximian.com>
2332 * SslStreamSecurityBindingElement.cs : updated API to Sep. CTP.
2333 * StreamUpgradeAcceptor.cs : Fix AcceptUpgrade().
2334 * SslStreamSecurityUpgradeProvider.cs,
2335 SslStreamSecurityUpgradeAcceptor.cs :
2336 new files for Ssl upgrade provider implementation.
2337 * MessageSecurityUtility.cs :
2338 Create proper C14NTransform. Don't use enveloped signature
2339 transform but sign every significant bits. On securing messages
2340 use ChannelProtectionRequirements.
2341 * SecurityRequestContext.cs : pass ChannelProtectionRequirements to
2343 * MessageEncoder.cs : fix API (missing constraint).
2344 * WSSecurityMessageHeader.cs : it is MustUnderstand.
2345 * StreamUpgradeProvider.cs : API fix and implemented .ctor().
2346 * AsymmetricSecurityBindingElement.cs : default protection order is
2347 SignBeforeEncryptAndEncryptSignature.
2349 2006-09-29 Ankit Jain <jankit@novell.com>
2351 * SvcHttpHandlerFactory.cs (GetTypeFromSvc): Extract and move code to
2352 ServicHostParser and use that here.
2353 (PrivateBinPath): New.
2354 (GetTypeFromBin): New. Load assembly from PrivateBinPath.
2355 (RemovedCallback): Remove and close the SvcHttpHandler when its
2356 corresponding file (.svc) changes.
2357 * SvcHttpHandler.cs (Close): New. Close the ServiceHost.
2359 * ServiceHostParser.cs : New.
2360 * CachingCompiler.cs : New. Code extracted from
2361 System.Web.Compilation.CachingCompiler
2362 * CompilationException.cs : New. From System.Web.Compilation
2363 * HtmlizedException.cs : New. Likewise.
2365 2006-09-29 Atsushi Enomoto <atsushi@ximian.com>
2367 * MessageSecurityBindingSupport.cs : For client side, it is always
2368 InitiatorServiceModelSecurityTokenRequirement which should be
2369 created. Fixed wrong client encryption key acquisition.
2371 2006-09-29 Atsushi Enomoto <atsushi@ximian.com>
2373 * SecurityChannelListener.cs, SecurityRequestContext.cs,
2374 MessageSecurityBindingSupport.cs : made similar changes as factories
2375 to listener so that session channels and input channels would work.
2376 Added authenticator creation.
2378 2006-09-29 Atsushi Enomoto <atsushi@ximian.com>
2380 * Binding.cs : added missing members.
2382 2006-09-28 Atsushi Enomoto <atsushi@ximian.com>
2384 * SecurityRequestChannel.cs, SecurityOutputChannel.cs,
2385 MessageSecurityUtility.cs, MessageSecurityBindingSupport.cs :
2386 reduce code duplication between request and output channels.
2387 The common parts are now in MessageSecurityBindingSupport.
2388 Now reduced several arguments in SecureMessage() for client.
2390 2006-09-28 Atsushi Enomoto <atsushi@ximian.com>
2392 * ChannelFactoryBase.cs : implemented ValidateCreateChannel().
2394 2006-09-28 Atsushi Enomoto <atsushi@ximian.com>
2396 * AsymmetricSecurityBindingElement.cs,
2397 SecurityChannelListener.cs,
2398 SecurityRequestContext.cs,
2399 SymmetricSecurityBindingElement.cs,
2400 SecurityRequestChannel.cs,
2401 SecurityOutputChannel.cs,
2402 SecurityChannelFactory.cs,
2403 MessageSecurityBindingSupport.cs : 1) Refactoring.
2404 IMessageSecurityBindingSupport now becomes a class and contains
2405 all the members which resided in ISecurityChannelSource.
2406 Now it takes more constructor params.
2407 Made dependent changes on all sources above.
2409 2) Added SecurityTokenAuthenticator creation in
2410 SecurityRequestChannel (SecurityOutputChannel should do the same).
2412 2006-09-27 Atsushi Enomoto <atsushi@ximian.com>
2414 * SecurityRequestChannel.cs : ongoing improvements on conditional
2415 key creation. Actually there must be some part that creates an
2416 authenticator (WinFX does that).
2418 2006-09-27 Ankit Jain <jankit@novell.com>
2420 Add suport for handling .svc files.
2421 * SvcHttpHandlerFactory.cs: New.
2422 * SvcHttpHandler.cs: New.
2424 * HttpChannelListener.cs (PopulateChannel): Use AspNetReplyChannel if in
2425 asp.net environment.
2426 (OnOpen): Do nothing in asp.net environment.
2427 (OnClose): Likewise.
2428 * HttpReplyChannel.cs (HttpRequestContext): Move to ..
2429 * HttpRequestContext.cs: .. here.
2431 * AspNetReplyChannel.cs: New.
2432 * AspNetRequestContext.cs: New.
2434 2006-09-26 Atsushi Enomoto <atsushi@ximian.com>
2436 * MessageSecurityUtility.cs :
2437 Significantly rewritten decryption parts to respect ReferenceList
2438 to decrypt (so no workaround anymore).
2439 Now e:ReferenceList inside o:Security is treated as the referenced
2440 EncryptedType items are encrypted by 1) the derived key which is
2441 immediately in front of it, or 2) the default key (it is according
2442 to WS-SecureConversation section 9.1). Thus removed immediately
2443 previous hack to auto-fill wsu:Id attributes.
2445 On securing a message, generate correct Id and add DataReference
2446 to ReferenceList properly.
2448 2006-09-26 Atsushi Enomoto <atsushi@ximian.com>
2450 * WSSecurityMessageHeader.cs : handle ReferenceList. It is being
2453 2006-09-26 Atsushi Enomoto <atsushi@ximian.com>
2455 * WSSecurityMessageHeader.cs : handle DerivedKeyToken as a header content.
2456 Actually WSSecurityTokenSerializer should be able to consume it, but after
2457 spending a lot of time I still cannot successfully read it on WinFX.
2458 Skip ReferenceList for now.
2459 * MessageSecurityUtility.cs :
2460 Replaced some string literals with constants.
2461 Added some workaround for DerivedKeyToken retrieval.
2462 WinFX somehow sends incomplete ISO10126 padding which contains
2463 bigger number than the key size and is rejected by EncryptedXml,
2464 so added DecryptLax() which processes such ones in PaddingMode.None
2465 to workaround it (only for cross-connection between mono and winfx).
2466 Added some incomplete implicit wsu:Id processing.
2467 Don't try to replace SignedXml with EncryptedData. It is not added
2468 to the document tree.
2470 2006-09-25 Atsushi Enomoto <atsushi@ximian.com>
2472 * MessageSecurityUtility.cs : support message signature encryption. Some
2475 2006-09-22 Atsushi Enomoto <atsushi@ximian.com>
2477 * SecurityBindingElement.cs : implement Clone(). Remove some MonoTODOs.
2479 2006-09-22 Atsushi Enomoto <atsushi@ximian.com>
2481 * MessageSecurityUtility.cs : fix warnings.
2483 2006-09-22 Atsushi Enomoto <atsushi@ximian.com>
2485 * MessageSecurityUtility.cs : actually there would be more than one
2486 EncryptedData. Decrypt all.
2488 2006-09-22 Atsushi Enomoto <atsushi@ximian.com>
2490 * MessageSecurityUtility.cs : supply correct URIs in SecureMessage().
2491 Use ISO10126 padding mode (it is not required but in manner).
2493 2006-09-21 Atsushi Enomoto <atsushi@ximian.com>
2495 * MessageSecurityUtility.cs : now that EncryptedXml decryption bug is
2496 fixed, remove 16 bytes workaround (we still need encryption bugfix in
2497 that class to make it work fine with mono client).
2498 Removed buggy lines that reset decryption key to AES.
2499 Modified GetKey() argument to take EncryptedData/EncryptedKey element.
2500 * WSSecurityMessageHeader.cs :
2501 (SecurityTokenReferenceKeyInfo) support LoadXml.
2503 2006-09-20 Atsushi Enomoto <atsushi@ximian.com>
2505 * TransactionMessageProperty.cs : new file.
2507 2006-09-20 Atsushi Enomoto <atsushi@ximian.com>
2509 * ChannelPoolSettings.cs, OneWayBindingElement.cs : build fix, as
2510 gmcs happened to report wrong code.
2512 2006-09-19 Atsushi Enomoto <atsushi@ximian.com>
2514 * SecurityChannelFactory.cs, SecurityChannelListener.cs :
2515 .ctor() now requires ChannelProtectionRequirements which will be
2516 supplied via BindingParameterCollection.
2517 * SymmetricSecurityBindingElement.cs,
2518 AsymmetricSecurityBindingElement.cs : thus add
2519 ChannelProtectionRequirement parameter to factory/listener.
2520 * SecurityRequestChannel.cs : use recipient token requirement to
2521 create an encryption token. Thus differentiate the logic from
2522 signing (initiator) token.
2524 2006-09-19 Atsushi Enomoto <atsushi@ximian.com>
2526 * SymmetricSecurityChannelFactory.cs, SecurityChannelFactory.cs :
2527 renamed former to latter.
2528 * SymmetricSecurityChannelListener.cs, SecurityChannelListener.cs :
2531 2006-09-19 Atsushi Enomoto <atsushi@ximian.com>
2533 * MessageSecurityBindingSupport.cs : new internal types to commonize
2534 AsymmetricSecurityBindingElement and SymmetricSecurityBindingElement
2535 and thus make internal factory and listener reusable.
2536 * SymmetricSecurityChannelFactory.cs, SecurityRequestContext.cs,
2537 SecurityRequestChannel.cs, SecurityOutputChannel.cs,
2538 SymmetricSecurityChannelListener.cs : rewrote dependent parts on
2539 SymmetricSecurityBindingElement, using the new types above.
2540 * SymmetricSecurityBindingElement.cs :
2541 Use SymmetricMessageSecurityBindingSupport.
2542 * AsymmetricSecurityBindingElement.cs :
2543 thus implemented, using AsymmetricMessageSecurityBindingSupport.
2545 2006-09-19 Atsushi Enomoto <atsushi@ximian.com>
2547 * ChannelFactoryBase.cs : more RC1 update.
2549 2006-09-19 Atsushi Enomoto <atsushi@ximian.com>
2551 * MessageEncoder.cs, BinaryMessageEncoder.cs, MtomMessageEncoder.cs,
2552 TextMessageEncoder.cs : updated ReadMessage() API to RC1.
2553 * ChannelListenerBase.cs, ChannelListenerBase_1.cs,
2554 ChannelBase.cs : RC1 API updates.
2555 * MessageImpl.cs : implemented Properties.
2556 * HttpReplyChannel.cs : added HttpRequestMessageProperty support.
2558 2006-09-18 Ankit Jain <jankit@novell.com>
2560 * MessageHeaders.cs (MessageId):
2561 (RelatesTo): UniqueId is not serializable, serialize it as a string.
2563 2006-09-17 Atsushi Enomoto <atsushi@ximian.com>
2565 * ChannelParameterCollection.cs : new file.
2566 * LayeredOutputChannel.cs, SecurityOutputChannel.cs :
2567 new files for IOutputChannel implementation.
2568 * OneWayBindingElement.cs : hacky implementation.
2569 * SymmetricSecurityChannelFactory.cs : support IOutputChannel.
2570 * MessageSecurityUtility.cs : now create identifier from the security
2571 token and the token parameters which is added as an argument.
2572 * SecurityRequestContext.cs,
2573 SecurityRequestChannel.cs : SecureMessage() argument changes.
2574 Set MessageSecurityVersion (SecurityTokenVersion) to the token
2577 2006-09-17 Atsushi Enomoto <atsushi@ximian.com>
2579 * HttpRequestChannel.cs : close the HttpWebRequest.
2581 2006-09-17 Atsushi Enomoto <atsushi@ximian.com>
2583 * HttpRequestChannel.cs,
2584 HttpChannelFactory.cs : implement async request/reply.
2585 * HttpChannelFactory.cs :
2586 verify factory state when creating a channel.
2588 2006-09-17 Atsushi Enomoto <atsushi@ximian.com>
2590 * MessageEncoder.cs, TextMessageEncoder.cs, MtomMessageEncoder.cs,
2591 BinaryMessageEncoder.cs : added message version mismatch check.
2593 2006-09-15 Atsushi Enomoto <atsushi@ximian.com>
2595 * SymmetricSecurityChannelListener.cs, SecurityRequestContext.cs :
2596 Making incomplete changes to handle different tokens for encryption
2598 * SymmetricSecurityChannelFactory.cs, SecurityRequestChannel.cs :
2599 split channel implementation classes out to the latter file.
2600 * MessageSecurityUtility.cs : seems like there is
2601 TimeStampValidityDuration property, so use it (incomplete; a server
2602 needs another love).
2604 2006-09-12 Atsushi Enomoto <atsushi@ximian.com>
2606 * MessageSecurityUtility.cs, SymmetricSecurityChannelFactory.cs,
2607 SecurityRequestContext.cs : now that we have key identifier clause
2608 and working ResolveKeyIdentifierClause(), just create keys inside
2609 SecureMessage(). Add KeyInfo to the xmldsig.
2611 2006-09-12 Atsushi Enomoto <atsushi@ximian.com>
2613 * SymmetricSecurityChannelFactory.cs, SecurityRequestContext.cs :
2614 pass SecurityKeyIdentifierClause to SecureMessage().
2615 * SecurityBindingElement.cs : set X509ReferenceStyle as Thumbprint
2616 for IssuedToken binding element.
2617 * SymmetricSecurityChannelListener.cs : removed hack to just create
2618 X509 security token, and implemented correct token creation.
2619 * WSSecurityMessageHeader.cs : added new KeyInfoClause type that
2620 wraps SecurityTokenReference element.
2621 * MessageSecurityUtility.cs : use the above.
2623 2006-09-08 Atsushi Enomoto <atsushi@ximian.com>
2625 * MessageSecurityUtility.cs : raise MessageSecurityException when it
2626 could not find a security header.
2627 * SymmetricSecurityChannelFactory.cs : now it also supports
2628 IRequestSessionChannel. Extracted SecurityRequestChannel out from
2631 2006-09-08 Atsushi Enomoto <atsushi@ximian.com>
2633 * SecurityRequestContext.cs : moved securing message part to
2634 MessageSecurityUtility.cs.
2635 * MessageSecurityUtility.cs : the change above.
2636 use DateTime.Now for timestamp basis. Don't append signature to
2637 the document. Instead it is added to the header. Capture body
2638 content instead of the body itself.
2639 * SymmetricSecurityChannelFactory.cs : decrypt reply message to
2640 be processed by upper layers.
2642 2006-09-08 Atsushi Enomoto <atsushi@ximian.com>
2644 * MessageSecurityUtility.cs, WSSecurityMessageHeader.cs,
2645 SymmetricSecurityChannelListener.cs,
2646 SymmetricSecurityChannelFactory.cs, SecurityRequestContext.cs :
2647 more refactoring. Request serialization became much more conformant
2648 and add required header items.
2649 Security Token retrieval is needed to send it in the request.
2650 Fixed wrong key encryption.
2652 2006-09-07 Atsushi Enomoto <atsushi@ximian.com>
2654 * SecurityRequestContext.cs : the workaround was not functional.
2656 2006-09-07 Atsushi Enomoto <atsushi@ximian.com>
2658 * SecurityRequestContext.cs : some more refactoring. Use EncryptedXml
2659 API, especially ReplaceData(), instead of native crypto stuff.
2660 * WSSecurityMessageHeader.cs : handle dsig:Signature as well (for
2661 MessageProtectionOrder.SignBeforeEncrypt).
2663 2006-09-07 Atsushi Enomoto <atsushi@ximian.com>
2665 * SecurityRequestContext.cs : label should be combined of both
2666 the client's and the server's.
2668 2006-09-06 Atsushi Enomoto <atsushi@ximian.com>
2670 * SecurityRequestContext.cs : enable key derivation (though for now
2671 GenerateDerivedKey() is unimplemented). Create meaningful,
2672 decrypted request message to be consumed by the upper layer.
2674 2006-09-06 Atsushi Enomoto <atsushi@ximian.com>
2676 * SecurityRequestContext.cs : implement Close() and Reply().
2677 ongoing implementation of Reply(TimeSpan).
2678 * MessageSecurityUtility.cs : new file to collect utility methods.
2679 * SymmetricSecurityChannelFactory.cs : moved securing message code
2681 * SymmetricSecurityChannelListener.cs : tiny renaming.
2683 2006-09-06 Atsushi Enomoto <atsushi@ximian.com>
2685 * SecurityRequestContext.cs : security header is also stored.
2687 * WSSecurityMessageHeader.cs : read EncryptedKey and EncryptedData
2690 2006-09-06 Atsushi Enomoto <atsushi@ximian.com>
2692 * SymmetricSecurityChannelFactory.cs : tiny progress on securing
2695 2006-09-05 Atsushi Enomoto <atsushi@ximian.com>
2697 * SymmetricSecurityChannelFactory.cs : specify KeyUsage.Exchange
2698 so that it retrieves the security key in that manner.
2700 2006-09-05 Atsushi Enomoto <atsushi@ximian.com>
2702 * Binding.cs : MessageVersion is null when there is no
2703 MessageEncodingBindingElement.
2704 * Message.cs : null arg check.
2706 2006-09-05 Atsushi Enomoto <atsushi@ximian.com>
2708 * ChannelPoolSettings.cs, OneWayBindingElement.cs : new files.
2710 2006-09-04 Atsushi Enomoto <atsushi@ximian.com>
2712 * SymmetricSecurityChannelListener.cs, SecurityRequestContext.cs,
2713 LayeredReplyChannel.cs, LayeredCommunicationObject.cs,
2714 LayeredRequestChannel.cs : some refactoring.
2715 * SymmetricSecurityChannelFactory.cs :
2716 ongoing secure message creation implementation.
2718 2006-09-01 Atsushi Enomoto <atsushi@ximian.com>
2720 * SymmetricSecurityBindingElement.cs :
2721 pass specific ServiceCredentialsSecurityTokenManager type to
2722 SymmetricSecurityChannelListener as it needs ServiceCertificate.
2723 * SymmetricSecurityChannelListener.cs :
2724 get service certificate. It's a temporary hack.
2725 Move RequestContext code to below.
2726 * SecurityRequestContext.cs : new file.
2727 * WSSecurityMessageHeader.cs : implementing Read(), but to finish
2728 it I have to finish decryption of the incoming message.
2730 2006-08-31 Atsushi Enomoto <atsushi@ximian.com>
2732 * MessageImpl.cs : don't write attributes on the first body content
2733 element *on soap Body element*.
2734 * MessageBufferImpl.cs : don't throw ArgumentNullException.
2735 ObjectDisposedException is appropriate.
2736 * MessageHeader.cs : (RawMessageHeader) don't write element itself
2737 in OnWriteHeader*Contents*().
2739 2006-08-31 Atsushi Enomoto <atsushi@ximian.com>
2741 * WSSecurityMessageHeader.cs : new file.
2742 * SymmetricSecurityChannelFactory.cs :
2743 moved WSSecurityHeader and related types to the above.
2744 * SymmetricSecurityChannelListener.cs :
2745 reject SOAP-env-less message.
2747 2006-08-31 Atsushi Enomoto <atsushi@ximian.com>
2749 * SecurityChannelListener.cs, SymmetricSecurityChannelListener.cs :
2750 renamed former to latter.
2751 * SymmetricSecurityChannelFactory.cs :
2752 create requirements every time. It is also likely that I need
2753 another requirement instance to get service credentials here.
2755 2006-08-30 Atsushi Enomoto <atsushi@ximian.com>
2757 * SymmetricSecurityBindingElement.cs : make BuildChannelListener()
2758 similar to BuildChannelFactory() (set credentials, issuer binding
2760 * SecurityChannelListener.cs :
2761 more ongoing security support implementation.
2762 * SymmetricSecurityChannelFactory.cs :
2763 moved GetSecurityKey() to SymmetricSecurityRequestChannel.
2765 2006-08-29 Atsushi Enomoto <atsushi@ximian.com>
2767 * SecurityChannelListener.cs, SymmetricSecurityBindingElement.cs :
2768 Renamed SecurityChannelListener to SymmetricSecurityChannelListener.
2769 Implementation is underway.
2770 * LayeredReplyChannel.cs :
2771 like LayeredRequestChannel, use ChannelListenerBase to provide
2774 2006-08-29 Atsushi Enomoto <atsushi@ximian.com>
2776 * MessageHeader.cs : added another implementation type that uses
2777 XmlElement, for buffering purpose.
2778 * MessageImpl.cs : Header item types are user-driven by
2779 MessageHeader.GetHeader<T>(int), so at storing phase just store
2780 nodes as XmlElement.
2781 * MessageHeaders.cs : avoid dumping XmlNode to string to create
2784 2006-08-28 Atsushi Enomoto <atsushi@ximian.com>
2786 * SymmetricSecurityBindingElement.cs : find ClientCredentials from
2787 BindingParameterCollection, not from binding element properties.
2789 2006-08-28 Atsushi Enomoto <atsushi@ximian.com>
2791 * SecurityChannelFactory.cs, SymmetricSecurityChannelFactory.cs :
2792 renamed former to latter.
2794 2006-08-25 Atsushi Enomoto <atsushi@ximian.com>
2796 * SecurityBindingElement.cs : SetIssuerBindingContext should also
2797 work for SslSecurityTokenParameters.
2799 2006-08-24 Atsushi Enomoto <atsushi@ximian.com>
2801 * SecurityBindingElement.cs :
2802 Added SetIssuerBindingContextIfRequired().
2803 * SecurityChannelFactory.cs :
2804 Changed .ctor() arg again, just to receive binding element.
2805 * SymmetricSecurityBindingElement.cs :
2806 Call SetIssuerBindingContextIfRequired() in BuildChannelFactory().
2807 SymmetricSecurityChannelFactory .ctor() arg changes.
2808 "ProtectionTokenParameters" is not passed now.
2810 2006-08-23 Atsushi Enomoto <atsushi@ximian.com>
2812 * SymmetricSecurityBindingElement.cs : requirements should be
2813 filled at InitializeSecurityTokenParameters as long as possible.
2814 SymmetricSecurityChannelFactory<T> now does not receive
2815 requirements (it now creates one inside it) at .ctor().
2816 * SecurityChannelFactory.cs : remove requirement argument.
2818 2006-08-23 Atsushi Enomoto <atsushi@ximian.com>
2820 * SymmetricSecurityBindingElement.cs : implemented copy constructor.
2822 2006-08-22 Atsushi Enomoto <atsushi@ximian.com>
2824 * SymmetricSecurityBindingElement.cs :
2825 MessageSecurityVersion property is of type SecurityTokenVersion.
2826 * SecurityBindingElement.cs :
2827 Implemented CreateSecureConversationBindingElement().
2828 For CreateIssuedTokenBindingElement(), ProtectionTokenParameters is
2829 the argument IssuedSecurityTokenParameters itself.
2831 2006-08-22 Atsushi Enomoto <atsushi@ximian.com>
2833 * SymmetricSecurityBindingElement.cs :
2834 CreateSecurityTokenManager() can be directly used now.
2835 Use CallInitializeSecurityTokenRequirement() to fill requirement
2838 2006-08-16 Atsushi Enomoto <atsushi@ximian.com>
2840 * ChannelFactoryBase.cs : GetProperty() is virtual.
2842 2006-08-14 Atsushi Enomoto <atsushi@ximian.com>
2844 * SymmetricSecurityBindingElement.cs : in BuildChannelFactory(),
2845 create token manager, token parameters and token requirements,
2846 and fill some requirements.
2847 * TransportBindingElement.cs, HttpTransportBindingElement.cs,
2848 TextMessageEncodingBindingElement.cs : workaround to not throw NIE.
2849 * BindingContext.cs : implemented RemainingBindingElements.
2850 kill "no remaining binding element" error in GetInnerProperty()
2851 * SecurityChannelFactory.cs : now it became
2852 SymmetricSecurityChannelFactory, thus soon to be renamed.
2853 Several ongoing actual security resolution is on.
2855 2006-08-11 Atsushi Enomoto <atsushi@ximian.com>
2857 * CommunicationObject.cs :
2858 add GetCommunicationObjectType() and use it.
2859 * ChannelFactoryBase.cs, ChannelListenerBase_1.cs :
2860 use ThrowIfDisposedOrNotOpen().
2861 * LayeredCommunicationObject.cs : have similar ThrowIf...() methods
2862 to CommunicationObject. Make it IDisposable.
2863 * LayeredRequestChannel.cs : use above.
2864 * SecurityChannelFactory.cs : removed state check as it is done at
2867 2006-08-10 Atsushi Enomoto <atsushi@ximian.com>
2869 * SecurityBindingElement.cs : (CanBuildChannelFactory and
2870 CanBuildChannelListener) directly dispatch to BindingContext.
2871 * SymmetricSecurityBindingElement.cs : require protection token
2872 parameters before building a channel or a listener.
2873 * ChannelFactoryBase.cs : raise an error when a channel is being
2874 created without opening the factory.
2875 * ChannelListenerBase_1.cs : ditto for the listener.
2876 * SecurityChannelFactory.cs : before sending a request, it must be
2879 2006-08-07 Atsushi Enomoto <atsushi@ximian.com>
2881 * MessageBufferImpl.cs : initialize fields.
2882 workaround BufferSize just to return 0.
2883 * MessageImpl.cs : for BodyWriter, don't use DefaultMessageBuffer
2884 which does not support multi time write.
2885 * Message.cs : implemented State.
2887 2006-08-07 Atsushi Enomoto <atsushi@ximian.com>
2889 * Message.cs : OnGetBodyAttribute() cannot return anything unless it
2890 is consuming XmlReader.
2891 Implemented OnCreateBufferedCopy(), to return XPathMessageBuffer.
2892 * MessageBuffer.cs : implemented CreateNavigator().
2893 * MessageBufferImpl.cs : added XPathMessageBuffer class.
2895 I kinda know that MS heavily depends on binary XmlReader and may have
2896 XPathNavigator implementation based on the binary stuff, but at
2897 least for now we have almost no motivation to mimick it.
2899 2006-08-07 Atsushi Enomoto <atsushi@ximian.com>
2901 * SecurityChannelFactory.cs : a bit more of security header code.
2903 2006-08-04 Atsushi Enomoto <atsushi@ximian.com>
2905 * SymmetricSecurityBindingElement.cs :
2906 set default MessageProtectionOrder in every construction.
2908 2006-08-03 Atsushi Enomoto <atsushi@ximian.com>
2910 * LayeredRequestChannel.cs, SecurityChannelFactory.cs :
2911 changed to require ChannelFactoryBase to support default timeout.
2912 Made some methods non-virtual. Preparing code to add security
2913 headers (empty yet).
2914 * SecurityBindingElement.cs : implemented several factory methods
2915 that return SymmetricSecurityBindingElement.
2917 2006-08-02 Atsushi Enomoto <atsushi@ximian.com>
2919 * IStreamUpgradeBindingElement.cs,
2920 StreamUpgradeBindingElement.cs : renamed from former to latter.
2922 2006-08-02 Atsushi Enomoto <atsushi@ximian.com>
2924 * IStreamUpgradeBindingElement.cs : API update, soon to be renamed.
2926 2006-07-31 Ankit Jain <jankit@novell.com>
2928 * MessageHeaders.cs (From): Use Constants.WSA1
2929 (MessageId): Implement the same pattern as other properties (From etc).
2931 2006-07-28 Atsushi Enomoto <atsushi@ximian.com>
2933 * LocalClientSecuritySettings.cs : initialize IdentityVerifier as well.
2934 * SecurityBindingElement.cs : some cosmetic changes.
2936 2006-07-28 Atsushi Enomoto <atsushi@ximian.com>
2938 * SecurityBindingElement.cs : LocalClientSettings and
2939 LocalServiceSettings returns an instance for each.
2940 * LocalClientSecuritySettings.cs : initialized fields.
2942 2006-07-28 Atsushi Enomoto <atsushi@ximian.com>
2944 * LocalClientSecuritySettings.cs : moved from S.SM.Description, and
2945 kinda implemented Clone() just with MemberwiseClone().
2947 2006-07-27 Ankit Jain <jankit@novell.com>
2949 * MessageHeaders.cs (set_To): Use Uri.AbsoluteUri .
2950 * MessageHeader.cs (knownTypes): New. Known type array containing
2952 (CreateHeader): Use knownTypes with the DataContractSerializer .ctor
2954 2006-07-21 Atsushi Enomoto <atsushi@ximian.com>
2956 * LayeredRequestChannel.cs, LayeredReplyChannel.cs,
2957 LayeredCommunicationObject.cs,
2958 SecurityChannelFactory.cs, SecurityChannelListener.cs :
2959 new files to support security channels, though right now they
2960 just pass inner channels through.
2961 * SymmetricSecurityBindingElement.cs : use above.
2963 2006-07-21 Atsushi Enomoto <atsushi@ximian.com>
2965 * AsymmetricSecurityBindingElement.cs,
2966 SymmetricSecurityBindingElement.cs :
2967 Default SecurityTokenParameters is null.
2969 2006-07-20 Atsushi Enomoto <atsushi@ximian.com>
2971 * AsymmetricSecurityBindingElement.cs : remove NotImpl for now.
2973 2006-07-20 Atsushi Enomoto <atsushi@ximian.com>
2975 * Message.cs : When EnvelopeVersion is None, don't write SOAP
2977 * MessageHeader.cs : don't write headers when EnvelopeVersion is None.
2978 * MessageHeaders.cs : When EnvelopeVersion is None, don't output
2979 headers. When AddressingVersion is None, don't output addressing
2980 headers as well, except for Action which is still needed by
2983 2006-07-20 Atsushi Enomoto <atsushi@ximian.com>
2985 * MessageHeaders.cs : changed specific properties to find it from
2986 headers as Action property does (local variables won't be set by
2987 setter). Cache serializers. Check null serializer arguments.
2988 For EndpointAddress, GetHeader<T>() shouldn't use serializer.
2990 2006-07-19 Atsushi Enomoto <atsushi@ximian.com>
2992 * MessageHeader.cs : WriteTo() should treat EndpointAddress to not
2993 use XmlObjectSerializer (since it is not data contract type).
2995 2006-07-18 Atsushi Enomoto <atsushi@ximian.com>
2997 * MessageImpl.cs : Improved ReadHeaders().
2998 For certain header items, use EndpointAddress.ReadFrom().
3000 2006-07-18 Atsushi Enomoto <atsushi@ximian.com>
3002 * AsymmetricSecurityBindingElement.cs :
3003 it is not ISecurityCapabilities anymore.
3005 2006-07-18 Atsushi Enomoto <atsushi@ximian.com>
3007 * MessageVersion.cs : added None.
3009 2006-07-14 Atsushi Enomoto <atsushi@ximian.com>
3011 * Message.cs : GetReaderAtBodyContents() implementation using
3014 2006-07-13 Atsushi Enomoto <atsushi@ximian.com>
3016 * Message.cs : CreateMessage(version,action,xmlReader) incorrectly
3017 used MessageVersion.Default.
3019 2006-07-12 Duncan Mak <duncan@novell.com>
3021 * MessageBuffer.cs (MessageContentType): Return
3022 "application/soap+msbin1".
3024 * MessageImpl.cs (EmptyMessage.OnCreateBufferedCopy):
3025 (SimpleMessage.OnCreateBufferedCopy):
3026 (XmlReaderMessage.OnCreateBufferedCopy): Hook up with the new
3027 MessageBuffer implementations.
3029 * MessageBufferImpl.cs: Concrete implmentations for MessageBuffer.
3030 (DefaultMessageBuffer): Used by EmptyMessage and SimpleMessage.
3031 (XmlReaderMessageBuffer): Used by XmlReaderMessage.
3033 2006-07-12 Atsushi Enomoto <atsushi@ximian.com>
3035 * MessageImpl.cs : Action should be added in request messages. Omit
3036 it only in reply message, thus moved to dispatcher logic.
3038 2006-07-12 Ankit Jain <jankit@novell.com>
3040 * HttpRequestChannel.cs (HttpRequestChannel.Request): Workaround for a
3041 bug in WebConnectionStream.
3042 * MessageHeaders.cs (MessageHeaders.From):
3043 (MessageHeaders.ReplyTo):
3044 (MessageHeaders.To): Add the corresponding MessageHeader on set.
3046 2006-07-11 Atsushi Enomoto <atsushi@ximian.com>
3048 * MessageImpl.cs : when AddressingVersion is None (e.g. POX), don't
3049 add SOAP Action to the response at any time.
3051 2006-07-10 Atsushi Enomoto <atsushi@ximian.com>
3053 * SymmetricSecurityBindingElement.cs,
3054 SecurityBindingElement.cs : They are not ISecurityCapabilities now.
3055 Implemented .ctor() and some properties.
3057 2006-07-10 Atsushi Enomoto <atsushi@ximian.com>
3059 * TransactionFlowBindingElement.cs : new file.
3060 * HttpTransportBindingElement.cs : added missing KeepAliveEnabled.
3062 2006-07-06 Atsushi Enomoto <atsushi@ximian.com>
3065 DefaultAction vanished. CreateFault() now takes bufferSize arg.
3066 * MessageHeaders.cs : ArgumentException -> MessageHeaderException.
3067 * AddressingVersion.cs : added None. Equals() and GetHashCode()
3068 vanished (there is anyways no way to instantiate this type).
3069 * MessageVersion.cs : added Soap11 and Soap12.
3070 * TextMessageEncoder.cs : silly quotation mark wrapper disappeared
3071 in June CTP. goodie.
3073 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
3075 * MtomMessageEncoder.cs, BinaryMessageEncoder.cs, Message.cs :
3076 removed some vanished CreateMessage() overloads.
3078 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
3080 * CustomBinding.cs, HttpsTransportBindingElement.cs,
3081 HttpTransportBindingElement.cs :
3082 They are not ISecurityCapabilities anymore.
3083 Modified code to match June CTP behavior.
3085 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
3087 * StreamSecurityUpgradeProvider.cs : Identity -> EndpointIdentity.
3089 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
3091 * EmptyFaultException.cs : removed unused code.
3092 * IRequestContext.cs, RequestContext.cs : renamed former to latter.
3094 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
3096 * LayeredChannelFactory.cs : removed obsolete class.
3097 * ChannelFactoryBase.cs, HttpChannelFactory.cs,
3098 ChannelListenerBase.cs, HttpChannelListener.cs,
3099 HttpReplyChannel.cs, ChannelManagerBase.cs :
3100 all those changes were brought by ChannelManagerBase changes.
3102 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
3104 * ReplyChannelBase.cs, HttpChannelFactory.cs, ChannelBase.cs
3105 CommunicationObject.cs, HttpChannelListener.cs,
3106 ChannelFactoryBase.cs :
3107 CommunicationObject abstract changes brought this madness.
3109 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
3111 * BindingContext.cs : listenUri address parameters could be null in
3114 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
3116 * IRequestContext.cs :
3117 Now it became a class. File renaming will follow soon.
3118 * IChannelFactory.cs, IInputChannel.cs, IReplyChannel.cs,
3119 IDuplexChannel.cs, IDuplexSessionChannel.cs,
3120 IOutputChannel.cs, IOutputSessionChannel.cs,
3121 IRequestChannel.cs, IRequestSessionChannel.cs :
3122 They are not IDisposable anymore.
3123 For IReplyChannel, IRequestContext -> RequestContext.
3124 * IChannelListener.cs : removed Identity. Added GetProperty().
3125 * ChannelListenerBase.cs, ChannelListenerBase.cs,
3126 ReplyChannelBase.cs, HttpReplyChannel.cs :
3127 Several members disappeared, and dependent changes.
3128 * HttpTransportBindingElement.cs,
3129 HttpChannelListener.cs, :
3130 ChannelListenerBase.SharedChannelListener vanished.
3132 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
3134 * MessageEncodingBindingElement.cs
3135 MtomMessageEncodingBindingElement.cs,
3136 TextMessageEncodingBindingElement.cs,
3137 BinaryMessageEncodingBindingElement.cs :
3138 June CTP updates: AddressingVersion -> MessageVersion.
3139 * Binding.cs : June CTP. MessageVersion is added.
3140 * ChannelBase.cs, BindingContext.cs, IChannel.cs
3141 ChannelListenerBase_1.cs,
3142 ChannelListenerBase.cs, IChannelListener.cs,
3144 ChannelFactoryBase.cs, ChannelManagerBase.cs :
3145 June CTP. Several interface changes.
3146 * HttpTransportBindingElement.cs : June CTP. HttpMappingMode is gone.
3147 * IChannelManager.cs, LayeredChannelListener.cs,
3148 GenericWrapperChannelFactory.cs,
3149 GenericWrapperChannelListener.cs : They are not used anymore.
3151 2006-07-04 Atsushi Enomoto <atsushi@ximian.com>
3153 * MtomMessageEncoder.cs, BinaryMessageEncoder.cs :
3154 sync fix with June CTP API updates.
3156 2006-07-03 Ankit Jain <jankit@novell.com>
3158 * MessageEncodingBindingElementConverter.cs:
3159 * StandardBindingConverter.cs:
3160 * TransportBindingElementConverter.cs:
3161 * TransactionFlowBindingElementConverter.cs:
3162 * ReliableSessionBindingElementConverter.cs:
3163 * SecurityBindingElementConverter.cs:
3164 Rename *Converter.cs to *Importer.cs
3166 * TransferMode.cs: Move to System.ServiceModel
3168 2006-06-22 Atsushi Enomoto <atsushi@ximian.com>
3170 * CommunicationObject.cs : make sure to change State before
3171 OnClosing/OnClosed/OnOpening/OnOpened when they are overriden.
3173 2006-06-20 Atsushi Enomoto <atsushi@ximian.com>
3175 * Message.cs : output WSAddressing xmlns only when Action is
3176 specified (To should be affected, but seems like it is ignored).
3178 2006-06-20 Atsushi Enomoto <atsushi@ximian.com>
3180 * MessageImpl.cs : don't set Action when it is null.
3182 2006-06-12 Ankit Jain <jankit@novell.com>
3184 * TransportBindingElementConverter.cs (ImportEndpoint): Implement.
3186 2006-05-29 Atsushi Enomoto <atsushi@ximian.com>
3188 * SecurityBindingElement.cs, SecurityBindingElementConverter.cs :
3189 some updated API fixes.
3191 2006-05-29 Atsushi Enomoto <atsushi@ximian.com>
3193 * EnvelopeVersion.cs : moved back to S.SM.
3195 2006-05-29 Atsushi Enomoto <atsushi@ximian.com>
3197 * IBindingManualAddressing.cs : vanished in beta2.
3198 * HostedTransportConfiguration.cs, EnvelopeVersion.cs,
3199 LocalClientSecuritySettings.cs, LocalServiceSecuritySettings.cs :
3201 * SecurityBindingElement.cs :
3202 SecurityStandardsManager -> SecurityTokenSerializer.
3204 2006-05-29 Atsushi Enomoto <atsushi@ximian.com>
3206 * XmlSerializerBodyWriter.cs : new file to handle
3207 TypedMessageConverter.ToMessage().
3209 2006-04-26 Ankit Jain <jankit@novell.com>
3211 * TransportBindingElementConverter.cs (BeforeImport): Remove
3212 NotImplementedException.
3213 (ImportContract): Likewise.
3214 * CustomBinding.cs (.ctor): Use scheme from the binding parameter.
3216 2006-04-14 Atsushi Enomoto <atsushi@ximian.com>
3218 * HttpRequestChannel.cs, HttpChannelFactory.cs : message encoder
3219 being used was not reflecting that of Binding elements.
3221 2006-04-07 Atsushi Enomoto <atsushi@ximian.com>
3223 * HttpReplyChannel.cs : when SOAP action is not set as a header item,
3224 just assume that it is in the message.
3226 2006-04-06 Atsushi Enomoto <atsushi@ximian.com>
3228 * HttpReplyChannel.cs : actually HTTP header item might be null.
3230 2006-04-06 Atsushi Enomoto <atsushi@ximian.com>
3232 * HttpReplyChannel.cs : under SOAP 1.1 SOAP Action is sent as HTTP
3235 2006-04-06 Atsushi Enomoto <atsushi@ximian.com>
3237 * TextMessageEncoder.cs : for SOAP 1.1 content type is text/xml.
3239 2006-04-06 Atsushi Enomoto <atsushi@ximian.com>
3241 * MessageFault.cs : Fixed SOAP12 reason output.
3243 2006-04-05 Atsushi Enomoto <atsushi@ximian.com>
3245 * HttpReplyChannel.cs : no need to set response ContentEncoding since
3246 MessageEncoder.ContentType explicitly contains encoding.
3247 * AddressingVersion.cs : added ActionNotSupported property. Not sure
3248 if it is SOAP version dependent.
3250 2006-03-23 Atsushi Enomoto <atsushi@ximian.com>
3252 * HttpReplyChannel.cs : actually I could just workaround bug #77816.
3254 2006-03-16 Atsushi Enomoto <atsushi@ximian.com>
3256 * HttpChannelFactory.cs BindingContext.cs
3257 HttpChannelListener.cs HttpTransportBindingElement.cs :
3258 Now BindingContext holds MessageEncoder, and non-custom
3259 channel factory/listener should use it.
3260 * MtomMessageEncodingBindingElement.cs
3261 TextMessageEncodingBindingElement.cs
3262 BinaryMessageEncodingBindingElement.cs : BuildChannelFactory()/
3263 -Listener() now sets internal BindingContext.MessageEncoder.
3264 Fixed some public API.
3266 2006-03-15 Atsushi Enomoto <atsushi@ximian.com>
3268 * BindingContext.cs : CanBuildChannelXXX() should not raise error
3269 for insufficient elements.
3270 * DispatchRuntime.cs : OperationDescription name is not action. So
3271 OperationSelector is created by name, not by action.
3272 * TextMessageEncodingBindingElement.cs : Feb. CTP API fixes.
3274 2006-03-14 Atsushi Enomoto <atsushi@ximian.com>
3276 * MessageFaultBodyWriter.cs
3277 XmlReaderBodyWriter.cs
3278 XmlObjectSerializerBodyWriter.cs : made internal.
3279 * SecurityBindingElement.cs
3280 AsymmetricSecurityBindingElement.cs
3281 SymmetricSecurityBindingElement.cs : API fixes.
3282 * TransportBindingElementConverter.cs : ditto.
3283 * TextMessageEncodingBindingElement.cs : added set_AddressingVersion.
3284 * WindowsStreamSecurityBindingElement.cs
3285 SslStreamSecurityBindingElement.cs
3286 TransportSecurityBindingElement.cs : new files.
3288 2006-03-14 Atsushi Enomoto <atsushi@ximian.com>
3290 * MessageImpl.cs : according to the W3C REC, mustUnderstand when
3291 reading can be any xs:boolean value.
3293 2006-03-14 Atsushi Enomoto <atsushi@ximian.com>
3295 * Message.cs MessageImpl.cs : more sorting out the role of each
3297 * MessageHeader.cs : use envelope namespace, not addressing namespace.
3299 2006-03-14 Atsushi Enomoto <atsushi@ximian.com>
3301 * Message.cs : don't write body contents if it is empty.
3302 Moved WriteStartElement(,"Header",) to OnWriteStartHeaders().
3303 * MessageImpl.cs : implemented XmlReaderMessage.OnWriteBodyContents().
3304 * TextMessageEncoder.cs : WriteMessage() should close XmlWriter.
3305 * HttpRequestChannel.cs : close request stream before GetResponse().
3307 2006-03-13 Atsushi Enomoto <atsushi@ximian.com>
3309 * TextMessageEncoderFactory.cs
3310 TextMessageEncoder.cs : encoder does not hold reference to the
3311 factory anymore. Use MessageVersion property in CreateMssage().
3312 * HttpChannelListener.cs : now it holds message encoder.
3313 * HttpReplyChannel.cs : now it uses listener's shared message encoder.
3314 * MessageImpl.cs : header is optional.
3315 * EnvelopeVersion.cs : namespace URI is missing.
3317 2006-03-10 Atsushi Enomoto <atsushi@ximian.com>
3319 * CustomBinding.cs : removed Initialize().
3320 * Message.cs : renamed ForwardingMessage -> XmlReaderMessage.
3321 * MessageImpl.cs : renamed ForwardingMessage to XmlReaderMessage (used
3322 by Message.CreateMessage(MessageVersion,XmlReader,int) and
3323 implemented Headers, IsEmpty and GetReaderAtBodyContents().
3325 2006-03-08 Atsushi Enomoto <atsushi@ximian.com>
3327 * MessageHeaders.cs : implemented GetReaderAtHeader() and Action (it
3328 could be also added by Add() method and could be reset by Remove()).
3329 * MessageImpl.cs : implemented more. As noted above, Now we don't
3330 have to add Action header explicitly.
3331 * MessageHeader.cs : recovered Writer methods and ToString() from
3332 commented old version. Use prefixes for writing.
3333 Use WriteObjectContent() rather than WriteObject() (it needs
3334 DataContractSerializer fix btw).
3336 2006-03-08 Atsushi Enomoto <atsushi@ximian.com>
3338 * MessageHeader.cs : added missing IsReferenceParameter.
3339 * MessageHeaderInfo.cs : added missing IsReferenceParameter.
3340 * MessageHeaders.cs : avoid NullRef when actors is null.
3341 * MessageImpl.cs : (MessageImplBase) add Action header in .ctor().
3342 (ForwardingMessage) reader consumer is being added (not done).
3343 * MtomMessageEncodingBindingElement.cs : simply use Mtom factory.
3344 * MtomMessageEncoder.cs : updated ContentType value to Feb. CTP.
3345 * HttpRequestChannel.cs : this channel automatically call Open()
3346 when Request() is called. Set content length for request.
3347 Use MessageEncoder's ContentType to also handle charset.
3349 2006-03-07 Atsushi Enomoto <atsushi@ximian.com>
3351 * MessageImpl.cs : make them internal.
3352 * HttpReplyChannel.cs : set HttpListenerResponse properties correctly.
3354 2006-03-07 Atsushi Enomoto <atsushi@ximian.com>
3356 * ChannelManagerBase.cs : cleanup MonoTODO and unused field.
3357 * HttpChannelListener.cs : removed commented line.
3358 * RequestChannelBase.cs : new base class for request channel classes.
3359 * ChannelListenerBase.cs : OnEndClose() is rather NotImplemented yet.
3360 * HttpReplyChannel.cs : WaitHandle accepts limited timeout value.
3361 * Message.cs : default IsEmpty and IsFault false by default.
3362 * LayeredChannelListener.cs : removed Uri (no chance to set).
3363 * ChannelBase.cs : reimplemented timeout properties.
3364 * HttpRequestChannel.cs : now it is mostly based on
3365 RequestChannelBase. Some more attempt to implement Request().
3367 2006-03-07 Atsushi Enomoto <atsushi@ximian.com>
3369 * Binding.cs CustomBinding.cs : removed OnApplyConfiguration() and
3370 OnInitialize(). Added more BuildChannelListener() overloads.
3372 2006-03-06 Atsushi Enomoto <atsushi@ximian.com>
3374 * Binding.cs : added some more missing members especially to support
3376 * HttpChannelListener.cs : Uri should not be null.
3377 * HttpTransportBindingElement.cs : implemented
3378 CanBuildChannelFactory() and CanBuildChannelListener().
3379 * ServiceHostBase.cs : make Initialize() practically work at OnOpen().
3381 2006-03-06 Atsushi Enomoto <atsushi@ximian.com>
3383 * Binding.cs : updated default namespace property value to Feb. CTP.
3385 2006-03-03 Atsushi Enomoto <atsushi@ximian.com>
3387 * AddressHeader.cs : avoid null reference when value is null.
3388 * BindingContext.cs : check null ListenUri args.
3390 2006-03-03 Atsushi Enomoto <atsushi@ximian.com>
3392 * MessageFault.cs : Fixed default action name. Null arg check.
3394 2006-03-03 Atsushi Enomoto <atsushi@ximian.com>
3396 * BindingElement.cs : Dequeue elements in BindingContext directly.
3397 * BindingContext.cs : Added GetProperty<T>().
3398 * GenericWrapperChannelFactory.cs GenericWrapperChannelListener.cs :
3399 Now we don't need these extra classes, so marked as deprecated.
3401 2006-03-03 Atsushi Enomoto <atsushi@ximian.com>
3403 * Binding.cs : null arg check.
3404 * AddressingVersion.cs : fixed constants to pass the tests.
3405 * BindingElement.cs : tiny meessage fix.
3407 2006-03-02 Atsushi Enomoto <atsushi@ximian.com>
3409 * MessageEncodingBindingElement.cs
3410 BinaryMessageEncodingBindingElement.cs
3411 TextMessageEncodingBindingElement.cs
3412 MtomMessageEncodingBindingElement.cs
3413 MessageEncodingBindingElementConverter.cs : several API fixes.
3414 * BindingElement.cs : now if we use generic wrapper it causes
3415 infinite loop, so for now replace it with most-possible-but-
3418 2006-03-02 Atsushi Enomoto <atsushi@ximian.com>
3420 (back to normal "record-ChangeLogs" mode after the big API change mess)
3421 * HttpTransportBindingElement.cs : fixed minor API differences.
3423 2006-02-23 Atsushi Enomoto <atsushi@ximian.com>
3425 * AsymmetricSecurityBindingElement.cs SecurityBindingElement.cs
3426 SymmetricSecurityBindingElement.cs :
3427 Dependent fixes for System.IdentityModel reorgainzation.
3429 2006-02-23 Atsushi Enomoto <atsushi@ximian.com>
3431 * InputChannelBase.cs.notused IInputSession.cs IOutputSession.cs
3432 IProxyFormatter.cs WSHttpBindingBase.cs
3433 PnrpPeerResolverBindingElement.cs IMessageHeaderInfo.cs
3434 MessageInterceptorEventArgs.cs WSHttpBinding.cs
3435 WSFederationBinding.cs ISessionChannel.cs
3436 CompositeDuplexBindingElement.cs MessageVersion.cs
3437 MessageHeader.cs IRequestSessionChannel.cs
3438 BindingElementCollection.cs IReplySessionChannel.cs
3439 MessageProperties.cs IDuplexClientChannel.cs
3440 IInputSessionChannel.cs MessageImpl.cs IDuplexSessionChannel.cs
3441 TcpTransportBindingElement.cs EmptyFaultException.cs
3442 IBindingRuntimePreferences.cs AddressHeaderCollection.cs
3443 IStubFormatter.cs AsymmetricSecurityBindingElement.cs
3444 ConnectionOrientedTransportBindingElement.cs
3445 IProxyOperationSelector.cs MessageBuffer.cs IChannel.cs
3446 PeerResolverBindingElement.cs Message.cs
3447 HttpsTransportBindingElement.cs BindingElement.cs
3448 NamedPipetransportBindingElement.cs IBindingManualAddressing.cs
3449 MessageFaultBodyWriter.cs IReplyChannel.cs
3450 IBindingCapabilities.cs AddressHeader.cs IInputChannel.cs
3451 IMessageProperty.cs IOutputChannel.cs NetPeerTcpBinding.cs
3452 IRequestContext.cs IInputSessionShutdown.cs
3453 SecurityBindingElement.cs PeerTransportBindingElement.cs
3454 IDuplexSession.cs IChannelInitializer.cs
3455 IProxyMessageInspector.cs IChannelListener.cs NetTcpBinding.cs
3456 AddressingVersion.cs FaultException.cs
3457 IRequestChannel.cs MtomMessageEncodingBindingElement.cs
3458 TransportBindingElement.cs BinaryMessageEncodingBindingElement.cs
3459 TextMessageEncodingBindingElement.cs IChannelFactory.cs Binding.cs
3460 ITransportBindingElement.cs IChannelManager.cs MessageFault.cs
3461 MessageHeaders.cs IStubMessageInspector.cs UnderstoodHeaders.cs
3462 BindingParameterCollection.cs IInstanceProvider.cs
3463 WSDualHttpBinding.cs ISession.cs IErrorHandler.cs
3464 MessageEncodingBindingElement.cs HttpTransportBindingElement.cs
3465 IDuplexChannel.cs CustomBinding.cs IOutputSessionChannel.cs
3466 MessageContractAttribute.cs SymmetricSecurityBindingElement.cs :
3467 moved from System.ServiceModel due to the API changes.
3469 2006-02-23 Atsushi Enomoto <atsushi@ximian.com>
3471 * ChannelFactoryBase.cs ChannelListenerBase.cs HttpChannelFactory.cs
3472 HttpChannelListener.cs HttpRequestChannel.cs
3473 LayeredChannelListener.cs PeerMessagePropagationFilter.cs
3474 PeerNode.cs ReplyChannelBase.cs :
3475 Feb. CTP API changes - chapter 1.
3477 2006-02-15 Atsushi Enomoto <atsushi@ximian.com>
3479 * ChannelBase.cs : OnOpen() and OnClosed() do nothing.
3480 * ReplyChannelBase.cs : now it is based on ChannelBase.
3481 * ChannelListenerBase_1.cs : use DefaultCommunicationTimeouts.Instance
3482 and check null argument in .ctor().
3483 * HttpReplyChannel.cs : several changes.
3484 Non-async members are mostly implemented.
3485 * HttpChannelListener.cs : no need to receive
3486 IDefaultCommunicationTimeouts.
3487 * HttpRequestChannel.cs : maxSizeOfHeaders is used in MessageHeaders
3488 to allocate buffer array and int.MaxValue causes OutOfMemory.
3490 2006-02-15 Atsushi Enomoto <atsushi@ximian.com>
3492 * ClientFramingDecoderState.cs : added missing enum.
3493 * HttpRequestMessageProperty.cs HttpResponseMessageProperty.cs :
3495 * ChannelBase.cs, LayeredChannelListener.cs : tiny API fixes.
3497 2006-02-15 Atsushi Enomoto <atsushi@ximian.com>
3499 * HttpChannelListener.cs : Added GetChannels() and OnClose().
3500 AcceptChannel() has some code now but it needs more love.
3502 2006-02-14 Atsushi Enomoto <atsushi@ximian.com>
3504 * CommunicationObject.cs : Close() does not call Begin/EndClose().
3505 * ChannelManagerBase.cs : implemented AbortChannel and CloseChannel.
3506 * ChannelListenerBase.cs : implemented OnAbort and OnClose.
3508 2006-02-10 Atsushi Enomoto <atsushi@ximian.com>
3510 * HttpRequestChannel.cs : close the streams.
3512 HttpChannelListener.cs : renamed from former to latter.
3514 2006-02-09 Atsushi Enomoto <atsushi@ximian.com>
3516 * ReplyChannelBase.cs : new file for IReplyChannel implementations.
3517 * HttpReplyChannel.cs : new file for HTTP IReplyChannel.
3518 * HttpListenerFactory.cs : removed obsolete file.
3519 * HttpListener.cs : hacky WaitForChannel and AcceptChannel.
3520 * ChannelListenerBase_1.cs : implemented virtual stuff.
3521 * CommunicationObject.cs : Open() should not call BeginOpen() and
3522 EndOpen(). Instead, invoke events individually.
3523 * ChannelListenerBase.cs : its Open() is WaitForChannel().
3525 2006-02-08 Atsushi Enomoto <atsushi@ximian.com>
3527 * HttpRequestChannel.cs : call Flush() after serializing message
3530 2006-02-08 Atsushi Enomoto <atsushi@ximian.com>
3532 * HttpRequestChannel.cs : implemented pretty hacky Request().
3534 2006-02-02 Atsushi Enomoto <atsushi@ximian.com>
3536 * HttpRequestChannel.cs : Manager is HttpChannelFactory.
3538 2006-02-01 Atsushi Enomoto <atsushi@ximian.com>
3540 * ChannelFactoryBase.cs : removed some NotImplementedException for
3541 further internal implementation.
3543 2006-01-26 Atsushi Enomoto <atsushi@ximian.com>
3545 * HttpRequestChannel.cs : new file. mostly not implemented.
3546 * HttpChannelFactory.cs : Implemented CanCreateChannel().
3547 Partly implemented CreateChannel().
3549 2006-01-26 Atsushi Enomoto <atsushi@ximian.com>
3551 * HttpChannelFactory.cs : (.ctor())
3552 Don't take ChannelBuildContext.
3554 2005-11-21 Atsushi Enomoto <atsushi@ximian.com>
3556 * StreamSecurityUpgradeInitiator.cs PeerMessageOrigination.cs
3557 ChannelBase.cs StreamSecurityUpgradeAcceptor.cs
3558 PeerMessagePropagation.cs : updated to Nov. CTP.
3560 2005-11-21 Atsushi Enomoto <atsushi@ximian.com>
3562 * ChannelListenerBase.cs, ChannelManagerBase.cs,
3563 ChannelListenerBase_1.cs, LayeredChannelListener.cs,
3564 StreamSecurityUpgradeAcceptor.cs,
3565 StreamSecurityUpgradeInitiator.cs :
3566 Updated to Nov. CTP API.
3568 2005-11-21 Atsushi Enomoto <atsushi@ximian.com>
3570 Now we can rename ListenerFactoryBase.cs to ChannelListenerBase.cs.
3572 2005-11-21 Atsushi Enomoto <atsushi@ximian.com>
3574 renamed ChannelListenerBase.cs to ChannelListenerBase_1.cs.
3576 2005-11-21 Atsushi Enomoto <atsushi@ximian.com>
3578 * ChannelBase.cs : tiny filename fix.
3579 * ChannelListenerBase.cs : added more .ctor()s.
3581 2005-11-21 Atsushi Enomoto <atsushi@ximian.com>
3583 * HttpListenerFactory.cs LayeredChannelListener.cs HttpListener.cs
3584 ListenerFactoryBase.cs ChannelListenerBase.cs :
3585 updated IListener related stuff to Nov. CTP.
3586 file renaming will come soon.
3588 2005-11-21 Atsushi Enomoto <atsushi@ximian.com>
3590 * ListenerBase.cs, ChannelListenerBase.cs :
3591 moved from former to latter.
3592 * LayeredListenerFactory.cs, LayeredChannelListener.cs :
3593 moved from former to latter.
3595 2005-11-20 Atsushi Enomoto <atsushi@ximian.com>
3597 * SessionFaultedException.cs : removed in Nov. CTP
3599 2005-11-20 Atsushi Enomoto <atsushi@ximian.com>
3601 * CommunicationObject.cs : updated to Nov. CTP.
3602 * SessionFaultedException.cs : removed (in Nov. CTP)
3604 2005-11-03 Atsushi Enomoto <atsushi@ximian.com>
3606 * TextMessageEncoder.cs : kinda implemented (untested; Message is not
3609 2005-11-03 Atsushi Enomoto <atsushi@ximian.com>
3611 * MtomMessageEncoder.cs, BinaryMessageEncoderFactory.cs,
3612 TextMessageEncoderFactory.cs, BinaryMessageEncoder.cs,
3613 TextMessageEncoder.cs, MtomMessageEncoderFactory.cs : new files.
3614 * MessageEncoder.cs : largely implemented.
3616 2005-11-02 Atsushi Enomoto <atsushi@ximian.com>
3618 * IRequestReplyCorrelator.cs : new file.
3620 2005-11-02 Atsushi Enomoto <atsushi@ximian.com>
3622 * CommunicationObject.cs : OnClose() and OnError() are not virtual.
3623 * DirectionalAction.cs : implemented IComparable<DirectionalAction>.
3624 * MessageEncoder.cs : added misssing ToString().
3626 2005-11-02 Atsushi Enomoto <atsushi@ximian.com>
3628 * ChannelBehaviorCollection.cs : moved to sys.sm.
3630 2005-10-28 Atsushi Enomoto <atsushi@ximian.com>
3632 * HttpListenerFactory.cs, HttpListener.cs : new files.
3633 * ListenerFactoryBase.cs, ChannelManagerBase.cs,
3634 CommunicationObject.cs, ChannelFactoryBase.cs,
3635 StreamUpgradeProvider.cs, ChannelBase.cs : timeouts are now
3637 * CommunicationObject.cs : Aborted is bool. Added InternalClose()
3638 * ListenerFactoryBase.cs : kinda implemented GetListeners().
3640 2005-10-26 Atsushi Enomoto <atsushi@ximian.com>
3642 * ListenerFactoryBase.cs : some implementation.
3644 2005-10-26 Atsushi Enomoto <atsushi@ximian.com>
3646 * CommunicationObject.cs : more state fixes.
3648 2005-10-26 Atsushi Enomoto <atsushi@ximian.com>
3650 * CommunicationObject.cs : some state machine fixes.
3652 2005-10-26 Atsushi Enomoto <atsushi@ximian.com>
3654 * PeerNode.cs, ChannelManagerBase.cs :
3655 several API fixes detected by improved corcompare.
3657 2005-10-25 Atsushi Enomoto <atsushi@ximian.com>
3659 * LayeredListenerFactory.cs : added missing generic class constraint.
3661 2005-10-25 Atsushi Enomoto <atsushi@ximian.com>
3663 * ListenerFactoryBase.cs,
3664 ListenerBase.cs : class constraints were missing for generic args.
3666 2005-10-24 Atsushi Enomoto <atsushi@ximian.com>
3668 * StreamUpgradeInitiator.cs : tiny API fix.
3670 2005-10-23 Atsushi Enomoto <atsushi@ximian.com>
3672 * PeerMessagePropagationFilter.cs : tiny build fix.
3674 2005-10-23 Atsushi Enomoto <atsushi@ximian.com>
3676 * HttpRequestMessageProperty.cs, HttpResponseMessageProperty.cs :
3677 added Name. fixed StatusCode type.
3678 * StreamSecurityUpgradeInitiator.cs, StreamUpgradeAcceptor.cs,
3679 PeerNode.cs, StreamSecurityUpgradeAcceptor.cs,
3680 StreamUpgradeProvider.cs, StreamUpgradeInitiator.cs,
3681 DirectionalAction.cs, HostedTransportConfiguration.cs,
3682 StreamSecurityUpgradeProvider.cs, SessionFaultedException.cs,
3683 PeerMessagePropagationFilter.cs : added missing files.
3684 * Dummy.cs : removed. MSMQ stuff can be added later.
3686 2005-10-21 Atsushi Enomoto <atsushi@ximian.com>
3688 * DeliveryStatus.cs, DeliveryFailure.cs,
3689 HttpRequestMessageProperty.cs, PeerMessageOrigination.cs,
3690 PeerMessagePropagation.cs, HttpResponseMessageProperty.cs :
3692 * Dummy.cs : removed above.
3694 2005-10-18 Atsushi Enomoto <atsushi@ximian.com>
3696 * ChannelFactoryBase.cs : tiny .ctor() delegation fix.
3698 2005-10-09 Atsushi Enomoto <atsushi@ximian.com>
3700 * MessageEncoderFactory.cs, LayeredListenerFactory.cs,
3701 MessageEncoder.cs, BufferManager.cs : new files.
3702 * Dummy.cs : removed above.
3704 2005-10-09 Atsushi Enomoto <atsushi@ximian.com>
3706 * ChannelBase.cs, ChannelBehaviorCollection.cs : new channel files.
3707 * Dummy.cs : removed above.
3708 * CommunicationObject.cs, ListenerFactoryBase.cs : added missing bits.
3710 2005-10-09 Atsushi Enomoto <atsushi@ximian.com>
3712 * HttpChannelFactory.cs : new file.
3714 2005-10-08 Atsushi Enomoto <atsushi@ximian.com>
3716 * IReplyChannel.cs, IRequestContext.cs, IRequestChannel.cs:
3717 moved to ../System.ServiceModel (correct location).
3718 * ChannelFactoryBase.cs, LayeredChannelFactory.cs, TransferMode.cs:
3719 new files for channels.
3720 * Dummy.cs : reflected above changes.
3721 * ChannelManagerBase.cs : added a bit of code and todos.
3723 2005-10-04 Atsushi Enomoto <atsushi@ximian.com>
3725 * ChannelManagerBase.cs, ListenerBase.cs, ListenerFactoryBase.cs :
3726 added listener support files.
3727 * Dummy.cs : removed above.
3729 2005-10-03 Atsushi Enomoto <atsushi@ximian.com>
3731 * IReplyChannel.cs, IRequestContext.cs, IRequestChannel.cs :
3732 added request/reply channel interfaces.
3733 * Dummy.cs : removed above.
3734 * CommunicationObject.cs : FIXME comments.
3736 2005-10-03 Atsushi Enomoto <atsushi@ximian.com>
3738 * CommunicationObject.cs : implemented some members.
3740 2005-09-29 Atsushi Enomoto <atsushi@ximian.com>
3742 * CommunicationObject.cs : some signature fixes.