oopsbagel
9fe75ac961
chore: cargo fmt
2025-04-14 11:49:24 -07:00
Markus Unterwaditzer
151e186ef9
Fix delete all recordings, and panic on server startup
...
* Delete All Recordings did not work when recording was paused
* Because of the upgrade to axum 0.8, the webserver did not actually
start but panic.
2025-04-11 12:42:23 -07:00
Cooper Quintin
1b29cf0dee
Merge branch 'main' into build-features
2025-04-11 10:38:49 -07:00
Markus Unterwaditzer
aafd83d636
Upgrade axum to reduce binary size
...
For some reason upgrading axum to 0.8 reduces the binary size by 300kB
2025-04-11 10:32:02 -07:00
Markus Unterwaditzer
cb9e8254a8
cargo fmt
2025-04-09 15:37:20 +02:00
Markus Unterwaditzer
a9afa347f0
turn pixelart macro into const expr
2025-04-09 15:37:03 +02:00
Markus Unterwaditzer
e11bb2518e
fix tests
2025-04-08 21:33:41 +02:00
Markus Unterwaditzer
31076ec8b2
replace with exclamation mark
2025-04-08 21:24:33 +02:00
Markus Unterwaditzer
5e22b5c6a8
Update bin/src/display/tplink_onebit.rs
...
Co-authored-by: Will Greenberg <ifnspifn@gmail.com >
2025-04-08 21:21:36 +02:00
Markus Unterwaditzer
bccdcf36e1
Merge remote-tracking branch 'origin/main' into build-features
2025-04-08 21:16:08 +02:00
Markus Unterwaditzer
5c5333f0c7
Remove RecordingCBM
...
Colorblind mode is a property of the respective display, and decision
whether to display something in colorblind mode should lie with the
display thread. The display thread already needs to know about
colorblind mode for the initial state.
In #226 , there are multiple implementations of display thread, and at
least one of them is dealing with a one-bit display anyway.
Aside, I think rayhunter should send an initial DisplayState on startup,
UI threads should not assume that the device is already recording. But
this can be discussed separately.
2025-04-08 08:58:08 -07:00
Sashanoraa
60934e593b
Add the content length header to the qmdl file response
2025-04-08 08:54:39 -07:00
Evan Rusmisel
f81adad897
rusty
2025-04-08 08:47:54 -07:00
dependabot[bot]
775468f037
Bump tokio from 1.44.1 to 1.44.2
...
Bumps [tokio](https://github.com/tokio-rs/tokio ) from 1.44.1 to 1.44.2.
- [Release notes](https://github.com/tokio-rs/tokio/releases )
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.44.1...tokio-1.44.2 )
---
updated-dependencies:
- dependency-name: tokio
dependency-version: 1.44.2
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-04-08 08:44:46 -07:00
Markus Unterwaditzer
499b86aca6
Add build features for multiple device types
...
The bin crate now has two features, one for each supported device.
* The IOCTL change from #142 is compiled in conditionally.
* Tp-link display is supported & tested for HW rev 3 and HW rev 5.
The release tarballs now contain two rayhunter-daemon binaries, for
orbic and tplink. An installer for tplink is not yet included.
Co-authored-by: m0veax <m0veax@chaospott.de >
2025-04-07 21:15:32 +02:00
Sashanoraa
7b897c335d
Remove unneeded image dependencies
...
This removes a bunch of dependencies we aren't using and reduces the
binary size by 0.7 MB.
2025-04-04 12:30:57 -07:00
Sashanoraa
c47be1074b
Add delete all recordings button to web ui
2025-04-04 12:21:51 -07:00
Sashanoraa
326d4106bd
Add a delete option to each recording in the web view
2025-04-04 12:21:51 -07:00
Markus Unterwaditzer
df8a1f5606
Fix RecordingStore::create
...
Bug introduced in #225
2025-04-03 15:22:08 -07:00
Markus Unterwaditzer
b0f5296c20
disable quirks mode
2025-04-03 12:15:33 -07:00
Markus Unterwaditzer
4e792b1402
Fix rendering of last_message_time in UI
...
* last_message_time is shown inconsistently for current entry vs other
entries -- deduplicate code
* last_message_time is N/A for undefined -- but the API response was
null instead of undefined.
2025-04-03 12:15:33 -07:00
Markus Unterwaditzer
58f0071864
Fix malformed QMDL store writes
...
Fix https://github.com/EFForg/rayhunter/issues/199
Fix https://github.com/EFForg/rayhunter/issues/151
rayhunter updates manifest files using write **without truncation**.
This means that if the new manifest is shorter than the old one,
trailing bytes of the old data will persist in the new file.
Switch over to atomic file writes so that this bug is fixed + rayhunter
behaves correctly if it is killed mid-write.
https://github.com/EFForg/rayhunter/pull/182 could be reverted as it
seems to mostly be a workaround.
2025-04-03 12:09:19 -07:00
Sashanoraa
fbc47187c5
Create ServerState outside of run_server
...
This reduces the number of arguments of run_server to make clippy happy
and also makes the code easier to understand.
2025-03-27 11:57:01 -07:00
Sashanoraa
5f601a209e
Collapse nested if statements
2025-03-27 11:57:01 -07:00
Sashanoraa
034e0632e4
Box some of the larger information element enum variants
...
An enum is always the size needed to store its largest variant. Some of
the variants of the InformationElement and LteInformationElement are
substantially larger than the rest. Boxing the larger variants reduces
the size of the enum, in some cases by several kilobytes.
Since Rust does not currently support destructing a Box via pattern
matching, some code that destructures these enums had to be modified.
2025-03-27 11:57:01 -07:00
Sashanoraa
4edf001ca4
Fix small clippy warnings
2025-03-27 11:57:01 -07:00
Sashanoraa
b41f61bfa6
Replace unnecessary File::options with File::create
2025-03-27 11:57:01 -07:00
Will Greenberg
0364bfbc98
bump version number
...
we uhh forgot to do this for every release lol
2025-03-25 16:53:20 -07:00
Cooper Quintin
266f2b2e53
more nesting
2025-03-25 16:49:08 -07:00
Will Greenberg
2080cd7845
web ui: fix issue causing no entries
...
We weren't correctly handling all possible events from the heuristics
list
2025-03-25 16:49:08 -07:00
Will Greenberg
c9dcbbe5d6
daemon: if we fail to parse the QMDL manifest, make a new one
...
If rayhunter doesn't exit cleanly (e.g. during a battery outage), the
QMDL manifest may end up in a corrupted state. If that's the case,
rayhunter should try to recover by creating a new manifest. This'll let
it continue, and will preserve previous recordings, but they won't be
visible through the UI.
2025-03-25 15:36:12 -07:00
Sashanoraa
d0d01089dd
Fix various clippy warnings
...
This commit fixes various clippy warnings that do not affect the
function of the code and aren't stylistic in nature.
2025-03-24 13:47:20 -07:00
Sashanoraa
9c26e89b24
Modify config load to use serde default
...
This commit refactors the config loading code to no longer require a
separate ConfigFile struct by taking advantage of serde's `default`
attribute. This causes serde to use the Config struct's default value
for that attribute for any missing attributes, which is what the
existing code was doing anyway.
This also fixes several clippy warnings.
Serde docs: https://serde.rs/container-attrs.html#default
2025-03-24 13:47:20 -07:00
oopsbagel
0b3c0de481
fix(lib/util): use better names for runtime metadata
...
- document RuntimeMetadata fields
- rename RayhunterMetadata to RuntimeMetadata
- rename RuntimeMetadata.os to RuntimeMetadata.system_os
- remove unpopulated hardware field
- remove unnecessary duplication of datastructure in analyzer harness
2025-03-19 11:48:54 -07:00
oopsbagel
188e9f436b
fix(qmdl-manifest): store os/arch/hardware in qmdl manifest.toml
...
Do not superfluously prefix these names with rayhunter_, as they describe the
hardware and not the binary.
2025-03-19 11:48:54 -07:00
oopsbagel
f2b5aa2743
feat: show rayhunter version/os/arch in pcap, ndjson, qmdl manifest
...
Create a util mod to provide information about the rayhunter binary and
system.
2025-03-19 11:48:54 -07:00
oopsbagel
b785a7f21c
feat(qmdl): add rayhunter version and os to manifest.toml
2025-03-19 11:48:54 -07:00
Cooper Quintin
c9ac834ca7
show warnings in web UI
2025-02-10 11:26:27 -08:00
Cooper Quintin
8629aacf6b
switch default to not see trace messages, switch arg from quiet to verbose
2025-02-10 11:26:27 -08:00
Cooper Quintin
a3fd1479f9
rename qmdl path so that downloaded files have a qmdl extension
2025-02-10 11:26:27 -08:00
Cooper Quintin
049c563f02
fix shortcodes on rayhunter_check
2025-02-10 11:26:27 -08:00
Will Greenberg
3619df32ab
check: give qmdl-path a shorthand arg
2025-01-28 11:02:19 -08:00
Will Greenberg
3e26e61b05
check: don't count informational events as warnings, better logging
2025-01-28 11:02:19 -08:00
Will Greenberg
327eaddcd7
rayhunter-check: pcapify qmdl
2025-01-06 16:24:11 -08:00
Cooper Quintin
95e8f846d3
propegate colorblind mode beyond start/stop
2024-11-26 11:05:13 -08:00
Cooper Quintin
15f128add1
remove unneeded import
2024-11-26 11:05:13 -08:00
Cooper Quintin
87f9cc403b
add colorblind mode. Fixes #77
2024-11-26 11:05:13 -08:00
Will Greenberg
f3e4091e1d
daemon: fix some bugs in the frontend js
2024-10-08 14:58:46 -07:00
Will Greenberg
16f705f29c
Add the test analyzer entirely via daemon flags
...
Also consolidate the duplicate AnalysisWriter implementation
2024-10-08 14:58:46 -07:00
Cooper Quintin
a6fce6d568
fix bug where warnings not displayed
2024-10-08 14:58:46 -07:00