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.
This commit is contained in:
Steven Berler 2015-12-27 01:14:16 -08:00
parent ac3e583b05
commit 57c3363119

View File

@ -210,16 +210,18 @@ class VoiceClient:
struct.pack_into('>I', packet, 0, self.ssrc) struct.pack_into('>I', packet, 0, self.ssrc)
self.socket.sendto(packet, (self.endpoint_ip, self.voice_port)) self.socket.sendto(packet, (self.endpoint_ip, self.voice_port))
recv = yield from self.loop.sock_recv(self.socket, 70) 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)): for x in range(4, len(recv)):
val = recv[x] val = recv[x]
if val == 0: if val == 0:
break break
self.ip.append(str(val)) ip.append(chr(val))
self.ip = '.'.join(self.ip) self.ip = ''.join(ip)
self.port = recv[len(recv) - 2] << 0 | recv[len(recv) - 1] << 1 self.port = recv[len(recv) - 2] | recv[len(recv) - 1] << 8
log.debug('detected ip: {} port: {}'.format(self.ip, self.port))
payload = { payload = {
'op': 1, 'op': 1,