Changeset 17:73577e591432
- Timestamp:
- 05/31/05 15:37:04
(3 years ago)
- Author:
- Allan Saddi <allan@saddi.com>
- branch:
- default
- convert_revision:
- svn:46762da8-4eb7-0310-94e9-d918b60927c8/flup/trunk@1794
- Message:
Take scriptName from the WSGI_SCRIPT_NAME environment variable
passed from the web server, if present.
Check if scriptName is None, and if so, don't modify SCRIPT_NAME
& PATH_INFO. For better compatibility with cgi2scgi. (scgi_base)
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| r15 |
r17 |
|
| | 1 | 2005-05-31 Allan Saddi <asaddi@ganymede.saddi.net> |
|---|
| | 2 | |
|---|
| | 3 | * Take scriptName from the WSGI_SCRIPT_NAME environment variable |
|---|
| | 4 | passed from the web server, if present. |
|---|
| | 5 | * Check if scriptName is None, and if so, don't modify SCRIPT_NAME |
|---|
| | 6 | & PATH_INFO. For better compatibility with cgi2scgi. (scgi_base) |
|---|
| | 7 | |
|---|
| 1 | 8 | 2005-05-18 Allan Saddi <asaddi@ganymede.saddi.net> |
|---|
| 2 | 9 | |
|---|
| r15 |
r17 |
|
| 472 | 472 | self._conn = conn |
|---|
| 473 | 473 | |
|---|
| 474 | | self.environ = { |
|---|
| 475 | | 'SCRIPT_NAME': conn.server.scriptName |
|---|
| 476 | | } |
|---|
| | 474 | self.environ = {} |
|---|
| 477 | 475 | self.input = InputStream(conn) |
|---|
| 478 | 476 | |
|---|
| … | … | |
| 520 | 518 | def setRequestURI(self, value): |
|---|
| 521 | 519 | self.environ['REQUEST_URI'] = value |
|---|
| 522 | | |
|---|
| 523 | | scriptName = self._conn.server.scriptName |
|---|
| 524 | | if not value.startswith(scriptName): |
|---|
| 525 | | self.logger.warning('scriptName does not match request URI') |
|---|
| 526 | | |
|---|
| 527 | | self.environ['PATH_INFO'] = value[len(scriptName):] |
|---|
| 528 | 520 | |
|---|
| 529 | 521 | def setRemoteAddr(self, value): |
|---|
| … | … | |
| 848 | 840 | environ['wsgi.url_scheme'] = 'http' |
|---|
| 849 | 841 | |
|---|
| | 842 | self._sanitizeEnv(environ) |
|---|
| | 843 | |
|---|
| 850 | 844 | headers_set = [] |
|---|
| 851 | 845 | headers_sent = [] |
|---|
| … | … | |
| 917 | 911 | self._appLock.release() |
|---|
| 918 | 912 | |
|---|
| | 913 | def _sanitizeEnv(self, environ): |
|---|
| | 914 | """Fill-in/deduce missing values in environ.""" |
|---|
| | 915 | # Namely SCRIPT_NAME/PATH_INFO |
|---|
| | 916 | value = environ['REQUEST_URI'] |
|---|
| | 917 | scriptName = environ.get('WSGI_SCRIPT_NAME', self.scriptName) |
|---|
| | 918 | if not value.startswith(scriptName): |
|---|
| | 919 | self.logger.warning('scriptName does not match request URI') |
|---|
| | 920 | |
|---|
| | 921 | environ['PATH_INFO'] = value[len(scriptName):] |
|---|
| | 922 | environ['SCRIPT_NAME'] = scriptName |
|---|
| | 923 | |
|---|
| 919 | 924 | def error(self, request): |
|---|
| 920 | 925 | """ |
|---|
| r15 |
r17 |
|
| 444 | 444 | """Fill-in/deduce missing values in environ.""" |
|---|
| 445 | 445 | # Namely SCRIPT_NAME/PATH_INFO |
|---|
| | 446 | scriptName = environ.get('WSGI_SCRIPT_NAME') |
|---|
| | 447 | if scriptName is None: |
|---|
| | 448 | scriptName = self.scriptName |
|---|
| | 449 | elif scriptName.lower() == 'none': |
|---|
| | 450 | scriptName = None |
|---|
| | 451 | |
|---|
| | 452 | if scriptName is None: |
|---|
| | 453 | # Do nothing (most likely coming from cgi2scgi) |
|---|
| | 454 | return |
|---|
| | 455 | |
|---|
| 446 | 456 | value = environ['SCRIPT_NAME'] |
|---|
| 447 | 457 | # Pull PATH_INFO from environ, if it exists. (cgi2scgi actually |
|---|
| 448 | 458 | # passes it in.) |
|---|
| 449 | 459 | value += environ.get('PATH_INFO', '') |
|---|
| 450 | | scriptName = self.scriptName |
|---|
| 451 | 460 | if not value.startswith(scriptName): |
|---|
| 452 | 461 | self.logger.warning('scriptName does not match request URI') |
|---|