sock_cmp_port.c 540 B

123456789101112131415161718192021222324252627282930
  1. #include "unp.h"
  2. #ifdef HAVE_SOCKADDR_DL_STRUCT
  3. #include <net/if_dl.h>
  4. #endif
  5. int
  6. sock_cmp_port(const struct sockaddr *sa1, const struct sockaddr *sa2,
  7. socklen_t salen)
  8. {
  9. if (sa1->sa_family != sa2->sa_family)
  10. return(-1);
  11. switch (sa1->sa_family) {
  12. case AF_INET: {
  13. return( ((struct sockaddr_in *) sa1)->sin_port ==
  14. ((struct sockaddr_in *) sa2)->sin_port);
  15. }
  16. #ifdef IPV6
  17. case AF_INET6: {
  18. return( ((struct sockaddr_in6 *) sa1)->sin6_port ==
  19. ((struct sockaddr_in6 *) sa2)->sin6_port);
  20. }
  21. #endif
  22. }
  23. return (-1);
  24. }