def __call__(self, environ, start_response): if not connection_ok('dataretriever', environ['REMOTE_ADDR']): headers = [("Content-Type", "text/plain")] start_response("403 Forbidden", headers) return "Client not authorized" environ.setdefault('wsgi.file_wrapper', FileWrapper) root = shift_path_info(environ) # clean up remaining path components path = environ['PATH_INFO'] comp = [p for p in path.split('/') if p not in ('.', '..')] environ['PATH_INFO'] = '/'.join(comp) try: handler = self.handlers[root] response = handler(environ, start_response) except (KeyError, IOError): headers = [("Content-Type", "text/plain")] start_response("404 Object not found", headers) response = ['Object not found'] if environ['REQUEST_METHOD'] == 'HEAD': return [""] return response
def _accept(self, lsock): '''Accept waiting connections and add them to the pollset.''' try: while True: sock, addr = lsock.accept() sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1) host = addr[0] if connection_ok('diamondd', host): pconn = _PendingConn(sock, host) _log.debug('New connection from %s', pconn.peer) self._poll.register(pconn, select.POLLIN) else: sock.close() _log.info('Rejected connection from %s', host) except socket.error: pass
def __call__(self, environ, start_response): if not connection_ok('dataretriever', environ['REMOTE_ADDR']): headers = [("Content-Type", "text/plain")] start_response("403 Forbidden", headers) return "Client not authorized" environ.setdefault('wsgi.file_wrapper', FileWrapper) root = shift_path_info(environ) # clean up remaining path components path = environ['PATH_INFO'] comp = [p for p in path.split('/') if p not in ('.', '..')] environ['PATH_INFO'] = '/'.join(comp) try: handler = self.handlers[root] response = handler(environ, start_response) except KeyError, IOError: headers = [("Content-Type", "text/plain")] start_response("404 Object not found", headers) response = ['Object not found']
def wrapper(self, *args, **kwargs): if not connection_ok('blaster', self.request.remote_ip): raise HTTPError(403, 'Forbidden') return func(self, *args, **kwargs)