[Spambayes-checkins] spambayes pop3proxy.py,1.7,1.8

Richie Hindle richiehindle@users.sourceforge.net
Fri Nov 1 09:14:50 2002


Update of /cvsroot/spambayes/spambayes
In directory usw-pr-cvs1:/tmp/cvs-serv16187

Modified Files:
	pop3proxy.py 
Log Message:
Made this work on Linux, where socket.makefile behaves differently from
Windows.

Index: pop3proxy.py
===================================================================
RCS file: /cvsroot/spambayes/spambayes/pop3proxy.py,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** pop3proxy.py	29 Oct 2002 21:02:40 -0000	1.7
--- pop3proxy.py	1 Nov 2002 09:14:47 -0000	1.8
***************
*** 87,94 ****
          self.request = ''
          self.set_terminator('\r\n')
!         serverSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
!         serverSocket.connect((serverName, serverPort))
!         self.serverFile = serverSocket.makefile()
!         self.push(self.serverFile.readline())
  
      def handle_connect(self):
--- 87,94 ----
          self.request = ''
          self.set_terminator('\r\n')
!         self.serverSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
!         self.serverSocket.connect((serverName, serverPort))
!         self.serverIn = self.serverSocket.makefile('r')  # For reading only
!         self.push(self.serverIn.readline())
  
      def handle_connect(self):
***************
*** 135,139 ****
          seenAllHeaders = False
          while True:
!             line = self.serverFile.readline()
              if not line:
                  # The socket's been closed by the server, probably by QUIT.
--- 135,139 ----
          seenAllHeaders = False
          while True:
!             line = self.serverIn.readline()
              if not line:
                  # The socket's been closed by the server, probably by QUIT.
***************
*** 173,184 ****
          # Send the request to the server and read the reply.
          if self.request.strip().upper() == 'KILL':
!             self.serverFile.write('QUIT\r\n')
!             self.serverFile.flush()
              self.send("+OK, dying.\r\n")
              self.shutdown(2)
              self.close()
              raise SystemExit
!         self.serverFile.write(self.request + '\r\n')
!         self.serverFile.flush()
          if self.request.strip() == '':
              # Someone just hit the Enter key.
--- 173,182 ----
          # Send the request to the server and read the reply.
          if self.request.strip().upper() == 'KILL':
!             self.serverSocket.sendall('QUIT\r\n')
              self.send("+OK, dying.\r\n")
              self.shutdown(2)
              self.close()
              raise SystemExit
!         self.serverSocket.sendall(self.request + '\r\n')
          if self.request.strip() == '':
              # Someone just hit the Enter key.
***************
*** 200,204 ****
          if timedOut:
              while True:
!                 line = self.serverFile.readline()
                  if not line:
                      # The socket's been closed by the server.
--- 198,202 ----
          if timedOut:
              while True:
!                 line = self.serverIn.readline()
                  if not line:
                      # The socket's been closed by the server.
***************
*** 529,532 ****
--- 527,531 ----
          asyncore.loop(map=testSocketMap)
  
+     proxyReady = threading.Event()
      def runProxy():
          # Name the database in case it ever gets auto-flushed to disk.
***************
*** 535,538 ****
--- 534,538 ----
          bayes.learn(tokenizer.tokenize(spam1), True)
          bayes.learn(tokenizer.tokenize(good1), False)
+         proxyReady.set()
          asyncore.loop()
  
***************
*** 540,548 ****
      testServerReady.wait()
      threading.Thread(target=runProxy).start()
  
      # Connect to the proxy.
      proxy = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
      proxy.connect(('localhost', 8111))
!     assert proxy.recv(100) == "+OK ready\r\n"
  
      # Stat the mailbox to get the number of messages.
--- 540,550 ----
      testServerReady.wait()
      threading.Thread(target=runProxy).start()
+     proxyReady.wait()
  
      # Connect to the proxy.
      proxy = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
      proxy.connect(('localhost', 8111))
!     response = proxy.recv(100)
!     assert response == "+OK ready\r\n"
  
      # Stat the mailbox to get the number of messages.