Просмотр исходного кода

Fix check_ircd binding to wrong interface (#668778)

Thomas Guyot-Sionnest 16 лет назад
Родитель
Сommit
bc3c8c7cfb
2 измененных файлов с 8 добавлено и 16 удалено
  1. 3 0
      NEWS
  2. 5 16
      plugins-scripts/check_ircd.pl

+ 3 - 0
NEWS

@@ -1,5 +1,8 @@
 This file documents the major additions and syntax changes between releases.
 
+1.4.15 ...
+	Fix check_ircd binding to wrong interface (#668778)
+
 1.4.14 16th September 2009
 	check_http has options to specify the HTTP method (#2155152)
 	check_users thresholds were not working exactly as documented (>= rather than >)

+ 5 - 16
plugins-scripts/check_ircd.pl

@@ -59,7 +59,7 @@ use utils qw($TIMEOUT %ERRORS &print_revision &support &usage);
 sub print_help ();
 sub print_usage ();
 sub connection ($$$$);
-sub bindRemote ($$$);
+sub bindRemote ($$);
 
 # -------------------------------------------------------------[ Enviroment ]--
 
@@ -141,28 +141,20 @@ Perl Check IRCD plugin for Nagios
 
 # -------------------------------------------------------------[ bindRemote ]--
 
-sub bindRemote ($$$)
+sub bindRemote ($$)
 {
-	my ($in_remotehost, $in_remoteport, $in_hostname) = @_;
+	my ($in_remotehost, $in_remoteport) = @_;
 	my $proto = getprotobyname('tcp');
 	my $sockaddr;
-	my $this;
-	my $thisaddr = gethostbyname($in_hostname);
 	my $that;
 	my ($name, $aliases,$type,$len,$thataddr) = gethostbyname($in_remotehost);
-#	($name,$aliases,$type,$len,$thisaddr) = gethostbyname($in_hostname);
 
 	if (!socket(ClientSocket,AF_INET, SOCK_STREAM, $proto)) {
 	    print "IRCD UNKNOWN: Could not start socket ($!)\n";
 	    exit $ERRORS{"UNKNOWN"};
 	}
 	$sockaddr = 'S n a4 x8';
-	$this = pack($sockaddr, AF_INET, 0, $thisaddr);
 	$that = pack($sockaddr, AF_INET, $in_remoteport, $thataddr);
-	if (!bind(ClientSocket, $this)) {
-	    print "IRCD UNKNOWN: Could not bind socket ($!)\n";
-	    exit $ERRORS{"UNKNOWN"};
-	}
 	if (!connect(ClientSocket, $that)) { 
 	    print "IRCD UNKNOWN: Could not connect socket ($!)\n";
 	    exit $ERRORS{"UNKNOWN"};
@@ -221,13 +213,10 @@ MAIN:
 	
 	alarm($TIMEOUT);
 
-	chomp($hostname = `/bin/hostname`);
-	$hostname = $1 if ($hostname =~ /([-.a-zA-Z0-9]+)/);
 	my ($name, $alias, $proto) = getprotobyname('tcp');
-	print "MAIN(debug): hostname = $hostname\n" if $verbose;
 
-	print "MAIN(debug): binding to remote host: $remotehost -> $remoteport -> $hostname\n" if $verbose;
-	my $ClientSocket = &bindRemote($remotehost,$remoteport,$hostname);
+	print "MAIN(debug): binding to remote host: $remotehost -> $remoteport\n" if $verbose;
+	my $ClientSocket = &bindRemote($remotehost,$remoteport);
 	
 	print ClientSocket "NICK $NICK\nUSER $USER_INFO\n";