|
|
1.1 ! root 1: #ifndef lint ! 2: static char sccsid[] = "@(#)db_reload.c 4.3 (Berkeley) 5/30/86"; ! 3: #endif ! 4: ! 5: /* ! 6: * Copyright (c) 1986 Regents of the University of California ! 7: * All Rights Reserved ! 8: */ ! 9: ! 10: #include <sys/types.h> ! 11: #include <netinet/in.h> ! 12: #include <stdio.h> ! 13: #include <arpa/nameser.h> ! 14: #include "ns.h" ! 15: #include "db.h" ! 16: ! 17: /* ! 18: * Flush and reload data base. ! 19: */ ! 20: ! 21: db_reload() ! 22: { ! 23: extern char *bootfile; ! 24: ! 25: #ifdef DEBUG ! 26: if (debug >= 3) ! 27: fprintf(ddt,"reload()\n"); ! 28: #endif ! 29: ! 30: if (hashtab != NULL) ! 31: db_free(hashtab); ! 32: db_inv_free(); ! 33: hashtab = NULL; ! 34: ns_init(bootfile); ! 35: } ! 36: ! 37: db_free(htp) ! 38: struct hashbuf *htp; ! 39: { ! 40: register struct databuf *dp; ! 41: register struct namebuf *np; ! 42: struct namebuf **npp, **nppend; ! 43: ! 44: npp = htp->h_tab; ! 45: nppend = npp + htp->h_size; ! 46: while (npp < nppend) { ! 47: for (np = *npp++; np != NULL; free((char *)np), np = np->n_next) { ! 48: if (np->n_hash != NULL) ! 49: db_free(np->n_hash); ! 50: (void) free(np->n_dname); ! 51: if (np->n_data == NULL) ! 52: continue; ! 53: for (dp = np->n_data; dp != NULL; dp = dp->d_next) ! 54: (void) free((char *)dp); ! 55: } ! 56: } ! 57: (void) free((char *)htp); ! 58: } ! 59: ! 60: db_inv_free() ! 61: { ! 62: register struct invbuf *ip; ! 63: register int i, j; ! 64: ! 65: for (i = 0; i < INVHASHSZ; i++) ! 66: for (ip = invtab[i]; ip != NULL; ip = ip->i_next) ! 67: for (j = 0; j < INVBLKSZ; j++) ! 68: ip->i_dname[j] = NULL; ! 69: } ! 70:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.