#!/usr/bin/perl

# Copyright (C) 2001-2002 NEC Corporation
# All Rights Reserved.

require "/opt/nec/wbmc/language.pl";
if($mes_language eq "Japanese"){
        require "/opt/nec/wbmc/bin/lang_j.pl";                  # ܸå
} else {
        require "/opt/nec/wbmc/bin/lang_e.pl";                  # Ѹå
}
$mes_work_string = "";

require "/opt/nec/wbmc/lib/wbmc.pl";
require "/opt/nec/wbmc/adm/proxy/common_roma.pl";

#accesslog.confؤΥѥ
$access_path ="/etc/opt/nec/wbmc/accesslog.conf";
$access_path_lock ="accesslog.conf";


#PUT_ACCESS.pidؤΥѥ
$PUT_ACCESS_pid_path = "/var/run/PUT_ACCESS.pid";
$PUT_ACCESS_pid_path_lock = "PUT_ACCESS.pid";

#PUT_ACCESSpidͤݻ
$PUT_ACCESS_pid = "-1";


#
#PUT_ACCESS.pid¸ߤpidĴ٤ƤޤưƤPUT_ACCESSkill
#

if ( -e $PUT_ACCESS_pid_path) {
	@file_pid=();
	if(!&readFile($PUT_ACCESS_pid_path, $PUT_ACCESS_pid_path_lock, *file_pid)) {
print <<`EOF`;
/bin/echo PUT_ACCESS.pid cannot open
EOF
	}

        for($i=0;$i<@file_pid;$i++){
                $file_pid[$i] =~ /(\d*)/;
                $PUT_ACCESS_pid = $1;
        }
print <<`EOF`;
echo kill PUT_ACCESS still moving
/bin/kill  -kill $PUT_ACCESS_pid
EOF

}

#
#PUT_ACCESS.pid(ҥץΤ߼¹)
#
if($pid = fork){
	
	system("/bin/echo $pid > $PUT_ACCESS_pid_path");

	#ҥץλΤԤ
	waitpid($pid,0);	

}
else{
	sleep 2;

	#       accesslog.ocnfեɹ
	if (!&readFile("$access_path", $access_path_lock, *file) ) {
print <<`EOF`;
		echo $access_path cannot open
EOF
	        exit(1);
	}

	# եƤɤ߽Ф
	$log_status                     = 0;
	$log_save_interval              = 0;
	$log_trance_type                = 0;
	$log_trance_machine             = "";
	$log_workgroup                  = "";
	$log_common                     = "";
	$log_user                       = "";
	$log_passwd                     = "";


	for ($i = 0; $i < @file; $i++) {

	        # ȤʤɤФ
	        if ($file[$i] =~ /\s*#/) {
	                next;
	        }
	        # 
	        if ($file[$i] =~ /^\s*LOG_SAVE_INTERVAL\s*=\s*(.*)\s*$/) {
	                $log_save_interval = $1;
	        }
	        # ž
	        if ($file[$i] =~ /^\s*LOG_TRANCE_TYPE\s*=\s*(.*)\s*$/) {
	                $log_trance_type = $1;
	        } 
	        # žޥ̾ 
	        if ($file[$i] =~ /^\s*LOG_TRANCE_MACHINE\s*=\s*(.*)\s*$/) {
	                $log_trance_machine = $1;
	        }
	        # 롼̾ 
	        if ($file[$i] =~ /^\s*LOG_WORKGROUP\s*=\s*(.*)\s*$/) {
	        	if ("$1" ne "") {
	                	$log_workgroup = "-W $1";
	        	}
	        }
	        # ͭ̾
	        if ($file[$i] =~ /^\s*LOG_COMMON\s*=\s*(.*)\s*$/) {
	                $log_common = $1;
	        }
	        # 桼̾
	        if ($file[$i] =~ /^\s*LOG_USER\s*=\s*(.*)\s*$/) {
	                $log_user = $1;
		}
	        # ѥ
	        if ($file[$i] =~ /^\s*LOG_PASSWD\s*=\s*(.*)\s*$/) {
	                $log_passwd = $1;
	        }
		#  
	        if ($file[$i] =~ /^\s*LOG_GENERATION\s*=\s*(.*)\s*$/) {
	                $log_generation = $1;
		}
		# ե̾
	        if ($file[$i] =~ /^\s*LOG_METHOD\s*=\s*(.*)\s*$/) {
	                $log_method = $1;
		}
	}

	#FTPΤȤ
	if($log_trance_type eq "0"){

		system("ftp -i -n $log_trance_machine < /etc/opt/nec/wbmc/ftp_command > /dev/null");
	}
	#SAMBAΤȤ
	else{

		system("/usr/bin/smbclient //$log_trance_machine/$log_common $log_passwd -U $log_user $log_workgroup -c 'lcd /var/log/roma;prompt off;mput access?*.log' ");

	}

	#
	#LOG_METHOD=generationΤȤѹ
	#

    if($log_method eq "generation"){
	#䤷ۤ飱᤹
	++$log_generation;
	if($log_generation > $log_save_interval){
		$log_generation=1;
	}


	for($i=0;$i<@file;$i++){
		if($file[$i] =~ /^LOG_GENERATION/){
			$file[$i]="LOG_GENERATION=$log_generation\n";
			last; 
		}
	}
    }


	if (!&writeFile($access_path, $access_path_lock, @file)) {
print<<`EOF`;

	echo $access_pash cannot write

EOF
	exit(1);
	}


	#λPUT_ACCESS.pid
	system("/bin/rm $PUT_ACCESS_pid_path");

	exit;

}
