From 76962db81f458b56ab8890423a12dff3b406db5a Mon Sep 17 00:00:00 2001
From: Yann Leboulanger <asterix@lagaule.org>
Date: Tue, 5 Oct 2010 10:51:15 +0200
Subject: [PATCH] update servers.xml from xmpp.org. Fixes #5797

---
 data/other/servers.xml | 482 +++++++----------------------------------
 src/config.py          |   5 +-
 src/gtkgui_helpers.py  |  31 +--
 3 files changed, 84 insertions(+), 434 deletions(-)

diff --git a/data/other/servers.xml b/data/other/servers.xml
index b31c6fdd8..bd68b897b 100644
--- a/data/other/servers.xml
+++ b/data/other/servers.xml
@@ -1,403 +1,81 @@
-<!-- This file lists the public Jabber servers registered with the 
-     Jabber Software Foundation. The format of this file is defined 
-     by the Service Discovery protocol: 
-
-        http://www.jabber.org/jeps/jep-0030.html
-
-     To add your server to the list, contact stpeter@jabber.org -->
-<query xmlns="http://jabber.org/protocol/disco#items">
-  <item jid="12jabber.com" name="Jabber server hosted by Anywise.com">
-    <active port="5222"/>
-  </item>
-  <item jid="admin-networks.org" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="akl.lt" name="Jabber server in Lietuva (Lithuania)">
-    <active port="5222"/>
-  </item>
-  <item jid="amber.org.uk" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="amessage.at" name="Austrian Jabber server">
-    <active port="5222"/>
-  </item>
-  <item jid="amessage.be" name="Belgian Jabber server">
-    <active port="5222"/>
-  </item>
-  <item jid="amessage.ch" name="Swiss Jabber server">
-    <active port="5222"/>
-  </item>
-  <item jid="amessage.de" name="German Jabber server">
-    <active port="5222"/>
-  </item>
-  <item jid="amessage.info" name="Jabber server from amessage">
-    <active port="5222"/>
-    <digest algo="sha1" value="69:FA:D6:32:BF:84:CE:01:D9:FC:C5:1A:E3:04:12:FB:A5:28:03:1A"/>
-  </item>
-  <item jid="amessage.li" name="Jabber server in Liechtenstein">
-    <active port="5222"/>
-  </item>
-  <item jid="aszlig.net" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="blabla.kz" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="bloodyxml.com" name="Hosted by Chote Networks (http://www.chote.com)">
-    <active port="5222"/>
-  </item>
-  <item jid="borderlinenormal.com" name="Hosted by Chote Networks (http://www.chote.com)">
-    <active port="5222"/>
-  </item>
-  <item jid="bulmalug.net" name="Server hosted by the Linux Users Group of the Balearic Islands">
-    <active port="5222"/>
-  </item>
-  <item jid="chat.mail2web.com" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="default.co.yu" name="Server in Yugoslavia">
-    <active port="5222"/>
-  </item>
-  <item jid="deshalbfrei.org" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="develog.com" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="dotgeek.org" name="Jabber server in Switzerland">
-    <active port="5222"/>
-  </item>
-  <item jid="es.tipic.com" name="Spanish Jabber server hosted by Tipic">
-    <active port="5222"/>
-  </item>
-  <item jid="foxalpha.de" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="fritalk.org" name="French Jabber Server">
-    <active port="5222"/>
-  </item>
-  <item jid="gnubox.eu" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="here.dk" name="Jabber server in Denmark">
-    <active port="5222"/>
-  </item>
-  <item jid="illx.org" name="Jabber server hosted by illx.org">
-    <active port="5222"/>
-  </item>
-  <item jid='im.apinc.org' name='French server hosted by APINC'> 
-    <active port='5222'/> 
-  </item>
-  <item jid="im.flosoft.biz" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="im.toile-libre.org" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="ims.kelkoo.net" name="Server hosted by Kelkoo (France)">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber-fr.net" name="French Jabber server">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber-hispano.org" name="Servidor Jabber de la comunidad hispana">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.3gnt.org" name="Server in Portugal">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.ambrero.nl" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.anywise.com" name="Jabber server hosted by Anywise.com">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.atman.pl" name="Another server in Poland">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.autocom.pl" name="Server associated with jabberpl.org">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.bettercom.de" name="Public server hosted by BetterCom">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.cc" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.ccc.de" name="Service of the Chaos Computer Club">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.cd.chalmers.se" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.cn" name="Jabber server for all of China! :-)">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.com" name="Jabber server offered by Jabber, Inc.">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.com.cn" name="Jabber server in China">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.cz" name="Czech Jabber server">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.dk" name="Jabber server in Denmark">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.earth.li" name="Jabber server hosted by earth.li">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.evilrealms.net" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.felisberto.net" name="Server in Portugal">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.fr" name="French server hosted by APINC">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.freenet.de" name="Server in Germany">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.hot-chilli.net" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.hu" name="Jabber server in Hungary">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.i-pobox.net" name="Server in Germany">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.kiev.ua" name="Server in Ukrain (Kiev)">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.killerbees.org.uk" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.linux.it" name="Jabber server in Italy">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.lutix.org" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.meta.net.nz" name="Jabber server in New Zealand">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.minus273.org" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.mulasystems.com" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.ngnet.it" name="Server in Italy">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.no" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.noxa.de" name="Server in Germany">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.nuxo.net" name="Server in France">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.obsidian.co.za" name="Server in South Africa">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.od.ua" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.or.id" name="Indonesian Jabber server">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.org" name="Server hosted by the Jabber Software Foundation">
-    <active port="5222"/>
-    <digest algo="sha1" value="66:9B:DB:4F:85:B7:A2:26:4D:76:01:C1:14:ED:0A:A9:24:15:8C:85"/>
-  </item>
-  <item jid="jabber.org.au" name="Server in Australia">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.org.nz" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.palomine.net" name="Server located in Delray Beach, Florida">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.papla.pl" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.pilgerer.de" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.ru" name="Russian Jabber server">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.sim.pl" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.sk" name="Slovak Jabber server">
-    <active port="5222"/>
-    <digest algo="sha1" value="EB:2C:ED:CC:FD:C1:F8:8F:58:07:CE:EF:09:0F:72:45:5E:1E:7A:96"/>
-  </item>
-  <item jid="jabber.snc.ru" name="Jabber server in Russia">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.te.ua" name="Server in Ukraine">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.ttn.ru" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.turk-php.com" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.tuxfamily.org" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.typhon.net" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.unesco.kz" name="First public server in Kazakhstan">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.unixfreunde.net" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.unoc.net" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.wiretrip.org" name="Jabber server from wiretrip.org">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.wp.pl" name="Large Jabber server in Poland">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.wroc.pl" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber.xs4all.nl" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="jabber80.com" name="Jabber server over port 80 (SSL over port 443)">
-    <active port="80"/>
-  </item>
-  <item jid="jabberafrica.org" name="Jabber server in Africa">
-    <active port="5222"/>
-  </item>
-  <item jid="jabberes.org" name="Servidor Jabber de la comunidad hispana">
-    <active port="5222"/>
-  </item>
-  <item jid="jabberme.de" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="jabbernet.dk" name="Jabber server in Denmark">
-    <active port="5222"/>
-  </item>
-  <item jid="jabbernuke.com" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="jabberpl.org" name="Jabber server in Poland">
-    <active port="5222"/>
-  </item>
-  <item jid="jaim.at" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="manya.urbanturban.no" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="myjabber.net" name="The public Jabber server hosted by MyJabber">
-    <active port="5222"/>
-  </item>
-  <item jid="nedbsd.nl" name="Jabber server in the Netherlands">
-    <active port="5222"/>
-  </item>
-  <item jid="nedlinux.nl" name="Jabber server in the Netherlands">
-    <active port="5222"/>
-  </item>
-  <item jid="netmindz.net" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="njs.netlab.cz" name="Czech Jabber server">
-    <active port="5222"/>
-  </item>
-  <item jid="nureality.ca" name="Public server provided by Nureality Networks">
-    <active port="5222"/>
-  </item>
-  <item jid="oborona.net" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="om.beeonline.ru" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="pan.ubishops.ca" name="Server run by the computer science club at Bishops University in Quebec.">
-    <active port="5222"/>
-  </item>
-  <item jid="pandion.be" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="penwritten.com" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="piramida.slask.pl" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="pointblue.com.pl" name="">
-    <active port="5223"/>
-  </item>
-  <item jid="pono.mauiholm.org" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="selfnet.at" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="sistemas.unsa.edu.ar" name="Jabber server in Argentina">
-    <active port="5222"/>
-  </item>
-  <item jid="sourcecode.de" name="Server in Germany">
-    <active port="5222"/>
-  </item>
-  <item jid="sparetimegroup.net" name="Server in Romania">
-    <active port="5222"/>
-  </item>
-  <item jid="swissjabber.ch" name="Swiss Jabber server">
-    <active port="5222"/>
-  </item>
-  <item jid="swissjabber.de" name="Jabber server in Switzerland">
-    <active port="5222"/>
-  </item>
-  <item jid="swissjabber.li" name="Jabber server in Liechtenstein">
-    <active port="5222"/>
-  </item>
-  <item jid="swissjabber.org" name="Jabber server in Switzerland">
-    <active port="5222"/>
-  </item>
-  <item jid="syndicon.de" name="Server in Germany">
-    <active port="5222"/>
-  </item>
-  <item jid="tipic.com" name="Public server hosted by Tipic">
-    <active port="5222"/>
-  </item>
-  <item jid="transactim.net" name="Server hosted by TransactIM">
-    <active port="5222"/>
-  </item>
-  <item jid="unstable.nl" name="Server in the Netherlands">
-    <active port="5222"/>
-  </item>
-  <item jid="ursine.ca" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="volgograd.ru" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="xmpp.ru" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="xmpp.us" name="">
-    <active port="5222"/>
-  </item>
-  <item jid="gajim.org" name="Official server of Gajim" hidden="True">
-    <active port="5222"/>
-    <digest algo="sha1" value="25:79:5D:AC:3A:62:C0:96:5A:C9:36:76:D8:B0:78:1F:AA:DA:79:18"/>
-  </item>
+<?xml version="1.0"?>
+<!--
+  This file lists the open XMPP servers registered with the XSF. 
+  The format of this file is defined by the Service Discovery 
+  protocol: http://xmpp.org/extensions/xep-0030.html 
+  To add your server to the list, follow the instructions at
+  http://xmpp.org/services/register.shtml
+    -->
+<query>
+  <item jid="0nl1ne.at"/>
+  <item jid="binaryfreedom.info"/>
+  <item jid="boese-ban.de"/>
+  <item jid="brauchen.info"/>
+  <item jid="cassilis.net"/>
+  <item jid="chatmask.com"/>
+  <item jid="climm.org"/>
+  <item jid="codingteam.net"/>
+  <item jid="darkdna.net"/>
+  <item jid="default.rs"/>
+  <item jid="deshalbfrei.org"/>
+  <item jid="draugr.de"/>
+  <item jid="im.apinc.org"/>
+  <item jid="im.flosoft.biz"/>
+  <item jid="internet-exception.de"/>
+  <item jid="jabber.ccc.de"/>
+  <item jid="jabber.chaotic.de"/>
+  <item jid="jabber.co.nz"/>
+  <item jid="jabber.cz"/>
+  <item jid="jabber.fourecks.de"/>
+  <item jid="jabber.fsinf.at"/>
+  <item jid="jabber.hot-chilli.net"/>
+  <item jid="jabber.iitsp.com"/>
+  <item jid="jabber.i-pobox.net"/>
+  <item jid="jabber.loudas.com"/>
+  <item jid="jabber.minus273.org"/>
+  <item jid="jabber.no"/>
+  <item jid="jabber.org"/>
+  <item jid="jabber.rootbash.com"/>
+  <item jid="jabber.rueckgr.at"/>
+  <item jid="jabber.scha.de"/>
+  <item jid="jabber.second-home.de"/>
+  <item jid="jabber.sow.as"/>
+  <item jid="jabber.tmkis.com"/>
+  <item jid="jabber.yeahnah.co.nz"/>
+  <item jid="jabber-br.org"/>
+  <item jid="jabber-hispano.org"/>
+  <item jid="jabberbr.com"/>
+  <item jid="jabberd.eu"/>
+  <item jid="jabberes.org"/>
+  <item jid="jabberim.de"/>
+  <item jid="jabbim.com"/>
+  <item jid="jabbim.cz"/>
+  <item jid="jabbim.pl"/>
+  <item jid="jabbim.sk"/>
+  <item jid="jabme.de"/>
+  <item jid="jabster.pl"/>
+  <item jid="jaim.at"/>
+  <item jid="lethyro.net"/>
+  <item jid="limun.org"/>
+  <item jid="linuxlovers.at"/>
+  <item jid="macjabber.de"/>
+  <item jid="na-di.de"/>
+  <item jid="neko.im"/>
+  <item jid="netmindz.net"/>
+  <item jid="njs.netlab.cz"/>
+  <item jid="pandion.im"/>
+  <item jid="programmer-art.org"/>
+  <item jid="richim.org"/>
+  <item jid="sternenschweif.de"/>
+  <item jid="swissjabber.ch"/>
+  <item jid="ubuntu-jabber.de"/>
+  <item jid="thiessen.im"/>
+  <item jid="thiessen.it"/>
+  <item jid="thiessen.org"/>
+  <item jid="ubuntu-jabber.net"/>
+  <item jid="verdammung.org"/>
+  <item jid="xabber.de"/>
+  <item jid="xmpp.jp"/>
+  <item jid="xmppnet.de"/>
+  <item jid="zsim.de"/>
 </query>
diff --git a/src/config.py b/src/config.py
index 9ec489b81..970d6ab5f 100644
--- a/src/config.py
+++ b/src/config.py
@@ -3408,10 +3408,9 @@ class AccountCreationWizardWindow:
         # parse servers.xml
         servers_xml = os.path.join(gajim.DATA_DIR, 'other', 'servers.xml')
         servers = gtkgui_helpers.parse_server_xml(servers_xml)
-        servers_model = gtk.ListStore(str, int)
+        servers_model = gtk.ListStore(str)
         for server in servers:
-            if not server[2]['hidden']:
-                servers_model.append((str(server[0]), int(server[1])))
+            servers_model.append((server,))
 
         completion.set_model(servers_model)
         completion.set_text_column(0)
diff --git a/src/gtkgui_helpers.py b/src/gtkgui_helpers.py
index 470cd84a0..49e4a41f7 100644
--- a/src/gtkgui_helpers.py
+++ b/src/gtkgui_helpers.py
@@ -361,35 +361,8 @@ class ServersXMLHandler(xml.sax.ContentHandler):
 
     def startElement(self, name, attributes):
         if name == 'item':
-            # we will get the port next time so we just set it 0 here
-            sitem = [None, 0, {}]
-            sitem[2]['digest'] = {}
-            sitem[2]['hidden'] = False
-            for attribute in attributes.getNames():
-                if attribute == 'jid':
-                    jid = attributes.getValue(attribute)
-                    sitem[0] = jid
-                elif attribute == 'hidden':
-                    hidden = attributes.getValue(attribute)
-                    if hidden.lower() in ('1', 'y', 'yes', 't', 'true', 'on'):
-                        sitem[2]['hidden'] = True
-            self.servers.append(sitem)
-        elif name == 'active':
-            for attribute in attributes.getNames():
-                if attribute == 'port':
-                    port = attributes.getValue(attribute)
-                    # we received the jid last time, so we now assign the port
-                    # number to the last jid in the list
-                    self.servers[-1][1] = port
-        elif name == 'digest':
-            algo, digest = None, None
-            for attribute in attributes.getNames():
-                if attribute == 'algo':
-                    algo = attributes.getValue(attribute)
-                elif attribute == 'value':
-                    digest = attributes.getValue(attribute)
-            hd = HashDigest(algo, digest)
-            self.servers[-1][2]['digest'][hd.algo] = hd
+            if 'jid' in attributes.getNames():
+                self.servers.append(attributes.getValue('jid'))
 
     def endElement(self, name):
         pass