From ef4d0bcdcd401e3199ff93308b0b751d681cbbdd Mon Sep 17 00:00:00 2001 From: Jeff Hill Date: Thu, 21 Mar 2002 22:18:49 +0000 Subject: [PATCH] added sockAddrAreIdentical --- src/libCom/osi/osiSock.c | 27 +++++++++++++++++++++++++++ src/libCom/osi/osiSock.h | 7 +++++++ 2 files changed, 34 insertions(+) diff --git a/src/libCom/osi/osiSock.c b/src/libCom/osi/osiSock.c index 5dbb85d13..58941f357 100644 --- a/src/libCom/osi/osiSock.c +++ b/src/libCom/osi/osiSock.c @@ -46,6 +46,33 @@ #define makeMask(NBITS) ( ( 1u << ( (unsigned) NBITS) ) - 1u ) +/* + * sockAddrAreIdentical() + * (returns true if addresses are identical) + */ +int epicsShareAPI sockAddrAreIdentical + ( const osiSockAddr *plhs, const osiSockAddr *prhs ) +{ + int match; + + if ( plhs->sa.sa_family != prhs->sa.sa_family ) { + match = 0; + } + else if ( plhs->sa.sa_family != AF_INET ) { + match = 0; + } + else if ( plhs->ia.sin_addr.s_addr != prhs->ia.sin_addr.s_addr ) { + match = 0; + } + else if ( plhs->ia.sin_port != prhs->ia.sin_port ) { + match = 0; + } + else { + match = 1; + } + return match; +} + /* * sockAddrToA() * (convert socket address to ASCII host name) diff --git a/src/libCom/osi/osiSock.h b/src/libCom/osi/osiSock.h index 10b18a52a..4de6f4902 100644 --- a/src/libCom/osi/osiSock.h +++ b/src/libCom/osi/osiSock.h @@ -135,6 +135,13 @@ typedef struct osiSockAddrNode { osiSockAddr addr; } osiSockAddrNode; +/* + * sockAddrAreIdentical() + * (returns true if addresses are identical) + */ +epicsShareFunc int epicsShareAPI sockAddrAreIdentical + ( const osiSockAddr * plhs, const osiSockAddr * prhs ); + /* * osiSockDiscoverBroadcastAddresses () * Returns the broadcast addresses of each network interface found.