sock_cmp_addr.c

来自「《unix网络编程第二卷》中的源代码」· C语言 代码 · 共 44 行

C
44
字号
#include	"unp.h"#ifdef	HAVE_SOCKADDR_DL_STRUCT# include	<net/if_dl.h>#endifintsock_cmp_addr(const struct sockaddr *sa1, const struct sockaddr *sa2,			 socklen_t salen){	if (sa1->sa_family != sa2->sa_family)		return(-1);	switch (sa1->sa_family) {	case AF_INET: {		return(memcmp( &((struct sockaddr_in *) sa1)->sin_addr,					   &((struct sockaddr_in *) sa2)->sin_addr,					   sizeof(struct in_addr)));	}#ifdef	IPV6	case AF_INET6: {		return(memcmp( &((struct sockaddr_in6 *) sa1)->sin6_addr,					   &((struct sockaddr_in6 *) sa2)->sin6_addr,					   sizeof(struct in6_addr)));	}#endif#ifdef	AF_UNIX	case AF_UNIX: {		return(strcmp( ((struct sockaddr_un *) sa1)->sun_path,					   ((struct sockaddr_un *) sa2)->sun_path));	}#endif#ifdef	HAVE_SOCKADDR_DL_STRUCT	case AF_LINK: {		return(-1);		/* no idea what to compare here ? */	}#endif	}    return (-1);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?