Commit Graph

796 Commits

Author SHA1 Message Date
Aaron Heise
9963cf37b8
Fix exceptions on Channel shutdown 2023-02-28 08:38:23 -06:00
Aaron Heise
72300cc821
Revert "Only send proof if link is still active" 2023-02-28 08:24:13 -06:00
Aaron Heise
8168d9bb92
Only send proof if link is still active 2023-02-28 08:13:07 -06:00
Aaron Heise
8f0151fed6
Tidy up PR 2023-02-27 21:33:50 -06:00
Aaron Heise
42935c8238
Make the PR have zero deletions 2023-02-27 21:15:25 -06:00
Aaron Heise
118acf77b8
Fix up documentation even more 2023-02-27 21:10:28 -06:00
Aaron Heise
661964277f
Fix up documentation for building 2023-02-27 19:05:25 -06:00
Aaron Heise
464dc23ff0
Add some internal documenation 2023-02-27 17:36:04 -06:00
Aaron Heise
c00b592ed9
System-reserved channel message types
- a message handler can return logical True to prevent subsequent message handlers from running
- Message types >= 0xff00 are reserved for system/framework messages
2023-02-26 11:39:49 -06:00
Aaron Heise
e005826151
Allow channel message handlers to short circuit
- a message handler can return logical True to prevent subsequent message handlers from running
2023-02-26 11:23:38 -06:00
Aaron Heise
fe3a3e22f7
Expose Channel on Link
Separates channel interface from link

Also added: allow multiple message handlers
2023-02-26 07:25:49 -06:00
Aaron Heise
68cb4a6740
Initial work on Channel 2023-02-25 18:23:25 -06:00
Michael Faragher
5b3d26a90a Additional error messages for offline flashing. 2023-02-22 12:49:24 -06:00
Mark Qvist
c604214bb9 Improved RNode reconnection when serial device disappears 2023-02-18 13:31:22 +01:00
Mark Qvist
d02cdd5471 Added JSON output to rnstatus 2023-02-17 21:29:35 +01:00
Mark Qvist
b82ecf047a Added Link establishment rate calculation 2023-02-17 09:54:18 +01:00
Mark Qvist
4d3570fe4c Updated version 2023-02-15 12:28:06 +01:00
Mark Qvist
fc818f00f1 Merge branch 'master' of github.com:markqvist/Reticulum 2023-02-09 11:54:06 +01:00
Mark Qvist
a55d39b7d4 Added Link ID to response_generator callback signature 2023-02-09 11:52:54 +01:00
Dionysis Grigoropoulos
323c2285ce rnodeconf: Typo fix on board versions 2023-02-04 17:16:57 +02:00
Mark Qvist
e9ae255f84 Added fallback version URL to rnodeconf updater 2023-02-04 14:18:11 +01:00
Mark Qvist
42dfee8557 Added Bluetooth pairing PIN output 2023-02-04 13:45:12 +01:00
Mark Qvist
1b55ac7f24 Added destination hash generation and announce functionality to rnid utility 2023-02-03 20:27:39 +01:00
Mark Qvist
d7aacba797 Cleanup 2023-02-03 10:13:36 +01:00
Mark Qvist
b92ddeccff Cleanup 2023-02-03 08:29:32 +01:00
Mark Qvist
6fac96ec18 Mask entire header 2023-02-03 00:11:11 +01:00
Mark Qvist
53ceafcebd Improved IFAC mask derivation 2023-02-02 23:59:02 +01:00
Mark Qvist
4df67304d6 Added payload masking to interfaces with IFAC enabled 2023-02-02 20:48:52 +01:00
Mark Qvist
ac07ba1368 Added Identity generation to rnid utility 2023-02-02 19:26:27 +01:00
Mark Qvist
ece064d46e Updated version 2023-02-02 19:05:15 +01:00
Mark Qvist
08e480387b Added signing and validation to rnid 2023-02-02 19:02:05 +01:00
Mark Qvist
f4241ae9c2 Added basic rnid utility 2023-02-02 17:45:59 +01:00
markqvist
3b2fbe02c6
Merge pull request #189 from Erethon/master
Fix bug where announce_identity could be undefined
2023-02-02 10:41:42 +01:00
Dionysis Grigoropoulos
6ecae615de packet: Fix header_type matching according to IFAC
Ever since IFAC/Interface Access Codes were introduced, the header type
is one bit long and not two.
2023-01-27 15:29:06 +02:00
Dionysis Grigoropoulos
72ca6316f6 Fix bug where announce_identity could be undefined 2023-01-26 22:05:38 +02:00
Mark Qvist
e4f0b2dc39 Allow rnodeconf to provision RNodes from extracted firmwares on systems without prior tools installed 2023-01-14 20:47:34 +01:00
Mark Qvist
c5a586175d Updated version 2023-01-14 15:06:30 +01:00
Mark Qvist
2a1ec6592c Added autoinstall and updating from extracted RNode Firmwares to rnodeconf 2023-01-14 14:51:44 +01:00
Mark Qvist
eed7698ed3 Added firmware extraction from existing devices to rnodeconf 2023-01-14 13:20:19 +01:00
Mark Qvist
8d96673bec Updated flasher paths 2023-01-14 00:55:34 +01:00
Mark Qvist
62a13eb0e8 Added RNode Bootstrap Console info to rnodeconf autoinstaller 2023-01-14 00:28:34 +01:00
Mark Qvist
78253093c7 Updated rnodeconf 2023-01-13 11:59:38 +01:00
Mark Qvist
63d54dbecb Added console image flashing to rnodeconf 2023-01-11 13:56:41 +01:00
Mark Qvist
32922868b9 Updated rnodeconf install guide 2023-01-11 11:45:10 +01:00
Mark Qvist
274c7199b0 Updated version 2022-12-23 23:27:37 +01:00
Mark Qvist
7960226883 Fixed missing path invalidation on failed link establishments made from a shared instance client 2022-12-23 23:26:50 +01:00
Mark Qvist
bb74878e94 Reordered property assignment 2022-12-23 23:24:26 +01:00
Mark Qvist
5c2c935b6f Updated version 2022-12-22 21:08:02 +01:00
Mark Qvist
8402541c73 Faster roaming path recovery for multiple interface non-transport instances 2022-12-22 20:17:09 +01:00
Mark Qvist
c34c268a6a Added carrier change detection flag to AutoInterface 2022-12-22 18:20:34 +01:00
Mark Qvist
8fcdc4613c Adjusted loglevels 2022-12-22 18:20:13 +01:00
Mark Qvist
f645fa569b Fixed AutoInterface multicast echoes failing on interfaces with rolling MAC addresses on every re-connect 2022-12-22 17:46:46 +01:00
Mark Qvist
e9e98a00c2 Updated version 2022-12-22 15:07:36 +01:00
Mark Qvist
b305eb8e0a Improved path response handling. Prepared destination path response handling for multi-path Transport. 2022-12-22 11:28:56 +01:00
Mark Qvist
dd7931d421 Added signal quality stats to announce log output 2022-12-22 11:26:59 +01:00
Mark Qvist
171457713b Improved RNode hotplug over Bluetooth on Android 2022-12-20 15:17:46 +01:00
Mark Qvist
67ee8d6aab Added originator check to path rediscovery on failed links 2022-12-19 01:31:00 +01:00
Mark Qvist
13fa7d49d9 Added automatic path rediscovery on failed link establishments 2022-12-19 01:15:49 +01:00
Mark Qvist
66d921e669 Improved resource advertisement retry handling 2022-12-19 01:10:34 +01:00
Mark Qvist
85f60ea04e Added check for already transferring resource to Link class 2022-12-19 01:04:49 +01:00
Mark Qvist
4870e741f6 Added link request proof signature validation for every transport hop 2022-12-18 21:27:14 +01:00
Mark Qvist
f71c1986af Added Heltec USB issue notice to autoinstaller 2022-12-16 23:34:31 +01:00
Mark Qvist
30d8e351dd Updated version 2022-12-16 23:21:22 +01:00
Mark Qvist
d26bbbd59f Merge branch 'master' of https://git.unsigned.io/markqvist/Reticulum 2022-12-15 17:14:15 +01:00
Mark Qvist
2a264fa7d6 Fixed invalid driver proxy for Qinheng CH34x chips on Android 2022-12-15 17:14:09 +01:00
Mark Qvist
d5e0a461cf Fixed invalid check for None 2022-11-25 00:42:22 +01:00
Mark Qvist
f692e81b8e Fixed AutoInterface roaming on Android devices that rotate Ethernet/WiFi MAC addresses on reconnect 2022-11-24 17:19:01 +01:00
Mark Qvist
680d17fb98 Improved startup time for instances and programs connected to a shared instance 2022-11-24 13:28:22 +01:00
Mark Qvist
ab301cdb79 Updated version 2022-11-24 10:45:45 +01:00
Mark Qvist
cecb4b3acb Fixed buffered input stream reader not working on Android API levels < 30 2022-11-23 20:39:49 +01:00
Mark Qvist
de53a105a4 Improved time pretty-print function 2022-11-23 17:15:46 +01:00
Mark Qvist
f22504d080 Improved I2P recovery time on unresponsive tunnels 2022-11-03 22:47:08 +01:00
Mark Qvist
f22e5cc200 Fixed socket references. Closes #146. 2022-11-03 19:51:04 +01:00
Mark Qvist
36906f6567 Updated version 2022-11-03 18:05:13 +01:00
Mark Qvist
88b88b9b64 Fixed missing check for socket state 2022-11-03 18:03:00 +01:00
Mark Qvist
76fcad0b53 Added better I2P state visibility to rnstatus util 2022-11-03 17:49:25 +01:00
Mark Qvist
01e520b082 Adjusted I2P interface timings 2022-11-03 16:30:07 +01:00
Mark Qvist
1d2a0fe4c8 Improved I2P tunnel state detection. Fixed missing IFAC init on spawned I2P interfaces. 2022-11-03 15:22:34 +01:00
Mark Qvist
0f19ced9d3 Fixed missing IFAC identity init on spawned TCP clients. Closes #137. 2022-11-03 14:16:00 +01:00
Mark Qvist
81ec701240 Updated version 2022-11-03 12:05:10 +01:00
Mark Qvist
5f7e37187f Fixed local firmware cache location for rnodeconf 2022-11-03 12:03:26 +01:00
Mark Qvist
b9d73518dd Improved rnodeconf firmware install 2022-11-03 00:42:46 +01:00
Mark Qvist
36052e2c61 Updated version 2022-11-02 22:34:52 +01:00
Mark Qvist
06d232f889 Added Bluetooth control interface for RNode interfaces on Android 2022-11-02 22:34:07 +01:00
Mark Qvist
f9b3c749e0 Improved cleanup on device disconnect 2022-11-02 20:44:09 +01:00
Mark Qvist
63a59753af Implemented Bluetooth support for RNode interfaces on Android. Added Bluetooth/USB multiplexing and Bluetooth manager to interface. 2022-11-02 20:43:46 +01:00
Mark Qvist
20696e7827 Bluetooth support for RNode interfaces on Linux (via standard rfcomm driver) 2022-11-02 20:42:45 +01:00
Mark Qvist
fee9473cac Improved rnodeconf timings 2022-11-02 01:23:23 +01:00
Mark Qvist
9bc5d91106 Added rnodeconf to package 2022-11-01 22:40:09 +01:00
Mark Qvist
45ae66e9bf Updated bluetooth control commands for RNode interface 2022-11-01 20:27:41 +01:00
Mark Qvist
47db2a3bd5 Added log output control options 2022-11-01 20:26:55 +01:00
Mark Qvist
40cd961eab Added better teardown handling on RNodeInterfaces 2022-10-30 23:13:44 +01:00
Mark Qvist
34cdd4bf0f Improved RNode error reporting and teardown 2022-10-29 16:41:47 +02:00
Mark Qvist
b0ef58e5ca Added support for writing to display framebuffer of connected RNodes 2022-10-29 14:28:53 +02:00
Mark Qvist
b6020b5ea8 Updated version 2022-10-29 14:28:06 +02:00
Mark Qvist
886b0ac0ca Fixed Android interfaces import 2022-10-22 01:38:38 +02:00
Mark Qvist
ed4070a3d1 Removed stray import. Fixes #125. 2022-10-22 01:05:08 +02:00
Mark Qvist
b479e14ca5 Improved handling of Android interfaces in apps without hardware access 2022-10-20 20:10:50 +02:00
Mark Qvist
81fc920bdf Fixed AutoInterface peering hashes on WiFi devices that employ MAC address randomisation on reconnects and roaming 2022-10-19 11:57:09 +02:00
Mark Qvist
5b1b18e84a Fixed incorrect behaviour in announce processing for instance-local destinations to roaming- or boundary-mode interfaces 2022-10-18 18:24:29 +02:00
Mark Qvist
9c8c143c62 Added logging to announce processing 2022-10-18 17:44:14 +02:00
Mark Qvist
db9858d75f Cleanup 2022-10-16 00:11:40 +02:00
Mark Qvist
874405cbdd Fixed missing announce cap on hotplugged interfaces 2022-10-15 23:14:47 +02:00
Mark Qvist
2a3f2b8bdc Updated version 2022-10-15 14:57:57 +02:00
Mark Qvist
9aae06c694 Added Android-specific KISS interface 2022-10-15 14:57:16 +02:00
Mark Qvist
70ffc38c49 Android-specific import 2022-10-15 14:56:23 +02:00
Mark Qvist
73071b0755 Cleanup 2022-10-15 14:41:12 +02:00
Mark Qvist
ab697dc583 Android-specific import 2022-10-15 11:39:23 +02:00
Mark Qvist
ecc78fa45f Added Android serial interface 2022-10-15 11:36:18 +02:00
Mark Qvist
e5309caf48 Added Android serial interface 2022-10-15 11:33:48 +02:00
Mark Qvist
094d2f2079 Cleanup 2022-10-15 11:31:34 +02:00
Mark Qvist
5111c32854 Fixed help text 2022-10-13 23:10:38 +02:00
Mark Qvist
60773ceb16 Return public identity for registered destinations in Identity.recall() 2022-10-13 20:43:38 +02:00
Mark Qvist
5d6c3dd891 Cleanup 2022-10-12 18:56:30 +02:00
Mark Qvist
a564dd2b2d Cleanup 2022-10-12 18:06:21 +02:00
Mark Qvist
16cf1ab1ba Fix debug output 2022-10-12 16:08:48 +02:00
Mark Qvist
47e326c8a9 Import Android-specific RNode interface on Android 2022-10-12 16:08:29 +02:00
Mark Qvist
9a7585cbef Added platform detect function 2022-10-12 16:07:53 +02:00
Mark Qvist
902f7af64d Added platform check 2022-10-12 15:14:42 +02:00
Mark Qvist
004bf27526 Added Android-specific RNode interface. Contains debug code. Not ready yet. Hang in there. 2022-10-12 15:11:02 +02:00
Mark Qvist
9cad90266e Reverted RNode interface to exclude Android-specific logic 2022-10-12 15:00:21 +02:00
Mark Qvist
e9de01e10e Added property default 2022-10-12 14:58:00 +02:00
Mark Qvist
372bedcd85 Added support for RNode interfaces on Android 2022-10-11 14:06:42 +02:00
Mark Qvist
d3525943c2 Updated version 2022-10-06 23:16:01 +02:00
Mark Qvist
cb55189e5c Truncate name_hash to 80 bits. Take all array slices from Identity.NAME_HASH_LENGTH constant. 2022-10-06 23:14:32 +02:00
Mark Qvist
89d8342ce5 Improved logging. Reject mismatching keys on hash collision. 2022-10-04 22:42:59 +02:00
Mark Qvist
c18997bf5b Cleanup 2022-10-04 22:41:58 +02:00
Mark Qvist
1e4dd9d6f0 Added note 2022-10-04 22:40:43 +02:00
Mark Qvist
7997fd104e Fix destination hash construction and random blob extraction 2022-10-04 09:11:20 +02:00
Mark Qvist
7744c4ffe6 Updated version 2022-10-04 07:00:13 +02:00
Mark Qvist
8a61d2c8d5 Fixed missing validation in announce processing 2022-10-04 06:59:33 +02:00
Mark Qvist
b085127d6e Fixed config dir path 2022-09-30 20:41:11 +02:00
Mark Qvist
76fb73f46c Updated configuration path defaults 2022-09-30 20:37:46 +02:00
Mark Qvist
c18806c912 Updated deprecated threading API call and updated docs 2022-09-30 19:02:41 +02:00
Mark Qvist
2abd8a1aae Updated docs and manual 2022-09-30 11:26:51 +02:00
Mark Qvist
7940ac0812 Updated docs and manual 2022-09-30 11:15:34 +02:00
Mark Qvist
8886ed5794 Fixed missing destination-side ephemeral key generation in link establishment 2022-09-29 22:47:10 +02:00
Mark Qvist
32ee4216fd Changed log levels 2022-09-24 12:23:59 +02:00
Mark Qvist
571ad2c8fb Added initial connection timeout option to TCPClientInterface 2022-09-15 15:35:28 +02:00
Mark Qvist
18f450c58b Periodically try to connect RNodes that were unavailable at startup. Closes #87. 2022-09-14 17:43:07 +02:00
Mark Qvist
b3d85b583f Place config in .config dir by default 2022-09-14 16:21:34 +02:00
Mark Qvist
03695565ba Added rnsd warning on start as client 2022-09-14 00:13:20 +02:00
Mark Qvist
3e380a8fc7 Fixed rendering in rnpath utility 2022-09-14 00:07:23 +02:00
Mark Qvist
921987c999 Added table persist on local client disconnect 2022-09-13 22:32:00 +02:00
Mark Qvist
75e32af1c5 Added periodic data persistence for shared and standalone instances 2022-09-13 20:17:25 +02:00
Mark Qvist
9775893840 Improved known destination saving 2022-09-06 19:43:46 +02:00
Mark Qvist
4042dd6ef7 Added locking and timeouts to table saving routines 2022-09-06 18:05:02 +02:00
Mark Qvist
af538e0489 Improved shutdown handling and table saving 2022-09-06 17:42:13 +02:00
Mark Qvist
c55e1e9628 Version bump 2022-09-06 12:24:46 +02:00
Mark Qvist
be02586133 Added detach handler to TCP Server Interface 2022-09-06 12:23:52 +02:00
Mark Qvist
383f96d82a Updated version 2022-07-09 15:46:42 +02:00
Mark Qvist
ebef2da7a8 Fixed incorrect allocation size in resource advertisements after switching to 128-bit address space 2022-07-09 15:46:19 +02:00
Mark Qvist
eae788957a Updated version 2022-07-08 12:01:13 +02:00
Mark Qvist
045a9d8451 Fixed a race condition in link establishment flow 2022-07-08 11:14:35 +02:00
Mark Qvist
3d979e2d65 Added Android compatibility to AES proxy class 2022-07-08 00:22:30 +02:00
Mark Qvist
5158613501 Fixed missing config section check 2022-07-08 00:21:48 +02:00
Mark Qvist
8cff18f8ce Improved cache handling 2022-07-02 15:15:47 +02:00
Mark Qvist
5e072affe4 Changed job timing 2022-07-02 13:34:17 +02:00
Mark Qvist
fc4c7638a6 Added cache job scheduler 2022-07-02 13:24:07 +02:00
Mark Qvist
532f9ee665 Added cache cleaning 2022-07-02 13:12:54 +02:00
Mark Qvist
4a725de935 Improved rnx interactive mode 2022-07-02 10:38:35 +02:00
Mark Qvist
2335a71427 Fixed --no-auth option in rncp 2022-07-02 09:48:15 +02:00
Mark Qvist
3e70dd6134 Fixed --no-auth option in rncp 2022-07-02 09:33:05 +02:00
Mark Qvist
d33154bfdb Cleanup 2022-07-02 08:45:40 +02:00
Mark Qvist
bc39a1acf1 Fixed static size index 2022-07-01 21:16:01 +02:00
Mark Qvist
40560a31f2 Version updated 2022-07-01 10:27:31 +02:00
Mark Qvist
2e19304ebf Fixed static length calculation in proof destination generation 2022-06-30 19:33:35 +02:00
Mark Qvist
1cd7c85a52 Cleanup 2022-06-30 19:32:47 +02:00
Mark Qvist
171f43f4e3 Cleanup 2022-06-30 19:32:29 +02:00
Mark Qvist
09a1088437 Added description about Fernet modifications 2022-06-30 19:32:08 +02:00
Mark Qvist
e19438fdcc Added license headers 2022-06-30 19:10:51 +02:00
Mark Qvist
5faf13d505 Expanded address space to 128 bits 2022-06-30 14:02:57 +02:00
Mark Qvist
aa255d0713 Tuned I2PInterface socket timeouts 2022-06-13 15:45:53 +02:00
Mark Qvist
5a8152c589 Fixed I2PInterface status not being set on connectable interfaces 2022-06-12 21:34:54 +02:00
Mark Qvist
8a24dbae40 Added filter option to rnstatus utility 2022-06-12 19:08:47 +02:00
Mark Qvist
2166294a7a Optimised resource transfer speed on faster links 2022-06-12 18:56:49 +02:00
Mark Qvist
8042f5eaa1 Improved log output 2022-06-12 18:55:06 +02:00
Mark Qvist
ae8fcb88d8 Resource timeout tuning 2022-06-12 13:28:05 +02:00
Mark Qvist
d7a444556a Tuned TCP socket options 2022-06-12 11:50:09 +02:00
Mark Qvist
3c81f93d4a Added link accept option to API 2022-06-12 11:49:24 +02:00
Mark Qvist
2685e043ea Fixed missing check for zero-length packets on IFAC-enabled interfaces. Fixes #65. 2022-06-11 18:52:33 +02:00
Mark Qvist
d39c1893e7 Cleanup 2022-06-11 14:11:58 +02:00
Mark Qvist
548cbd50d8 Improved I2PInterface error handling and stability 2022-06-11 13:52:56 +02:00
Mark Qvist
6b06875c42 Fixed potential undefined variable 2022-06-11 13:42:08 +02:00
Mark Qvist
d7262c7cbe Fixed socket leak in I2PInterface 2022-06-11 11:27:01 +02:00
Mark Qvist
8451bbe7e6 Tuned resource window 2022-06-10 18:17:48 +02:00
Mark Qvist
1ac7238347 Cleanup 2022-06-10 17:05:00 +02:00
Mark Qvist
68cd79768b Added internal python-only AES-128-CBC implementation 2022-06-09 21:13:34 +02:00
Mark Qvist
2c1b3a0e5b Optimised resource performance over varied network topologies 2022-06-09 19:29:33 +02:00
Mark Qvist
02968baa76 Added establishment cost property to Link 2022-06-09 19:28:31 +02:00
Mark Qvist
513a82e363 Updated link test 2022-06-09 17:14:43 +02:00
Mark Qvist
be6910e4e0 Work on Resource optimisation 2022-06-09 17:00:27 +02:00
Mark Qvist
0a8b755230 Transport optimisations 2022-06-09 16:54:47 +02:00
Mark Qvist
d334613888 Removed delay 2022-06-09 16:48:31 +02:00
Mark Qvist
14bdcaf770 Added size print function 2022-06-09 14:46:36 +02:00
Mark Qvist
592c405067 Cleanup 2022-06-09 14:46:02 +02:00
Mark Qvist
648e9a68b8 Added profiling info to LocalInterface 2022-06-09 14:45:00 +02:00
Mark Qvist
26dae3830e Fixed unclosed socket in AutoInterface 2022-06-09 08:48:55 +02:00
Mark Qvist
7916b8e7f4 Automatic switch to internal backend on missing PyCA module 2022-06-08 21:25:46 +02:00
Mark Qvist
c46b98f163 Added python-only fallback for SHA-256 and SHA-512 2022-06-08 21:03:58 +02:00