mirror of
https://github.com/lammertb/libhttp.git
synced 2025-08-20 20:41:19 +03:00
added debug trace in mg_start. restored stderr duping in spawn_process()
This commit is contained in:
@@ -8,50 +8,51 @@ import mongoose
|
||||
import sys
|
||||
|
||||
# Handle /show and /form URIs.
|
||||
def uri_handler(conn, info):
|
||||
if info.uri == '/show':
|
||||
conn.printf('%s', 'HTTP/1.0 200 OK\r\n')
|
||||
conn.printf('%s', 'Content-Type: text/plain\r\n\r\n')
|
||||
conn.printf('%s %s\n', info.request_method, info.uri)
|
||||
if info.request_method == 'POST':
|
||||
content_len = conn.get_header('Content-Length')
|
||||
post_data = conn.read(int(content_len))
|
||||
my_var = conn.get_var(post_data, 'my_var')
|
||||
else:
|
||||
my_var = conn.get_qsvar(info, 'my_var')
|
||||
conn.printf('my_var: %s\n', my_var or '<not set>')
|
||||
conn.printf('HEADERS: \n')
|
||||
for header in info.http_headers[:info.num_headers]:
|
||||
conn.printf(' %s: %s\n', header.name, header.value)
|
||||
return mongoose.MG_SUCCESS
|
||||
elif info.uri == '/form':
|
||||
conn.write('HTTP/1.0 200 OK\r\n'
|
||||
'Content-Type: text/html\r\n\r\n'
|
||||
'Use GET: <a href="/show?my_var=hello">link</a>'
|
||||
'<form action="/show" method="POST">'
|
||||
'Use POST: type text and submit: '
|
||||
'<input type="text" name="my_var"/>'
|
||||
'<input type="submit"/>'
|
||||
'</form>')
|
||||
return mongoose.MG_SUCCESS
|
||||
else:
|
||||
return mongoose.MG_ERROR
|
||||
def EventHandler(conn, info):
|
||||
if info.uri == '/show':
|
||||
conn.printf('%s', 'HTTP/1.0 200 OK\r\n')
|
||||
conn.printf('%s', 'Content-Type: text/plain\r\n\r\n')
|
||||
conn.printf('%s %s\n', info.request_method, info.uri)
|
||||
if info.request_method == 'POST':
|
||||
content_len = conn.get_header('Content-Length')
|
||||
post_data = conn.read(int(content_len))
|
||||
my_var = conn.get_var(post_data, 'my_var')
|
||||
else:
|
||||
my_var = conn.get_qsvar(info, 'my_var')
|
||||
conn.printf('my_var: %s\n', my_var or '<not set>')
|
||||
conn.printf('HEADERS: \n')
|
||||
for header in info.http_headers[:info.num_headers]:
|
||||
conn.printf(' %s: %s\n', header.name, header.value)
|
||||
return mongoose.MG_SUCCESS
|
||||
elif info.uri == '/form':
|
||||
conn.write('HTTP/1.0 200 OK\r\n'
|
||||
'Content-Type: text/html\r\n\r\n'
|
||||
'Use GET: <a href="/show?my_var=hello">link</a>'
|
||||
'<form action="/show" method="POST">'
|
||||
'Use POST: type text and submit: '
|
||||
'<input type="text" name="my_var"/>'
|
||||
'<input type="submit"/>'
|
||||
'</form>')
|
||||
return mongoose.MG_SUCCESS
|
||||
else:
|
||||
return mongoose.MG_ERROR
|
||||
|
||||
# Invoked each time HTTP error is triggered.
|
||||
def error_handler(conn, info):
|
||||
conn.printf('%s', 'HTTP/1.0 200 OK\r\n')
|
||||
conn.printf('%s', 'Content-Type: text/plain\r\n\r\n')
|
||||
conn.printf('HTTP error: %d\n', info.status_code)
|
||||
return mongoose.MG_SUCCESS
|
||||
conn.printf('%s', 'HTTP/1.0 200 OK\r\n')
|
||||
conn.printf('%s', 'Content-Type: text/plain\r\n\r\n')
|
||||
conn.printf('HTTP error: %d\n', info.status_code)
|
||||
return mongoose.MG_SUCCESS
|
||||
|
||||
# Create mongoose object, and register '/foo' URI handler
|
||||
# List of options may be specified in the contructor
|
||||
server = mongoose.Mongoose(document_root='/tmp',
|
||||
new_request_handler=uri_handler,
|
||||
http_error_handler=error_handler,
|
||||
listening_ports='8080')
|
||||
server = mongoose.Mongoose(EventHandler,
|
||||
document_root='/tmp',
|
||||
listening_ports='8080')
|
||||
|
||||
print ('Mongoose started on port %s, press enter to quit'
|
||||
% server.get_option('listening_ports'))
|
||||
|
||||
print 'Starting Mongoose server, press enter to quit'
|
||||
sys.stdin.read(1)
|
||||
|
||||
# Deleting server object stops all serving threads
|
||||
|
Reference in New Issue
Block a user