Files
artloglaby/java/org/artisanlogiciel/games/minetest/net/NetworkPacket.java
philippe lhardy 9792b79c56 MaimMim Man in the middle minetest interceptor
- prototype
- between client and server, allow to capture all exchanges and potentially change them
- created to capture server maps in laby
- first test get only MapBlock, support version serialization version 28
  - prepartion for 29 with zstd but untested.

# Conflicts:
#	fetch_dependencies.sh
2023-07-30 10:18:45 +02:00

71 lines
1.6 KiB
Java

package org.artisanlogiciel.games.minetest.net;
import org.artisanlogiciel.games.minetest.core.PacketException;
import org.artisanlogiciel.games.minetest.core.Serialize;
import org.artisanlogiciel.games.minetest.core.v3s16;
import java.nio.ByteBuffer;
public class NetworkPacket {
int m_protocol_id;
int m_peer_id;
int m_channel;
public PacketType packetType;
// somehow a BufferedPacket ...
byte[] m_buffer; // m_data
// used part in buffer
int m_length; // m_datasize ?
// current header index in packet
int m_offset; // m_read_offset
short m_command = 0;
public NetworkPacket(int protocol_id, int peer_id, int channel, PacketType type, byte[] buffer, int length) {
this.m_protocol_id = protocol_id;
this.m_peer_id = peer_id;
this.m_channel = channel;
this.packetType = type;
m_buffer = buffer;
m_length = length;
m_offset = 0;
}
public int getChannel()
{
return m_channel;
}
public byte[] getBuffer()
{
return m_buffer;
}
public int getOffset() {
return m_offset;
}
public int getLength() {
return m_length;
}
void addOffset(int offset)
{
m_offset += offset;
}
// Serialization
public v3s16 v3s16()
throws PacketException
{
return Serialize.readV3S16(m_buffer, m_offset, m_length);
}
public ByteBuffer getByteBuffer()
{
ByteBuffer buffer = ByteBuffer.wrap(m_buffer,m_offset,m_length-m_offset);
return buffer;
}
}