Refactor configuration management and enhance error handling#10
Merged
Refactor configuration management and enhance error handling#10
Conversation
- Updated the configuration module to utilize `tokio::sync::RwLock` and `tokio::sync::Mutex` for asynchronous access. - Modified all configuration-related functions (`get`, `set`, `remove`, etc.) to be asynchronous, allowing for non-blocking operations. - Adjusted the `Engine` and `EngineExtensionManager` to support async operations, including registration and option setting. - Enhanced Python bindings to handle async configuration operations, ensuring compatibility with the new async structure. - Updated tests to reflect the changes in async behavior, ensuring proper functionality in an asynchronous context. - Improved error handling and logging in various places to provide better insights during execution.
…d refactor related functions
- Improved error handling for system time retrieval in `topology.rs` to log and panic on failure. - Added a new test file `engine_complex_tests.rs` for complex query scenarios including JOIN operations and multiple namespaces. - Introduced a helper module `test_helpers.rs` for creating generic table plugins to reduce code duplication in tests. - Enhanced error handling for thread runtime creation in `python_api.rs` and `tracing.rs` to panic with descriptive messages on failure. - Updated `auth.rs` to make `get_token_from_request` public and added comprehensive tests for token extraction logic. - Improved path validation in `file_api.rs` with additional tests for edge cases like symlink handling and path traversal attacks. - Enhanced server runtime creation in `mod.rs` with error logging for lock acquisition failures. - Updated header component in the web UI to reflect active navigation state using `use_route`.
…tests and add complex test cases
…ecific implementations - Added `InjectionTrait` to define common methods for shellcode injection. - Implemented `GenericInjection` struct to handle injection logic generically. - Created `perform_injection` function to facilitate library injection across platforms. - Refactored `Injector` to utilize platform-specific injection logic based on architecture. - Added tests for aarch64 injection and shellcode verification. - Updated various modules to support the new injection architecture. - Improved error handling and logging in the injection process.
…nd settings handling
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Update configuration management to use asynchronous structures for non-blocking operations. Introduce a unified conversion module for Ele types and improve error handling across various modules. Enhance Python bindings for async compatibility and make several API functions public for integration tests. Add new features such as limit parameters for trace event retrieval and a generic injection trait for platform-specific implementations. Update tests to reflect these changes and ensure robust functionality.