From fc25d8cf697db8fde0eb3e89b39a1fbd39a6313c Mon Sep 17 00:00:00 2001 From: Chas Williams Date: Sat, 8 May 2004 05:23:56 +0000 Subject: [PATCH] add-shutdown-server-20040507 FIXES 4067 cleanup server list during shutdown --- src/afs/afs_init.c | 1 + src/afs/afs_server.c | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/src/afs/afs_init.c b/src/afs/afs_init.c index 550df26b68..b0f9d4cb93 100644 --- a/src/afs/afs_init.c +++ b/src/afs/afs_init.c @@ -828,5 +828,6 @@ shutdown_AFS(void) LOCK_INIT(&afs_puttofileLock, "afs_puttofileLock"); shutdown_cell(); + shutdown_server(); } } diff --git a/src/afs/afs_server.c b/src/afs/afs_server.c index 62a6fa3204..6643c1ee21 100644 --- a/src/afs/afs_server.c +++ b/src/afs/afs_server.c @@ -1706,3 +1706,31 @@ void afs_ActivateServer(struct srvAddr *sap) { } } } + + +void shutdown_server() +{ + int i; + + for (i = 0; i < NSERVERS; i++) { + struct server *ts, *next; + + ts = afs_servers[i]; + while(ts) { + next = ts->next; + afs_osi_Free(ts, sizeof(struct server)); + ts = next; + } + } + + for (i = 0; i < NSERVERS; i++) { + struct srvAddr *sa, *next; + + sa = afs_srvAddrs[i]; + while(sa) { + next = sa->next_bkt; + afs_osi_Free(sa, sizeof(struct srvAddr)); + sa = next; + } + } +}