home
·
contact
·
privacy
projects
/
plomrogue2-experiments
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Improve SSL negotation.
[plomrogue2-experiments]
/
new2
/
rogue_chat_curses.py
diff --git
a/new2/rogue_chat_curses.py
b/new2/rogue_chat_curses.py
index ee2cae8f5abad5682ef5fa7e17a7cf15e8cfdf4a..c8a17c888388dcfb9317896a7d830ac2bd00b9cf 100755
(executable)
--- a/
new2/rogue_chat_curses.py
+++ b/
new2/rogue_chat_curses.py
@@
-39,8
+39,12
@@
class PlomSocketClient(PlomSocket):
self.socket.close()
def run(self):
self.socket.close()
def run(self):
+ import ssl
try:
for msg in self.recv():
try:
for msg in self.recv():
+ if msg == 'NEED_SSL':
+ self.socket = ssl.wrap_socket(self.socket)
+ continue
self.recv_handler(msg)
except BrokenSocketConnection:
pass # we assume socket will be known as dead by now
self.recv_handler(msg)
except BrokenSocketConnection:
pass # we assume socket will be known as dead by now
@@
-139,8
+143,13
@@
def cmd_ANNOTATION(game, position, msg):
game.tui.do_refresh = True
cmd_ANNOTATION.argtypes = 'yx_tuple:nonneg string'
game.tui.do_refresh = True
cmd_ANNOTATION.argtypes = 'yx_tuple:nonneg string'
+def cmd_PONG(game):
+ pass
+cmd_PONG.argtypes = ''
+
class Game(GameBase):
commands = {'LOGIN_OK': cmd_LOGIN_OK,
class Game(GameBase):
commands = {'LOGIN_OK': cmd_LOGIN_OK,
+ 'PONG': cmd_PONG,
'CHAT': cmd_CHAT,
'PLAYER_ID': cmd_PLAYER_ID,
'TURN': cmd_TURN,
'CHAT': cmd_CHAT,
'PLAYER_ID': cmd_PLAYER_ID,
'TURN': cmd_TURN,
@@
-296,6
+305,7
@@
class TUI:
def loop(self, stdscr):
import time
def loop(self, stdscr):
import time
+ import datetime
def safe_addstr(y, x, line):
if y < self.size.y - 1 or x + len(line) < self.size.x:
def safe_addstr(y, x, line):
if y < self.size.y - 1 or x + len(line) < self.size.x:
@@
-492,7
+502,13
@@
class TUI:
self.input_ = ''
input_prompt = '> '
connect()
self.input_ = ''
input_prompt = '> '
connect()
+ last_ping = datetime.datetime.now()
+ interval = datetime.timedelta(seconds=30)
while True:
while True:
+ now = datetime.datetime.now()
+ if now - last_ping > interval:
+ self.send('PING')
+ last_ping = now
if self.do_refresh:
draw_screen()
self.do_refresh = False
if self.do_refresh:
draw_screen()
self.do_refresh = False
@@
-594,4
+610,4
@@
class TUI:
self.send('TASK:WRITE ' + key)
self.switch_mode('play')
self.send('TASK:WRITE ' + key)
self.switch_mode('play')
-TUI('
127.0.0.1
:5000')
+TUI('
localhost
:5000')