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