Commit Graph

140 Commits

Author SHA1 Message Date
Ben Meadors
29fe6e7448
Event mode: Block problematic portnums of traffic (#4362) 2024-07-31 05:52:17 -05:00
Ben Meadors
59cc57fc29
Event mode: Enforce reliable hop limit and disallow default public MQTT (#4343)
* Event mode: Enforce reliable hop limit

* Event mode: Short circuit wantsLink on MQTT for default broker address

* Just enforce at channels level since everything uses this

* For events never forward packets with excessive hop_limit

* In EVENT_MODE, don't respond with hop_limit set more then the configured max.

* Correct hop_start when correcting hop_limit in event mode.

* Make EVENT_MODE work from userPrefs.h

* Event mode: Disallow Router or Repeater roles

---------

Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz>
2024-07-29 20:16:47 -05:00
Ben Meadors
811a9ae261
Macro to trace log all MeshPackets as JSON (#4336)
* Macro to trace log all MeshPackets as JSON

* Comment

* Add trace logging to file for native target

* bytes to hex

* Add time_ms

---------

Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz>
2024-07-28 19:49:10 -05:00
Jonathan Bennett
300c3d32aa
Just a bit of security hygiene. (#4313)
* Make sure to call randomSeed() on esp32

* Randomize the top 22 bits of the Message ID

* Make it clear that we are not calling randomSeed() on purpose

---------

Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2024-07-23 11:52:14 -05:00
Ben Meadors
9c46bdad1a
New new BLE logging characteristic with LogRecord protos (#4220)
* New UUID

* New log radio characteristic with LogRecord protobuf

* LogRecord

* Merge derp

* How did you get there

* Trunk

* Fix length

* Remove assert
2024-07-03 16:29:07 -05:00
Ben Meadors
4a05874dba
Try-fix: Remove logging of actual payload strings (and compressed) for TAK packets (#3922)
* Remove logging of actual payload strings (and compressed) for TAK packets

* Don't assert / reboot. Log error and skip decode
2024-05-19 07:24:10 -05:00
GUVWAF
64edfb76e0
Uplink to MQTT after potentially altering content (#3646)
Mainly for traceroute module now

Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2024-04-18 17:44:13 -05:00
GUVWAF
c34956e9d8
Cosmetics: rename remaining plugins → modules and less errors (#3645) 2024-04-16 17:47:56 -05:00
Jonathan Bennett
11adfe05ce
Drop unishox2 functions from Router (#3606) 2024-04-12 14:06:05 -05:00
Jim Whitelaw
acc32916c3
Add multiple configuration options for a minimized build (GPS,WiFi,BT,MQTT,Screen). (#3469)
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2024-03-25 06:33:57 -05:00
Jonathan Bennett
dfcd0d14f6
Add MaxNodes to Native config (#3427)
* Add MaxNodes to Native

* It compiles...

* Convert nodedb to use new

* Closer but still broken.

* Finally working

* Remove unintended lines

* Don't include a pointer

* Capitalization matters.

* avoid rename in protocol regen

* When trimming the nodeDB, start with a cleanup

* Remove extra cleanupMeshDB() call for now

---------

Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2024-03-21 09:06:37 -05:00
Ben Meadors
7da1153c2c
Fix known_only panic by short circuiting for NULL before checking has_user (#3352) 2024-03-08 08:31:49 -06:00
GUVWAF
585805c3b9
Add original hop limit to header to determine hops used (#3321)
* Set `hop_start` in header to determine how many hops each packet traveled

* Set hopLimit of response according to hops used by request

* Identify neighbors based on `hopStart` and `hopLimit`

* NeighborInfo: get all packets and assume a default broadcast interval

* Add fail-safe in case node in between is running modified firmware

* Add `viaMQTT` and `hopsAway` to NodeInfo

* Replace `HOP_RELIABLE` with hopStart for repeated packet

---------

Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2024-03-08 07:13:57 -06:00
Ben Meadors
495840c777
Filter out neighborinfo if we don't have the module enabled (#3314)
* Filter out neighborinfo if we don't have the module enabled

* Handlereceived instead

* Add debug message
2024-03-03 08:36:36 -06:00
GUVWAF
eb8a12e5a2
Refactor MQTT: only publish on LoRa Tx if packet is from us and on Rx if not (#3245)
Such that direct message to MQTT node gets published and we get rid of always rebroadcasting when MQTT is enabled

Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2024-02-21 13:00:14 -06:00
Andre K
d6fa190025
fix: allow MQTT encryption_enabled with json_enabled (#3126)
* fix: allow MQTT `encryption_enabled` with `json_enabled`

* fix: copy decoded MeshPacket and release memory after use

* fix: use `packetPool` allocCopy and release methods

---------

Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2024-01-25 08:42:34 -06:00
GUVWAF
8f6a2836b8
Mark packets received via MQTT and add option to ignore them (#3117)
* Mark packets received via MQTT and add option to ignore them

* Don't send packets received via MQTT back into MQTT
Generate implicit ACK for packets we as an MQTT gateway sent

---------

Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2024-01-20 14:22:09 -06:00
Ben Meadors
28502a762f
Added Known-Only rebroadcast mode behavior (#2993) 2023-12-06 14:02:41 -06:00
Andre K
e6b20bff77
refactor: simplify MQTT defaults (#2893)
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2023-10-15 18:56:47 -05:00
Ben Meadors
0d023ea215
Revert "Fix compression (#2806) (#2819)" (#2835)
This reverts commit cdac643749.
2023-09-26 07:02:06 -05:00
GUVWAF
cdac643749
Fix compression (#2806) (#2819)
* Fix compression: encode to bytes after `decoded` is modified

* Change payload size to decompressed length

---------

Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2023-09-24 06:49:21 -05:00
Thomas Göttgens
f5d323fdd3 trunk fmt 2023-08-06 16:21:39 +02:00
Thomas Göttgens
568cc259af Don't crash when no radio detected. 2023-08-06 16:21:39 +02:00
luzpaz
003047baaf
Fix various typos (#2607)
* Fix various typos

Found via `codespell -q 3 -L acount,clen,dout`

* Trunk reformatting

---------

Co-authored-by: code8buster <communismisgreat@national.shitposting.agency>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2023-07-14 16:25:20 -05:00
Ben Meadors
6e96216ba3
MQTT client proxying (#2587)
* WIP on MQTT proxy message queue

* Fix copy paste goof

* Progress on uplink

* Has packets

* Avoid trying to connect if we're proxying

* Pointer correctly

* Remove wifi guards

* Client proxy subscribe

* Fixed method that got bababababorked somehow... personally I blame CoPilot

* Short circuit logic

* Remove canned settings

* Missed some stuff in the move

* Guard pubsub client for non-networked variants

* Has networking guard

* else

* Return statement for fall-thru

* More gaurd removals

* Removed source filters. No wonder I was confused

* Bounding

* Scope guard around else and fix return

* Portduino

* Defs instead

* Move macro up to actually fix portduino

* Size_t

* Unsigned int

* Thread interval

* Protos

* Protobufs ref
2023-07-08 20:37:04 -05:00
Ben Meadors
a2c5b92840
NodeDB Lite migration (#2554)
* Skadoosh

* Removing deprecated fields

* Remove remaining deprecations

* Macro

* Macro

* WIP conversion

* Lots of type conversions between Lite versions and new NodeDB methods

* Trunk

* Conversion

* NULL

* Init

* Rename

* Position

* Reworked conversion to NodeInfo for PhoneAPI
2023-06-17 09:10:09 -05:00
IhorNehrutsa
9c683f4c87
Fix LOG_DEBUG messages when no DEBUG_PORT. (#2485)
* Fix LOG_DEBUG messages when no DEBUG_PORT.

* Fix LOG_DEBUG messages when no DEBUG_PORT.

* Fix LOG_DEBUG messages when no DEBUG_PORT.

* Fix LOG_DEBUG messages when no DEBUG_PORT.
2023-05-13 05:33:14 -05:00
Thomas Göttgens
320bf57687 tryfix #2416 - lock some guards. 2023-04-10 17:00:15 +02:00
Thomas Göttgens
2edc35d34b
Logic Late-Fix to the last PR 2023-03-29 15:14:48 +02:00
sbias
26d18244f0
Add nodedb channel handling (#2384)
* send ourNodeInfo to channel we got a message we heared someone new

* store node-channel into nodeDB

* use channel from nodeDb to send local messages

* update protobufs

* fmt and fix braces

* respect requested channel for local send, only store channel while getting a nodeinfo packet

---------

Co-authored-by: Thomas Göttgens <tgoettgens@gmail.com>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2023-03-29 06:51:22 -05:00
Ben Meadors
cd35e92471 Added modes for rebroadcast 2023-01-29 14:22:51 -06:00
GUVWAF
c499302092 Remove decode guard clause for repeater 2023-01-29 16:32:18 +01:00
Ben Meadors
bdf3fe3f5c Logging tweaks 2023-01-28 13:40:14 -06:00
Ben Meadors
d9af4f46fa Skip decoding for Repeaters 2023-01-28 13:28:57 -06:00
Ben Meadors
654d38ed3f Router 2023-01-28 08:17:29 -06:00
Ben Meadors
e8908784f9 Format 2023-01-28 06:39:14 -06:00
Ben Meadors
de82119415 Start of repeater role with in firmware 2023-01-28 06:38:13 -06:00
Thomas Göttgens
cdf379616c whatever makes trunk happy. 2023-01-21 21:23:24 +01:00
Thomas Göttgens
6fdb93cd16 re-add namespacing in protobufs. Let's see what i missed. Portduino likely ...
Checking in generated on purpose.
2023-01-21 21:23:24 +01:00
Thomas Göttgens
51b2c431d9 trunk roundhouse kick 2023-01-21 21:23:24 +01:00
GUVWAF
ab9d0ba543 Report actual RoutingError 2023-01-10 21:12:40 +01:00
GUVWAF
e13fb9919e Send NAK only to the API upon duty cycle limit 2023-01-10 21:12:17 +01:00
GUVWAF
a3b93a4dcf Better not to compare float directly 2023-01-10 21:10:09 +01:00
Thomas Göttgens
8465467aa8 2nd batch 2023-01-07 14:57:00 +01:00
pavelb-techspark
30ae4c2a38
Add QueueStatus sending to the firmware (#1820)
* Yank mqtt service envelope queue

* trybuildfix mqtt system

* removed too much

* no excessive heap debugging on release builds

* send QueueStatus messages

The QueueStatus message is sent as a response to the attempt to queue
an outgoing MeshPacket and contains statuses of the last queue
attempt, TX Queue space and capacity and MeshPacket.id that was
queued.

When TX Queue changes status from completely full to at least
a single slot free a QueueStatus message is also sent to notify
that user can queue more messages.

Signed-off-by: Pavel Boldin <pavel.b@techspark.engineering>

* WIP: update protobufs

Signed-off-by: Pavel Boldin <pavel.b@techspark.engineering>

* update protobufs

* regen protos

Signed-off-by: Pavel Boldin <pavel.b@techspark.engineering>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: Thomas Göttgens <tgoettgens@gmail.com>
Co-authored-by: Sacha Weatherstone <sachaw100@hotmail.com>
2023-01-04 23:56:52 +11:00
Thomas Göttgens
8a9af37d82
Merge branch 'develop' into nice-threads 2022-12-30 20:18:19 +01:00
Ben Meadors
f1cdfd163d Replaced all of the logging with proper log levels 2022-12-30 10:27:07 -06:00
Thomas Göttgens
e73ae7cdac woops - was too fast there 2022-12-30 14:53:34 +01:00
Thomas Göttgens
65aad62702 tryfix - no mqtt if no mqtt wanted... 2022-12-30 14:51:00 +01:00
Ben Meadors
0b5cae5393 Log levels refactoring 2022-12-29 20:41:37 -06:00