コード例 #1
0
    def do(self):
        self.log_message(self.requestline.rpartition(' ')[0]
                         .replace('%', '%%'))

        if self.server.redirect_static:
            if any(map(self.path.startswith, ['/static/', '/media/'])):
                return self.write('HTTP/1.1 302 Found\nLocation: http://%s%s\n'
                                  % (self.server.uwsgi_host, self.path))

        setattr(self.server, 'base_environ', {})
        env = WSGIRequestHandler.get_environ(self)
        qs = env['QUERY_STRING']
        env = dict(dict({
            'REQUEST_URI': env['PATH_INFO'] + (('?' + qs) if qs else ''),
            'CONTENT_LENGTH': '',
            'DOCUMENT_ROOT': '',
            'REMOTE_PORT': str(self.client_address[1]),
        }, **env), **{
            'SERVER_ADDR': self.server.uwsgi_addr,
            'SERVER_NAME': self.server.uwsgi_host,
            'SERVER_PORT': str(self.server.uwsgi_port),
            'CONTENT_TYPE': get_content_type(self.headers) or '',
            'HTTP_HOST': self.server.uwsgi_host,
        })
        env.pop('REMOTE_HOST', 0)
        env.pop('HTTP_REFERER', 0)

        cl = env['CONTENT_LENGTH']
        body = repr(self.rfile.read(int(cl))) if cl else ''

        resp = ask_uwsgi((self.server.uwsgi_addr, self.server.uwsgi_port),
                         var=env, body=body)
        self.write(resp)
        h, _, b = resp.partition('\r\n\r\n')
        print('%s\n%s' % (h, len(b)))
コード例 #2
0
 def get_environ(self):
     env = _WSGIRequestHandler.get_environ(self)
     param = env.get('HTTP_CONNECTION', None)
     if param == 'close':
         self.close_connection = 1
     elif param == 'keep-alive':
         self.close_connection = 0
     return env
コード例 #3
0
 def get_environ(self):
     env = _WSGIRequestHandler.get_environ(self)
     param = env.get('HTTP_CONNECTION', None)
     if param == 'close':
         self.close_connection = 1
     elif param == 'keep-alive':
         self.close_connection = 0
     return env
コード例 #4
0
ファイル: serve.py プロジェクト: fxfitz/pytest-httpbin
 def get_environ(self):
     """
     wsgiref simple server adds content-type text/plain to everything, this
     removes it if it's not actually in the headers.
     """
     # Note: Can't use super since this is an oldstyle class in python 2.x
     environ = WSGIRequestHandler.get_environ(self).copy()
     if self.headers.get('content-type') is None:
         del environ['CONTENT_TYPE']
     return environ
コード例 #5
0
 def get_environ(self):
     """
     wsgiref simple server adds content-type text/plain to everything, this
     removes it if it's not actually in the headers.
     """
     # Note: Can't use super since this is an oldstyle class in python 2.x
     environ = WSGIRequestHandler.get_environ(self).copy()
     if self.headers.get('content-type') is None:
         del environ['CONTENT_TYPE']
     return environ
コード例 #6
0
ファイル: wsgi.py プロジェクト: mpuskaric/gct
 def get_environ(self):
     env = WSGIRequestHandler.get_environ(self)
     if isinstance(self.request, ssl.SSLSocket):
         env['HTTPS'] = 'on'
         # JB: Add handling of wsgi.url_scheme
         env['wsgi.url_scheme'] = 'https'
     # JB: Add handling of script name
     if env['SCRIPT_NAME'] == "" and env['PATH_INFO'].startswith(root):
         env['SCRIPT_NAME'] = root
         env['PATH_INFO'] = env['PATH_INFO'][len(root):]
     return env
コード例 #7
0
 def get_environ(self):
     wsgi_environment = WSGIRequestHandler.get_environ(self)
     wsgi_environment.update({
         "de.inm7.sfb1451.entry.dataset_root":
         "/tmp/sfb-test",
         "de.inm7.sfb1451.entry.home":
         "/tmp/sfb-test-home",
         "de.inm7.sfb1451.entry.templates":
         str(template_dir)
     })
     return wsgi_environment
コード例 #8
0
ファイル: wsgissl.py プロジェクト: extremeshok/pdnscontrol
 def get_environ(self):
     env = WSGIRequestHandler.get_environ(self)
     if isinstance(self.request, ssl.SSLSocket):
         env['HTTPS'] = 'on'
     return env
コード例 #9
0
ファイル: __init__.py プロジェクト: Rayman/iToetsnbord
 def get_environ(self):
     '''
     Just in case I need to add something...
     '''
     return WSGIRequestHandler.get_environ(self)
コード例 #10
0
 def get_environ(self):
     env = WSGIRequestHandler.get_environ(self)
     if isinstance(self.request, ssl.SSLSocket):
         env['HTTPS'] = 'on'
     return env
コード例 #11
0
ファイル: webserver.py プロジェクト: nknytk/home-recorder
 def get_environ(self):
     env = WSGIRequestHandler.get_environ(self)
     env['resource_controller'] = controller_obj
     return env