From d95fbee19049cc0f2b41de05d237e1082f8ad484 Mon Sep 17 00:00:00 2001 From: "David C. Jedlinsky" Date: Wed, 7 Oct 1987 11:30:45 +0000 Subject: A few fixes. --- zhm/zhm_client.c | 8 +++++--- zhm/zhm_server.c | 14 ++++++++++++++ 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); +} -- cgit v1.2.3