darwin icon indicating copy to clipboard operation
darwin copied to clipboard

Add support to TCP and UDP protocols

Open ThibaudCartegnie opened this issue 3 years ago • 2 comments

: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

ThibaudCartegnie avatar Jun 15 '21 08:06 ThibaudCartegnie

Yeah, I'll try being lighter next time when suggesting changes: applying/validating them is a pain on github :sweat_smile:

frikilax avatar Jan 10 '22 17:01 frikilax

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)?

frikilax avatar Jan 10 '22 17:01 frikilax