darwin
darwin copied to clipboard
Add support to TCP and UDP protocols
:sparkles: Add support to TCP and UDP protocols #224
:bangbang: Once all the checklist is done you have to:
- stash merge this pull request
- delete the corresponding branch
- close the associated issue
:page_with_curl: Type of change
Breaking change: fix or feature that would cause existing functionality to not work as expected.
:black_nib: Description
This PR adds the support for udp and tcp besides Unix sockets.
There are 2 major changes for the protocol :
- The Darwin Header no longer contains a Certitude by default and it is now defined as packed, lowering its size from 56 bytes to 48 bytes.
- The Manager configuration file holds a 'network' field to specify how the filter receives data (Unix Socket, TCP or UDP)
This draft is pushed for early comments.
:dart: Test Environments
Ubuntu (20.04)
- Redis (5.0.7)
- Boost (1.71.0)
- g++ (9.3)
- CMake (3.16.3)
- Python (3.8.5)
- Valgrind (3.15.0)
HardenedBSD (12.2)
- Redis (6.0.14)
- Boost (1.72.0)
- clang (10.0.1)
- CMake (3.20.4)
- Python (3.8.10)
- Valgrind(N/A)
:heavy_check_mark: Checklist:
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [x] (If new filter) I have added corresponding page to the documentation
- [x] (If other changes) I have made corresponding changes to the documentation
- [x] I have added tests that prove my fix is effective or that my feature works
- [x] New and existing unit tests pass locally with my changes
- [x] :raising_hand: I certify on my honor that all the information provided is true, and I've done all I can to deliver a high quality code
Yeah, I'll try being lighter next time when suggesting changes: applying/validating them is a pain on github :sweat_smile:
Outside my remaining comments (which aren't really important, except the one on RedisManager.cpp), everything seems great!
@HugoSoszynski thoughts on the PR and remaining comments I made (especially this one)?