X-Git-Url: https://git.rvb.name/vpproxy.git/blobdiff_plain/21abfc4eb5f6f49ef263d0c1961fb1dff19f337c..8960711387d2b34c7f8b8d8a0cc036e52c6c6f06:/vphttp.py?ds=inline diff --git a/vphttp.py b/vphttp.py index d5f9018..0a6ae43 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 @@ -187,7 +188,6 @@ class HTTPHandler(BaseHTTPServer.BaseHTTPRequestHandler): def handleRequest(self, headers_only): # Limit concurrent connections - print VPStuff.clientcounter.total if 0 < VPConfig.maxconns <= VPStuff.clientcounter.total: logger.debug("Maximum connections reached, can't serve this") self.dieWithError(503) # 503 Service Unavailable @@ -236,6 +236,7 @@ class HTTPHandler(BaseHTTPServer.BaseHTTPRequestHandler): logger.debug( "Sending fake headers for " + useragent) self.send_response(200) + self.send_header('Cache-Control','no-cache'); if self.reqtype=="ogg": self.send_header("Content-Type", "video/ogg") else: @@ -296,6 +297,8 @@ 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'); + if self.reqtype=="ogg": self.send_header("Content-Type", "video/ogg") else: @@ -336,7 +339,11 @@ class HTTPHandler(BaseHTTPServer.BaseHTTPRequestHandler): except: pass self.vp.destroy() - + if not self.headersent: + 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): @@ -403,6 +410,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)