mirror of
https://github.com/novnc/noVNC.git
synced 2026-05-26 23:19:41 +00:00
- Add meta tag to vnc.html and vnc_auto.html so that if Chrome Frame is installed, it is used. - Add detection to default_controls.js that shows a message with a Chrome Frame install link if the user is using a version of IE without Canvas support. - Fix web.py so that requests have their connection closed after they are completed. This has been a bug for a while but it prevents Chrome Frame from working because Chrome Frame doesn't activate until the initial request connection closes.
55 lines
1.4 KiB
Python
Executable File
55 lines
1.4 KiB
Python
Executable File
#!/usr/bin/python
|
|
'''
|
|
A super simple HTTP/HTTPS webserver for python. Automatically detect
|
|
|
|
You can make a cert/key with openssl using:
|
|
openssl req -new -x509 -days 365 -nodes -out self.pem -keyout self.pem
|
|
as taken from http://docs.python.org/dev/library/ssl.html#certificates
|
|
|
|
'''
|
|
|
|
import traceback, sys
|
|
import socket
|
|
import ssl
|
|
#import http.server as server # python 3.X
|
|
import SimpleHTTPServer as server # python 2.X
|
|
|
|
def do_request(connstream, from_addr):
|
|
x = object()
|
|
server.SimpleHTTPRequestHandler(connstream, from_addr, x)
|
|
connstream.close()
|
|
|
|
def serve():
|
|
bindsocket = socket.socket()
|
|
#bindsocket.bind(('localhost', PORT))
|
|
bindsocket.bind(('', PORT))
|
|
bindsocket.listen(5)
|
|
|
|
print("serving on port", PORT)
|
|
|
|
while True:
|
|
try:
|
|
newsocket, from_addr = bindsocket.accept()
|
|
peek = newsocket.recv(1024, socket.MSG_PEEK)
|
|
if peek.startswith("\x16"):
|
|
connstream = ssl.wrap_socket(
|
|
newsocket,
|
|
server_side=True,
|
|
certfile='self.pem',
|
|
ssl_version=ssl.PROTOCOL_TLSv1)
|
|
else:
|
|
connstream = newsocket
|
|
|
|
do_request(connstream, from_addr)
|
|
|
|
except Exception:
|
|
traceback.print_exc()
|
|
|
|
try:
|
|
PORT = int(sys.argv[1])
|
|
except:
|
|
print "%s port" % sys.argv[0]
|
|
sys.exit(2)
|
|
|
|
serve()
|