rm native port
[electrum-server.git] / backends / irc / __init__.py
index 81b223f..3b698d8 100644 (file)
@@ -16,7 +16,6 @@ class ServerProcessor(Processor):
         self.host = config.get('server','host')
         self.password = config.get('server','password')
 
-        self.native_port = config.get('server','native_port')
         self.stratum_tcp_port = config.get('server','stratum_tcp_port')
         self.stratum_http_port = config.get('server','stratum_http_port')
 
@@ -31,8 +30,6 @@ class ServerProcessor(Processor):
 
     def getname(self):
         s = ''
-        if self.native_port:
-            s+= 'n' + self.native_port + ' '
         if self.stratum_tcp_port:
             s += 't' + self.stratum_tcp_port + ' ' 
         if self.stratum_http_port:
@@ -93,6 +90,17 @@ class ServerProcessor(Processor):
         params = request['params']
         result = None
 
+        if method in ['server.stop', 'server.info']:
+            try:
+                password = request['params'][0]
+            except:
+                password = None
+
+            if password != self.password:
+                response = { 'id':request['id'], 'result':None,  'error':'incorrect password'}
+                self.push_response(response)
+                return
+
         if method == 'server.banner':
             result = self.banner.replace('\\n','\n')
 
@@ -100,21 +108,24 @@ class ServerProcessor(Processor):
             result = self.get_peers()
 
         elif method == 'server.version':
-            pass
+            result = 'ok'
 
         elif method == 'server.stop':
-            print "stopping..."
-            try:
-                password = request['params'][0]
-            except:
-                password = None
-            if password == self.password:
-                self.shared.stop()
-                result = 'ok'
+            self.shared.stop()
+            result = 'ok'
+
+        elif method == 'server.info':
+            result = map(lambda s: { "time":s.time, 
+                                     "name":s.name,
+                                     "address":s.address, 
+                                     "version":s.version, 
+                                     "subscriptions":len(s.subscriptions)}, 
+                         self.dispatcher.request_dispatcher.sessions)
+
         else:
             print "unknown method", request
 
         if result!='':
-            response = { 'id':request['id'], 'method':method, 'params':params, 'result':result }
+            response = { 'id':request['id'], 'result':result }
             self.push_response(response)