summaryrefslogtreecommitdiff
path: root/zhm/zhm.c
diff options
context:
space:
mode:
authorGravatar Robert S. French <rfrench@mit.edu>1987-07-31 12:14:44 +0000
committerGravatar Robert S. French <rfrench@mit.edu>1987-07-31 12:14:44 +0000
commit7dadbb8495b935c60641623d781a4ced2cfca1ca (patch)
tree4f81d4315dc02b910f13bedad8d903ab751f43f8 /zhm/zhm.c
parent3702c04bd627e90800be33952c4cb2d14a9bc1d8 (diff)
Fixed index lossage
Diffstat (limited to 'zhm/zhm.c')
-rw-r--r--zhm/zhm.c42
1 files changed, 14 insertions, 28 deletions
diff --git a/zhm/zhm.c b/zhm/zhm.c
index bd89f9e..a700141 100644
--- a/zhm/zhm.c
+++ b/zhm/zhm.c
@@ -56,7 +56,7 @@ extern char *index();
void init_hm(), detach(), handle_timeout(), resend_notices(), die_gracefully();
void set_sig_type();
-char *upcase(), *convert();
+char *upcase();
main(argc, argv)
char *argv[];
@@ -256,26 +256,6 @@ char *upcase(s)
return(r);
}
-/* This must first change the \0 at the end of addr to a '.' */
-char *convert(addr)
- caddr_t addr;
-{
- static char result[4];
- char *c, *r;
- int i;
-
- *index(addr, '\0') = '.';
- c = addr;
- for (i=0; i<4; i++) {
- if ((r = index(c, '.')) > 0) {
- *r = '\0';
- result[i] = (char)atoi(c);
- c = r+1;
- }
- }
- return(result);
-}
-
/* Argument is whether we are actually booting, or just attaching
after a server switch */
send_boot_notice(op)
@@ -435,16 +415,22 @@ hm_control(notice)
Code_t ret;
struct hostent *hp;
char suggested_server[64];
+ long addr;
DPR("Control message!\n");
if (!strcmp(notice->z_opcode, SERVER_SHUTDOWN)) {
- if ((hp = gethostbyaddr(convert(notice->z_message),
- 4,
- AF_INET)) != NULL) {
- strcpy(suggested_server, hp->h_name);
- new_server(suggested_server);
- } else
- new_server(NULL);
+ if (notice->z_message_len) {
+ addr = inet_addr(notice->z_message);
+ if ((hp = gethostbyaddr(&addr,
+ 4,
+ AF_INET)) != NULL) {
+ strcpy(suggested_server, hp->h_name);
+ new_server(suggested_server);
+ } else
+ new_server(NULL);
+ }
+ else
+ new_server(NULL);
} else if (!strcmp(notice->z_opcode, SERVER_PING)) {
if (no_server)
(void)alarm(0);