Exemple #1
0
void
address_list_release (struct address_list *al)
{
  --al->refcount;
  DEBUGP (("Releasing %p (new refcount %d).\n", al, al->refcount));
  if (al->refcount <= 0)
    {
      DEBUGP (("Deleting unused %p.\n", al));
      address_list_delete (al);
    }
}
Exemple #2
0
void
address_list_release (struct address_list *al)
{
  --al->refcount;
  DEBUGP (("Releasing 0x%0*lx (new refcount %d).\n", PTR_FORMAT (al),
	   al->refcount));
  if (al->refcount <= 0)
    {
      DEBUGP (("Deleting unused 0x%0*lx.\n", PTR_FORMAT (al)));
      address_list_delete (al);
    }
}
Exemple #3
0
static int
host_cleanup_mapper (void *key, void *value, void *arg_ignored)
{
  struct address_list *al;

  xfree (key);			/* host */

  al = (struct address_list *)value;
  assert (al->refcount == 1);
  address_list_delete (al);

  return 0;
}
Exemple #4
0
static struct address_list *
merge_address_lists (struct address_list *al1, struct address_list *al2)
{
  int count = al1->count + al2->count;

  /* merge al2 into al1 */
  al1->addresses = xrealloc (al1->addresses, sizeof (ip_address) * count);
  memcpy (al1->addresses + al1->count, al2->addresses, sizeof (ip_address) * al2->count);
  al1->count = count;

  address_list_delete (al2);

  return al1;
}
Exemple #5
0
void
host_cleanup (void)
{
  if (host_name_addresses_map)
    {
      hash_table_iterator iter;
      for (hash_table_iterate (host_name_addresses_map, &iter);
           hash_table_iter_next (&iter);
           )
        {
          char *host = iter.key;
          struct address_list *al = iter.value;
          xfree (host);
          assert (al->refcount == 1);
          address_list_delete (al);
        }
      hash_table_destroy (host_name_addresses_map);
      host_name_addresses_map = NULL;
    }
}