freeaddrinfo.c 448 B

123456789101112131415161718192021
  1. #include "gai_hdr.h"
  2. /* include freeaddrinfo */
  3. void
  4. freeaddrinfo(struct addrinfo *aihead)
  5. {
  6. struct addrinfo *ai, *ainext;
  7. for (ai = aihead; ai != NULL; ai = ainext) {
  8. if (ai->ai_addr != NULL)
  9. free(ai->ai_addr); /* socket address structure */
  10. if (ai->ai_canonname != NULL)
  11. free(ai->ai_canonname);
  12. ainext = ai->ai_next; /* can't fetch ai_next after free() */
  13. free(ai); /* the addrinfo{} itself */
  14. }
  15. }
  16. /* end freeaddrinfo */