version 0.40a
[electrum-server.git] / server.py
index 973f932..9b2fc49 100755 (executable)
--- a/server.py
+++ b/server.py
@@ -63,6 +63,13 @@ try:
 except:
     print "Could not read electrum.conf. I will use the default values."
 
+try:
+    f = open('/etc/electrum.banner','r')
+    config.set('server','banner', f.read())
+    f.close()
+except:
+    pass
+
 password = config.get('server','password')
 bitcoind_url = 'http://%s:%s@%s:%s/' % ( config.get('bitcoind','user'), config.get('bitcoind','password'), config.get('bitcoind','host'), config.get('bitcoind','port'))
 
@@ -450,7 +457,11 @@ def listen_thread(store):
     s.listen(1)
     while not stopping:
         conn, addr = s.accept()
-        thread.start_new_thread(client_thread, (addr, conn,))
+        try:
+            thread.start_new_thread(client_thread, (addr, conn,))
+        except:
+            # can't start new thread if there is no memory..
+            traceback.print_exc(file=sys.stdout)
 
 
 
@@ -717,6 +728,8 @@ if __name__ == '__main__':
             out = server.blockchain.transaction.broadcast(sys.argv[2])
         elif cmd == 'b':
             out = server.blocks()
+        else:
+            out = "Unknown command: '%s'" % cmd
         print out
         sys.exit(0)
 
@@ -751,10 +764,10 @@ if __name__ == '__main__':
             block_number = store.get_block_number(1)
         except IOError:
             print "IOError: cannot reach bitcoind"
-            block_number = -1 
+            block_number = 0
         except:
             traceback.print_exc(file=sys.stdout)
-            block_number = -1
+            block_number = 0
         finally:
             dblock.release()
         time.sleep(10)