]> git.llucax.com Git - software/pymin.git/blobdiff - pymindaemon.py
Factored out a lot of common code.
[software/pymin.git] / pymindaemon.py
index c3fdda68674fffd65b589181f153b60d4d094d84..b440c5279f9b015a0beb7b5882dfaeb0d5403ce3 100644 (file)
@@ -65,11 +65,16 @@ class PyminDaemon(eventloop.EventLoop):
             if result is not None:
                 result = serializer.serialize(result)
             response = u'OK '
             if result is not None:
                 result = serializer.serialize(result)
             response = u'OK '
+        except dispatcher.Error, e:
+            result = unicode(e) + u'\n'
+            response = u'ERROR '
         except Exception, e:
         except Exception, e:
-            result = unicode(e)
+            import traceback
+            result = u'Internal server error\n'
+            traceback.print_exc() # TODO logging!
             response = u'ERROR '
         if result is None:
             response = u'ERROR '
         if result is None:
-            response += u'0'
+            response += u'0\n'
         else:
             response += u'%d\n%s' % (len(result), result)
         self.file.sendto(response, addr)
         else:
             response += u'%d\n%s' % (len(result), result)
         self.file.sendto(response, addr)
@@ -83,13 +88,11 @@ class PyminDaemon(eventloop.EventLoop):
 
 if __name__ == '__main__':
 
 
 if __name__ == '__main__':
 
-    from dispatcher import handler
-
-    @handler
+    @handler(u"Print all the arguments, return nothing.")
     def test_handler(*args):
         print 'test:', args
 
     def test_handler(*args):
         print 'test:', args
 
-    @handler
+    @handler(u"Echo the message passed as argument.")
     def echo_handler(message):
         print 'echo:', message
         return message
     def echo_handler(message):
         print 'echo:', message
         return message