Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'mcs/class/System.Web.Services')
-rwxr-xr-xmcs/class/System.Web.Services/System.Web.Services.Discovery/ChangeLog5
-rwxr-xr-xmcs/class/System.Web.Services/System.Web.Services.Discovery/ContractReference.cs2
-rwxr-xr-xmcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryClientProtocol.cs4
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/ChangeLog10
-rwxr-xr-xmcs/class/System.Web.Services/System.Web.Services.Protocols/HttpSoapWebServiceHandler.cs5
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/HttpWebClientProtocol.cs36
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/WebServiceHandler.cs8
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services/ChangeLog6
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services/WebService.cs6
-rw-r--r--mcs/class/System.Web.Services/Test/standalone/ChangeLog4
-rw-r--r--mcs/class/System.Web.Services/Test/standalone/server/SessionCounter.asmx6
11 files changed, 47 insertions, 45 deletions
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Discovery/ChangeLog b/mcs/class/System.Web.Services/System.Web.Services.Discovery/ChangeLog
index 9e52d2feea5..0ef4271cdd8 100755
--- a/mcs/class/System.Web.Services/System.Web.Services.Discovery/ChangeLog
+++ b/mcs/class/System.Web.Services/System.Web.Services.Discovery/ChangeLog
@@ -1,8 +1,3 @@
-2004-08-24 Lluis Sanchez Gual <lluis@ximian.com>
-
- * ContractReference.cs, DiscoveryClientProtocol.cs: Set the url from which
- documents are being read.
-
2004-06-13 Gert Driesen <drieseng@users.sourceforge.net>
* SchemaReference.cs: corrected namespace
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Discovery/ContractReference.cs b/mcs/class/System.Web.Services/System.Web.Services.Discovery/ContractReference.cs
index 75fb86b5685..54b2225e8c7 100755
--- a/mcs/class/System.Web.Services/System.Web.Services.Discovery/ContractReference.cs
+++ b/mcs/class/System.Web.Services/System.Web.Services.Discovery/ContractReference.cs
@@ -147,7 +147,7 @@ namespace System.Web.Services.Discovery {
{
string contentType = null;
Stream stream = prot.Download (ref url, ref contentType);
- XmlTextReader reader = new XmlTextReader (url, stream);
+ XmlTextReader reader = new XmlTextReader (stream);
reader.MoveToContent ();
DiscoveryReference refe;
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryClientProtocol.cs b/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryClientProtocol.cs
index 21fc58e63cb..e24e2f10c43 100755
--- a/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryClientProtocol.cs
+++ b/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryClientProtocol.cs
@@ -84,7 +84,7 @@ namespace System.Web.Services.Discovery {
public DiscoveryDocument Discover (string url)
{
Stream stream = Download (ref url);
- XmlTextReader reader = new XmlTextReader (url, stream);
+ XmlTextReader reader = new XmlTextReader (stream);
if (!DiscoveryDocument.CanRead (reader))
throw new InvalidOperationException ("The url '" + url + "' does not point to a valid discovery document");
@@ -131,7 +131,7 @@ namespace System.Web.Services.Discovery {
stream = Download (ref url);
}
- XmlTextReader reader = new XmlTextReader (url, stream);
+ XmlTextReader reader = new XmlTextReader (stream);
reader.MoveToContent ();
DiscoveryDocument doc;
DiscoveryReference refe = null;
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/ChangeLog b/mcs/class/System.Web.Services/System.Web.Services.Protocols/ChangeLog
index 8b0776c0c38..01f02c69e94 100644
--- a/mcs/class/System.Web.Services/System.Web.Services.Protocols/ChangeLog
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/ChangeLog
@@ -1,13 +1,3 @@
-2004-08-25 Lluis Sanchez Gual <lluis@novell.com>
-
- * HttpSoapWebServiceHandler.cs, WebServiceHandler.cs: Do not assign the
- context to the service. It already gets it from HttpContext.Current.
-
-2004-07-20 Lluis Sanchez Gual <lluis@ximian.com>
-
- * HttpWebClientProtocol.cs: Add received cookies to cookieContainer when
- getting the response, do not wait for the next request to do it.
-
2004-06-22 Lluis Sanchez Gual <lluis@ximian.com>
* XmlReturnReader.cs, XmlReturnWriter.cs: Generate the serializer with
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/HttpSoapWebServiceHandler.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/HttpSoapWebServiceHandler.cs
index 6d03900b5b1..eae97b4a743 100755
--- a/mcs/class/System.Web.Services/System.Web.Services.Protocols/HttpSoapWebServiceHandler.cs
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/HttpSoapWebServiceHandler.cs
@@ -335,6 +335,11 @@ namespace System.Web.Services.Protocols
private SoapServerMessage Invoke (HttpContext ctx, SoapServerMessage requestMessage)
{
+ WebService wsi = requestMessage.Server as WebService;
+ if (wsi != null) {
+ wsi.SetContext (ctx);
+ }
+
SoapMethodStubInfo methodInfo = requestMessage.MethodStubInfo;
// Assign header values to web service members
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/HttpWebClientProtocol.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/HttpWebClientProtocol.cs
index 722f1d2a681..3be915cfbc8 100644
--- a/mcs/class/System.Web.Services/System.Web.Services.Protocols/HttpWebClientProtocol.cs
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/HttpWebClientProtocol.cs
@@ -45,6 +45,7 @@ namespace System.Web.Services.Protocols {
CookieContainer cookieContainer;
IWebProxy proxy;
string userAgent;
+ CookieCollection prevCookies;
#if NET_1_1
bool _unsafeAuthenticated;
@@ -116,25 +117,41 @@ namespace System.Web.Services.Protocols {
#region Methods
- internal virtual void CheckForCookies (HttpWebResponse response)
+ internal virtual void AddCookies (Uri uri)
{
- CookieCollection cookies = response.Cookies;
- if (cookieContainer == null || cookies.Count == 0)
+ if (cookieContainer == null)
+ cookieContainer = new CookieContainer ();
+
+ if (prevCookies == null || prevCookies.Count == 0)
return;
CookieCollection coll = cookieContainer.GetCookies (uri);
- foreach (Cookie c in cookies) {
- bool add = true;
- foreach (Cookie prev in coll) {
+ foreach (Cookie prev in prevCookies) {
+ bool dont = false;
+ foreach (Cookie c in coll) {
if (c.Equals (prev)) {
- add = false;
+ dont = true;
break;
}
}
- if (add)
- cookieContainer.Add (c);
+
+ if (dont == false)
+ cookieContainer.Add (prev);
}
}
+
+ internal virtual void CheckForCookies (HttpWebResponse response)
+ {
+ CookieCollection cookies = response.Cookies;
+ if (cookies.Count == 0)
+ return;
+
+ if (prevCookies == null)
+ prevCookies = new CookieCollection ();
+
+ foreach (Cookie c in cookies)
+ prevCookies.Add (c);
+ }
protected override WebRequest GetWebRequest (Uri uri)
{
@@ -147,6 +164,7 @@ namespace System.Web.Services.Protocols {
if (clientCertificates != null)
request.ClientCertificates.AddRange (clientCertificates);
+ AddCookies (uri);
request.CookieContainer = cookieContainer;
if (proxy != null)
request.Proxy = proxy;
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/WebServiceHandler.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/WebServiceHandler.cs
index 8727e6f2724..a3b82b8eb1a 100644
--- a/mcs/class/System.Web.Services/System.Web.Services.Protocols/WebServiceHandler.cs
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/WebServiceHandler.cs
@@ -78,7 +78,13 @@ namespace System.Web.Services.Protocols
protected object CreateServerInstance ()
{
- return Activator.CreateInstance (ServiceType);
+ object ws = Activator.CreateInstance (ServiceType);
+ WebService wsi = ws as WebService;
+ if (wsi != null) {
+ wsi.SetContext (_context);
+ }
+
+ return ws;
}
}
}
diff --git a/mcs/class/System.Web.Services/System.Web.Services/ChangeLog b/mcs/class/System.Web.Services/System.Web.Services/ChangeLog
index 019a79b25a1..5bf15ba35e5 100644
--- a/mcs/class/System.Web.Services/System.Web.Services/ChangeLog
+++ b/mcs/class/System.Web.Services/System.Web.Services/ChangeLog
@@ -1,9 +1,3 @@
-2004-08-25 Lluis Sanchez Gual <lluis@novell.com>
-
- * WebService.cs: Get the HttpContext from the HttpContext.Current, do not
- wait to be set with SetContext. In this way the context is available
- in the web service constructor.
-
2004-05-12 Lluis Sanchez Gual <lluis@ximian.com>
* WebService.cs: Take the session from the context.
diff --git a/mcs/class/System.Web.Services/System.Web.Services/WebService.cs b/mcs/class/System.Web.Services/System.Web.Services/WebService.cs
index b6fc1313056..e6d0db150d1 100644
--- a/mcs/class/System.Web.Services/System.Web.Services/WebService.cs
+++ b/mcs/class/System.Web.Services/System.Web.Services/WebService.cs
@@ -46,13 +46,17 @@ namespace System.Web.Services {
public WebService ()
{
- _context = HttpContext.Current;
}
#endregion // Constructors
#region Properties
+ internal void SetContext (HttpContext context)
+ {
+ _context = context;
+ }
+
[Browsable (false)]
[Description ("The ASP.NET application object for the current request.")]
[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
diff --git a/mcs/class/System.Web.Services/Test/standalone/ChangeLog b/mcs/class/System.Web.Services/Test/standalone/ChangeLog
index c05f9a58129..0622988e0fb 100644
--- a/mcs/class/System.Web.Services/Test/standalone/ChangeLog
+++ b/mcs/class/System.Web.Services/Test/standalone/ChangeLog
@@ -1,7 +1,3 @@
-2004-08-25 Lluis Sanchez Gual <lluis@novell.com>
-
- * server/SessionCounter.asmx: Check that Context != null in the constructor.
-
2004-06-22 Lluis Sanchez Gual <lluis@ximian.com>
* proxies.net.xml.gz: Updated.
diff --git a/mcs/class/System.Web.Services/Test/standalone/server/SessionCounter.asmx b/mcs/class/System.Web.Services/Test/standalone/server/SessionCounter.asmx
index 50c8befc415..640f1bdf044 100644
--- a/mcs/class/System.Web.Services/Test/standalone/server/SessionCounter.asmx
+++ b/mcs/class/System.Web.Services/Test/standalone/server/SessionCounter.asmx
@@ -8,12 +8,6 @@
{
public class SessionCounter: System.Web.Services.WebService
{
- public SessionCounter ()
- {
- if (Context == null)
- throw new Exception ("Context not set in constructor");
- }
-
[ WebMethod(EnableSession=true) ]
public void Reset()
{