summaryrefslogtreecommitdiff
path: root/zhm
diff options
context:
space:
mode:
authorGravatar David C. Jedlinsky <opus@mit.edu>1987-10-07 11:30:45 +0000
committerGravatar David C. Jedlinsky <opus@mit.edu>1987-10-07 11:30:45 +0000
commitd95fbee19049cc0f2b41de05d237e1082f8ad484 (patch)
tree53539f5defc07c83c0114771e40dbbbfef6b268d /zhm
parent05a37c16afb46195b3b6c23da5fbf42bec440724 (diff)
A few fixes.
Diffstat (limited to 'zhm')
-rw-r--r--zhm/zhm_client.c8
-rw-r--r--zhm/zhm_server.c14
2 files changed, 19 insertions, 3 deletions
diff --git a/zhm/zhm_client.c b/zhm/zhm_client.c
index fdd55fe..ada4101 100644
--- a/zhm/zhm_client.c
+++ b/zhm/zhm_client.c
@@ -19,7 +19,7 @@ static char rcsid_hm_client_c[] = "$Header$";
#endif SABER
#endif lint
-extern int no_server, timeout_type, nclt;
+extern int no_server, timeout_type, nclt, deactivated;
extern struct sockaddr_in cli_sin, serv_sin, from;
transmission_tower(notice, packet, pak_len)
@@ -34,8 +34,10 @@ transmission_tower(notice, packet, pak_len)
nclt++;
if (notice->z_kind == HMCTL) {
- if (!strcmp(notice->z_opcode, CLIENT_FLUSH))
- send_flush_notice(HM_FLUSH);
+ if (!strcmp(notice->z_opcode, CLIENT_FLUSH)) {
+ send_flush_notice(HM_FLUSH);
+ deactivated = 1;
+ }
else if (!strcmp(notice->z_opcode, CLIENT_NEW_SERVER))
new_server(NULL);
else
diff --git a/zhm/zhm_server.c b/zhm/zhm_server.c
index 90b82fb..65cdc09 100644
--- a/zhm/zhm_server.c
+++ b/zhm/zhm_server.c
@@ -23,6 +23,7 @@ int serv_loop = 0;
extern u_short cli_port;
extern struct sockaddr_in serv_sin, from;
extern int timeout_type, hmdebug, nservchang, booting, nserv, no_server;
+extern int deactivated;
extern char **serv_list, **cur_serv_list;
extern char cur_serv[], prim_serv[];
@@ -233,3 +234,16 @@ send_back(notice)
}
}
+new_server(sugg_serv)
+ char *sugg_serv;
+{
+ no_server = 1;
+ syslog (LOG_INFO, "Server went down, finding new server.");
+ send_flush_notice(HM_DETACH);
+ find_next_server(sugg_serv);
+ if (booting) {
+ send_boot_notice(HM_BOOT);
+ deactivated = 0;
+ } else
+ send_boot_notice(HM_ATTACH);
+}