Bitmasks were wrong
This commit is contained in:
@@ -27,7 +27,7 @@ public class PacketBody5Pong extends PacketBody {
|
||||
|
||||
@Override
|
||||
public void read(ByteBuffer buffer) {
|
||||
packetId = buffer.getShort() & 0x000000FFFFF;
|
||||
packetId = (buffer.getShort() & 0xFFFF);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -27,12 +27,12 @@ public class PacketBody6Ack extends PacketBody {
|
||||
|
||||
@Override
|
||||
public void read(ByteBuffer buffer) {
|
||||
packetId = buffer.getShort() & 0x0000FFFF;
|
||||
packetId = buffer.getShort() & 0xFFFF;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(ByteBuffer buffer) {
|
||||
buffer.putShort((short) (getPacketId() & 0xFFFFFF));
|
||||
buffer.putShort((short) (getPacketId() & 0xFFFF));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -27,12 +27,12 @@ public class PacketBody7AckLow extends PacketBody {
|
||||
|
||||
@Override
|
||||
public void read(ByteBuffer buffer) {
|
||||
packetId = buffer.getShort() & 0x0000FFFF;
|
||||
packetId = buffer.getShort() & 0xFFFF;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(ByteBuffer buffer) {
|
||||
buffer.putShort((short) (getPacketId() & 0xFFFFFF));
|
||||
buffer.putShort((short) (getPacketId() & 0xFFFF));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+1
-1
@@ -39,7 +39,7 @@ public class LocalClientHandlerConnecting extends LocalClientHandler {
|
||||
randomBytes = new byte[4];
|
||||
random.nextBytes(randomBytes);
|
||||
step.setRandom(randomBytes);
|
||||
step.setTimestamp((int) ((System.currentTimeMillis() / 1000L) & 0x000000FFFFFF));
|
||||
step.setTimestamp((int) ((System.currentTimeMillis() / 1000L) & 0xFFFF));
|
||||
packet.setStep(step);
|
||||
|
||||
sendInit1(packet);
|
||||
|
||||
+53
-34
@@ -3,12 +3,14 @@ package com.github.manevolent.ts3j.protocol.packet.statistics;
|
||||
|
||||
import com.github.manevolent.ts3j.protocol.Packet;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
public class PacketStatistics {
|
||||
private final List<DataPoint> sentPacketList = new LinkedList<>();
|
||||
private final List<DataPoint> receivedPacketList = new LinkedList<>();
|
||||
private final List<DataPoint> sentPacketList = Collections.synchronizedList(new ArrayList<>());
|
||||
private final List<DataPoint> receivedPacketList = Collections.synchronizedList(new ArrayList<>());
|
||||
|
||||
private int sentBytes;
|
||||
private int sentPackets;
|
||||
@@ -51,17 +53,21 @@ public class PacketStatistics {
|
||||
public int getSentPacketsLastSecond() {
|
||||
long now = System.nanoTime() - 1_000_000_000L;
|
||||
|
||||
return (int) sentPacketList.stream()
|
||||
.filter(x -> x.getTime() >= now)
|
||||
.count();
|
||||
synchronized (sentPacketList) {
|
||||
return (int) sentPacketList.stream()
|
||||
.filter(x -> x.getTime() >= now)
|
||||
.count();
|
||||
}
|
||||
}
|
||||
|
||||
public int getSentPacketsLastMinute() {
|
||||
long now = System.nanoTime() - 1_000_000_000L;
|
||||
|
||||
return (int) sentPacketList.stream()
|
||||
.filter(x -> x.getTime() >= now)
|
||||
.count();
|
||||
synchronized (sentPacketList) {
|
||||
return (int) sentPacketList.stream()
|
||||
.filter(x -> x.getTime() >= now)
|
||||
.count();
|
||||
}
|
||||
}
|
||||
|
||||
public int getReceivedPackets() {
|
||||
@@ -71,17 +77,21 @@ public class PacketStatistics {
|
||||
public int getReceivedPacketsLastSecond() {
|
||||
long now = System.nanoTime() - 1_000_000_000L;
|
||||
|
||||
return (int) receivedPacketList.stream()
|
||||
.filter(x -> x.getTime() >= now)
|
||||
.count();
|
||||
synchronized (receivedPacketList) {
|
||||
return (int) receivedPacketList.stream()
|
||||
.filter(x -> x.getTime() >= now)
|
||||
.count();
|
||||
}
|
||||
}
|
||||
|
||||
public int getReceivedPacketsLastMinute() {
|
||||
long now = System.nanoTime() - 60_000_000_000L;
|
||||
|
||||
return (int) receivedPacketList.stream()
|
||||
.filter(x -> x.getTime() >= now)
|
||||
.count();
|
||||
synchronized (receivedPacketList) {
|
||||
return (int) receivedPacketList.stream()
|
||||
.filter(x -> x.getTime() >= now)
|
||||
.count();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -92,41 +102,50 @@ public class PacketStatistics {
|
||||
public int getSentBytesLastMinute() {
|
||||
long now = System.nanoTime() - 60_000_000_000L;
|
||||
|
||||
return sentPacketList.stream()
|
||||
.filter(x -> x.getTime() >= now)
|
||||
.map(DataPoint::getSize)
|
||||
.reduce((a, b) -> a + b)
|
||||
.orElse(0);
|
||||
|
||||
synchronized (sentPacketList) {
|
||||
return sentPacketList.stream()
|
||||
.filter(x -> x.getTime() >= now)
|
||||
.map(DataPoint::getSize)
|
||||
.reduce((a, b) -> a + b)
|
||||
.orElse(0);
|
||||
}
|
||||
}
|
||||
|
||||
public int getSentBytesLastSecond() {
|
||||
long now = System.nanoTime() - 1_000_000_000L;
|
||||
|
||||
return sentPacketList.stream()
|
||||
.filter(x -> x.getTime() >= now)
|
||||
.map(DataPoint::getSize)
|
||||
.reduce((a, b) -> a + b)
|
||||
.orElse(0);
|
||||
synchronized (sentPacketList) {
|
||||
return sentPacketList.stream()
|
||||
.filter(x -> x.getTime() >= now)
|
||||
.map(DataPoint::getSize)
|
||||
.reduce((a, b) -> a + b)
|
||||
.orElse(0);
|
||||
}
|
||||
}
|
||||
|
||||
public int getReceivedBytesLastMinute() {
|
||||
long now = System.nanoTime() - 60_000_000_000L;
|
||||
|
||||
return receivedPacketList.stream()
|
||||
.filter(x -> x.getTime() >= now)
|
||||
.map(DataPoint::getSize)
|
||||
.reduce((a, b) -> a + b)
|
||||
.orElse(0);
|
||||
synchronized (receivedPacketList) {
|
||||
return receivedPacketList.stream()
|
||||
.filter(x -> x.getTime() >= now)
|
||||
.map(DataPoint::getSize)
|
||||
.reduce((a, b) -> a + b)
|
||||
.orElse(0);
|
||||
}
|
||||
}
|
||||
|
||||
public int getReceivedBytesLastSecond() {
|
||||
long now = System.nanoTime() - 1_000_000_000L;
|
||||
|
||||
return receivedPacketList.stream()
|
||||
.filter(x -> x.getTime() >= now)
|
||||
.map(DataPoint::getSize)
|
||||
.reduce((a, b) -> a + b)
|
||||
.orElse(0);
|
||||
synchronized (receivedPacketList) {
|
||||
return receivedPacketList.stream()
|
||||
.filter(x -> x.getTime() >= now)
|
||||
.map(DataPoint::getSize)
|
||||
.reduce((a, b) -> a + b)
|
||||
.orElse(0);
|
||||
}
|
||||
}
|
||||
|
||||
private final class DataPoint {
|
||||
|
||||
+1
-1
@@ -39,7 +39,7 @@ public class PacketTransformation {
|
||||
|
||||
temporaryByteBuffer.put((byte) (header.getRole() == ProtocolRole.SERVER ? 0x30 : 0x31));
|
||||
temporaryByteBuffer.put((byte) (header.getType().getIndex() & 0xFF));
|
||||
temporaryByteBuffer.putInt(header.getGeneration() & 0x000000FFFFFF);
|
||||
temporaryByteBuffer.putInt(header.getGeneration());
|
||||
|
||||
temporaryByteBuffer.put(ivStruct);
|
||||
|
||||
|
||||
+7
-4
@@ -269,9 +269,12 @@ public abstract class AbstractTeamspeakClientSocket
|
||||
)
|
||||
);
|
||||
break;
|
||||
/*case PING:
|
||||
counter = localSendCounter.get(PacketBodyType.PING).current();
|
||||
break;*/
|
||||
case PING:
|
||||
for (int i = 0 ; i < 8000; i ++)
|
||||
counter = localSendCounter.get(PacketBodyType.PING).next();
|
||||
|
||||
counter = localSendCounter.get(PacketBodyType.PING).next();
|
||||
break;
|
||||
case INIT1:
|
||||
counter = new Pair<>(101, 0);
|
||||
break;
|
||||
@@ -674,7 +677,7 @@ public abstract class AbstractTeamspeakClientSocket
|
||||
lastResponse = System.currentTimeMillis();
|
||||
response = pingQueue.get(((PacketBody5Pong)packet.getBody()).getPacketId());
|
||||
if (response == null) {
|
||||
Ts3Debugging.debug("Unrecognized PONG: " + ((PacketBody6Ack) packet.getBody()).getPacketId());
|
||||
Ts3Debugging.debug("Unrecognized PONG: " + ((PacketBody5Pong) packet.getBody()).getPacketId());
|
||||
} else {
|
||||
lastResponse = System.currentTimeMillis();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user