Optimization #3524
closed
Remove unsafe Rust code for ALPROTO_X constants
Added by Philippe Antoine over 4 years ago.
Updated over 1 year ago.
Description
Now, these constants are defined in C enumeration `AppProtoEnum`
In Rust, we use a global variable ('`static mut`) whose value we get as a return of a C function call.
As a global variable, we must use `unsafe` every time we read it
We should either :
- export these from C to Rust with bindgen
- move this enum to Rust and export it to C with cbindgen (cbindgen is already used)
Related issues
1 (1 open — 0 closed)
Got started on this - moved the enum to Rust and am exporting it with cbindgen
Looks like there are a few "cyclic header dependencies" that will have to be sorted out - other than that it's just a question of safely accessing/mutating the global variables
Thanks for working on this and letting us know
- Status changed from New to Assigned
- Assignee set to Nick Price
- Target version set to TBD
Think I've got everything sorted except the header cross-dependencies - once that's done I'll run the test suites and make a PR - hopefully what I did makes sense :P
Hello Nick, where are you with this ? Could you create a draft PR ?
- Status changed from Assigned to In Review
- Assignee changed from Nick Price to Philippe Antoine
- Target version changed from TBD to 8.0.0-beta1
- Related to Task #5053: app-layer: dynamic alproto IDs added
- Status changed from In Review to Rejected
Closing in favor of #5053
We cannot have a finite rust enumeration if we want dynamic registration...
- Assignee deleted (
Philippe Antoine)
- Target version deleted (
8.0.0-beta1)
@Jason Ish should we use lazy_static crate ?
Because these are initialized at runtime, but then, they are constants
We already depend on lazy_static
, so if it solves the problem, sure, its there.
Also available in: Atom
PDF