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:
authorGonzalo Paniagua Javier <gonzalo.mono@gmail.com>2009-06-17 19:26:34 +0400
committerGonzalo Paniagua Javier <gonzalo.mono@gmail.com>2009-06-17 19:26:34 +0400
commit497ee8788b3b68022aa34154538adb033aecbbc2 (patch)
tree6afbda15564e96653421a97c742d8080ea0ad663
parent0bdac5d044811d85c402a8254d836fbc1db329c9 (diff)
2009-06-17 Gonzalo Paniagua Javier <gonzalo@novell.com>
* EndPointListener.cs: call CheckIfRemove() after removing a regular prefix. Fixes bug #513849. * EndPointManager.cs: make sure we use the right lock when one prefix of a collection fails to be added and we need to remove all of the prefixes. Clear the ip_to_endpoints hashtable if there are no more prefixes listening on that address. svn path=/branches/mono-2-4-2/mcs/; revision=136322
-rw-r--r--mcs/class/System/System.Net/ChangeLog10
-rw-r--r--mcs/class/System/System.Net/EndPointListener.cs1
-rw-r--r--mcs/class/System/System.Net/EndPointManager.cs5
3 files changed, 15 insertions, 1 deletions
diff --git a/mcs/class/System/System.Net/ChangeLog b/mcs/class/System/System.Net/ChangeLog
index 0c89d983530..d03db9e75ab 100644
--- a/mcs/class/System/System.Net/ChangeLog
+++ b/mcs/class/System/System.Net/ChangeLog
@@ -1,3 +1,13 @@
+2009-06-17 Gonzalo Paniagua Javier <gonzalo@novell.com>
+
+ * EndPointListener.cs: call CheckIfRemove() after removing a regular
+ prefix. Fixes bug #513849.
+ * EndPointManager.cs: make sure we use the right lock when one prefix
+ of a collection fails to be added and we need to remove all of the
+ prefixes.
+ Clear the ip_to_endpoints hashtable if there are no more prefixes
+ listening on that address.
+
2009-06-05 Robert Jordan <robertj@gmx.net>
* WebClient.cs (UploadValuesCore): Encode POST arguments with UTF-8.
diff --git a/mcs/class/System/System.Net/EndPointListener.cs b/mcs/class/System/System.Net/EndPointListener.cs
index 23aff2518c2..16f4ea0e331 100644
--- a/mcs/class/System/System.Net/EndPointListener.cs
+++ b/mcs/class/System/System.Net/EndPointListener.cs
@@ -307,6 +307,7 @@ namespace System.Net {
if (prefixes.ContainsKey (prefix)) {
prefixes.Remove (prefix);
+ CheckIfRemove ();
}
}
}
diff --git a/mcs/class/System/System.Net/EndPointManager.cs b/mcs/class/System/System.Net/EndPointManager.cs
index ea33ff93701..33c5940b432 100644
--- a/mcs/class/System/System.Net/EndPointManager.cs
+++ b/mcs/class/System/System.Net/EndPointManager.cs
@@ -52,7 +52,7 @@ namespace System.Net {
}
} catch {
foreach (string prefix in added) {
- RemovePrefixInternal (prefix, listener);
+ RemovePrefix (prefix, listener);
}
throw;
}
@@ -107,6 +107,9 @@ namespace System.Net {
Hashtable p = null;
p = (Hashtable) ip_to_endpoints [ep.Address];
p.Remove (ep.Port);
+ if (p.Count == 0) {
+ ip_to_endpoints.Remove (ep.Address);
+ }
epl.Close ();
}
}