--- projects/cms/source/host/ihost-perl/ihost.pl 2001/01/26 17:41:48 1.5
+++ projects/cms/source/host/ihost-perl/ihost.pl 2001/02/01 03:17:32 1.10
@@ -1,4 +1,4 @@
-#!/usr/local/bin/perl -w
+#!/usr/bin/perl -w
# -----------------------------------------------------------
# Perl i-scream Host.
@@ -8,8 +8,8 @@
# methods as you see fit.
# - pjm2@ukc.ac.uk
#
-# $Author: pjm2 $
-# $Id: ihost.pl,v 1.5 2001/01/26 17:41:48 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);
@@ -88,7 +98,7 @@ sub tcp_configure() {
chop $response;
$last_modified = $response;
- print "Config last modified: ". scalar localtime $last_modified . "\n";
+ print "Config last modified: ". (scalar localtime $last_modified/1000) . "\n";
print $sock "FILELIST\n";
$response = <$sock>;
@@ -107,7 +117,7 @@ sub tcp_configure() {
chop $response;
$tcp_update_time = $response;
- print "UDP packet period: $udp_update_time seconds.\nTCP heartbeat period: $tcp_update_time.\n";
+ print "UDP packet period: $udp_update_time seconds.\nTCP heartbeat period: $tcp_update_time seconds.\n";
print $sock "ENDCONFIG\n";
$response = <$sock>;
@@ -170,8 +180,8 @@ sub send_udp_packet() {
my($hostname) = hostname();
$hostname =~ s/\..*$//g;
- my($domainname) = `cat /etc/resolv.conf`;
- $domainname =~ s/domain\s*([^\s]*?)/$1/;
+ `cat /etc/resolv.conf` =~ /domain\s+([^\s]+)/;
+ my($domainname) = $1;
my($machine_name) = "$hostname.$domainname";
my($ip) = inet_ntoa(scalar(gethostbyname($hostname)) || 'localhost');
@@ -191,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"}