DEVEL15-windows-addr-change-mods-20060509

When the client changes IP addresses, in order to obtain optimal
performance it must:

(1) force the replacement of all existing rx connections

(2) ping all up and down servers


(cherry picked from commit 66596cc677e8cbf7fa40ad2962ccc4547692afb5)
This commit is contained in:
Jeffrey Altman 2006-06-01 16:36:46 +00:00 committed by Derrick Brashear
parent 953cbe4fab
commit 17c569d0b0
3 changed files with 18 additions and 1 deletions

View File

@ -59,7 +59,8 @@ void cm_IpAddrDaemon(long parm)
if (Result == NO_ERROR && daemon_ShutdownFlag == 0) {
osi_Log0(afsd_logp, "cm_IpAddrDaemon CheckDownServers");
Sleep(2500);
cm_CheckServers(CM_FLAG_CHECKDOWNSERVERS, NULL);
cm_ForceNewConnectionsAllServers();
cm_CheckServers(CM_FLAG_CHECKUPSERVERS | CM_FLAG_CHECKDOWNSERVERS, NULL);
smb_CheckVCs();
}
}

View File

@ -29,6 +29,20 @@ osi_rwlock_t cm_serverLock;
cm_server_t *cm_allServersp;
void
cm_ForceNewConnectionsAllServers(void)
{
cm_server_t *tsp;
lock_ObtainRead(&cm_serverLock);
for (tsp = cm_allServersp; tsp; tsp = tsp->allNextp) {
cm_GetServerNoLock(tsp);
cm_ForceNewConnections(tsp);
cm_PutServerNoLock(tsp);
}
lock_ReleaseRead(&cm_serverLock);
}
void
cm_PingServer(cm_server_t *tsp)
{

View File

@ -103,4 +103,6 @@ extern void cm_FreeServer(cm_server_t* server);
extern void cm_FreeServerList(cm_serverRef_t** list);
extern void cm_ForceNewConnectionsAllServers(void);
#endif /* __CM_SERVER_H_ENV__ */