Esempio n. 1
0
    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
Esempio n. 2
0
 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
Esempio n. 3
0
    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']
Esempio n. 4
0
 def wrapper(self, *args, **kwargs):
     if not connection_ok('blaster', self.request.remote_ip):
         raise HTTPError(403, 'Forbidden')
     return func(self, *args, **kwargs)
Esempio n. 5
0
 def wrapper(self, *args, **kwargs):
     if not connection_ok('blaster', self.request.remote_ip):
         raise HTTPError(403, 'Forbidden')
     return func(self, *args, **kwargs)