#!/usr/local/bin/perl
#mci@gw.al.lg.ua (Michail Litvak)
#$CMDMAIL='/usr/sbin/sendmail -t';
$CMDMAIL='/bin/cat';

# В EchoHubs перечисляем всех эхохабов через пробел
$EchoHubs="f23.n5030.z2 f115.n5030.z2 f251.n5030.z2";

# Этот массив - список паролей к AreaFix'ам других хабов.
# Представляет собой матрицу с нулевой ( "" ) диагональю.
# На данном примере -
# первая строчка пароли /23 -> /115, /23 -> /251.
# вторая - /115 -> /23, /115 -> /251
# третья - /251 -> /23, /251 -> /115
# То есть в каждой строче пишутся пароли от n-го хаба к n+1-му хабу
# исключая сам данный хаб.
#
# Для случая 4 хабов будет так, для краткости опущены номера сетей и зон.
# $EchoHubs="1 2 3 4";
# @PassHubs=(["","12","13","14"],
#		     ["21","","23","24"],
#			 ["31","32","","34"],
#			 ["41","42","43",""]);

@PassHubs=(["","23_115","23_251"],
		   ["115_23","","115_251"],
		   ["251_23","251_115",""]);

@HUBS=split(/\s/,$EchoHubs);

for ( $i = 0; $i <= $#HUBS; $i++ ) {
	for ( $j = $#HUBS; $j >= 0; $j-- ) {
		if ( $HUBS[$i] ne $HUBS[$j] ) {
			$key = $HUBS[$i]."!".$HUBS[$j];
			$AFix{$key} = $PassHubs[$i][$j];
		}
	}
}

$SIZE = 0;
while (<>) {
    $TEXT[$SIZE++] = $_;
    }

foreach $hub ( keys %AFix ) {
	open(MAIL,"| $CMDMAIL");
	($F,$T) = split(/\!/,$hub);
	printf MAIL "From: SysOp\@$F.fidonet.org\n";
	printf MAIL "To: SysOp\@$T.fidonet.org\n";
#	printf MAIL "Reply-To: dyer\@f115.n5030.z2.fidonet.org\n";
	printf MAIL "Subject: $AFix{$hub}\n\n";
	for ($i=0; $i<=$SIZE; $i++) {
		print MAIL $TEXT[$i];
	}
	close(MAIL);
}
