1 2009-10-02 Atsushi Enomoto <atsushi@ximian.com>
3 * HttpReplyChannel.cs, AspNetReplyChannel.cs, AspNetRequestContext.cs:
4 asp.net response was not written correctly.
5 Fill HttpRequestMessageProperty to get handle WSDL requests
6 processed in ServiceMetadataExtension without NRE.
7 Remove wrong HttpListenerContext iteration at Abort and Close in
8 common base class and move it to non-asp derived channel.
10 2009-10-02 Atsushi Enomoto <atsushi@ximian.com>
12 * SvcHttpHandler.cs : remove unused code.
14 2009-09-30 Jb Evain <jbevain@novell.com>
16 * HttpRequestChannel.cs: When compiling for MonoTouch, avoid
17 to use any of the remoting features.
19 2009-09-30 Atsushi Enomoto <atsushi@ximian.com>
21 * SvcHttpHandlerFactory.cs, HttpTransportBindingElement.cs :
22 use AspNetCompatibilityEnabled.
23 * SvcHttpHandler.cs : disable ApplyConfiguration(). It should be done
25 * AspNetReplyChannel.cs : remove extra field.
27 2009-09-29 Atsushi Enomoto <atsushi@ximian.com>
29 * HttpReplyChannel.cs : remove extra field.
31 2009-09-29 Atsushi Enomoto <atsushi@ximian.com>
33 * AspNetRequestContext.cs : remove CWL.
35 2009-09-29 Atsushi Enomoto <atsushi@ximian.com>
37 * AspNetReplyChannel.cs, AspNetRequestContext.cs : close HttpContext
38 only after AspNetRequestContext is closed. Do not close it
39 immediately after receiving the context. (HttpRuntime destructs it
40 and further uses then becomes impossible.)
42 2009-09-29 Atsushi Enomoto <atsushi@ximian.com>
44 * AspNetReplyChannel.cs, HttpReplyChannel.cs : add some comments.
45 * SvcHttpHandlerFactory.cs, SvcHttpHandler.cs, HttpChannelListener.cs:
46 Make sure that AspNetChannelListener is bound to correct
47 SvcHttpHandler, regardless of specific request URI. It is required
48 for both WSDL requests and RESTful binding requests.
50 2009-09-14 Atsushi Enomoto <atsushi@ximian.com>
52 * MessageProperties.cs : fix CopyProperties() behavior to not
53 clear existing items. Make all properties call this[name].
55 2009-09-14 Atsushi Enomoto <atsushi@ximian.com>
57 * HttpTransportBindingElement.cs : fix 2.1 build.
59 2009-09-14 Atsushi Enomoto <atsushi@ximian.com>
61 * TransportBindingElement.cs : another GetProperty fix, iterate
62 other binding elements.
64 2009-09-14 Atsushi Enomoto <atsushi@ximian.com>
66 * HttpTransportBindingElement.cs, PeerTransportBindingElement.cs :
67 some GetProperty() implementation.
69 2009-09-14 Atsushi Enomoto <atsushi@ximian.com>
71 * HttpListenerManager.cs : release HttpListener and avoid extra
72 close process more than once.
74 2009-09-11 Atsushi Enomoto <atsushi@ximian.com>
76 * HttpChannelListener.cs : do not iterate channel list to close
77 channels which in turn removes them from the list while iteration.
79 2009-09-06 Atsushi Enomoto <atsushi@ximian.com>
81 * HttpRequestChannel.cs : Fix message version member comparison.
82 Double-quote SOAPAction. Remove extra Exception.
83 * HttpReplyChannel.cs : ditto for version comparison. Unquote above.
84 * HttpRequestContext.cs : when addressing is None, remove action
87 2009-09-04 Atsushi Enomoto <atsushi@ximian.com>
89 * SvcHttpHandler.cs : set Uri property based on baseAddresses and
90 path, to pick those endpoints that are added at custom factories.
92 2009-09-03 Atsushi Enomoto <atsushi@ximian.com>
94 * SvcHttpHandler.cs : apply configuration, and if there is still no
95 endpoint, then add default one.
97 2009-09-03 Atsushi Enomoto <atsushi@ximian.com>
99 * SvcHttpHandler.cs : another URL to make relative.
101 2009-09-03 Atsushi Enomoto <atsushi@ximian.com>
103 * SvcHttpHandlerFactory.cs : some GetHandler changes.
104 * SvcHttpHandler.cs : significant changes on receiver structure. Now
105 ProcessRequest() stores pending requests (this might be extraneous,
106 but maybe useful when it implements async handler). Also removed
107 reply_channel field as it may become to handle multiple requests.
108 * HttpChannelListener.cs : bind to corresponding SvcHttpHandler.
109 * AspNetReplyChannel.cs : make it receive requests like
110 HttpReplyChannel (for HttpListener) to make them consistent.
112 2009-09-03 Atsushi Enomoto <atsushi@ximian.com>
114 * AspNetRequestContext.cs, HttpRequestContext.cs :
115 fix NRE on HttpListenerContext for AspNetRequestContext (mismatch)
116 by splitting HttpListener-based context out from common code base.
118 2009-09-03 Atsushi Enomoto <atsushi@ximian.com>
120 * SvcHttpHandler.cs : use baseAddresses in ServiceHost and make URIs
121 relative or absolute. new Uri ("/foobar") doesn't work on non-unix
124 2009-09-02 Atsushi Enomoto <atsushi@ximian.com>
126 * SvcHttpHandlerFactory.cs : make use of BuildManager aid. Now it
127 loads types from system assemblies appropriately.
129 2009-09-02 Atsushi Enomoto <atsushi@ximian.com>
131 * XmlReaderBodyWriter.cs : implement OnCreateBufferedCopy()
134 2009-09-02 Atsushi Enomoto <atsushi@ximian.com>
136 * HttpRequestMessageProperty.cs : fix default values.
138 2009-08-31 Atsushi Enomoto <atsushi@ximian.com>
140 * HttpChannelFactory.cs, HttpRequestChannel.cs,
141 ChannelFactoryBase.cs : fix to previous one; allow null Via uri.
142 Check ManualAddressing value and reject address-missing ones.
144 2009-08-31 Atsushi Enomoto <atsushi@ximian.com>
146 * HttpChannelFactory.cs : reject URI mismatch cases when required.
148 2009-08-26 Atsushi Enomoto <atsushi@ximian.com>
150 * PeerDuplexChannel.cs : When received Connect() from neighbor,
151 add the peer to its internal list.
152 Finally ChatApplication got working.
154 2009-08-26 Atsushi Enomoto <atsushi@ximian.com>
156 * PeerDuplexChannel.cs : since the channel factory is per instance,
157 do not reuse factory that is tied to different callback instance.
158 It resolved the issue that mono callback client didn't receive
159 messages from the client itself.
161 2009-08-26 Atsushi Enomoto <atsushi@ximian.com>
163 * PeerDuplexChannel.cs : in the Welcome response, return the NodeId
164 of the receiver, not the requestor. It resolved the issue that
165 .NET client didn't send further messages to mono server.
167 2009-08-26 Atsushi Enomoto <atsushi@ximian.com>
169 * PeerDuplexChannel.cs : remove some comment on [MC-PRCH] behavior.
170 * TcpDuplexSessionChannel.cs, TcpBinaryFrameManager.cs,
171 TcpReplyChannel.cs, TcpRequestChannel.cs,
172 NamedPipeReplyChannel.cs, NamedPipeRequestChannel.cs:
173 rename EndRecord handling method to appropriate one.
174 Write EndRecord from recipient too.
176 2009-08-24 Atsushi Enomoto <atsushi@ximian.com>
178 * PeerDuplexChannel.cs : add PeerFlooder header (see comment).
179 Process PeerTo header to upgrade Message To header. Now mono
180 service accepts mono client (somehow not true for .NET client).
182 2009-08-24 Atsushi Enomoto <atsushi@ximian.com>
184 * TcpDuplexSessionChannel.cs, TcpRequestChannel.cs,
185 NamedPipeRequestChannel.cs : no need to add ReplyTo headers.
187 2009-08-24 Atsushi Enomoto <atsushi@ximian.com>
189 * PeerDuplexChannel.cs : fix PeerTo/PeerVia header namespace.
191 2009-08-24 Atsushi Enomoto <atsushi@ximian.com>
193 * TcpDuplexSessionChannel.cs : check channel state before processing
196 2009-08-20 Atsushi Enomoto <atsushi@ximian.com>
198 * NamedPipeReplyChannel.cs, NamedPipeRequestChannel.cs,
199 NamedPipeChannelFactory.cs, NamedPipeChannelListener.cs :
200 ongoing works, not working at all yet.
202 2009-08-20 Atsushi Enomoto <atsushi@ximian.com>
204 * TcpChannelListener.cs, TcpReplyChannel.cs :
205 cosmetic cleanup and corrections.
207 2009-08-20 Atsushi Enomoto <atsushi@ximian.com>
209 * TcpChannelFactory.cs : use expected Via uri.
210 Remove extra NIE stuff that are implemented in base.
212 2009-08-20 Atsushi Enomoto <atsushi@ximian.com>
214 * TcpDuplexSessionChannel.cs : remove extra code.
216 2009-08-20 Atsushi Enomoto <atsushi@ximian.com>
218 * PeerDuplexChannel.cs : ongoing implementation towards get callback
219 replies on peer connector clients (not working as duplex client
220 callback is not working yet).
222 2009-08-20 Atsushi Enomoto <atsushi@ximian.com>
224 * TcpDuplexSessionChannel.cs : in callback client channels,
225 OperationContext.IncomingMessageHeaders is null.
227 2009-08-20 Atsushi Enomoto <atsushi@ximian.com>
229 * MessageHeaders.cs : duplicate check was sloppy.
231 2009-08-18 Atsushi Enomoto <atsushi@ximian.com>
233 * Message.cs, MessageImpl.cs, BodyWriter.cs :
234 Implement BodyWriter.OnCreateBufferedCopy() and use it.
236 2009-08-18 Atsushi Enomoto <atsushi@ximian.com>
238 * ReplyChannelBase.cs : initialize field.
240 2009-08-17 Atsushi Enomoto <atsushi@ximian.com>
242 * ReplyChannelBase.cs, DuplexChannelBase.cs, RequestChannelBase.cs:
243 implement GetProperty<T>() and return its channel manager.
245 2009-08-17 Atsushi Enomoto <atsushi@ximian.com>
247 * PeerDuplexChannel.cs : ongoing implementation. Fix wrong peer
248 destination address in Connect() request. To repeat sending
249 request, use buffered copy. Set some peer-channel specific
250 header items. (todo: and consume them.)
252 2009-08-17 Atsushi Enomoto <atsushi@ximian.com>
254 * Message.cs : state is set only after WriteBodyContents().
256 2009-08-17 Atsushi Enomoto <atsushi@ximian.com>
258 * MessageHeaders.cs : eliminate wrong use of
259 ReadElementContentAsString() (it is not always simple string).
261 2009-08-17 Atsushi Enomoto <atsushi@ximian.com>
263 * MessageHeaders.cs : when the value is null, do not try to
264 deserialize EndpointAddress.
266 2009-08-17 Atsushi Enomoto <atsushi@ximian.com>
268 * MessageHeader.cs : add Value property. (Forgot dependent change.)
270 2009-08-17 Atsushi Enomoto <atsushi@ximian.com>
272 * MessageHeaders.cs : GetHeader<T>() could mostly skip extra
273 serialization and deserialization of values.
275 2009-08-14 Atsushi Enomoto <atsushi@ximian.com>
277 * PeerDuplexChannel.cs : handle Welcome and Refuse at client side.
278 Now simply use connector contract.
280 2009-08-14 Atsushi Enomoto <atsushi@ximian.com>
282 * PeerDuplexChannel.cs : handle Disconnect(). Fix URLs a bit.
284 2009-08-14 Atsushi Enomoto <atsushi@ximian.com>
286 * TcpChannelListener.cs : do not try to compare dead connection's
287 IPEndPoint (it raises an error).
289 2009-08-14 Atsushi Enomoto <atsushi@ximian.com>
291 * MessageHeaders.cs : allow null header value on each specific setter.
293 2009-08-14 Atsushi Enomoto <atsushi@ximian.com>
295 * DuplexChannelBase.cs, TcpDuplexSessionChannel.cs :
296 get local and remote address of connected counterpart to get
297 callback channel connected.
298 * PeerDuplexChannel.cs : remove FIXME wrt above.
300 2009-08-07 Atsushi Enomoto <atsushi@ximian.com>
302 * PeerDuplexChannel.cs : add fixme comment and remove extra FIXME.
304 2009-08-07 Atsushi Enomoto <atsushi@ximian.com>
306 * MessageHeader.cs : fill IsReferenceParameter.
308 2009-08-06 Atsushi Enomoto <atsushi@ximian.com>
310 * ReplyChannelBase.cs, TcpReplyChannel.cs, HttpReplyChannel.cs:
311 implement remaining async methods and LocalAddress.
313 2009-08-05 Atsushi Enomoto <atsushi@ximian.com>
315 * PeerDuplexChannel.cs : ongoing listener refactoring. Now it uses
316 ServiceHost to process neighbor connection (not sure if this is
317 right way to go though ...).
319 2009-07-31 Atsushi Enomoto <atsushi@ximian.com>
321 * PeerDuplexChannel.cs : ongoing [MC-PRCH] implementation. Rewrote
322 connection part to use new internal IPeerConnectorContract for
325 2009-07-31 Atsushi Enomoto <atsushi@ximian.com>
327 * ChannelListenerBase_1.cs, TcpChannelListener.cs,
328 PeerChannelListener.cs, HttpChannelListener.cs :
329 support ListenUri accordingly too so that it could be used when
330 it is different from LocalAddress.Uri.
332 2009-07-31 Atsushi Enomoto <atsushi@ximian.com>
334 * TcpChannelFactory.cs, TcpDuplexSessionChannel.cs,
335 TcpRequestChannel.cs : use Via uri to validate and connect.
337 2009-07-31 Atsushi Enomoto <atsushi@ximian.com>
339 * RequestChannelBase.cs, DuplexChannelBase.cs :
340 Return endpoint address Uri when no explicit Via uri is specified.
341 * ChannelFactoryBase.cs : Remove extra async close methods.
342 Add async open methods. Reject null EndpointAddress.
343 * PeerChannelFactory.cs : remove async open methods (now in base).
345 2009-07-31 Atsushi Enomoto <atsushi@ximian.com>
347 * PeerDuplexChannel.cs : set correct message endpoint (To header).
349 2009-07-31 Atsushi Enomoto <atsushi@ximian.com>
351 * TcpDuplexSessionChannel.cs, PeerDuplexChannel.cs,
352 DuplexChannelBase.cs : set LocalAddress property at base.
354 2009-07-30 Atsushi Enomoto <atsushi@ximian.com>
356 * PeerDuplexChannel.cs : ongoing refactoring to work both as
357 listener and client. Now it creates a listening peer node, and
358 creates a set of TCP client channels for each peer in the mesh.
360 (EndpointAddress must be fixed to not filter out correct inputs).
362 2009-07-30 Atsushi Enomoto <atsushi@ximian.com>
364 * PeerChannelListener.cs : do not accept more than one channel
365 which results in lots of listening peer node. Only one is enough.
367 2009-07-30 Atsushi Enomoto <atsushi@ximian.com>
369 * DuplexChannelBase.cs : fix wrong loop implementation.
371 2009-07-28 Atsushi Enomoto <atsushi@ximian.com>
373 * TcpChannelListener.cs : to avoid creating two or more channels
374 for one remote endpoint, check existing remote endpoints and
375 ignore such connections (it must be handled in different thread
376 fired by ChannelDispatcher loop).
378 2009-07-28 Atsushi Enomoto <atsushi@ximian.com>
380 * TcpReplyChannel.cs : make sure to not try to receive request when
381 it is already closed.
383 2009-07-28 Atsushi Enomoto <atsushi@ximian.com>
385 * TcpChannelListener.cs, TcpDuplexSessionChannel.cs :
386 some mannerless clients [*1] do not send EndRecord accordingly, but
387 such channels at listener side should not be kept open. So, close
388 disconnected channels when the listener needs to accept another
390 [*1] see olive/samples/wcf/clientbase/samplecli4.cs.
392 2009-07-28 Atsushi Enomoto <atsushi@ximian.com>
394 * TcpDuplexSessionChannel.cs :
395 Remove extra NIE overrides.
396 Implement OnAbort() apart from OnClose().
397 For duplex session channel, unlike reply channel, it must acquire
398 TCP connection before OnOpen(), otherwise ChannelDispatcher
399 releases the connection acceptance WaitHandle and the detected
400 live connection may be stolen by another channel acceptor.
402 2009-07-28 Atsushi Enomoto <atsushi@ximian.com>
404 * HttpRequestChannel.cs : implement OnAbort().
406 2009-07-24 Atsushi Enomoto <atsushi@ximian.com>
408 * PeerChannelListener.cs : set source field. Remove unnecessary NIE.
409 * DuplexChannelBase.cs : comment out some extra fields (so far).
410 * PeerDuplexChannel.cs : pass valid EndpointAddress to PeerNodeImpl.
412 2009-07-24 Atsushi Enomoto <atsushi@ximian.com>
414 * PeerCustomResolverBindingElement.cs : add some null checks.
416 2009-07-23 Atsushi Enomoto <atsushi@ximian.com>
418 * TcpChannelListener.cs, TcpReplyChannel.cs, TcpRequestChannel.cs:
419 Acquire TcpClient for each request/reply. Now it is fully
420 interoperable with .NET.
422 2009-07-23 Atsushi Enomoto <atsushi@ximian.com>
424 * TcpReplyChannel.cs, TcpRequestChannel.cs: it somehow adds/expects
425 ReplyTo and MessageId (though it is session-less), and it expects
426 EndRecord at weird stage, inconsistent with [MC-NMF]...
427 Now .NET service accepts one mono client request.
429 2009-07-23 Atsushi Enomoto <atsushi@ximian.com>
431 * TcpReplyChannel.cs, TcpRequestChannel.cs, TcpBinaryFrameManager.cs:
432 Send and receive unsized message terminator at once.
433 Send EndRecord mutually. Got one .net client request working.
435 2009-07-23 Atsushi Enomoto <atsushi@ximian.com>
437 * BinaryMessageEncoder.cs : revert the previous dictionary change.
438 They are indeed used for non-in-band-dictionary messages.
440 2009-07-23 Atsushi Enomoto <atsushi@ximian.com>
442 * TcpDuplexSessionChannel.cs, TcpBinaryFrameManager.cs:
443 split out binary frame manager class into separate file.
445 2009-07-21 Atsushi Enomoto <atsushi@ximian.com>
447 * TcpReplyChannel.cs : new reply channel implementation.
448 * TcpChannelListener.cs : use above for streamed reply channel.
449 * TcpDuplexSessionChannel.cs : more streaming mode support.
450 * TcpRequestChannel.cs : a couple of updates to get it working
451 with the reply channel above. Still some issues on .NET interop.
453 2009-07-21 Atsushi Enomoto <atsushi@ximian.com>
455 * RequestContext.cs : added internal derived class that implements
458 2009-07-21 Atsushi Enomoto <atsushi@ximian.com>
460 * BinaryMessageEncoder.cs : for non-session reader and writer, do not
463 2009-07-17 Atsushi Enomoto <atsushi@ximian.com>
465 * PeerDuplexChannel.cs: add the registered node itself to peer list.
466 (The messaging must be done as TCP request/reply pattern, so it's
469 2009-07-17 Atsushi Enomoto <atsushi@ximian.com>
471 * TcpRequestChannel.cs : new channel file (TCP for request/reply
472 messaging pattern). The messaging part is not working yet.
473 * TcpChannelFactory.cs : support IRequestChannel.
474 * TcpDuplexSessionChannel.cs : add unsized message support.
476 2009-07-17 Atsushi Enomoto <atsushi@ximian.com>
478 * HttpRequestChannel.cs, RequestChannelBase.cs :
479 A couple of async members are now implemented in the base class.
480 Ditto for EndpointAddress and Via.
482 2009-07-10 Atsushi Enomoto <atsushi@ximian.com>
484 * PeerDuplexChannel.cs : now it implements some of node management
485 functionality and Send operation. The receiver part is not yet.
487 2009-07-10 Atsushi Enomoto <atsushi@ximian.com>
489 * TcpChannelListener.cs, TcpDuplexSessionChannel.cs : do not pass
490 timeout to channel constructor. it does not make sense.
492 2009-07-10 Atsushi Enomoto <atsushi@ximian.com>
494 * PeerChannelFactory.cs, PeerChannelListener.cs : add MessageEncoder
495 as common interface member, and use binary encoder (not text).
497 2009-07-09 Atsushi Enomoto <atsushi@ximian.com>
499 * PeerDuplexChannel.cs : PeerNode constructor argument changes.
501 2009-07-08 Atsushi Enomoto <atsushi@ximian.com>
503 * PeerDuplexChannel.cs, PeerChannelListener.cs, PeerOutputChannel.cs,
504 PeerInputChannel.cs, PeerChannelFactory.cs : those channels are
505 going to be unified to PeerDuplexChannel. And it is likely that
506 input and output functionalities are to be unified too.
508 2009-07-08 Atsushi Enomoto <atsushi@ximian.com>
510 * TcpChannelFactory.cs : (TcpChannelInfo) ease type restriction. I
511 may have to reuse it for peer transport.
512 * PeerChannelListener.cs : add binding member.
513 * PeerDuplexChannel.cs : remove NIE overrides. Fill fields a bit.
515 2009-07-08 Atsushi Enomoto <atsushi@ximian.com>
517 * ChannelFactoryBase.cs, HttpChannelFactory.cs,
518 PeerChannelFactory.cs : close opened channels at OnClose() as
519 documented. Implement async methods.
520 * PeerChannelListener.cs : removed some NIE overrides.
522 2009-07-02 Atsushi Enomoto <atsushi@ximian.com>
524 * DuplexChannelBase.cs : some more async methods.
526 2009-06-29 Atsushi Enomoto <atsushi@ximian.com>
528 * TcpDuplexSessionChannel.cs : on Abort(), do just Close() within
530 * TcpChannelListener.cs : accept multiple channels at a time.
532 2009-06-29 Atsushi Enomoto <atsushi@ximian.com>
534 * TcpDuplexSessionChannel.cs : do not output all (stored) writer
535 session strings but output only those new ones in current message.
536 This fixes inconsistent body output in repetitive use of sender.
538 2009-06-26 Atsushi Enomoto <atsushi@ximian.com>
540 * TcpDuplexSessionChannel.cs : handle EndRecord for repetitive
541 operation that does not involve session.
542 Preserve writer session as well as reader session.
543 * MessageHeaders.cs : take name and namespace into consideration
544 when creating a serializer.
546 2009-06-25 Atsushi Enomoto <atsushi@ximian.com>
548 * TcpChannelListener.cs, TcpDuplexSessionChannel.cs :
549 Made required changes for repeated use of message exchanges.
550 Hold binary reader session. The channels use it incrementally.
551 Preambles are handled at Open, and EndRecords are handled at
552 Close, Add session shutdown hook here (not working yet though).
554 2009-06-18 Atsushi Enomoto <atsushi@ximian.com>
556 * ChannelListenerBase_1.cs : added cancellation hook here too.
557 HttpChannelListener.cs : use above.
558 Do not allow parallel channel creation (this listener does not
559 allow more than one AcceptChannel().
561 2009-06-18 Atsushi Enomoto <atsushi@ximian.com>
563 * ReplyChannelBase.cs, HttpReplyChannel.cs :
564 Add cancellation hook for async TryReceiveRequest.
566 2009-06-18 Atsushi Enomoto <atsushi@ximian.com>
568 * HttpChannelListener.cs, HttpListenerManager.cs :
569 slightly improved BuildChannelListener().
570 Implement OnAbort() and differentiate it from OnClose().
572 2009-06-18 Atsushi Enomoto <atsushi@ximian.com>
574 * TcpDuplexSessionChannel.cs : remove NIE stubs.
576 2009-06-18 Atsushi Enomoto <atsushi@ximian.com>
578 * DuplexChannelBase.cs : simple async delegate calls here too.
580 2009-06-16 Atsushi Enomoto <atsushi@ximian.com>
582 * ReplyChannelBase.cs : cosmetic dependency reduction on listener.
584 2009-06-16 Atsushi Enomoto <atsushi@ximian.com>
586 * HttpReplyChannel.cs : cosometic simplification.
588 2009-06-16 Atsushi Enomoto <atsushi@ximian.com>
590 * HttpRequestChannel.cs : Fixed timeout handling. It was causing
591 infinite block in 2.0 profile.
593 2009-06-12 Atsushi Enomoto <atsushi@ximian.com>
595 * TcpChannelListener.cs, TcpDuplexSessionChannel.cs :
596 more careful close to avoid NRE.
598 2009-06-12 Atsushi Enomoto <atsushi@ximian.com>
600 * HttpChannelListener.cs : do not Close() more than once (though
601 it is allowed to call it twice, we don't reject it; just ignore).
603 2009-06-12 Atsushi Enomoto <atsushi@ximian.com>
605 * CustomBinding.cs : copy timeouts from argument binding in copy ctr.
607 2009-06-11 Atsushi Enomoto <atsushi@ximian.com>
609 * HttpReplyChannel.cs : reject multiple WaitForRequest calls.
610 Temporarily disable HTTP Keep-Alive since it somehow results in
611 wrong reuse of connection (shown as NRE in HttpConnection).
612 Make sure to close RequestContext which was created from it.
613 * HttpRequestContext.cs : simplify.
615 2009-06-11 Atsushi Enomoto <atsushi@ximian.com>
617 * HttpChannelListener.cs, TcpChannelListener.cs,
618 ChannelListenerBase_1.cs : put common internal listener base
619 and let it handle those async stuff.
621 2009-06-10 Atsushi Enomoto <atsushi@ximian.com>
623 * ReplyChannelBase.cs : fix wrong null delegate check point.
625 2009-06-10 Atsushi Enomoto <atsushi@ximian.com>
627 * HttpReplyChannel.cs, ReplyChannelBase.cs : async operations are
628 now implemented as virtual in base class. Remove NIEs in http.
630 2009-06-10 Atsushi Enomoto <atsushi@ximian.com>
632 * HttpChannelListener.cs : hack async implementation.
634 2009-06-08 Atsushi Enomoto <atsushi@ximian.com>
636 * HttpListenerManager.cs : oops, extra line removal.
638 2009-06-08 Atsushi Enomoto <atsushi@ximian.com>
640 * HttpChannelManager.cs, HttpListenerManager.cs : rename file too.
642 2009-06-08 Atsushi Enomoto <atsushi@ximian.com>
644 * HttpChannelManager.cs, HttpChannelListener.cs: renaming, as
645 "ChannelManager" is confusing (there is ChannelManagerBase).
647 2009-06-08 Atsushi Enomoto <atsushi@ximian.com>
649 * HttpChannelManager.cs, HttpTransportBindingElement.cs,
650 HttpReplyChannel.cs, AspNetReplyChannel.cs, HttpChannelListener.cs:
651 they should be split into separate listener->reply channel lines
652 (remove "if (HostingEnvironment.IsAspNet)".)
654 2009-06-08 Atsushi Enomoto <atsushi@ximian.com>
656 * CommunicationObject.cs : OnClosed() requires call to base method.
657 Close() could rather abort the channel, and Abort() does not
658 always invke OnAbort().
659 * ChannelBase.cs : add call to base as above.
661 2009-06-05 Sebastien Pouliot <sebastien@ximian.com>
663 * ClientAccessPolicy.cs: Removed
664 * CrossDomainAccessManager.cs: Removed
665 * CrossDomainPolicy.cs: Removed
666 * HttpRequestChannel.cs: Remove call to CrossDomainAccessManager
667 since this is now done inside the BeginGetResponse call (outside
668 this assembly) for Moonlight (NET_2_1)
670 2009-06-04 Alan McGovern <amcgovern@novell.com>
672 * HttpRequestChannel.cs : Rewrite ProcessRequest to use the async APIs
673 instead of the sync apis. Prevents a possible deadlock condition in
676 2009-06-03 Atsushi Enomoto <atsushi@ximian.com>
678 * HttpRequestChannel.cs : that SL2/ML2 does not seem to allow null
679 callbacks, so add hacky ones.
681 2009-06-01 Atsushi Enomoto <atsushi@ximian.com>
683 * TcpDuplexSessionChannel.cs : WaitForMessage() should not return
684 true when socket input is not available.
686 2009-05-29 Atsushi Enomoto <atsushi@ximian.com>
688 * TcpDuplexSessionChannel.cs : Moved tcp listener accept to OnOpen().
689 I cannot precisely identify when EndRecord should be consumed,
690 so allow it at either at the end of ReadSizedMessage() or on
691 consuming preamble (it's likely handling EndRecord of previous
694 Now duplex IPeerResolverContract communication works between
695 either of .NET/Mono client and .NET/Mono server.
697 2009-05-29 Atsushi Enomoto <atsushi@ximian.com>
699 * TcpDuplexSessionChannel.cs : looks like I have added some bogus
700 code. Handle preamble ack on ReadSizedMessage() only at server.
701 Consume EndRecord from server, at client side. Though it is likely
702 changed as it's blocking when mono is at server side.
704 2009-05-29 Atsushi Enomoto <atsushi@ximian.com>
706 * TcpDuplexSessionChannel.cs : .NET seems to be based on somewhat
707 different protocol than existing code with related to preamble ack.
708 So changed it to work fine with .NET client (finally).
710 2009-05-28 Atsushi Enomoto <atsushi@ximian.com>
712 * MessageBufferImpl.cs : do not output Action twice.
714 2009-05-28 Atsushi Enomoto <atsushi@ximian.com>
716 * MessageBufferImpl.cs : it did not copy headers.
717 * Message.cs : remove 2_1 conditional implementation for buffered
718 copy and hence remove bogus code.
720 2009-05-28 Atsushi Enomoto <atsushi@ximian.com>
722 * MessageProperties.cs : copy argument is wrong.
724 2009-05-27 Atsushi Enomoto <atsushi@ximian.com>
726 * PeerCustomResolverBindingElement.cs : some argument check.
728 2009-05-27 Atsushi Enomoto <atsushi@ximian.com>
730 * BinaryMessageEncoder.cs : the serializer somehow leaves binary
731 xml open, so close the writer as well as open elements.
732 * TcpDuplexSessionChannel.cs : clear write buffer on each operation.
733 Do not output EndRecord and SizedMessage at a time.
735 2009-05-26 Atsushi Enomoto <atsushi@ximian.com>
737 * TcpDuplexSessionChannel.cs : there was a miscalculation on the
738 length of the SizedMessage in the output.
740 2009-05-26 Atsushi Enomoto <atsushi@ximian.com>
742 * CommunicationObject.cs : use sane default timeout.
743 * PeerCustomResolverBindingElement.cs : check timeout arg sanity.
744 * TcpDuplexSessionChannel.cs : ditto.
746 2009-05-26 Atsushi Enomoto <atsushi@ximian.com>
748 * TcpDuplexSessionChannel.cs : It seems that buffered stream channel
749 only accepts buffered messages, so do as such for write buffers.
750 Add RelatesTo header.
752 2009-05-26 Atsushi Enomoto <atsushi@ximian.com>
754 * DuplexSessionChannelBase.cs, DuplexChannelBase.cs:
755 rename from former to latter.
757 2009-05-25 Atsushi Enomoto <atsushi@ximian.com>
759 * TcpDuplexSessionChannel.cs : reader does not always return full
760 buffer (depending on the stream).
762 2009-05-25 Atsushi Enomoto <atsushi@ximian.com>
764 * PeerDuplexChannel.cs, PeerOutputChannel.cs : use new PeerNode.ctor.
766 2009-05-25 Atsushi Enomoto <atsushi@ximian.com>
768 * PeerCustomResolverBindingElement.cs : (Resolve) returned addresses
771 2009-05-22 Atsushi Enomoto <atsushi@ximian.com>
773 * ChannelManagerBase.cs : there was annoying non-2.1 stuff.
775 2009-05-22 Atsushi Enomoto <atsushi@ximian.com>
777 * TcpChannelListener.cs, TcpChannelFactory.cs : get reader quotas.
779 2009-05-22 Atsushi Enomoto <atsushi@ximian.com>
781 * ChannelManagerBase.cs : fix wrong session channel detection.
783 2009-05-22 Atsushi Enomoto <atsushi@ximian.com>
785 * BinaryMessageEncoderFactory.cs, BinaryMessageEncoder.cs
786 This encoder factory implements CreateSessionEncoder() and binary
787 encoder does support session transmit, in different media type.
788 * ChannelManagerBase.cs : added utility method to create appropriate
790 * HttpChannelFactory.cs, HttpChannelListener.cs,
791 MsmqChannelFactory.cs, MsmqChannelListener.cs,
792 PeerChannelFactory.cs, PeerChannelListener.cs,
793 TcpChannelFactory.cs, TcpChannelListener.cs : use above.
795 2009-05-22 Atsushi Enomoto <atsushi@ximian.com>
797 * TcpDuplexSessionChannel.cs : add ReplyTo header.
799 2009-05-21 Atsushi Enomoto <atsushi@ximian.com>
801 * DuplexSessionBase.cs : new file, for session implementation.
802 * TcpDuplexSessionChannel.cs, PeerDuplexChannel.cs,
803 DuplexSessionChannelBase.cs : changed sync/async implementation
804 pattern. Now async methods call sync methods using delegates.
806 2009-05-21 Atsushi Enomoto <atsushi@ximian.com>
808 * InputChannelBase.cs, TransportBindingElement.cs, RequestContext.cs:
809 a few minor API fixes.
811 2009-05-21 Atsushi Enomoto <atsushi@ximian.com>
813 * MessageEncoderFactory.cs : implement CreateSessionEncoder().
815 2009-05-19 Atsushi Enomoto <atsushi@ximian.com>
817 * TcpDuplexSessionChannel.cs : add To header.
819 2009-05-19 Atsushi Enomoto <atsushi@ximian.com>
821 * MessageFault.cs : fix several SOAP12 fault deserialization in xml
824 2009-05-18 Atsushi Enomoto <atsushi@ximian.com>
826 * FaultConverter.cs : avoid NRE for null IncomingMessageHeaders.
828 2009-05-15 Atsushi Enomoto <atsushi@ximian.com>
830 * MessageFault.cs : Reason is mandatory. raise XmlException, and
831 CommunicationException in each CreateFault().
833 2009-05-15 Atsushi Enomoto <atsushi@ximian.com>
835 * TcpDuplexSessionChannel.cs : on listener side, get TcpClient at
836 Open(). Some (but not all yet) continuous communication works now.
837 Use ProtocolException. Remove dummy binary session string.
839 2009-05-14 Atsushi Enomoto <atsushi@ximian.com>
841 * TcpDuplexSessionChannel.cs : more [MC-NMF] implementation. Moved
842 sending/receiving SizedMessageRecord parts to manager class.
843 Handle writer session, though it is likely broken at dictionary
844 writer part (no string is written so far).
845 * BinaryMessageEncoder.cs : add writer session and rename reader
848 2009-05-14 Atsushi Enomoto <atsushi@ximian.com>
850 * TcpDuplexSessionChannel.cs : more [MC-NMF] implementation. Via uri
851 is mandatory in initiator preamble packet. Handle Fault reply in
854 2009-05-14 Atsushi Enomoto <atsushi@ximian.com>
856 * TcpDuplexSessionChannel.cs : ongoing refactoring to collect [MC-NMF]
857 based communication under TcpBinaryFrameManager class.
859 2009-05-13 Jb Evain <jbevain@novell.com>
861 * MessageHeader.cs: use a SL friendly way of creating an XmlReader
864 2009-05-13 Atsushi Enomoto <atsushi@ximian.com>
866 * MessageImpl.cs, MessageHeader.cs : eliminate xlinq in 2.1, and
867 actually eliminate DOM-based implementation too in 2.0.
869 2009-04-28 Atsushi Enomoto <atsushi@ximian.com>
871 * TcpDuplexSessionChannel.cs : implement in-band dictionary support
872 in [MC-NMF] and [MC-NBFSE], used in duplex channels. Added some
873 comments for magic numbers based on [MC-NMF].
875 2009-04-28 Atsushi Enomoto <atsushi@ximian.com>
877 * BinaryMessageEncoder.cs : implement part of in-band dictionary
878 support for [MC-NBFSE] record in [MC-NMF], in this class.
880 2009-04-28 Atsushi Enomoto <atsushi@ximian.com>
882 * BinaryMessageEncodingBindingElement.cs : clear extra public members.
884 2009-04-27 Atsushi Enomoto <atsushi@ximian.com>
886 * TcpDuplexSessionChannel.cs : implemented some channel methods.
888 2009-04-27 Atsushi Enomoto <atsushi@ximian.com>
890 * BinaryMessageEncoder.cs : use XmlDictionary specified as [MC-NBFS].
892 2009-04-27 Atsushi Enomoto <atsushi@ximian.com>
894 * ChannelManagerBase.cs : implement Open/CloseTimeout correctly.
896 2009-04-23 Atsushi Enomoto <atsushi@ximian.com>
898 * BinaryMessageEncoder.cs : use quotas in binding element.
899 Implement WriteMessage().
901 2009-04-22 Atsushi Enomoto <atsushi@ximian.com>
903 * PeerCustomResolverBindingElement.cs : do initialize field.
905 2009-04-21 Atsushi Enomoto <atsushi@ximian.com>
907 * PeerCustomResolverBindingElement.cs :
908 implement full custom resolver.
910 2009-04-21 Atsushi Enomoto <atsushi@ximian.com>
912 * PeerDuplexChannel.cs, PeerChannelListener.cs,
913 PeerOutputChannel.cs, PeerCustomResolverBindingElement.cs,
914 PeerChannelFactory.cs : ongoing p2p channel implementation.
916 2009-04-21 Atsushi Enomoto <atsushi@ximian.com>
918 * PnrpPeerResolverBindingElement.cs : sync with PeerResolver changes.
920 2009-04-21 Atsushi Enomoto <atsushi@ximian.com>
922 * BinaryMessageEncodingBindingElement.cs, ChannelBase.cs,
923 ChannelFactoryBase.cs, WindowsStreamSecurityBindingElement.cs :
924 implement GetProperty<T>(). Return documented objects or null.
926 2009-04-20 Atsushi Enomoto <atsushi@ximian.com>
928 * PeerChannelFactory.cs, PeerChannelListener.cs,
929 PeerCustomResolverBindingElement.cs, PeerDuplexChannel.cs
930 PeerInputChannel.cs, PeerOutputChannel.cs :
931 new; ongoing peer transport implementation.
932 * DuplexSessionChannelBase.cs, InputChannelBase.cs
933 MsmqOutputChannel.cs, OutputChannelBase.cs,
934 PeerResolverBindingElement.cs, PeerTransportBindingElement.cs,
935 PnrpPeerResolverBindingElement.cs, TcpDuplexSessionChannel.cs :
936 several internal changes (either required or for simplification)
937 for ongoing peer transport implementation.
939 2009-04-08 Atsushi Enomoto <atsushi@ximian.com>
941 * PeerTransportBindingElement.cs : ListenIPAddress is IPAddress.
943 2009-04-07 Atsushi Enomoto <atsushi@ximian.com>
945 * TcpTransportBindingElement.cs : check build-ability before
946 actually building channels.
947 * ConnectionOrientedTransportBindingElement.cs : fixed build-ability
948 conditions according to MSDN.
950 2009-03-05 Atsushi Enomoto <atsushi@ximian.com>
952 * MessageHeader.cs, MessageHeaders.cs, MessageImpl.cs :
953 handle headers in SL2. Slightly changed 3.0 code too.
955 2009-03-04 Atsushi Enomoto <atsushi@ximian.com>
957 * HttpRequestChannel.cs : use cross domain access manager.
959 2009-02-27 Atsushi Enomoto <atsushi@ximian.com>
961 * Message.cs : (in CreateBufferedCopy) do not pass the entire
962 message as BodyWriter.
963 (in GetReaderAtBodyContents) just write body contents.
964 * MessageImpl.cs : do not try to read body at ctor (fixed tons
966 Add some state check in GetReaderAtBodyContents().
967 * XmlReaderBodyWriter.cs : avoid possible extra xmldecl onto output.
969 2009-02-18 Atsushi Enomoto <atsushi@ximian.com>
971 * Message.cs : do not forget to flush.
972 * HttpRequestChannel.cs : give more exact error info.
974 2009-02-18 Atsushi Enomoto <atsushi@ximian.com>
976 * Message.cs, MessageBufferImpl.cs, XmlReaderBodyWriter.cs :
977 make buffered copy in ML2 really buffered.
979 2009-02-12 Atsushi Enomoto <atsushi@ximian.com>
981 * Message.cs : if there is no header item to write, do not write
984 2009-01-22 Alan McGovern <amcgovern@novell.com>
986 * MessageHeaders.cs : List<T>.RemoveAll(Predicate<T>) doesn't exist in Silverlight.
987 Rewrite to avoid usage of it.
989 2009-01-14 Atsushi Enomoto <atsushi@ximian.com>
991 * ChannelParameterCollection.cs : implement, rather than NIE.
993 2008-05-22 Noam Lampert <noaml@mainsoft.com>
995 * MessageFault.cs: Correctly serialize ExceptionDetails. Expose SimpleMessageFault to allow
996 internal users to know the type of the detail.
998 2008-05-20 Noam Lampert <noaml@mainsoft.com>
1000 * Message.c: Use private setter for state private variable to ease debugging.
1001 Modify ToString not to change the state, as it is called quite often by VS debugger
1003 2008-04-21 Roei Erez <roeie@mainsoft.com>
1005 * HttpChannleManager: Fix for multithreaded use.
1006 * HttpReplyChannel: Fix crash during sutdown.
1008 2008-04-17 Igor Zelmanovich <igorz@mainsoft.com>
1010 * HttpChannleManager: ensure trailing slash in uri.
1012 2008-04-17 Vladimir Krasnov <vladimirk@mainsoft.com>
1014 * added: HttpChannleManager,
1015 * HttpChannelListener: added use of HttpChannelManager
1017 2008-04-17 Vladimir Krasnov <vladimirk@mainsoft.com>
1019 * MessageEncodingBindingElement.cs: fixed ctor
1021 2008-04-17 Vladimir Krasnov <vladimirk@mainsoft.com>
1023 * XmlReaderBodyWriter.cs: fixed ctor, skip xml declaration
1025 2008-04-17 Vladimir Krasnov <vladimirk@mainsoft.com>
1027 * HttpReplyChannel.cs: fixed TryReceiveRequest, fix message header To
1029 2008-04-17 Vladimir Krasnov <vladimirk@mainsoft.com>
1031 * MessageFault.cs: fixed CreateFault11, implemented "detail"
1033 2008-04-17 Noam Lampert <noaml@mainsoft.com>
1035 * HttpReplyChannel.cs: fix API - Fix crash during service shutdown.
1037 2008-04-13 Igor Zelmanovich <igorz@mainsoft.com>
1039 * BindingElementCollection.cs: fix API - .ctor's signature.
1041 2008-04-10 Eyal Alaluf <eyala@mainsoft.com>
1043 * XmlSerializerBodyWriter.cs: Removed.
1045 2008-03-25 Vladimir Krasnov <vladimirk@mainsoft.com>
1047 * MessageFault.cs: fixed WriteReason, .net XmlWriter compatible
1049 2008-02-20 Atsushi Enomoto <atsushi@ximian.com>
1051 * DuplexSessionChannelBase.cs : made it non-session (more reusable).
1052 * TcpChannelFactory.cs, TcpChannelListener.cs :
1053 unify factory and listener into TcpChannelInfo for use in
1054 TCP channel implementation. Do not store stream in the listener.
1055 Factory now uses BinaryMessageEncoder.
1056 * TcpDuplexSessionChannel.cs : changes explained above, and now it
1057 holds TcpClient that the listener has accepted.
1059 tcp-transport-binding-element sample now communicates (though
1060 only when both sides are mono: there seems binary mismatch).
1062 2008-02-20 Atsushi Enomoto <atsushi@ximian.com>
1064 * TcpTransportBindingElement.cs, TcpConnectionPoolSettings.cs :
1065 clone connection pool settings too.
1066 * NamedPipetransportBindingElement.cs,
1067 NamedPipeConnectionPoolSettings.cs : let's clean them up too (not
1068 being likely implemented though).
1070 2008-02-20 Atsushi Enomoto <atsushi@ximian.com>
1072 * ConnectionOrientedTransportBindingElement.cs,
1073 TcpTransportBindingElement.cs : some API updates.
1074 Initialize default values.
1075 * TcpConnectionPoolSettings.cs : new file.
1077 2008-02-18 Atsushi Enomoto <atsushi@ximian.com>
1079 * ServiceHostParser.cs, SvcHttpHandlerFactory.cs, SvcHttpHandler.cs:
1080 added support for "factory" attribute.
1082 2008-02-15 Atsushi Enomoto <atsushi@ximian.com>
1084 * HttpRequestContent.cs : consider HttpResponseMessageProperty.
1086 2008-02-15 Atsushi Enomoto <atsushi@ximian.com>
1088 * HttpRequestChannel.cs : pass response ContentType to ReadMessage().
1090 2008-02-15 Atsushi Enomoto <atsushi@ximian.com>
1092 * HttpRequestChannel.cs : create WebRequest against To message header
1094 Consider HttpRequestMessageProperty.
1095 Do not output body when suppressed or the method is GET.
1097 2008-02-15 Atsushi Enomoto <atsushi@ximian.com>
1099 * HttpChannelListener.cs : BindingContext may not have listenUri
1100 at its .ctor() step.
1102 2008-02-08 Atsushi Enomoto <atsushi@ximian.com>
1104 * BindingContext.cs : RemainingBindingElements is not just a dummy
1105 collection but is actually user-controlled.
1107 2008-02-08 Atsushi Enomoto <atsushi@ximian.com>
1109 * TcpChannelFactory.cs, TcpChannelListener.cs,
1110 HttpChannelFactory.cs, HttpChannelListener.cs,
1111 MsmqChannelFactory.cs, MsmqChannelListener.cs,
1112 TextMessageEncodingBindingElement.cs,
1113 BinaryMessageEncodingBindingElement.cs,
1114 MtomMessageEncodingBindingElement.cs :
1115 message encoder should be retrieved only through public API.
1116 * BindingContext.cs : so my old guess was wrong.
1118 See also: http://blogs.msdn.com/drnick/archive/2006/05/10/594134.aspx
1120 2008-02-05 Atsushi Enomoto <atsushi@ximian.com>
1122 * HttpTransportBindingElement.cs : implemented copy constructor.
1124 2007-08-20 Atsushi Enomoto <atsushi@ximian.com>
1126 * HttpRequestChannel.cs, HttpReplyChannel.cs : treat SOAPAction HTTP
1127 header when AddressingVersion is None.
1129 2007-08-20 Atsushi Enomoto <atsushi@ximian.com>
1131 * MessageHeaders.cs : AddressingVersion.None rejects some WSA
1134 2007-08-19 Atsushi Enomoto <atsushi@ximian.com>
1136 * OneWayBindingElementImporter.cs
1137 CompositeDuplexBindingElementImporter.cs : new files.
1139 2007-08-17 Atsushi Enomoto <atsushi@ximian.com>
1141 * MessageHeaders.cs : due to the DataContractSerializer.ReadObject()
1142 semantic change, its bool parameter must be false, not true.
1144 2007-07-13 Atsushi Enomoto <atsushi@ximian.com>
1146 * InputChannelBase.cs, MsmqChannelListener.cs, MsmqInputChannel.cs :
1147 new files. Msmq transport listener Implementation.
1148 * MsmqOutputChannel.cs : implemented Send(). Not sure if it works
1149 (wait for System.Messaging impl.)
1150 * HttpReplyChannel.cs : added comment
1152 2007-07-06 Atsushi Enomoto <atsushi@ximian.com>
1154 * MsmqChannelFactory.cs MsmqOutputChannel.cs OutputChannelBase.cs :
1155 new files. internal stuff for msmq channel.
1156 * BinaryMessageEncoder.cs : added another .ctor().
1157 * MsmqTransportBindingElement.cs :
1158 implemented [Can]BuildChannelFactory().
1160 2007-07-06 Atsushi Enomoto <atsushi@ximian.com>
1162 * MsmqBindingElementBase.cs MsmqTransportBindingElement.cs :
1163 initialize some fields.
1165 2007-07-05 Atsushi Enomoto <atsushi@ximian.com>
1167 * MsmqBindingElementBase.cs MsmqMessageProperty.cs
1168 MsmqTransportBindingElement.cs ITransactedBindingElement.cs :
1169 couple of msmq stubs.
1171 2007-04-02 Atsushi Enomoto <atsushi@ximian.com>
1173 * SecureMessageGenerator.cs : SecurityContextToken support (though
1174 it is still regarded as invalid by WCF).
1176 2007-03-13 Atsushi Enomoto <atsushi@ximian.com>
1178 * WSSecurityMessageHeader.cs, SecureMessageGenerator.cs :
1179 make header.Contents.Add() more strict.
1180 Use HasAsymmetricKey to determine whether to use asymmetric algorithm
1182 Added some hack to allow ssl token external mode.
1183 Commented out such lines that always premised asymmtric key.
1185 2007-03-08 Atsushi Enomoto <atsushi@ximian.com>
1187 * TransactionFlowBindingElement.cs : forgot necessary Clone().
1189 2007-03-08 Atsushi Enomoto <atsushi@ximian.com>
1191 * MessageSecurityBindingSupport.cs : support check to create
1192 authenticator is now done in both initiator/recipient sides.
1193 * SecurityRequestContext.cs : don't encrypt WS-Trust RSTR.
1195 2007-03-07 Atsushi Enomoto <atsushi@ximian.com>
1197 * MessageSecurityBindingSupport.cs : for now, comment out the code
1198 that makes authenticator creation optional.
1199 * SecurityRequestContext.cs : don't decrypt message when it is
1200 WS-Trust messages. Also, do not secure SOAP Fault (it is likely
1202 * SecurityChannelListener.cs : GetProperty<T>() now returns
1203 MessageSecurityBindingSupport when requested. It is used by
1204 EndpointDispatcher to check if it supports WS-Trust negotiation.
1205 * ChannelListenerBase.cs :
1206 removed extra TODO and field. Implemented GetProperty<T>().
1207 * Message.cs : In CreateMessage() for SOAP Fault, create
1208 SimpleMessage with IsFault = true.
1210 2007-03-07 Atsushi Enomoto <atsushi@ximian.com>
1212 * SecurityRequestContext.cs : try to reply fault with the inner
1213 channel when an error occurred internally.
1214 * FaultConverter.cs : implemented based on OperationContext (at normal
1215 state it does not seem to create messages, so I implemented it this
1218 2007-03-07 Atsushi Enomoto <atsushi@ximian.com>
1220 * TransportBindingElement.cs : implemented GetProperty<T>().
1221 * TransactionFlowBindingElement.cs : on building factory or listener,
1222 reject channel types that cannot build.
1223 * SecurityBindingElement.cs : added some TODO comments.
1224 * HttpTransportBindingElement.cs : GetProperty<T>() should rather
1225 delegate to base, not BindingContext.
1226 * SecurityRequestContext.cs : somewhat late decryption.
1228 2007-03-06 Atsushi Enomoto <atsushi@ximian.com>
1230 * MessageSecurityBindingSupport.cs,
1231 AsymmetricSecurityBindingElement.cs,
1232 SymmetricSecurityBindingElement.cs :
1233 renamed *SecurityBindingElementSupport to *SecurityCapabilities and
1234 implemented ISecurityCapabilities on them. Now those binding
1235 elements support GetProperty<ISecurityCapabilities>().
1237 2007-03-05 Atsushi Enomoto <atsushi@ximian.com>
1239 * SecurityBindingElement.cs : SetIssuerBindingContextIfRequired()
1240 will work only for predefined parameter types.
1242 2007-03-01 Atsushi Enomoto <atsushi@ximian.com>
1244 * MessageSecurityBindingSupport.cs :
1245 Set proper MessageDirection to the requirement after creation.
1246 split CreateTokenAuthenticator() as MessageDirection is different.
1247 Removed extra creation of requirement.
1249 2007-03-01 Atsushi Enomoto <atsushi@ximian.com>
1251 * MessageSecurityBindingSupport.cs : token authenticator is not
1252 always created on channel-opening stage.
1253 * SecurityBindingElement.cs : use SslSecurityTokenParameters for
1254 Sslnego binding factory method.
1256 2007-02-28 Atsushi Enomoto <atsushi@ximian.com>
1258 * SecureMessageGenerator.cs : inconsistent ReferenceList has caused
1259 signature velification failure.
1261 2007-02-27 Atsushi Enomoto <atsushi@ximian.com>
1263 * SecureMessageGenerator.cs : encrypt signature confirmations only
1264 when they are required.
1266 2007-02-27 Atsushi Enomoto <atsushi@ximian.com>
1268 * SecureMessageGenerator.cs : SignatureConfirmation must be encrypted
1269 when [Signature Protection is true i.e. when we use
1270 SignBeforeEncryptAndEncryptSignature.
1272 With this change finally samplesvc.cs/samplecli.cs became
1275 2007-02-27 Atsushi Enomoto <atsushi@ximian.com>
1277 * SecureMessageDecryptor.cs : signature verification was not done
1278 for endorsing supporting tokens.
1279 * SecureMessageGenerator.cs : moved SignatureConfirmation position
1280 in the security header. Don't output empty ReferenceList.
1282 2007-02-27 Atsushi Enomoto <atsushi@ximian.com>
1284 * SecureMessageGenerator.cs : signingToken was added before being
1285 initialized and thus caused NRE.
1287 2007-02-27 Atsushi Enomoto <atsushi@ximian.com>
1289 * WSSecurityMessageHeader.cs, SecureMessageDecryptor.cs,
1290 SecureMessageGenerator.cs : use SHA1 instead of HMACSHA1. Now we
1291 don't need workaround for symmetric key restoration.
1293 2007-02-27 Atsushi Enomoto <atsushi@ximian.com>
1295 * WSSecurityMessageHeader.cs, SecureMessageDecryptor.cs,
1296 SecureMessageGenerator.cs :
1297 Avoid extra reference search from the request's ReferenceList.
1298 create HMACSHA1 always with the key to compute hash (I'm not sure
1299 it is correct; it is rather to adjust all hash consistent.)
1301 2007-02-27 Atsushi Enomoto <atsushi@ximian.com>
1303 * SecureMessageDecryptor.cs : verify that endorsing supporting tokens
1304 actually endorsed the primary signature.
1305 * SecureMessageGenerator.cs : implemented endorsing of the primary
1306 signature. So, now supporting tokens are fully implemented.
1308 2007-02-27 Atsushi Enomoto <atsushi@ximian.com>
1310 * MessageSecurityBindingSupport.cs : so, those supporting tokens are
1311 totally signing tokens.
1312 * SecureMessageGenerator.cs : Endorsing tokens should also be
1313 included in the message. They are just not signed.
1315 2007-02-26 Atsushi Enomoto <atsushi@ximian.com>
1317 * SecureMessageGenerator.cs : support signing and encryption of
1318 supporting tokens. Some required refactory to do it.
1319 * MessageSecurityBindingSupport.cs : added EncryptedData member.
1321 2007-02-26 Atsushi Enomoto <atsushi@ximian.com>
1323 * SecureMessageDecryptor.cs : fix exception message.
1324 * WSSecurityMessageHeader.cs, WSSignedXml.cs, WSEncryptedXml.cs :
1325 XmlNamespaceManager is not required for GetIdElement().
1327 2007-02-22 Atsushi Enomoto <atsushi@ximian.com>
1329 * SecureMessageDecryptor.cs, WSSecurityMessageHeader.cs :
1330 moved decryption part from former file to latter file, to reuse
1331 SignedXml instance (though now I doubt how it actually was good)
1332 which in turn required to replace EncryptedData in
1333 WSSecurityMessageHeader with decrypted one.
1334 * WSEncryptedXml.cs : similar to WSSignedXml.cs, to handle wsu:Id.
1336 2007-02-21 Atsushi Enomoto <atsushi@ximian.com>
1338 * SecureMessageGenerator.cs : when we create DerivedKeyToken, those
1339 EncryptedData should contain KeyInfo as it is not obvious which key
1340 is used there. .net<->mono DerivedKeyToken introp is done.
1341 * SecureMessageDecryptor.cs : check derived key requirement.
1342 Reduce dom-dependent parts.
1344 2007-02-21 Atsushi Enomoto <atsushi@ximian.com>
1346 * WSSecurityMessageHeader.cs : ReferenceList needs to be bound to
1347 the related DerivedKeyToken (if any).
1348 * SecureMessageGenerator.cs : largely done with DerivedKeyToken
1349 support. Some refactoring to distinguish deried-token-related
1351 * SecureMessageDecryptor.cs : removed its own support for derived
1352 key tokens. Now it fully works with DerivedKeySecurityToken.
1354 2007-02-21 Atsushi Enomoto <atsushi@ximian.com>
1356 * WSSecurityMessageHeader.cs, SecureMessageDecryptor.cs,
1357 SecureMessageDecryptor.cs :
1358 Implemented increment token reading in o:Security, as
1359 DerivedKeyToken could reference to existing wrapped key.
1360 Removed WsscDerivedKeyToken and all relevant code.
1361 * SecureMessageGenerator.cs : replaced WsscDerivedKeyToken with
1362 DerivedKeySecurityToken.
1364 2007-02-16 Atsushi Enomoto <atsushi@ximian.com>
1366 * SecureMessageGenerator.cs : it was setting security tokens into
1367 incorrect SecurityMessageProperty.
1368 Use correct WrappedKeySecurityToken for EncryptedKeySHA1.
1369 Now it uses SecurityRequestContext instead of just primary key.
1370 * SecureMessageDecryptor.cs : removed extra lines. Limit workarounds
1371 to symmetric reply decryption, which is the only trouble case.
1372 Do not create another SignedXml.
1373 * WSSecurityMessageHeader.cs : SignedXml processing changes above.
1375 2007-02-15 Atsushi Enomoto <atsushi@ximian.com>
1377 * SecureMessageDecryptor.cs : Now it uses union token resolver and
1378 the resolver works with in-progress token reading in o:Security.
1379 * WSSecurityMessageHeader.cs : now it does not read EncryptedKey
1380 as EncryptedKeyIdentifierClause. It is rather a SecurityToken.
1381 * SecureMessageGenerator.cs : cosmetic refactoring.
1383 2007-02-14 Atsushi Enomoto <atsushi@ximian.com>
1385 * WSSecurityMessageHeader.cs : read EncryptedKeyIdentifierClause
1386 instead of EncryptedKey.
1388 2007-02-13 Atsushi Enomoto <atsushi@ximian.com>
1390 * MessageSecurityBindingSupport.cs : SigningToken and EncryptionToken
1391 should not be always prepared at channel Open(). It also caused
1392 that extra token requirements.
1393 * SecureMessageGenerator.cs : use correct key clause for encryption.
1394 * SecureMessageDecryptor.cs : reduce extra key acquisition.
1396 2007-02-06 Atsushi Enomoto <atsushi@ximian.com>
1398 * MessageSecurityBindingSupport.cs : added CreateTokenAuthenticator()
1399 for supporting 'supporting tokens' .
1400 * SecureMessageGenerator.cs : Supporting token creation is done only
1401 at initiator (not sure if it is supposed that, but for now it is).
1402 Removed extraneous CollectSupportingTokens().
1403 * SecureMessageDecryptor.cs : implemented supporting token
1404 authentication (partly). "Signed" supporting tokens are expected
1407 2007-02-06 Atsushi Enomoto <atsushi@ximian.com>
1409 * SecureMessageGenerator.cs :
1410 make SignBeforeEncryptAndEncryptSignature working.
1412 2007-02-06 Atsushi Enomoto <atsushi@ximian.com>
1414 * SecureMessageGenerator.cs : EncryptedKeySHA1 needs key hash, not
1415 the key itself. ProtectionToken is WrappedKey.
1416 * SecureMessageDecryptor.cs : now it is internal encrypted key clause,
1417 not EncryptedKeyIdentifierClause which is not for embedded key.
1418 * MessageProperties.cs : Fixed copy direction in CopyProperties().
1420 2007-02-05 Atsushi Enomoto <atsushi@ximian.com>
1422 * MessageSecurityBindingSupport.cs : added DefaultKeyWrapAlgorithm
1423 to switch asymmetric and symmetric. Not used yet.
1424 * SecurityRequestChannel.cs : now it pass the request security
1425 property to reply receiver so that it could use the primary key
1426 used at request phase.
1427 * SecurityRequestContext.cs : now it pass the context itself to
1428 reply sender so that it could embed related MessageID.
1429 * SecureMessageGenerator.cs : ongoing changes to support symmetric
1430 binding element. Add RelatesTo output and remove MessageID when
1431 replying to the sender. Added some hacks to get symmetric binding
1433 * SecureMessageDecryptor.cs : ditto. Handle embedded encryption key
1434 in SecurityTokenReference (it also involved existing encrypted key
1435 retrieval). In reply receiver, reuse the key that was used at
1436 request phase. It needs significant token resolution refactoring.
1438 2007-02-02 Atsushi Enomoto <atsushi@ximian.com>
1440 * MessageSecurityBindingSupport.cs : cosmetic refactoring.
1441 * SecureMessageDecryptor.cs : store token and its authentication
1442 policies into the security property, and reuse it on reply.
1443 Some code refactoring; there is at most one o:Security to solve at
1444 one endpoint (depends on Actor). Some attempt to use correct
1445 token parameters (but for now I have only samples that use x509).
1446 * SecureMessageGenerator.cs : For replying message, use initiator's
1447 signing token as the encryption token. Simply reuse security
1448 property from the input message.
1450 I have some nasty workaround at decryptor for initiator that could
1451 not retrieve decryption key.
1453 2007-02-02 Atsushi Enomoto <atsushi@ximian.com>
1455 * SecureMessageGenerator.cs, SecurityChannelListener.cs,
1456 SecurityRequestContext.cs, MessageSecurityBindingSupport.cs:
1457 several refactoring on token acquisition. Large part of
1458 MessageSecurityBindingSupport code is unified.
1460 2007-02-02 Atsushi Enomoto <atsushi@ximian.com>
1462 * MessageProperties.cs : Security property should be one of the items.
1463 Actually many other properties should be similar as well.
1464 * MessageImpl.cs, MessageBufferImpl.cs, Message.cs :
1465 when copying a message, copy properties as well.
1466 * SecurityRequestContext.cs : on replying, pass input
1467 SecurityMessageProperty to the security generator.
1468 * SecureMessageGenerator.cs : both of above, for SignatureConfirmation
1470 * WSSecurityMessageHeader.cs : fixed lazy .ctor() that did nothing.
1472 2007-02-01 Atsushi Enomoto <atsushi@ximian.com>
1475 MessageHeader.cs, Message.cs, WSSecurityMessageHeader.cs,
1476 SecureMessageDecryptor.cs, SecureMessageGenerator.cs:
1477 use new WSSignedXml instead of SignedXml, and remove coexisting
1478 Id and wsu:Id. Now we can live only with wsu:Id and therefore
1479 - our reply messages could be consumed by .NET, and
1480 - .NET signature could be verified.
1482 2007-02-01 Atsushi Enomoto <atsushi@ximian.com>
1484 * SecureMessageDecryptor.cs : The signing key must be passed as
1485 CheckSignature() argument, not SigningKey.
1487 2007-01-31 Atsushi Enomoto <atsushi@ximian.com>
1489 * MessageImpl.cs : don't read attribute after ReadStartElement().
1491 2007-01-31 Atsushi Enomoto <atsushi@ximian.com>
1493 * MessageSecurityBindingSupport.cs : some Release() refactoring.
1494 * SecureMessageGenerator.cs : use correct signing key clause for
1495 SecurityTokenReferenceKeyInfo to be serialized.
1496 * SecureMessageDecryptor.cs : now it can try to parse signature.
1498 2007-01-31 Atsushi Enomoto <atsushi@ximian.com>
1500 Ongoing changes to support signature confirmation
1501 * SecureMessageGenerator.cs :
1502 Don't output ReplyTo onto reply message.
1503 Write SignatureConfirmation if needed.
1504 * SecureMessageDecryptor.cs :
1505 Some refactoring for header cunsumption. Added commented-out
1506 signature verification part (not working yet, on client side due
1507 to incorrect reply from service and insufficient clause reader).
1508 * WSSecurityMessageHeader.cs :
1509 Added SignatureConfirmation support.
1510 KeyInfoClause for o:SecurityTokenReference should be replaced with
1511 SecurityTokenReferenceKeyInfo.
1513 2007-01-29 Atsushi Enomoto <atsushi@ximian.com>
1515 * SecureMessageGenerator.cs : support Timestamp signature.
1516 Removed unused code, and extra argument in CreateReference().
1517 * WSSecurityMessageHeader.cs : Timestamp also needs Id for SignedXml.
1519 2007-01-29 Atsushi Enomoto <atsushi@ximian.com>
1521 * SecureMessageGenerator.cs :
1522 Several fixes to make asymmetric binding working:
1523 - Differentiate signing and encryption token in several areas.
1524 - Fixed signing keyinfo.
1526 Added initial SecurityMessageProperty handling, not sure if it is
1527 appropriate here though.
1528 * HttpRequestChannel.cs : (some debugging lines)
1530 2007-01-26 Atsushi Enomoto <atsushi@ximian.com>
1532 Woohoo! Here is a very basic WS-Security compliant message which could
1533 be allowed by Indigo.
1534 * MessageHeader.cs : added Id support for writing.
1535 * Message.cs : added internal BodyId for signature reference.
1536 * MessageImpl.cs : write Body Id if required.
1537 * SecureMessageGenerator.cs : Before signing, the target elements must
1538 be given wsu:Id. Since I still use System.Security.dll, I need some
1539 trick for signing (I give both Id and wsu:Id, former to sign and
1540 latter to be consumed). Maybe I will have to replace xmldsig/xmlenc
1541 implementation later. Now singning mechanism works except for
1542 wsu:Timestamp (which is kind of mandatory).
1544 I can's still consume replies from Indigo but it's a big progress :)
1546 2007-01-26 Atsushi Enomoto <atsushi@ximian.com>
1548 * MessageHeaderInfo.cs : added internal Id.
1549 * MessageHeader.cs : read and write wsu:Id.
1550 * Message.cs : output wsu namespace if Id exists in any header.
1551 * HttpReplyChannel.cs : (some debugging lines.)
1552 * SecureMessageDecryptor.cs : (remove debugging lines.)
1553 * MessageImpl.cs : removed obsolete code.
1554 * WSSecurityMessageHeader.cs : output "o" prefix.
1555 * SecureMessageGenerator.cs : replaced XmlElement-based header
1556 signing with MessageHeader-based signing, to support Id correctly.
1558 2007-01-15 Atsushi Enomoto <atsushi@ximian.com>
1560 * SecureMessageGenerator.cs : some more refactoring and code comments.
1561 * MessageSecurityUtility.cs : made decryptor into an instance class,
1562 like I've done for SecureMessageGenerator.
1563 * SecurityRequestContext.cs, SecurityRequestChannel.cs :
1564 dependent changes for above.
1566 2007-01-12 Atsushi Enomoto <atsushi@ximian.com>
1568 * SecureMessageGenerator.cs : fixed derived keysize. derived key was
1569 causing NRE due to the lack of token reference.
1570 No need to pass doc to SignedXml.ctor() anymore.
1571 Moved ReferenceList before the signature(s).
1573 2007-01-12 Atsushi Enomoto <atsushi@ximian.com>
1575 * SecureMessageGenerator.cs : add wsu:Timestamp to signing target.
1576 Moved signing key generation code to non-HMACSHA1 signing part.
1577 Don't try to sign wss:Security.
1578 Pass document itself to SignedXml.ctor().
1579 Use temporary DataObjects to avoid adding Ids (not sure what is the
1580 expected processing yet).
1581 * WSSecurityMessageHeader.cs : to support timestamp signing, add
1582 WriteTo() method in WsuTimestamp.
1584 2007-01-12 Atsushi Enomoto <atsushi@ximian.com>
1586 * SecureMessageGenerator.cs : wrong key was used for signing.
1587 Omit KeyInfo for now - it seems that .net (sometimes?) omits it.
1589 2007-01-11 Atsushi Enomoto <atsushi@ximian.com>
1591 * SecureMessageGenerator.cs :
1592 Now ID generation process does not modify input message.
1593 Moved derived key generation part into (virtual) signing loop.
1594 MessagePartSpecification support for signing is done.
1596 2007-01-11 Atsushi Enomoto <atsushi@ximian.com>
1598 * SecureMessageGenerator.cs : some reordering to handle signing and
1599 encryption with supporting tokens. Fixed XPath query bug for
1600 soap header contents (we want s:Header/*, not s:Header).
1602 2007-01-11 Atsushi Enomoto <atsushi@ximian.com>
1604 * MessageSecurityBindingSupport.cs : more refactoring.
1605 Made it abstract and added Initiator- and Recipient- classes.
1606 Several members were moved to those derived types.
1607 * AsymmetricSecurityBindingElement.cs,
1608 SymmetricSecurityBindingElement.cs
1609 SecurityChannelFactory.cs, SecurityChannelListener.cs,
1610 SecurityRequestChannel.cs, SecurityOutputChannel.cs,
1611 SecurityRequestContext.cs, SecureMessageGenerator.cs :
1612 All dependent changes by above. Removed ISecurityChannelSource
1613 which became useless.
1615 2007-01-11 Atsushi Enomoto <atsushi@ximian.com>
1617 * SecureMessageGenerator.cs : encryption parts should exist too.
1618 * AsymmetricSecurityBindingElement.cs
1619 SymmetricSecurityBindingElement.cs,
1620 MessageSecurityBindingSupport.cs : some refactoring.
1621 Split MessageSecurityBindingSupport into security binding element
1622 specific parts and made MessageSecurityBindingSupport concrete.
1623 It is likely split again, next time based on initiator/recipient.
1625 2007-01-11 Atsushi Enomoto <atsushi@ximian.com>
1627 * MessageSecurityUtility.cs, SecureMessageGenerator.cs :
1628 split encryptor part in the former file into latter file, and
1630 * SecurityRequestChannel.cs, SecurityOutputChannel.cs,
1631 SecurityRequestContext.cs : apply the change above.
1633 2007-01-11 Atsushi Enomoto <atsushi@ximian.com>
1635 * MessageSecurityBindingSupport.cs :
1636 Fixed incorrect TrgGetValue() use.
1637 Added CollectRecipientSupportingTokens().
1639 2007-01-11 Atsushi Enomoto <atsushi@ximian.com>
1641 * MessageSecurityUtility.cs: acctually ReferenceList was inside
1642 EncryptedKey. So, when a key itself is used to encrypt data,
1643 ReferenceList is contained by itself.
1644 * MessageSecurityBindingSupport.cs :
1645 added CollectInitiatorSupportingTokens().
1647 2007-01-10 Atsushi Enomoto <atsushi@ximian.com>
1649 * MessageSecurityUtility.cs: it should support ReferenceList-less
1652 2007-01-10 Atsushi Enomoto <atsushi@ximian.com>
1654 * WSSecurityMessageHeader.cs : reverted previous unnecessary change.
1655 * MessageSecurityUtility.cs : there already was uuid.
1657 2007-01-09 Atsushi Enomoto <atsushi@ximian.com>
1659 * MessageSecurityUtility.cs : replaced EncryptedKey with
1660 WrappedKeySecurityToken, which seems to be in actual use in .net.
1661 * WSSecurityMessageHeader.cs : added internal Guid so that it
1662 could be shared between header items.
1664 2006-12-14 Atsushi Enomoto <atsushi@ximian.com>
1666 * HttpRequestContext.cs, TextMessageEncoder.cs :
1667 some null arg check.
1669 2006-12-08 Atsushi Enomoto <atsushi@ximian.com>
1671 * MessageSecurityUtility.cs : reducing DOM dependency. Use KeyInfoNode
1672 for SecurityTokenReference resolution.
1674 2006-12-08 Atsushi Enomoto <atsushi@ximian.com>
1676 * MessageSecurityUtility.cs : fixed EncryptedData decryption to
1677 consider DerivedKeyTokens correctly.
1678 When creating LocalId, don't add '#' here.
1680 2006-12-07 Atsushi Enomoto <atsushi@ximian.com>
1682 * MessageSecurityUtility.cs :
1683 handle key mapping for each wsse:Security.
1685 2006-12-07 Atsushi Enomoto <atsushi@ximian.com>
1687 * WSSecurityMessageHeader.cs : use prefix "c" for ws-secureconv.
1689 2006-12-06 Atsushi Enomoto <atsushi@ximian.com>
1691 * WSSecurityMessageHeader.cs : write top-level ReferenceList in
1693 * MessageSecurityUtility.cs :
1694 Now ReferenceList is placed under wsse:Security as WS-Security 1.1
1695 suggests, and it is used to dereference decryption targets.
1696 Now it premises multiple wsse:Security elements to read.
1698 2006-12-06 Atsushi Enomoto <atsushi@ximian.com>
1700 * WSSecurityMessageHeader.cs : don't write o:SecurityTokenReference
1701 manually (and actually the namespace URI was wrong).
1703 2006-12-06 Atsushi Enomoto <atsushi@ximian.com>
1705 * WSSecurityMessageHeader.cs : improved DerivedKeyToken writing
1707 * MessageSecurityUtility.cs : DerivedKeyToken creation.
1709 2006-12-06 Atsushi Enomoto <atsushi@ximian.com>
1711 * SecurityBindingElement.cs,
1712 SymmetricSecurityBindingElement.cs,
1713 AsymmetricSecurityBindingElement.cs :
1714 implemented SetKeyDerivation().
1716 2006-12-06 Atsushi Enomoto <atsushi@ximian.com>
1718 * MessageSecurityUtility.cs : don't add KeyInfoClause to EncryptedKey
1721 2006-12-06 Atsushi Enomoto <atsushi@ximian.com>
1723 * MessageBufferImpl.cs : XmlReader-based buffer is not possible, so
1726 2006-12-05 Atsushi Enomoto <atsushi@ximian.com>
1728 * MessageSecurityUtility.cs : u:Timestamp will be encrypted/signed,
1729 thus move it in front of encryption/signing.
1731 2006-12-04 Atsushi Enomoto <atsushi@ximian.com>
1733 * TransactionFlowBindingElement.cs : OnOpen()/OnClose() should not
1734 check state by themselves (btw it's not really working).
1735 * HttpChannelListener.cs : If the url does not end with '/' add it
1736 so that it could be fed to HttpListener.
1738 2006-12-04 Atsushi Enomoto <atsushi@ximian.com>
1740 * HttpChannelFactory.cs : check scheme on CreateChannel.
1741 * MessageHeader.cs : finish IsMessageVersionSupported().
1743 2006-12-04 Atsushi Enomoto <atsushi@ximian.com>
1745 * FaultConverter.cs : new file, not used yet though.
1747 2006-10-21 Atsushi Enomoto <atsushi@ximian.com>
1749 * SvcHttpHandler.cs : set GET URL to ServiceMetadataBehavior.
1751 2006-10-20 Atsushi Enomoto <atsushi@ximian.com>
1753 * SvcHttpHandler.cs : once AspNetReplyChannel get working with HTTP
1754 GET as well as HttpReplyChannel, configuration would be ready now.
1756 2006-10-18 Ankit Jain <jankit@novell.com>
1758 * TextMessageEncoder.cs (MediaType): Use 'application/soap+xml' for
1759 EnvelopeVersion.Soap12 and 'text/xml' for others.
1760 * HttpReplyChannel.cs (TryReceiveRequest): Revert earlier patch for GET
1762 Strip '?' from the query string.
1764 2006-10-13 Ankit Jain <jankit@novell.com>
1766 * MessageVersion.cs (None): Set AddressingVersion.None
1768 2006-10-12 Atsushi Enomoto <atsushi@ximian.com>
1770 * SvcHttpHandler.cs : added config-based endpoint addition code.
1771 Though due to some weird bug in mono-core it does not seem to work,
1772 so commented out for now.
1773 * HttpReplyChannel.cs : handle wsdl query parameter. btw creating
1774 mex request message might just be wrong.
1775 Use expected MessageVersion by the channel.
1776 * AspNetReplyChannel.cs : ditto. Plus, HTTP GET support.
1778 2006-10-12 Atsushi Enomoto <atsushi@ximian.com>
1780 * MessageSecurityBindingSupport.cs : added DefaultSignatureAlgorithm
1781 which differs depending on whether it is asymmetric or symmetric.
1782 * SecurityRequestChannel.cs, SecurityRequestContext.cs :
1783 simplify SecureMessage() and DecryptMessage() arguments (just
1784 take MessageSecurityBindingSupport instead of several parameters).
1785 * MessageSecurityUtility.cs :
1786 - simplify SecureMessage() and DecryptMessage() arguments (just
1787 take MessageSecurityBindingSupport instead of several parameters).
1788 - Take token inclusion mode into account. Don't include them when
1789 it is not expected. Also, change the token reference style.
1790 - add wsa:MessageID to the headers.
1791 - For hmac-sha1 signing (default for symmetric binding), use
1792 symmetric key created for encryption as well to create HMACSHA1.
1793 - add Id to wsu:Timestamp.
1794 - start to handle SecurityMessageProperty.
1795 * WSSecurityMessageHeader.cs :
1796 Added Id to WsuTimestamp. Also use prefixes for its XML output.
1797 Changed date format.
1799 2006-10-06 Atsushi Enomoto <atsushi@ximian.com>
1801 * CommunicationObject.cs : reject faulted state on Open()/Close().
1802 * MessageHeaders.cs : removed extra fields.
1804 2006-10-06 Ankit Jain <jankit@novell.com>
1806 * HttpReplyChannel.cs (TryReceiveRequest): Handle HTTP GET.
1808 2006-10-05 Atsushi Enomoto <atsushi@ximian.com>
1810 * MessageSecurityUtility.cs, SecurityRequestContext.cs :
1811 added some FIXMEs and additional arg.
1813 2006-10-05 Atsushi Enomoto <atsushi@ximian.com>
1815 * MessageSecurityUtility.cs : remove duplicate Action header.
1817 2006-10-05 Atsushi Enomoto <atsushi@ximian.com>
1819 * MessageFault.cs : partly implemented CreateFault(Message, int).
1820 * Message.cs, MessageImpl.cs, MessageBufferImpl.cs :
1821 handle IsFault correctly in each implementation.
1823 2006-10-04 Ankit Jain <jankit@novell.com>
1825 * HttpRequestChannel.cs (ProcessRequest): Read till the end.
1827 2006-10-04 Ankit Jain <jankit@novell.com>
1829 * HttpRequestChannel.cs (ProcessRequest): Temporary workaround for a bug
1830 in WebConnectionStream.
1832 2006-10-04 Ankit Jain <jankit@novell.com>
1834 * MessageHeaders.cs (To): Use GetHeader<string> till
1835 DataContractSerializer gets ISerializable support.
1836 * CustomBinding.cs (.ctor): Get scheme from TransportBindingElement.
1838 2006-10-04 Ankit Jain <jankit@novell.com>
1840 * ServiceHostParser.cs (Parse):
1841 (Split): Add some error checks.
1843 2006-10-03 Atsushi Enomoto <atsushi@ximian.com>
1845 * SslStreamSecurityBindingElement.cs : updated API to Sep. CTP.
1846 * StreamUpgradeAcceptor.cs : Fix AcceptUpgrade().
1847 * SslStreamSecurityUpgradeProvider.cs,
1848 SslStreamSecurityUpgradeAcceptor.cs :
1849 new files for Ssl upgrade provider implementation.
1850 * MessageSecurityUtility.cs :
1851 Create proper C14NTransform. Don't use enveloped signature
1852 transform but sign every significant bits. On securing messages
1853 use ChannelProtectionRequirements.
1854 * SecurityRequestContext.cs : pass ChannelProtectionRequirements to
1856 * MessageEncoder.cs : fix API (missing constraint).
1857 * WSSecurityMessageHeader.cs : it is MustUnderstand.
1858 * StreamUpgradeProvider.cs : API fix and implemented .ctor().
1859 * AsymmetricSecurityBindingElement.cs : default protection order is
1860 SignBeforeEncryptAndEncryptSignature.
1862 2006-09-29 Ankit Jain <jankit@novell.com>
1864 * SvcHttpHandlerFactory.cs (GetTypeFromSvc): Extract and move code to
1865 ServicHostParser and use that here.
1866 (PrivateBinPath): New.
1867 (GetTypeFromBin): New. Load assembly from PrivateBinPath.
1868 (RemovedCallback): Remove and close the SvcHttpHandler when its
1869 corresponding file (.svc) changes.
1870 * SvcHttpHandler.cs (Close): New. Close the ServiceHost.
1872 * ServiceHostParser.cs : New.
1873 * CachingCompiler.cs : New. Code extracted from
1874 System.Web.Compilation.CachingCompiler
1875 * CompilationException.cs : New. From System.Web.Compilation
1876 * HtmlizedException.cs : New. Likewise.
1878 2006-09-29 Atsushi Enomoto <atsushi@ximian.com>
1880 * MessageSecurityBindingSupport.cs : For client side, it is always
1881 InitiatorServiceModelSecurityTokenRequirement which should be
1882 created. Fixed wrong client encryption key acquisition.
1884 2006-09-29 Atsushi Enomoto <atsushi@ximian.com>
1886 * SecurityChannelListener.cs, SecurityRequestContext.cs,
1887 MessageSecurityBindingSupport.cs : made similar changes as factories
1888 to listener so that session channels and input channels would work.
1889 Added authenticator creation.
1891 2006-09-29 Atsushi Enomoto <atsushi@ximian.com>
1893 * Binding.cs : added missing members.
1895 2006-09-28 Atsushi Enomoto <atsushi@ximian.com>
1897 * SecurityRequestChannel.cs, SecurityOutputChannel.cs,
1898 MessageSecurityUtility.cs, MessageSecurityBindingSupport.cs :
1899 reduce code duplication between request and output channels.
1900 The common parts are now in MessageSecurityBindingSupport.
1901 Now reduced several arguments in SecureMessage() for client.
1903 2006-09-28 Atsushi Enomoto <atsushi@ximian.com>
1905 * ChannelFactoryBase.cs : implemented ValidateCreateChannel().
1907 2006-09-28 Atsushi Enomoto <atsushi@ximian.com>
1909 * AsymmetricSecurityBindingElement.cs,
1910 SecurityChannelListener.cs,
1911 SecurityRequestContext.cs,
1912 SymmetricSecurityBindingElement.cs,
1913 SecurityRequestChannel.cs,
1914 SecurityOutputChannel.cs,
1915 SecurityChannelFactory.cs,
1916 MessageSecurityBindingSupport.cs : 1) Refactoring.
1917 IMessageSecurityBindingSupport now becomes a class and contains
1918 all the members which resided in ISecurityChannelSource.
1919 Now it takes more constructor params.
1920 Made dependent changes on all sources above.
1922 2) Added SecurityTokenAuthenticator creation in
1923 SecurityRequestChannel (SecurityOutputChannel should do the same).
1925 2006-09-27 Atsushi Enomoto <atsushi@ximian.com>
1927 * SecurityRequestChannel.cs : ongoing improvements on conditional
1928 key creation. Actually there must be some part that creates an
1929 authenticator (WinFX does that).
1931 2006-09-27 Ankit Jain <jankit@novell.com>
1933 Add suport for handling .svc files.
1934 * SvcHttpHandlerFactory.cs: New.
1935 * SvcHttpHandler.cs: New.
1937 * HttpChannelListener.cs (PopulateChannel): Use AspNetReplyChannel if in
1938 asp.net environment.
1939 (OnOpen): Do nothing in asp.net environment.
1940 (OnClose): Likewise.
1941 * HttpReplyChannel.cs (HttpRequestContext): Move to ..
1942 * HttpRequestContext.cs: .. here.
1944 * AspNetReplyChannel.cs: New.
1945 * AspNetRequestContext.cs: New.
1947 2006-09-26 Atsushi Enomoto <atsushi@ximian.com>
1949 * MessageSecurityUtility.cs :
1950 Significantly rewritten decryption parts to respect ReferenceList
1951 to decrypt (so no workaround anymore).
1952 Now e:ReferenceList inside o:Security is treated as the referenced
1953 EncryptedType items are encrypted by 1) the derived key which is
1954 immediately in front of it, or 2) the default key (it is according
1955 to WS-SecureConversation section 9.1). Thus removed immediately
1956 previous hack to auto-fill wsu:Id attributes.
1958 On securing a message, generate correct Id and add DataReference
1959 to ReferenceList properly.
1961 2006-09-26 Atsushi Enomoto <atsushi@ximian.com>
1963 * WSSecurityMessageHeader.cs : handle ReferenceList. It is being
1966 2006-09-26 Atsushi Enomoto <atsushi@ximian.com>
1968 * WSSecurityMessageHeader.cs : handle DerivedKeyToken as a header content.
1969 Actually WSSecurityTokenSerializer should be able to consume it, but after
1970 spending a lot of time I still cannot successfully read it on WinFX.
1971 Skip ReferenceList for now.
1972 * MessageSecurityUtility.cs :
1973 Replaced some string literals with constants.
1974 Added some workaround for DerivedKeyToken retrieval.
1975 WinFX somehow sends incomplete ISO10126 padding which contains
1976 bigger number than the key size and is rejected by EncryptedXml,
1977 so added DecryptLax() which processes such ones in PaddingMode.None
1978 to workaround it (only for cross-connection between mono and winfx).
1979 Added some incomplete implicit wsu:Id processing.
1980 Don't try to replace SignedXml with EncryptedData. It is not added
1981 to the document tree.
1983 2006-09-25 Atsushi Enomoto <atsushi@ximian.com>
1985 * MessageSecurityUtility.cs : support message signature encryption. Some
1988 2006-09-22 Atsushi Enomoto <atsushi@ximian.com>
1990 * SecurityBindingElement.cs : implement Clone(). Remove some MonoTODOs.
1992 2006-09-22 Atsushi Enomoto <atsushi@ximian.com>
1994 * MessageSecurityUtility.cs : fix warnings.
1996 2006-09-22 Atsushi Enomoto <atsushi@ximian.com>
1998 * MessageSecurityUtility.cs : actually there would be more than one
1999 EncryptedData. Decrypt all.
2001 2006-09-22 Atsushi Enomoto <atsushi@ximian.com>
2003 * MessageSecurityUtility.cs : supply correct URIs in SecureMessage().
2004 Use ISO10126 padding mode (it is not required but in manner).
2006 2006-09-21 Atsushi Enomoto <atsushi@ximian.com>
2008 * MessageSecurityUtility.cs : now that EncryptedXml decryption bug is
2009 fixed, remove 16 bytes workaround (we still need encryption bugfix in
2010 that class to make it work fine with mono client).
2011 Removed buggy lines that reset decryption key to AES.
2012 Modified GetKey() argument to take EncryptedData/EncryptedKey element.
2013 * WSSecurityMessageHeader.cs :
2014 (SecurityTokenReferenceKeyInfo) support LoadXml.
2016 2006-09-20 Atsushi Enomoto <atsushi@ximian.com>
2018 * TransactionMessageProperty.cs : new file.
2020 2006-09-20 Atsushi Enomoto <atsushi@ximian.com>
2022 * ChannelPoolSettings.cs, OneWayBindingElement.cs : build fix, as
2023 gmcs happened to report wrong code.
2025 2006-09-19 Atsushi Enomoto <atsushi@ximian.com>
2027 * SecurityChannelFactory.cs, SecurityChannelListener.cs :
2028 .ctor() now requires ChannelProtectionRequirements which will be
2029 supplied via BindingParameterCollection.
2030 * SymmetricSecurityBindingElement.cs,
2031 AsymmetricSecurityBindingElement.cs : thus add
2032 ChannelProtectionRequirement parameter to factory/listener.
2033 * SecurityRequestChannel.cs : use recipient token requirement to
2034 create an encryption token. Thus differentiate the logic from
2035 signing (initiator) token.
2037 2006-09-19 Atsushi Enomoto <atsushi@ximian.com>
2039 * SymmetricSecurityChannelFactory.cs, SecurityChannelFactory.cs :
2040 renamed former to latter.
2041 * SymmetricSecurityChannelListener.cs, SecurityChannelListener.cs :
2044 2006-09-19 Atsushi Enomoto <atsushi@ximian.com>
2046 * MessageSecurityBindingSupport.cs : new internal types to commonize
2047 AsymmetricSecurityBindingElement and SymmetricSecurityBindingElement
2048 and thus make internal factory and listener reusable.
2049 * SymmetricSecurityChannelFactory.cs, SecurityRequestContext.cs,
2050 SecurityRequestChannel.cs, SecurityOutputChannel.cs,
2051 SymmetricSecurityChannelListener.cs : rewrote dependent parts on
2052 SymmetricSecurityBindingElement, using the new types above.
2053 * SymmetricSecurityBindingElement.cs :
2054 Use SymmetricMessageSecurityBindingSupport.
2055 * AsymmetricSecurityBindingElement.cs :
2056 thus implemented, using AsymmetricMessageSecurityBindingSupport.
2058 2006-09-19 Atsushi Enomoto <atsushi@ximian.com>
2060 * ChannelFactoryBase.cs : more RC1 update.
2062 2006-09-19 Atsushi Enomoto <atsushi@ximian.com>
2064 * MessageEncoder.cs, BinaryMessageEncoder.cs, MtomMessageEncoder.cs,
2065 TextMessageEncoder.cs : updated ReadMessage() API to RC1.
2066 * ChannelListenerBase.cs, ChannelListenerBase_1.cs,
2067 ChannelBase.cs : RC1 API updates.
2068 * MessageImpl.cs : implemented Properties.
2069 * HttpReplyChannel.cs : added HttpRequestMessageProperty support.
2071 2006-09-18 Ankit Jain <jankit@novell.com>
2073 * MessageHeaders.cs (MessageId):
2074 (RelatesTo): UniqueId is not serializable, serialize it as a string.
2076 2006-09-17 Atsushi Enomoto <atsushi@ximian.com>
2078 * ChannelParameterCollection.cs : new file.
2079 * LayeredOutputChannel.cs, SecurityOutputChannel.cs :
2080 new files for IOutputChannel implementation.
2081 * OneWayBindingElement.cs : hacky implementation.
2082 * SymmetricSecurityChannelFactory.cs : support IOutputChannel.
2083 * MessageSecurityUtility.cs : now create identifier from the security
2084 token and the token parameters which is added as an argument.
2085 * SecurityRequestContext.cs,
2086 SecurityRequestChannel.cs : SecureMessage() argument changes.
2087 Set MessageSecurityVersion (SecurityTokenVersion) to the token
2090 2006-09-17 Atsushi Enomoto <atsushi@ximian.com>
2092 * HttpRequestChannel.cs : close the HttpWebRequest.
2094 2006-09-17 Atsushi Enomoto <atsushi@ximian.com>
2096 * HttpRequestChannel.cs,
2097 HttpChannelFactory.cs : implement async request/reply.
2098 * HttpChannelFactory.cs :
2099 verify factory state when creating a channel.
2101 2006-09-17 Atsushi Enomoto <atsushi@ximian.com>
2103 * MessageEncoder.cs, TextMessageEncoder.cs, MtomMessageEncoder.cs,
2104 BinaryMessageEncoder.cs : added message version mismatch check.
2106 2006-09-15 Atsushi Enomoto <atsushi@ximian.com>
2108 * SymmetricSecurityChannelListener.cs, SecurityRequestContext.cs :
2109 Making incomplete changes to handle different tokens for encryption
2111 * SymmetricSecurityChannelFactory.cs, SecurityRequestChannel.cs :
2112 split channel implementation classes out to the latter file.
2113 * MessageSecurityUtility.cs : seems like there is
2114 TimeStampValidityDuration property, so use it (incomplete; a server
2115 needs another love).
2117 2006-09-12 Atsushi Enomoto <atsushi@ximian.com>
2119 * MessageSecurityUtility.cs, SymmetricSecurityChannelFactory.cs,
2120 SecurityRequestContext.cs : now that we have key identifier clause
2121 and working ResolveKeyIdentifierClause(), just create keys inside
2122 SecureMessage(). Add KeyInfo to the xmldsig.
2124 2006-09-12 Atsushi Enomoto <atsushi@ximian.com>
2126 * SymmetricSecurityChannelFactory.cs, SecurityRequestContext.cs :
2127 pass SecurityKeyIdentifierClause to SecureMessage().
2128 * SecurityBindingElement.cs : set X509ReferenceStyle as Thumbprint
2129 for IssuedToken binding element.
2130 * SymmetricSecurityChannelListener.cs : removed hack to just create
2131 X509 security token, and implemented correct token creation.
2132 * WSSecurityMessageHeader.cs : added new KeyInfoClause type that
2133 wraps SecurityTokenReference element.
2134 * MessageSecurityUtility.cs : use the above.
2136 2006-09-08 Atsushi Enomoto <atsushi@ximian.com>
2138 * MessageSecurityUtility.cs : raise MessageSecurityException when it
2139 could not find a security header.
2140 * SymmetricSecurityChannelFactory.cs : now it also supports
2141 IRequestSessionChannel. Extracted SecurityRequestChannel out from
2144 2006-09-08 Atsushi Enomoto <atsushi@ximian.com>
2146 * SecurityRequestContext.cs : moved securing message part to
2147 MessageSecurityUtility.cs.
2148 * MessageSecurityUtility.cs : the change above.
2149 use DateTime.Now for timestamp basis. Don't append signature to
2150 the document. Instead it is added to the header. Capture body
2151 content instead of the body itself.
2152 * SymmetricSecurityChannelFactory.cs : decrypt reply message to
2153 be processed by upper layers.
2155 2006-09-08 Atsushi Enomoto <atsushi@ximian.com>
2157 * MessageSecurityUtility.cs, WSSecurityMessageHeader.cs,
2158 SymmetricSecurityChannelListener.cs,
2159 SymmetricSecurityChannelFactory.cs, SecurityRequestContext.cs :
2160 more refactoring. Request serialization became much more conformant
2161 and add required header items.
2162 Security Token retrieval is needed to send it in the request.
2163 Fixed wrong key encryption.
2165 2006-09-07 Atsushi Enomoto <atsushi@ximian.com>
2167 * SecurityRequestContext.cs : the workaround was not functional.
2169 2006-09-07 Atsushi Enomoto <atsushi@ximian.com>
2171 * SecurityRequestContext.cs : some more refactoring. Use EncryptedXml
2172 API, especially ReplaceData(), instead of native crypto stuff.
2173 * WSSecurityMessageHeader.cs : handle dsig:Signature as well (for
2174 MessageProtectionOrder.SignBeforeEncrypt).
2176 2006-09-07 Atsushi Enomoto <atsushi@ximian.com>
2178 * SecurityRequestContext.cs : label should be combined of both
2179 the client's and the server's.
2181 2006-09-06 Atsushi Enomoto <atsushi@ximian.com>
2183 * SecurityRequestContext.cs : enable key derivation (though for now
2184 GenerateDerivedKey() is unimplemented). Create meaningful,
2185 decrypted request message to be consumed by the upper layer.
2187 2006-09-06 Atsushi Enomoto <atsushi@ximian.com>
2189 * SecurityRequestContext.cs : implement Close() and Reply().
2190 ongoing implementation of Reply(TimeSpan).
2191 * MessageSecurityUtility.cs : new file to collect utility methods.
2192 * SymmetricSecurityChannelFactory.cs : moved securing message code
2194 * SymmetricSecurityChannelListener.cs : tiny renaming.
2196 2006-09-06 Atsushi Enomoto <atsushi@ximian.com>
2198 * SecurityRequestContext.cs : security header is also stored.
2200 * WSSecurityMessageHeader.cs : read EncryptedKey and EncryptedData
2203 2006-09-06 Atsushi Enomoto <atsushi@ximian.com>
2205 * SymmetricSecurityChannelFactory.cs : tiny progress on securing
2208 2006-09-05 Atsushi Enomoto <atsushi@ximian.com>
2210 * SymmetricSecurityChannelFactory.cs : specify KeyUsage.Exchange
2211 so that it retrieves the security key in that manner.
2213 2006-09-05 Atsushi Enomoto <atsushi@ximian.com>
2215 * Binding.cs : MessageVersion is null when there is no
2216 MessageEncodingBindingElement.
2217 * Message.cs : null arg check.
2219 2006-09-05 Atsushi Enomoto <atsushi@ximian.com>
2221 * ChannelPoolSettings.cs, OneWayBindingElement.cs : new files.
2223 2006-09-04 Atsushi Enomoto <atsushi@ximian.com>
2225 * SymmetricSecurityChannelListener.cs, SecurityRequestContext.cs,
2226 LayeredReplyChannel.cs, LayeredCommunicationObject.cs,
2227 LayeredRequestChannel.cs : some refactoring.
2228 * SymmetricSecurityChannelFactory.cs :
2229 ongoing secure message creation implementation.
2231 2006-09-01 Atsushi Enomoto <atsushi@ximian.com>
2233 * SymmetricSecurityBindingElement.cs :
2234 pass specific ServiceCredentialsSecurityTokenManager type to
2235 SymmetricSecurityChannelListener as it needs ServiceCertificate.
2236 * SymmetricSecurityChannelListener.cs :
2237 get service certificate. It's a temporary hack.
2238 Move RequestContext code to below.
2239 * SecurityRequestContext.cs : new file.
2240 * WSSecurityMessageHeader.cs : implementing Read(), but to finish
2241 it I have to finish decryption of the incoming message.
2243 2006-08-31 Atsushi Enomoto <atsushi@ximian.com>
2245 * MessageImpl.cs : don't write attributes on the first body content
2246 element *on soap Body element*.
2247 * MessageBufferImpl.cs : don't throw ArgumentNullException.
2248 ObjectDisposedException is appropriate.
2249 * MessageHeader.cs : (RawMessageHeader) don't write element itself
2250 in OnWriteHeader*Contents*().
2252 2006-08-31 Atsushi Enomoto <atsushi@ximian.com>
2254 * WSSecurityMessageHeader.cs : new file.
2255 * SymmetricSecurityChannelFactory.cs :
2256 moved WSSecurityHeader and related types to the above.
2257 * SymmetricSecurityChannelListener.cs :
2258 reject SOAP-env-less message.
2260 2006-08-31 Atsushi Enomoto <atsushi@ximian.com>
2262 * SecurityChannelListener.cs, SymmetricSecurityChannelListener.cs :
2263 renamed former to latter.
2264 * SymmetricSecurityChannelFactory.cs :
2265 create requirements every time. It is also likely that I need
2266 another requirement instance to get service credentials here.
2268 2006-08-30 Atsushi Enomoto <atsushi@ximian.com>
2270 * SymmetricSecurityBindingElement.cs : make BuildChannelListener()
2271 similar to BuildChannelFactory() (set credentials, issuer binding
2273 * SecurityChannelListener.cs :
2274 more ongoing security support implementation.
2275 * SymmetricSecurityChannelFactory.cs :
2276 moved GetSecurityKey() to SymmetricSecurityRequestChannel.
2278 2006-08-29 Atsushi Enomoto <atsushi@ximian.com>
2280 * SecurityChannelListener.cs, SymmetricSecurityBindingElement.cs :
2281 Renamed SecurityChannelListener to SymmetricSecurityChannelListener.
2282 Implementation is underway.
2283 * LayeredReplyChannel.cs :
2284 like LayeredRequestChannel, use ChannelListenerBase to provide
2287 2006-08-29 Atsushi Enomoto <atsushi@ximian.com>
2289 * MessageHeader.cs : added another implementation type that uses
2290 XmlElement, for buffering purpose.
2291 * MessageImpl.cs : Header item types are user-driven by
2292 MessageHeader.GetHeader<T>(int), so at storing phase just store
2293 nodes as XmlElement.
2294 * MessageHeaders.cs : avoid dumping XmlNode to string to create
2297 2006-08-28 Atsushi Enomoto <atsushi@ximian.com>
2299 * SymmetricSecurityBindingElement.cs : find ClientCredentials from
2300 BindingParameterCollection, not from binding element properties.
2302 2006-08-28 Atsushi Enomoto <atsushi@ximian.com>
2304 * SecurityChannelFactory.cs, SymmetricSecurityChannelFactory.cs :
2305 renamed former to latter.
2307 2006-08-25 Atsushi Enomoto <atsushi@ximian.com>
2309 * SecurityBindingElement.cs : SetIssuerBindingContext should also
2310 work for SslSecurityTokenParameters.
2312 2006-08-24 Atsushi Enomoto <atsushi@ximian.com>
2314 * SecurityBindingElement.cs :
2315 Added SetIssuerBindingContextIfRequired().
2316 * SecurityChannelFactory.cs :
2317 Changed .ctor() arg again, just to receive binding element.
2318 * SymmetricSecurityBindingElement.cs :
2319 Call SetIssuerBindingContextIfRequired() in BuildChannelFactory().
2320 SymmetricSecurityChannelFactory .ctor() arg changes.
2321 "ProtectionTokenParameters" is not passed now.
2323 2006-08-23 Atsushi Enomoto <atsushi@ximian.com>
2325 * SymmetricSecurityBindingElement.cs : requirements should be
2326 filled at InitializeSecurityTokenParameters as long as possible.
2327 SymmetricSecurityChannelFactory<T> now does not receive
2328 requirements (it now creates one inside it) at .ctor().
2329 * SecurityChannelFactory.cs : remove requirement argument.
2331 2006-08-23 Atsushi Enomoto <atsushi@ximian.com>
2333 * SymmetricSecurityBindingElement.cs : implemented copy constructor.
2335 2006-08-22 Atsushi Enomoto <atsushi@ximian.com>
2337 * SymmetricSecurityBindingElement.cs :
2338 MessageSecurityVersion property is of type SecurityTokenVersion.
2339 * SecurityBindingElement.cs :
2340 Implemented CreateSecureConversationBindingElement().
2341 For CreateIssuedTokenBindingElement(), ProtectionTokenParameters is
2342 the argument IssuedSecurityTokenParameters itself.
2344 2006-08-22 Atsushi Enomoto <atsushi@ximian.com>
2346 * SymmetricSecurityBindingElement.cs :
2347 CreateSecurityTokenManager() can be directly used now.
2348 Use CallInitializeSecurityTokenRequirement() to fill requirement
2351 2006-08-16 Atsushi Enomoto <atsushi@ximian.com>
2353 * ChannelFactoryBase.cs : GetProperty() is virtual.
2355 2006-08-14 Atsushi Enomoto <atsushi@ximian.com>
2357 * SymmetricSecurityBindingElement.cs : in BuildChannelFactory(),
2358 create token manager, token parameters and token requirements,
2359 and fill some requirements.
2360 * TransportBindingElement.cs, HttpTransportBindingElement.cs,
2361 TextMessageEncodingBindingElement.cs : workaround to not throw NIE.
2362 * BindingContext.cs : implemented RemainingBindingElements.
2363 kill "no remaining binding element" error in GetInnerProperty()
2364 * SecurityChannelFactory.cs : now it became
2365 SymmetricSecurityChannelFactory, thus soon to be renamed.
2366 Several ongoing actual security resolution is on.
2368 2006-08-11 Atsushi Enomoto <atsushi@ximian.com>
2370 * CommunicationObject.cs :
2371 add GetCommunicationObjectType() and use it.
2372 * ChannelFactoryBase.cs, ChannelListenerBase_1.cs :
2373 use ThrowIfDisposedOrNotOpen().
2374 * LayeredCommunicationObject.cs : have similar ThrowIf...() methods
2375 to CommunicationObject. Make it IDisposable.
2376 * LayeredRequestChannel.cs : use above.
2377 * SecurityChannelFactory.cs : removed state check as it is done at
2380 2006-08-10 Atsushi Enomoto <atsushi@ximian.com>
2382 * SecurityBindingElement.cs : (CanBuildChannelFactory and
2383 CanBuildChannelListener) directly dispatch to BindingContext.
2384 * SymmetricSecurityBindingElement.cs : require protection token
2385 parameters before building a channel or a listener.
2386 * ChannelFactoryBase.cs : raise an error when a channel is being
2387 created without opening the factory.
2388 * ChannelListenerBase_1.cs : ditto for the listener.
2389 * SecurityChannelFactory.cs : before sending a request, it must be
2392 2006-08-07 Atsushi Enomoto <atsushi@ximian.com>
2394 * MessageBufferImpl.cs : initialize fields.
2395 workaround BufferSize just to return 0.
2396 * MessageImpl.cs : for BodyWriter, don't use DefaultMessageBuffer
2397 which does not support multi time write.
2398 * Message.cs : implemented State.
2400 2006-08-07 Atsushi Enomoto <atsushi@ximian.com>
2402 * Message.cs : OnGetBodyAttribute() cannot return anything unless it
2403 is consuming XmlReader.
2404 Implemented OnCreateBufferedCopy(), to return XPathMessageBuffer.
2405 * MessageBuffer.cs : implemented CreateNavigator().
2406 * MessageBufferImpl.cs : added XPathMessageBuffer class.
2408 I kinda know that MS heavily depends on binary XmlReader and may have
2409 XPathNavigator implementation based on the binary stuff, but at
2410 least for now we have almost no motivation to mimick it.
2412 2006-08-07 Atsushi Enomoto <atsushi@ximian.com>
2414 * SecurityChannelFactory.cs : a bit more of security header code.
2416 2006-08-04 Atsushi Enomoto <atsushi@ximian.com>
2418 * SymmetricSecurityBindingElement.cs :
2419 set default MessageProtectionOrder in every construction.
2421 2006-08-03 Atsushi Enomoto <atsushi@ximian.com>
2423 * LayeredRequestChannel.cs, SecurityChannelFactory.cs :
2424 changed to require ChannelFactoryBase to support default timeout.
2425 Made some methods non-virtual. Preparing code to add security
2426 headers (empty yet).
2427 * SecurityBindingElement.cs : implemented several factory methods
2428 that return SymmetricSecurityBindingElement.
2430 2006-08-02 Atsushi Enomoto <atsushi@ximian.com>
2432 * IStreamUpgradeBindingElement.cs,
2433 StreamUpgradeBindingElement.cs : renamed from former to latter.
2435 2006-08-02 Atsushi Enomoto <atsushi@ximian.com>
2437 * IStreamUpgradeBindingElement.cs : API update, soon to be renamed.
2439 2006-07-31 Ankit Jain <jankit@novell.com>
2441 * MessageHeaders.cs (From): Use Constants.WSA1
2442 (MessageId): Implement the same pattern as other properties (From etc).
2444 2006-07-28 Atsushi Enomoto <atsushi@ximian.com>
2446 * LocalClientSecuritySettings.cs : initialize IdentityVerifier as well.
2447 * SecurityBindingElement.cs : some cosmetic changes.
2449 2006-07-28 Atsushi Enomoto <atsushi@ximian.com>
2451 * SecurityBindingElement.cs : LocalClientSettings and
2452 LocalServiceSettings returns an instance for each.
2453 * LocalClientSecuritySettings.cs : initialized fields.
2455 2006-07-28 Atsushi Enomoto <atsushi@ximian.com>
2457 * LocalClientSecuritySettings.cs : moved from S.SM.Description, and
2458 kinda implemented Clone() just with MemberwiseClone().
2460 2006-07-27 Ankit Jain <jankit@novell.com>
2462 * MessageHeaders.cs (set_To): Use Uri.AbsoluteUri .
2463 * MessageHeader.cs (knownTypes): New. Known type array containing
2465 (CreateHeader): Use knownTypes with the DataContractSerializer .ctor
2467 2006-07-21 Atsushi Enomoto <atsushi@ximian.com>
2469 * LayeredRequestChannel.cs, LayeredReplyChannel.cs,
2470 LayeredCommunicationObject.cs,
2471 SecurityChannelFactory.cs, SecurityChannelListener.cs :
2472 new files to support security channels, though right now they
2473 just pass inner channels through.
2474 * SymmetricSecurityBindingElement.cs : use above.
2476 2006-07-21 Atsushi Enomoto <atsushi@ximian.com>
2478 * AsymmetricSecurityBindingElement.cs,
2479 SymmetricSecurityBindingElement.cs :
2480 Default SecurityTokenParameters is null.
2482 2006-07-20 Atsushi Enomoto <atsushi@ximian.com>
2484 * AsymmetricSecurityBindingElement.cs : remove NotImpl for now.
2486 2006-07-20 Atsushi Enomoto <atsushi@ximian.com>
2488 * Message.cs : When EnvelopeVersion is None, don't write SOAP
2490 * MessageHeader.cs : don't write headers when EnvelopeVersion is None.
2491 * MessageHeaders.cs : When EnvelopeVersion is None, don't output
2492 headers. When AddressingVersion is None, don't output addressing
2493 headers as well, except for Action which is still needed by
2496 2006-07-20 Atsushi Enomoto <atsushi@ximian.com>
2498 * MessageHeaders.cs : changed specific properties to find it from
2499 headers as Action property does (local variables won't be set by
2500 setter). Cache serializers. Check null serializer arguments.
2501 For EndpointAddress, GetHeader<T>() shouldn't use serializer.
2503 2006-07-19 Atsushi Enomoto <atsushi@ximian.com>
2505 * MessageHeader.cs : WriteTo() should treat EndpointAddress to not
2506 use XmlObjectSerializer (since it is not data contract type).
2508 2006-07-18 Atsushi Enomoto <atsushi@ximian.com>
2510 * MessageImpl.cs : Improved ReadHeaders().
2511 For certain header items, use EndpointAddress.ReadFrom().
2513 2006-07-18 Atsushi Enomoto <atsushi@ximian.com>
2515 * AsymmetricSecurityBindingElement.cs :
2516 it is not ISecurityCapabilities anymore.
2518 2006-07-18 Atsushi Enomoto <atsushi@ximian.com>
2520 * MessageVersion.cs : added None.
2522 2006-07-14 Atsushi Enomoto <atsushi@ximian.com>
2524 * Message.cs : GetReaderAtBodyContents() implementation using
2527 2006-07-13 Atsushi Enomoto <atsushi@ximian.com>
2529 * Message.cs : CreateMessage(version,action,xmlReader) incorrectly
2530 used MessageVersion.Default.
2532 2006-07-12 Duncan Mak <duncan@novell.com>
2534 * MessageBuffer.cs (MessageContentType): Return
2535 "application/soap+msbin1".
2537 * MessageImpl.cs (EmptyMessage.OnCreateBufferedCopy):
2538 (SimpleMessage.OnCreateBufferedCopy):
2539 (XmlReaderMessage.OnCreateBufferedCopy): Hook up with the new
2540 MessageBuffer implementations.
2542 * MessageBufferImpl.cs: Concrete implmentations for MessageBuffer.
2543 (DefaultMessageBuffer): Used by EmptyMessage and SimpleMessage.
2544 (XmlReaderMessageBuffer): Used by XmlReaderMessage.
2546 2006-07-12 Atsushi Enomoto <atsushi@ximian.com>
2548 * MessageImpl.cs : Action should be added in request messages. Omit
2549 it only in reply message, thus moved to dispatcher logic.
2551 2006-07-12 Ankit Jain <jankit@novell.com>
2553 * HttpRequestChannel.cs (HttpRequestChannel.Request): Workaround for a
2554 bug in WebConnectionStream.
2555 * MessageHeaders.cs (MessageHeaders.From):
2556 (MessageHeaders.ReplyTo):
2557 (MessageHeaders.To): Add the corresponding MessageHeader on set.
2559 2006-07-11 Atsushi Enomoto <atsushi@ximian.com>
2561 * MessageImpl.cs : when AddressingVersion is None (e.g. POX), don't
2562 add SOAP Action to the response at any time.
2564 2006-07-10 Atsushi Enomoto <atsushi@ximian.com>
2566 * SymmetricSecurityBindingElement.cs,
2567 SecurityBindingElement.cs : They are not ISecurityCapabilities now.
2568 Implemented .ctor() and some properties.
2570 2006-07-10 Atsushi Enomoto <atsushi@ximian.com>
2572 * TransactionFlowBindingElement.cs : new file.
2573 * HttpTransportBindingElement.cs : added missing KeepAliveEnabled.
2575 2006-07-06 Atsushi Enomoto <atsushi@ximian.com>
2578 DefaultAction vanished. CreateFault() now takes bufferSize arg.
2579 * MessageHeaders.cs : ArgumentException -> MessageHeaderException.
2580 * AddressingVersion.cs : added None. Equals() and GetHashCode()
2581 vanished (there is anyways no way to instantiate this type).
2582 * MessageVersion.cs : added Soap11 and Soap12.
2583 * TextMessageEncoder.cs : silly quotation mark wrapper disappeared
2584 in June CTP. goodie.
2586 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
2588 * MtomMessageEncoder.cs, BinaryMessageEncoder.cs, Message.cs :
2589 removed some vanished CreateMessage() overloads.
2591 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
2593 * CustomBinding.cs, HttpsTransportBindingElement.cs,
2594 HttpTransportBindingElement.cs :
2595 They are not ISecurityCapabilities anymore.
2596 Modified code to match June CTP behavior.
2598 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
2600 * StreamSecurityUpgradeProvider.cs : Identity -> EndpointIdentity.
2602 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
2604 * EmptyFaultException.cs : removed unused code.
2605 * IRequestContext.cs, RequestContext.cs : renamed former to latter.
2607 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
2609 * LayeredChannelFactory.cs : removed obsolete class.
2610 * ChannelFactoryBase.cs, HttpChannelFactory.cs,
2611 ChannelListenerBase.cs, HttpChannelListener.cs,
2612 HttpReplyChannel.cs, ChannelManagerBase.cs :
2613 all those changes were brought by ChannelManagerBase changes.
2615 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
2617 * ReplyChannelBase.cs, HttpChannelFactory.cs, ChannelBase.cs
2618 CommunicationObject.cs, HttpChannelListener.cs,
2619 ChannelFactoryBase.cs :
2620 CommunicationObject abstract changes brought this madness.
2622 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
2624 * BindingContext.cs : listenUri address parameters could be null in
2627 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
2629 * IRequestContext.cs :
2630 Now it became a class. File renaming will follow soon.
2631 * IChannelFactory.cs, IInputChannel.cs, IReplyChannel.cs,
2632 IDuplexChannel.cs, IDuplexSessionChannel.cs,
2633 IOutputChannel.cs, IOutputSessionChannel.cs,
2634 IRequestChannel.cs, IRequestSessionChannel.cs :
2635 They are not IDisposable anymore.
2636 For IReplyChannel, IRequestContext -> RequestContext.
2637 * IChannelListener.cs : removed Identity. Added GetProperty().
2638 * ChannelListenerBase.cs, ChannelListenerBase.cs,
2639 ReplyChannelBase.cs, HttpReplyChannel.cs :
2640 Several members disappeared, and dependent changes.
2641 * HttpTransportBindingElement.cs,
2642 HttpChannelListener.cs, :
2643 ChannelListenerBase.SharedChannelListener vanished.
2645 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
2647 * MessageEncodingBindingElement.cs
2648 MtomMessageEncodingBindingElement.cs,
2649 TextMessageEncodingBindingElement.cs,
2650 BinaryMessageEncodingBindingElement.cs :
2651 June CTP updates: AddressingVersion -> MessageVersion.
2652 * Binding.cs : June CTP. MessageVersion is added.
2653 * ChannelBase.cs, BindingContext.cs, IChannel.cs
2654 ChannelListenerBase_1.cs,
2655 ChannelListenerBase.cs, IChannelListener.cs,
2657 ChannelFactoryBase.cs, ChannelManagerBase.cs :
2658 June CTP. Several interface changes.
2659 * HttpTransportBindingElement.cs : June CTP. HttpMappingMode is gone.
2660 * IChannelManager.cs, LayeredChannelListener.cs,
2661 GenericWrapperChannelFactory.cs,
2662 GenericWrapperChannelListener.cs : They are not used anymore.
2664 2006-07-04 Atsushi Enomoto <atsushi@ximian.com>
2666 * MtomMessageEncoder.cs, BinaryMessageEncoder.cs :
2667 sync fix with June CTP API updates.
2669 2006-07-03 Ankit Jain <jankit@novell.com>
2671 * MessageEncodingBindingElementConverter.cs:
2672 * StandardBindingConverter.cs:
2673 * TransportBindingElementConverter.cs:
2674 * TransactionFlowBindingElementConverter.cs:
2675 * ReliableSessionBindingElementConverter.cs:
2676 * SecurityBindingElementConverter.cs:
2677 Rename *Converter.cs to *Importer.cs
2679 * TransferMode.cs: Move to System.ServiceModel
2681 2006-06-22 Atsushi Enomoto <atsushi@ximian.com>
2683 * CommunicationObject.cs : make sure to change State before
2684 OnClosing/OnClosed/OnOpening/OnOpened when they are overriden.
2686 2006-06-20 Atsushi Enomoto <atsushi@ximian.com>
2688 * Message.cs : output WSAddressing xmlns only when Action is
2689 specified (To should be affected, but seems like it is ignored).
2691 2006-06-20 Atsushi Enomoto <atsushi@ximian.com>
2693 * MessageImpl.cs : don't set Action when it is null.
2695 2006-06-12 Ankit Jain <jankit@novell.com>
2697 * TransportBindingElementConverter.cs (ImportEndpoint): Implement.
2699 2006-05-29 Atsushi Enomoto <atsushi@ximian.com>
2701 * SecurityBindingElement.cs, SecurityBindingElementConverter.cs :
2702 some updated API fixes.
2704 2006-05-29 Atsushi Enomoto <atsushi@ximian.com>
2706 * EnvelopeVersion.cs : moved back to S.SM.
2708 2006-05-29 Atsushi Enomoto <atsushi@ximian.com>
2710 * IBindingManualAddressing.cs : vanished in beta2.
2711 * HostedTransportConfiguration.cs, EnvelopeVersion.cs,
2712 LocalClientSecuritySettings.cs, LocalServiceSecuritySettings.cs :
2714 * SecurityBindingElement.cs :
2715 SecurityStandardsManager -> SecurityTokenSerializer.
2717 2006-05-29 Atsushi Enomoto <atsushi@ximian.com>
2719 * XmlSerializerBodyWriter.cs : new file to handle
2720 TypedMessageConverter.ToMessage().
2722 2006-04-26 Ankit Jain <jankit@novell.com>
2724 * TransportBindingElementConverter.cs (BeforeImport): Remove
2725 NotImplementedException.
2726 (ImportContract): Likewise.
2727 * CustomBinding.cs (.ctor): Use scheme from the binding parameter.
2729 2006-04-14 Atsushi Enomoto <atsushi@ximian.com>
2731 * HttpRequestChannel.cs, HttpChannelFactory.cs : message encoder
2732 being used was not reflecting that of Binding elements.
2734 2006-04-07 Atsushi Enomoto <atsushi@ximian.com>
2736 * HttpReplyChannel.cs : when SOAP action is not set as a header item,
2737 just assume that it is in the message.
2739 2006-04-06 Atsushi Enomoto <atsushi@ximian.com>
2741 * HttpReplyChannel.cs : actually HTTP header item might be null.
2743 2006-04-06 Atsushi Enomoto <atsushi@ximian.com>
2745 * HttpReplyChannel.cs : under SOAP 1.1 SOAP Action is sent as HTTP
2748 2006-04-06 Atsushi Enomoto <atsushi@ximian.com>
2750 * TextMessageEncoder.cs : for SOAP 1.1 content type is text/xml.
2752 2006-04-06 Atsushi Enomoto <atsushi@ximian.com>
2754 * MessageFault.cs : Fixed SOAP12 reason output.
2756 2006-04-05 Atsushi Enomoto <atsushi@ximian.com>
2758 * HttpReplyChannel.cs : no need to set response ContentEncoding since
2759 MessageEncoder.ContentType explicitly contains encoding.
2760 * AddressingVersion.cs : added ActionNotSupported property. Not sure
2761 if it is SOAP version dependent.
2763 2006-03-23 Atsushi Enomoto <atsushi@ximian.com>
2765 * HttpReplyChannel.cs : actually I could just workaround bug #77816.
2767 2006-03-16 Atsushi Enomoto <atsushi@ximian.com>
2769 * HttpChannelFactory.cs BindingContext.cs
2770 HttpChannelListener.cs HttpTransportBindingElement.cs :
2771 Now BindingContext holds MessageEncoder, and non-custom
2772 channel factory/listener should use it.
2773 * MtomMessageEncodingBindingElement.cs
2774 TextMessageEncodingBindingElement.cs
2775 BinaryMessageEncodingBindingElement.cs : BuildChannelFactory()/
2776 -Listener() now sets internal BindingContext.MessageEncoder.
2777 Fixed some public API.
2779 2006-03-15 Atsushi Enomoto <atsushi@ximian.com>
2781 * BindingContext.cs : CanBuildChannelXXX() should not raise error
2782 for insufficient elements.
2783 * DispatchRuntime.cs : OperationDescription name is not action. So
2784 OperationSelector is created by name, not by action.
2785 * TextMessageEncodingBindingElement.cs : Feb. CTP API fixes.
2787 2006-03-14 Atsushi Enomoto <atsushi@ximian.com>
2789 * MessageFaultBodyWriter.cs
2790 XmlReaderBodyWriter.cs
2791 XmlObjectSerializerBodyWriter.cs : made internal.
2792 * SecurityBindingElement.cs
2793 AsymmetricSecurityBindingElement.cs
2794 SymmetricSecurityBindingElement.cs : API fixes.
2795 * TransportBindingElementConverter.cs : ditto.
2796 * TextMessageEncodingBindingElement.cs : added set_AddressingVersion.
2797 * WindowsStreamSecurityBindingElement.cs
2798 SslStreamSecurityBindingElement.cs
2799 TransportSecurityBindingElement.cs : new files.
2801 2006-03-14 Atsushi Enomoto <atsushi@ximian.com>
2803 * MessageImpl.cs : according to the W3C REC, mustUnderstand when
2804 reading can be any xs:boolean value.
2806 2006-03-14 Atsushi Enomoto <atsushi@ximian.com>
2808 * Message.cs MessageImpl.cs : more sorting out the role of each
2810 * MessageHeader.cs : use envelope namespace, not addressing namespace.
2812 2006-03-14 Atsushi Enomoto <atsushi@ximian.com>
2814 * Message.cs : don't write body contents if it is empty.
2815 Moved WriteStartElement(,"Header",) to OnWriteStartHeaders().
2816 * MessageImpl.cs : implemented XmlReaderMessage.OnWriteBodyContents().
2817 * TextMessageEncoder.cs : WriteMessage() should close XmlWriter.
2818 * HttpRequestChannel.cs : close request stream before GetResponse().
2820 2006-03-13 Atsushi Enomoto <atsushi@ximian.com>
2822 * TextMessageEncoderFactory.cs
2823 TextMessageEncoder.cs : encoder does not hold reference to the
2824 factory anymore. Use MessageVersion property in CreateMssage().
2825 * HttpChannelListener.cs : now it holds message encoder.
2826 * HttpReplyChannel.cs : now it uses listener's shared message encoder.
2827 * MessageImpl.cs : header is optional.
2828 * EnvelopeVersion.cs : namespace URI is missing.
2830 2006-03-10 Atsushi Enomoto <atsushi@ximian.com>
2832 * CustomBinding.cs : removed Initialize().
2833 * Message.cs : renamed ForwardingMessage -> XmlReaderMessage.
2834 * MessageImpl.cs : renamed ForwardingMessage to XmlReaderMessage (used
2835 by Message.CreateMessage(MessageVersion,XmlReader,int) and
2836 implemented Headers, IsEmpty and GetReaderAtBodyContents().
2838 2006-03-08 Atsushi Enomoto <atsushi@ximian.com>
2840 * MessageHeaders.cs : implemented GetReaderAtHeader() and Action (it
2841 could be also added by Add() method and could be reset by Remove()).
2842 * MessageImpl.cs : implemented more. As noted above, Now we don't
2843 have to add Action header explicitly.
2844 * MessageHeader.cs : recovered Writer methods and ToString() from
2845 commented old version. Use prefixes for writing.
2846 Use WriteObjectContent() rather than WriteObject() (it needs
2847 DataContractSerializer fix btw).
2849 2006-03-08 Atsushi Enomoto <atsushi@ximian.com>
2851 * MessageHeader.cs : added missing IsReferenceParameter.
2852 * MessageHeaderInfo.cs : added missing IsReferenceParameter.
2853 * MessageHeaders.cs : avoid NullRef when actors is null.
2854 * MessageImpl.cs : (MessageImplBase) add Action header in .ctor().
2855 (ForwardingMessage) reader consumer is being added (not done).
2856 * MtomMessageEncodingBindingElement.cs : simply use Mtom factory.
2857 * MtomMessageEncoder.cs : updated ContentType value to Feb. CTP.
2858 * HttpRequestChannel.cs : this channel automatically call Open()
2859 when Request() is called. Set content length for request.
2860 Use MessageEncoder's ContentType to also handle charset.
2862 2006-03-07 Atsushi Enomoto <atsushi@ximian.com>
2864 * MessageImpl.cs : make them internal.
2865 * HttpReplyChannel.cs : set HttpListenerResponse properties correctly.
2867 2006-03-07 Atsushi Enomoto <atsushi@ximian.com>
2869 * ChannelManagerBase.cs : cleanup MonoTODO and unused field.
2870 * HttpChannelListener.cs : removed commented line.
2871 * RequestChannelBase.cs : new base class for request channel classes.
2872 * ChannelListenerBase.cs : OnEndClose() is rather NotImplemented yet.
2873 * HttpReplyChannel.cs : WaitHandle accepts limited timeout value.
2874 * Message.cs : default IsEmpty and IsFault false by default.
2875 * LayeredChannelListener.cs : removed Uri (no chance to set).
2876 * ChannelBase.cs : reimplemented timeout properties.
2877 * HttpRequestChannel.cs : now it is mostly based on
2878 RequestChannelBase. Some more attempt to implement Request().
2880 2006-03-07 Atsushi Enomoto <atsushi@ximian.com>
2882 * Binding.cs CustomBinding.cs : removed OnApplyConfiguration() and
2883 OnInitialize(). Added more BuildChannelListener() overloads.
2885 2006-03-06 Atsushi Enomoto <atsushi@ximian.com>
2887 * Binding.cs : added some more missing members especially to support
2889 * HttpChannelListener.cs : Uri should not be null.
2890 * HttpTransportBindingElement.cs : implemented
2891 CanBuildChannelFactory() and CanBuildChannelListener().
2892 * ServiceHostBase.cs : make Initialize() practically work at OnOpen().
2894 2006-03-06 Atsushi Enomoto <atsushi@ximian.com>
2896 * Binding.cs : updated default namespace property value to Feb. CTP.
2898 2006-03-03 Atsushi Enomoto <atsushi@ximian.com>
2900 * AddressHeader.cs : avoid null reference when value is null.
2901 * BindingContext.cs : check null ListenUri args.
2903 2006-03-03 Atsushi Enomoto <atsushi@ximian.com>
2905 * MessageFault.cs : Fixed default action name. Null arg check.
2907 2006-03-03 Atsushi Enomoto <atsushi@ximian.com>
2909 * BindingElement.cs : Dequeue elements in BindingContext directly.
2910 * BindingContext.cs : Added GetProperty<T>().
2911 * GenericWrapperChannelFactory.cs GenericWrapperChannelListener.cs :
2912 Now we don't need these extra classes, so marked as deprecated.
2914 2006-03-03 Atsushi Enomoto <atsushi@ximian.com>
2916 * Binding.cs : null arg check.
2917 * AddressingVersion.cs : fixed constants to pass the tests.
2918 * BindingElement.cs : tiny meessage fix.
2920 2006-03-02 Atsushi Enomoto <atsushi@ximian.com>
2922 * MessageEncodingBindingElement.cs
2923 BinaryMessageEncodingBindingElement.cs
2924 TextMessageEncodingBindingElement.cs
2925 MtomMessageEncodingBindingElement.cs
2926 MessageEncodingBindingElementConverter.cs : several API fixes.
2927 * BindingElement.cs : now if we use generic wrapper it causes
2928 infinite loop, so for now replace it with most-possible-but-
2931 2006-03-02 Atsushi Enomoto <atsushi@ximian.com>
2933 (back to normal "record-ChangeLogs" mode after the big API change mess)
2934 * HttpTransportBindingElement.cs : fixed minor API differences.
2936 2006-02-23 Atsushi Enomoto <atsushi@ximian.com>
2938 * AsymmetricSecurityBindingElement.cs SecurityBindingElement.cs
2939 SymmetricSecurityBindingElement.cs :
2940 Dependent fixes for System.IdentityModel reorgainzation.
2942 2006-02-23 Atsushi Enomoto <atsushi@ximian.com>
2944 * InputChannelBase.cs.notused IInputSession.cs IOutputSession.cs
2945 IProxyFormatter.cs WSHttpBindingBase.cs
2946 PnrpPeerResolverBindingElement.cs IMessageHeaderInfo.cs
2947 MessageInterceptorEventArgs.cs WSHttpBinding.cs
2948 WSFederationBinding.cs ISessionChannel.cs
2949 CompositeDuplexBindingElement.cs MessageVersion.cs
2950 MessageHeader.cs IRequestSessionChannel.cs
2951 BindingElementCollection.cs IReplySessionChannel.cs
2952 MessageProperties.cs IDuplexClientChannel.cs
2953 IInputSessionChannel.cs MessageImpl.cs IDuplexSessionChannel.cs
2954 TcpTransportBindingElement.cs EmptyFaultException.cs
2955 IBindingRuntimePreferences.cs AddressHeaderCollection.cs
2956 IStubFormatter.cs AsymmetricSecurityBindingElement.cs
2957 ConnectionOrientedTransportBindingElement.cs
2958 IProxyOperationSelector.cs MessageBuffer.cs IChannel.cs
2959 PeerResolverBindingElement.cs Message.cs
2960 HttpsTransportBindingElement.cs BindingElement.cs
2961 NamedPipetransportBindingElement.cs IBindingManualAddressing.cs
2962 MessageFaultBodyWriter.cs IReplyChannel.cs
2963 IBindingCapabilities.cs AddressHeader.cs IInputChannel.cs
2964 IMessageProperty.cs IOutputChannel.cs NetPeerTcpBinding.cs
2965 IRequestContext.cs IInputSessionShutdown.cs
2966 SecurityBindingElement.cs PeerTransportBindingElement.cs
2967 IDuplexSession.cs IChannelInitializer.cs
2968 IProxyMessageInspector.cs IChannelListener.cs NetTcpBinding.cs
2969 AddressingVersion.cs FaultException.cs
2970 IRequestChannel.cs MtomMessageEncodingBindingElement.cs
2971 TransportBindingElement.cs BinaryMessageEncodingBindingElement.cs
2972 TextMessageEncodingBindingElement.cs IChannelFactory.cs Binding.cs
2973 ITransportBindingElement.cs IChannelManager.cs MessageFault.cs
2974 MessageHeaders.cs IStubMessageInspector.cs UnderstoodHeaders.cs
2975 BindingParameterCollection.cs IInstanceProvider.cs
2976 WSDualHttpBinding.cs ISession.cs IErrorHandler.cs
2977 MessageEncodingBindingElement.cs HttpTransportBindingElement.cs
2978 IDuplexChannel.cs CustomBinding.cs IOutputSessionChannel.cs
2979 MessageContractAttribute.cs SymmetricSecurityBindingElement.cs :
2980 moved from System.ServiceModel due to the API changes.
2982 2006-02-23 Atsushi Enomoto <atsushi@ximian.com>
2984 * ChannelFactoryBase.cs ChannelListenerBase.cs HttpChannelFactory.cs
2985 HttpChannelListener.cs HttpRequestChannel.cs
2986 LayeredChannelListener.cs PeerMessagePropagationFilter.cs
2987 PeerNode.cs ReplyChannelBase.cs :
2988 Feb. CTP API changes - chapter 1.
2990 2006-02-15 Atsushi Enomoto <atsushi@ximian.com>
2992 * ChannelBase.cs : OnOpen() and OnClosed() do nothing.
2993 * ReplyChannelBase.cs : now it is based on ChannelBase.
2994 * ChannelListenerBase_1.cs : use DefaultCommunicationTimeouts.Instance
2995 and check null argument in .ctor().
2996 * HttpReplyChannel.cs : several changes.
2997 Non-async members are mostly implemented.
2998 * HttpChannelListener.cs : no need to receive
2999 IDefaultCommunicationTimeouts.
3000 * HttpRequestChannel.cs : maxSizeOfHeaders is used in MessageHeaders
3001 to allocate buffer array and int.MaxValue causes OutOfMemory.
3003 2006-02-15 Atsushi Enomoto <atsushi@ximian.com>
3005 * ClientFramingDecoderState.cs : added missing enum.
3006 * HttpRequestMessageProperty.cs HttpResponseMessageProperty.cs :
3008 * ChannelBase.cs, LayeredChannelListener.cs : tiny API fixes.
3010 2006-02-15 Atsushi Enomoto <atsushi@ximian.com>
3012 * HttpChannelListener.cs : Added GetChannels() and OnClose().
3013 AcceptChannel() has some code now but it needs more love.
3015 2006-02-14 Atsushi Enomoto <atsushi@ximian.com>
3017 * CommunicationObject.cs : Close() does not call Begin/EndClose().
3018 * ChannelManagerBase.cs : implemented AbortChannel and CloseChannel.
3019 * ChannelListenerBase.cs : implemented OnAbort and OnClose.
3021 2006-02-10 Atsushi Enomoto <atsushi@ximian.com>
3023 * HttpRequestChannel.cs : close the streams.
3025 HttpChannelListener.cs : renamed from former to latter.
3027 2006-02-09 Atsushi Enomoto <atsushi@ximian.com>
3029 * ReplyChannelBase.cs : new file for IReplyChannel implementations.
3030 * HttpReplyChannel.cs : new file for HTTP IReplyChannel.
3031 * HttpListenerFactory.cs : removed obsolete file.
3032 * HttpListener.cs : hacky WaitForChannel and AcceptChannel.
3033 * ChannelListenerBase_1.cs : implemented virtual stuff.
3034 * CommunicationObject.cs : Open() should not call BeginOpen() and
3035 EndOpen(). Instead, invoke events individually.
3036 * ChannelListenerBase.cs : its Open() is WaitForChannel().
3038 2006-02-08 Atsushi Enomoto <atsushi@ximian.com>
3040 * HttpRequestChannel.cs : call Flush() after serializing message
3043 2006-02-08 Atsushi Enomoto <atsushi@ximian.com>
3045 * HttpRequestChannel.cs : implemented pretty hacky Request().
3047 2006-02-02 Atsushi Enomoto <atsushi@ximian.com>
3049 * HttpRequestChannel.cs : Manager is HttpChannelFactory.
3051 2006-02-01 Atsushi Enomoto <atsushi@ximian.com>
3053 * ChannelFactoryBase.cs : removed some NotImplementedException for
3054 further internal implementation.
3056 2006-01-26 Atsushi Enomoto <atsushi@ximian.com>
3058 * HttpRequestChannel.cs : new file. mostly not implemented.
3059 * HttpChannelFactory.cs : Implemented CanCreateChannel().
3060 Partly implemented CreateChannel().
3062 2006-01-26 Atsushi Enomoto <atsushi@ximian.com>
3064 * HttpChannelFactory.cs : (.ctor())
3065 Don't take ChannelBuildContext.
3067 2005-11-21 Atsushi Enomoto <atsushi@ximian.com>
3069 * StreamSecurityUpgradeInitiator.cs PeerMessageOrigination.cs
3070 ChannelBase.cs StreamSecurityUpgradeAcceptor.cs
3071 PeerMessagePropagation.cs : updated to Nov. CTP.
3073 2005-11-21 Atsushi Enomoto <atsushi@ximian.com>
3075 * ChannelListenerBase.cs, ChannelManagerBase.cs,
3076 ChannelListenerBase_1.cs, LayeredChannelListener.cs,
3077 StreamSecurityUpgradeAcceptor.cs,
3078 StreamSecurityUpgradeInitiator.cs :
3079 Updated to Nov. CTP API.
3081 2005-11-21 Atsushi Enomoto <atsushi@ximian.com>
3083 Now we can rename ListenerFactoryBase.cs to ChannelListenerBase.cs.
3085 2005-11-21 Atsushi Enomoto <atsushi@ximian.com>
3087 renamed ChannelListenerBase.cs to ChannelListenerBase_1.cs.
3089 2005-11-21 Atsushi Enomoto <atsushi@ximian.com>
3091 * ChannelBase.cs : tiny filename fix.
3092 * ChannelListenerBase.cs : added more .ctor()s.
3094 2005-11-21 Atsushi Enomoto <atsushi@ximian.com>
3096 * HttpListenerFactory.cs LayeredChannelListener.cs HttpListener.cs
3097 ListenerFactoryBase.cs ChannelListenerBase.cs :
3098 updated IListener related stuff to Nov. CTP.
3099 file renaming will come soon.
3101 2005-11-21 Atsushi Enomoto <atsushi@ximian.com>
3103 * ListenerBase.cs, ChannelListenerBase.cs :
3104 moved from former to latter.
3105 * LayeredListenerFactory.cs, LayeredChannelListener.cs :
3106 moved from former to latter.
3108 2005-11-20 Atsushi Enomoto <atsushi@ximian.com>
3110 * SessionFaultedException.cs : removed in Nov. CTP
3112 2005-11-20 Atsushi Enomoto <atsushi@ximian.com>
3114 * CommunicationObject.cs : updated to Nov. CTP.
3115 * SessionFaultedException.cs : removed (in Nov. CTP)
3117 2005-11-03 Atsushi Enomoto <atsushi@ximian.com>
3119 * TextMessageEncoder.cs : kinda implemented (untested; Message is not
3122 2005-11-03 Atsushi Enomoto <atsushi@ximian.com>
3124 * MtomMessageEncoder.cs, BinaryMessageEncoderFactory.cs,
3125 TextMessageEncoderFactory.cs, BinaryMessageEncoder.cs,
3126 TextMessageEncoder.cs, MtomMessageEncoderFactory.cs : new files.
3127 * MessageEncoder.cs : largely implemented.
3129 2005-11-02 Atsushi Enomoto <atsushi@ximian.com>
3131 * IRequestReplyCorrelator.cs : new file.
3133 2005-11-02 Atsushi Enomoto <atsushi@ximian.com>
3135 * CommunicationObject.cs : OnClose() and OnError() are not virtual.
3136 * DirectionalAction.cs : implemented IComparable<DirectionalAction>.
3137 * MessageEncoder.cs : added misssing ToString().
3139 2005-11-02 Atsushi Enomoto <atsushi@ximian.com>
3141 * ChannelBehaviorCollection.cs : moved to sys.sm.
3143 2005-10-28 Atsushi Enomoto <atsushi@ximian.com>
3145 * HttpListenerFactory.cs, HttpListener.cs : new files.
3146 * ListenerFactoryBase.cs, ChannelManagerBase.cs,
3147 CommunicationObject.cs, ChannelFactoryBase.cs,
3148 StreamUpgradeProvider.cs, ChannelBase.cs : timeouts are now
3150 * CommunicationObject.cs : Aborted is bool. Added InternalClose()
3151 * ListenerFactoryBase.cs : kinda implemented GetListeners().
3153 2005-10-26 Atsushi Enomoto <atsushi@ximian.com>
3155 * ListenerFactoryBase.cs : some implementation.
3157 2005-10-26 Atsushi Enomoto <atsushi@ximian.com>
3159 * CommunicationObject.cs : more state fixes.
3161 2005-10-26 Atsushi Enomoto <atsushi@ximian.com>
3163 * CommunicationObject.cs : some state machine fixes.
3165 2005-10-26 Atsushi Enomoto <atsushi@ximian.com>
3167 * PeerNode.cs, ChannelManagerBase.cs :
3168 several API fixes detected by improved corcompare.
3170 2005-10-25 Atsushi Enomoto <atsushi@ximian.com>
3172 * LayeredListenerFactory.cs : added missing generic class constraint.
3174 2005-10-25 Atsushi Enomoto <atsushi@ximian.com>
3176 * ListenerFactoryBase.cs,
3177 ListenerBase.cs : class constraints were missing for generic args.
3179 2005-10-24 Atsushi Enomoto <atsushi@ximian.com>
3181 * StreamUpgradeInitiator.cs : tiny API fix.
3183 2005-10-23 Atsushi Enomoto <atsushi@ximian.com>
3185 * PeerMessagePropagationFilter.cs : tiny build fix.
3187 2005-10-23 Atsushi Enomoto <atsushi@ximian.com>
3189 * HttpRequestMessageProperty.cs, HttpResponseMessageProperty.cs :
3190 added Name. fixed StatusCode type.
3191 * StreamSecurityUpgradeInitiator.cs, StreamUpgradeAcceptor.cs,
3192 PeerNode.cs, StreamSecurityUpgradeAcceptor.cs,
3193 StreamUpgradeProvider.cs, StreamUpgradeInitiator.cs,
3194 DirectionalAction.cs, HostedTransportConfiguration.cs,
3195 StreamSecurityUpgradeProvider.cs, SessionFaultedException.cs,
3196 PeerMessagePropagationFilter.cs : added missing files.
3197 * Dummy.cs : removed. MSMQ stuff can be added later.
3199 2005-10-21 Atsushi Enomoto <atsushi@ximian.com>
3201 * DeliveryStatus.cs, DeliveryFailure.cs,
3202 HttpRequestMessageProperty.cs, PeerMessageOrigination.cs,
3203 PeerMessagePropagation.cs, HttpResponseMessageProperty.cs :
3205 * Dummy.cs : removed above.
3207 2005-10-18 Atsushi Enomoto <atsushi@ximian.com>
3209 * ChannelFactoryBase.cs : tiny .ctor() delegation fix.
3211 2005-10-09 Atsushi Enomoto <atsushi@ximian.com>
3213 * MessageEncoderFactory.cs, LayeredListenerFactory.cs,
3214 MessageEncoder.cs, BufferManager.cs : new files.
3215 * Dummy.cs : removed above.
3217 2005-10-09 Atsushi Enomoto <atsushi@ximian.com>
3219 * ChannelBase.cs, ChannelBehaviorCollection.cs : new channel files.
3220 * Dummy.cs : removed above.
3221 * CommunicationObject.cs, ListenerFactoryBase.cs : added missing bits.
3223 2005-10-09 Atsushi Enomoto <atsushi@ximian.com>
3225 * HttpChannelFactory.cs : new file.
3227 2005-10-08 Atsushi Enomoto <atsushi@ximian.com>
3229 * IReplyChannel.cs, IRequestContext.cs, IRequestChannel.cs:
3230 moved to ../System.ServiceModel (correct location).
3231 * ChannelFactoryBase.cs, LayeredChannelFactory.cs, TransferMode.cs:
3232 new files for channels.
3233 * Dummy.cs : reflected above changes.
3234 * ChannelManagerBase.cs : added a bit of code and todos.
3236 2005-10-04 Atsushi Enomoto <atsushi@ximian.com>
3238 * ChannelManagerBase.cs, ListenerBase.cs, ListenerFactoryBase.cs :
3239 added listener support files.
3240 * Dummy.cs : removed above.
3242 2005-10-03 Atsushi Enomoto <atsushi@ximian.com>
3244 * IReplyChannel.cs, IRequestContext.cs, IRequestChannel.cs :
3245 added request/reply channel interfaces.
3246 * Dummy.cs : removed above.
3247 * CommunicationObject.cs : FIXME comments.
3249 2005-10-03 Atsushi Enomoto <atsushi@ximian.com>
3251 * CommunicationObject.cs : implemented some members.
3253 2005-09-29 Atsushi Enomoto <atsushi@ximian.com>
3255 * CommunicationObject.cs : some signature fixes.