]> code.delx.au - pymsnt/blobdiff - src/misciq.py
Added SVN version number to result from jabber:iq:version requests.
[pymsnt] / src / misciq.py
index 1056cc8d5ebb172b449686950742ad80c28b2ef6..64cbe90bc150754eae1e54cff76b2efe21935146 100644 (file)
@@ -5,6 +5,7 @@ import utils
 from twisted.internet import reactor, task, protocol, error
 from tlib.xmlw import Element, jid
 from debug import LogEvent, INFO, WARN, ERROR
+import svninfo
 import jabw
 import legacy
 import disco
@@ -138,7 +139,7 @@ class AdHocCommands:
 
                node = None
                for child in el.elements():
-                       xmlns = child.defaultUri
+                       xmlns = child.uri
                        node = child.getAttribute("node")
 
                        handled = False
@@ -255,9 +256,9 @@ class VCardFactory:
                vCard.attributes["xmlns"] = "vcard-temp"
                if toGateway:
                        FN = vCard.addElement("FN")
-                       FN.addContent(legacy.name)
+                       FN.addContent(config.discoName)
                        DESC = vCard.addElement("DESC")
-                       DESC.addContent(legacy.name)
+                       DESC.addContent(config.discoName)
                        URL = vCard.addElement("URL")
                        URL.addContent(legacy.url)
                else:
@@ -431,6 +432,11 @@ class VersionTeller:
                self.pytrans = pytrans
                self.pytrans.discovery.addFeature(disco.IQVERSION, self.incomingIq, config.jid)
                self.pytrans.discovery.addFeature(disco.IQVERSION, self.incomingIq, "USER")
+               try:
+                       self.version = "%s - SVN r%s" % (legacy.version, svninfo.getSVNVersion())
+               except:
+                       self.version = legacy.version
+               self.os = "Python" + ".".join([str(x) for x in sys.version_info[0:3]]) + " - " + sys.platform
        
        def incomingIq(self, el):
                eltype = el.getAttribute("type")
@@ -449,11 +455,11 @@ class VersionTeller:
                query = iq.addElement("query")
                query.attributes["xmlns"] = disco.IQVERSION
                name = query.addElement("name")
-               name.addContent(legacy.name)
+               name.addContent(config.discoName)
                version = query.addElement("version")
-               version.addContent(legacy.version)
+               version.addContent(self.version)
                os = query.addElement("os")
-               os.addContent("Python" + ".".join([str(x) for x in sys.version_info[0:3]]) + " - " + sys.platform)
+               os.addContent(self.os)
                
                self.pytrans.send(iq)
 
@@ -552,7 +558,7 @@ class Socks5FileTransfer:
                if not (si and si.getAttribute("profile") == disco.FT):
                        return errOut()
                file = si.file
-               if not (file and file.defaultUri == disco.FT):
+               if not (file and file.uri == disco.FT):
                        return errOut()
                try:
                        sid = si["id"]
@@ -565,10 +571,10 @@ class Socks5FileTransfer:
 
                # Check that we can use socks5 bytestreams
                feature = si.feature
-               if not (feature and feature.defaultUri == disco.FEATURE_NEG):
+               if not (feature and feature.uri == disco.FEATURE_NEG):
                        return errOut()
                x = feature.x
-               if not (x and x.defaultUri == disco.XDATA):
+               if not (x and x.uri == disco.XDATA):
                        return errOut()
                field = x.field
                if not (field and field.getAttribute("var") == "stream-method"):