Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Z
Zope
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
Zope
Commits
08785ce4
Commit
08785ce4
authored
Apr 13, 1999
by
Amos Latteier
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Improve the 'Server' and 'SERVER_SOFTWARE' HTTP and CGI headers. Retrieve the Zope version
from Zope.app.Control_Panel if possible.
parent
0a89c829
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
32 additions
and
14 deletions
+32
-14
ZServer/HTTPResponse.py
ZServer/HTTPResponse.py
+4
-6
ZServer/HTTPServer.py
ZServer/HTTPServer.py
+12
-1
lib/python/ZServer/HTTPResponse.py
lib/python/ZServer/HTTPResponse.py
+4
-6
lib/python/ZServer/HTTPServer.py
lib/python/ZServer/HTTPServer.py
+12
-1
No files found.
ZServer/HTTPResponse.py
View file @
08785ce4
...
...
@@ -99,9 +99,6 @@ from medusa.producers import hooked_producer
from
medusa
import
http_server
from
Producers
import
ShutdownProducer
,
LoggingProducer
,
CallbackProducer
__version__
=
'1.0b1'
__zope_version__
=
'1.11a1'
# XXX retrieve this somehow
# XXX there should be a method somewhere for this
class
ZServerHTTPResponse
(
HTTPResponse
):
"Used to push data into a channel's producer fifo"
...
...
@@ -153,7 +150,7 @@ class ZServerHTTPResponse(HTTPResponse):
del
headers
[
'status'
]
# add zserver headers
append
(
'Server:
Zope/%s ZServer/%s'
%
(
__zope_version__
,
__version__
)
)
append
(
'Server:
%s'
%
self
.
_server_version
)
append
(
'Date: %s'
%
build_http_date
(
time
.
time
()))
append
(
'X-Powered-By: Zope (www.zope.org), Python (www.python.org)'
)
chunk
=
0
...
...
@@ -256,11 +253,12 @@ class ChannelPipe:
def
make_response
(
request
,
headers
):
"Simple http response factory"
# should this be integrated into the HTTPResponse constructor?
# should this be integrated into the HTTPResponse constructor?
response
=
ZServerHTTPResponse
(
stdout
=
ChannelPipe
(
request
),
stderr
=
StringIO
())
response
.
_http_version
=
request
.
version
response
.
_http_connection
=
string
.
lower
(
http_server
.
get_header
(
http_server
.
CONNECTION
,
request
.
header
))
response
.
_server_version
=
request
.
channel
.
server
.
SERVER_IDENT
return
response
\ No newline at end of file
ZServer/HTTPServer.py
View file @
08785ce4
...
...
@@ -122,6 +122,14 @@ from medusa.default_handler import split_path, unquote, get_header
CONTENT_LENGTH
=
regex
.
compile
(
'Content-Length:
\
([
0
-9]+
\
)
'
,regex.casefold)
CONNECTION = regex.compile ('
Connection
:
\
(.
*
\
)
', regex.casefold)
ZSERVER_VERSION='
1.1
b1
'
try:
import Main
ZOPE_VERSION=Main.app.Control_Panel.version_txt()
del Main
except:
ZOPE_VERSION='
experimental
'
# maps request some headers to environment variables.
# (those that don'
t
start
with
'HTTP_'
)
header2env
=
{
'content-length'
:
'CONTENT_LENGTH'
,
...
...
@@ -206,7 +214,7 @@ class zhttp_handler:
env
[
'REQUEST_METHOD'
]
=
string
.
upper
(
request
.
command
)
env
[
'SERVER_PORT'
]
=
str
(
request
.
channel
.
server
.
port
)
env
[
'SERVER_NAME'
]
=
request
.
channel
.
server
.
server_name
env
[
'SERVER_SOFTWARE'
]
=
request
[
'Server'
]
env
[
'SERVER_SOFTWARE'
]
=
request
.
channel
.
server
.
SERVER_IDENT
env
[
'SERVER_PROTOCOL'
]
=
request
.
version
if
self
.
uri_base
==
'/'
:
env
[
'SCRIPT_NAME'
]
=
''
...
...
@@ -232,6 +240,7 @@ class zhttp_handler:
env
[
'REMOTE_HOST'
]
=
dns_cache
[
env
[
'REMOTE_ADDR'
]][
2
]
except
AttributeError
:
pass
for
header
in
request
.
header
:
[
key
,
value
]
=
string
.
split
(
header
,
": "
,
1
)
key
=
string
.
lower
(
key
)
...
...
@@ -317,4 +326,6 @@ class zhttp_channel(http_channel):
class
zhttp_server
(
http_server
):
"http server"
SERVER_IDENT
=
'Zope/%s ZServer/%s'
%
(
ZOPE_VERSION
,
ZSERVER_VERSION
)
channel_class
=
zhttp_channel
lib/python/ZServer/HTTPResponse.py
View file @
08785ce4
...
...
@@ -99,9 +99,6 @@ from medusa.producers import hooked_producer
from
medusa
import
http_server
from
Producers
import
ShutdownProducer
,
LoggingProducer
,
CallbackProducer
__version__
=
'1.0b1'
__zope_version__
=
'1.11a1'
# XXX retrieve this somehow
# XXX there should be a method somewhere for this
class
ZServerHTTPResponse
(
HTTPResponse
):
"Used to push data into a channel's producer fifo"
...
...
@@ -153,7 +150,7 @@ class ZServerHTTPResponse(HTTPResponse):
del
headers
[
'status'
]
# add zserver headers
append
(
'Server:
Zope/%s ZServer/%s'
%
(
__zope_version__
,
__version__
)
)
append
(
'Server:
%s'
%
self
.
_server_version
)
append
(
'Date: %s'
%
build_http_date
(
time
.
time
()))
append
(
'X-Powered-By: Zope (www.zope.org), Python (www.python.org)'
)
chunk
=
0
...
...
@@ -256,11 +253,12 @@ class ChannelPipe:
def
make_response
(
request
,
headers
):
"Simple http response factory"
# should this be integrated into the HTTPResponse constructor?
# should this be integrated into the HTTPResponse constructor?
response
=
ZServerHTTPResponse
(
stdout
=
ChannelPipe
(
request
),
stderr
=
StringIO
())
response
.
_http_version
=
request
.
version
response
.
_http_connection
=
string
.
lower
(
http_server
.
get_header
(
http_server
.
CONNECTION
,
request
.
header
))
response
.
_server_version
=
request
.
channel
.
server
.
SERVER_IDENT
return
response
\ No newline at end of file
lib/python/ZServer/HTTPServer.py
View file @
08785ce4
...
...
@@ -122,6 +122,14 @@ from medusa.default_handler import split_path, unquote, get_header
CONTENT_LENGTH
=
regex
.
compile
(
'Content-Length:
\
([
0
-9]+
\
)
'
,regex.casefold)
CONNECTION = regex.compile ('
Connection
:
\
(.
*
\
)
', regex.casefold)
ZSERVER_VERSION='
1.1
b1
'
try:
import Main
ZOPE_VERSION=Main.app.Control_Panel.version_txt()
del Main
except:
ZOPE_VERSION='
experimental
'
# maps request some headers to environment variables.
# (those that don'
t
start
with
'HTTP_'
)
header2env
=
{
'content-length'
:
'CONTENT_LENGTH'
,
...
...
@@ -206,7 +214,7 @@ class zhttp_handler:
env
[
'REQUEST_METHOD'
]
=
string
.
upper
(
request
.
command
)
env
[
'SERVER_PORT'
]
=
str
(
request
.
channel
.
server
.
port
)
env
[
'SERVER_NAME'
]
=
request
.
channel
.
server
.
server_name
env
[
'SERVER_SOFTWARE'
]
=
request
[
'Server'
]
env
[
'SERVER_SOFTWARE'
]
=
request
.
channel
.
server
.
SERVER_IDENT
env
[
'SERVER_PROTOCOL'
]
=
request
.
version
if
self
.
uri_base
==
'/'
:
env
[
'SCRIPT_NAME'
]
=
''
...
...
@@ -232,6 +240,7 @@ class zhttp_handler:
env
[
'REMOTE_HOST'
]
=
dns_cache
[
env
[
'REMOTE_ADDR'
]][
2
]
except
AttributeError
:
pass
for
header
in
request
.
header
:
[
key
,
value
]
=
string
.
split
(
header
,
": "
,
1
)
key
=
string
.
lower
(
key
)
...
...
@@ -317,4 +326,6 @@ class zhttp_channel(http_channel):
class
zhttp_server
(
http_server
):
"http server"
SERVER_IDENT
=
'Zope/%s ZServer/%s'
%
(
ZOPE_VERSION
,
ZSERVER_VERSION
)
channel_class
=
zhttp_channel
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment