Sfoglia il codice sorgente

Fix #159 - Streamline TimeSpan parsing logic, get rid of the buggy code

Oleg Nenashev 8 anni fa
parent
commit
9399544ef5
1 ha cambiato i file con 6 aggiunte e 14 eliminazioni
  1. 6 14
      src/Core/WinSWCore/ServiceDescriptor.cs

+ 6 - 14
src/Core/WinSWCore/ServiceDescriptor.cs

@@ -126,16 +126,8 @@ namespace winsw
 
         private TimeSpan SingleTimeSpanElement(XmlNode parent, string tagName, TimeSpan defaultValue)
         {
-            var e = parent.SelectSingleNode(tagName);
-
-            if (e == null)
-            {
-                return defaultValue;
-            }
-            else
-            {
-                return ParseTimeSpan(e.InnerText);
-            }
+            var value = SingleElement(tagName, true);
+            return (value != null) ? ParseTimeSpan(value) : defaultValue;
         }
 
         private TimeSpan ParseTimeSpan(string v)
@@ -505,7 +497,7 @@ namespace winsw
         {
             get
             {
-                return SingleTimeSpanElement(dom.FirstChild, "waithint", Defaults.WaitHint);
+                return SingleTimeSpanElement(dom, "waithint", Defaults.WaitHint);
             }
         }
 
@@ -519,7 +511,7 @@ namespace winsw
         {
             get
             {
-                return SingleTimeSpanElement(dom.FirstChild, "sleeptime", Defaults.SleepTime);
+                return SingleTimeSpanElement(dom, "sleeptime", Defaults.SleepTime);
             }
         }
 
@@ -615,7 +607,7 @@ namespace winsw
         {
             get
             {
-                return SingleTimeSpanElement(dom.FirstChild, "resetfailure", Defaults.ResetFailureAfter);
+                return SingleTimeSpanElement(dom, "resetfailure", Defaults.ResetFailureAfter);
             }
         }
 
@@ -703,7 +695,7 @@ namespace winsw
         {
             get
             {
-                return SingleTimeSpanElement(dom.FirstChild, "stoptimeout", Defaults.StopTimeout);
+                return SingleTimeSpanElement(dom, "stoptimeout", Defaults.StopTimeout);
             }
         }