self.reqtype = self.splittedpath[1].lower()
# If first parameter is 'pid' or 'torrent' or it should be handled
# by plugin
- if not (self.reqtype=='get' or self.reqtype in VPStuff.pluginshandlers):
+ if not (self.reqtype in ('get','mp4') 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
# Pretend to work fine with Fake UAs or HEAD request.
useragent = self.headers.get('User-Agent')
+ logger.debug("HTTP User Agent:"+useragent)
fakeua = useragent and useragent in VPConfig.fakeuas
if headers_only or fakeua:
if fakeua:
self.params.append('0')
# Adding client to clientcounter
- clients = VPStuff.clientcounter.add(self.path_unquoted, self.clientip)
+ clients = VPStuff.clientcounter.add(self.reqtype+'\\'+self.path_unquoted, self.clientip)
# If we are the one client, but sucessfully got vp instance from clientcounter,
# then somebody is waiting in the videodestroydelay state
# Check if we are first client
- if VPStuff.clientcounter.get(self.path_unquoted)==1:
+ if VPStuff.clientcounter.get(self.reqtype+'\\'+self.path_unquoted)==1:
logger.debug("First client, should create VLC session")
shouldcreatevp = True
else:
logger.debug("Can reuse existing session")
shouldcreatevp = False
- self.vlcid = hashlib.md5(self.path_unquoted).hexdigest()
+ self.vlcid = hashlib.md5(self.reqtype+'\\'+self.path_unquoted).hexdigest()
# Send fake headers if this User-Agent is in fakeheaderuas tuple
if fakeua:
logger.debug("hangDetector spawned")
gevent.sleep()
- # Initializing VPClient
-
# Getting URL
self.errorhappened = False
- print shouldcreatevp
if shouldcreatevp:
logger.debug("Got url " + self.path_unquoted)
# Force ffmpeg demuxing if set in config
else:
self.vlcprefix = ''
+ logger.debug("Ready to start broadcast....")
VPStuff.vlcclient.startBroadcast(
- self.vlcid, self.vlcprefix + self.path_unquoted, VPConfig.vlcmux, VPConfig.vlcpreaccess)
+ self.vlcid, self.vlcprefix + self.path_unquoted, VPConfig.vlcmux, VPConfig.vlcpreaccess, self.reqtype)
# Sleep a bit, because sometimes VLC doesn't open port in
# time
gevent.sleep(0.5)
# Unknown exception
logger.error(traceback.format_exc())
self.errorhappened = True
- raise
self.dieWithError()
finally:
logger.debug("END REQUEST")
- VPStuff.clientcounter.delete(self.path_unquoted, self.clientip)
- if not VPStuff.clientcounter.get(self.path_unquoted):
+ VPStuff.clientcounter.delete(self.reqtype+'\\'+self.path_unquoted, self.clientip)
+ if not VPStuff.clientcounter.get(self.reqtype+'\\'+self.path_unquoted):
try:
logger.debug("That was the last client, destroying VPClient")
VPStuff.vlcclient.stopBroadcast(self.vlcid)
# Spawning procedures
def spawnVLC(cmd, delay = 0):
try:
- VPStuff.vlc = psutil.Popen(cmd, stdout=DEVNULL, stderr=DEVNULL)
+ VPStuff.vlc = psutil.Popen(cmd) #, stdout=DEVNULL, stderr=DEVNULL)
gevent.sleep(delay)
return True
except:
out_port=VPConfig.vlcoutport)
return True
except vlcclient.VlcException as e:
- print repr(e)
return False
def isRunning(process):