aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Tools/demo/rpythond.py
diff options
context:
space:
mode:
Diffstat (limited to 'Tools/demo/rpythond.py')
-rwxr-xr-xTools/demo/rpythond.py58
1 files changed, 0 insertions, 58 deletions
diff --git a/Tools/demo/rpythond.py b/Tools/demo/rpythond.py
deleted file mode 100755
index 4e47fb9ec41..00000000000
--- a/Tools/demo/rpythond.py
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/usr/bin/env python3
-
-"""
-Remote python server.
-Execute Python commands remotely and send output back.
-
-WARNING: This version has a gaping security hole -- it accepts requests
-from any host on the internet!
-"""
-
-import sys
-from socket import socket, AF_INET, SOCK_STREAM
-import io
-import traceback
-
-PORT = 4127
-BUFSIZE = 1024
-
-def main():
- if len(sys.argv) > 1:
- port = int(sys.argv[1])
- else:
- port = PORT
- s = socket(AF_INET, SOCK_STREAM)
- s.bind(('', port))
- s.listen(1)
- while True:
- conn, (remotehost, remoteport) = s.accept()
- with conn:
- print('connection from', remotehost, remoteport)
- request = b''
- while True:
- data = conn.recv(BUFSIZE)
- if not data:
- break
- request += data
- reply = execute(request.decode())
- conn.send(reply.encode())
-
-def execute(request):
- stdout = sys.stdout
- stderr = sys.stderr
- sys.stdout = sys.stderr = fakefile = io.StringIO()
- try:
- try:
- exec(request, {}, {})
- except:
- print()
- traceback.print_exc(100)
- finally:
- sys.stderr = stderr
- sys.stdout = stdout
- return fakefile.getvalue()
-
-try:
- main()
-except KeyboardInterrupt:
- pass