Mark Qvist
64bdc4c18c
Fix import paths
2023-05-05 10:25:15 +02:00
Mark Qvist
5e5d89cc92
Removed dependency on netifaces.
2023-05-04 23:19:43 +02:00
Mark Qvist
a3bee4baa9
Removed netifaces dependency from AutoInterface
2023-05-04 17:55:58 +02:00
Mark Qvist
fab83ec399
Restructured library
2023-05-04 17:55:38 +02:00
Mark Qvist
b740e36985
Added ifaddr module
2023-05-04 17:46:56 +02:00
Mark Qvist
53b325d34d
Added support for T3 v1.0 to rnodeconf
2023-05-03 15:56:19 +02:00
Mark Qvist
d31cf6e297
Added ability to configure RNode display intensity
2023-05-03 14:26:47 +02:00
Mark Qvist
e386a5d08b
Use native Python unzip for updates
2023-05-03 12:57:38 +02:00
Mark Qvist
d467ed9ece
Merge branch 'master' of github.com:markqvist/Reticulum
2023-05-03 12:27:10 +02:00
Mark Qvist
892a467d74
Update version
2023-05-03 12:26:48 +02:00
markqvist
4366e71f34
Merge pull request #272 from VioletEternity/windows
...
Improve Windows compatibility for rnodeconf
2023-05-03 12:26:36 +02:00
Mark Qvist
7e9998b4fd
Use included platform detection method
2023-05-03 12:21:57 +02:00
markqvist
79abe93139
Merge pull request #278 from VioletEternity/windows-so_reuseaddr
...
Use SO_EXCLUSIVEADDRUSE instead of SO_REUSEADDR on Windows
2023-05-03 12:18:49 +02:00
Mark Qvist
d69d4b3920
Fixed firmware extraction for unverifiable devices. Fixes #266 .
2023-05-02 18:10:04 +02:00
Mark Qvist
3300541181
Fixed invalid error code in conditional. Fixes #284 .
2023-05-02 17:45:30 +02:00
Mark Qvist
3848059f19
Only use ifname for link-local discovery scopes. Fixes #283 .
2023-05-02 17:39:06 +02:00
Mark Qvist
30021d89cb
Fixed header bits in get_packed_flags(). Fixes #275 .
2023-05-02 17:33:38 +02:00
Mark Qvist
29019724bd
Added verbosity argument to Reticulum instantiation. Fixes #238 .
2023-05-02 16:42:04 +02:00
Maya
ba7838c04e
Use SO_EXCLUSIVEADDRUSE instead of SO_REUSEADDR on Windows.
...
On Linux, SO_REUSEADDR is used so that a socket in TIME-WAIT state can
be rebound after a listening process is restarted. It does not allow two
processes to listen on the exact same (addr, port) combination. However,
on Windows, it does, and SO_EXCLUSIVEADDRUSE is required to reproduce
the Linux behavior.
Reticulum relies on an error being returned by bind() that reuses
the same (addr, port) combination as another process to detect whether
there is a shared instance already running. Setting SO_EXCLUSIVEADDRUSE
makes this detection process work on Windows as well.
2023-04-19 03:03:15 +01:00
Maya
af16c68e47
Make esptool.py invocation compatible with Windows.
2023-04-13 18:17:14 +01:00
Maya
bda5717051
Use standard Python zipfile module to decompress firmware
2023-04-13 18:10:21 +01:00
Mark Qvist
fac4973329
Fixed potential race condition in announce queue handling for AutoInterface
2023-03-09 18:32:14 +01:00
Mark Qvist
159c7a9a52
Fixed rnstatus JSON output error
2023-03-08 14:10:33 +01:00
Mark Qvist
226004da94
Ignore lo0 in all cases. Fixes #237 .
2023-03-07 16:43:10 +01:00
Aaron Heise
9c9f0a20f9
Handle sequence overflow when checking incoming message
2023-03-04 23:54:07 -06:00
Aaron Heise
6d9d410a70
Address multiple issues with Buffer and Channel
...
- StreamDataMessage now packed by struct rather than umsgpack for a more predictable size
- Added protected variable on LocalInterface to allow tests to simulate a low bandwidth connection
- Retry timer now has exponential backoff and a more sane starting value
- Link proves packet _before_ sending contents to Channel; this should help prevent spurious retries especially on half-duplex links
- Prevent Transport packet filter from filtering out duplicate packets for Channel; handle duplicates in Channel to ensure the packet is reproven (in case the original proof packet was lost)
- Fix up other tests broken by these changes
2023-03-04 23:37:58 -06:00
Mark Qvist
d8f3ad8d3f
Temporarily disabled extra-level log statement
2023-03-04 19:30:47 +01:00
Mark Qvist
a1b75b9746
Increased per-hop timeout
2023-03-04 19:30:23 +01:00
Mark Qvist
80f3bfaece
Adjusted StreamDataMessage overhead calculation
2023-03-04 19:06:47 +01:00
Mark Qvist
37b2d8a6ec
Fixed Link MDU output in phyparams()
2023-03-04 18:37:28 +01:00
Mark Qvist
777fea9cea
Differentiate exception between link establishment callback, and internal RTT packet handling
2023-03-04 18:32:36 +01:00
Mark Qvist
bbfdd37935
Added check for link state before sending
2023-03-04 18:31:07 +01:00
Mark Qvist
28e6302b3d
Updated versions
2023-03-04 17:56:30 +01:00
Aaron Heise
aac2b9f987
Buffer: send and receive binary data over Channel
...
(also some minor fixes in channel)
2023-03-02 17:17:18 -06:00
markqvist
a6551fc019
Merge pull request #246 from gdt/fix-transmit-hash
...
AutoInterface: Drop embedded scope identifier on fe80::
2023-03-02 11:34:00 +01:00
markqvist
a06ae40797
Merge pull request #236 from faragher/master
...
Additional error messages for offline flashing.
2023-03-02 11:31:31 +01:00
markqvist
1db08438df
Merge pull request #248 from Erethon/hkdf-remove-dead-code
...
hkdf: Remove duplicate check if the salt is None
2023-03-02 11:29:18 +01:00
Dionysis Grigoropoulos
ddb7a92c15
hkdf: Remove duplicate check if the salt is None
...
The second if isn't needed since we initialize the salt with zeroes
earlier. If instead we meant to pass an empty bytes class to the HMAC
implementation, the end result would be the same, since it's gonna get
padded with zeroes in the HMAC code.
2023-03-01 16:22:51 +02:00
Greg Troxel
e273900e87
AutoInterface: Drop embedded scope identifier on fe80::
...
The code previously dropped scope identifiers expressed as a trailing
"%ifname", which happens on macOS. On NetBSD and OpenBSD (and likely
FreeBSD, not tested), the scope identifier is embedded. Drop that
form of identifier as well, because we keep address and ifname
separate, and because the scope identifier must not be part of
computing the hash of the address.
Resolves #240 , failure to peer on NetBSD and OpenBSD.
2023-02-28 10:19:46 -05:00
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
Mark Qvist
86061f9f47
Cleanup
2022-06-08 19:47:51 +02:00
Mark Qvist
e0b795b4d0
Added internal python-only implementation of Ed25519
2022-06-08 19:47:09 +02:00
Mark Qvist
34efbc6100
Cleanup
2022-06-08 17:05:15 +02:00
Mark Qvist
94edc8eff3
Implemented proxies to pyca X25519
2022-06-08 17:03:40 +02:00
Mark Qvist
e2aeb56c12
Renamed file
2022-06-08 15:54:48 +02:00
Mark Qvist
9a4325ce8e
Constant time X25519 exchange
2022-06-08 15:52:37 +02:00
Mark Qvist
06fffe5a94
Use internal implementation for X25519 key exchanges
2022-06-08 13:36:23 +02:00
Mark Qvist
7a596882a8
Cleanup
2022-06-08 12:52:42 +02:00
Mark Qvist
76f86f782a
Moved Destination Fernet to internal implementation
2022-06-08 12:37:24 +02:00
Mark Qvist
4bd5f05e0e
Moved Link Fernet to internal implementation
2022-06-08 12:34:31 +02:00
Mark Qvist
5d3a0efc89
Moved Identity Fernet to internal implementation
2022-06-08 12:29:51 +02:00
Mark Qvist
d1a461a2b3
Added multi-backend abstraction for AES-128 CBC primitive
2022-06-08 12:21:50 +02:00
Mark Qvist
0b1e7df31a
Added internal Fernet implementation
2022-06-07 17:38:57 +02:00
Mark Qvist
301661c29e
Set SHA-256 as default hash for HMAC
2022-06-07 17:33:08 +02:00
Mark Qvist
b2b6708e8f
Added python-only implementation of PKCS7 padding
2022-06-07 17:32:22 +02:00
Mark Qvist
19a033db96
Freed RNS from dependency on PyCA HMAC, HKDF and hashes
2022-06-07 15:48:23 +02:00
Mark Qvist
5bb510b589
Added internal python-only HKDF
2022-06-07 15:26:45 +02:00
Mark Qvist
f1dcda82ac
Added internal python-only HMAC implementation
2022-06-07 15:25:41 +02:00
Mark Qvist
d24f3a490a
Added internal abstraction to SHA-256
2022-06-07 15:21:19 +02:00
Mark Qvist
715a84c6f2
Moved hashing to native python3 hashlib
2022-06-07 12:51:41 +02:00
Mark Qvist
379e56b2ce
Socket option check for OpenWRT compatibility
2022-06-07 12:40:50 +02:00
Mark Qvist
c6df6293b2
Added hardware MTU parameter to interfaces
2022-05-29 15:43:50 +02:00
Mark Qvist
9e20ba2dac
Implemented I2PInterface recovery on I2P router restart
2022-05-28 02:24:01 +02:00
Mark Qvist
49ed335e19
Cleanup
2022-05-26 16:52:28 +02:00
Mark Qvist
33fac728f8
Improved link stale process and timeout calculations
2022-05-26 16:49:02 +02:00
Mark Qvist
49616a36cf
Fixed I2P controller startup when event loop is not immediately ready
2022-05-26 09:54:56 +02:00
Mark Qvist
1e77f85cd4
Fixed rnx version output
2022-05-26 00:03:37 +02:00
Mark Qvist
9e316ab989
Fixed deprecated options in asyncio API for Python 3.10. Fixes #58 .
2022-05-25 23:11:01 +02:00
Mark Qvist
94749e0dde
Updated default configs
2022-05-25 23:10:05 +02:00
Mark Qvist
a6dbc53209
Improved status display for I2P interfaces
2022-05-25 21:44:49 +02:00
Mark Qvist
3af5a8f3ed
Improved I2P server tunnel error handling. Fixes #13 .
2022-05-25 21:23:52 +02:00
Mark Qvist
fb5172ff10
Improved I2P client tunnel error handling
2022-05-25 20:18:06 +02:00
Mark Qvist
d3ab0878e0
Improved I2P interface display in rnstatus
2022-05-25 15:50:54 +02:00
Mark Qvist
7848b7e396
Fixed invalid reference in rnx
2022-05-25 15:08:45 +02:00
Mark Qvist
fc80dd2614
Improved rnstatus output
2022-05-25 14:21:04 +02:00
Mark Qvist
417ac9f8da
Added rnx remote command utility
2022-05-24 20:14:43 +02:00
Mark Qvist
fe5e74bc2b
Improved rncp arguments
2022-05-24 20:13:54 +02:00
Mark Qvist
30f71857ae
Added docstrings. Added request size to receipts. Fixed link stale time calculation on newly created links with no actual activity.
2022-05-24 20:13:11 +02:00
Mark Qvist
c24233845e
Implemented bandwidth cap for recursive path requests
2022-05-23 19:49:48 +02:00
Mark Qvist
c0fbde5ad1
Added recursive path request loop avoidance
2022-05-23 18:14:45 +02:00
Mark Qvist
5da66402dd
Fixed rncp output
2022-05-23 09:23:37 +02:00
Mark Qvist
3bf5694238
Fixed naming conflict in resource advertisements
2022-05-23 08:54:07 +02:00
Mark Qvist
9e6a5d5d91
Fix announce rate targets on I2PInterface peers
2022-05-23 00:28:06 +02:00
Mark Qvist
cf3e47f469
Fixed interface mode inheritance
2022-05-23 00:06:26 +02:00
Mark Qvist
f8db5a545d
Fixed interface mode check
2022-05-23 00:00:14 +02:00
Mark Qvist
a79f6e7efa
Added rncp utility
2022-05-22 23:44:32 +02:00
Mark Qvist
d1cb07356c
Fixed missing recursive progress callback allocation in segmented resource transfer
2022-05-22 21:05:07 +02:00
Mark Qvist
e811d54d0f
Fixed bug in conditional resource acceptance callback
2022-05-22 19:09:44 +02:00
Mark Qvist
49c8ada478
Added standard identity storage folder
2022-05-22 19:09:16 +02:00
Mark Qvist
0ace84367b
Improved link authentication callback
2022-05-22 19:08:03 +02:00
Mark Qvist
e63e6821e0
Updated Destination docstrings
2022-05-22 17:11:30 +02:00
Mark Qvist
109132e09d
Fixed expired AP and roaming paths not being removed at correct time.
2022-05-22 15:43:46 +02:00
Mark Qvist
44ba5624bc
Added gateway mode to rnstatus
2022-05-22 15:16:58 +02:00
Mark Qvist
e9c5e3c189
Version bump
2022-05-22 14:29:29 +02:00
Mark Qvist
f3ff71d9b8
Implemented unknown path discovery
2022-05-22 14:18:58 +02:00
Mark Qvist
81b92ffdc1
Added gateway interface mode
2022-05-22 11:14:33 +02:00
Mark Qvist
ecc9e84bc2
Fixed typo
2022-05-18 00:47:29 +02:00
Mark Qvist
2b43436f56
Updated manual and documentation
2022-05-17 22:12:21 +02:00
Mark Qvist
b2d61843d0
Improved log output
2022-05-17 13:25:42 +02:00
Mark Qvist
d66c31b4e9
Added announce rate information to rnpath utility, added exit codes and improved table lookup.
2022-05-14 22:14:38 +02:00
Mark Qvist
e825b0b8ff
Added Pipe Interface
2022-05-14 20:19:46 +02:00
Mark Qvist
3871d8615e
Added per-interface announce rate control
2022-05-14 18:09:38 +02:00
Mark Qvist
8636259886
Added roaming and boundary interface modes
2022-05-13 21:03:51 +02:00
Mark Qvist
af1a05ff6a
Added announce queue dropping to rnpath utility
2022-05-13 16:18:13 +02:00
Mark Qvist
1b50f5267a
Improved announce queue processing
2022-05-13 15:45:09 +02:00
Mark Qvist
600bd0e64d
Updated documentation
2022-04-28 14:17:12 +02:00
Mark Qvist
123fd1de92
Configure IFAC size in bits
2022-04-28 11:51:04 +02:00
Mark Qvist
b8ca89c2b6
Cleanup
2022-04-28 10:58:26 +02:00
Mark Qvist
79725a1637
Cleanup
2022-04-28 10:56:19 +02:00
Mark Qvist
1a2da0d7c7
Drop IFAC packets on non-IFAC interfaces
2022-04-28 10:38:34 +02:00
Mark Qvist
5d90ea565a
Implemented interface authentication and virtual network segmentation
2022-04-27 19:00:09 +02:00
Mark Qvist
b701cdd07f
Generalised transport transmit handler
2022-04-27 13:50:56 +02:00
Mark Qvist
8e5b3b4e83
Cleanup
2022-04-27 13:31:44 +02:00
Mark Qvist
24b7cb777f
Cleanup
2022-04-27 13:31:07 +02:00
Mark Qvist
cf1ca01a3b
Configuration support for interface access codes
2022-04-27 13:21:53 +02:00
Mark Qvist
7c70f9d865
Set IFAC parameters on spawned interfaces
2022-04-27 13:20:46 +02:00
Mark Qvist
6cf9288b11
Improved AutoInterface peering timeout
2022-04-27 13:19:48 +02:00
Mark Qvist
ecffa1a7eb
Cleanup
2022-04-20 20:28:14 +02:00
Mark Qvist
9fef53d083
Updated propagation timing
2022-04-20 20:06:44 +02:00
Mark Qvist
0db64610b1
Added reverse path detection
2022-04-20 19:29:25 +02:00
Mark Qvist
4af14a712c
Added timeout to rnpath utility
2022-04-20 13:40:07 +02:00
Mark Qvist
402b5fc461
Random hash length from truncated hash length
2022-04-20 13:08:21 +02:00
Mark Qvist
38aeb1ab3b
Improved logging
2022-04-20 12:58:00 +02:00
Mark Qvist
b0a21b3aa9
Improved logging
2022-04-20 12:56:43 +02:00
Mark Qvist
5e6a1add6b
Improved logging and rnpath output
2022-04-20 11:22:52 +02:00
Mark Qvist
104b186047
Added drop path ability to rnpath utility
2022-04-20 11:12:21 +02:00
Mark Qvist
6d23da360d
Added path table output to rnpath utility
2022-04-20 10:40:51 +02:00
Mark Qvist
1be00a5c41
Improved announce logging
2022-04-20 10:08:55 +02:00
Mark Qvist
71e5eef8c1
Improved announce logging
2022-04-20 10:08:30 +02:00
Mark Qvist
b3a439993d
Improved rnstatus output
2022-04-20 09:59:58 +02:00
Mark Qvist
5606b64317
Improved transport logging
2022-04-20 09:24:48 +02:00
Mark Qvist
3d38ef27d4
Improved announce logging
2022-04-20 09:04:12 +02:00
Mark Qvist
d53e8cf037
Bitrate guess on TCP and UDP interfaces
2022-04-18 18:09:31 +02:00
Mark Qvist
da297aeb64
Changed log level
2022-04-18 16:54:35 +02:00
Mark Qvist
282239fc57
Added interface announce queue stats to rnstatus
2022-04-18 16:41:38 +02:00
Mark Qvist
222437d851
Version bump
2022-04-18 16:26:08 +02:00
Mark Qvist
c9de260e00
Cleanup
2022-04-18 16:25:11 +02:00
Mark Qvist
31104c6e9c
Implemented bandwidth-based announce propagation calculation
2022-04-18 16:23:24 +02:00
Mark Qvist
64593e27be
Added announce cap setting
2022-04-17 20:14:20 +02:00
Mark Qvist
124ec006b4
Auto-set sensible interface rate defaults
2022-04-17 19:35:31 +02:00
Mark Qvist
dd55899775
Improved I2P interface display in rnstatus
2022-04-17 19:35:05 +02:00
Mark Qvist
cc0c01661d
Fixed a possible race condition in Transport startup when a local shared instance was restarted and client apps reconnect
2022-04-17 19:34:12 +02:00
Mark Qvist
5f36c8601f
Improved rnstatus utility display
2022-04-17 19:08:48 +02:00
Mark Qvist
2f71296816
Basic interface rate estimation
2022-04-17 19:07:32 +02:00
Mark Qvist
7923322d92
Linearized announce propagation delays for supporting up to 128 hops
2022-04-17 18:27:35 +02:00
Mark Qvist
fef5ed6bad
Cleanup
2022-04-17 17:37:27 +02:00
Mark Qvist
059b0743ef
Improved rnstatus util display
2022-04-17 17:30:39 +02:00
Mark Qvist
4d4d39651f
Improved rnstatus util display
2022-04-16 23:26:57 +02:00
Mark Qvist
6a1e6417bb
Updated logging
2022-04-16 16:44:10 +02:00
Mark Qvist
39f1258d0e
Added interface mode config shorthands
2022-04-16 16:42:59 +02:00
Mark Qvist
03d3478b5e
Added interface mode shorthand
2022-04-15 22:13:59 +02:00
Mark Qvist
ee90605b30
Tweaked decay constant
2022-04-07 19:00:07 +02:00
Mark Qvist
04540f6e48
Changed config description
2022-04-06 15:51:27 +02:00
Mark Qvist
dc6877927e
Updated license headers
2022-04-01 17:18:18 +02:00
Mark Qvist
7398e312fc
Updated version
2022-03-28 15:20:14 +02:00
Mark Qvist
3051b6897d
Updated filtering rules. Fixes #18 .
2022-03-15 14:55:47 +01:00
Mark Qvist
550dfd44cb
Improved cryptography API compatibility
2022-03-08 00:38:51 +01:00
Mark Qvist
95d3346da6
Fixed I2P interface missing attribute
2022-02-26 21:37:50 +01:00
Mark Qvist
d4aabc8b89
Added I2P base32 address output to rnstatus utility
2022-02-26 21:04:54 +01:00
Mark Qvist
cb023cde40
Fixed potential race condition in resource assembly
2022-02-26 18:27:11 +01:00
Mark Qvist
b8105e23ff
Fixed TCP interface mode reference
2022-02-25 22:10:55 +01:00
Mark Qvist
4dfa62833c
Restructured default config
2022-02-25 21:48:25 +01:00
Mark Qvist
15d027e11e
Restructured default config and added config example to rnsd
2022-02-25 21:41:24 +01:00
Mark Qvist
f8272793b4
Tuned AutoInterface timeouts
2022-02-25 20:29:47 +01:00
Mark Qvist
3a215be859
Interface mode defaults
2022-02-25 18:56:09 +01:00
Mark Qvist
0e1279d012
Added Access Point interface mode
2022-02-25 18:47:55 +01:00
Mark Qvist
8ec356a28e
Interface outbound option enabled by default
2022-02-25 13:31:52 +01:00
Mark Qvist
49d7808835
i2plib license
2022-02-24 01:45:42 +01:00
Mark Qvist
48184134e4
Improved I2P Interface
2022-02-24 01:30:10 +01:00
Mark Qvist
987ff0658b
Version bump
2022-02-23 22:53:16 +01:00
Mark Qvist
27dea7c524
Implemented I2PInterface
2022-02-23 22:43:08 +01:00
Mark Qvist
9c6fd132d4
Work on I2P Interface
2022-02-23 22:15:06 +01:00
Mark Qvist
8d58bb62ab
Work on I2P Interface
2022-02-23 21:47:30 +01:00
Mark Qvist
c357f7a94e
Work on I2P Interface
2022-02-23 21:39:29 +01:00
Mark Qvist
4b3ead3db2
Work on I2P Interface
2022-02-23 21:29:18 +01:00
Mark Qvist
b62e9af5d4
Work on I2P Interface
2022-02-23 21:19:43 +01:00
Mark Qvist
fa82989a2e
Preliminary I2P Interface support
2022-02-23 17:40:31 +01:00
Mark Qvist
257bd95da8
AutoInterface carrier loss detection
2022-02-22 20:16:02 +01:00
Mark Qvist
1ccfa9079c
Work on AutoInterface recovery on WiFi carrier loss
2022-02-22 14:49:43 +01:00
Mark Qvist
57226201ff
Fixed I2P tunneled config keyword
2022-02-22 14:45:36 +01:00
Mark Qvist
d9419cd895
Merge branch 'master' of github.com:markqvist/Reticulum
2022-02-22 14:43:19 +01:00
Mark Qvist
aae10ede72
Work on AutoInterface recovery on WiFi carrier loss
2022-02-22 14:43:14 +01:00
Mark Qvist
3f53c89d32
Added I2P-tunneled mode to TCP interfaces
2022-01-31 23:31:29 +01:00
Mark Qvist
b403441074
Version updated
2022-01-27 23:30:44 +01:00
Mark Qvist
d3a23e3b00
RNodeInterface firmware version check
2022-01-22 22:46:47 +01:00
markqvist
329d83587e
Merge pull request #10 from 4c3e/4c3e-osx-nameerror-fix
...
OSX NameError fix
2022-01-22 21:39:01 +01:00
Mark Qvist
0a4dd64434
Improved support for ESP32-based RNodes
2022-01-22 21:36:49 +01:00
4c3e
b96cbf1014
OSX NameError fix
...
Had the following error when trying to run Reticulum on OSX High Sierra:
line 115, in set_timeouts_osx
sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
NameError: name 'sock' is not defined
This fix resolved the problem for me.
2022-01-21 01:34:55 +00:00
Mark Qvist
f3d04ba90f
Improved AutoInterface handling on Android
2022-01-12 12:12:04 +01:00
Mark Qvist
1d2564cedb
Interface import on Android
2022-01-12 12:02:00 +01:00
Mark Qvist
bec8473695
Better Android detection
2022-01-12 11:50:03 +01:00
Mark Qvist
25620415a0
Updated platform utils
2022-01-12 11:18:24 +01:00
Mark Qvist
b6df952995
Platform version check for Windows
2022-01-12 10:16:59 +01:00
Mark Qvist
a72aaf12ca
Platform version check for Windows
2022-01-12 10:07:44 +01:00
Mark Qvist
b978a993b2
Version update
2022-01-11 03:07:34 +01:00
Mark Qvist
5ae00264e8
Preliminaly ESP32 support for RNodeInterface
2022-01-11 03:07:03 +01:00
Mark Qvist
fdaa58a6fa
Improved malformed packet detection
2022-01-11 03:06:16 +01:00
Mark Qvist
4253175627
Cleanup
2021-12-11 20:10:31 +01:00
Mark Qvist
81158c27e4
Cleanup
2021-12-11 18:41:28 +01:00
Mark Qvist
eeb424ecee
Link request debug
2021-12-11 18:33:09 +01:00
Mark Qvist
0273328b23
Link proof debug
2021-12-11 18:19:51 +01:00