static void _setConnectLinkState(AthenaTransportLink *athenaTransportLink, _UDPLinkData *linkData) { athenaTransportLink_SetPrivateData(athenaTransportLink, linkData); // Register file descriptor to be polled. This must be set before adding the link (case ???). athenaTransportLink_SetEventFd(athenaTransportLink, linkData->fd); // Determine and flag the link cost for forwarding messages. // Messages without sufficient hop count collateral will be dropped. // Local links will always be allowed to be taken (i.e. localhost). bool isLocal = false; if (linkData->link.peerAddress.sin_addr.s_addr == linkData->link.myAddress.sin_addr.s_addr) { // a local connection isLocal = true; } athenaTransportLink_SetLocal(athenaTransportLink, isLocal); }
static void _setConnectLinkState(AthenaTransportLink *athenaTransportLink, _ETHLinkData *linkData) { athenaTransportLink_SetPrivateData(athenaTransportLink, linkData); // Register file descriptor to be polled. This must be set before adding the link (case ???). athenaTransportLink_SetEventFd(athenaTransportLink, athenaEthernet_GetDescriptor(linkData->athenaEthernet)); // Determine and flag the link cost for forwarding messages. // Messages without sufficient hop count collateral will be dropped. // Local links will always be allowed to be taken (i.e. localhost). bool isLocal = false; if (memcmp(&(linkData->link.peerAddress), &(linkData->link.myAddress), sizeof(struct ether_addr)) == 0) { // a local connection isLocal = true; } athenaTransportLink_SetLocal(athenaTransportLink, isLocal); }