Graham
c9f397759e
Use advisory locks to prevent concurrent view refreshes
...
Signed-off-by: Graham <gpe@openrs2.org>
2 years ago
Graham
35f54fd753
Skip corrupt archives when importing legacy caches
...
Signed-off-by: Graham <gpe@openrs2.org>
2 years ago
Graham
5c77ee4bd2
Format CacheExporter
...
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
73eb30dbf9
Add game, environment, language, build and timestamp to file names
...
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
fb0d7ef923
Add link to the RuneScape Archive
...
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
7cde3a4552
Add link to the RuneScape Preservation Unit wiki page
...
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
64713fb862
Add --decode-js5response flag to import-master-index
...
It removes the archive/group prefix and the 0xFF markers.
Unfortunately using Js5ResponseDecoder here is tricky - perhaps it
could've been done with an EmbeddedChannel.
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
71f775f282
Add JSON version of the /caches page
...
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
346302fc05
Add API endpoint for receiving keys
...
Keys are now initially imported into a key_queue table, which is never
locked exclusively - allowing the API endpoint to function while the
brute forcer is running. The brute forcer moves all pending keys in the
queue to the keys table before running the actual brute forcing.
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
df55c3ece3
Fix reconnection on client-side timeouts in the JS5 client
...
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
469fe2eecc
Add environment and language columns to the caches table
...
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
211041ab6d
Update support build list
...
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
3b4fcad8f4
Add link to RuneWiki
...
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
334424e57a
Fix addMasterIndex()
...
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
f4ae5540d7
Skip version list entries with a version of zero
...
The client uses these to indicate files that don't exist.
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
0cf1881db4
Rename 'Indexes' column to 'Archives'
...
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
ab964a2b1f
Skip corrupt files when importing a legacy cache
...
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
f079c415f5
Add initial support for archiving legacy caches
...
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
2eaba6a680
Fix cache size calculation
...
It didn't take the 2 byte version trailer into account previously.
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
39d2ad7ee3
Fix ByteBuf leak
...
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
ab2c56f0af
Set HttpClient timeouts
...
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
046ccbc2c9
Optimize the master_index_stats view
...
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
1efa370fdd
Reconnect to the JS5 server if we lose connection while parsing indexes
...
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
20868a39ad
Fix warnings in CacheExporter
...
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
2a6ffa87a6
Fix elvis operator on non-nullable type warning
...
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
3368818ca1
Download names from Polar's fork of RuneStar
...
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
f0cd4afcf0
Add sorting and filtering to the caches table
...
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
e1a650aec4
Update introduction text
...
We now download RuneScape 3 caches automatically.
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
3848a89f68
Ensure a directory is created for the ARCHIVESET archive
...
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
36f5efa1ad
Serve flat file caches as .tar.gz files instead of .zip files
...
Streaming .tar.gz files requires less memory, as we don't need to
remember metadata about each file for the end of directory record.
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
cbb2a90388
Disable .dat2/.idx link if the cache is too big for a DiskStore
...
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
a52955fe4b
Switch to ktor's CIO backend
...
It seems to deal with backpressure better than the Netty backend.
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
0ec7736764
Log the number of XTEA keys imported
...
This makes it a bit easier to determine if the keys are parsed
correctly.
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
b3d6b112d2
Add Logback configuration file
...
There are two main reasons for this change: by default, logback uses
stdout (!) and not stderr. This caused problems in programs like
packclass/unpackclass, where the packclass or JAR files were mixed in
with Netty's debug logging.
Secondly, the debug logging from lots of third-party libraries was
annoying (as it made it difficult to pick out OpenRS2-specific log
messages), so I've disabled lots of it.
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
7915698cda
Reduce CacheExporter BATCH_SIZE
...
I think this is causing OOMs.
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
821cb732fd
Remove signature verification from the cache downloader
...
The keys seem to change in each release now, which is going to be too
much of a pain to keep up with.
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
0781e23874
Add update links to each master index
...
Flenarn provided a spreadsheet mapping our master indexes to the
corresponding update.
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
6f02ab2f65
Add NXT cache downloader
...
I'm still not particularly happy with this: if the JS5 download
finishes before HTTP, it'll time out and kill the whole process.
Similarly, because it takes so long to import the indexes and as we
can't fetch groups in parallel with that, it can often time out early
during the process.
In the long term, I think I am going to try and move most of the logic
outside of the Netty threads and communicate between threads with queues
or channels. This would also allow us to run multiple JS5 clients in
parallel.
The code also needs some tidying up, particularly constants in the
Js5ChannelHandler constructors.
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
21ed41c307
Use applet viewer config to find the hostname of a JS5 server
...
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
11a43242b9
Add applet viewer config parser
...
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
637e311a67
Fix SELECT DISTINCT query
...
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
fc6e739879
Add e prefix to the name generator
...
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
d925b68db3
Remove duplicate keys from valid.json
...
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
2c43930db2
Move Js5Archive and Js5ConfigGroup to cache-550
...
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
01b50e33f7
Fix resolve_group() if the version number is greater than 65535
...
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
a3cca0e6c3
Add Protocol constants
...
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
ce741279b4
Add read-only Js5Index.{Group,File} types
...
These will be used by the high-level cache API, where we don't want to
expose mutable versions of the group/file types as that would allow the
index/cache to get out of sync.
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
1c0bf7529c
Update Bootstrap
...
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
b37e4d0d0b
Use alternatives for most methods deprecated in Kotlin 1.5
...
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago
Graham
cf8110e5a7
Fix possible off-by-one error in KeyBruteForcer
...
Signed-off-by: Graham <gpe@openrs2.org>
3 years ago