1 /* $Id: heartbeat.c,v 1.4 2003/04/17 03:47:07 jared Exp $ */
2 #include "config.h"
3
4 /* send a heartbeat packet to a host */
5
send_heartbeat(char * myhostname)6 void send_heartbeat(char *myhostname)
7 {
8 struct my_hostent *hp = NULL;
9 struct sockaddr_in name;
10 struct utsname myunamedata;
11 char message[1024];
12 int errcode = 0, msg_sock = 0;
13
14 msg_sock = udp_open_sock(msg_sock);
15 name.sin_family = AF_INET; /* yeah, that internet stuff */
16 name.sin_addr.s_addr = INADDR_ANY; /* like the www, right? */
17
18 if (uname(&myunamedata) == -1)
19 return;
20
21 hp = my_gethostbyname(HEARTBEAT_HOST, AF_INET);
22
23 if (hp == 0) /* We canna find it Jim! */
24 return;
25
26 memcpy((char*)&name.sin_addr, (char*)hp->my_h_addr_v4, hp->h_length_v4);
27 name.sin_port = htons(HEARTBEAT_PORT);
28
29 errcode = connect(msg_sock, (struct sockaddr*)&name, sizeof(name));
30
31 memset(message, 0, sizeof(message)); /* zero it out */
32
33 snprintf(message, 1000, "Hostname: %s Vers: %s running %s\n",
34 myhostname, SYSM_VERS, myunamedata.sysname);
35
36 errcode = send (msg_sock, message, strlen(message)+2, 0);
37
38 if (close(msg_sock) == -1)
39 return;
40 }
41