]> 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
 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
 import jabw
 import legacy
 import disco
@@ -138,7 +139,7 @@ class AdHocCommands:
 
                node = None
                for child in el.elements():
 
                node = None
                for child in el.elements():
-                       xmlns = child.defaultUri
+                       xmlns = child.uri
                        node = child.getAttribute("node")
 
                        handled = False
                        node = child.getAttribute("node")
 
                        handled = False
@@ -255,9 +256,9 @@ class VCardFactory:
                vCard.attributes["xmlns"] = "vcard-temp"
                if toGateway:
                        FN = vCard.addElement("FN")
                vCard.attributes["xmlns"] = "vcard-temp"
                if toGateway:
                        FN = vCard.addElement("FN")
-                       FN.addContent(legacy.name)
+                       FN.addContent(config.discoName)
                        DESC = vCard.addElement("DESC")
                        DESC = vCard.addElement("DESC")
-                       DESC.addContent(legacy.name)
+                       DESC.addContent(config.discoName)
                        URL = vCard.addElement("URL")
                        URL.addContent(legacy.url)
                else:
                        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")
                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")
        
        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")
                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 = query.addElement("version")
-               version.addContent(legacy.version)
+               version.addContent(self.version)
                os = query.addElement("os")
                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)
 
                
                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 (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"]
                        return errOut()
                try:
                        sid = si["id"]
@@ -565,10 +571,10 @@ class Socks5FileTransfer:
 
                # Check that we can use socks5 bytestreams
                feature = si.feature
 
                # 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
                        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"):
                        return errOut()
                field = x.field
                if not (field and field.getAttribute("var") == "stream-method"):