Переглянути джерело

Merge pull request #1529 from benphelps/fix/issue-1527

Fix: Add try catch for ping
shamoon 2 роки тому
батько
коміт
a59e8e6efd
1 змінених файлів з 24 додано та 17 видалено
  1. 24 17
      src/pages/api/ping.js

+ 24 - 17
src/pages/api/ping.js

@@ -14,22 +14,29 @@ export default async function handler(req, res) {
         error: "No ping URL given",
         });
     }
-    
-    let startTime = performance.now();
-    let [status] = await httpProxy(pingURL, {
-      method: "HEAD"
-    });
-    let endTime = performance.now();
-    
-    if (status > 403) {
-      // try one more time as a GET in case HEAD is rejected for whatever reason
-      startTime = performance.now();
-      [status] = await httpProxy(pingURL);
-      endTime = performance.now();
-    }
 
-    return res.status(200).json({
-      status,
-      latency: endTime - startTime
-    });
+    try {
+      let startTime = performance.now();
+      let [status] = await httpProxy(pingURL, {
+        method: "HEAD"
+      });
+      let endTime = performance.now();
+      
+      if (status > 403) {
+        // try one more time as a GET in case HEAD is rejected for whatever reason
+        startTime = performance.now();
+        [status] = await httpProxy(pingURL);
+        endTime = performance.now();
+      }
+  
+      return res.status(200).json({
+        status,
+        latency: endTime - startTime
+      });
+    } catch (e) {
+      logger.debug("Error attempting ping: %s", JSON.stringify(e));
+      return res.status(400).send({
+        error: 'Error attempting ping, see logs.',
+      });
+    }
 }