summaryrefslogtreecommitdiffstats
path: root/web/attachments/295596-check_ircd.pl.diff
diff options
context:
space:
mode:
Diffstat (limited to 'web/attachments/295596-check_ircd.pl.diff')
-rw-r--r--web/attachments/295596-check_ircd.pl.diff119
1 files changed, 119 insertions, 0 deletions
diff --git a/web/attachments/295596-check_ircd.pl.diff b/web/attachments/295596-check_ircd.pl.diff
new file mode 100644
index 0000000..b3792c4
--- /dev/null
+++ b/web/attachments/295596-check_ircd.pl.diff
@@ -0,0 +1,119 @@
1--- check_ircd.pl.orig 2002-05-06 22:35:49.000000000 -0700
2+++ check_ircd.pl 2008-10-01 01:22:43.496305819 -0700
3@@ -43,15 +43,17 @@
4
5 # ----------------------------------------------------------------[ Require ]--
6
7-require 5.004;
8+require 5.6.0;
9
10 # -------------------------------------------------------------------[ Uses ]--
11
12-use Socket;
13 use strict;
14+use IO::Socket;
15+use Sys::Hostname;
16 use Getopt::Long;
17 use vars qw($opt_V $opt_h $opt_t $opt_p $opt_H $opt_w $opt_c $verbose);
18 use vars qw($PROGNAME);
19+use vars qw($ClientSocket);
20 use lib utils.pm;
21 use utils qw($TIMEOUT %ERRORS &print_revision &support &usage);
22
23@@ -60,7 +62,6 @@
24 sub print_help ();
25 sub print_usage ();
26 sub connection ($$$$);
27-sub bindRemote ($$$);
28
29 # -------------------------------------------------------------[ Enviroment ]--
30
31@@ -104,7 +105,7 @@
32 $answer = "Server $in_remotehost has less than 0 users! Something is Really WRONG!\n";
33 }
34
35- print ClientSocket "quit\n";
36+ print $ClientSocket "quit\n";
37 print $answer;
38 exit $ERRORS{$state};
39 }
40@@ -140,38 +141,6 @@
41 ";
42 }
43
44-# -------------------------------------------------------------[ bindRemote ]--
45-
46-sub bindRemote ($$$)
47-{
48- my ($in_remotehost, $in_remoteport, $in_hostname) = @_;
49- my $proto = getprotobyname('tcp');
50- my $sockaddr;
51- my $this;
52- my $thisaddr = gethostbyname($in_hostname);
53- my $that;
54- my ($name, $aliases,$type,$len,$thataddr) = gethostbyname($in_remotehost);
55-# ($name,$aliases,$type,$len,$thisaddr) = gethostbyname($in_hostname);
56-
57- if (!socket(ClientSocket,AF_INET, SOCK_STREAM, $proto)) {
58- print "IRCD UNKNOWN: Could not start socket ($!)\n";
59- exit $ERRORS{"UNKNOWN"};
60- }
61- $sockaddr = 'S n a4 x8';
62- $this = pack($sockaddr, AF_INET, 0, $thisaddr);
63- $that = pack($sockaddr, AF_INET, $in_remoteport, $thataddr);
64- if (!bind(ClientSocket, $this)) {
65- print "IRCD UNKNOWN: Could not bind socket ($!)\n";
66- exit $ERRORS{"UNKNOWN"};
67- }
68- if (!connect(ClientSocket, $that)) {
69- print "IRCD UNKNOWN: Could not connect socket ($!)\n";
70- exit $ERRORS{"UNKNOWN"};
71- }
72- select(ClientSocket); $| = 1; select(STDOUT);
73- return \*ClientSocket;
74-}
75-
76 # ===================================================================[ MAIN ]==
77
78 MAIN:
79@@ -222,24 +191,34 @@
80
81 alarm($TIMEOUT);
82
83- chomp($hostname = `/bin/hostname`);
84+ $hostname = hostname;
85 $hostname = $1 if ($hostname =~ /([-.a-zA-Z0-9]+)/);
86- my ($name, $alias, $proto) = getprotobyname('tcp');
87 print "MAIN(debug): hostname = $hostname\n" if $verbose;
88
89 print "MAIN(debug): binding to remote host: $remotehost -> $remoteport -> $hostname\n" if $verbose;
90- my $ClientSocket = &bindRemote($remotehost,$remoteport,$hostname);
91+
92+ $ClientSocket = IO::Socket::INET->new(
93+ PeerAddr => $remotehost,
94+ PeerPort => $remoteport,
95+ LocalAddr => $hostname,
96+ Proto => "tcp"
97+ );
98+
99+ if (! $ClientSocket) {
100+ print "IRCD UNKNOWN: Could not connect socket ($!)\n";
101+ exit $ERRORS{"UNKNOWN"};
102+ }
103
104- print ClientSocket "NICK $NICK\nUSER $USER_INFO\n";
105+ print $ClientSocket "NICK $NICK\nUSER $USER_INFO\n";
106
107- while (<ClientSocket>) {
108+ while (<$ClientSocket>) {
109 print "MAIN(debug): default var = $_\n" if $verbose;
110
111 # DALnet,LagNet,UnderNet etc. Require this!
112 # Replies with a PONG when presented with a PING query.
113 # If a server doesn't require it, it will be ignored.
114
115- if (m/^PING (.*)/) {print ClientSocket "PONG $1\n";}
116+ if (m/^PING (.*)/) {print $ClientSocket "PONG $1\n";}
117
118 alarm(0);
119