Net2/usr/src/contrib/isode/others/quipu/uips/pod/dir_entry.c

#include "dir_entry.h"

int free_dir_entry(entry)
     dirEntry entry;
{
  if (entry->entry_name) free(entry->entry_name);
  (void) free_ent_attrs(entry->attrs);
  free((char *) entry);
}

int free_ent_attrs(attrs)
     dirAttrs attrs;
{
  dirAttrs last_attr = 0;
  for (; attrs; attrs = attrs->next) {
    if (attrs->val_seq) free_mod_vals(attrs->val_seq);
    if (attrs->attr_name) free(attrs->attr_name);
    if (last_attr) free((char *) last_attr);
    last_attr = attrs;
  }
}

int free_mod_vals(vals)
     modVals vals;
{
  modVals last_val = 0;
  for (; vals; vals = vals->next) {
    if (vals->value) free(vals->value);
    if (vals->new_value) free(vals->new_value);
    if (last_val) free((char *)last_val);
    last_val = vals;
  }
}