def __call__(self, environ, start_response): self._srvcfg = environ['pyfileserver.config'] requestmethod = environ['REQUEST_METHOD'] requestpath = urllib.unquote(environ['PATH_INFO']) if requestmethod == 'TRACE': return self.doTRACE(environ, start_response) if requestpath == '*' and requestmethod == 'OPTIONS': return self.doOPTIONS(environ, start_response) if requestpath == '/' and requestmethod == 'OPTIONS': #hotfix for WinXP return self.doOPTIONS(environ, start_response) if 'config_mapping' not in environ['pyfileserver.config']: if requestmethod == 'GET': self.printConfigErrorMessage() else: raise HTTPRequestException( processrequesterrorhandler.HTTP_NOT_FOUND) (mappedrealm, mappedpath, displaypath, resourceAL) = self.resolveRealmURI(environ['pyfileserver.config'], requestpath) if mappedrealm is None: raise HTTPRequestException( processrequesterrorhandler.HTTP_NOT_FOUND) environ['pyfileserver.mappedrealm'] = mappedrealm environ['pyfileserver.mappedpath'] = mappedpath environ['pyfileserver.mappedURI'] = displaypath environ['pyfileserver.resourceAL'] = resourceAL if 'HTTP_DESTINATION' in environ: desturl = websupportfuncs.getRelativeURL( environ['HTTP_DESTINATION'], environ) desturl = urllib.unquote(desturl) (destrealm, destpath, destdisplaypath, destresourceAL) = self.resolveRealmURI( environ['pyfileserver.config'], desturl) if destrealm is None: raise HTTPRequestException( processrequesterrorhandler.HTTP_BAD_REQUEST) environ['pyfileserver.destrealm'] = destrealm environ['pyfileserver.destpath'] = destpath environ['pyfileserver.destURI'] = destdisplaypath environ['pyfileserver.destresourceAL'] = destresourceAL if requestmethod == 'OPTIONS': return self.doOPTIONSSpec(environ, start_response) return self._application(environ, start_response)
def __call__(self, environ, start_response): self._srvcfg = environ['pyfileserver.config'] requestmethod = environ['REQUEST_METHOD'] requestpath = urllib.unquote(environ['PATH_INFO']) if requestmethod == 'TRACE': return self.doTRACE(environ, start_response) if requestpath == '*' and requestmethod == 'OPTIONS': return self.doOPTIONS(environ, start_response) if requestpath == '/' and requestmethod == 'OPTIONS': #hotfix for WinXP return self.doOPTIONS(environ, start_response) if 'config_mapping' not in environ['pyfileserver.config']: if requestmethod == 'GET': self.printConfigErrorMessage(environ, start_response) else: raise HTTPRequestException(processrequesterrorhandler.HTTP_NOT_FOUND) (mappedrealm, mappedpath, displaypath, resourceAL) = self.resolveRealmURI(environ['pyfileserver.config'], requestpath) if mappedrealm is None: mappedrealm = '/' if 0: raise HTTPRequestException(processrequesterrorhandler.HTTP_NOT_FOUND, comment='No mapped realm for %r from %r' % (requestpath, environ['pyfileserver.config']['resAL_mapping'].keys())) environ['pyfileserver.config']['user_mapping'] = {} environ['pyfileserver.mappedrealm'] = mappedrealm environ['pyfileserver.mappedpath'] = mappedpath environ['pyfileserver.mappedURI'] = displaypath environ['pyfileserver.resourceAL'] = resourceAL if 'HTTP_DESTINATION' in environ: desturl = websupportfuncs.getRelativeURL(environ['HTTP_DESTINATION'], environ) (destrealm, destpath, destdisplaypath, destresourceAL) = self.resolveRealmURI(environ['pyfileserver.config'], desturl) if destrealm is None: raise HTTPRequestException(processrequesterrorhandler.HTTP_BAD_REQUEST) environ['pyfileserver.destrealm'] = destrealm environ['pyfileserver.destpath'] = destpath environ['pyfileserver.destURI'] = destdisplaypath environ['pyfileserver.destresourceAL'] = destresourceAL if requestmethod == 'OPTIONS': return self.doOPTIONSSpec(environ, start_response) return self._application(environ, start_response)
def __call__(self, environ, start_response): self._srvcfg = environ["pyfileserver.config"] requestmethod = environ["REQUEST_METHOD"] requestpath = environ["PATH_INFO"] if requestmethod == "TRACE": return self.doTRACE(environ, start_response) if requestpath == "*" and requestmethod == "OPTIONS": return self.doOPTIONS(environ, start_response) if requestpath == "/" and requestmethod == "OPTIONS": return self.doOPTIONS(environ, start_response) if "config_mapping" not in environ["pyfileserver.config"]: if requestmethod == "GET": self.printConfigErrorMessage() else: raise HTTPRequestException(processrequesterrorhandler.HTTP_NOT_FOUND) (mappedrealm, mappedpath, displaypath) = resolveRealmURI( environ["pyfileserver.config"]["config_mapping"], requestpath ) if mappedrealm == None: raise HTTPRequestException(processrequesterrorhandler.HTTP_NOT_FOUND) environ["pyfileserver.mappedrealm"] = mappedrealm environ["pyfileserver.mappedpath"] = mappedpath environ["pyfileserver.mappedURI"] = displaypath if "HTTP_DESTINATION" in environ: desturl = websupportfuncs.getRelativeURL(environ["HTTP_DESTINATION"], environ) (destrealm, destpath, destdisplaypath) = resolveRealmURI( environ["pyfileserver.config"]["config_mapping"], desturl ) if destrealm == None: raise HTTPRequestException(processrequesterrorhandler.HTTP_BAD_REQUEST) environ["pyfileserver.destrealm"] = destrealm environ["pyfileserver.destpath"] = destpath environ["pyfileserver.destURI"] = destdisplaypath if requestmethod == "OPTIONS": return self.doOPTIONSSpec(environ, start_response) return self._application(environ, start_response)