Mark Qvist
a3bee4baa9
Removed netifaces dependency from AutoInterface
2023-05-04 17:55:58 +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
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
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
Mark Qvist
fac4973329
Fixed potential race condition in announce queue handling for AutoInterface
2023-03-09 18:32:14 +01:00
Mark Qvist
226004da94
Ignore lo0 in all cases. Fixes #237 .
2023-03-07 16:43:10 +01: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
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
Mark Qvist
c604214bb9
Improved RNode reconnection when serial device disappears
2023-02-18 13:31:22 +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
171457713b
Improved RNode hotplug over Bluetooth on Android
2022-12-20 15:17:46 +01:00
Mark Qvist
30d8e351dd
Updated version
2022-12-16 23:21:22 +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
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
cecb4b3acb
Fixed buffered input stream reader not working on Android API levels < 30
2022-11-23 20:39:49 +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
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
06d232f889
Added Bluetooth control interface for RNode interfaces on Android
2022-11-02 22:34:07 +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
45ae66e9bf
Updated bluetooth control commands for RNode interface
2022-11-01 20:27:41 +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
886b0ac0ca
Fixed Android interfaces import
2022-10-22 01:38:38 +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
9aae06c694
Added Android-specific KISS interface
2022-10-15 14:57:16 +02:00
Mark Qvist
73071b0755
Cleanup
2022-10-15 14:41:12 +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
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
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
c18806c912
Updated deprecated threading API call and updated docs
2022-09-30 19:02:41 +02:00