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
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();
}
}
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)
{
extern void cm_FreeServerList(cm_serverRef_t** list);
+extern void cm_ForceNewConnectionsAllServers(void);
+
#endif /* __CM_SERVER_H_ENV__ */