<?php
$host="localhost";
$db_id="root";
$db_passwd="admin01";
$remote_db_host="10.77.77.77";// 원격 통계
$PACKETMON_HTTP_URL = "http://localhost:8888";
$NO_SERVER_IP = "255.255.255.255";

$IMAGEOCR_CONF_FILE = "/usr/local/imagefilter30/etc/imagefilter.conf";
$SPACE_CHAR = " " ;
$SLB_CONF_FILE = "/usr/local/imagefilter30/etc/slb.cfg";
$SLB_IP_FILE = "/etc/rc.d/slb_ip.sh";
$db_name="proshield";  

$connect = mysql_connect($host, $db_id, $db_passwd) or die (mysql_error());
mysql_select_db($db_name, $connect) or die (mysql_error());

$query = "set session character_set_connection=utf8;";
mysql_query($query, $connect);
$query = "set session character_set_client=utf8;";
mysql_query($query, $connect);
$query = "set session character_set_results=utf8;";
mysql_query($query, $connect);
$query = "set collation_connection=utf8_general_ci;";
mysql_query($query, $connect);

$flag = $_GET["flag"] ;
$agent_id = $_GET["client_mac"] ;
//$agent_id = "FCAA141C9AB3";
error_log ("schedule agent_id=" . $agent_id . "\n", 3, "/usr/local/imagefilter30/var/logs/php.log");

// 1. pc 아이피를 얻는다.
// 2. 해당 스케쥴 작업관리 에서 해당 IP 가 속하는 스케쥴을 얻는다.
// 3. 	searchscheduletype 	0: 매월 검사, 1: 매주 검사, 2: 매일 검사, 3: 특정일 검사
// 4. 매월일 경우 nthweekformonth	매월 n번째: 1 ~ 4
//		dayofweekformonth	1: 일요일, 2: 월요일, 3: 화요일, 4: 수요일, 5: 목요일, 6: 금요일, 7: 토요일
//  	searchhoursformonth 	매월 검사 수행 시간: 00 ~ 23
// 		searchminutesformonth	매월 검사 수행 분: 00 ~ 59
// 5. 매주일 경우	dayofweekforweek 	1: 일요일, 2: 월요일, 3: 화요일, 4: 수요일, 5: 목요일, 6: 금요일, 7: 토요일
//  	searchhoursforweek	매주 검사 수행 시간: 00 ~ 23
//		searchminutesforweek	매주 검사 수행 분: 00 ~ 59
// 6. 매일일 경우	searchhoursforday	매일 검사 수행 시간: 00 ~ 23
//		searchminutesforday	매일 검사 수행 분: 00 ~ 59
// 7. 지정일 검사인 경우 searchspecifieddate	검사 지정일자: yyyyMMdd
//		searchhoursforspecifieddate	지정일 검사 수행 시간: 00 ~ 23
//		searchminutesforspecifieddate	지정일 검사 수행 분: 00 ~ 59

$searchscheduletype = 0;
// 매월
$nthweekformonth = 1;
$dayofweekformonth = "00";
$searchhoursformonth = "00";
$searchminutesformonth = "00";
// 매주
$dayofweekforweek = 1;
$searchhoursforweek = "00";
$searchminutesforweek = "00";
// 매일
$searchhoursforday = "00";
$searchminutesforday = "00";
// 지정일
$searchspecifieddate = "2022-01-01";
$searchhoursforspecifieddate = "00";
$searchminutesforspecifieddate = "00";


// 1. agent_id 로 부터 client_ip 를 얻는다. T_CLIENT -> CLIENT_IP
// 2. check_domain 테이블에서 domain = 'CLIENT_IP' 조건의 code_dno 값을 얻는다.
// 3. T_GROUP 테이블에서 PROFILE_SEQ = code_dno 인 그룹에 속한 스케쥴을 얻는다. (PROFILE_SEQ 에 dno 값을 넣었기 때문에) 

// PC 아이피를 얻는다.
$client_ip = "";
$sql = "select CLIENT_IP from T_CLIENT where AGENT_ID = '" . $agent_id . "'";
error_log ("schedule sql=" . $sql . "\n", 3, "/usr/local/imagefilter30/var/logs/php.log");
$result=mysql_query($sql, $connect) or die (mysql_error());
while ($data = mysql_fetch_array($result)) {
	$client_ip = $data[0];
}
error_log ("schedule client ip=" . $client_ip . "\n", 3, "/usr/local/imagefilter30/var/logs/php.log");

// 그룹넘버를 구한다.
$code_dno = "";
$sql = "select code_dno from check_domain where domain = '" . $client_ip . "'";
error_log ("schedule sql=" . $sql . "\n", 3, "/usr/local/imagefilter30/var/logs/php.log");
$result=mysql_query($sql, $connect) or die (mysql_error());
while ($data = mysql_fetch_array($result)) {
	$code_dno = $data[0];
}
error_log ("schedule code_dno=" . $code_dno . "\n", 3, "/usr/local/imagefilter30/var/logs/php.log");

// 스케쥴을 얻는다.
$schedule_seq = "";
	$sql = 	" SELECT SCHEDULE_SEQ FROM T_GROUP G LEFT OUTER JOIN T_SCHEDULE C ON G.SCHEDULE_SEQ= C.SEQ WHERE WORK_NAME != ''";
	error_log ("schedule sql=" . $sql . "\n", 3, "/usr/local/imagefilter30/var/logs/php.log");

	$result=mysql_query($sql, $connect) or die (mysql_error());

	while ($data = mysql_fetch_array($result)) {
		$schedule_seq = $data[0];
	}
	error_log ("schedule schedule_seq=" . $schedule_seq . "\n", 3, "/usr/local/imagefilter30/var/logs/php.log");

// 날짜 정보를 얻는다.
// 1. FIXED_DATE 에 '000' 이 포함되어 있으면 '매달'
// 2. FIXED_DATE 가 null 이 아니고 '000' 이 포함되어 있지 않으면 '지정일'
// 3. FIXED_DATE 가 empty 이거나 '' 이면 '매주'
$fixed_date = "";
$start_time = "";
$WEEKDAY_0 = "";
$WEEKDAY_1 = "";
$WEEKDAY_2 = "";
$WEEKDAY_3 = "";
$WEEKDAY_4 = "";
$WEEKDAY_5 = "";
$WEEKDAY_6 = "";

	$sql = 	" SELECT * from T_SCHEDULE where SEQ = " . $schedule_seq . "";
	error_log ("schedule sql=" . $sql . "\n", 3, "/usr/local/imagefilter30/var/logs/php.log");

	$result=mysql_query($sql, $connect) or die (mysql_error());

	while ($data = mysql_fetch_array($result)) {
		$fixed_date = $data['FIXED_DATE'];
		$start_time = $data['START_TIME'];
		$WEEKDAY_0 = $data['WEEKDAY_0'];
		$WEEKDAY_1 = $data['WEEKDAY_1'];
		$WEEKDAY_2 = $data['WEEKDAY_2'];
		$WEEKDAY_3 = $data['WEEKDAY_3'];
		$WEEKDAY_4 = $data['WEEKDAY_4'];
		$WEEKDAY_5 = $data['WEEKDAY_5'];
		$WEEKDAY_6 = $data['WEEKDAY_6'];

	}
	error_log ("schedule fixed_date=[" . $fixed_date . "]\n", 3, "/usr/local/imagefilter30/var/logs/php.log");

	//0: 매월 검사, 1: 매주 검사, 2: 매일 검사, 3: 특정일 검사
	if (strstr($fixed_date, "000"))
	{
		// 매달	
		$start_time_array = explode(":", $start_time);
		$searchscheduletype = "0";
		error_log ("schedule: 매달\n", 3, "/usr/local/imagefilter30/var/logs/php.log");
	} else if (strstr($fixed_date, "111"))
	{
		// 매일	
		$start_time_array = explode(":", $start_time);
		$searchscheduletype = "2";
		$searchspecifieddate = "00";
		$searchhoursforday = $start_time_array[0];
		$searchminutesforday = $start_time_array[1];
		$searchspecifieddate = "00";
		$searchhoursforspecifieddate = "00";
		$searchminutesforspecifieddate = "00";
		error_log ("schedule: 매일, ". $searchhoursforspecifieddate . ":" .$searchminutesforspecifieddate . "\n", 3, "/usr/local/imagefilter30/var/logs/php.log");
	} else if (!strstr($fixed_date, "000") && !strstr($fixed_date, "111") && strstr($fixed_date, "-"))
	{
		// 지정일	
		$start_time_array = explode(":", $start_time);
		$searchscheduletype = "3";
		$searchspecifieddate = $fixed_date;
		$searchhoursforspecifieddate = $start_time_array[0];
		$searchminutesforspecifieddate = $start_time_array[1];
		error_log ("schedule: 지정일, ". $searchspecifieddate . " " . $searchhoursforspecifieddate . ":" .$searchminutesforspecifieddate . "\n", 3, "/usr/local/imagefilter30/var/logs/php.log");
	} else if (strstr($WEEKDAY_0, "1") || strstr($WEEKDAY_1, "1") || strstr($WEEKDAY_2, "1") || strstr($WEEKDAY_3, "1") || strstr($WEEKDAY_4, "1") || strstr($WEEKDAY_5, "1") || strstr($WEEKDAY_6, "1"))
	{
		// 매주	
		$start_time_array = explode(":", $start_time);
		$searchscheduletype = "1";
		error_log ("schedule: 매주\n", 3, "/usr/local/imagefilter30/var/logs/php.log");
	} 

if($connect) mysql_close($connect);


$xml = "<?xml version=\"1.0\" encoding='UTF-8'?>";
$xml .= "<zavaware>";
$xml .= "  <command>RESERVE_SEARCH</command>";
$xml .= "  <errorcode>0000</errorcode>";
$xml .= "  <errormsg>정상 처리</errormsg>";
$xml .= "  <response>";
$xml .= "    <policylist>";
$xml .= "      <policy>";
$xml .= "        <policyno>1</policyno>";
$xml .= "        <searchscheduletype>" . $searchscheduletype . "</searchscheduletype>";
$xml .= "        <nthweekformonth>" . $nthweekformonth . "</nthweekformonth>";
$xml .= "        <dayofweekformonth>" . $dayofweekformonth . "</dayofweekformonth>";
$xml .= "        <searchhoursformonth>" . $searchhoursformonth . "</searchhoursformonth>";
$xml .= "        <searchminutesformonth>" . $searchminutesformonth . "</searchminutesformonth>";
$xml .= "        <dayofweekforweek>" . $dayofweekforweek . "</dayofweekforweek>";
$xml .= "        <searchhoursforweek>" . $searchhoursforweek . "</searchhoursforweek>";
$xml .= "        <searchminutesforweek>" . $searchminutesforweek . "</searchminutesforweek>";
$xml .= "        <searchhoursforday>" . $searchhoursforday . "</searchhoursforday>";
$xml .= "        <searchminutesforday>" . $searchminutesforday . "</searchminutesforday>";
$xml .= "        <searchspecifieddate>" . $searchspecifieddate . "</searchspecifieddate>";
$xml .= "        <searchhoursforspecifieddate>" . $searchhoursforspecifieddate . "</searchhoursforspecifieddate>";
$xml .= "        <searchminutesforspecifieddate>" . $searchminutesforspecifieddate . "</searchminutesforspecifieddate>";
$xml .= "        <searchmethod>0</searchmethod>";
$xml .= "        <includedocsflag>1</includedocsflag>";
$xml .= "        <includeimgsflag>1</includeimgsflag>";
$xml .= "        <includezipsflag>1</includezipsflag>";
$xml .= "        <searchfileextensionlist>";
$xml .= "          <searchfileextension>";
$xml .= "            <fileextension>xls</fileextension>";
$xml .= "            <filetype>0</filetype>";
$xml .= "          </searchfileextension>";
$xml .= "          <searchfileextension>";
$xml .= "            <fileextension>xlsx</fileextension>";
$xml .= "            <filetype>0</filetype>";
$xml .= "          </searchfileextension>";
$xml .= "          <searchfileextension>";
$xml .= "            <fileextension>jpeg</fileextension>";
$xml .= "            <filetype>1</filetype>";
$xml .= "          </searchfileextension>";
$xml .= "          <searchfileextension>";
$xml .= "            <fileextension>jpg</fileextension>";
$xml .= "           <filetype>1</filetype>";
$xml .= "          </searchfileextension>";
$xml .= "          <searchfileextension>";
$xml .= "            <fileextension>zip</fileextension>";
$xml .= "            <filetype>2</filetype>";
$xml .= "          </searchfileextension>";
$xml .= "        </searchfileextensionlist>";
$xml .= "      </policy>";
$xml .= "    </policylist>";
$xml .= "  </response>";
$xml .= "</zavaware>";

header('Content-type: text/xml');
echo $xml;
?>