From 57c3363119670e84d719d0703b672cb0743b252a Mon Sep 17 00:00:00 2001 From: Steven Berler Date: Sun, 27 Dec 2015 01:14:16 -0800 Subject: [PATCH] fix broken ip and port in voice client Also added debug logging to make it easier to debug errors in how the initial packet is parsed. --- discord/voice_client.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/discord/voice_client.py b/discord/voice_client.py index ecbc4ee40..f24441301 100644 --- a/discord/voice_client.py +++ b/discord/voice_client.py @@ -210,16 +210,18 @@ class VoiceClient: struct.pack_into('>I', packet, 0, self.ssrc) self.socket.sendto(packet, (self.endpoint_ip, self.voice_port)) recv = yield from self.loop.sock_recv(self.socket, 70) - self.ip = [] + log.debug('received packet in initial_connection: {}'.format(recv)) + ip = [] for x in range(4, len(recv)): val = recv[x] if val == 0: break - self.ip.append(str(val)) + ip.append(chr(val)) - self.ip = '.'.join(self.ip) - self.port = recv[len(recv) - 2] << 0 | recv[len(recv) - 1] << 1 + self.ip = ''.join(ip) + self.port = recv[len(recv) - 2] | recv[len(recv) - 1] << 8 + log.debug('detected ip: {} port: {}'.format(self.ip, self.port)) payload = { 'op': 1,