X-Git-Url: https://git.rvb.name/vpproxy.git/blobdiff_plain/1074f7e8729c2ff065d73960c5450c9356c2fd11..fd65e8ecaa1a7c5f11b9a50bc165083a87e2c725:/vphttp.py?ds=sidebyside diff --git a/vphttp.py b/vphttp.py index bda3485..0c09c52 100644 --- a/vphttp.py +++ b/vphttp.py @@ -27,6 +27,7 @@ import hashlib import vpconfig from vpconfig import VPConfig import vlcclient +import gc import plugins.modules.ipaddr as ipaddr from clientcounter import ClientCounter from plugins.modules.PluginInterface import VPProxyPlugin @@ -164,7 +165,7 @@ class HTTPHandler(BaseHTTPServer.BaseHTTPRequestHandler): self.reqtype = self.splittedpath[1].lower() # If first parameter is 'pid' or 'torrent' or it should be handled # by plugin - if not (self.reqtype in ('get','mp4','ogg') or self.reqtype in VPStuff.pluginshandlers): + if not (self.reqtype in ('get','mp4','ogg','ogv') or self.reqtype in VPStuff.pluginshandlers): self.dieWithError(400) # 400 Bad Request return except IndexError: @@ -235,7 +236,9 @@ class HTTPHandler(BaseHTTPServer.BaseHTTPRequestHandler): logger.debug( "Sending fake headers for " + useragent) self.send_response(200) - if self.reqtype=="ogg": + self.send_header('Cache-Control','no-cache, no-store, must-revalidate'); + self.send_header('Pragma','no-cache'); + if self.reqtype in ("ogg","ogv"): self.send_header("Content-Type", "video/ogg") else: self.send_header("Content-Type", "video/mpeg") @@ -295,6 +298,9 @@ class HTTPHandler(BaseHTTPServer.BaseHTTPRequestHandler): for key in self.video.info().dict: self.send_header(key, self.video.info().dict[key]) + self.send_header('Cache-Control','no-cache, no-store, must-revalidate'); + self.send_header('Pragma','no-cache'); + if self.reqtype=="ogg": self.send_header("Content-Type", "video/ogg") else: @@ -335,7 +341,11 @@ class HTTPHandler(BaseHTTPServer.BaseHTTPRequestHandler): except: pass self.vp.destroy() - + if not self.headerssent: + logger.error("Problem receiving video stream, no headers!") + if VPStuff.clientcounter.total == 0: + logger.error("Probably VLC hang") + VPStuff.vlc.kill() class HTTPServer(SocketServer.ThreadingMixIn, BaseHTTPServer.HTTPServer): @@ -402,6 +412,7 @@ for i in pluginslist: continue logger.debug('Plugin loaded: ' + plugname) for j in plugininstance.handlers: + logger.info("Registering handler '" + j +"'") VPStuff.pluginshandlers[j] = plugininstance VPStuff.pluginlist.append(plugininstance)