do not send port numbers when they are default
[electrum-server.git] / backends / irc / __init__.py
index 0e7b757..489e316 100644 (file)
@@ -44,6 +44,8 @@ class IrcThread(threading.Thread):
         if config.get('server', 'coin') == 'litecoin':
             self.prepend = 'EL_'
         self.pruning = config.get('server', 'backend') == 'leveldb'
+        if self.pruning:
+            self.pruning_limit = config.get('leveldb', 'pruning_limit')
         self.nick = self.prepend + self.nick
 
     def get_peers(self):
@@ -52,15 +54,20 @@ class IrcThread(threading.Thread):
     def getname(self):
         s = 'v' + VERSION + ' '
         if self.pruning:
-            s += 'p '
-        if self.stratum_tcp_port:
-            s += 't' + self.stratum_tcp_port + ' '
-        if self.stratum_http_port:
-            s += 'h' + self.stratum_http_port + ' '
-        if self.stratum_tcp_port:
-            s += 's' + self.stratum_tcp_ssl_port + ' '
-        if self.stratum_http_port:
-            s += 'g' + self.stratum_http_ssl_port + ' '
+            s += 'p' + self.pruning_limit + ' '
+
+        def add_port(letter, number):
+            DEFAULT_PORTS = {'t':'50001', 's':'50002', 'h':'8081', 'g':'8082'}
+            if not number: return ''
+            if DEFAULT_PORTS[letter] == number:
+                return letter + ' '
+            else:
+                return letter + number + ' '
+
+        s += add_port('t',self.stratum_tcp_port)
+        s += add_port('h',self.stratum_http_port)
+        s += add_port('s',self.stratum_tcp_ssl_port)
+        s += add_port('g',self.stratum_http_ssl_port)
         return s
 
     def run(self):
@@ -96,7 +103,11 @@ class IrcThread(threading.Thread):
                     elif '352' in line:  # answer to /who
                         # warning: this is a horrible hack which apparently works
                         k = line.index('352')
-                        ip = socket.gethostbyname(line[k+4])
+                        try:
+                            ip = socket.gethostbyname(line[k+4])
+                        except:
+                            print_log("gethostbyname error", line[k+4])
+                            continue
                         name = line[k+6]
                         host = line[k+9]
                         ports = line[k+10:]