Giter VIP home page Giter VIP logo

libmcrx's Issues

Make coverity scans conditional on changes

Right now coverity scans are scheduled daily unconditional, so it's often re-scanning an unchanged repo:

- cron: '0 11 * * *' # Daily at 11:00 UTC

I think re-scanning is a good idea if the coverity version changes or the repo changes, but ideally not otherwise.

Once it's a tighter conditional, it would also be good to scan PRs before integrating them if possible, and maybe make the check more frequent. The changes to this repo are infrequent enough that it's probably better to leverage the 7/day max limit differently than a hard once per day.

Removing unused headers and functions

Some of these includes can be deleted, but I'm presuming the unused functions are for users of the library?

Screenshot from 2022-02-03 12-20-19

We could clear these warnings by using them in a test cases if possible.

GitHub Action

Add an action to build and clean the project on push etc.

family value never read

src/native.c:358:7: warning: Value stored to 'family' is never read [deadcode.DeadStores]
      family = AF_INET;
      ^        ~~~~~~~

Add "make check" runs in repo/pr automation

I've been running "make check" before commits, but it requires some local config before running. On linux, assuming libmcrx is in ~/src, that looks like:

docker container run -d --rm --name amtgw-5 --privileged grumpyoldtroll/amtgw $(python3 ~/src/libmcrx/driad.py 23.212.185.5)
sudo ip route add 23.212.185.5/32 dev docker0

Then, as long as my sender of traffic from 23.212.185.5->232.1.1.1:5001 is alive and properly registered in the DNS and reachable, the tests pass. (Else they hang forever, which maybe also should be fixed to fail after some time.)

Ideally, this would also be coupled with adding valgrind to the tests and failing on violations. Some links on how to do so are here:

Other nice-to-haves would be gcov or similar, with some kind of coverage report shown on pages (also mentioned in some of the above but probably more research needed.)

Update configure.ac

  • Run autoupdate
  • Run autoscan to find all missing checks.

Pull Request coming.

App receives packets from the wrong source address on a group+port collision.

I noticed this while running MNAT on the receiver. Packets arriving on the physical interface with a different source address than the subscribed (S,G) were received instead of filtered in the library. (The OS can't filter it because the listening UDP socket is only bound to the group and the port; even though the sockopt is an SSM join, that's not a filter for the receiving port.)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.