From 24d221709dec35456dc2702d5ddb7cfa204bd8bd Mon Sep 17 00:00:00 2001 From: LukePulverenti Luke Pulverenti luke pulverenti Date: Fri, 7 Sep 2012 15:08:32 -0400 Subject: [PATCH] Fixed an issue with shortcuts pointing to a network share --- MediaBrowser.Controller/IO/FileData.cs | 17 ++++++++++++++++- MediaBrowser.Controller/Kernel.cs | 2 +- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/MediaBrowser.Controller/IO/FileData.cs b/MediaBrowser.Controller/IO/FileData.cs index 75069d4d58..f5375e71b5 100644 --- a/MediaBrowser.Controller/IO/FileData.cs +++ b/MediaBrowser.Controller/IO/FileData.cs @@ -1,4 +1,5 @@ -using System; +using MediaBrowser.Common.Logging; +using System; using System.Collections.Generic; using System.IO; using System.Runtime.InteropServices; @@ -12,6 +13,7 @@ namespace MediaBrowser.Controller.IO { public const int MAX_PATH = 260; public const int MAX_ALTERNATE = 14; + public static IntPtr INVALID_HANDLE_VALUE = new IntPtr(-1); /// /// Gets information about a path @@ -20,8 +22,21 @@ namespace MediaBrowser.Controller.IO { WIN32_FIND_DATA data; IntPtr handle = FindFirstFile(path, out data); + + if (handle == INVALID_HANDLE_VALUE && !Path.HasExtension(path)) + { + Logger.LogInfo("Handle came back invalid for {0}. Since this is a directory we'll try appending \\*.", path); + + FindClose(handle); + + handle = FindFirstFile(Path.Combine(path, "*"), out data); + } + if (handle == IntPtr.Zero) + { throw new IOException("FindFirstFile failed"); + } + FindClose(handle); data.Path = path; diff --git a/MediaBrowser.Controller/Kernel.cs b/MediaBrowser.Controller/Kernel.cs index b45e3ab9a5..ea7b928727 100644 --- a/MediaBrowser.Controller/Kernel.cs +++ b/MediaBrowser.Controller/Kernel.cs @@ -217,7 +217,7 @@ namespace MediaBrowser.Controller } else { - result.Success = GetMD5(password).Equals(user.Password); + result.Success = GetMD5((password ?? string.Empty)).Equals(user.Password); // Update LastActivityDate and LastLoginDate, then save if (result.Success)