Добавлено отладочный интерфейс.
[vpproxy.git] / vphttp.py
index d5f90181ee05a141fb707dc3a35802df21c8b0e7..0a6ae43d3d3379e36cbaa5c4dec5c79a56f66341 100644 (file)
--- 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)