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.                  <sysuh@kigam.re.kr>
+
+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.                          <sysuh@kigam.re.kr>
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 "<CENTER><TABLE BORDER=1>\n";
+      print HTML "<TR><TH ALIGN=LEFT> Reason </TH><TH> Number </TH></TR>\n<TR></TR>\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 ("<TR><TD ALIGN=CENTER>%s</TD><TD ALIGN=RIGHT>%d</TD></TR>\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 "</TABLE></CENTER><P><HR><P>\n" if ($HTML);
+    print "\n";
+    
+***************
+*** 3814,3820 ****
+    print HTML "<A NAME=\"nnrpd_groups2\">\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 "<A NAME=\"nnrpd_groups2\">\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 "<A NAME=\"nnrpd_no_permission\">\n" if ($HTML);
+!   print "NNRP no permission clients :\n";
+    print "System                                                            Conn\n";
+    if ($HTML)
+    {
+--- 3885,3895 ----
+  if (%nnrpd_no_permission)
+  {
+    print HTML "<A NAME=\"nnrpd_no_permission\">\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 "<A NAME=\"nnrpd_gethostbyaddr\">\n" if ($HTML);
+!   print "NNRP gethostbyaddr failures :\n";
+    print "IP                                                                Conn\n";
+    if ($HTML)
+    {
+--- 3917,3927 ----
+  if ((%nnrpd_gethostbyaddr) && ($WANT_GETHOSTFAILED))
+  {
+    print HTML "<A NAME=\"nnrpd_gethostbyaddr\">\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 "<TH> Connections </TH>";
+      print HTML "</TR>\n<TR></TR>\n";
+    }
+!   foreach $ip (sort(keys (%nnrpd_gethostbyaddr)))
+    {
+      printf STDOUT ("%-64.64s %5d\n", 
+  	    $ip, $nnrpd_gethostbyaddr{$ip});
+      if ($HTML)
+--- 3930,3939 ----
+      print HTML "<TH> Connections </TH>";
+      print HTML "</TR>\n<TR></TR>\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 "<A NAME=\"nnrpd_unrecognized\">\n" if ($HTML);
+!   print "NNRP unrecognized commands (by host) :\n";
+    print "System                                                        Commands\n";
+    if ($HTML)
+    {
+--- 3961,3971 ----
+  if (%nnrpd_unrecognized)
+  {
+    print HTML "<A NAME=\"nnrpd_unrecognized\">\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 "<TH> Commands </TH>";
+      print HTML "</TR>\n<TR></TR>\n";
+    }
+!   foreach $client (sort(keys (%nnrpd_unrecognized)))
+    {
+      printf STDOUT ("%-64.64s %5d\n", 
+  	    $client, $nnrpd_unrecognized{$client});
+      if ($HTML)
+--- 3974,3983 ----
+      print HTML "<TH> Commands </TH>";
+      print HTML "</TR>\n<TR></TR>\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 "<A NAME=\"nnrpd_timeout\">\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 "<A NAME=\"nnrpd_timeout\">\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 "<TH> Timeouts </TH><TH> Reset by Peer </TH>";
+      print HTML "</TR>\n<TR></TR>\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 "<TH> Timeouts </TH><TH> Reset by Peer </TH>";
+      print HTML "</TR>\n<TR></TR>\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 <sysuh@kigam.re.kr>; 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 <usenet-kr@usenet.or.kr>; 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 <sysuh@kigam.re.kr>
+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
