Sync fixes, hole punch address family filtering, ManifestPush blob fetch
Per-peer sync (People tab Sync button) now resets last_sync_ms to 0 so the responder sends ALL posts, not just posts newer than last sync. ManifestPush post discovery now fetches blobs alongside discovered posts while the connection is live, instead of waiting for the next prefetch cycle. Hole punch: filter_reachable_families() checks endpoint bound sockets and removes addresses the local endpoint can't reach (IPv4-only won't try IPv6). Applied to hole_punch_single, hole_punch_parallel, hole_punch_with_scanning. Relay introduce paths switched from is_publicly_routable to is_shareable_addr so LAN addresses (192.168.x.x) are included for same-WiFi hole punching. is_shareable_addr made pub(crate). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
9e87679c39
commit
1030dc21a7
3 changed files with 90 additions and 15 deletions
|
|
@ -63,7 +63,7 @@ fn is_public_ip(ip: IpAddr) -> bool {
|
|||
|
||||
/// Filter out addresses that are never useful to share (loopback, link-local, unspecified).
|
||||
/// Keeps LAN addresses (192.168.x, 10.x, 172.16-31.x) since peers might be on the same LAN.
|
||||
fn is_shareable_addr(addr: &SocketAddr) -> bool {
|
||||
pub(crate) fn is_shareable_addr(addr: &SocketAddr) -> bool {
|
||||
match addr.ip() {
|
||||
IpAddr::V4(v4) => !v4.is_loopback() && !v4.is_link_local() && !v4.is_unspecified(),
|
||||
IpAddr::V6(v6) => !v6.is_loopback() && !v6.is_unspecified(),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue