123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- /*
- * ZeroTier One - Network Virtualization Everywhere
- * Copyright (C) 2011-2017 ZeroTier, Inc. https://www.zerotier.com/
- */
- package com.zerotier.sdk;
- import java.net.InetSocketAddress;
- public interface PathChecker {
- /**
- * Callback to check whether a path should be used for ZeroTier traffic
- *
- * This function must return true if the path should be used.
- *
- * If no path check function is specified, ZeroTier will still exclude paths
- * that overlap with ZeroTier-assigned and managed IP address blocks. But the
- * use of a path check function is recommended to ensure that recursion does
- * not occur in cases where addresses are assigned by the OS or managed by
- * an out of band mechanism like DHCP. The path check function should examine
- * all configured ZeroTier interfaces and check to ensure that the supplied
- * addresses will not result in ZeroTier traffic being sent over a ZeroTier
- * interface (recursion).
- *
- * Obviously this is not required in configurations where this can't happen,
- * such as network containers or embedded.
- *
- * @param ztAddress ZeroTier address or 0 for none/any
- * @param localAddress Local interface address
- * @param remoteAddress remote address
- */
- boolean onPathCheck(long ztAddress, InetSocketAddress localAddress, InetSocketAddress remoteAddress);
- /**
- * Function to get physical addresses for ZeroTier peers
- *
- * If provided this function will be occasionally called to get physical
- * addresses that might be tried to reach a ZeroTier address.
- *
- * @param ztAddress ZeroTier address (least significant 40 bits)
- * @param ss_family desired address family or -1 for any
- * @return address and port of ztAddress or null
- */
- InetSocketAddress onPathLookup(long ztAddress, int ss_family);
- }
|