diff --git a/src/check_hls/baseinfo.ini b/src/check_hls/baseinfo.ini index a8e1b8a..e158e51 100644 --- a/src/check_hls/baseinfo.ini +++ b/src/check_hls/baseinfo.ini @@ -2,6 +2,6 @@ title = HLS m3u8 Check author = Markus Birth description = Checks m3u8 playlists and segments for availability. -version = 2017.11.01.1 +version = 2017.11.30.1 version.min_required = 1.2.8p2 download_url = https://github.com/mbirth/check_mk-plugins diff --git a/src/check_hls/lib/nagios/plugins/check_hls b/src/check_hls/lib/nagios/plugins/check_hls index 3893bf6..d291587 100644 --- a/src/check_hls/lib/nagios/plugins/check_hls +++ b/src/check_hls/lib/nagios/plugins/check_hls @@ -13,6 +13,7 @@ import datetime import pytz import html import re +import socket import sys import urllib.request @@ -85,7 +86,7 @@ class UrlLoader(): def do_request(self, req): try: start = datetime.datetime.now() - res = urllib.request.urlopen(req) + res = urllib.request.urlopen(req, timeout=5) end = datetime.datetime.now() except urllib.error.HTTPError as err: reason = err.reason @@ -98,6 +99,8 @@ class UrlLoader(): return err.code, reason, -1 except urllib.error.URLError as err: return -1, err.reason, -1 + except socket.timeout as err: + return -1, "Timeout (5 seconds)", -1 diff = end - start diff = round(int(diff.microseconds) / 1000) @@ -107,7 +110,7 @@ class UrlLoader(): #req = urllib.request.Request(url=url, method="HEAD") req = urllib.request.Request(url=url) # work around HTTP 405 "Method not allowed" status, res, diff = self.do_request(req) - return status, res.info(), diff + return status, res, diff def get_content(self, url): req = urllib.request.Request(url=url)