Update TODO based on work for 0.4.1
[python-rwhoisd.git] / rwhoisd / RwhoisServer.py
index e989ce0..2729f85 100644 (file)
@@ -1,8 +1,6 @@
 # This file is part of python-rwhoisd
 #
-# Copyright (C) 2003, David E. Blacka
-#
-# $Id: RwhoisServer.py,v 1.3 2003/04/28 16:45:11 davidb Exp $
+# Copyright (C) 2003, 2008 David E. Blacka
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -84,13 +82,16 @@ class RwhoisHandler(SocketServer.StreamRequestHandler):
             # we can skip blank lines.
             if not line:
                 continue
-            
-            if line.startswith("-"):
-                self.handle_directive(session, line)
-            else:
-                self.handle_query(session, line)
-                if not session.holdconnect:
-                    self.quit_flag = True
+        
+            try:
+                if line.startswith("-"):
+                    self.handle_directive(session, line)
+                else:
+                    self.handle_query(session, line)
+                    if not session.holdconnect:
+                        self.quit_flag = True
+            except Rwhois.RwhoisError, e:
+                self.handle_error(session, e)
 
             self.wfile.flush()
 
@@ -114,6 +115,10 @@ class RwhoisHandler(SocketServer.StreamRequestHandler):
             print "%s query %s" % (self.client_address, line)
         query_processor.process_query(session, line)
 
+    def handle_error(self, session, error):
+        code = error[0]
+        msg = error[1]
+        session.wfile.write(Rwhois.error_message((code, msg)))
 
 def usage(pname):
     print """\