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
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','webm') 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:
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
logger.debug(
"Sending fake headers for " + useragent)
self.send_response(200)
- self.send_header("Content-Type", "video/mpeg")
+ self.send_header('Cache-Control','no-cache');
+ if self.reqtype in ("ogg","ogv"):
+ self.send_header("Content-Type", "video/ogg")
+ else:
+ self.send_header("Content-Type", "video/mpeg")
self.end_headers()
# Do not send real headers at all
self.headerssent = True
for key in self.video.info().dict:
self.send_header(key, self.video.info().dict[key])
- self.send_header("Content-Type", "video/mpeg")
+
+ self.send_header('Cache-Control','no-cache');
+
+ if self.reqtype=="ogg":
+ self.send_header("Content-Type", "video/ogg")
+ else:
+ self.send_header("Content-Type", "video/mpeg")
+
# End headers. Next goes video data
self.end_headers()
logger.debug("Headers sent")
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):
continue
logger.debug('Plugin loaded: ' + plugname)
for j in plugininstance.handlers:
+ logger.info("Registering handler '" + j +"'")
VPStuff.pluginshandlers[j] = plugininstance
VPStuff.pluginlist.append(plugininstance)