--- projects/cms/source/host/ihost-perl/ihost.pl 2001/01/29 09:04:18 1.7
+++ projects/cms/source/host/ihost-perl/ihost.pl 2001/02/01 03:17:32 1.10
@@ -8,8 +8,8 @@
# methods as you see fit.
# - pjm2@ukc.ac.uk
#
-# $Author: pjm2 $
-# $Id: ihost.pl,v 1.7 2001/01/29 09:04:18 pjm2 Exp $
+# $Author: tdb $
+# $Id: ihost.pl,v 1.10 2001/02/01 03:17:32 tdb Exp $
#------------------------------------------------------------
$| = 1;
@@ -48,15 +48,25 @@ $seq_no = 1;
$last_udp_time = time;
$last_tcp_time = time;
while (1) {
- if (time >= $last_udp_time + $udp_update_time) {
+ my($time) = time;
+ if ($time >= $last_udp_time + $udp_update_time) {
&send_udp_packet();
- $last_udp_time = time;
+ $last_udp_time = $time;
}
- if (time >= $last_tcp_time + $tcp_update_time) {
+ if ($time >= $last_tcp_time + $tcp_update_time) {
&send_tcp_heartbeat();
- $last_tcp_time = time;
+ $last_tcp_time = $time;
}
- `sleep 1`;
+ my($next_udp) = $udp_update_time - $time + $last_udp_time;
+ my($next_tcp) = $tcp_update_time - $time + $last_tcp_time;
+ my($delay);
+ if ($next_udp < $next_tcp) {
+ $delay = $next_udp
+ }
+ else {
+ $delay = $next_tcp;
+ }
+ `sleep $delay`;
}
exit(0);
@@ -170,9 +180,8 @@ sub send_udp_packet() {
my($hostname) = hostname();
$hostname =~ s/\..*$//g;
- my($domainname) = `cat /etc/resolv.conf`;
- $domainname =~ /domain\s+([^\s]+)/;
- $domainname = $1;
+ `cat /etc/resolv.conf` =~ /domain\s+([^\s]+)/;
+ my($domainname) = $1;
my($machine_name) = "$hostname.$domainname";
my($ip) = inet_ntoa(scalar(gethostbyname($hostname)) || 'localhost');
@@ -192,6 +201,7 @@ sub send_udp_packet() {
$packet{"packet.os.platform"}
$packet{"packet.os.sysname"}
$packet{"packet.os.version"}
+ $packet{"packet.os.uptime"}
$packet{"packet.users.count"}