Imported Upstream version 5.14.0.78

Former-commit-id: 3494343bcc9ddb42b36b82dd9ae7b69e85e0229f
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2018-05-10 08:37:03 +00:00
parent 74b74abd9f
commit 19234507ba
1776 changed files with 67755 additions and 31107 deletions

View File

@@ -75,15 +75,12 @@ using System.Runtime.InteropServices;
[assembly: InternalsVisibleTo ("System.ServiceModel.Discovery, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9")] // AnnouncementChannelEndpointElementCollection requires it.
#endif
#if HAS_ACTIVATION
#if SERVICEMODEL_ACTIVATION_DEPENDENCY
[assembly: TypeForwardedTo (typeof (System.ServiceModel.ServiceHostingEnvironment))]
[assembly: TypeForwardedTo (typeof (System.ServiceModel.Activation.ServiceHostFactory))]
#endif
#if !MOBILE
[assembly: TypeForwardedTo (typeof (System.ServiceModel.Security.BinarySecretKeyIdentifierClause))]
[assembly: TypeForwardedTo (typeof (System.ServiceModel.Security.KeyNameIdentifierClause))]
[assembly: TypeForwardedTo (typeof (System.ServiceModel.Security.SecurityContextKeyIdentifierClause))]

View File

@@ -30,14 +30,9 @@ endif
ifeq (4, $(FRAMEWORK_VERSION_MAJOR))
ifndef NO_SYSTEM_SERVICEMODEL_ACTIVATION_DEPENDENCY
activation = $(the_libdir_base)System.ServiceModel.Activation.dll
servicemodel_deps = $(activation)
ifneq (plainservice/,$(intermediate))
LIB_REFS += System.ServiceModel.Activation
LIB_MCS_FLAGS += -define:HAS_ACTIVATION
endif
endif # NO_SYSTEM_SERVICEMODEL_ACTIVATION_DEPENDENCY
API_BIN_REFS := System.ServiceModel.Activation
LIB_MCS_FLAGS += /d:SERVICEMODEL_ACTIVATION_DEPENDENCY
endif
ifndef NO_SYSTEM_WEB_APPSERVICES_DEPENDENCY
LIB_REFS += System.Web.ApplicationServices
@@ -73,22 +68,3 @@ NO_TEST = yes
endif
include ../../build/library.make
$(the_libdir_base)System.ServiceModel.dll: $(servicemodel_deps)
$(activation):
(cd ../System.ServiceModel.Activation; $(MAKE) $@)
ifneq (plainservice/,$(intermediate))
$(the_libdir_base)plainservice/System.ServiceModel.dll:
$(MAKE) intermediate=plainservice/ $(the_libdir_base)plainservice/System.ServiceModel.dll
endif
.NOTPARALLEL: $(servicemodel_deps)
CLEAN_FILES = $(the_libdir_base)plainservice/System.ServiceModel.dll
ifndef intermediate
csproj-local:
$(MAKE) csproj-local intermediate=plainservice/
endif

View File

@@ -1,52 +0,0 @@
//
// ServiceHostFactory.cs
//
// Author:
// Atsushi Enomoto <atsushi@ximian.com>
//
// Copyright (C) 2006 Novell, Inc. http://www.novell.com
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
#if !HAS_ACTIVATION
namespace System.ServiceModel.Activation
{
[System.Runtime.CompilerServices.TypeForwardedFrom (Consts.AssemblySystemServiceModel_3_0)]
public class ServiceHostFactory : ServiceHostFactoryBase
{
[MonoTODO]
public override ServiceHostBase CreateServiceHost (
string constructorString, Uri [] baseAddresses)
{
throw new NotImplementedException ();
}
[MonoTODO ("untested")]
protected virtual ServiceHost CreateServiceHost (
Type serviceType, Uri [] baseAddresses)
{
return new ServiceHost (serviceType, baseAddresses);
}
}
}
#endif

View File

@@ -107,6 +107,12 @@ namespace System.ServiceModel.Channels.Http
if (m != null)
return m;
}
// Lastly, try to match the listener to the start of the current request path
// This is to support WCF methods with path parameters in UriTemplate annotation
m = listeners.FirstOrDefault (p => absolutePath.StartsWith (p.Key.AbsolutePath, StringComparison.Ordinal)).Value;
if (m != null)
return m;
}
if (m == null)
@@ -119,7 +125,7 @@ namespace System.ServiceModel.Channels.Http
{
HttpListenerManager m;
if (ServiceHostingEnvironment.InAspNet)
if (ServiceHostingEnvironmentInternal.InAspNet)
m = new AspNetHttpListenerManager (uri);
else
m = new HttpStandaloneListenerManager (uri, element);

View File

@@ -28,6 +28,7 @@
//
using System;
using System.Collections.Generic;
using System.Collections.Concurrent;
using System.Collections.ObjectModel;
using System.Linq;
using System.Web;
@@ -51,7 +52,7 @@ namespace System.ServiceModel.Channels
Type factory_type;
string path;
ServiceHostBase host;
Dictionary<HttpContext,ManualResetEvent> wcf_wait_handles = new Dictionary<HttpContext,ManualResetEvent> ();
ConcurrentDictionary<HttpContext,ManualResetEvent> wcf_wait_handles = new ConcurrentDictionary<HttpContext,ManualResetEvent> ();
int close_state;
public SvcHttpHandler (Type type, Type factoryType, string path)
@@ -90,10 +91,9 @@ namespace System.ServiceModel.Channels
public void EndHttpRequest (HttpContext context)
{
ManualResetEvent wait;
if (!wcf_wait_handles.TryGetValue (context, out wait))
if (!wcf_wait_handles.TryRemove (context, out wait))
return;
wcf_wait_handles.Remove (context);
if (wait != null)
wait.Set ();
}
@@ -128,10 +128,10 @@ namespace System.ServiceModel.Channels
//ServiceHost for this not created yet
var baseUri = new Uri (new Uri (HttpContext.Current.Request.Url.GetLeftPart (UriPartial.Authority)), path);
// if (factory_type != null) {
// host = ((ServiceHostFactory) Activator.CreateInstance (factory_type)).CreateServiceHost (type, new Uri [] {baseUri});
// }
// else
if (factory_type != null) {
host = ((ServiceHostFactory) Activator.CreateInstance (factory_type)).CreateServiceHost (type.ToString(), new Uri [] {baseUri});
}
else
host = new ServiceHost (type, baseUri);
host.Extensions.Add (new VirtualPathExtension (baseUri.AbsolutePath));

View File

@@ -49,7 +49,7 @@ namespace System.ServiceModel.Channels {
public SvcHttpHandlerFactory ()
{
ServiceHostingEnvironment.InAspNet = true;
ServiceHostingEnvironmentInternal.InAspNet = true;
}
public IHttpHandler GetHandler (HttpContext context, string requestType, string url, string pathTranslated)

View File

@@ -48,7 +48,7 @@ namespace System.ServiceModel.Configuration
#if !XAMMAC_4_5
static object GetSection (string name)
{
if (ServiceHostingEnvironment.InAspNet)
if (ServiceHostingEnvironmentInternal.InAspNet)
return WebConfigurationManager.GetSection (name);
else
return ConfigurationManager.GetSection (name);

View File

@@ -497,7 +497,6 @@ namespace System.ServiceModel.Description
mb.WrapperNamespace = mca.WrapperNamespace ?? defaultNamespace;
}
int index = 0;
foreach (MemberInfo bmi in messageType.GetMembers (BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance)) {
Type mtype = null;
string mname = null;
@@ -531,13 +530,14 @@ namespace System.ServiceModel.Description
var mba = GetMessageBodyMemberAttribute (bmi);
if (mba != null) {
var pd = CreatePartCore (mba, mname, defaultNamespace);
if (pd.Index <= 0)
pd.Index = index++;
pd.Type = MessageFilterOutByRef (mtype);
pd.MemberInfo = bmi;
mb.Parts.Add (pd);
}
}
int index = 0;
foreach (var part in mb.Parts)
part.Index = index++;
return md;
}

View File

@@ -615,7 +615,8 @@ namespace System.ServiceModel.Dispatcher
if ((!(ex is SocketException)) &&
(!(ex is XmlException)) &&
(!(ex is IOException)))
(!(ex is IOException)) &&
rc != null)
rc.Reply (res);
reply.Close (owner.DefaultCloseTimeout); // close the channel

View File

@@ -130,7 +130,6 @@ System.Collections.Generic/SynchronizedKeyedCollection.cs
System.Collections.Generic/SynchronizedReadOnlyCollection.cs
System.IO/PipeException.cs
System.ServiceModel.Activation/AspNetIntegrationRequirementsAttribute.cs
System.ServiceModel.Activation/ServiceHostFactory.cs
System.ServiceModel.Activation/ServiceHostFactoryBase.cs
System.ServiceModel.Activation/VirtualPathExtension.cs
System.ServiceModel.Channels/AddressHeader.cs

View File

@@ -26,21 +26,10 @@
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
#if !HAS_ACTIVATION
namespace System.ServiceModel {
[System.Runtime.CompilerServices.TypeForwardedFrom (Consts.AssemblySystemServiceModel_3_0)]
public static class ServiceHostingEnvironment
static class ServiceHostingEnvironmentInternal
{
internal static bool InAspNet { get; set; }
public static bool AspNetCompatibilityEnabled { get; internal set; }
public static void EnsureServiceAvailable (string virtualPath)
{
}
}
}
#endif