diff --git a/tools/adc-redirector b/tools/adc-redirector new file mode 100755 index 0000000..f5b0781 --- /dev/null +++ b/tools/adc-redirector @@ -0,0 +1,48 @@ +#!/usr/bin/perl -w + +# Setup using inetd/xinetd or similar. +# In /etc/inetd.conf add: +# 1511 stream tcp nowait nobody /usr/bin/adc-redirector adc://target:port +# +# Change port to whatever you want. +# Make sure the path and the target:port is correct, then you should be good +# to go! + +use strict; +use IO::Handle; +autoflush STDIN; +autoflush STDOUT; + +my $target = $ARGV[0]; + +eval +{ + local %SIG; + $SIG{ALRM}= sub { exit 0; }; + alarm 30; +}; + +while (my $line = ) +{ + chomp($line); + + if ($line =~ /^HSUP /) + { + print "ISUP ADBASE ADPING ADTIGR\n"; + print "ISID AAAX\n"; + print "IINF CT32 NIRedirector VEadc-redirector/0.1\n"; + next; + } + + if ($line =~ /^BINF /) + { + print "$line\n"; + print "IMSG This\\sserver\\shas\\smoved\\sto:\\s" . $target . "\n"; + print "IMSG You\\sare\\sbeing\\sredirected...\n"; + print "IQUI AAAX RD" . $target . "\n"; + alarm 5; + } +} + +alarm 0; +