Fix tracking service name for DIGEST-MD5
This commit is contained in:
parent
4a94aeba49
commit
4e12e228cb
@ -109,7 +109,7 @@ class FeatureMechanisms(BasePlugin):
|
|||||||
elif value == 'realm':
|
elif value == 'realm':
|
||||||
result[value] = self.xmpp.boundjid.domain
|
result[value] = self.xmpp.boundjid.domain
|
||||||
elif value == 'service-name':
|
elif value == 'service-name':
|
||||||
result[value] = self.xmpp.address[0]
|
result[value] = self.xmpp._service_name
|
||||||
elif value == 'service':
|
elif value == 'service':
|
||||||
result[value] = 'xmpp'
|
result[value] = 'xmpp'
|
||||||
elif value in creds:
|
elif value in creds:
|
||||||
|
@ -102,7 +102,7 @@ def resolve(host, port=None, service=None, proto='tcp',
|
|||||||
try:
|
try:
|
||||||
# If `host` is an IPv4 literal, we can return it immediately.
|
# If `host` is an IPv4 literal, we can return it immediately.
|
||||||
ipv4 = socket.inet_aton(host)
|
ipv4 = socket.inet_aton(host)
|
||||||
yield (host, port)
|
yield (host, host, port)
|
||||||
except socket.error:
|
except socket.error:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@ -112,7 +112,7 @@ def resolve(host, port=None, service=None, proto='tcp',
|
|||||||
# it immediately.
|
# it immediately.
|
||||||
if hasattr(socket, 'inet_pton'):
|
if hasattr(socket, 'inet_pton'):
|
||||||
ipv6 = socket.inet_pton(socket.AF_INET6, host)
|
ipv6 = socket.inet_pton(socket.AF_INET6, host)
|
||||||
yield (host, port)
|
yield (host, host, port)
|
||||||
except socket.error:
|
except socket.error:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@ -128,16 +128,16 @@ def resolve(host, port=None, service=None, proto='tcp',
|
|||||||
results = []
|
results = []
|
||||||
if host == 'localhost':
|
if host == 'localhost':
|
||||||
if use_ipv6:
|
if use_ipv6:
|
||||||
results.append(('::1', port))
|
results.append((host, '::1', port))
|
||||||
results.append(('127.0.0.1', port))
|
results.append((host, '127.0.0.1', port))
|
||||||
if use_ipv6:
|
if use_ipv6:
|
||||||
for address in get_AAAA(host, resolver=resolver):
|
for address in get_AAAA(host, resolver=resolver):
|
||||||
results.append((address, port))
|
results.append((host, address, port))
|
||||||
for address in get_A(host, resolver=resolver):
|
for address in get_A(host, resolver=resolver):
|
||||||
results.append((address, port))
|
results.append((host, address, port))
|
||||||
|
|
||||||
for address, port in results:
|
for host, address, port in results:
|
||||||
yield address, port
|
yield host, address, port
|
||||||
|
|
||||||
|
|
||||||
def get_A(host, resolver=None):
|
def get_A(host, resolver=None):
|
||||||
@ -297,7 +297,10 @@ def get_SRV(host, port, service, proto='tcp', resolver=None):
|
|||||||
for running_sum in sums:
|
for running_sum in sums:
|
||||||
if running_sum >= selected:
|
if running_sum >= selected:
|
||||||
rec = sums[running_sum]
|
rec = sums[running_sum]
|
||||||
sorted_recs.append((rec.target.to_text(), rec.port))
|
host = rec.target.to_text()
|
||||||
|
if host.endswith('.'):
|
||||||
|
host = host[:-1]
|
||||||
|
sorted_recs.append((host, rec.port))
|
||||||
answers[priority].remove(rec)
|
answers[priority].remove(rec)
|
||||||
break
|
break
|
||||||
|
|
||||||
|
@ -192,6 +192,7 @@ class XMLStream(object):
|
|||||||
|
|
||||||
#: The expected name of the server, for validation.
|
#: The expected name of the server, for validation.
|
||||||
self._expected_server_name = ''
|
self._expected_server_name = ''
|
||||||
|
self._service_name = ''
|
||||||
|
|
||||||
#: The desired, or actual, address of the connected server.
|
#: The desired, or actual, address of the connected server.
|
||||||
self.address = (host, int(port))
|
self.address = (host, int(port))
|
||||||
@ -473,8 +474,10 @@ class XMLStream(object):
|
|||||||
|
|
||||||
if self.default_domain:
|
if self.default_domain:
|
||||||
try:
|
try:
|
||||||
self.address = self.pick_dns_answer(self.default_domain,
|
host, address, port = self.pick_dns_answer(self.default_domain,
|
||||||
self.address[1])
|
self.address[1])
|
||||||
|
self.address = (address, port)
|
||||||
|
self._service_name = host
|
||||||
except StopIteration:
|
except StopIteration:
|
||||||
log.debug("No remaining DNS records to try.")
|
log.debug("No remaining DNS records to try.")
|
||||||
self.dns_answers = None
|
self.dns_answers = None
|
||||||
|
Loading…
x
Reference in New Issue
Block a user