diff -uNr inn-1.7-kr-beta/innd/art.c inn-1.7-kr/innd/art.c --- inn-1.7-kr-beta/innd/art.c Mon Nov 17 15:32:12 1997 +++ inn-1.7-kr/innd/art.c Wed Nov 26 13:36:09 1997 @@ -1912,7 +1912,10 @@ #if defined(DO_PERL) pathForPerl = HeaderFind(article->Data, "Path", 4) ; - if ((perlrc = (char *)HandleArticle(Data.Body)) != NULL) { + TMRstart(TMR_FILTER); + perlrc = (char *)HandleArticle(Data.Body); + TMRstop(TMR_FILTER); + if (perlrc != NULL) { (void)sprintf(buff, "%d %s", NNTP_REJECTIT_VAL, perlrc); syslog(L_NOTICE, "rejecting[perl] %s %s", HDR(_message_id), buff); ARTlog(&Data, ART_REJECT, buff); diff -uNr inn-1.7-kr-beta/innd/timer.c inn-1.7-kr/innd/timer.c --- inn-1.7-kr-beta/innd/timer.c Sat Oct 18 11:15:52 1997 +++ inn-1.7-kr/innd/timer.c Wed Nov 26 13:29:07 1997 @@ -100,6 +100,7 @@ case TMR_ARTCNCL: str = "artcncl"; break; case TMR_HISHAVE: str = "hishave"; break; case TMR_HISGREP: str = "hisgrep"; break; + case TMR_FILTER: str = "filter"; break; } sprintf(buf, "%s %d(%d) ", str, cumulative[i], count[i]); cumulative[i] = count[i] = 0; diff -uNr inn-1.7-kr-beta/innd/timer.h inn-1.7-kr/innd/timer.h --- inn-1.7-kr-beta/innd/timer.h Sat Oct 18 11:15:52 1997 +++ inn-1.7-kr/innd/timer.h Wed Nov 26 13:28:16 1997 @@ -12,6 +12,7 @@ #define TMR_ARTCNCL 7 #define TMR_HISHAVE 8 #define TMR_HISGREP 9 +#define TMR_FILTER 10 extern void TMRinit(); extern void TMRmainloophook(); diff -uNr inn-1.7-kr-beta/patches/README inn-1.7-kr/patches/README --- inn-1.7-kr-beta/patches/README Wed Nov 19 20:06:08 1997 +++ inn-1.7-kr/patches/README Wed Nov 26 10:54:57 1997 @@ -38,3 +38,8 @@ 97/11/19 cleanqp-uue-related.patch. Bypass uuencoded message and treat multipart/related messages. + +97/11/25 Released inn-1.7-kr-beta. jem@xpat.com and sysuh@kigam.re.kr + +97/11/26 innlog-19971126.patch. Cleaner Daily report. Simplified + inn_filter summary. diff -uNr inn-1.7-kr-beta/patches/applied/innlog-19971126.patch inn-1.7-kr/patches/applied/innlog-19971126.patch --- inn-1.7-kr-beta/patches/applied/innlog-19971126.patch Thu Jan 1 09:00:00 1970 +++ inn-1.7-kr/patches/applied/innlog-19971126.patch Wed Nov 26 10:44:22 1997 @@ -0,0 +1,301 @@ +*** innlog.pl.OLD Wed Nov 26 08:14:51 1997 +--- innlog.pl Wed Nov 26 10:23:00 1997 +*************** +*** 147,152 **** +--- 147,159 ---- + # + ########################################################################## + ++ $WANT_DETAILED_FILTER_REASON = 0; # set 1 for detailed report. ++ $MaxCurious = 20; ++ $MaxGethostFailed = 20; ++ $MaxUnwantedClients = 20; ++ $MaxClientTimeouts = 20; ++ $MaxNnrpdUnrecognized = 20; ++ + ## Uncomment next line if you want to create a Web page + #$HTML = "comment_or_uncomment"; + +*************** +*** 700,705 **** +--- 707,719 ---- + ($reason) = $left =~ /^rejecting\[perl\] <[^>]+> \d+ (.*)$/; + if ($reason) + { ++ if ($reason =~ /^(new EMP detected) (\S+)/) { ++ $reason = $1; ++ $reason .= " " . $2 if ($WANT_DETAILED_FILTER_REASON); ++ } elsif ($reason =~ /^(\S+) (\S+)/) { ++ $reason = $1; ++ $reason .= " " . $2 if ($WANT_DETAILED_FILTER_REASON); ++ } + $innd_filter_perl{$reason}++; + next LINE; + } +*************** +*** 1104,1113 **** +--- 1118,1132 ---- + } + # closed periodic + next LINE if ($server) = $left =~ /(\S+):\d+ closed periodic$/; ++ next LINE if ($server) = $left =~ /(\S+):\d+ periodic close$/; ++ # connection vanishing ++ next LINE if ($server) = $left =~ /(\S+):\d+ connection vanishing$/; + # new hand-prepared backlog file. + next LINE if ($server) = $left =~ /(\S+) new hand-prepared/; + # grabbing external tape file + next LINE if ($server) = $left =~ /(\S+) grabbing external tape file/; ++ # hostChkCxns - maxConnections was 2 now 3 ++ next LINE if ($server) = $left =~ /(\S+) hostChkCxns - maxConnections was/; + + # final (child) + ($server, $seconds, $offered, $accepted, $refused, $rejected) = $left =~ +*************** +*** 1126,1132 **** + # final (real) + ($server, $seconds, $offered, $accepted, $refused, + $rejected, $missing, $spooled) = $left =~ +! /(\S+) final seconds (\d+) offered (\d+) accepted (\d+) refused (\d+) rejected (\d+) missing (\d+) spooled (\d+)$/; + if ($server) + { + $server =~ tr/A-Z/a-z/ unless ($CASE_SENSITIVE); +--- 1145,1151 ---- + # final (real) + ($server, $seconds, $offered, $accepted, $refused, + $rejected, $missing, $spooled) = $left =~ +! /(\S+) final seconds (\d+) offered (\d+) accepted (\d+) refused (\d+) rejected (\d+) missing (\d+) spooled (\d+)/; + if ($server) + { + $server =~ tr/A-Z/a-z/ unless ($CASE_SENSITIVE); +*************** +*** 1157,1162 **** +--- 1176,1192 ---- + $innfeed_spooled{$server} += $spooled; + next LINE; + } ++ # final (only seconds spooled on_close sleeping) ++ ($server, $seconds, $spooled) = $left =~ ++ /(\S+) final seconds (\d+) spooled (\d+) on_close \d+ sleeping \d+$/; ++ if ($server) ++ { ++ $server =~ tr/A-Z/a-z/ unless ($CASE_SENSITIVE); ++ $server =~ s/\d+$//; ++ $innfeed_seconds{$server} += $seconds; ++ $innfeed_spooled{$server} += $spooled; ++ next LINE; ++ } + # checkpoint + ($server) = $left =~ /(\S+) checkpoint seconds.*$/; + if ($server) +*************** +*** 2377,2388 **** +--- 2407,2421 ---- + print HTML "
\n"; + print HTML "\n\n"; + } ++ $total_innd_filter_perl = 0; + foreach $reason (sort (keys (%innd_filter_perl))) + { + printf STDOUT ("%-64.64s %7d\n", $reason, $innd_filter_perl{$reason, }); + printf HTML ("\n", + $reason, $innd_filter_perl{$reason}) if ($HTML); ++ $total_innd_filter_perl += $innd_filter_perl{$reason, }; + } ++ printf STDOUT ("%-64.64s %7d\n", "Total", $total_innd_filter_perl); + print HTML "
Reason Number
%s%d


\n" if ($HTML); + print "\n"; + +*************** +*** 3814,3820 **** + print HTML "\n" if ($HTML); + if (($curious eq "ok") && ($WANT_CURIOUS)) + { +! print "Curious NNRP server explorers :\n"; + print "System Conn\n"; + if ($HTML) + { +--- 3847,3857 ---- + print HTML "\n" if ($HTML); + if (($curious eq "ok") && ($WANT_CURIOUS)) + { +! if ($MaxCurious < scalar(keys (%nnrpd_groups))) { +! print "Curious NNRP server explorers [top $MaxCurious]:\n"; +! } else { +! print "Curious NNRP server explorers :\n"; +! } + print "System Conn\n"; + if ($HTML) + { +*************** +*** 3827,3832 **** +--- 3864,3870 ---- + (keys (%nnrpd_groups))) + { + my $tmp; ++ last if (--$MaxCurious < 0); + if (($nnrpd_groups{"$serv"} == 0) && ($nnrpd_post_ok{"$serv"} == 0)) + { + $tmp = $serv eq '?'?" (getpeername failure)":""; +*************** +*** 3847,3853 **** + if (%nnrpd_no_permission) + { + print HTML "\n" if ($HTML); +! print "NNRP no permission clients :\n"; + print "System Conn\n"; + if ($HTML) + { +--- 3885,3895 ---- + if (%nnrpd_no_permission) + { + print HTML "\n" if ($HTML); +! if ($MaxUnwantedClients < scalar(keys (%nnrpd_no_permission))) { +! print "NNRP no permission clients [top $MaxUnwantedClients]:\n"; +! } else { +! print "NNRP no permission clients :\n"; +! } + print "System Conn\n"; + if ($HTML) + { +*************** +*** 3859,3864 **** +--- 3901,3907 ---- + foreach $client (sort {$nnrpd_no_permission{$b} <=> $nnrpd_no_permission{$a}} + (keys (%nnrpd_no_permission))) + { ++ last if (--$MaxUnwantedClients < 0); + printf STDOUT ("%-64.64s %5d\n", + $client, $nnrpd_no_permission{$client}); + if ($HTML) +*************** +*** 3874,3880 **** + if ((%nnrpd_gethostbyaddr) && ($WANT_GETHOSTFAILED)) + { + print HTML "\n" if ($HTML); +! print "NNRP gethostbyaddr failures :\n"; + print "IP Conn\n"; + if ($HTML) + { +--- 3917,3927 ---- + if ((%nnrpd_gethostbyaddr) && ($WANT_GETHOSTFAILED)) + { + print HTML "\n" if ($HTML); +! if ($MaxGethostFailed < scalar(keys (%nnrpd_gethostbyaddr))) { +! print "NNRP gethostbyaddr failures [top $MaxGethostFailed]:\n"; +! } else { +! print "NNRP gethostbyaddr failures :\n"; +! } + print "IP Conn\n"; + if ($HTML) + { +*************** +*** 3883,3890 **** + print HTML " Connections "; + print HTML "\n\n"; + } +! foreach $ip (sort(keys (%nnrpd_gethostbyaddr))) + { + printf STDOUT ("%-64.64s %5d\n", + $ip, $nnrpd_gethostbyaddr{$ip}); + if ($HTML) +--- 3930,3939 ---- + print HTML " Connections "; + print HTML "\n\n"; + } +! foreach $ip (sort {$nnrpd_gethostbyaddr{$b} <=> $nnrpd_gethostbyaddr{$a}} +! (keys (%nnrpd_gethostbyaddr))) + { ++ last if (--$MaxGethostFailed < 0); + printf STDOUT ("%-64.64s %5d\n", + $ip, $nnrpd_gethostbyaddr{$ip}); + if ($HTML) +*************** +*** 3912,3918 **** + if (%nnrpd_unrecognized) + { + print HTML "\n" if ($HTML); +! print "NNRP unrecognized commands (by host) :\n"; + print "System Commands\n"; + if ($HTML) + { +--- 3961,3971 ---- + if (%nnrpd_unrecognized) + { + print HTML "\n" if ($HTML); +! if ($MaxNnrpdUnrecognized < scalar(keys (%nnrpd_unrecognized))) { +! print "NNRP unrecognized commands (by host) [top $MaxNnrpdUnrecognized]:\n"; +! } else { +! print "NNRP unrecognized commands (by host) :\n"; +! } + print "System Commands\n"; + if ($HTML) + { +*************** +*** 3921,3928 **** + print HTML " Commands "; + print HTML "\n\n"; + } +! foreach $client (sort(keys (%nnrpd_unrecognized))) + { + printf STDOUT ("%-64.64s %5d\n", + $client, $nnrpd_unrecognized{$client}); + if ($HTML) +--- 3974,3983 ---- + print HTML " Commands "; + print HTML "\n\n"; + } +! foreach $client (sort {$nnrpd_unrecognized{$b} <=> $nnrpd_unrecognized{$a}} +! (keys (%nnrpd_unrecognized))) + { ++ last if (--$MaxNnrpdUnrecognized < 0); + printf STDOUT ("%-64.64s %5d\n", + $client, $nnrpd_unrecognized{$client}); + if ($HTML) +*************** +*** 3962,3968 **** + $t_p = 0; + $t_c = 0; + print HTML "\n" if ($HTML); +! print "NNRP client timeouts :\n"; + print "System Conn Peer\n"; + if ($HTML) + { +--- 4017,4027 ---- + $t_p = 0; + $t_c = 0; + print HTML "\n" if ($HTML); +! if ($MaxClientTimeouts < scalar(keys (%nnrpd_timeout))) { +! print "NNRP client timeouts [top $MaxClientTimeouts]:\n"; +! } else { +! print "NNRP client timeouts :\n"; +! } + print "System Conn Peer\n"; + if ($HTML) + { +*************** +*** 3971,3981 **** + print HTML " Timeouts Reset by Peer "; + print HTML "\n\n"; + } +! foreach $client (sort(keys (%nnrpd_timeout))) + { + $t_o += $nnrpd_timeout{$client}; + $t_p += $nnrpd_reset_peer{$client}; + $t_c++; + printf STDOUT ("%-64.64s %5d %5d\n", + $client, $nnrpd_timeout{$client}, $nnrpd_reset_peer{$client}); + if ($HTML) +--- 4030,4042 ---- + print HTML " Timeouts Reset by Peer "; + print HTML "\n\n"; + } +! foreach $client (sort {$nnrpd_timeout{$b} <=> $nnrpd_timeout{$a}} +! (keys (%nnrpd_timeout))) + { + $t_o += $nnrpd_timeout{$client}; + $t_p += $nnrpd_reset_peer{$client}; + $t_c++; ++ next if (--$MaxClientTimeouts < 0); + printf STDOUT ("%-64.64s %5d %5d\n", + $client, $nnrpd_timeout{$client}, $nnrpd_reset_peer{$client}); + if ($HTML) diff -uNr inn-1.7-kr-beta/site/INSTALL.suh inn-1.7-kr/site/INSTALL.suh --- inn-1.7-kr-beta/site/INSTALL.suh Thu Jan 1 09:00:00 1970 +++ inn-1.7-kr/site/INSTALL.suh Wed Nov 26 18:54:15 1997 @@ -0,0 +1,66 @@ +From usenet-kr-owner@usenet.or.kr Wed Nov 26 18:52:38 1997 +Received: from usenet.or.kr (www.usenet.or.kr [134.75.30.13]) + by sdp.kigam.re.kr (8.8.7H1/8.8.7) with ESMTP id SAA28767 + for ; Wed, 26 Nov 1997 18:52:37 +0900 (GMT+0900) +Received: (from majordom@localhost) + by usenet.or.kr (8.8.7H1/8.8.7) id SAA24048 + for usenet-kr-outgoing; Wed, 26 Nov 1997 18:50:08 +0900 (KST) +X-Authentication-Warning: www.kreonet.re.kr: majordom set sender to owner-usenet-kr@usenet.or.kr using -f +Received: from sdp.kigam.re.kr (sdp.kigam.re.kr [134.75.144.201]) + by usenet.or.kr (8.8.7H1/8.8.7) with ESMTP id SAA24044 + for ; Wed, 26 Nov 1997 18:49:51 +0900 (KST) +Received: (from sysuh@localhost) + by sdp.kigam.re.kr (8.8.7H1/8.8.7) id SAA28755; + Wed, 26 Nov 1997 18:50:27 +0900 (GMT+0900) +Date: Wed, 26 Nov 1997 18:50:27 +0900 (GMT+0900) +From: Sang-yong Suh +Message-Id: <199711260950.SAA28755@sdp.kigam.re.kr> +To: cypark@kari.re.kr +Subject: Re: inn-1.7-kr beta install +Cc: usenet-kr@usenet.or.kr +References: <199711260927.SAA00521@kari.re.kr> +Sender: owner-usenet-kr@usenet.or.kr +Precedence: bulk +Reply-To: usenet-kr@usenet.or.kr +Status: R + +On Wed, 26 Nov 1997 18:27:51 +0900 (KST), You write: +> 오늘 디스크 하나가 불량이라서 교체를 의뢰했습니다. +> 그리고 inn-1.7-kr을 설치를 완료했습니다. + +축하드립니다. + +> 밀번님이 강의 하실때 두개의 프로세스를 이용하는 방법에 대하여 설명을하여 +> 주셨는데 rc.news에서는 수정을 하였습니다. +> 그런데 /etc/inetd.conf와 /etc/serices에 추가해야 되는 설명이 빠져 있어서 문의를 드립니다. + +그것이 빠졌군요. 다음은 innd를 port 120으로 돌릴때 환경설정을 +말씀드립니다. + +1. any-port.patch가 아직 불완전하다고 생각합니다. + 이유는 포스팅시 반드시 innd가 119로 작동하는 제 2 의 뉴스서버를 + 사용해야만 합니다. 며칠 후에 나올 inn-1.7-kr에서는 이 문제를 + 해결하겠습니다. + + 따라서 확실을 기하기 위해 inn-1.7-kr/include/configdata.h에서 + 119라는 숫자를 120으로 바꾸고 (한줄밖에 없음), inn-1.7-kr 디렉토리에서 + 다시 "make; su; make update; exit" 명령을 줍니다. + +2. 다음은 /etc/inetd.conf에 nntp 관련 줄을 넣는 것입니다. + 이것은 OS와 시스템에 따라 다릅니다. + + - Linux/Slackware + nntp stream tcp nowait news /usr/sbin/tcpd /usr/local/news/etc/nntp + + - Solaris-2.x + nntp stream tcp nowait news /usr/local/news/etc/in.nnrpd in.nnrpd + + 다른 시스템은 위의 예문을 참고하여 각자 실험해보시기 바랍니다. + +3. inetd를 재가동시키고 "telnet localhost nntp" 등으로 nnrp가 + 작동하는지를 확인합니다. + +4. 뉴스공급처에 포트 120으로 뉴스를 송신해달라고 얘기합니다. +-- +sysuh + diff -uNr inn-1.7-kr-beta/site/perlfilt/ignoregroups inn-1.7-kr/site/perlfilt/ignoregroups --- inn-1.7-kr-beta/site/perlfilt/ignoregroups Wed Nov 5 07:08:42 1997 +++ inn-1.7-kr/site/perlfilt/ignoregroups Wed Nov 26 11:52:36 1997 @@ -5,3 +5,4 @@ news.lists.filters rec.boats.marketplace alt.shoe.lesbians.moderated +han.news.stats