ahh, decserver doesn't always echo
[zanchey/dispense2.git] / sql-edition / servers / LATClient.py
index fa2b297..12cc47c 100644 (file)
@@ -20,17 +20,22 @@ def read_for_a_bit(rfh):
                        message = message + rfh.read(1)
                else:
                        break
-       print "Received message: ", message
+       print "Received message: ", repr(message)
        return message
 
 def write_expecting_echo(rfh, wfh, message):
-       print "Writing message:",message
+       print "Writing message:", repr(message)
        while len(message) > 0:
                wfh.write(message[0])
                wfh.flush()
-               echo = rfh.read(1)
-               if echo != message[0]:
-                       print "Gah, expected echo when writing", message[0]
+               if message[0] == '\n':
+                       echo = rfh.read(2)
+                       expected_echo = '\r\n'
+               else:
+                       echo = rfh.read(1)
+                       expected_echo = message[0]
+               if echo != expected_echo:
+                       print "Gah, expected echo when writing", repr(message[0]), "but got", repr(echo)
                message = message[1:]
        print "  --> Sent and echoed."
 
@@ -93,9 +98,10 @@ class LATClient:
                self.sock.shutdown(2)
                self.sock.close()
                mopw, mopr = popen4('/usr/sbin/moprc '+self.server_name)
-               write_expecting_echo(mopr, mopw, '\n')
                read_for_a_bit(mopr)
-               write_expecting_echo(mopr, mopw, self.connect_password+'\n')
+               mopw.write('\n')
+               read_for_a_bit(mopr)
+               mopw.write(self.connect_password+'\n')
                read_for_a_bit(mopr)
                write_expecting_echo(mopr, mopw, 'grim reaper\n')
                read_for_a_bit(mopr)

UCC git Repository :: git.ucc.asn.au