From f3d089a998d52d07ff23110a86e0b57fd1b76c33 Mon Sep 17 00:00:00 2001 From: Artur Kraev Date: Mon, 3 Nov 2014 00:24:49 +0300 Subject: [PATCH] mod_managed: not crash when cannot remove shadow directory (this sometimes happens when restarting from FS console) --- src/mod/languages/mod_managed/managed/Loader.cs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/mod/languages/mod_managed/managed/Loader.cs b/src/mod/languages/mod_managed/managed/Loader.cs index c655c9c867..a3d48fd1d1 100644 --- a/src/mod/languages/mod_managed/managed/Loader.cs +++ b/src/mod/languages/mod_managed/managed/Loader.cs @@ -64,13 +64,23 @@ namespace FreeSWITCH { public static bool Load() { managedDir = Path.Combine(Native.freeswitch.SWITCH_GLOBAL_dirs.mod_dir, "managed"); shadowDir = Path.Combine(managedDir, "shadow"); - if (Directory.Exists(shadowDir)) { - Directory.Delete(shadowDir, true); + if (Directory.Exists(shadowDir)) + { + try + { + Directory.Delete(shadowDir, true); + } + catch (Exception ex) + { + Log.WriteLine(LogLevel.Warning, "Cannot delete shadow directory: {0}", ex); + } + Directory.CreateDirectory(shadowDir); } Log.WriteLine(LogLevel.Debug, "FreeSWITCH.Managed loader is starting with directory '{0}'.", managedDir); - if (!Directory.Exists(managedDir)) { + if (!Directory.Exists(managedDir)) + { Log.WriteLine(LogLevel.Error, "Managed directory not found: {0}", managedDir); return false; }