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/System.Net/HttpWebRequest.cs')
-rw-r--r--mcs/class/System/System.Net/HttpWebRequest.cs30
1 files changed, 15 insertions, 15 deletions
diff --git a/mcs/class/System/System.Net/HttpWebRequest.cs b/mcs/class/System/System.Net/HttpWebRequest.cs
index 40dfe26a546..af18f9a6154 100644
--- a/mcs/class/System/System.Net/HttpWebRequest.cs
+++ b/mcs/class/System/System.Net/HttpWebRequest.cs
@@ -147,7 +147,7 @@ namespace System.Net
get { return webHeaders ["Accept"]; }
set {
CheckRequestStarted ();
- webHeaders.SetInternal ("Accept", value);
+ webHeaders.RemoveAndAdd ("Accept", value);
}
}
@@ -199,7 +199,7 @@ namespace System.Net
if (keepAlive && val.IndexOf ("keep-alive") == -1)
value = value + ", Keep-Alive";
- webHeaders.SetInternal ("Connection", value);
+ webHeaders.RemoveAndAdd ("Connection", value);
}
}
@@ -231,7 +231,7 @@ namespace System.Net
webHeaders.RemoveInternal ("Content-Type");
return;
}
- webHeaders.SetInternal ("Content-Type", value);
+ webHeaders.RemoveAndAdd ("Content-Type", value);
}
}
@@ -266,7 +266,7 @@ namespace System.Net
if (val == "100-continue")
throw new ArgumentException ("100-Continue cannot be set with this property.",
"value");
- webHeaders.SetInternal ("Expect", value);
+ webHeaders.RemoveAndAdd ("Expect", value);
}
}
@@ -452,7 +452,7 @@ namespace System.Net
if (!sendChunked)
throw new ArgumentException ("SendChunked must be True", "value");
- webHeaders.SetInternal ("Transfer-Encoding", value);
+ webHeaders.RemoveAndAdd ("Transfer-Encoding", value);
}
}
@@ -484,7 +484,7 @@ namespace System.Net
}
internal bool ProxyQuery {
- get { return servicePoint.UsesProxy; }
+ get { return servicePoint.UsesProxy && !servicePoint.UseConnect; }
}
// Methods
@@ -584,7 +584,6 @@ namespace System.Net
initialMethod = method;
if (haveRequest) {
if (writeStream != null) {
- Monitor.Exit (this);
asyncWrite.SetCompleted (true, writeStream);
asyncWrite.DoCallback ();
return asyncWrite;
@@ -830,7 +829,7 @@ namespace System.Net
throw new WebException ("No Location header found for " + (int) code,
WebExceptionStatus.ProtocolError);
- string host = actualUri.Host;
+ Uri prev = actualUri;
try {
actualUri = new Uri (actualUri, uriString);
} catch (Exception) {
@@ -839,7 +838,8 @@ namespace System.Net
WebExceptionStatus.ProtocolError);
}
- hostChanged = (actualUri.Host != host);
+ hostChanged = (actualUri.Scheme != prev.Scheme || actualUri.Host != prev.Host ||
+ actualUri.Port != prev.Port);
return true;
}
@@ -852,13 +852,13 @@ namespace System.Net
webHeaders.RemoveInternal ("Transfer-Encoding");
} else if (sendChunked) {
continue100 = true;
- webHeaders.SetInternal ("Transfer-Encoding", "chunked");
+ webHeaders.RemoveAndAdd ("Transfer-Encoding", "chunked");
webHeaders.RemoveInternal ("Content-Length");
}
if (actualVersion == HttpVersion.Version11 && continue100 &&
servicePoint.SendContinue) { // RFC2616 8.2.3
- webHeaders.SetInternal ("Expect" , "100-continue");
+ webHeaders.RemoveAndAdd ("Expect" , "100-continue");
expectContinue = true;
} else {
webHeaders.RemoveInternal ("Expect");
@@ -871,9 +871,9 @@ namespace System.Net
servicePoint.ProtocolVersion == HttpVersion.Version10);
if (keepAlive && (version == HttpVersion.Version10 || spoint10)) {
- webHeaders.SetInternal (connectionHeader, "keep-alive");
+ webHeaders.RemoveAndAdd (connectionHeader, "keep-alive");
} else if (!keepAlive && version == HttpVersion.Version11) {
- webHeaders.SetInternal (connectionHeader, "close");
+ webHeaders.RemoveAndAdd (connectionHeader, "close");
}
webHeaders.SetInternal ("Host", actualUri.Authority);
@@ -883,9 +883,9 @@ namespace System.Net
webHeaders.SetInternal ("Cookie", cookieHeader);
}
- if (!usedPreAuth && preAuthenticate) {
+ if (!usedPreAuth && preAuthenticate)
DoPreAuthenticate ();
- }
+
return webHeaders.ToString ();
}