This previously worked by chance with the PE32 executables we saw, but
it didn't work with the PE32+ executables we saw.
Signed-off-by: Graham <gpe@openrs2.org>
There are still some gaps but I want to get this committed and possibly
deployed before doing further work.
Remaining items include:
- Mach-O support
- New engine loader ArtifactLink support
- Post-668 client support
- FunOrb support
Signed-off-by: Graham <gpe@openrs2.org>
It's now used for both XTEA and ISAAC keys, and there's nothing
XTEA-specific about it so there's no need to duplicate it.
Signed-off-by: Graham <gpe@openrs2.org>
This makes caching simpler to reason about (no Vary header) and more
efficient (also because there is no Vary header).
Signed-off-by: Graham <gpe@openrs2.org>
We've now found both the CIO and Netty backends to be problematic in
certain cases (CIO with lots of concurrent requests, Netty with
backpressure). Hopefully Jetty is a bit more battle-tested!
Signed-off-by: Graham <gpe@openrs2.org>
If the checksum changes in the future then the flyway_schema_history
table needs to be adjusted, which is awkward.
Signed-off-by: Graham <gpe@openrs2.org>
I'm currently working on a CreateResponse class, which is even more
distinct from LoginResponse - so I've decided to separate it. For
consistency, separating the JS5 login responses seems sensible too.
Signed-off-by: Graham <gpe@openrs2.org>
There are now three additional abstract PacketCodec classes:
FixedPacketCodec, VariableBytePacketCodec and VariableShortPacketCodec.
The PacketLength class has been removed, as it is no longer required.
The main reason for this change is that the create suggested names
packet is a bit of an oddball: its length field measures the size of the
packet in longs, not bytes. The codec for this packet will be able to
inherit from PacketCodec directly to implement the custom length logic.
Signed-off-by: Graham <gpe@openrs2.org>
I've also removed the comment - I'm going to have to do something
similar for CREATE_DOWNSTREAM, and I think it's a bit more obvious with
the more distinctive name.
This allows us to deal with a single corner case of the same opcode
being used for two slightly different login response packets, depending
on the request.