github.com/afumu/libc@v0.0.6/musl/src/network/freeaddrinfo.c (about)

     1  #include <stdlib.h>
     2  #include <stddef.h>
     3  #include <netdb.h>
     4  #include "lookup.h"
     5  #include "lock.h"
     6  
     7  void freeaddrinfo(struct addrinfo *p)
     8  {
     9  	size_t cnt;
    10  	for (cnt=1; p->ai_next; cnt++, p=p->ai_next);
    11  	struct aibuf *b = (void *)((char *)p - offsetof(struct aibuf, ai));
    12  	b -= b->slot;
    13  	//TODO LOCK(b->lock);
    14  	if (!(b->ref -= cnt)) free(b);
    15  	//TODO else UNLOCK(b->lock);
    16  }