checkov/CKV_SECRET_6 flags the commented-out "large4cats" example, which
is the public default credential for the meshtastic.org MQTT broker rather
than a real secret. Ignore the file in .trunk/trunk.yaml so the example
config stays free of lint-suppression comments.
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
glob and os do not depend on the SCons-injected env, so importing them at
the top of the file removes the flake8 E402 findings and lets the E402
ignore-all directives (which were no longer suppressing anything) go away.
meshtasticd must run as root to reach GPIO/I2C/SPI hardware, so the final
USER root is deliberate. The existing file-level ignore used the old trivy
code (DS002); rename it to DS-0002 and add checkov/CKV_DOCKER_8 so the
last-USER-root findings are suppressed with an explicit justification.
The trunk upgrade (#11140) renamed trivy's Dockerfile rules from DSxxx to
DS-xxxx, so the trunk-ignore-all directives for DS026/DS002 stopped
suppressing and the HEALTHCHECK / non-root-USER findings resurfaced.
Update the codes to DS-0026 / DS-0002, and drop the checkov/CKV_DOCKER_8,
hadolint/DL3002 and disabled terrascan ignores that no longer match any
finding.
Suppress checkov/CKV_GHA_7 (the workflow_dispatch reason input is a
free-text run label that never reaches the build) and drop the redundant
quotes yamllint flags on the description/default/name scalars.
Theses two appear to be buggy on r1-neo and nomadstar meteor pro, they rely on Wire.h being included previously to their import.
Idk why other platforms using the same smart LEDs are working while theses ones don't.
This should make CI green on the dev branch.
Trying this to see if anything bad happen if I were to replace most raw pointers with unique_ptr.
I didn't used std::make_unique since it is only supported in C++14 and onwards but until we update esp32 to arduino 3.x the ESP32 xtensa chips use a C++11 std.
Using long interleaving is not a breaking change, the receiver node is able
to use the lora header to know if LI encoding is used or not and will
decode LI packets correctly.
However the problem is SX127x and other first generation LoRa IP which do not
support LI at all, for theses it is a breaking change.
HOWEVER due to the sync word bug the LR11x0 already can't talk with SX127x,
so if we enable LI on theses no one would be able to tell.
Same for SX128x altho this is because it works on 2.4Ghz which is incompatible with SX127x.
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* run trunk fmt -a
* fix bracket bug
This was introduced by @tedwardd and @thebentern in 021106dfe5.
See this diff:
else
+ checkConfigPort = false;
printf("Using config file %d\n", TCPPort);
I thought git would be smart enough to understand all the whitespace changes but even with all the flags I know to make it ignore theses it still blows up if there are identical changes on both sides.
I have a solution but it require creating a new commit at the merge base for each conflicting PR and merging it into develop.
I don't think blowing up all PRs is worth for now, maybe if we can coordinate this for V3 let's say.
This reverts commit 0d11331d18.
* action: skip trying to comment binary size change results if it is not a PR
* action: fix halucinations in the clanker's code
* action: cleanup one line
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: Austin <vidplace7@gmail.com>
This is missing logic:
- report average
- don't bother reporting if the results are negligeable
- praise the user if it's improving the situation
- shame the user if it's not improving the situation
* udp-multicast: remove the thread from the multicast thread API
The whole API is parallel & asynchronous we don't need to start a thread ourself,
the implementation probably does when we call start listening already.
* Take copilot advice and call it a handler
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* cleanup UdpMulticastThread.h preprocessor rules a tiny bit
* bump platform-native to allow for multiple multicast listeners on the same machine
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Add UDP multicast support on linux.
Closes#6326
We tested it an it works.
This is really hacky to say the least.
* Add libuv to Linux packaging
* Trunkadunk
* Correct ref
* Add libuv1-dev to setup-native
---------
Co-authored-by: vidplace7 <vidplace7@gmail.com>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Since 96ba94843b we don't spray packets to all machines on the network.
So we can allow ourself to raise the TTL limit, this allows users who run L3 IGMP Routing infrastructure to pass meshtastic frames over UDP.
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
The packet.readBytes API is not available on all targets:
- RP2040 & RP2340
- yet to be written portduino API
Instead pass the data buffer as-is.
It also removes a memcpy which do not need to exists.
I've tested it successfully on a tbeam.
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
A smart router or switch is able to snoop the multicast address to
only send the packets to nodes listening on the multicast address.
Before all machines reachable on the L2 layer would receive the packet.
From the manpage:
> arch - print machine hardware name (same as uname -m)
Arch Linux does not have the `arch` alias, only `uname`, so use `uname` to fix this issue:
> ```
> ./bin/build-native.sh: line 18: arch: command not found
> ```
Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz>