mirror of
https://github.com/gnh1201/caterpillar.git
synced 2024-10-04 15:11:57 +00:00
Update server.py
This commit is contained in:
parent
56c2db1442
commit
c94125cf07
20
server.py
20
server.py
|
@ -103,16 +103,30 @@ def parse_first_data(data):
|
||||||
return parsed_data
|
return parsed_data
|
||||||
|
|
||||||
def conn_string(conn, data, addr):
|
def conn_string(conn, data, addr):
|
||||||
# check is it JSON-RPC 2.0 request
|
# JSON-RPC 2.0 request
|
||||||
if data.find(b'{') == 0:
|
def process_jsonrpc2(data):
|
||||||
jsondata = json.loads(data.decode(client_encoding, errors='ignore'))
|
jsondata = json.loads(data.decode(client_encoding, errors='ignore'))
|
||||||
if jsondata['jsonrpc'] == "2.0":
|
if jsondata['jsonrpc'] == "2.0":
|
||||||
jsonrpc2_server(conn, jsondata['id'], jsondata['method'], jsondata['params'])
|
jsonrpc2_server(conn, jsondata['id'], jsondata['method'], jsondata['params'])
|
||||||
return
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
# JSON-RPC 2.0 request over Socket
|
||||||
|
if data.find(b'{') == 0 and process_jsonrpc2(data):
|
||||||
|
# no connection close: wait until the client disconnected
|
||||||
|
return
|
||||||
|
|
||||||
# parse first data (header)
|
# parse first data (header)
|
||||||
webserver, port, scheme, method, url = parse_first_data(data)
|
webserver, port, scheme, method, url = parse_first_data(data)
|
||||||
|
|
||||||
|
# JSON-RPC 2.0 request over HTTP
|
||||||
|
if url.decode(client_encoding).endswith("/proxy-cgi/jsonrpc2"):
|
||||||
|
conn.send(b'HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n')
|
||||||
|
pos = data.find(b'\r\n\r\n')
|
||||||
|
if pos > -1 and process_jsonrpc2(data[pos+4:]):
|
||||||
|
conn.close() # connection close: when the request is completed, the server will disconnect
|
||||||
|
return
|
||||||
|
|
||||||
# if it is reverse proxy
|
# if it is reverse proxy
|
||||||
if local_domain != '':
|
if local_domain != '':
|
||||||
localserver = local_domain.encode(client_encoding)
|
localserver = local_domain.encode(client_encoding)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user