From 7b6bf545dad2f9db1ea9f9cb9fdcd4bac57a18a2 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Thu, 5 Sep 2013 10:42:17 -0400 Subject: [PATCH] removed network option from directory picker due to unreliability --- MediaBrowser.Api/EnvironmentService.cs | 35 ------ .../NetworkManagement/NetworkManager.cs | 62 --------- MediaBrowser.Common/Net/INetworkManager.cs | 6 - MediaBrowser.Controller/IO/NativeMethods.cs | 118 ------------------ MediaBrowser.WebDashboard/ApiClient.js | 14 --- MediaBrowser.WebDashboard/packages.config | 2 +- 6 files changed, 1 insertion(+), 236 deletions(-) diff --git a/MediaBrowser.Api/EnvironmentService.cs b/MediaBrowser.Api/EnvironmentService.cs index d88d855940..985e3c89b0 100644 --- a/MediaBrowser.Api/EnvironmentService.cs +++ b/MediaBrowser.Api/EnvironmentService.cs @@ -55,15 +55,6 @@ namespace MediaBrowser.Api { } - /// - /// Class GetNetworkComputers - /// - [Route("/Environment/NetworkDevices", "GET")] - [Api(Description = "Gets a list of devices on the network")] - public class GetNetworkDevices : IReturn> - { - } - /// /// Class EnvironmentService /// @@ -131,18 +122,6 @@ namespace MediaBrowser.Api return ToOptimizedResult(result); } - /// - /// Gets the specified request. - /// - /// The request. - /// System.Object. - public object Get(GetNetworkDevices request) - { - var result = GetNetworkDevices().OrderBy(i => i.Path).ToList(); - - return ToOptimizedResult(result); - } - /// /// Gets the list that is returned when an empty path is supplied /// @@ -159,20 +138,6 @@ namespace MediaBrowser.Api }); } - /// - /// Gets the network computers. - /// - /// IEnumerable{FileSystemEntryInfo}. - private IEnumerable GetNetworkDevices() - { - return _networkManager.GetNetworkDevices().Select(c => new FileSystemEntryInfo - { - Name = c, - Path = NetworkPrefix + c, - Type = FileSystemEntryType.NetworkComputer - }); - } - /// /// Gets the name. /// diff --git a/MediaBrowser.Common.Implementations/NetworkManagement/NetworkManager.cs b/MediaBrowser.Common.Implementations/NetworkManagement/NetworkManager.cs index 6d35d5f861..71e2ec85a8 100644 --- a/MediaBrowser.Common.Implementations/NetworkManagement/NetworkManager.cs +++ b/MediaBrowser.Common.Implementations/NetworkManagement/NetworkManager.cs @@ -57,68 +57,6 @@ namespace MediaBrowser.Common.Implementations.NetworkManagement .FirstOrDefault(); } - /// - /// Uses the DllImport : NetServerEnum with all its required parameters - /// (see http://msdn.microsoft.com/library/default.asp?url=/library/en-us/netmgmt/netmgmt/netserverenum.asp - /// for full details or method signature) to retrieve a list of domain SV_TYPE_WORKSTATION - /// and SV_TYPE_SERVER PC's - /// - /// Arraylist that represents all the SV_TYPE_WORKSTATION and SV_TYPE_SERVER - /// PC's in the Domain - public IEnumerable GetNetworkDevices() - { - //local fields - const int MAX_PREFERRED_LENGTH = -1; - var SV_TYPE_WORKSTATION = 1; - var SV_TYPE_SERVER = 2; - var buffer = IntPtr.Zero; - var tmpBuffer = IntPtr.Zero; - var entriesRead = 0; - var totalEntries = 0; - var resHandle = 0; - var sizeofINFO = Marshal.SizeOf(typeof(_SERVER_INFO_100)); - - try - { - //call the DllImport : NetServerEnum with all its required parameters - //see http://msdn.microsoft.com/library/default.asp?url=/library/en-us/netmgmt/netmgmt/netserverenum.asp - //for full details of method signature - var ret = NativeMethods.NetServerEnum(null, 100, ref buffer, MAX_PREFERRED_LENGTH, out entriesRead, out totalEntries, SV_TYPE_WORKSTATION | SV_TYPE_SERVER, null, out resHandle); - - //if the returned with a NERR_Success (C++ term), =0 for C# - if (ret == 0) - { - //loop through all SV_TYPE_WORKSTATION and SV_TYPE_SERVER PC's - for (var i = 0; i < totalEntries; i++) - { - //get pointer to, Pointer to the buffer that received the data from - //the call to NetServerEnum. Must ensure to use correct size of - //STRUCTURE to ensure correct location in memory is pointed to - tmpBuffer = new IntPtr((int)buffer + (i * sizeofINFO)); - //Have now got a pointer to the list of SV_TYPE_WORKSTATION and - //SV_TYPE_SERVER PC's, which is unmanaged memory - //Needs to Marshal data from an unmanaged block of memory to a - //managed object, again using STRUCTURE to ensure the correct data - //is marshalled - var svrInfo = (_SERVER_INFO_100)Marshal.PtrToStructure(tmpBuffer, typeof(_SERVER_INFO_100)); - - //add the PC names to the ArrayList - if (!string.IsNullOrEmpty(svrInfo.sv100_name)) - { - yield return svrInfo.sv100_name; - } - } - } - } - finally - { - //The NetApiBufferFree function frees - //the memory that the NetApiBufferAllocate function allocates - NativeMethods.NetApiBufferFree(buffer); - } - } - - /// /// Gets the network shares. /// diff --git a/MediaBrowser.Common/Net/INetworkManager.cs b/MediaBrowser.Common/Net/INetworkManager.cs index 83099e1f9f..6cda54606c 100644 --- a/MediaBrowser.Common/Net/INetworkManager.cs +++ b/MediaBrowser.Common/Net/INetworkManager.cs @@ -23,12 +23,6 @@ namespace MediaBrowser.Common.Net /// [string] MAC Address string GetMacAddress(); - /// - /// Gets available devices within the domain - /// - /// PC's in the Domain - IEnumerable GetNetworkDevices(); - /// /// Gets the network shares. /// diff --git a/MediaBrowser.Controller/IO/NativeMethods.cs b/MediaBrowser.Controller/IO/NativeMethods.cs index 5b9bf52a8b..97c7dfe875 100644 --- a/MediaBrowser.Controller/IO/NativeMethods.cs +++ b/MediaBrowser.Controller/IO/NativeMethods.cs @@ -12,47 +12,6 @@ namespace MediaBrowser.Controller.IO [SuppressUnmanagedCodeSecurity] public static class NativeMethods { - //declare the Netapi32 : NetServerEnum method import - /// - /// Nets the server enum. - /// - /// Name of the server. - /// The dw level. - /// The p buf. - /// The dw pref max len. - /// The dw entries read. - /// The dw total entries. - /// Type of the dw server. - /// The domain. - /// The dw resume handle. - /// System.Int32. - [DllImport("Netapi32", CharSet = CharSet.Auto, SetLastError = true), - SuppressUnmanagedCodeSecurityAttribute] - - public static extern int NetServerEnum( - string ServerName, // must be null - int dwLevel, - ref IntPtr pBuf, - int dwPrefMaxLen, - out int dwEntriesRead, - out int dwTotalEntries, - int dwServerType, - string domain, // null for login domain - out int dwResumeHandle - ); - - //declare the Netapi32 : NetApiBufferFree method import - /// - /// Nets the API buffer free. - /// - /// The p buf. - /// System.Int32. - [DllImport("Netapi32", SetLastError = true), - SuppressUnmanagedCodeSecurityAttribute] - - public static extern int NetApiBufferFree( - IntPtr pBuf); - /// /// The MA x_ PATH /// @@ -71,83 +30,6 @@ namespace MediaBrowser.Controller.IO public const uint STGM_READ = 0; } - //create a _SERVER_INFO_100 STRUCTURE - /// - /// Struct _SERVER_INFO_100 - /// - [StructLayout(LayoutKind.Sequential)] - public struct _SERVER_INFO_100 - { - /// - /// The sv100_platform_id - /// - internal int sv100_platform_id; - /// - /// The sv100_name - /// - [MarshalAs(UnmanagedType.LPWStr)] - internal string sv100_name; - } - - /// - /// Class FindFirstFileExFlags - /// - public class FindFirstFileExFlags - { - /// - /// The NONE - /// - public const int NONE = 0; - - /// - /// Searches are case-sensitive.Searches are case-sensitive. - /// - public const int FIND_FIRST_EX_CASE_SENSITIVE = 1; - - /// - /// Uses a larger buffer for directory queries, which can increase performance of the find operation. - /// - public const int FIND_FIRST_EX_LARGE_FETCH = 2; - } - - /// - /// Enum FINDEX_INFO_LEVELS - /// - public enum FINDEX_INFO_LEVELS - { - /// - /// The FindFirstFileEx function retrieves a standard set of attribute information. The data is returned in a WIN32_FIND_DATA structure. - /// - FindExInfoStandard = 0, - - /// - /// The FindFirstFileEx function does not query the short file name, improving overall enumeration speed. The data is returned in a WIN32_FIND_DATA structure, and the cAlternateFileName member is always a NULL string. - /// - FindExInfoBasic = 1 - } - - /// - /// Enum FINDEX_SEARCH_OPS - /// - public enum FINDEX_SEARCH_OPS - { - /// - /// The search for a file that matches a specified file name. - /// The lpSearchFilter parameter of FindFirstFileEx must be NULL when this search operation is used. - /// - FindExSearchNameMatch = 0, - - /// - /// The find ex search limit to directories - /// - FindExSearchLimitToDirectories = 1, - - /// - /// This filtering type is not available. - /// - FindExSearchLimitToDevices = 2 - } - /// /// Struct FILETIME /// diff --git a/MediaBrowser.WebDashboard/ApiClient.js b/MediaBrowser.WebDashboard/ApiClient.js index 26aad2efbf..29bfb1068f 100644 --- a/MediaBrowser.WebDashboard/ApiClient.js +++ b/MediaBrowser.WebDashboard/ApiClient.js @@ -496,20 +496,6 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) { }); }; - /** - * Gets a list of network devices from the server - */ - self.getNetworkDevices = function () { - - var url = self.getUrl("Environment/NetworkDevices"); - - return self.ajax({ - type: "GET", - url: url, - dataType: "json" - }); - }; - /** * Cancels a package installation */ diff --git a/MediaBrowser.WebDashboard/packages.config b/MediaBrowser.WebDashboard/packages.config index 505dcab952..49180aa52e 100644 --- a/MediaBrowser.WebDashboard/packages.config +++ b/MediaBrowser.WebDashboard/packages.config @@ -1,6 +1,6 @@  - + \ No newline at end of file