Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- defmodule EOD.Network.Packet do
- defstruct id: nil,
- size: 0,
- session_id: 0,
- parameter: 0,
- sequence: 0,
- data: "",
- check: 0,
- type: nil
- @valid_types [:tcp, :udp]
- @packet_ids [
- init_handshake: 0xF4
- ]
- def load_tcp(packet) when is_binary(packet), do: load(:tcp, packet)
- def load(type, <<size::16, seq::16, sess::16, param::16, id::16, rem::binary>>)
- when byte_size(rem) - 2 == size and type in @valid_types do
- %__MODULE__{
- id: id, size: size, session_id: sess, parameter: param,
- sequence: seq, data: binary_part(rem, 0, size),
- check: binary_part(rem, size, -2), type: type}
- end
- def load(type, data) when is_binary(data) do
- %__MODULE__{id: :unknown, data: data, type: type}
- end
- end
Add Comment
Please, Sign In to add comment