This commit is contained in:
biosvos
2026-08-07 17:38:18 +09:00
commit 873193a243
9613 changed files with 2755992 additions and 0 deletions
+21
View File
@@ -0,0 +1,21 @@
Revision 0470
-------------------
수정일 : 2011-01-04
수정자 : 노경민
- NEW: SVN 신규 등록
- ISM 관련 RC,VRC,FHS 등록, 삭제관련 command line tools
- PHP로 개발됨
- php, php for mysql 설치 필요(CentOS 경우 yum으로 모두 가능)
- 설치 장비 : 222.122.152.138(양방향 ISM Web서버), /user/ISMCLI/
Revision 0520
-------------------
수정일 : 2011-04-18
수정자 : 김오종
- CHG: 문자수신시 사용할 host_name 필드 추가.
- 수정 파일 : inc/utils.inc
+122
View File
@@ -0,0 +1,122 @@
<?php
define('SQL_ASSOC', MYSQL_ASSOC);
define('SQL_NUM', MYSQL_NUM);
define('SQL_BOTH', MYSQL_BOTH);
define('CRLF', "\r\n");
class dbconnect
{
var $showError;
var $dbc;
function dbconnect($host, $user, $pass, $base, $file = '', $line = 0)
{
if(!$this->dbc = mysql_connect($host, $user, $pass))
{
$error = 'Cannot connect to MySQL server. In file '.$file.' in line '.$line.'. Date: '.date('Y-m-d H:i:s').'<br />'.CRLF;
echo $error;
//die($error);
return ;
}
if(!@mysql_query("USE ".$base, $this->dbc))
{
$error = 'Error <b>'.@mysql_error($this->dbc).'</b> in query <b>'.$query.'</b>. In file '.$file.' in line '.$line.'. Date: '.date('Y-m-d H:i:s').'<br />'.CRLF;
//die($error);
echo $error;
return ;
}
$this->showError = true;
}
function query($query, $file = '', $line = 0)
{
if(!$result = @mysql_query($query, $this->dbc))
{
$error = 'Error <b>'.@mysql_error($this->dbc).'</b> in query <b>'.$query.'</b>. In file '.$file.' in line '.$line.'. Date: '.date('Y-m-d H:i:s').'<br />'.CRLF;
if($this->showError)
{
echo $error;
}
}
return new dbcResult($result);
}
function query_bool($query, $file = '', $line = 0)
{
if(!$result = @mysql_query($query, $this->dbc))
{
$error = 'Error <b>'.@mysql_error($this->dbc).'</b> in query <b>'.$query.'</b>. In file '.$file.' in line '.$line.'. Date: '.date('Y-m-d H:i:s').'<br />'.CRLF;
if($this->showError)
{
echo $error;
}
}
return ($result?true:false);
}
function insert_id()
{
$id = $this->firstCell("SELECT LAST_INSERT_ID() as id");
return $id;
}
function fetch_array($query, $type = SQL_BOTH)
{
$result = $this->query($query);
return $result->fetch_array($type);
}
function first_cell($query)
{
$result = $this->query($query);
$row = $result->fetch_array(SQL_NUM);
return $row[0];
}
function change_base($base, $file = '', $line = 0)
{
if(!$result = @mysql_query('USE '.$base, $this->dbc))
{
$error = 'Error <b>'.@mysql_error($this->dbc).'</b> in query <b>'.$query.'</b>. In file '.$file.' in line '.$line.'. Date: '.date('Y-m-d H:i:s').'<br />'.CRLF;
if($this->showError)
{
echo $error;
}
}
return ($result?true:false);
}
function close()
{
@mysql_close($this->dbc);
unset($this);
}
}
class dbcResult
{
function dbcResult($result)
{
$this->result = $result;
}
function fetch_array($type = SQL_BOTH)
{
return @mysql_fetch_array($this->result, $type);
}
function first_cell()
{
$row = @mysql_fetch_row($this->result);
return $row[0];
}
function num_rows()
{
return @mysql_num_rows($this->result);
}
}
?>
+904
View File
@@ -0,0 +1,904 @@
<?
require_once ("mysql.inc");
// global varialbe
$g_debug = 0;
// Debug Print
function debugPrint( ) {
global $g_debug;
if(!$g_debug)
return;
echo "DEBUG : ";
for( $i= 0 ; $i < func_num_args() ; ++$i ) {
if ( is_array(func_get_arg ( $i )) )
print_r(func_get_arg ( $i ));
else
echo func_get_arg ( $i );
}
echo "\n";
}
//version print
function versionPrint() {
$product_Version = "3.0.1";
$svn_revision = "520";
$date = "20110418172000";
echo "ismcli : $product_Version.$svn_revision-$date\n";
}
// usage print
function usqgePrint($prg) {
echo "Usage: ".$prg." [OPTION] [--] [args...]\n";
echo " ".$prg." -i <user_id> -m <job_type> [--] [args...]\n";
echo " ".$prg." -i <user_id> -m add_rc --rc_name=<rc_name>\n";
echo " ".$prg." -i <user_id> -m add_vrc --rc_name=<rc_name> --vrc_name=<vrc_name> ".
"--svc_ext_type=<vrc_ext_type>\n";
echo " ".$prg." -i <user_id> -m add_fhs --rc_name=<rc_name> --vrc_name=<vrc_name> ".
"--svc_ext_type=<fhs_ext_type> --fhs_name=<fhs_name> --host_name=<host_name> --private_ip=<private_ip> ".
"--publics_ips=<1st_public_ip:2nd_public_ip> \n";
echo " ".$prg." -i <user_id> -m add_fhs --rc_name=<rc_name> --vrc_name=<vrc_name> ".
"--svc_ext_type=<fhs_ext_type> --fhs_list=<file> \n";
echo " ".$prg." -i <user_id> -m del_rc --rc_name=<rc_name> \n";
echo " ".$prg." -i <user_id> -m del_vrc --rc_name=<rc_name> --vrc_name=<vrc_name>\n";
echo " ".$prg." -i <user_id> -m del_fhs --rc_name=<rc_name> --fhs_name=<fhs_name>\n";
echo " -v Version number\n";
echo " -i Specifies the user.\n";
echo " -m Run job_type.\n";
echo " add_rc add rc\n";
echo " add_vrc add vrc\n";
echo " add_fhs add fhs\n";
echo " del_rc delete rc\n";
echo " del_vrc delete vrc\n";
echo " del_fhs delete fhs\n";
echo " args... \n";
echo " --rc_name rc name\n";
echo " --vrc_name vrc name\n";
echo " --fhs_name fhs name\n";
echo " --host_name host name\n";
echo " --svc_ext_type service extend type of fhs or vrc \n";
echo " --private_ip private ip of fhs\n";
echo " --publics_ips public ip of fhs\n";
echo " --fhs_list read list of fhs from file \n";
echo " file fromat : \n";
echo " <fhs_name>:<host_name>:<private_ip>:<publics_1st>:<publics_2nd><CR><LF>\n";
}
// parsing argument list
function parseArgs($argv) {
$options = $argv;
$shortopts = "i:m:D::f:v::";
$longopts = array(
"rc_name:",
"vrc_name:",
"fhs_name:",
"host_name:",
"svc_ext_type:",
"private_ip:",
"publics_ips:",
"fhs_list:",
);
//$options = getopt($shortopts);
$options = _getopt($shortopts, $longopts);
if(empty($options)) {
usqgePrint($argv[0]);
return NULL;
}
// version print
if(!empty($options['v'])) {
versionPrint();
return NULL;
}
// check deboug flag
if(!empty($options['D'])) {
global $g_debug;
$g_debug = 1;
}
// public ip
if(!empty($options['publics_ips']))
{
$pubips = explode(":", $options['publics_ips']);
$options['publics_1st'] = $pubips[0];
$options['publics_2nd'] = "";
if(!empty($pubips[1]))
$options['publics_2nd'] = $pubips[1];
}
// set file read path
if(!empty($options['fhs_list']))
{
$options["read_path"] = $options['fhs_list'];
}
return $options;
}
// check options
function checkopts($options) {
// check id
if( chkvalempty($options, 'i') )
return 1;
switch($options['i']) // strtolower()
{
case 'svc1':
break;
case 'ktics':
break;
case 'op':
break;
default:
echo "ERROR : invalid id : '".$options['i']."'\n";
return 1;
}
// check -f ,-m
if( !empty($options['f']) && !empty($options['m']) )
{
echo "ERROR : Options '-f' can't be used simultaneously with Options '-m'.\n";
return 1;
}
else if(empty($options['f'])) // -m
{
//check mode : ADD_RC, ADD_VRC, ADD_FHS, DEL_RC, DEL_VCR, DEL_FHS
// check mode
if( chkvalempty($options, 'm') )
return 1;
switch($options['m']) // strtolower()
{
case 'add_rc':
// check rc_name;
if(chkvalempty($options,'rc_name'))
return 1;
break;
case 'add_vrc':
// check rc_name;
if(chkvalempty($options,'rc_name'))
return 1;
// check vrc_name;
if(chkvalempty($options,'vrc_name'))
return 1;
// check __svc_ext_type
if(chkvalempty($options,'svc_ext_type'))
return 1;
break;
case 'add_fhs':
// check rc_name;
if(chkvalempty($options,'rc_name'))
return 1;
// check vrc_name;
if(chkvalempty($options,'vrc_name'))
return 1;
if( empty($options["fhs_list"]) )
{
// check fhs_name;
if(chkvalempty($options,'fhs_name'))
return 1;
// check host_name;
if(chkvalempty($options,'host_name'))
return 1;
// check __svc_ext_type
if(chkvalempty($options,'svc_ext_type'))
return 1;
// {Private IP}
if(chkvalempty($options,'private_ip'))
return 1;
// {1st Public IP}
// {2nd Public IP}
if(chkvalempty($options,'publics_ips'))
return 1;
}
else
{
// check __svc_ext_type
if(chkvalempty($options,'svc_ext_type'))
return 1;
// check value fhs_list
if(chkvalempty($options,'fhs_list'))
return 1;
}
break;
case 'del_rc':
// check rc_name;
if(chkvalempty($options,'rc_name'))
return 1;
break;
case 'del_vrc':
// check rc_name;
if(chkvalempty($options,'rc_name'))
return 1;
// check vrc_name;
if(chkvalempty($options,'vrc_name'))
return 1;
break;
case 'del_fhs':
// check rc_name;
if(chkvalempty($options,'rc_name'))
return 1;
if( empty($options["fhs_list"]) )
{
// check fhs_name;
if(chkvalempty($options,'fhs_name'))
return 1;
}
else
{
// check value fhs_list
if(chkvalempty($options,'fhs_list'))
return 1;
}
break;
default:
echo "ERROR : Unkown mode : '".$options['m']."'\n";
return 1;
}
}
else if(empty($options['m'])) // -f
{
// check value
if( chkvalempty($options, 'f') )
return 1;
}
return 0;
}
// check vlaue empty
function chkvalempty(&$o, $name) {
if( empty($o[$name])|| $o[$name] == " " ) {
if(strlen($name) > 1)
echo "ERROR : empty value '--".$name."'\n";
else
echo "ERROR : empty value '-".$name."'\n";
return 1;
}
return 0;
}
// convert to ISM command
function convert2ISMcommand($options) {
$r = array();
$command = array();
$code = array();
switch($options['m']) // strtolower()
{
case 'add_rc':
$code['type'] = 301;
$code['type_name'] = "_ADD_RC";
$command['file_path'] = "/hostservices/physical/".
$options['rc_name']."/".
$options['rc_name'].".cfg";
$command['h_host_name'] = $options['rc_name'];
$command['h_alias'] = "";
$command['use'] = "virtual-ics-host";
$command['check_command'] = "check-rc!\$HOSTNAME$!\$HOSTSTATEID:".
"hg_".$options['rc_name'].":,$";
$command['hostgroups'] = "hg_physical";
$command['address'] = "";
$command['notes'] = "physical";
$command['__related_to'] = "";
$command['__type'] = "RC";
$command['__svc_type'] = "C000";
$command['__svc_ext_type'] = "";
$command['__svc_cont_seq'] = "";
$command['__private_address1'] = "";
$command['__public_address1'] = "";
$command['__public_address2'] = "";
$command['hostgroup_name1'] = "hg_".$options['rc_name'];
$command['alias1'] = $options['rc_name']." hostgroup";
$command['hostgroup_name2'] = "rhg_".$options['rc_name'];
$command['alias2'] = $options['rc_name']." real hostgroup";
$command['s_host_name'] = $options['rc_name'];
$command['service_description'] = $options['rc_name'];
$command['s_use'] = "rc-service";
$command['servicegroups'] = "";
$command['s_notes'] = "physical";
$command['servicegroup_name'] = "";
$command['s_alias'] = "";
break;
case 'add_vrc':
$code['type'] = 304;
$code['type_name'] = "_ADD_VRC";
$vrc_name = $options['vrc_name'].".".$options['rc_name'];
$command['file_path'] = "/hostservices/physical/".
$options['rc_name']."/".
$vrc_name."/".
$vrc_name.".cfg";
$command['h_host_name'] = $vrc_name;
$command['h_alias'] = "";
$command['use'] = "cs-vrc-host";
$command['check_command'] = "check-vrc!\$HOSTNAME$!\$SERVICESTATEID:".
"sg_".$vrc_name.":,$";
$command['hostgroups'] = "hg_".$options['rc_name'];
$command['address'] = "";
$command['notes'] = $options['rc_name'];
$command['__related_to'] = "vhg_".$vrc_name;
$command['__type'] = "VRC";
$command['__svc_type'] = "C001";
$command['__svc_ext_type'] = $options['svc_ext_type'];
$command['__svc_cont_seq'] = "";
$command['__private_address1'] = "";
$command['__public_address1'] = "";
$command['__public_address2'] = "";
$command['hostgroup_name1'] = "hg_".$vrc_name;
$command['alias1'] = $vrc_name." hostgroup";
$command['hostgroup_name2'] = "vhg_".$vrc_name;
$command['alias2'] = $vrc_name.
" virtual hostgroup";
$command['s_host_name'] = $vrc_name;
$command['service_description'] = $vrc_name;
$command['s_use'] = "cs-vrc-service";
$command['servicegroups'] = "";
$command['s_notes'] = $options['rc_name'];
$command['servicegroup_name'] = "sg_".$vrc_name;
$command['s_alias'] = $vrc_name." service group";
break;
case 'add_fhs':
$code['type'] = 307;
$code['type_name'] = "_ADD_FHS";
$vrc_name = $options['vrc_name'].".".$options['rc_name'];
$fhs_name = $options['fhs_name'].".".$options['rc_name'];
$command['file_path'] = "/hostservices/physical/".
$options['rc_name']."/".
$vrc_name."/".
$fhs_name.".cfg";
$command['h_host_name'] = $fhs_name;
$command['h_alias'] = $options['host_name'];
$command['use'] = "cs-fhs-host";
$command['check_command'] = "";
$command['hostgroups'] = "hg_".$vrc_name.
",rhg_".$options['rc_name'];
$command['address'] = $options['publics_1st'];
$command['notes'] = $vrc_name;
$command['__related_to'] = "vhg_".$fhs_name;
$command['__type'] = "FHS";
$command['__svc_type'] = "C001";
$command['__svc_ext_type'] = $options['svc_ext_type'];
$command['__svc_cont_seq'] = "";
$command['__private_address1'] = $options['private_ip'];
$command['__public_address1'] = $options['publics_1st'];
$command['__public_address2'] = $options['publics_2nd'];
$command['hostgroup_name1'] = "vhg_".$fhs_name;
$command['alias1'] = $fhs_name.
" virtual hostgroup";
$command['hostgroup_name2'] = "";
$command['alias2'] = "";
$command['s_host_name'] = $fhs_name;
$command['service_description'] = $fhs_name;
$command['s_use'] = "cs-".$options['svc_ext_type']."-fhs-service";
$command['servicegroups'] = "sg_".$vrc_name;
$command['s_notes'] = $vrc_name;
$command['servicegroup_name'] = "";
$command['s_alias'] = "";
break;
case 'del_rc':
$code['type'] = 302;
$code['type_name'] = "_DEL_RC";
$command['file_path'] = $options['rc_name'].".cfg";
$command['h_host_name'] = $options['rc_name'];
break;
case 'del_vrc':
$code['type'] = 305;
$code['type_name'] = "_DEL_VRC";
$vrc_name = $options['vrc_name'].".".$options['rc_name'];
$command['file_path'] = $vrc_name.".cfg";
$command['h_host_name'] = $vrc_name;
break;
case 'del_fhs':
$code['type'] = 308;
$code['type_name'] = "_DEL_FHS";
$fhs_name = $options['fhs_name'].".".$options['rc_name'];
$command['file_path'] = $fhs_name.".cfg";
$command['h_host_name'] = $fhs_name;
break;
}
$code['user'] = $options['i'];
$r['code'] = $code;
$r['command'] = $command;
return $r;
}
// read file
function filereaddata($path) {
$data = array();
// read
$lines = @file($path);
if(empty($lines)) {
echo "ERROR : file read error. - ".$path."\n";
return NULL;
}
// remove comment(//,#)
foreach ($lines as $line_num => $line) {
$line = rtrim($line);
$debug_str = $line_num." - ".$line;
debugPrint("Read Data :", $debug_str);
$p = preg_split("/[#]|[\/\/]/", $line);
if(!empty($p[0]))
$data[] = $p[0];
}
if(empty($data)) {
echo "ERROR : empty data. - ".$path."\n";
}
return $data;
}
// parsing file read data
function parsefiledata($parstype, $dataes) {
$r = array();
$c = 0;
foreach ($dataes as $line_num => $line) {
debugPrint("parsing....", $line);
$line = $line;
$parse = explode(":", $line);
if(empty($parse))
continue;
switch($parstype) {
case 'add_fhs':
$r[$c]['fhs_name'] = $parse[0];
$r[$c]['host_name'] = $parse[1];
// check
if(empty($parse[2]) || empty($parse[3])) {
unset($r[$c]);
echo "ERROR : parseing data. - ".$line."\n";
continue;
}
$r[$c]['private_ip'] = $parse[2];
$r[$c]['publics_1st'] = $parse[3];
if(!empty($parse[4])) {
$r[$c]['publics_2nd'] = $parse[4];
}
else
$r[$c]['publics_2nd'] ="";
break;
case 'del_fhs':
$r[$c]['fhs_name'] = $parse[0];
break;
}
++$c;
}
if(empty($r)) {
echo "ERROR : empty parseing data.\n";
}
return $r;
}
// set Option
function setOption(&$option, $data)
{
switch($option['m']) {
case 'add_fhs':
$option['fhs_name'] = $data['fhs_name'];
$option['host_name'] = $data['host_name'];
$option['private_ip'] = $data['private_ip'];
$option['publics_1st'] = $data['publics_1st'];
$option['publics_2nd'] = $data['publics_2nd'];
break;
case 'del_fhs':
$option['fhs_name'] = $data['fhs_name'];
break;
}
}
// insert ISM
function insertData($data) {
$r = 0;
$dbConnMySql = new dbconnect('222.122.152.140', 'nagios', 'nagiosakstp',
'nagios', __FILE__, __LINE__);
// chage array to string
$command = implode(";", $data['command'] );
$sql = "INSERT INTO ism_commands ".
"( USERID, REGTIME, COMMAND_TYPE,".
"COMMAND_NAME, COMMAND_ARGS, STATUS, ERRNO ) ".
"VALUES ( '".$data['code']['user']."', NOW(), ".
$data['code']['type'].", '".$data['code']['type_name']."', '".
$command."', 0, 0)";
debugPrint("SQL : ", $sql);
$res = $dbConnMySql->query($sql,__FILE__, __LINE__ );
if( !$res->result )
{
echo "ERROR : Fail to insert data.\n";
$r = 1;
}
$dbConnMySql->close();
return $r;
}
/* Gets options from the command line argument list */
function _getopt ( ) {
/* _getopt(): Ver. 1.3 2009/05/30
My page: http://www.ntu.beautifulworldco.com/weblog/?p=526
Usage: _getopt ( [$flag,] $short_option [, $long_option] );
Note that another function split_para() is required, which can be found in the same
page.
_getopt() fully simulates getopt() which is described at
http://us.php.net/manual/en/function.getopt.php , including long options for PHP
version under 5.3.0. (Prior to 5.3.0, long options was only available on few systems)
Besides legacy usage of getopt(), I also added a new option to manipulate your own
argument lists instead of those from command lines. This new option can be a string
or an array such as
$flag = "-f value_f -ab --required 9 --optional=PK --option -v test -k";
or
$flag = array ( "-f", "value_f", "-ab", "--required", "9", "--optional=PK", "--option" );
So there are four ways to work with _getopt(),
1. _getopt ( $short_option );
it's a legacy usage, same as getopt ( $short_option ).
2. _getopt ( $short_option, $long_option );
it's a legacy usage, same as getopt ( $short_option, $long_option ).
3. _getopt ( $flag, $short_option );
use your own argument lists instead of command line arguments.
4. _getopt ( $flag, $short_option, $long_option );
use your own argument lists instead of command line arguments.
*/
if ( func_num_args() == 1 ) {
$flag = $flag_array = $GLOBALS['argv'];
$short_option = func_get_arg ( 0 );
$long_option = array ();
} else if ( func_num_args() == 2 ) {
if ( is_array ( func_get_arg ( 1 ) ) ) {
$flag = $GLOBALS['argv'];
$short_option = func_get_arg ( 0 );
$long_option = func_get_arg ( 1 );
} else {
$flag = func_get_arg ( 0 );
$short_option = func_get_arg ( 1 );
$long_option = array ();
}
} else if ( func_num_args() == 3 ) {
$flag = func_get_arg ( 0 );
$short_option = func_get_arg ( 1 );
$long_option = func_get_arg ( 2 );
} else {
exit ( "wrong options\n" );
}
$short_option = trim ( $short_option );
$short_no_value = array();
$short_required_value = array();
$short_optional_value = array();
$long_no_value = array();
$long_required_value = array();
$long_optional_value = array();
$options = array();
for ( $i = 0; $i < strlen ( $short_option ); ) {
if ( $short_option[$i] != ":" ) {
if ( $i == strlen ( $short_option ) - 1 ) {
$short_no_value[] = $short_option[$i];
break;
} else if ( $short_option[$i+1] != ":" ) {
$short_no_value[] = $short_option[$i];
$i++;
continue;
} else if ( $short_option[$i+1] == ":"
&&( empty($short_option[$i+2]) || $short_option[$i+2] != ":" )) {
$short_required_value[] = $short_option[$i];
$i += 2;
continue;
} else if ( $short_option[$i+1] == ":" && $short_option[$i+2] == ":" ) {
$short_optional_value[] = $short_option[$i];
$i += 3;
continue;
}
} else {
continue;
}
}
foreach ( $long_option as $a ) {
if ( substr( $a, -2 ) == "::" ) {
$long_optional_value[] = substr( $a, 0, -2);
continue;
} else if ( substr( $a, -1 ) == ":" ) {
$long_required_value[] = substr( $a, 0, -1 );
continue;
} else {
$long_no_value[] = $a;
continue;
}
}
if ( is_array ( $flag ) )
$flag_array = $flag;
else {
$flag = "- $flag";
$flag_array = split_para( $flag );
}
for ( $i = 0; $i < count( $flag_array ); ) {
if ( $i >= count ( $flag_array ) )
break;
if ( ! $flag_array[$i] || $flag_array[$i] == "-" ) {
$i++;
continue;
}
if ( $flag_array[$i]{0} != "-" ) {
$i++;
continue;
}
if ( substr( $flag_array[$i], 0, 2 ) == "--" ) {
if (strpos($flag_array[$i], '=') != false) {
list($key, $value) = explode('=', substr($flag_array[$i], 2), 2);
if ( in_array ( $key, $long_required_value ) || in_array ( $key, $long_optional_value ) )
$options[$key][] = $value;
$i++;
continue;
}
if (strpos($flag_array[$i], '=') == false) {
$key = substr( $flag_array[$i], 2 );
if ( in_array( substr( $flag_array[$i], 2 ), $long_required_value ) ) {
if(empty($flag_array[$i+1]))
$options[$key][] = " ";
else
$options[$key][] = $flag_array[$i+1];
$i += 2;
continue;
} else if ( in_array( substr( $flag_array[$i], 2 ), $long_optional_value ) ) {
if ( $flag_array[$i+1] != "" && $flag_array[$i+1]{0} != "-" ) {
$options[$key][] = $flag_array[$i+1];
$i += 2;
} else {
$options[$key][] = FALSE;
$i ++;
}
continue;
} else if ( in_array( substr( $flag_array[$i], 2 ), $long_no_value ) ) {
$options[$key][] = FALSE;
$i++;
continue;
} else {
$i++;
continue;
}
}
} else if ( $flag_array[$i]{0} == "-" && $flag_array[$i]{1} != "-" ) {
for ( $j=1; $j < strlen($flag_array[$i]); $j++ ) {
if ( in_array( $flag_array[$i]{$j}, $short_required_value ) || in_array( $flag_array[$i]{$j}, $short_optional_value )) {
if ( $j == strlen($flag_array[$i]) - 1 ) {
if ( in_array( $flag_array[$i]{$j}, $short_required_value ) ) {
if(empty($flag_array[$i+1]))
$options[$flag_array[$i]{$j}][] = " ";
else
$options[$flag_array[$i]{$j}][] = $flag_array[$i+1];
$i += 2;
} else if ( in_array( $flag_array[$i]{$j}, $short_optional_value )
/*&& ( empty($flag_array[$i+1]) || ($flag_array[$i+1] != "" && $flag_array[$i+1]{0} != "-"))*/ ) {
//if(empty($flag_array[$i+1]))
// $options[$flag_array[$i]{$j}][] = $flag_array[$i];
//else
//$options[$flag_array[$i]{$j}][] = $flag_array[$i+1];
$options[$flag_array[$i]{$j}][] = TRUE;
$i += 1;
} else {
$options[$flag_array[$i]{$j}][] = FALSE;
$i ++;
}
$plus_i = 0;
break;
} else {
$options[$flag_array[$i]{$j}][] = substr ( $flag_array[$i], $j + 1 );
$i ++;
$plus_i = 0;
break;
}
} else if ( in_array ( $flag_array[$i]{$j}, $short_no_value ) ) {
$options[$flag_array[$i]{$j}][] = FALSE;
$plus_i = 1;
continue;
} else {
$plus_i = 1;
break;
}
}
$i += $plus_i;
continue;
}
$i++;
continue;
}
foreach ( $options as $key => $value ) {
if ( count ( $value ) == 1 ) {
$options[ $key ] = $value[0];
}
}
return $options;
}
function split_para ( $pattern ) {
/* split_para() version 1.0 2008/08/19
My page: http://www.ntu.beautifulworldco.com/weblog/?p=526
This function is to parse parameters and split them into smaller pieces.
preg_split() does similar thing but in our function, besides "space", we
also take the three symbols " (double quote), '(single quote),
and \ (backslash) into consideration because things in a pair of " or '
should be grouped together.
As an example, this parameter list
-f "test 2" -ab --required "t\"est 1" --optional="te'st 3" --option -v 'test 4'
will be splited into
-f
t"est 2
-ab
--required
test 1
--optional=te'st 3
--option
-v
test 4
see the code below,
$pattern = "-f \"test 2\" -ab --required \"t\\\"est 1\" --optional=\"te'st 3\" --option -v 'test 4'";
$result = split_para( $pattern );
echo "ORIGINAL PATTERN: $pattern\n\n";
var_dump( $result );
*/
$begin=0;
$backslash = 0;
$quote = "";
$quote_mark = array();
$result = array();
$pattern = trim ( $pattern );
for ( $end = 0; $end < strlen ( $pattern ) ; ) {
if ( ! in_array ( $pattern{$end}, array ( " ", "\"", "'", "\\" ) ) ) {
$backslash = 0;
$end ++;
continue;
}
if ( $pattern{$end} == "\\" ) {
$backslash++;
$end ++;
continue;
} else if ( $pattern{$end} == "\"" ) {
if ( $backslash % 2 == 1 || $quote == "'" ) {
$backslash = 0;
$end ++;
continue;
}
if ( $quote == "" ) {
$quote_mark[] = $end - $begin;
$quote = "\"";
} else if ( $quote == "\"" ) {
$quote_mark[] = $end - $begin;
$quote = "";
}
$backslash = 0;
$end ++;
continue;
} else if ( $pattern{$end} == "'" ) {
if ( $backslash % 2 == 1 || $quote == "\"" ) {
$backslash = 0;
$end ++;
continue;
}
if ( $quote == "" ) {
$quote_mark[] = $end - $begin;
$quote = "'";
} else if ( $quote == "'" ) {
$quote_mark[] = $end - $begin;
$quote = "";
}
$backslash = 0;
$end ++;
continue;
} else if ( $pattern{$end} == " " ) {
if ( $quote != "" ) {
$backslash = 0;
$end ++;
continue;
} else {
$backslash = 0;
$cand = substr( $pattern, $begin, $end-$begin );
for ( $j = 0; $j < strlen ( $cand ); $j ++ ) {
if ( in_array ( $j, $quote_mark ) )
continue;
$cand1 .= $cand{$j};
}
if ( $cand1 ) {
eval( "\$cand1 = \"$cand1\";" );
$result[] = $cand1;
}
$quote_mark = array();
$cand1 = "";
$end ++;
$begin = $end;
continue;
}
}
}
$cand = substr( $pattern, $begin, $end-$begin );
for ( $j = 0; $j < strlen ( $cand ); $j ++ ) {
if ( in_array ( $j, $quote_mark ) )
continue;
$cand1 .= $cand{$j};
}
eval( "\$cand1 = \"$cand1\";" );
if ( $cand1 )
$result[] = $cand1;
return $result;
}
/* Gets options from the command line argument list */
?>
+68
View File
@@ -0,0 +1,68 @@
#!/usr/bin/php
<?
require_once ("inc/utils.inc");
//require_once ("inc/utils-devl.inc");
//phpinfo();
// parsing argument list
$options = parseArgs($_SERVER['argv']);
if(empty($options))
exit;
debugPrint("input data: ", $options);
// check options
if(checkopts($options))
exit;
// analyze command
if(empty($options['f'])) // command mode
{
echo "Analyze command.....\n";
$dataes = array();
// read file
if(!empty($options['read_path'])) {
$filedata = array();
$filedata = filereaddata($options['read_path']);
if(empty($filedata))
exit;
// parsing file data
$dataes = parsefiledata($options['m'], $filedata);
if(empty($dataes))
exit;
}
else {
$dataes[] = "empty_data";
}
foreach($dataes as $data) {
if(is_array($data))
{
setOption($options, $data);
}
// convert to ISM command
$command = convert2ISMcommand($options);
debugPrint("ISM command data: ", $command);
// insert ISM
if(!insertData($command))
echo "Success. \n";
}
}
else // file mode
{
echo "File Read.....\n";
// read file
$readdate = filereaddata($options['f']);
if(empty($readdate))
exit;
// analyze read data... Here is implemented in the future.
debugPrint("File read data: ", $readdate);
$data = parsefiledata($readdate);
if(empty($readdate))
exit;
}
?>
+20
View File
@@ -0,0 +1,20 @@
-------------------
작성일 : 2015-10-12
작성자 : 노경민
----------------------------------------------------------------------------
내용
----------------------------------------------------------------------------
api_server
- Response
Json Type
- Auth
header X-Auth-Token
고객, 서비스 조회
- GET /management/user?lkey=key
- GET /management/service?id=id
- GET /management/service/:service
통계 조회
- GET /statistics/service/:service/traffic
- GET /statistics/service/:service/usage
+43
View File
@@ -0,0 +1,43 @@
Revision 1397
-------------------
수정일 : 2016-07-15
수정자 : 유희곤
- CHG: Log 상에 IP 항목 출력
- log 상에 Client IP 정보 표시되록 기능 추가함.
Revision 1396
-------------------
수정일 : 2016-07-15
수정자 : 유희곤
- CHG: 개발 환경 구축에 따른 설명 수정 (#28155)
- ReadMe.txt 파일명 변경 및 내용 보강
- README.txt 파일을 API_LIST.txt 로 변경 처리
- api_server/api_test.sh 스크립트 추가
Revision 1302
-------------------
수정일 : 2015-11-27
수정자 : 노경민
- NEW: 통계 조회 기능
- 서비스 별 사용량, 트래픽 조회 기능
- CHG: 회사 OpenAPI rule 적용
- URL rule 적용
- auth rule 적용
Revision 1261
-------------------
수정일 : 2015-10-12
수정자 : 노경민
- NEW: 서비스, 고객사 조회 기능
- NEW: SVN 신규 등록
+114
View File
@@ -0,0 +1,114 @@
[개발 환경]
1. OS 설치 및 기본 개발 환경 구축
1) CentOS 6.x 기반
2) 시간 동기화
3) vim 설치 등
2. epel repositories 등록
# yum install epel-release
# yum repolist
3. golang 설치
# yum install golang
4. git client 패치 ( client 2.x 이상 필요)
# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
# yum install gcc perl-ExtUtils-MakeMaker
# yum remove git
# cd
# wget https://www.kernel.org/pub/software/scm/git/git-2.9.1.tar.xz
# tar xvf ./git-2.9.1.tar.xz
# cd git-2.9.1
# make prefix=/usr/local/git all
# make prefix=/usr/local/git install
# git --version
5. go 환경 설정
# mkdir /root/go
# mkdir /root/go/bin
# vi .bash_profile
# User specific environment and startup programs
GOPATH=$HOME/go
export GOPATH
PATH=$PATH:$HOME/bin:$GOPATH/bin
export PATH
# source .bash_profile
6. go 추가 패키지 설치
# go get github.com/lib/pq
# go get gopkg.in/labstack/echo.v1
--------------------------
[개발 소스 Download]
1. /etc/hosts 파일에 장비 정보 등록
211.38.137.34 svc1svn.solbox.com # storage.sd SVN
192.168.0.247 svn.solbox.com # solbox SVN
2. work 폴더 생성
# cd
# mkdir work
# cd work
3. 소스 Download
# svn checkout --username=h http://svn.solbox.com/svn/interactive/trunk/OpenAPI ./OpenAPI.source
--------------------------
[소스 빌드]
1. cd ./OpenAPI.source/api_server
2. 빌드
# go build api_server.go
3. 빌드 결과 확인
- api_server 라는 실행 파일이 생성되면 정상.
--------------------------
[테스트]
1. 로그 폴더 생성
# mkdir -p /user/service/logs/api
2. api_test.sh 설정 수정
- DB 정보 및 Token 정보를 상황에 맞도록 수정
3. 실행
# ./api_test.sh
4. 로그 확인
# tail -f /user/service/logs/api/api_log
> Listening on :13103 로그 있으면 정상
5. 종료
# killall api_server
--------------------------
[실서비스 배포]
1. mkdir /user/service/api
mkdir /user/service/logs/api
2. api_server
- /user/service/api 폴더 하위에 저장 처리 (실행 옵션 처리)
3. api_run.sh
- /user/service/bin 폴더 하위에 저장 처리 (실행 옵션 처리)
4. ISP 별 설정
# vi /user/service/bin/api_run.sh
- 각종 정보를 해당 ISP 에 맞도록 수정 처리
- DATABASE_URL : CCDB 접속 정보
- X_Auth_Token : 인증 Token 정보
5. 서버 기동
# /user/service/bin/api_run.sh
+9
View File
@@ -0,0 +1,9 @@
#!/bin/sh
mkdir -p /user/service/logs/api
export API_LOG=/user/service/logs/api/api_log
export PORT=13103
export DATABASE_URL="user=solboxcs password=thsutleodlQj dbname=cs_ccdb sslmode=disable connect_timeout=1 host= port="
export X_Auth_Token=""
/user/service/api/api_server &
+642
View File
@@ -0,0 +1,642 @@
package main
import (
"database/sql"
"fmt"
"log"
"net/http"
"net"
"os"
"strconv"
"time"
//"errors"
"github.com/labstack/gommon/color"
_ "github.com/lib/pq"
"gopkg.in/labstack/echo.v1"
mw "gopkg.in/labstack/echo.v1/middleware"
)
var (
PORT = os.Getenv("PORT")
DATABASE_URL = os.Getenv("DATABASE_URL")
API_LOG = os.Getenv("API_LOG")
FIXED_TOKEN = os.Getenv("X_Auth_Token")
)
const (
version = "v1"
//fixedtoken = "2eefa2912f40a6072d28ff0b571aa820"
//accesslog = "api_log"
//connectionString = "user=solboxcs password=thsutleodlQj dbname=cs_ccdb sslmode=disable connect_timeout=1 host=cc-gts.ktsh.co.kr port=9000"
)
type JsonFloat64 float64
func (f JsonFloat64) MarshalJSON() ([]byte, error) {
return []byte(fmt.Sprintf("%0.2f", f)), nil
}
type MessageStruct struct {
Id string `json:"id"`
Message string `json:"message"`
}
type UserStruct struct {
Id string `json:"id"`
Name string `json:"name"`
}
type ServiceStruct struct {
Id string `json:"id"`
Service string `json:"service"`
Pass string `json:"password"`
Domin string `json:"domain"`
}
type TrafficStruct struct {
Sdate string `json:"date"`
In JsonFloat64 `json:"in"`
In_min JsonFloat64 `json:"in_min"`
In_max JsonFloat64 `json:"in_max"`
In_avg JsonFloat64 `json:"in_avg,numbers"`
Out JsonFloat64 `json:"out"`
Out_min JsonFloat64 `json:"out_min"`
Out_max JsonFloat64 `json:"out_max"`
Out_avg JsonFloat64 `json:"out_avg"`
}
type UsageStruct struct {
Sdate string `json:"date"`
Quota uint64 `json:"quota"`
//Quota_min uint64 `json:"quota_min"`
//Quota_max uint64 `json:"quota_max"`
Used JsonFloat64 `json:"used"`
Used_min JsonFloat64 `json:"used_min"`
Used_max JsonFloat64 `json:"used_max"`
}
// Response
type ErrMsgOutput struct {
Status string `json:"status"`
Code int `json:"errorcode"`
Message string `json:"error"`
}
type UserOutput struct {
Data []UserStruct `json:"data"`
}
type ServiceOutput struct {
Data []ServiceStruct `json:"data"`
}
type TrafficOutput struct {
Data []TrafficStruct `json:"data"`
}
type UsageOutput struct {
Data []UsageStruct `json:"data"`
}
// Handler
func hello(c *echo.Context) error {
//fmt.Println("token => " + c.Form("token"))
s := fmt.Sprintf("Hello, World! token = %v\n", c.Form("token"))
return c.String(http.StatusOK, s)
}
func users(c *echo.Context) error {
keyword := c.Form("lkey")
db, err := sql.Open("postgres", DATABASE_URL)
if err != nil {
//log.Fatal(err)
log.Println(err)
return echo.NewHTTPError(http.StatusInternalServerError)
}
defer db.Close()
var rows *sql.Rows
if keyword != "" {
like := "%" + keyword + "%"
rows, err = db.Query("SELECT c.id, ext.name FROM cs_service.cs_customer c LEFT JOIN cs_service.cs_customer_ext ext ON ext.user_seq = c.user_seq WHERE c.del_yn = 'N' AND ext.name LIKE $1 ORDER BY c.id;", like)
} else {
rows, err = db.Query("SELECT c.id, ext.name FROM cs_service.cs_customer c LEFT JOIN cs_service.cs_customer_ext ext ON ext.user_seq = c.user_seq WHERE c.del_yn = 'N' ORDER BY c.id;")
}
if err != nil {
//log.Fatal(err)
log.Println(err)
return echo.NewHTTPError(http.StatusInternalServerError)
}
defer rows.Close()
users := make([]UserStruct, 0)
var uid string
var name string
for rows.Next() {
err = rows.Scan(&uid, &name)
users = append(users, UserStruct{uid, name})
}
return c.JSON(http.StatusOK, UserOutput{users})
}
func services(c *echo.Context) error {
qid := c.Form("id")
db, err := sql.Open("postgres", DATABASE_URL)
if err != nil {
//log.Fatal(err)
log.Println(err)
return echo.NewHTTPError(http.StatusInternalServerError)
}
defer db.Close()
res, err := db.Query("SELECT base_domain FROM cs_service.cs_cc_info")
if err != nil {
//log.Fatal(err)
//panic(err)
log.Println(err)
return echo.NewHTTPError(http.StatusInternalServerError)
}
defer res.Close()
var base string
for res.Next() {
err = res.Scan(&base)
}
var rows *sql.Rows
if qid != "" {
rows, err = db.Query("SELECT c.id, c.passwd, s.svc_id FROM cs_service.cs_customer c, cs_service.cs_service s WHERE c.user_seq = s.user_seq AND c.id = $1 AND code NOT IN($2) AND s.status_code = $3 ORDER BY c.id", qid, "SVC_TYPE_A_02", "SVC_STATUS_ING")
} else {
rows, err = db.Query("SELECT c.id, c.passwd, s.svc_id FROM cs_service.cs_customer c, cs_service.cs_service s WHERE c.user_seq = s.user_seq AND code NOT IN($1) AND s.status_code = $2 ORDER BY c.id", "SVC_TYPE_A_02", "SVC_STATUS_ING")
}
if err != nil {
//log.Fatal(err)
log.Println(err)
return echo.NewHTTPError(http.StatusInternalServerError)
}
defer rows.Close()
services := make([]ServiceStruct, 0)
var uid string
var passwd string
var sid string
for rows.Next() {
err = rows.Scan(&uid, &passwd, &sid)
services = append(services, ServiceStruct{uid, sid, passwd, base})
}
return c.JSON(http.StatusOK, ServiceOutput{services})
}
func service(c *echo.Context) error {
//return c.String(http.StatusOK, "Hello, service!!!! svc_id = %v\n", c.Param("svc_id"))
in := c.Param("svc_id")
db, err := sql.Open("postgres", DATABASE_URL)
if err != nil {
//log.Fatal(err)
log.Println(err)
return echo.NewHTTPError(http.StatusInternalServerError)
}
defer db.Close()
res, err := db.Query("SELECT base_domain FROM cs_service.cs_cc_info")
if err != nil {
//log.Fatal(err)
//panic(err)
log.Println(err)
return echo.NewHTTPError(http.StatusInternalServerError)
}
defer res.Close()
var base string
for res.Next() {
err = res.Scan(&base)
}
rows, err := db.Query("SELECT c.id, c.passwd, s.svc_id FROM cs_service.cs_customer c, cs_service.cs_service s WHERE c.user_seq = s.user_seq AND s.svc_id = $1 AND code NOT IN($2) AND s.status_code = $3 ORDER BY c.id", in, "SVC_TYPE_A_02", "SVC_STATUS_ING")
if err != nil {
//log.Fatal(err)
log.Println(err)
return echo.NewHTTPError(http.StatusInternalServerError)
}
defer rows.Close()
services := make([]ServiceStruct, 0)
var uid string
var passwd string
var sid string
for rows.Next() {
err = rows.Scan(&uid, &passwd, &sid)
services = append(services, ServiceStruct{uid, sid, passwd, base})
}
return c.JSON(http.StatusOK, ServiceOutput{services})
}
func traffic(c *echo.Context) error {
sid := c.Param("svc_id")
sdata := c.Form("start_date")
edata := c.Form("end_date")
now := time.Now()
if sdata == "" {
sdata = fmt.Sprintf("%v%v%v", now.Year(), now.Month(), now.Day())
}
if edata == "" {
edata = fmt.Sprintf("%v%v%v", now.Year(), now.Month(), now.Day())
}
sdata += " 00:00:00"
edata += " 23:59:59"
db, err := sql.Open("postgres", DATABASE_URL)
if err != nil {
log.Println(err)
return echo.NewHTTPError(http.StatusInternalServerError)
}
defer db.Close()
res, err := db.Query("SELECT user_seq, svc_seq FROM cs_service.cs_service WHERE svc_id = $1", sid)
if err != nil {
log.Println(err)
return echo.NewHTTPError(http.StatusInternalServerError)
}
defer res.Close()
var useq uint64
var sseq uint64
//fmt.Printf("value %v => %v", sid, useq)
for res.Next() {
err = res.Scan(&useq, &sseq)
//fmt.Printf("value 1 => %v",useq)
}
if useq == 0 || sseq == 0 {
log.Println("Not Found Service.[", sid, "]")
return echo.NewHTTPError(http.StatusNotFound)
}
var rows *sql.Rows
qstr := `select
b.all_dates reg_date,
round(coalesce(up_traffic_sum, 0), 2) up_traffic_sum,
round(coalesce(up_traffic_min, 0), 2) up_traffic_min,
round(coalesce(up_traffic_max, 0), 2) up_traffic_max,
round(coalesce(up_traffic_avg, 0), 2) up_traffic_avg,
round(coalesce(down_traffic_sum, 0), 2) down_traffic_sum,
round(coalesce(down_traffic_min, 0), 2) down_traffic_min,
round(coalesce(down_traffic_max, 0), 2) down_traffic_max,
round(coalesce(down_traffic_avg, 0), 2) down_traffic_avg
from ( select
distinct to_char(reg_date,
'YYYYmmdd'
) reg_date,
(coalesce(max(down_traffic), 0) ) down_traffic_max,
(coalesce(max(up_traffic), 0) ) up_traffic_max,
(coalesce(min(down_traffic), 0) ) down_traffic_min,
(coalesce(min(up_traffic), 0) ) up_traffic_min,
(coalesce(sum(down_traffic), 0) ) down_traffic_sum,
(coalesce(sum(up_traffic), 0) ) up_traffic_sum,
(coalesce(avg(down_traffic), 0) ) down_traffic_avg,
(coalesce(avg(up_traffic), 0) ) up_traffic_avg
from cs_stat.cs_stat_network
where 1 = 1
and svc_seq = $1
and user_seq = $2
-- AND reg_date between to_date($3::text, 'YYYY-mm-dd HH24:MI:SS') AND to_date($4::text, 'YYYY-mm-dd HH24:MI:SS')
AND reg_date >= $3 AND reg_date <= $4
group by to_char(reg_date, 'YYYYmmdd')
order by reg_date
) a
right join
(select a.all_dates
from (
select distinct d1.dates as all_dates
from (
select to_char(to_date($3::text, 'YYYY-mm-dd HH24:MI:SS'), 'YYYY') || month || day as dates
from cs_web.cs_calen_day366
WHERE LEAP_YN = 'N'
Union All
select to_char(to_date($4::text, 'YYYY-mm-dd HH24:MI:SS'), 'YYYY') || month || day as dates
from cs_web.cs_calen_day366
WHERE LEAP_YN = 'N'
Union All
SELECT to_char(to_date( to_char(to_date($3::text, 'YYYY-mm-dd HH24:MI:SS'), 'YYYY') || '0301'::text, 'YYYYmmdd') -1, 'YYYYmmdd')
Union All
SELECT to_char(to_date( to_char(to_date($4::text, 'YYYY-mm-dd HH24:MI:SS'), 'YYYY') || '0301'::text, 'YYYYmmdd') -1, 'YYYYmmdd')
) d1
order by d1.dates
) a
where a.all_dates between (to_char(to_date($3::text, 'YYYY-mm-dd HH24:MI:SS'), 'YYYYmmdd')) and (to_char(to_date($4::text, 'YYYY-mm-dd HH24:MI:SS'), 'YYYYmmdd'))
order by a.all_dates
)b
on a.reg_date = b.all_dates
order by b.all_dates`
rows, err = db.Query(qstr, sseq, useq, sdata, edata)
if err != nil {
log.Println(err)
return echo.NewHTTPError(http.StatusInternalServerError)
}
defer rows.Close()
traffic := make([]TrafficStruct, 0)
for rows.Next() {
var v TrafficStruct
err = rows.Scan(&v.Sdate,
&v.In,
&v.In_min,
&v.In_max,
&v.In_avg,
&v.Out,
&v.Out_min,
&v.Out_max,
&v.Out_avg)
traffic = append(traffic, v)
}
return c.JSON(http.StatusOK, TrafficOutput{traffic})
}
func usage(c *echo.Context) error {
sid := c.Param("svc_id")
sdata := c.Form("start_date")
edata := c.Form("end_date")
now := time.Now()
if sdata == "" {
sdata = fmt.Sprintf("%v%v%v", now.Year(), now.Month(), now.Day())
}
if edata == "" {
edata = fmt.Sprintf("%v%v%v", now.Year(), now.Month(), now.Day())
}
sdata += " 00:00:00"
edata += " 23:59:59"
db, err := sql.Open("postgres", DATABASE_URL)
if err != nil {
//log.Fatal(err)
log.Println(err)
return echo.NewHTTPError(http.StatusInternalServerError)
}
defer db.Close()
res, err := db.Query("SELECT user_seq, svc_seq, stg_size FROM cs_service.cs_service WHERE svc_id = $1", sid)
if err != nil {
log.Println(err)
return echo.NewHTTPError(http.StatusInternalServerError)
}
defer res.Close()
var useq uint64
var sseq uint64
var quota uint64
//fmt.Printf("value %v => %v", sid, useq)
for res.Next() {
err = res.Scan(&useq, &sseq, &quota)
//fmt.Printf("value 1 => %v",useq)
}
if useq == 0 || sseq == 0 {
log.Println("Not Found Service.[", sid, "]")
return echo.NewHTTPError(http.StatusNotFound)
}
var rows *sql.Rows
qstr := `select b.all_dates reg_date,
round(coalesce(used_stg_size_last, 0), 2) used_stg_size_last,
round(coalesce(used_stg_size_max, 0), 2) used_stg_size_max,
round(coalesce(used_stg_size_min, 0), 2) used_stg_size_min
from (
select
to_char(a.reg_date,
'YYYYmmdd'
) reg_date,
(array_agg(used_stg_size ORDER BY a.reg_date DESC))[1] used_stg_size_last,
max(used_stg_size) used_stg_size_max,
min(used_stg_size) used_stg_size_min
from cs_stat.cs_stat_storage a
where svc_seq = $1
and user_seq = $2
-- AND a.reg_date between (to_date($3::text, 'YYYY-mm-dd')) AND to_date($4::text, 'YYYY-mm-dd')
AND a.reg_date >= $3 AND a.reg_date <= $4
group by to_char(a.reg_date, 'YYYYmmdd')
) a
right join
(select a.all_dates
from (
select distinct d1.dates as all_dates
from (
select to_char(to_date($3::text, 'YYYY-mm-dd HH24:MI:SS'), 'YYYY') || month || day as dates
from cs_web.cs_calen_day366
WHERE LEAP_YN = 'N'
Union All
select to_char(to_date($4::text, 'YYYY-mm-dd HH24:MI:SS'), 'YYYY') || month || day as dates
from cs_web.cs_calen_day366
WHERE LEAP_YN = 'N'
Union All
SELECT to_char(to_date( to_char(to_date($3::text, 'YYYY-mm-dd HH24:MI:SS'), 'YYYY') || '0301'::text, 'YYYYmmdd') -1, 'YYYYmmdd')
Union All
SELECT to_char(to_date( to_char(to_date($4::text, 'YYYY-mm-dd HH24:MI:SS'), 'YYYY') || '0301'::text, 'YYYYmmdd') -1, 'YYYYmmdd')
) d1
order by d1.dates
) a
where a.all_dates between (to_char(to_date($3::text, 'YYYY-mm-dd HH24:MI:SS'), 'YYYYmmdd')) and (to_char(to_date($4::text, 'YYYY-mm-dd HH24:MI:SS'), 'YYYYmmdd'))
order by a.all_dates
)b
on a.reg_date = b.all_dates
order by b.all_dates`
rows, err = db.Query(qstr, sseq, useq, sdata, edata)
if err != nil {
log.Println(err)
return echo.NewHTTPError(http.StatusInternalServerError)
}
defer rows.Close()
usage := make([]UsageStruct, 0)
for rows.Next() {
var v UsageStruct
err = rows.Scan(&v.Sdate,
&v.Used,
&v.Used_min,
&v.Used_max)
v.Quota = quota
usage = append(usage, v)
}
/*
var v UsageStruct
usage := make([]UsageStruct,0);
for i := 0; i < 10; i++ {
v.Sdate = strconv.Itoa(i);
i64 := uint64(i)
v.Quota = i64
//v.Quota_min = i64
//v.Quota_max = i64
v.Used = i64
v.Used_min = i64
v.Used_max = i64
usage= append(usage,v);
}
*/
return c.JSON(http.StatusOK, UsageOutput{usage})
}
// Middleware
// auth
func FixedCert() echo.MiddlewareFunc {
return func(h echo.HandlerFunc) echo.HandlerFunc {
return func(c *echo.Context) error {
//token := c.Form("token")
token := c.Request().Header.Get("X-Auth-Token")
if token != "" && FIXED_TOKEN == token {
//fmt.Println("token => " + token)
//log.Println("token => " + token)
return h(c)
}
log.Println("ERROR : missing token.")
return echo.NewHTTPError(http.StatusUnauthorized)
}
}
}
// logger(get gopkg.in/labstack/echo.v0/middleware/logger.go)
func Logger() echo.MiddlewareFunc {
return func(h echo.HandlerFunc) echo.HandlerFunc {
return func(c *echo.Context) error {
start := time.Now()
if err := h(c); err != nil {
c.Error(err)
}
end := time.Now()
req := c.Request()
remoteAddr := req.RemoteAddr
if ip := req.Header.Get(echo.XRealIP); ip != "" {
remoteAddr = ip
} else if ip = req.Header.Get(echo.XForwardedFor); ip != "" {
remoteAddr = ip
} else {
remoteAddr, _, _ = net.SplitHostPort(remoteAddr)
}
method := c.Request().Method
path := c.Request().URL.Path
if path == "" {
path = "/"
}
size := c.Response().Size()
n := c.Response().Status()
code := color.Green(n)
switch {
case n >= 500:
code = color.Red(n)
case n >= 400:
code = color.Yellow(n)
case n >= 300:
code = color.Cyan(n)
}
log.Printf("%s %s %s %s %s %d", remoteAddr, method, path, code, end.Sub(start), size)
return nil
}
}
}
// error function
func MyError(err error, c *echo.Context) {
//fmt.Println("MyError" + c.Form("token"))
code := http.StatusInternalServerError
msg := http.StatusText(code)
if he, ok := err.(*echo.HTTPError); ok {
code = he.Code()
msg = he.Error()
}
//if code == http.StatusNotFound {
// c.JSON(http.StatusMethodNotAllowed, ErrMsgOutput{strconv.Itoa(code), 405, msg} )
//} else {
c.JSON(code, ErrMsgOutput{strconv.Itoa(code), code, msg})
//}
}
func main() {
// Echo instance
e := echo.New()
e.SetHTTPErrorHandler(MyError)
// set log file
f, err := os.OpenFile(API_LOG, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
if err != nil {
//t.Fatalf("error opening file: %v", err)
fmt.Printf("error opening file: %v", err)
os.Exit(1)
}
defer f.Close()
log.SetOutput(f)
e.SetLogOutput(f)
// Middleware
e.Use(Logger())
e.Use(mw.Recover())
e.Use(FixedCert())
// Error
//e.Use(func(*echo.Context) error {
// return errors.New("error")
//})
// Routes
e.Get("/", hello)
//e.Get("/user", users)
//e.Get("/service", services)
ver := e.Group("/" + version)
//dev := e.Group("/" + "dev")
// Management class
gm := ver.Group("/" + "management")
gm.Get("/user", users)
gms := gm.Group("/" + "service")
gms.Get("", services)
gms.Get("/:svc_id", service)
// Statistics class
gs := ver.Group("/" + "statistics")
//gs := dev.Group("/" + "statistics")
gss := gs.Group("/" + "service")
gss.Get("/:svc_id/traffic", traffic)
gss.Get("/:svc_id/usage", usage)
// Start server (HTTP)
log.Printf("Listening on :%s", PORT)
e.Run(":" + PORT)
// Start server (HTTPS)
//e.RunTLS(":1323", "cert.pem", "key.pem")
}
+9
View File
@@ -0,0 +1,9 @@
#!/bin/sh
mkdir -p /user/service/logs/api
export API_LOG=/user/service/logs/api/api_log
export PORT=13103
export DATABASE_URL="user=solboxcs password=thsutleodlQj dbname=cs_ccdb sslmode=disable connect_timeout=1 host=192.168.10.169 port=6543 "
export X_Auth_Token="8kefa2912f40a6542d28ff0b5715a960"
./api_server &
+35
View File
@@ -0,0 +1,35 @@
각 폴더 및 배포 tagging 방법 설명
============================
[conf_sample]
PostgreSQL 기반 RCDB, CCDB 구축시 참고할 pg_hba.conf, postgresql.conf
샘플 파일을 저장
배포 방법
1. conf_sample 폴더 하위 모든 파일을 tar 로 묶는다.
- 폴더는 제외하고 파일만 tar 로 묶는다.
2. tar 파일명은 다음과 같이 한다
- conf_sample.tar.RXXXX
3. 해당 tar 파일을 tags/release/RCDB 폴더로 이동 후 SVN 등록 처리
-----------------------------
[etc]
failover 등의 시스템 설정 관련 배포 파일 저장소
배포방법
1. 배포하고자 하는 파일 이름을 다음과 같이 수정 한 후
- 파일이름.RXXXX
2. 해당 파일을 tags/release/RCDB 폴더로 이동 후 SVN 등록 처리
-----------------------------
+110
View File
@@ -0,0 +1,110 @@
# PostgreSQL Client Authentication Configuration File
# ===================================================
#
# Refer to the "Client Authentication" section in the PostgreSQL
# documentation for a complete description of this file. A short
# synopsis follows.
#
# This file controls: which hosts are allowed to connect, how clients
# are authenticated, which PostgreSQL user names they can use, which
# databases they can access. Records take one of these forms:
#
# local DATABASE USER METHOD [OPTIONS]
# host DATABASE USER ADDRESS METHOD [OPTIONS]
# hostssl DATABASE USER ADDRESS METHOD [OPTIONS]
# hostnossl DATABASE USER ADDRESS METHOD [OPTIONS]
#
# (The uppercase items must be replaced by actual values.)
#
# The first field is the connection type: "local" is a Unix-domain
# socket, "host" is either a plain or SSL-encrypted TCP/IP socket,
# "hostssl" is an SSL-encrypted TCP/IP socket, and "hostnossl" is a
# plain TCP/IP socket.
#
# DATABASE can be "all", "sameuser", "samerole", "replication", a
# database name, or a comma-separated list thereof. The "all"
# keyword does not match "replication". Access to replication
# must be enabled in a separate record (see example below).
#
# USER can be "all", a user name, a group name prefixed with "+", or a
# comma-separated list thereof. In both the DATABASE and USER fields
# you can also write a file name prefixed with "@" to include names
# from a separate file.
#
# ADDRESS specifies the set of hosts the record matches. It can be a
# host name, or it is made up of an IP address and a CIDR mask that is
# an integer (between 0 and 32 (IPv4) or 128 (IPv6) inclusive) that
# specifies the number of significant bits in the mask. A host name
# that starts with a dot (.) matches a suffix of the actual host name.
# Alternatively, you can write an IP address and netmask in separate
# columns to specify the set of hosts. Instead of a CIDR-address, you
# can write "samehost" to match any of the server's own IP addresses,
# or "samenet" to match any address in any subnet that the server is
# directly connected to.
#
# METHOD can be "trust", "reject", "md5", "password", "gss", "sspi",
# "krb5", "ident", "peer", "pam", "ldap", "radius" or "cert". Note that
# "password" sends passwords in clear text; "md5" is preferred since
# it sends encrypted passwords.
#
# OPTIONS are a set of options for the authentication in the format
# NAME=VALUE. The available options depend on the different
# authentication methods -- refer to the "Client Authentication"
# section in the documentation for a list of which options are
# available for which authentication methods.
#
# Database and user names containing spaces, commas, quotes and other
# special characters must be quoted. Quoting one of the keywords
# "all", "sameuser", "samerole" or "replication" makes the name lose
# its special character, and just match a database or username with
# that name.
#
# This file is read on server startup and when the postmaster receives
# a SIGHUP signal. If you edit the file on a running system, you have
# to SIGHUP the postmaster for the changes to take effect. You can
# use "pg_ctl reload" to do that.
# Put your actual configuration here
# ----------------------------------
#
# If you want to allow non-local connections, you need to add more
# "host" records. In that case you will also need to make PostgreSQL
# listen on a non-local interface via the listen_addresses
# configuration parameter, or via the -i or -h command line switches.
# CAUTION: Configuring the system for local "trust" authentication
# allows any local user to connect as any PostgreSQL user, including
# the database superuser. If you do not trust all your local users,
# use another authentication method.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
#local all all trust
# IPv4 local connections:
#host all all 127.0.0.1/32 trust
# IPv6 local connections:
#host all all ::1/128 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication pgsql trust
#host replication pgsql 127.0.0.1/32 trust
#host replication pgsql ::1/128 trust
# Local
local all all trust
host all all 127.0.0.1/32 trust
host all all ::1/128 trust
# Service
host cs_ccdb solboxcs 10.1.108.225/32 md5 # service (SMS, GTS ..)
host all solboxcs 211.38.137.33/32 md5 # solbox team
host cs_ccdb solboxcs 61.111.52.4/32 md5 # GMS
# Replication
host replication cs_replicator 127.0.0.1/32 md5 # Streaming Replication
host replication cs_replicator ::1/128 md5 # Streaming Replication
host replication cs_replicator 192.168.0.1/32 md5 # Streaming Replication
host replication cs_replicator 192.168.0.2/32 md5 # Streaming Replication
@@ -0,0 +1,623 @@
# -----------------------------
# PostgreSQL configuration file
# -----------------------------
#
# This file consists of lines of the form:
#
# name = value
#
# (The "=" is optional.) Whitespace may be used. Comments are introduced with
# "#" anywhere on a line. The complete list of parameter names and allowed
# values can be found in the PostgreSQL documentation.
#
# The commented-out settings shown in this file represent the default values.
# Re-commenting a setting is NOT sufficient to revert it to the default value;
# you need to reload the server.
#
# This file is read on server startup and when the server receives a SIGHUP
# signal. If you edit the file on a running system, you have to SIGHUP the
# server for the changes to take effect, or use "pg_ctl reload". Some
# parameters, which are marked below, require a server shutdown and restart to
# take effect.
#
# Any parameter can also be given as a command-line option to the server, e.g.,
# "postgres -c log_connections=on". Some parameters can be changed at run time
# with the "SET" SQL command.
#
# Memory units: kB = kilobytes Time units: ms = milliseconds
# MB = megabytes s = seconds
# GB = gigabytes min = minutes
# h = hours
# d = days
#------------------------------------------------------------------------------
# FILE LOCATIONS
#------------------------------------------------------------------------------
# The default values of these variables are driven from the -D command-line
# option or PGDATA environment variable, represented here as ConfigDir.
#data_directory = 'ConfigDir' # use data in another directory
# (change requires restart)
#hba_file = 'ConfigDir/pg_hba.conf' # host-based authentication file
# (change requires restart)
#ident_file = 'ConfigDir/pg_ident.conf' # ident configuration file
# (change requires restart)
# If external_pid_file is not explicitly set, no extra PID file is written.
#external_pid_file = '' # write an extra PID file
# (change requires restart)
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
# - Connection Settings -
#listen_addresses = 'localhost' # what IP address(es) to listen on;
listen_addresses = '*'
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
# (change requires restart)
#port = 5432 # (change requires restart)
port = 6543
#max_connections = 100 # (change requires restart)
max_connections = 1024
# Note: Increasing max_connections costs ~400 bytes of shared memory per
# connection slot, plus lock space (see max_locks_per_transaction).
#superuser_reserved_connections = 3 # (change requires restart)
#unix_socket_directories = '/tmp' # comma-separated list of directories
# (change requires restart)
#unix_socket_group = '' # (change requires restart)
#unix_socket_permissions = 0777 # begin with 0 to use octal notation
# (change requires restart)
#bonjour = off # advertise server via Bonjour
# (change requires restart)
#bonjour_name = '' # defaults to the computer name
# (change requires restart)
# - Security and Authentication -
#authentication_timeout = 1min # 1s-600s
#ssl = off # (change requires restart)
#ssl_ciphers = 'DEFAULT:!LOW:!EXP:!MD5:@STRENGTH' # allowed SSL ciphers
# (change requires restart)
#ssl_renegotiation_limit = 512MB # amount of data between renegotiations
#ssl_cert_file = 'server.crt' # (change requires restart)
#ssl_key_file = 'server.key' # (change requires restart)
#ssl_ca_file = '' # (change requires restart)
#ssl_crl_file = '' # (change requires restart)
#password_encryption = on
#db_user_namespace = off
# Kerberos and GSSAPI
#krb_server_keyfile = ''
#krb_srvname = 'postgres' # (Kerberos only)
#krb_caseins_users = off
# - TCP Keepalives -
# see "man 7 tcp" for details
#tcp_keepalives_idle = 0 # TCP_KEEPIDLE, in seconds;
# 0 selects the system default
#tcp_keepalives_interval = 0 # TCP_KEEPINTVL, in seconds;
# 0 selects the system default
#tcp_keepalives_count = 0 # TCP_KEEPCNT;
# 0 selects the system default
#------------------------------------------------------------------------------
# RESOURCE USAGE (except WAL)
#------------------------------------------------------------------------------
# - Memory -
#shared_buffers = 128MB # min 128kB
shared_buffers = 16GB
# (change requires restart)
#temp_buffers = 8MB # min 800kB
#max_prepared_transactions = 0 # zero disables the feature
# (change requires restart)
# Note: Increasing max_prepared_transactions costs ~600 bytes of shared memory
# per transaction slot, plus lock space (see max_locks_per_transaction).
# It is not advisable to set max_prepared_transactions nonzero unless you
# actively intend to use prepared transactions.
#work_mem = 1MB # min 64kB
work_mem = 16MB
#maintenance_work_mem = 16MB # min 1MB
maintenance_work_mem = 3GB
#max_stack_depth = 2MB # min 100kB
# - Disk -
#temp_file_limit = -1 # limits per-session temp file space
# in kB, or -1 for no limit
# - Kernel Resource Usage -
#max_files_per_process = 1000 # min 25
# (change requires restart)
#shared_preload_libraries = '' # (change requires restart)
# - Cost-Based Vacuum Delay -
#vacuum_cost_delay = 0 # 0-100 milliseconds
#vacuum_cost_page_hit = 1 # 0-10000 credits
#vacuum_cost_page_miss = 10 # 0-10000 credits
#vacuum_cost_page_dirty = 20 # 0-10000 credits
#vacuum_cost_limit = 200 # 1-10000 credits
# - Background Writer -
#bgwriter_delay = 200ms # 10-10000ms between rounds
#bgwriter_lru_maxpages = 100 # 0-1000 max buffers written/round
#bgwriter_lru_multiplier = 2.0 # 0-10.0 multipler on buffers scanned/round
# - Asynchronous Behavior -
#effective_io_concurrency = 1 # 1-1000; 0 disables prefetching
effective_io_concurrency = 2
#------------------------------------------------------------------------------
# WRITE AHEAD LOG
#------------------------------------------------------------------------------
# - Settings -
#wal_level = minimal # minimal, archive, or hot_standby
wal_level = hot_standby
# (change requires restart)
#fsync = on # turns forced synchronization on or off
#synchronous_commit = on # synchronization level;
# off, local, remote_write, or on
#wal_sync_method = fsync # the default is the first option
# supported by the operating system:
# open_datasync
# fdatasync (default on Linux)
# fsync
# fsync_writethrough
# open_sync
#full_page_writes = on # recover from partial page writes
#wal_buffers = -1 # min 32kB, -1 sets based on shared_buffers
# (change requires restart)
#wal_writer_delay = 200ms # 1-10000 milliseconds
#commit_delay = 0 # range 0-100000, in microseconds
#commit_siblings = 5 # range 1-1000
# - Checkpoints -
#checkpoint_segments = 3 # in logfile segments, min 1, 16MB each
checkpoint_segments = 64
#checkpoint_timeout = 5min # range 30s-1h
checkpoint_timeout = 30min
#checkpoint_completion_target = 0.5 # checkpoint target duration, 0.0 - 1.0
checkpoint_completion_target = 0.9
#checkpoint_warning = 30s # 0 disables
# - Archiving -
#archive_mode = off # allows archiving to be done
# (change requires restart)
#archive_command = '' # command to use to archive a logfile segment
# placeholders: %p = path of file to archive
# %f = file name only
# e.g. 'test ! -f /mnt/server/archivedir/%f && cp %p /mnt/server/archivedir/%f'
#archive_timeout = 0 # force a logfile segment switch after this
# number of seconds; 0 disables
#------------------------------------------------------------------------------
# REPLICATION
#------------------------------------------------------------------------------
# - Sending Server(s) -
# Set these on the master and on any standby that will send replication data.
#max_wal_senders = 0 # max number of walsender processes
max_wal_senders = 2
# (change requires restart)
#wal_keep_segments = 0 # in logfile segments, 16MB each; 0 disables
wal_keep_segments = 2000
#wal_sender_timeout = 60s # in milliseconds; 0 disables
# - Master Server -
# These settings are ignored on a standby server.
#synchronous_standby_names = '' # standby servers that provide sync rep
# comma-separated list of application_name
# from standby(s); '*' = all
#vacuum_defer_cleanup_age = 0 # number of xacts by which cleanup is delayed
# - Standby Servers -
# These settings are ignored on a master server.
#hot_standby = off # "on" allows queries during recovery
hot_standby = on
# (change requires restart)
#max_standby_archive_delay = 30s # max delay before canceling queries
# when reading WAL from archive;
# -1 allows indefinite delay
#max_standby_streaming_delay = 30s # max delay before canceling queries
# when reading streaming WAL;
# -1 allows indefinite delay
#wal_receiver_status_interval = 10s # send replies at least this often
# 0 disables
#hot_standby_feedback = off # send info from standby to prevent
# query conflicts
#wal_receiver_timeout = 60s # time that receiver waits for
# communication from master
# in milliseconds; 0 disables
#------------------------------------------------------------------------------
# QUERY TUNING
#------------------------------------------------------------------------------
# - Planner Method Configuration -
#enable_bitmapscan = on
#enable_hashagg = on
#enable_hashjoin = on
#enable_indexscan = on
#enable_indexonlyscan = on
#enable_material = on
#enable_mergejoin = on
#enable_nestloop = on
#enable_seqscan = on
#enable_sort = on
#enable_tidscan = on
# - Planner Cost Constants -
#seq_page_cost = 1.0 # measured on an arbitrary scale
#random_page_cost = 4.0 # same scale as above
random_page_cost = 2.0
#cpu_tuple_cost = 0.01 # same scale as above
#cpu_index_tuple_cost = 0.005 # same scale as above
#cpu_operator_cost = 0.0025 # same scale as above
#effective_cache_size = 128MB
effective_cache_size = 48GB
# - Genetic Query Optimizer -
#geqo = on
#geqo_threshold = 12
#geqo_effort = 5 # range 1-10
#geqo_pool_size = 0 # selects default based on effort
#geqo_generations = 0 # selects default based on effort
#geqo_selection_bias = 2.0 # range 1.5-2.0
#geqo_seed = 0.0 # range 0.0-1.0
# - Other Planner Options -
#default_statistics_target = 100 # range 1-10000
#constraint_exclusion = partition # on, off, or partition
#cursor_tuple_fraction = 0.1 # range 0.0-1.0
#from_collapse_limit = 8
#join_collapse_limit = 8 # 1 disables collapsing of explicit
# JOIN clauses
#------------------------------------------------------------------------------
# ERROR REPORTING AND LOGGING
#------------------------------------------------------------------------------
# - Where to Log -
#log_destination = 'stderr' # Valid values are combinations of
# stderr, csvlog, syslog, and eventlog,
# depending on platform. csvlog
# requires logging_collector to be on.
# This is used when logging to stderr:
#logging_collector = off # Enable capturing of stderr and csvlog
logging_collector = on
# into log files. Required to be on for
# csvlogs.
# (change requires restart)
# These are only used if logging_collector is on:
#log_directory = 'pg_log' # directory where log files are written,
log_directory = '../logs'
# can be absolute or relative to PGDATA
#log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # log file name pattern,
log_filename = 'postgresql-%Y-%m-%d.log'
# can include strftime() escapes
#log_file_mode = 0600 # creation mode for log files,
# begin with 0 to use octal notation
#log_truncate_on_rotation = off # If on, an existing log file with the
log_truncate_on_rotation = on
# same name as the new log file will be
# truncated rather than appended to.
# But such truncation only occurs on
# time-driven rotation, not on restarts
# or size-driven rotation. Default is
# off, meaning append to existing files
# in all cases.
#log_rotation_age = 1d # Automatic rotation of logfiles will
# happen after that time. 0 disables.
#log_rotation_size = 10MB # Automatic rotation of logfiles will
log_rotation_size = 100MB
# happen after that much log output.
# 0 disables.
# These are relevant when logging to syslog:
#syslog_facility = 'LOCAL0'
#syslog_ident = 'postgres'
# This is only relevant when logging to eventlog (win32):
#event_source = 'PostgreSQL'
# - When to Log -
#client_min_messages = notice # values in order of decreasing detail:
# debug5
# debug4
# debug3
# debug2
# debug1
# log
# notice
# warning
# error
#log_min_messages = warning # values in order of decreasing detail:
log_min_messages = notice
# debug5
# debug4
# debug3
# debug2
# debug1
# info
# notice
# warning
# error
# log
# fatal
# panic
#log_min_error_statement = error # values in order of decreasing detail:
log_min_error_statement = notice
# debug5
# debug4
# debug3
# debug2
# debug1
# info
# notice
# warning
# error
# log
# fatal
# panic (effectively off)
#log_min_duration_statement = -1 # -1 is disabled, 0 logs all statements
log_min_duration_statement = 200
# and their durations, > 0 logs only
# statements running at least this number
# of milliseconds
# - What to Log -
#debug_print_parse = off
#debug_print_rewritten = off
#debug_print_plan = off
#debug_pretty_print = on
#log_checkpoints = off
#log_connections = off
#log_disconnections = off
#log_duration = off
#log_error_verbosity = default # terse, default, or verbose messages
#log_hostname = off
#log_line_prefix = '' # special values:
log_line_prefix = '[%t][%h][%a] '
# %a = application name
# %u = user name
# %d = database name
# %r = remote host and port
# %h = remote host
# %p = process ID
# %t = timestamp without milliseconds
# %m = timestamp with milliseconds
# %i = command tag
# %e = SQL state
# %c = session ID
# %l = session line number
# %s = session start timestamp
# %v = virtual transaction ID
# %x = transaction ID (0 if none)
# %q = stop here in non-session
# processes
# %% = '%'
# e.g. '<%u%%%d> '
#log_lock_waits = off # log lock waits >= deadlock_timeout
log_lock_waits = on
#log_statement = 'none' # none, ddl, mod, all
#log_temp_files = -1 # log temporary files equal or larger
# than the specified size in kilobytes;
# -1 disables, 0 logs all temp files
log_timezone = 'ROK'
#------------------------------------------------------------------------------
# RUNTIME STATISTICS
#------------------------------------------------------------------------------
# - Query/Index Statistics Collector -
#track_activities = on
#track_counts = on
#track_io_timing = off
#track_functions = none # none, pl, all
#track_activity_query_size = 1024 # (change requires restart)
#update_process_title = on
#stats_temp_directory = 'pg_stat_tmp'
# - Statistics Monitoring -
#log_parser_stats = off
#log_planner_stats = off
#log_executor_stats = off
#log_statement_stats = off
#------------------------------------------------------------------------------
# AUTOVACUUM PARAMETERS
#------------------------------------------------------------------------------
#autovacuum = on # Enable autovacuum subprocess? 'on'
# requires track_counts to also be on.
#log_autovacuum_min_duration = -1 # -1 disables, 0 logs all actions and
log_autovacuum_min_duration = 0
# their durations, > 0 logs only
# actions running at least this number
# of milliseconds.
#autovacuum_max_workers = 3 # max number of autovacuum subprocesses
# (change requires restart)
#autovacuum_naptime = 1min # time between autovacuum runs
#autovacuum_vacuum_threshold = 50 # min number of row updates before
# vacuum
#autovacuum_analyze_threshold = 50 # min number of row updates before
# analyze
#autovacuum_vacuum_scale_factor = 0.2 # fraction of table size before vacuum
#autovacuum_analyze_scale_factor = 0.1 # fraction of table size before analyze
#autovacuum_freeze_max_age = 200000000 # maximum XID age before forced vacuum
# (change requires restart)
#autovacuum_multixact_freeze_max_age = 400000000 # maximum Multixact age
# before forced vacuum
# (change requires restart)
#autovacuum_vacuum_cost_delay = 20ms # default vacuum cost delay for
# autovacuum, in milliseconds;
# -1 means use vacuum_cost_delay
#autovacuum_vacuum_cost_limit = -1 # default vacuum cost limit for
# autovacuum, -1 means use
# vacuum_cost_limit
#------------------------------------------------------------------------------
# CLIENT CONNECTION DEFAULTS
#------------------------------------------------------------------------------
# - Statement Behavior -
#search_path = '"$user",public' # schema names
#default_tablespace = '' # a tablespace name, '' uses the default
#temp_tablespaces = '' # a list of tablespace names, '' uses
# only default tablespace
#check_function_bodies = on
#default_transaction_isolation = 'read committed'
#default_transaction_read_only = off
#default_transaction_deferrable = off
#session_replication_role = 'origin'
#statement_timeout = 0 # in milliseconds, 0 is disabled
#lock_timeout = 0 # in milliseconds, 0 is disabled
#vacuum_freeze_min_age = 50000000
#vacuum_freeze_table_age = 150000000
#vacuum_multixact_freeze_min_age = 5000000
#vacuum_multixact_freeze_table_age = 150000000
#bytea_output = 'hex' # hex, escape
#xmlbinary = 'base64'
#xmloption = 'content'
# - Locale and Formatting -
datestyle = 'iso, mdy'
#intervalstyle = 'postgres'
timezone = 'ROK'
#timezone_abbreviations = 'Default' # Select the set of available time zone
# abbreviations. Currently, there are
# Default
# Australia
# India
# You can create your own file in
# share/timezonesets/.
#extra_float_digits = 0 # min -15, max 3
#client_encoding = sql_ascii # actually, defaults to database
# encoding
# These settings are initialized by initdb, but they can be changed.
lc_messages = 'C' # locale for system error message
# strings
lc_monetary = 'C' # locale for monetary formatting
lc_numeric = 'C' # locale for number formatting
lc_time = 'C' # locale for time formatting
# default configuration for text search
default_text_search_config = 'pg_catalog.english'
# - Other Defaults -
#dynamic_library_path = '$libdir'
#local_preload_libraries = ''
#------------------------------------------------------------------------------
# LOCK MANAGEMENT
#------------------------------------------------------------------------------
#deadlock_timeout = 1s
#max_locks_per_transaction = 64 # min 10
# (change requires restart)
# Note: Each lock table slot uses ~270 bytes of shared memory, and there are
# max_locks_per_transaction * (max_connections + max_prepared_transactions)
# lock table slots.
#max_pred_locks_per_transaction = 64 # min 10
# (change requires restart)
#------------------------------------------------------------------------------
# VERSION/PLATFORM COMPATIBILITY
#------------------------------------------------------------------------------
# - Previous PostgreSQL Versions -
#array_nulls = on
#backslash_quote = safe_encoding # on, off, or safe_encoding
#default_with_oids = off
#escape_string_warning = on
#lo_compat_privileges = off
#quote_all_identifiers = off
#sql_inheritance = on
#standard_conforming_strings = on
#synchronize_seqscans = on
# - Other Platforms and Clients -
#transform_null_equals = off
#------------------------------------------------------------------------------
# ERROR HANDLING
#------------------------------------------------------------------------------
#exit_on_error = off # terminate session on any error?
#restart_after_crash = on # reinitialize after backend crash?
#------------------------------------------------------------------------------
# CONFIG FILE INCLUDES
#------------------------------------------------------------------------------
# These options allow settings to be loaded from files other than the
# default postgresql.conf.
#include_dir = 'conf.d' # include files ending in '.conf' from
# directory 'conf.d'
#include_if_exists = 'exists.conf' # include file only if it exists
#include = 'special.conf' # include file
#------------------------------------------------------------------------------
# CUSTOMIZED OPTIONS
#------------------------------------------------------------------------------
# Add settings for extensions here
+113
View File
@@ -0,0 +1,113 @@
# PostgreSQL Client Authentication Configuration File
# ===================================================
#
# Refer to the "Client Authentication" section in the PostgreSQL
# documentation for a complete description of this file. A short
# synopsis follows.
#
# This file controls: which hosts are allowed to connect, how clients
# are authenticated, which PostgreSQL user names they can use, which
# databases they can access. Records take one of these forms:
#
# local DATABASE USER METHOD [OPTIONS]
# host DATABASE USER ADDRESS METHOD [OPTIONS]
# hostssl DATABASE USER ADDRESS METHOD [OPTIONS]
# hostnossl DATABASE USER ADDRESS METHOD [OPTIONS]
#
# (The uppercase items must be replaced by actual values.)
#
# The first field is the connection type: "local" is a Unix-domain
# socket, "host" is either a plain or SSL-encrypted TCP/IP socket,
# "hostssl" is an SSL-encrypted TCP/IP socket, and "hostnossl" is a
# plain TCP/IP socket.
#
# DATABASE can be "all", "sameuser", "samerole", "replication", a
# database name, or a comma-separated list thereof. The "all"
# keyword does not match "replication". Access to replication
# must be enabled in a separate record (see example below).
#
# USER can be "all", a user name, a group name prefixed with "+", or a
# comma-separated list thereof. In both the DATABASE and USER fields
# you can also write a file name prefixed with "@" to include names
# from a separate file.
#
# ADDRESS specifies the set of hosts the record matches. It can be a
# host name, or it is made up of an IP address and a CIDR mask that is
# an integer (between 0 and 32 (IPv4) or 128 (IPv6) inclusive) that
# specifies the number of significant bits in the mask. A host name
# that starts with a dot (.) matches a suffix of the actual host name.
# Alternatively, you can write an IP address and netmask in separate
# columns to specify the set of hosts. Instead of a CIDR-address, you
# can write "samehost" to match any of the server's own IP addresses,
# or "samenet" to match any address in any subnet that the server is
# directly connected to.
#
# METHOD can be "trust", "reject", "md5", "password", "gss", "sspi",
# "krb5", "ident", "peer", "pam", "ldap", "radius" or "cert". Note that
# "password" sends passwords in clear text; "md5" is preferred since
# it sends encrypted passwords.
#
# OPTIONS are a set of options for the authentication in the format
# NAME=VALUE. The available options depend on the different
# authentication methods -- refer to the "Client Authentication"
# section in the documentation for a list of which options are
# available for which authentication methods.
#
# Database and user names containing spaces, commas, quotes and other
# special characters must be quoted. Quoting one of the keywords
# "all", "sameuser", "samerole" or "replication" makes the name lose
# its special character, and just match a database or username with
# that name.
#
# This file is read on server startup and when the postmaster receives
# a SIGHUP signal. If you edit the file on a running system, you have
# to SIGHUP the postmaster for the changes to take effect. You can
# use "pg_ctl reload" to do that.
# Put your actual configuration here
# ----------------------------------
#
# If you want to allow non-local connections, you need to add more
# "host" records. In that case you will also need to make PostgreSQL
# listen on a non-local interface via the listen_addresses
# configuration parameter, or via the -i or -h command line switches.
# CAUTION: Configuring the system for local "trust" authentication
# allows any local user to connect as any PostgreSQL user, including
# the database superuser. If you do not trust all your local users,
# use another authentication method.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
#local all all trust
# IPv4 local connections:
#host all all 127.0.0.1/32 trust
# IPv6 local connections:
#host all all ::1/128 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication pgsql trust
#host replication pgsql 127.0.0.1/32 trust
#host replication pgsql ::1/128 trust
# Local
local all all trust
host all all 127.0.0.1/32 trust
host all all ::1/128 trust
# Service
host localdb syshost 10.3.0.1/24 trust # RC Internal IP Class ( FHS, RCTS )
host localdb syshost 222.122.136.110/32 md5 # GMS (alive check)
host all syshost 211.38.137.33/32 md5 # solbox team
# RC sync ( Only Backup RC)
#host localdb syshost 222.122.162.1/24 md5 # BD-01 RCTS
# Replication
host replication cs_replicator 127.0.0.1/32 md5 # Streaming Replication
host replication cs_replicator ::1/128 md5 # Streaming Replication
host replication cs_replicator 192.168.16.74/32 md5 # Streaming Replication
host replication cs_replicator 192.168.16.205/32 md5 # Streaming Replication
@@ -0,0 +1,596 @@
# -----------------------------
# PostgreSQL configuration file
# -----------------------------
#
# This file consists of lines of the form:
#
# name = value
#
# (The "=" is optional.) Whitespace may be used. Comments are introduced with
# "#" anywhere on a line. The complete list of parameter names and allowed
# values can be found in the PostgreSQL documentation.
#
# The commented-out settings shown in this file represent the default values.
# Re-commenting a setting is NOT sufficient to revert it to the default value;
# you need to reload the server.
#
# This file is read on server startup and when the server receives a SIGHUP
# signal. If you edit the file on a running system, you have to SIGHUP the
# server for the changes to take effect, or use "pg_ctl reload". Some
# parameters, which are marked below, require a server shutdown and restart to
# take effect.
#
# Any parameter can also be given as a command-line option to the server, e.g.,
# "postgres -c log_connections=on". Some parameters can be changed at run time
# with the "SET" SQL command.
#
# Memory units: kB = kilobytes Time units: ms = milliseconds
# MB = megabytes s = seconds
# GB = gigabytes min = minutes
# h = hours
# d = days
#------------------------------------------------------------------------------
# FILE LOCATIONS
#------------------------------------------------------------------------------
# The default values of these variables are driven from the -D command-line
# option or PGDATA environment variable, represented here as ConfigDir.
#data_directory = 'ConfigDir' # use data in another directory
# (change requires restart)
#hba_file = 'ConfigDir/pg_hba.conf' # host-based authentication file
# (change requires restart)
#ident_file = 'ConfigDir/pg_ident.conf' # ident configuration file
# (change requires restart)
# If external_pid_file is not explicitly set, no extra PID file is written.
#external_pid_file = '' # write an extra PID file
# (change requires restart)
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
# - Connection Settings -
listen_addresses = '*' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
# (change requires restart)
port = 6543 # (change requires restart)
max_connections = 4096 # (change requires restart)
# Note: Increasing max_connections costs ~400 bytes of shared memory per
# connection slot, plus lock space (see max_locks_per_transaction).
#superuser_reserved_connections = 3 # (change requires restart)
#unix_socket_directories = '/tmp' # comma-separated list of directories
# (change requires restart)
#unix_socket_group = '' # (change requires restart)
#unix_socket_permissions = 0777 # begin with 0 to use octal notation
# (change requires restart)
#bonjour = off # advertise server via Bonjour
# (change requires restart)
#bonjour_name = '' # defaults to the computer name
# (change requires restart)
# - Security and Authentication -
#authentication_timeout = 1min # 1s-600s
#ssl = off # (change requires restart)
#ssl_ciphers = 'DEFAULT:!LOW:!EXP:!MD5:@STRENGTH' # allowed SSL ciphers
# (change requires restart)
#ssl_renegotiation_limit = 512MB # amount of data between renegotiations
#ssl_cert_file = 'server.crt' # (change requires restart)
#ssl_key_file = 'server.key' # (change requires restart)
#ssl_ca_file = '' # (change requires restart)
#ssl_crl_file = '' # (change requires restart)
#password_encryption = on
#db_user_namespace = off
# Kerberos and GSSAPI
#krb_server_keyfile = ''
#krb_srvname = 'postgres' # (Kerberos only)
#krb_caseins_users = off
# - TCP Keepalives -
# see "man 7 tcp" for details
#tcp_keepalives_idle = 0 # TCP_KEEPIDLE, in seconds;
# 0 selects the system default
#tcp_keepalives_interval = 0 # TCP_KEEPINTVL, in seconds;
# 0 selects the system default
#tcp_keepalives_count = 0 # TCP_KEEPCNT;
# 0 selects the system default
#------------------------------------------------------------------------------
# RESOURCE USAGE (except WAL)
#------------------------------------------------------------------------------
# - Memory -
shared_buffers = 3GB # min 128kB
# (change requires restart)
#temp_buffers = 8MB # min 800kB
#max_prepared_transactions = 0 # zero disables the feature
# (change requires restart)
# Note: Increasing max_prepared_transactions costs ~600 bytes of shared memory
# per transaction slot, plus lock space (see max_locks_per_transaction).
# It is not advisable to set max_prepared_transactions nonzero unless you
# actively intend to use prepared transactions.
work_mem = 768kB # min 64kB
maintenance_work_mem = 614MB # min 1MB
#max_stack_depth = 2MB # min 100kB
# - Disk -
#temp_file_limit = -1 # limits per-session temp file space
# in kB, or -1 for no limit
# - Kernel Resource Usage -
#max_files_per_process = 1000 # min 25
# (change requires restart)
#shared_preload_libraries = '' # (change requires restart)
# - Cost-Based Vacuum Delay -
#vacuum_cost_delay = 0 # 0-100 milliseconds
#vacuum_cost_page_hit = 1 # 0-10000 credits
#vacuum_cost_page_miss = 10 # 0-10000 credits
#vacuum_cost_page_dirty = 20 # 0-10000 credits
#vacuum_cost_limit = 200 # 1-10000 credits
# - Background Writer -
#bgwriter_delay = 200ms # 10-10000ms between rounds
#bgwriter_lru_maxpages = 100 # 0-1000 max buffers written/round
#bgwriter_lru_multiplier = 2.0 # 0-10.0 multipler on buffers scanned/round
# - Asynchronous Behavior -
effective_io_concurrency = 2 # 1-1000; 0 disables prefetching
#------------------------------------------------------------------------------
# WRITE AHEAD LOG
#------------------------------------------------------------------------------
# - Settings -
wal_level = hot_standby # minimal, archive, or hot_standby
# (change requires restart)
#fsync = on # turns forced synchronization on or off
#synchronous_commit = on # synchronization level;
# off, local, remote_write, or on
#wal_sync_method = fsync # the default is the first option
# supported by the operating system:
# open_datasync
# fdatasync (default on Linux)
# fsync
# fsync_writethrough
# open_sync
#full_page_writes = on # recover from partial page writes
#wal_buffers = -1 # min 32kB, -1 sets based on shared_buffers
# (change requires restart)
#wal_writer_delay = 200ms # 1-10000 milliseconds
#commit_delay = 0 # range 0-100000, in microseconds
#commit_siblings = 5 # range 1-1000
# - Checkpoints -
checkpoint_segments = 64 # in logfile segments, min 1, 16MB each
checkpoint_timeout = 30min # range 30s-1h
checkpoint_completion_target = 0.9 # checkpoint target duration, 0.0 - 1.0
#checkpoint_warning = 30s # 0 disables
# - Archiving -
#archive_mode = off # allows archiving to be done
# (change requires restart)
#archive_command = '' # command to use to archive a logfile segment
# placeholders: %p = path of file to archive
# %f = file name only
# e.g. 'test ! -f /mnt/server/archivedir/%f && cp %p /mnt/server/archivedir/%f'
#archive_timeout = 0 # force a logfile segment switch after this
# number of seconds; 0 disables
#------------------------------------------------------------------------------
# REPLICATION
#------------------------------------------------------------------------------
# - Sending Server(s) -
# Set these on the master and on any standby that will send replication data.
max_wal_senders = 2 # max number of walsender processes
# (change requires restart)
wal_keep_segments = 2000 # in logfile segments, 16MB each; 0 disables
#wal_sender_timeout = 60s # in milliseconds; 0 disables
# - Master Server -
# These settings are ignored on a standby server.
#synchronous_standby_names = '' # standby servers that provide sync rep
# comma-separated list of application_name
# from standby(s); '*' = all
#vacuum_defer_cleanup_age = 0 # number of xacts by which cleanup is delayed
# - Standby Servers -
# These settings are ignored on a master server.
hot_standby = on # "on" allows queries during recovery
# (change requires restart)
#max_standby_archive_delay = 30s # max delay before canceling queries
# when reading WAL from archive;
# -1 allows indefinite delay
#max_standby_streaming_delay = 30s # max delay before canceling queries
# when reading streaming WAL;
# -1 allows indefinite delay
#wal_receiver_status_interval = 10s # send replies at least this often
# 0 disables
#hot_standby_feedback = off # send info from standby to prevent
# query conflicts
#wal_receiver_timeout = 60s # time that receiver waits for
# communication from master
# in milliseconds; 0 disables
#------------------------------------------------------------------------------
# QUERY TUNING
#------------------------------------------------------------------------------
# - Planner Method Configuration -
#enable_bitmapscan = on
#enable_hashagg = on
#enable_hashjoin = on
#enable_indexscan = on
#enable_indexonlyscan = on
#enable_material = on
#enable_mergejoin = on
#enable_nestloop = on
#enable_seqscan = on
#enable_sort = on
#enable_tidscan = on
# - Planner Cost Constants -
#seq_page_cost = 1.0 # measured on an arbitrary scale
random_page_cost = 2.0 # same scale as above
#cpu_tuple_cost = 0.01 # same scale as above
#cpu_index_tuple_cost = 0.005 # same scale as above
#cpu_operator_cost = 0.0025 # same scale as above
effective_cache_size = 9GB
# - Genetic Query Optimizer -
#geqo = on
#geqo_threshold = 12
#geqo_effort = 5 # range 1-10
#geqo_pool_size = 0 # selects default based on effort
#geqo_generations = 0 # selects default based on effort
#geqo_selection_bias = 2.0 # range 1.5-2.0
#geqo_seed = 0.0 # range 0.0-1.0
# - Other Planner Options -
#default_statistics_target = 100 # range 1-10000
#constraint_exclusion = partition # on, off, or partition
#cursor_tuple_fraction = 0.1 # range 0.0-1.0
#from_collapse_limit = 8
#join_collapse_limit = 8 # 1 disables collapsing of explicit
# JOIN clauses
#------------------------------------------------------------------------------
# ERROR REPORTING AND LOGGING
#------------------------------------------------------------------------------
# - Where to Log -
#log_destination = 'stderr' # Valid values are combinations of
# stderr, csvlog, syslog, and eventlog,
# depending on platform. csvlog
# requires logging_collector to be on.
# This is used when logging to stderr:
logging_collector = on # Enable capturing of stderr and csvlog
# into log files. Required to be on for
# csvlogs.
# (change requires restart)
# These are only used if logging_collector is on:
log_directory = '../logs' # directory where log files are written,
# can be absolute or relative to PGDATA
log_filename = 'postgresql-%Y-%m-%d.log' # log file name pattern,
# can include strftime() escapes
#log_file_mode = 0600 # creation mode for log files,
# begin with 0 to use octal notation
log_truncate_on_rotation = on # If on, an existing log file with the
# same name as the new log file will be
# truncated rather than appended to.
# But such truncation only occurs on
# time-driven rotation, not on restarts
# or size-driven rotation. Default is
# off, meaning append to existing files
# in all cases.
#log_rotation_age = 1d # Automatic rotation of logfiles will
# happen after that time. 0 disables.
log_rotation_size = 100MB # Automatic rotation of logfiles will
# happen after that much log output.
# 0 disables.
# These are relevant when logging to syslog:
#syslog_facility = 'LOCAL0'
#syslog_ident = 'postgres'
# This is only relevant when logging to eventlog (win32):
#event_source = 'PostgreSQL'
# - When to Log -
#client_min_messages = notice # values in order of decreasing detail:
# debug5
# debug4
# debug3
# debug2
# debug1
# log
# notice
# warning
# error
log_min_messages = notice # values in order of decreasing detail:
# debug5
# debug4
# debug3
# debug2
# debug1
# info
# notice
# warning
# error
# log
# fatal
# panic
log_min_error_statement = notice # values in order of decreasing detail:
# debug5
# debug4
# debug3
# debug2
# debug1
# info
# notice
# warning
# error
# log
# fatal
# panic (effectively off)
log_min_duration_statement = 200 # -1 is disabled, 0 logs all statements
# and their durations, > 0 logs only
# statements running at least this number
# of milliseconds
# - What to Log -
#debug_print_parse = off
#debug_print_rewritten = off
#debug_print_plan = off
#debug_pretty_print = on
#log_checkpoints = off
#log_connections = off
#log_disconnections = off
#log_duration = off
#log_error_verbosity = default # terse, default, or verbose messages
#log_hostname = off
log_line_prefix = '[%t][%h][%a] ' # special values:
# %a = application name
# %u = user name
# %d = database name
# %r = remote host and port
# %h = remote host
# %p = process ID
# %t = timestamp without milliseconds
# %m = timestamp with milliseconds
# %i = command tag
# %e = SQL state
# %c = session ID
# %l = session line number
# %s = session start timestamp
# %v = virtual transaction ID
# %x = transaction ID (0 if none)
# %q = stop here in non-session
# processes
# %% = '%'
# e.g. '<%u%%%d> '
log_lock_waits = on # log lock waits >= deadlock_timeout
#log_statement = 'none' # none, ddl, mod, all
#log_temp_files = -1 # log temporary files equal or larger
# than the specified size in kilobytes;
# -1 disables, 0 logs all temp files
log_timezone = 'ROK'
#------------------------------------------------------------------------------
# RUNTIME STATISTICS
#------------------------------------------------------------------------------
# - Query/Index Statistics Collector -
#track_activities = on
#track_counts = on
#track_io_timing = off
#track_functions = none # none, pl, all
#track_activity_query_size = 1024 # (change requires restart)
#update_process_title = on
#stats_temp_directory = 'pg_stat_tmp'
# - Statistics Monitoring -
#log_parser_stats = off
#log_planner_stats = off
#log_executor_stats = off
#log_statement_stats = off
#------------------------------------------------------------------------------
# AUTOVACUUM PARAMETERS
#------------------------------------------------------------------------------
#autovacuum = on # Enable autovacuum subprocess? 'on'
# requires track_counts to also be on.
log_autovacuum_min_duration = 0 # -1 disables, 0 logs all actions and
# their durations, > 0 logs only
# actions running at least this number
# of milliseconds.
#autovacuum_max_workers = 3 # max number of autovacuum subprocesses
# (change requires restart)
#autovacuum_naptime = 1min # time between autovacuum runs
#autovacuum_vacuum_threshold = 50 # min number of row updates before
# vacuum
#autovacuum_analyze_threshold = 50 # min number of row updates before
# analyze
#autovacuum_vacuum_scale_factor = 0.2 # fraction of table size before vacuum
#autovacuum_analyze_scale_factor = 0.1 # fraction of table size before analyze
#autovacuum_freeze_max_age = 200000000 # maximum XID age before forced vacuum
# (change requires restart)
#autovacuum_multixact_freeze_max_age = 400000000 # maximum Multixact age
# before forced vacuum
# (change requires restart)
#autovacuum_vacuum_cost_delay = 20ms # default vacuum cost delay for
# autovacuum, in milliseconds;
# -1 means use vacuum_cost_delay
#autovacuum_vacuum_cost_limit = -1 # default vacuum cost limit for
# autovacuum, -1 means use
# vacuum_cost_limit
#------------------------------------------------------------------------------
# CLIENT CONNECTION DEFAULTS
#------------------------------------------------------------------------------
# - Statement Behavior -
#search_path = '"$user",public' # schema names
#default_tablespace = '' # a tablespace name, '' uses the default
#temp_tablespaces = '' # a list of tablespace names, '' uses
# only default tablespace
#check_function_bodies = on
#default_transaction_isolation = 'read committed'
#default_transaction_read_only = off
#default_transaction_deferrable = off
#session_replication_role = 'origin'
#statement_timeout = 0 # in milliseconds, 0 is disabled
#lock_timeout = 0 # in milliseconds, 0 is disabled
#vacuum_freeze_min_age = 50000000
#vacuum_freeze_table_age = 150000000
#vacuum_multixact_freeze_min_age = 5000000
#vacuum_multixact_freeze_table_age = 150000000
#bytea_output = 'hex' # hex, escape
#xmlbinary = 'base64'
#xmloption = 'content'
# - Locale and Formatting -
datestyle = 'iso, mdy'
#intervalstyle = 'postgres'
timezone = 'ROK'
#timezone_abbreviations = 'Default' # Select the set of available time zone
# abbreviations. Currently, there are
# Default
# Australia
# India
# You can create your own file in
# share/timezonesets/.
#extra_float_digits = 0 # min -15, max 3
client_encoding = uhc # actually, defaults to database
# encoding
# These settings are initialized by initdb, but they can be changed.
lc_messages = 'C' # locale for system error message
# strings
lc_monetary = 'C' # locale for monetary formatting
lc_numeric = 'C' # locale for number formatting
lc_time = 'C' # locale for time formatting
# default configuration for text search
default_text_search_config = 'pg_catalog.english'
# - Other Defaults -
#dynamic_library_path = '$libdir'
#local_preload_libraries = ''
#------------------------------------------------------------------------------
# LOCK MANAGEMENT
#------------------------------------------------------------------------------
#deadlock_timeout = 1s
#max_locks_per_transaction = 64 # min 10
# (change requires restart)
# Note: Each lock table slot uses ~270 bytes of shared memory, and there are
# max_locks_per_transaction * (max_connections + max_prepared_transactions)
# lock table slots.
#max_pred_locks_per_transaction = 64 # min 10
# (change requires restart)
#------------------------------------------------------------------------------
# VERSION/PLATFORM COMPATIBILITY
#------------------------------------------------------------------------------
# - Previous PostgreSQL Versions -
#array_nulls = on
backslash_quote = on # on, off, or safe_encoding
#default_with_oids = off
escape_string_warning = off
#lo_compat_privileges = off
#quote_all_identifiers = off
#sql_inheritance = on
#standard_conforming_strings = on
#synchronize_seqscans = on
# - Other Platforms and Clients -
#transform_null_equals = off
#------------------------------------------------------------------------------
# ERROR HANDLING
#------------------------------------------------------------------------------
#exit_on_error = off # terminate session on any error?
#restart_after_crash = on # reinitialize after backend crash?
#------------------------------------------------------------------------------
# CONFIG FILE INCLUDES
#------------------------------------------------------------------------------
# These options allow settings to be loaded from files other than the
# default postgresql.conf.
#include_dir = 'conf.d' # include files ending in '.conf' from
# directory 'conf.d'
#include_if_exists = 'exists.conf' # include file only if it exists
#include = 'special.conf' # include file
#------------------------------------------------------------------------------
# CUSTOMIZED OPTIONS
#------------------------------------------------------------------------------
# Add settings for extensions here
@@ -0,0 +1,596 @@
# -----------------------------
# PostgreSQL configuration file
# -----------------------------
#
# This file consists of lines of the form:
#
# name = value
#
# (The "=" is optional.) Whitespace may be used. Comments are introduced with
# "#" anywhere on a line. The complete list of parameter names and allowed
# values can be found in the PostgreSQL documentation.
#
# The commented-out settings shown in this file represent the default values.
# Re-commenting a setting is NOT sufficient to revert it to the default value;
# you need to reload the server.
#
# This file is read on server startup and when the server receives a SIGHUP
# signal. If you edit the file on a running system, you have to SIGHUP the
# server for the changes to take effect, or use "pg_ctl reload". Some
# parameters, which are marked below, require a server shutdown and restart to
# take effect.
#
# Any parameter can also be given as a command-line option to the server, e.g.,
# "postgres -c log_connections=on". Some parameters can be changed at run time
# with the "SET" SQL command.
#
# Memory units: kB = kilobytes Time units: ms = milliseconds
# MB = megabytes s = seconds
# GB = gigabytes min = minutes
# h = hours
# d = days
#------------------------------------------------------------------------------
# FILE LOCATIONS
#------------------------------------------------------------------------------
# The default values of these variables are driven from the -D command-line
# option or PGDATA environment variable, represented here as ConfigDir.
#data_directory = 'ConfigDir' # use data in another directory
# (change requires restart)
#hba_file = 'ConfigDir/pg_hba.conf' # host-based authentication file
# (change requires restart)
#ident_file = 'ConfigDir/pg_ident.conf' # ident configuration file
# (change requires restart)
# If external_pid_file is not explicitly set, no extra PID file is written.
#external_pid_file = '' # write an extra PID file
# (change requires restart)
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
# - Connection Settings -
listen_addresses = '*' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
# (change requires restart)
port = 6543 # (change requires restart)
max_connections = 4096 # (change requires restart)
# Note: Increasing max_connections costs ~400 bytes of shared memory per
# connection slot, plus lock space (see max_locks_per_transaction).
#superuser_reserved_connections = 3 # (change requires restart)
#unix_socket_directories = '/tmp' # comma-separated list of directories
# (change requires restart)
#unix_socket_group = '' # (change requires restart)
#unix_socket_permissions = 0777 # begin with 0 to use octal notation
# (change requires restart)
#bonjour = off # advertise server via Bonjour
# (change requires restart)
#bonjour_name = '' # defaults to the computer name
# (change requires restart)
# - Security and Authentication -
#authentication_timeout = 1min # 1s-600s
#ssl = off # (change requires restart)
#ssl_ciphers = 'DEFAULT:!LOW:!EXP:!MD5:@STRENGTH' # allowed SSL ciphers
# (change requires restart)
#ssl_renegotiation_limit = 512MB # amount of data between renegotiations
#ssl_cert_file = 'server.crt' # (change requires restart)
#ssl_key_file = 'server.key' # (change requires restart)
#ssl_ca_file = '' # (change requires restart)
#ssl_crl_file = '' # (change requires restart)
#password_encryption = on
#db_user_namespace = off
# Kerberos and GSSAPI
#krb_server_keyfile = ''
#krb_srvname = 'postgres' # (Kerberos only)
#krb_caseins_users = off
# - TCP Keepalives -
# see "man 7 tcp" for details
#tcp_keepalives_idle = 0 # TCP_KEEPIDLE, in seconds;
# 0 selects the system default
#tcp_keepalives_interval = 0 # TCP_KEEPINTVL, in seconds;
# 0 selects the system default
#tcp_keepalives_count = 0 # TCP_KEEPCNT;
# 0 selects the system default
#------------------------------------------------------------------------------
# RESOURCE USAGE (except WAL)
#------------------------------------------------------------------------------
# - Memory -
shared_buffers = 6GB # min 128kB
# (change requires restart)
#temp_buffers = 8MB # min 800kB
#max_prepared_transactions = 0 # zero disables the feature
# (change requires restart)
# Note: Increasing max_prepared_transactions costs ~600 bytes of shared memory
# per transaction slot, plus lock space (see max_locks_per_transaction).
# It is not advisable to set max_prepared_transactions nonzero unless you
# actively intend to use prepared transactions.
work_mem = 1536kB # min 64kB
maintenance_work_mem = 1228MB # min 1MB
#max_stack_depth = 2MB # min 100kB
# - Disk -
#temp_file_limit = -1 # limits per-session temp file space
# in kB, or -1 for no limit
# - Kernel Resource Usage -
#max_files_per_process = 1000 # min 25
# (change requires restart)
#shared_preload_libraries = '' # (change requires restart)
# - Cost-Based Vacuum Delay -
#vacuum_cost_delay = 0 # 0-100 milliseconds
#vacuum_cost_page_hit = 1 # 0-10000 credits
#vacuum_cost_page_miss = 10 # 0-10000 credits
#vacuum_cost_page_dirty = 20 # 0-10000 credits
#vacuum_cost_limit = 200 # 1-10000 credits
# - Background Writer -
#bgwriter_delay = 200ms # 10-10000ms between rounds
#bgwriter_lru_maxpages = 100 # 0-1000 max buffers written/round
#bgwriter_lru_multiplier = 2.0 # 0-10.0 multipler on buffers scanned/round
# - Asynchronous Behavior -
effective_io_concurrency = 2 # 1-1000; 0 disables prefetching
#------------------------------------------------------------------------------
# WRITE AHEAD LOG
#------------------------------------------------------------------------------
# - Settings -
wal_level = hot_standby # minimal, archive, or hot_standby
# (change requires restart)
#fsync = on # turns forced synchronization on or off
#synchronous_commit = on # synchronization level;
# off, local, remote_write, or on
#wal_sync_method = fsync # the default is the first option
# supported by the operating system:
# open_datasync
# fdatasync (default on Linux)
# fsync
# fsync_writethrough
# open_sync
#full_page_writes = on # recover from partial page writes
#wal_buffers = -1 # min 32kB, -1 sets based on shared_buffers
# (change requires restart)
#wal_writer_delay = 200ms # 1-10000 milliseconds
#commit_delay = 0 # range 0-100000, in microseconds
#commit_siblings = 5 # range 1-1000
# - Checkpoints -
checkpoint_segments = 64 # in logfile segments, min 1, 16MB each
checkpoint_timeout = 30min # range 30s-1h
checkpoint_completion_target = 0.9 # checkpoint target duration, 0.0 - 1.0
#checkpoint_warning = 30s # 0 disables
# - Archiving -
#archive_mode = off # allows archiving to be done
# (change requires restart)
#archive_command = '' # command to use to archive a logfile segment
# placeholders: %p = path of file to archive
# %f = file name only
# e.g. 'test ! -f /mnt/server/archivedir/%f && cp %p /mnt/server/archivedir/%f'
#archive_timeout = 0 # force a logfile segment switch after this
# number of seconds; 0 disables
#------------------------------------------------------------------------------
# REPLICATION
#------------------------------------------------------------------------------
# - Sending Server(s) -
# Set these on the master and on any standby that will send replication data.
max_wal_senders = 2 # max number of walsender processes
# (change requires restart)
wal_keep_segments = 2000 # in logfile segments, 16MB each; 0 disables
#wal_sender_timeout = 60s # in milliseconds; 0 disables
# - Master Server -
# These settings are ignored on a standby server.
#synchronous_standby_names = '' # standby servers that provide sync rep
# comma-separated list of application_name
# from standby(s); '*' = all
#vacuum_defer_cleanup_age = 0 # number of xacts by which cleanup is delayed
# - Standby Servers -
# These settings are ignored on a master server.
hot_standby = on # "on" allows queries during recovery
# (change requires restart)
#max_standby_archive_delay = 30s # max delay before canceling queries
# when reading WAL from archive;
# -1 allows indefinite delay
#max_standby_streaming_delay = 30s # max delay before canceling queries
# when reading streaming WAL;
# -1 allows indefinite delay
#wal_receiver_status_interval = 10s # send replies at least this often
# 0 disables
#hot_standby_feedback = off # send info from standby to prevent
# query conflicts
#wal_receiver_timeout = 60s # time that receiver waits for
# communication from master
# in milliseconds; 0 disables
#------------------------------------------------------------------------------
# QUERY TUNING
#------------------------------------------------------------------------------
# - Planner Method Configuration -
#enable_bitmapscan = on
#enable_hashagg = on
#enable_hashjoin = on
#enable_indexscan = on
#enable_indexonlyscan = on
#enable_material = on
#enable_mergejoin = on
#enable_nestloop = on
#enable_seqscan = on
#enable_sort = on
#enable_tidscan = on
# - Planner Cost Constants -
#seq_page_cost = 1.0 # measured on an arbitrary scale
random_page_cost = 2.0 # same scale as above
#cpu_tuple_cost = 0.01 # same scale as above
#cpu_index_tuple_cost = 0.005 # same scale as above
#cpu_operator_cost = 0.0025 # same scale as above
effective_cache_size = 18GB
# - Genetic Query Optimizer -
#geqo = on
#geqo_threshold = 12
#geqo_effort = 5 # range 1-10
#geqo_pool_size = 0 # selects default based on effort
#geqo_generations = 0 # selects default based on effort
#geqo_selection_bias = 2.0 # range 1.5-2.0
#geqo_seed = 0.0 # range 0.0-1.0
# - Other Planner Options -
#default_statistics_target = 100 # range 1-10000
#constraint_exclusion = partition # on, off, or partition
#cursor_tuple_fraction = 0.1 # range 0.0-1.0
#from_collapse_limit = 8
#join_collapse_limit = 8 # 1 disables collapsing of explicit
# JOIN clauses
#------------------------------------------------------------------------------
# ERROR REPORTING AND LOGGING
#------------------------------------------------------------------------------
# - Where to Log -
#log_destination = 'stderr' # Valid values are combinations of
# stderr, csvlog, syslog, and eventlog,
# depending on platform. csvlog
# requires logging_collector to be on.
# This is used when logging to stderr:
logging_collector = on # Enable capturing of stderr and csvlog
# into log files. Required to be on for
# csvlogs.
# (change requires restart)
# These are only used if logging_collector is on:
log_directory = '../logs' # directory where log files are written,
# can be absolute or relative to PGDATA
log_filename = 'postgresql-%Y-%m-%d.log' # log file name pattern,
# can include strftime() escapes
#log_file_mode = 0600 # creation mode for log files,
# begin with 0 to use octal notation
log_truncate_on_rotation = on # If on, an existing log file with the
# same name as the new log file will be
# truncated rather than appended to.
# But such truncation only occurs on
# time-driven rotation, not on restarts
# or size-driven rotation. Default is
# off, meaning append to existing files
# in all cases.
#log_rotation_age = 1d # Automatic rotation of logfiles will
# happen after that time. 0 disables.
log_rotation_size = 100MB # Automatic rotation of logfiles will
# happen after that much log output.
# 0 disables.
# These are relevant when logging to syslog:
#syslog_facility = 'LOCAL0'
#syslog_ident = 'postgres'
# This is only relevant when logging to eventlog (win32):
#event_source = 'PostgreSQL'
# - When to Log -
#client_min_messages = notice # values in order of decreasing detail:
# debug5
# debug4
# debug3
# debug2
# debug1
# log
# notice
# warning
# error
log_min_messages = notice # values in order of decreasing detail:
# debug5
# debug4
# debug3
# debug2
# debug1
# info
# notice
# warning
# error
# log
# fatal
# panic
log_min_error_statement = notice # values in order of decreasing detail:
# debug5
# debug4
# debug3
# debug2
# debug1
# info
# notice
# warning
# error
# log
# fatal
# panic (effectively off)
log_min_duration_statement = 200 # -1 is disabled, 0 logs all statements
# and their durations, > 0 logs only
# statements running at least this number
# of milliseconds
# - What to Log -
#debug_print_parse = off
#debug_print_rewritten = off
#debug_print_plan = off
#debug_pretty_print = on
#log_checkpoints = off
#log_connections = off
#log_disconnections = off
#log_duration = off
#log_error_verbosity = default # terse, default, or verbose messages
#log_hostname = off
log_line_prefix = '[%t][%h][%a] ' # special values:
# %a = application name
# %u = user name
# %d = database name
# %r = remote host and port
# %h = remote host
# %p = process ID
# %t = timestamp without milliseconds
# %m = timestamp with milliseconds
# %i = command tag
# %e = SQL state
# %c = session ID
# %l = session line number
# %s = session start timestamp
# %v = virtual transaction ID
# %x = transaction ID (0 if none)
# %q = stop here in non-session
# processes
# %% = '%'
# e.g. '<%u%%%d> '
log_lock_waits = on # log lock waits >= deadlock_timeout
#log_statement = 'none' # none, ddl, mod, all
#log_temp_files = -1 # log temporary files equal or larger
# than the specified size in kilobytes;
# -1 disables, 0 logs all temp files
log_timezone = 'ROK'
#------------------------------------------------------------------------------
# RUNTIME STATISTICS
#------------------------------------------------------------------------------
# - Query/Index Statistics Collector -
#track_activities = on
#track_counts = on
#track_io_timing = off
#track_functions = none # none, pl, all
#track_activity_query_size = 1024 # (change requires restart)
#update_process_title = on
#stats_temp_directory = 'pg_stat_tmp'
# - Statistics Monitoring -
#log_parser_stats = off
#log_planner_stats = off
#log_executor_stats = off
#log_statement_stats = off
#------------------------------------------------------------------------------
# AUTOVACUUM PARAMETERS
#------------------------------------------------------------------------------
#autovacuum = on # Enable autovacuum subprocess? 'on'
# requires track_counts to also be on.
log_autovacuum_min_duration = 0 # -1 disables, 0 logs all actions and
# their durations, > 0 logs only
# actions running at least this number
# of milliseconds.
#autovacuum_max_workers = 3 # max number of autovacuum subprocesses
# (change requires restart)
#autovacuum_naptime = 1min # time between autovacuum runs
#autovacuum_vacuum_threshold = 50 # min number of row updates before
# vacuum
#autovacuum_analyze_threshold = 50 # min number of row updates before
# analyze
#autovacuum_vacuum_scale_factor = 0.2 # fraction of table size before vacuum
#autovacuum_analyze_scale_factor = 0.1 # fraction of table size before analyze
#autovacuum_freeze_max_age = 200000000 # maximum XID age before forced vacuum
# (change requires restart)
#autovacuum_multixact_freeze_max_age = 400000000 # maximum Multixact age
# before forced vacuum
# (change requires restart)
#autovacuum_vacuum_cost_delay = 20ms # default vacuum cost delay for
# autovacuum, in milliseconds;
# -1 means use vacuum_cost_delay
#autovacuum_vacuum_cost_limit = -1 # default vacuum cost limit for
# autovacuum, -1 means use
# vacuum_cost_limit
#------------------------------------------------------------------------------
# CLIENT CONNECTION DEFAULTS
#------------------------------------------------------------------------------
# - Statement Behavior -
#search_path = '"$user",public' # schema names
#default_tablespace = '' # a tablespace name, '' uses the default
#temp_tablespaces = '' # a list of tablespace names, '' uses
# only default tablespace
#check_function_bodies = on
#default_transaction_isolation = 'read committed'
#default_transaction_read_only = off
#default_transaction_deferrable = off
#session_replication_role = 'origin'
#statement_timeout = 0 # in milliseconds, 0 is disabled
#lock_timeout = 0 # in milliseconds, 0 is disabled
#vacuum_freeze_min_age = 50000000
#vacuum_freeze_table_age = 150000000
#vacuum_multixact_freeze_min_age = 5000000
#vacuum_multixact_freeze_table_age = 150000000
#bytea_output = 'hex' # hex, escape
#xmlbinary = 'base64'
#xmloption = 'content'
# - Locale and Formatting -
datestyle = 'iso, mdy'
#intervalstyle = 'postgres'
timezone = 'ROK'
#timezone_abbreviations = 'Default' # Select the set of available time zone
# abbreviations. Currently, there are
# Default
# Australia
# India
# You can create your own file in
# share/timezonesets/.
#extra_float_digits = 0 # min -15, max 3
client_encoding = uhc # actually, defaults to database
# encoding
# These settings are initialized by initdb, but they can be changed.
lc_messages = 'C' # locale for system error message
# strings
lc_monetary = 'C' # locale for monetary formatting
lc_numeric = 'C' # locale for number formatting
lc_time = 'C' # locale for time formatting
# default configuration for text search
default_text_search_config = 'pg_catalog.english'
# - Other Defaults -
#dynamic_library_path = '$libdir'
#local_preload_libraries = ''
#------------------------------------------------------------------------------
# LOCK MANAGEMENT
#------------------------------------------------------------------------------
#deadlock_timeout = 1s
#max_locks_per_transaction = 64 # min 10
# (change requires restart)
# Note: Each lock table slot uses ~270 bytes of shared memory, and there are
# max_locks_per_transaction * (max_connections + max_prepared_transactions)
# lock table slots.
#max_pred_locks_per_transaction = 64 # min 10
# (change requires restart)
#------------------------------------------------------------------------------
# VERSION/PLATFORM COMPATIBILITY
#------------------------------------------------------------------------------
# - Previous PostgreSQL Versions -
#array_nulls = on
backslash_quote = on # on, off, or safe_encoding
#default_with_oids = off
escape_string_warning = off
#lo_compat_privileges = off
#quote_all_identifiers = off
#sql_inheritance = on
#standard_conforming_strings = on
#synchronize_seqscans = on
# - Other Platforms and Clients -
#transform_null_equals = off
#------------------------------------------------------------------------------
# ERROR HANDLING
#------------------------------------------------------------------------------
#exit_on_error = off # terminate session on any error?
#restart_after_crash = on # reinitialize after backend crash?
#------------------------------------------------------------------------------
# CONFIG FILE INCLUDES
#------------------------------------------------------------------------------
# These options allow settings to be loaded from files other than the
# default postgresql.conf.
#include_dir = 'conf.d' # include files ending in '.conf' from
# directory 'conf.d'
#include_if_exists = 'exists.conf' # include file only if it exists
#include = 'special.conf' # include file
#------------------------------------------------------------------------------
# CUSTOMIZED OPTIONS
#------------------------------------------------------------------------------
# Add settings for extensions here
@@ -0,0 +1,596 @@
# -----------------------------
# PostgreSQL configuration file
# -----------------------------
#
# This file consists of lines of the form:
#
# name = value
#
# (The "=" is optional.) Whitespace may be used. Comments are introduced with
# "#" anywhere on a line. The complete list of parameter names and allowed
# values can be found in the PostgreSQL documentation.
#
# The commented-out settings shown in this file represent the default values.
# Re-commenting a setting is NOT sufficient to revert it to the default value;
# you need to reload the server.
#
# This file is read on server startup and when the server receives a SIGHUP
# signal. If you edit the file on a running system, you have to SIGHUP the
# server for the changes to take effect, or use "pg_ctl reload". Some
# parameters, which are marked below, require a server shutdown and restart to
# take effect.
#
# Any parameter can also be given as a command-line option to the server, e.g.,
# "postgres -c log_connections=on". Some parameters can be changed at run time
# with the "SET" SQL command.
#
# Memory units: kB = kilobytes Time units: ms = milliseconds
# MB = megabytes s = seconds
# GB = gigabytes min = minutes
# h = hours
# d = days
#------------------------------------------------------------------------------
# FILE LOCATIONS
#------------------------------------------------------------------------------
# The default values of these variables are driven from the -D command-line
# option or PGDATA environment variable, represented here as ConfigDir.
#data_directory = 'ConfigDir' # use data in another directory
# (change requires restart)
#hba_file = 'ConfigDir/pg_hba.conf' # host-based authentication file
# (change requires restart)
#ident_file = 'ConfigDir/pg_ident.conf' # ident configuration file
# (change requires restart)
# If external_pid_file is not explicitly set, no extra PID file is written.
#external_pid_file = '' # write an extra PID file
# (change requires restart)
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
# - Connection Settings -
listen_addresses = '*' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
# (change requires restart)
port = 6543 # (change requires restart)
max_connections = 4096 # (change requires restart)
# Note: Increasing max_connections costs ~400 bytes of shared memory per
# connection slot, plus lock space (see max_locks_per_transaction).
#superuser_reserved_connections = 3 # (change requires restart)
#unix_socket_directories = '/tmp' # comma-separated list of directories
# (change requires restart)
#unix_socket_group = '' # (change requires restart)
#unix_socket_permissions = 0777 # begin with 0 to use octal notation
# (change requires restart)
#bonjour = off # advertise server via Bonjour
# (change requires restart)
#bonjour_name = '' # defaults to the computer name
# (change requires restart)
# - Security and Authentication -
#authentication_timeout = 1min # 1s-600s
#ssl = off # (change requires restart)
#ssl_ciphers = 'DEFAULT:!LOW:!EXP:!MD5:@STRENGTH' # allowed SSL ciphers
# (change requires restart)
#ssl_renegotiation_limit = 512MB # amount of data between renegotiations
#ssl_cert_file = 'server.crt' # (change requires restart)
#ssl_key_file = 'server.key' # (change requires restart)
#ssl_ca_file = '' # (change requires restart)
#ssl_crl_file = '' # (change requires restart)
#password_encryption = on
#db_user_namespace = off
# Kerberos and GSSAPI
#krb_server_keyfile = ''
#krb_srvname = 'postgres' # (Kerberos only)
#krb_caseins_users = off
# - TCP Keepalives -
# see "man 7 tcp" for details
#tcp_keepalives_idle = 0 # TCP_KEEPIDLE, in seconds;
# 0 selects the system default
#tcp_keepalives_interval = 0 # TCP_KEEPINTVL, in seconds;
# 0 selects the system default
#tcp_keepalives_count = 0 # TCP_KEEPCNT;
# 0 selects the system default
#------------------------------------------------------------------------------
# RESOURCE USAGE (except WAL)
#------------------------------------------------------------------------------
# - Memory -
shared_buffers = 8GB # min 128kB
# (change requires restart)
#temp_buffers = 8MB # min 800kB
#max_prepared_transactions = 0 # zero disables the feature
# (change requires restart)
# Note: Increasing max_prepared_transactions costs ~600 bytes of shared memory
# per transaction slot, plus lock space (see max_locks_per_transaction).
# It is not advisable to set max_prepared_transactions nonzero unless you
# actively intend to use prepared transactions.
work_mem = 2MB # min 64kB
maintenance_work_mem = 1536MB # min 1MB
#max_stack_depth = 2MB # min 100kB
# - Disk -
#temp_file_limit = -1 # limits per-session temp file space
# in kB, or -1 for no limit
# - Kernel Resource Usage -
#max_files_per_process = 1000 # min 25
# (change requires restart)
#shared_preload_libraries = '' # (change requires restart)
# - Cost-Based Vacuum Delay -
#vacuum_cost_delay = 0 # 0-100 milliseconds
#vacuum_cost_page_hit = 1 # 0-10000 credits
#vacuum_cost_page_miss = 10 # 0-10000 credits
#vacuum_cost_page_dirty = 20 # 0-10000 credits
#vacuum_cost_limit = 200 # 1-10000 credits
# - Background Writer -
#bgwriter_delay = 200ms # 10-10000ms between rounds
#bgwriter_lru_maxpages = 100 # 0-1000 max buffers written/round
#bgwriter_lru_multiplier = 2.0 # 0-10.0 multipler on buffers scanned/round
# - Asynchronous Behavior -
effective_io_concurrency = 2 # 1-1000; 0 disables prefetching
#------------------------------------------------------------------------------
# WRITE AHEAD LOG
#------------------------------------------------------------------------------
# - Settings -
wal_level = hot_standby # minimal, archive, or hot_standby
# (change requires restart)
#fsync = on # turns forced synchronization on or off
#synchronous_commit = on # synchronization level;
# off, local, remote_write, or on
#wal_sync_method = fsync # the default is the first option
# supported by the operating system:
# open_datasync
# fdatasync (default on Linux)
# fsync
# fsync_writethrough
# open_sync
#full_page_writes = on # recover from partial page writes
#wal_buffers = -1 # min 32kB, -1 sets based on shared_buffers
# (change requires restart)
#wal_writer_delay = 200ms # 1-10000 milliseconds
#commit_delay = 0 # range 0-100000, in microseconds
#commit_siblings = 5 # range 1-1000
# - Checkpoints -
checkpoint_segments = 64 # in logfile segments, min 1, 16MB each
checkpoint_timeout = 30min # range 30s-1h
checkpoint_completion_target = 0.9 # checkpoint target duration, 0.0 - 1.0
#checkpoint_warning = 30s # 0 disables
# - Archiving -
#archive_mode = off # allows archiving to be done
# (change requires restart)
#archive_command = '' # command to use to archive a logfile segment
# placeholders: %p = path of file to archive
# %f = file name only
# e.g. 'test ! -f /mnt/server/archivedir/%f && cp %p /mnt/server/archivedir/%f'
#archive_timeout = 0 # force a logfile segment switch after this
# number of seconds; 0 disables
#------------------------------------------------------------------------------
# REPLICATION
#------------------------------------------------------------------------------
# - Sending Server(s) -
# Set these on the master and on any standby that will send replication data.
max_wal_senders = 2 # max number of walsender processes
# (change requires restart)
wal_keep_segments = 2000 # in logfile segments, 16MB each; 0 disables
#wal_sender_timeout = 60s # in milliseconds; 0 disables
# - Master Server -
# These settings are ignored on a standby server.
#synchronous_standby_names = '' # standby servers that provide sync rep
# comma-separated list of application_name
# from standby(s); '*' = all
#vacuum_defer_cleanup_age = 0 # number of xacts by which cleanup is delayed
# - Standby Servers -
# These settings are ignored on a master server.
hot_standby = on # "on" allows queries during recovery
# (change requires restart)
#max_standby_archive_delay = 30s # max delay before canceling queries
# when reading WAL from archive;
# -1 allows indefinite delay
#max_standby_streaming_delay = 30s # max delay before canceling queries
# when reading streaming WAL;
# -1 allows indefinite delay
#wal_receiver_status_interval = 10s # send replies at least this often
# 0 disables
#hot_standby_feedback = off # send info from standby to prevent
# query conflicts
#wal_receiver_timeout = 60s # time that receiver waits for
# communication from master
# in milliseconds; 0 disables
#------------------------------------------------------------------------------
# QUERY TUNING
#------------------------------------------------------------------------------
# - Planner Method Configuration -
#enable_bitmapscan = on
#enable_hashagg = on
#enable_hashjoin = on
#enable_indexscan = on
#enable_indexonlyscan = on
#enable_material = on
#enable_mergejoin = on
#enable_nestloop = on
#enable_seqscan = on
#enable_sort = on
#enable_tidscan = on
# - Planner Cost Constants -
#seq_page_cost = 1.0 # measured on an arbitrary scale
random_page_cost = 2.0 # same scale as above
#cpu_tuple_cost = 0.01 # same scale as above
#cpu_index_tuple_cost = 0.005 # same scale as above
#cpu_operator_cost = 0.0025 # same scale as above
effective_cache_size = 24GB
# - Genetic Query Optimizer -
#geqo = on
#geqo_threshold = 12
#geqo_effort = 5 # range 1-10
#geqo_pool_size = 0 # selects default based on effort
#geqo_generations = 0 # selects default based on effort
#geqo_selection_bias = 2.0 # range 1.5-2.0
#geqo_seed = 0.0 # range 0.0-1.0
# - Other Planner Options -
#default_statistics_target = 100 # range 1-10000
#constraint_exclusion = partition # on, off, or partition
#cursor_tuple_fraction = 0.1 # range 0.0-1.0
#from_collapse_limit = 8
#join_collapse_limit = 8 # 1 disables collapsing of explicit
# JOIN clauses
#------------------------------------------------------------------------------
# ERROR REPORTING AND LOGGING
#------------------------------------------------------------------------------
# - Where to Log -
#log_destination = 'stderr' # Valid values are combinations of
# stderr, csvlog, syslog, and eventlog,
# depending on platform. csvlog
# requires logging_collector to be on.
# This is used when logging to stderr:
logging_collector = on # Enable capturing of stderr and csvlog
# into log files. Required to be on for
# csvlogs.
# (change requires restart)
# These are only used if logging_collector is on:
log_directory = '../logs' # directory where log files are written,
# can be absolute or relative to PGDATA
log_filename = 'postgresql-%Y-%m-%d.log' # log file name pattern,
# can include strftime() escapes
#log_file_mode = 0600 # creation mode for log files,
# begin with 0 to use octal notation
log_truncate_on_rotation = on # If on, an existing log file with the
# same name as the new log file will be
# truncated rather than appended to.
# But such truncation only occurs on
# time-driven rotation, not on restarts
# or size-driven rotation. Default is
# off, meaning append to existing files
# in all cases.
#log_rotation_age = 1d # Automatic rotation of logfiles will
# happen after that time. 0 disables.
log_rotation_size = 100MB # Automatic rotation of logfiles will
# happen after that much log output.
# 0 disables.
# These are relevant when logging to syslog:
#syslog_facility = 'LOCAL0'
#syslog_ident = 'postgres'
# This is only relevant when logging to eventlog (win32):
#event_source = 'PostgreSQL'
# - When to Log -
#client_min_messages = notice # values in order of decreasing detail:
# debug5
# debug4
# debug3
# debug2
# debug1
# log
# notice
# warning
# error
log_min_messages = notice # values in order of decreasing detail:
# debug5
# debug4
# debug3
# debug2
# debug1
# info
# notice
# warning
# error
# log
# fatal
# panic
log_min_error_statement = notice # values in order of decreasing detail:
# debug5
# debug4
# debug3
# debug2
# debug1
# info
# notice
# warning
# error
# log
# fatal
# panic (effectively off)
log_min_duration_statement = 200 # -1 is disabled, 0 logs all statements
# and their durations, > 0 logs only
# statements running at least this number
# of milliseconds
# - What to Log -
#debug_print_parse = off
#debug_print_rewritten = off
#debug_print_plan = off
#debug_pretty_print = on
#log_checkpoints = off
#log_connections = off
#log_disconnections = off
#log_duration = off
#log_error_verbosity = default # terse, default, or verbose messages
#log_hostname = off
log_line_prefix = '[%t][%h][%a] ' # special values:
# %a = application name
# %u = user name
# %d = database name
# %r = remote host and port
# %h = remote host
# %p = process ID
# %t = timestamp without milliseconds
# %m = timestamp with milliseconds
# %i = command tag
# %e = SQL state
# %c = session ID
# %l = session line number
# %s = session start timestamp
# %v = virtual transaction ID
# %x = transaction ID (0 if none)
# %q = stop here in non-session
# processes
# %% = '%'
# e.g. '<%u%%%d> '
log_lock_waits = on # log lock waits >= deadlock_timeout
#log_statement = 'none' # none, ddl, mod, all
#log_temp_files = -1 # log temporary files equal or larger
# than the specified size in kilobytes;
# -1 disables, 0 logs all temp files
log_timezone = 'ROK'
#------------------------------------------------------------------------------
# RUNTIME STATISTICS
#------------------------------------------------------------------------------
# - Query/Index Statistics Collector -
#track_activities = on
#track_counts = on
#track_io_timing = off
#track_functions = none # none, pl, all
#track_activity_query_size = 1024 # (change requires restart)
#update_process_title = on
#stats_temp_directory = 'pg_stat_tmp'
# - Statistics Monitoring -
#log_parser_stats = off
#log_planner_stats = off
#log_executor_stats = off
#log_statement_stats = off
#------------------------------------------------------------------------------
# AUTOVACUUM PARAMETERS
#------------------------------------------------------------------------------
#autovacuum = on # Enable autovacuum subprocess? 'on'
# requires track_counts to also be on.
log_autovacuum_min_duration = 0 # -1 disables, 0 logs all actions and
# their durations, > 0 logs only
# actions running at least this number
# of milliseconds.
#autovacuum_max_workers = 3 # max number of autovacuum subprocesses
# (change requires restart)
#autovacuum_naptime = 1min # time between autovacuum runs
#autovacuum_vacuum_threshold = 50 # min number of row updates before
# vacuum
#autovacuum_analyze_threshold = 50 # min number of row updates before
# analyze
#autovacuum_vacuum_scale_factor = 0.2 # fraction of table size before vacuum
#autovacuum_analyze_scale_factor = 0.1 # fraction of table size before analyze
#autovacuum_freeze_max_age = 200000000 # maximum XID age before forced vacuum
# (change requires restart)
#autovacuum_multixact_freeze_max_age = 400000000 # maximum Multixact age
# before forced vacuum
# (change requires restart)
#autovacuum_vacuum_cost_delay = 20ms # default vacuum cost delay for
# autovacuum, in milliseconds;
# -1 means use vacuum_cost_delay
#autovacuum_vacuum_cost_limit = -1 # default vacuum cost limit for
# autovacuum, -1 means use
# vacuum_cost_limit
#------------------------------------------------------------------------------
# CLIENT CONNECTION DEFAULTS
#------------------------------------------------------------------------------
# - Statement Behavior -
#search_path = '"$user",public' # schema names
#default_tablespace = '' # a tablespace name, '' uses the default
#temp_tablespaces = '' # a list of tablespace names, '' uses
# only default tablespace
#check_function_bodies = on
#default_transaction_isolation = 'read committed'
#default_transaction_read_only = off
#default_transaction_deferrable = off
#session_replication_role = 'origin'
#statement_timeout = 0 # in milliseconds, 0 is disabled
#lock_timeout = 0 # in milliseconds, 0 is disabled
#vacuum_freeze_min_age = 50000000
#vacuum_freeze_table_age = 150000000
#vacuum_multixact_freeze_min_age = 5000000
#vacuum_multixact_freeze_table_age = 150000000
#bytea_output = 'hex' # hex, escape
#xmlbinary = 'base64'
#xmloption = 'content'
# - Locale and Formatting -
datestyle = 'iso, mdy'
#intervalstyle = 'postgres'
timezone = 'ROK'
#timezone_abbreviations = 'Default' # Select the set of available time zone
# abbreviations. Currently, there are
# Default
# Australia
# India
# You can create your own file in
# share/timezonesets/.
#extra_float_digits = 0 # min -15, max 3
client_encoding = uhc # actually, defaults to database
# encoding
# These settings are initialized by initdb, but they can be changed.
lc_messages = 'C' # locale for system error message
# strings
lc_monetary = 'C' # locale for monetary formatting
lc_numeric = 'C' # locale for number formatting
lc_time = 'C' # locale for time formatting
# default configuration for text search
default_text_search_config = 'pg_catalog.english'
# - Other Defaults -
#dynamic_library_path = '$libdir'
#local_preload_libraries = ''
#------------------------------------------------------------------------------
# LOCK MANAGEMENT
#------------------------------------------------------------------------------
#deadlock_timeout = 1s
#max_locks_per_transaction = 64 # min 10
# (change requires restart)
# Note: Each lock table slot uses ~270 bytes of shared memory, and there are
# max_locks_per_transaction * (max_connections + max_prepared_transactions)
# lock table slots.
#max_pred_locks_per_transaction = 64 # min 10
# (change requires restart)
#------------------------------------------------------------------------------
# VERSION/PLATFORM COMPATIBILITY
#------------------------------------------------------------------------------
# - Previous PostgreSQL Versions -
#array_nulls = on
backslash_quote = on # on, off, or safe_encoding
#default_with_oids = off
escape_string_warning = off
#lo_compat_privileges = off
#quote_all_identifiers = off
#sql_inheritance = on
#standard_conforming_strings = on
#synchronize_seqscans = on
# - Other Platforms and Clients -
#transform_null_equals = off
#------------------------------------------------------------------------------
# ERROR HANDLING
#------------------------------------------------------------------------------
#exit_on_error = off # terminate session on any error?
#restart_after_crash = on # reinitialize after backend crash?
#------------------------------------------------------------------------------
# CONFIG FILE INCLUDES
#------------------------------------------------------------------------------
# These options allow settings to be loaded from files other than the
# default postgresql.conf.
#include_dir = 'conf.d' # include files ending in '.conf' from
# directory 'conf.d'
#include_if_exists = 'exists.conf' # include file only if it exists
#include = 'special.conf' # include file
#------------------------------------------------------------------------------
# CUSTOMIZED OPTIONS
#------------------------------------------------------------------------------
# Add settings for extensions here
@@ -0,0 +1,596 @@
# -----------------------------
# PostgreSQL configuration file
# -----------------------------
#
# This file consists of lines of the form:
#
# name = value
#
# (The "=" is optional.) Whitespace may be used. Comments are introduced with
# "#" anywhere on a line. The complete list of parameter names and allowed
# values can be found in the PostgreSQL documentation.
#
# The commented-out settings shown in this file represent the default values.
# Re-commenting a setting is NOT sufficient to revert it to the default value;
# you need to reload the server.
#
# This file is read on server startup and when the server receives a SIGHUP
# signal. If you edit the file on a running system, you have to SIGHUP the
# server for the changes to take effect, or use "pg_ctl reload". Some
# parameters, which are marked below, require a server shutdown and restart to
# take effect.
#
# Any parameter can also be given as a command-line option to the server, e.g.,
# "postgres -c log_connections=on". Some parameters can be changed at run time
# with the "SET" SQL command.
#
# Memory units: kB = kilobytes Time units: ms = milliseconds
# MB = megabytes s = seconds
# GB = gigabytes min = minutes
# h = hours
# d = days
#------------------------------------------------------------------------------
# FILE LOCATIONS
#------------------------------------------------------------------------------
# The default values of these variables are driven from the -D command-line
# option or PGDATA environment variable, represented here as ConfigDir.
#data_directory = 'ConfigDir' # use data in another directory
# (change requires restart)
#hba_file = 'ConfigDir/pg_hba.conf' # host-based authentication file
# (change requires restart)
#ident_file = 'ConfigDir/pg_ident.conf' # ident configuration file
# (change requires restart)
# If external_pid_file is not explicitly set, no extra PID file is written.
#external_pid_file = '' # write an extra PID file
# (change requires restart)
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
# - Connection Settings -
listen_addresses = '*' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
# (change requires restart)
port = 6543 # (change requires restart)
max_connections = 4096 # (change requires restart)
# Note: Increasing max_connections costs ~400 bytes of shared memory per
# connection slot, plus lock space (see max_locks_per_transaction).
#superuser_reserved_connections = 3 # (change requires restart)
#unix_socket_directories = '/tmp' # comma-separated list of directories
# (change requires restart)
#unix_socket_group = '' # (change requires restart)
#unix_socket_permissions = 0777 # begin with 0 to use octal notation
# (change requires restart)
#bonjour = off # advertise server via Bonjour
# (change requires restart)
#bonjour_name = '' # defaults to the computer name
# (change requires restart)
# - Security and Authentication -
#authentication_timeout = 1min # 1s-600s
#ssl = off # (change requires restart)
#ssl_ciphers = 'DEFAULT:!LOW:!EXP:!MD5:@STRENGTH' # allowed SSL ciphers
# (change requires restart)
#ssl_renegotiation_limit = 512MB # amount of data between renegotiations
#ssl_cert_file = 'server.crt' # (change requires restart)
#ssl_key_file = 'server.key' # (change requires restart)
#ssl_ca_file = '' # (change requires restart)
#ssl_crl_file = '' # (change requires restart)
#password_encryption = on
#db_user_namespace = off
# Kerberos and GSSAPI
#krb_server_keyfile = ''
#krb_srvname = 'postgres' # (Kerberos only)
#krb_caseins_users = off
# - TCP Keepalives -
# see "man 7 tcp" for details
#tcp_keepalives_idle = 0 # TCP_KEEPIDLE, in seconds;
# 0 selects the system default
#tcp_keepalives_interval = 0 # TCP_KEEPINTVL, in seconds;
# 0 selects the system default
#tcp_keepalives_count = 0 # TCP_KEEPCNT;
# 0 selects the system default
#------------------------------------------------------------------------------
# RESOURCE USAGE (except WAL)
#------------------------------------------------------------------------------
# - Memory -
shared_buffers = 12GB # min 128kB
# (change requires restart)
#temp_buffers = 8MB # min 800kB
#max_prepared_transactions = 0 # zero disables the feature
# (change requires restart)
# Note: Increasing max_prepared_transactions costs ~600 bytes of shared memory
# per transaction slot, plus lock space (see max_locks_per_transaction).
# It is not advisable to set max_prepared_transactions nonzero unless you
# actively intend to use prepared transactions.
work_mem = 3MB # min 64kB
maintenance_work_mem = 2456MB # min 1MB
#max_stack_depth = 2MB # min 100kB
# - Disk -
#temp_file_limit = -1 # limits per-session temp file space
# in kB, or -1 for no limit
# - Kernel Resource Usage -
#max_files_per_process = 1000 # min 25
# (change requires restart)
#shared_preload_libraries = '' # (change requires restart)
# - Cost-Based Vacuum Delay -
#vacuum_cost_delay = 0 # 0-100 milliseconds
#vacuum_cost_page_hit = 1 # 0-10000 credits
#vacuum_cost_page_miss = 10 # 0-10000 credits
#vacuum_cost_page_dirty = 20 # 0-10000 credits
#vacuum_cost_limit = 200 # 1-10000 credits
# - Background Writer -
#bgwriter_delay = 200ms # 10-10000ms between rounds
#bgwriter_lru_maxpages = 100 # 0-1000 max buffers written/round
#bgwriter_lru_multiplier = 2.0 # 0-10.0 multipler on buffers scanned/round
# - Asynchronous Behavior -
effective_io_concurrency = 2 # 1-1000; 0 disables prefetching
#------------------------------------------------------------------------------
# WRITE AHEAD LOG
#------------------------------------------------------------------------------
# - Settings -
wal_level = hot_standby # minimal, archive, or hot_standby
# (change requires restart)
#fsync = on # turns forced synchronization on or off
#synchronous_commit = on # synchronization level;
# off, local, remote_write, or on
#wal_sync_method = fsync # the default is the first option
# supported by the operating system:
# open_datasync
# fdatasync (default on Linux)
# fsync
# fsync_writethrough
# open_sync
#full_page_writes = on # recover from partial page writes
#wal_buffers = -1 # min 32kB, -1 sets based on shared_buffers
# (change requires restart)
#wal_writer_delay = 200ms # 1-10000 milliseconds
#commit_delay = 0 # range 0-100000, in microseconds
#commit_siblings = 5 # range 1-1000
# - Checkpoints -
checkpoint_segments = 64 # in logfile segments, min 1, 16MB each
checkpoint_timeout = 30min # range 30s-1h
checkpoint_completion_target = 0.9 # checkpoint target duration, 0.0 - 1.0
#checkpoint_warning = 30s # 0 disables
# - Archiving -
#archive_mode = off # allows archiving to be done
# (change requires restart)
#archive_command = '' # command to use to archive a logfile segment
# placeholders: %p = path of file to archive
# %f = file name only
# e.g. 'test ! -f /mnt/server/archivedir/%f && cp %p /mnt/server/archivedir/%f'
#archive_timeout = 0 # force a logfile segment switch after this
# number of seconds; 0 disables
#------------------------------------------------------------------------------
# REPLICATION
#------------------------------------------------------------------------------
# - Sending Server(s) -
# Set these on the master and on any standby that will send replication data.
max_wal_senders = 2 # max number of walsender processes
# (change requires restart)
wal_keep_segments = 2000 # in logfile segments, 16MB each; 0 disables
#wal_sender_timeout = 60s # in milliseconds; 0 disables
# - Master Server -
# These settings are ignored on a standby server.
#synchronous_standby_names = '' # standby servers that provide sync rep
# comma-separated list of application_name
# from standby(s); '*' = all
#vacuum_defer_cleanup_age = 0 # number of xacts by which cleanup is delayed
# - Standby Servers -
# These settings are ignored on a master server.
hot_standby = on # "on" allows queries during recovery
# (change requires restart)
#max_standby_archive_delay = 30s # max delay before canceling queries
# when reading WAL from archive;
# -1 allows indefinite delay
#max_standby_streaming_delay = 30s # max delay before canceling queries
# when reading streaming WAL;
# -1 allows indefinite delay
#wal_receiver_status_interval = 10s # send replies at least this often
# 0 disables
#hot_standby_feedback = off # send info from standby to prevent
# query conflicts
#wal_receiver_timeout = 60s # time that receiver waits for
# communication from master
# in milliseconds; 0 disables
#------------------------------------------------------------------------------
# QUERY TUNING
#------------------------------------------------------------------------------
# - Planner Method Configuration -
#enable_bitmapscan = on
#enable_hashagg = on
#enable_hashjoin = on
#enable_indexscan = on
#enable_indexonlyscan = on
#enable_material = on
#enable_mergejoin = on
#enable_nestloop = on
#enable_seqscan = on
#enable_sort = on
#enable_tidscan = on
# - Planner Cost Constants -
#seq_page_cost = 1.0 # measured on an arbitrary scale
random_page_cost = 2.0 # same scale as above
#cpu_tuple_cost = 0.01 # same scale as above
#cpu_index_tuple_cost = 0.005 # same scale as above
#cpu_operator_cost = 0.0025 # same scale as above
effective_cache_size = 36GB
# - Genetic Query Optimizer -
#geqo = on
#geqo_threshold = 12
#geqo_effort = 5 # range 1-10
#geqo_pool_size = 0 # selects default based on effort
#geqo_generations = 0 # selects default based on effort
#geqo_selection_bias = 2.0 # range 1.5-2.0
#geqo_seed = 0.0 # range 0.0-1.0
# - Other Planner Options -
#default_statistics_target = 100 # range 1-10000
#constraint_exclusion = partition # on, off, or partition
#cursor_tuple_fraction = 0.1 # range 0.0-1.0
#from_collapse_limit = 8
#join_collapse_limit = 8 # 1 disables collapsing of explicit
# JOIN clauses
#------------------------------------------------------------------------------
# ERROR REPORTING AND LOGGING
#------------------------------------------------------------------------------
# - Where to Log -
#log_destination = 'stderr' # Valid values are combinations of
# stderr, csvlog, syslog, and eventlog,
# depending on platform. csvlog
# requires logging_collector to be on.
# This is used when logging to stderr:
logging_collector = on # Enable capturing of stderr and csvlog
# into log files. Required to be on for
# csvlogs.
# (change requires restart)
# These are only used if logging_collector is on:
log_directory = '../logs' # directory where log files are written,
# can be absolute or relative to PGDATA
log_filename = 'postgresql-%Y-%m-%d.log' # log file name pattern,
# can include strftime() escapes
#log_file_mode = 0600 # creation mode for log files,
# begin with 0 to use octal notation
log_truncate_on_rotation = on # If on, an existing log file with the
# same name as the new log file will be
# truncated rather than appended to.
# But such truncation only occurs on
# time-driven rotation, not on restarts
# or size-driven rotation. Default is
# off, meaning append to existing files
# in all cases.
#log_rotation_age = 1d # Automatic rotation of logfiles will
# happen after that time. 0 disables.
log_rotation_size = 100MB # Automatic rotation of logfiles will
# happen after that much log output.
# 0 disables.
# These are relevant when logging to syslog:
#syslog_facility = 'LOCAL0'
#syslog_ident = 'postgres'
# This is only relevant when logging to eventlog (win32):
#event_source = 'PostgreSQL'
# - When to Log -
#client_min_messages = notice # values in order of decreasing detail:
# debug5
# debug4
# debug3
# debug2
# debug1
# log
# notice
# warning
# error
log_min_messages = notice # values in order of decreasing detail:
# debug5
# debug4
# debug3
# debug2
# debug1
# info
# notice
# warning
# error
# log
# fatal
# panic
log_min_error_statement = notice # values in order of decreasing detail:
# debug5
# debug4
# debug3
# debug2
# debug1
# info
# notice
# warning
# error
# log
# fatal
# panic (effectively off)
log_min_duration_statement = 200 # -1 is disabled, 0 logs all statements
# and their durations, > 0 logs only
# statements running at least this number
# of milliseconds
# - What to Log -
#debug_print_parse = off
#debug_print_rewritten = off
#debug_print_plan = off
#debug_pretty_print = on
#log_checkpoints = off
#log_connections = off
#log_disconnections = off
#log_duration = off
#log_error_verbosity = default # terse, default, or verbose messages
#log_hostname = off
log_line_prefix = '[%t][%h][%a] ' # special values:
# %a = application name
# %u = user name
# %d = database name
# %r = remote host and port
# %h = remote host
# %p = process ID
# %t = timestamp without milliseconds
# %m = timestamp with milliseconds
# %i = command tag
# %e = SQL state
# %c = session ID
# %l = session line number
# %s = session start timestamp
# %v = virtual transaction ID
# %x = transaction ID (0 if none)
# %q = stop here in non-session
# processes
# %% = '%'
# e.g. '<%u%%%d> '
log_lock_waits = on # log lock waits >= deadlock_timeout
#log_statement = 'none' # none, ddl, mod, all
#log_temp_files = -1 # log temporary files equal or larger
# than the specified size in kilobytes;
# -1 disables, 0 logs all temp files
log_timezone = 'ROK'
#------------------------------------------------------------------------------
# RUNTIME STATISTICS
#------------------------------------------------------------------------------
# - Query/Index Statistics Collector -
#track_activities = on
#track_counts = on
#track_io_timing = off
#track_functions = none # none, pl, all
#track_activity_query_size = 1024 # (change requires restart)
#update_process_title = on
#stats_temp_directory = 'pg_stat_tmp'
# - Statistics Monitoring -
#log_parser_stats = off
#log_planner_stats = off
#log_executor_stats = off
#log_statement_stats = off
#------------------------------------------------------------------------------
# AUTOVACUUM PARAMETERS
#------------------------------------------------------------------------------
#autovacuum = on # Enable autovacuum subprocess? 'on'
# requires track_counts to also be on.
log_autovacuum_min_duration = 0 # -1 disables, 0 logs all actions and
# their durations, > 0 logs only
# actions running at least this number
# of milliseconds.
#autovacuum_max_workers = 3 # max number of autovacuum subprocesses
# (change requires restart)
#autovacuum_naptime = 1min # time between autovacuum runs
#autovacuum_vacuum_threshold = 50 # min number of row updates before
# vacuum
#autovacuum_analyze_threshold = 50 # min number of row updates before
# analyze
#autovacuum_vacuum_scale_factor = 0.2 # fraction of table size before vacuum
#autovacuum_analyze_scale_factor = 0.1 # fraction of table size before analyze
#autovacuum_freeze_max_age = 200000000 # maximum XID age before forced vacuum
# (change requires restart)
#autovacuum_multixact_freeze_max_age = 400000000 # maximum Multixact age
# before forced vacuum
# (change requires restart)
#autovacuum_vacuum_cost_delay = 20ms # default vacuum cost delay for
# autovacuum, in milliseconds;
# -1 means use vacuum_cost_delay
#autovacuum_vacuum_cost_limit = -1 # default vacuum cost limit for
# autovacuum, -1 means use
# vacuum_cost_limit
#------------------------------------------------------------------------------
# CLIENT CONNECTION DEFAULTS
#------------------------------------------------------------------------------
# - Statement Behavior -
#search_path = '"$user",public' # schema names
#default_tablespace = '' # a tablespace name, '' uses the default
#temp_tablespaces = '' # a list of tablespace names, '' uses
# only default tablespace
#check_function_bodies = on
#default_transaction_isolation = 'read committed'
#default_transaction_read_only = off
#default_transaction_deferrable = off
#session_replication_role = 'origin'
#statement_timeout = 0 # in milliseconds, 0 is disabled
#lock_timeout = 0 # in milliseconds, 0 is disabled
#vacuum_freeze_min_age = 50000000
#vacuum_freeze_table_age = 150000000
#vacuum_multixact_freeze_min_age = 5000000
#vacuum_multixact_freeze_table_age = 150000000
#bytea_output = 'hex' # hex, escape
#xmlbinary = 'base64'
#xmloption = 'content'
# - Locale and Formatting -
datestyle = 'iso, mdy'
#intervalstyle = 'postgres'
timezone = 'ROK'
#timezone_abbreviations = 'Default' # Select the set of available time zone
# abbreviations. Currently, there are
# Default
# Australia
# India
# You can create your own file in
# share/timezonesets/.
#extra_float_digits = 0 # min -15, max 3
client_encoding = uhc # actually, defaults to database
# encoding
# These settings are initialized by initdb, but they can be changed.
lc_messages = 'C' # locale for system error message
# strings
lc_monetary = 'C' # locale for monetary formatting
lc_numeric = 'C' # locale for number formatting
lc_time = 'C' # locale for time formatting
# default configuration for text search
default_text_search_config = 'pg_catalog.english'
# - Other Defaults -
#dynamic_library_path = '$libdir'
#local_preload_libraries = ''
#------------------------------------------------------------------------------
# LOCK MANAGEMENT
#------------------------------------------------------------------------------
#deadlock_timeout = 1s
#max_locks_per_transaction = 64 # min 10
# (change requires restart)
# Note: Each lock table slot uses ~270 bytes of shared memory, and there are
# max_locks_per_transaction * (max_connections + max_prepared_transactions)
# lock table slots.
#max_pred_locks_per_transaction = 64 # min 10
# (change requires restart)
#------------------------------------------------------------------------------
# VERSION/PLATFORM COMPATIBILITY
#------------------------------------------------------------------------------
# - Previous PostgreSQL Versions -
#array_nulls = on
backslash_quote = on # on, off, or safe_encoding
#default_with_oids = off
escape_string_warning = off
#lo_compat_privileges = off
#quote_all_identifiers = off
#sql_inheritance = on
#standard_conforming_strings = on
#synchronize_seqscans = on
# - Other Platforms and Clients -
#transform_null_equals = off
#------------------------------------------------------------------------------
# ERROR HANDLING
#------------------------------------------------------------------------------
#exit_on_error = off # terminate session on any error?
#restart_after_crash = on # reinitialize after backend crash?
#------------------------------------------------------------------------------
# CONFIG FILE INCLUDES
#------------------------------------------------------------------------------
# These options allow settings to be loaded from files other than the
# default postgresql.conf.
#include_dir = 'conf.d' # include files ending in '.conf' from
# directory 'conf.d'
#include_if_exists = 'exists.conf' # include file only if it exists
#include = 'special.conf' # include file
#------------------------------------------------------------------------------
# CUSTOMIZED OPTIONS
#------------------------------------------------------------------------------
# Add settings for extensions here
@@ -0,0 +1,596 @@
# -----------------------------
# PostgreSQL configuration file
# -----------------------------
#
# This file consists of lines of the form:
#
# name = value
#
# (The "=" is optional.) Whitespace may be used. Comments are introduced with
# "#" anywhere on a line. The complete list of parameter names and allowed
# values can be found in the PostgreSQL documentation.
#
# The commented-out settings shown in this file represent the default values.
# Re-commenting a setting is NOT sufficient to revert it to the default value;
# you need to reload the server.
#
# This file is read on server startup and when the server receives a SIGHUP
# signal. If you edit the file on a running system, you have to SIGHUP the
# server for the changes to take effect, or use "pg_ctl reload". Some
# parameters, which are marked below, require a server shutdown and restart to
# take effect.
#
# Any parameter can also be given as a command-line option to the server, e.g.,
# "postgres -c log_connections=on". Some parameters can be changed at run time
# with the "SET" SQL command.
#
# Memory units: kB = kilobytes Time units: ms = milliseconds
# MB = megabytes s = seconds
# GB = gigabytes min = minutes
# h = hours
# d = days
#------------------------------------------------------------------------------
# FILE LOCATIONS
#------------------------------------------------------------------------------
# The default values of these variables are driven from the -D command-line
# option or PGDATA environment variable, represented here as ConfigDir.
#data_directory = 'ConfigDir' # use data in another directory
# (change requires restart)
#hba_file = 'ConfigDir/pg_hba.conf' # host-based authentication file
# (change requires restart)
#ident_file = 'ConfigDir/pg_ident.conf' # ident configuration file
# (change requires restart)
# If external_pid_file is not explicitly set, no extra PID file is written.
#external_pid_file = '' # write an extra PID file
# (change requires restart)
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
# - Connection Settings -
listen_addresses = '*' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
# (change requires restart)
port = 6543 # (change requires restart)
max_connections = 4096 # (change requires restart)
# Note: Increasing max_connections costs ~400 bytes of shared memory per
# connection slot, plus lock space (see max_locks_per_transaction).
#superuser_reserved_connections = 3 # (change requires restart)
#unix_socket_directories = '/tmp' # comma-separated list of directories
# (change requires restart)
#unix_socket_group = '' # (change requires restart)
#unix_socket_permissions = 0777 # begin with 0 to use octal notation
# (change requires restart)
#bonjour = off # advertise server via Bonjour
# (change requires restart)
#bonjour_name = '' # defaults to the computer name
# (change requires restart)
# - Security and Authentication -
#authentication_timeout = 1min # 1s-600s
#ssl = off # (change requires restart)
#ssl_ciphers = 'DEFAULT:!LOW:!EXP:!MD5:@STRENGTH' # allowed SSL ciphers
# (change requires restart)
#ssl_renegotiation_limit = 512MB # amount of data between renegotiations
#ssl_cert_file = 'server.crt' # (change requires restart)
#ssl_key_file = 'server.key' # (change requires restart)
#ssl_ca_file = '' # (change requires restart)
#ssl_crl_file = '' # (change requires restart)
#password_encryption = on
#db_user_namespace = off
# Kerberos and GSSAPI
#krb_server_keyfile = ''
#krb_srvname = 'postgres' # (Kerberos only)
#krb_caseins_users = off
# - TCP Keepalives -
# see "man 7 tcp" for details
#tcp_keepalives_idle = 0 # TCP_KEEPIDLE, in seconds;
# 0 selects the system default
#tcp_keepalives_interval = 0 # TCP_KEEPINTVL, in seconds;
# 0 selects the system default
#tcp_keepalives_count = 0 # TCP_KEEPCNT;
# 0 selects the system default
#------------------------------------------------------------------------------
# RESOURCE USAGE (except WAL)
#------------------------------------------------------------------------------
# - Memory -
shared_buffers = 16GB # min 128kB
# (change requires restart)
#temp_buffers = 8MB # min 800kB
#max_prepared_transactions = 0 # zero disables the feature
# (change requires restart)
# Note: Increasing max_prepared_transactions costs ~600 bytes of shared memory
# per transaction slot, plus lock space (see max_locks_per_transaction).
# It is not advisable to set max_prepared_transactions nonzero unless you
# actively intend to use prepared transactions.
work_mem = 4MB # min 64kB
maintenance_work_mem = 3GB # min 1MB
#max_stack_depth = 2MB # min 100kB
# - Disk -
#temp_file_limit = -1 # limits per-session temp file space
# in kB, or -1 for no limit
# - Kernel Resource Usage -
#max_files_per_process = 1000 # min 25
# (change requires restart)
#shared_preload_libraries = '' # (change requires restart)
# - Cost-Based Vacuum Delay -
#vacuum_cost_delay = 0 # 0-100 milliseconds
#vacuum_cost_page_hit = 1 # 0-10000 credits
#vacuum_cost_page_miss = 10 # 0-10000 credits
#vacuum_cost_page_dirty = 20 # 0-10000 credits
#vacuum_cost_limit = 200 # 1-10000 credits
# - Background Writer -
#bgwriter_delay = 200ms # 10-10000ms between rounds
#bgwriter_lru_maxpages = 100 # 0-1000 max buffers written/round
#bgwriter_lru_multiplier = 2.0 # 0-10.0 multipler on buffers scanned/round
# - Asynchronous Behavior -
effective_io_concurrency = 2 # 1-1000; 0 disables prefetching
#------------------------------------------------------------------------------
# WRITE AHEAD LOG
#------------------------------------------------------------------------------
# - Settings -
wal_level = hot_standby # minimal, archive, or hot_standby
# (change requires restart)
#fsync = on # turns forced synchronization on or off
#synchronous_commit = on # synchronization level;
# off, local, remote_write, or on
#wal_sync_method = fsync # the default is the first option
# supported by the operating system:
# open_datasync
# fdatasync (default on Linux)
# fsync
# fsync_writethrough
# open_sync
#full_page_writes = on # recover from partial page writes
#wal_buffers = -1 # min 32kB, -1 sets based on shared_buffers
# (change requires restart)
#wal_writer_delay = 200ms # 1-10000 milliseconds
#commit_delay = 0 # range 0-100000, in microseconds
#commit_siblings = 5 # range 1-1000
# - Checkpoints -
checkpoint_segments = 64 # in logfile segments, min 1, 16MB each
checkpoint_timeout = 30min # range 30s-1h
checkpoint_completion_target = 0.9 # checkpoint target duration, 0.0 - 1.0
#checkpoint_warning = 30s # 0 disables
# - Archiving -
#archive_mode = off # allows archiving to be done
# (change requires restart)
#archive_command = '' # command to use to archive a logfile segment
# placeholders: %p = path of file to archive
# %f = file name only
# e.g. 'test ! -f /mnt/server/archivedir/%f && cp %p /mnt/server/archivedir/%f'
#archive_timeout = 0 # force a logfile segment switch after this
# number of seconds; 0 disables
#------------------------------------------------------------------------------
# REPLICATION
#------------------------------------------------------------------------------
# - Sending Server(s) -
# Set these on the master and on any standby that will send replication data.
max_wal_senders = 2 # max number of walsender processes
# (change requires restart)
wal_keep_segments = 2000 # in logfile segments, 16MB each; 0 disables
#wal_sender_timeout = 60s # in milliseconds; 0 disables
# - Master Server -
# These settings are ignored on a standby server.
#synchronous_standby_names = '' # standby servers that provide sync rep
# comma-separated list of application_name
# from standby(s); '*' = all
#vacuum_defer_cleanup_age = 0 # number of xacts by which cleanup is delayed
# - Standby Servers -
# These settings are ignored on a master server.
hot_standby = on # "on" allows queries during recovery
# (change requires restart)
#max_standby_archive_delay = 30s # max delay before canceling queries
# when reading WAL from archive;
# -1 allows indefinite delay
#max_standby_streaming_delay = 30s # max delay before canceling queries
# when reading streaming WAL;
# -1 allows indefinite delay
#wal_receiver_status_interval = 10s # send replies at least this often
# 0 disables
#hot_standby_feedback = off # send info from standby to prevent
# query conflicts
#wal_receiver_timeout = 60s # time that receiver waits for
# communication from master
# in milliseconds; 0 disables
#------------------------------------------------------------------------------
# QUERY TUNING
#------------------------------------------------------------------------------
# - Planner Method Configuration -
#enable_bitmapscan = on
#enable_hashagg = on
#enable_hashjoin = on
#enable_indexscan = on
#enable_indexonlyscan = on
#enable_material = on
#enable_mergejoin = on
#enable_nestloop = on
#enable_seqscan = on
#enable_sort = on
#enable_tidscan = on
# - Planner Cost Constants -
#seq_page_cost = 1.0 # measured on an arbitrary scale
random_page_cost = 2.0 # same scale as above
#cpu_tuple_cost = 0.01 # same scale as above
#cpu_index_tuple_cost = 0.005 # same scale as above
#cpu_operator_cost = 0.0025 # same scale as above
effective_cache_size = 48GB
# - Genetic Query Optimizer -
#geqo = on
#geqo_threshold = 12
#geqo_effort = 5 # range 1-10
#geqo_pool_size = 0 # selects default based on effort
#geqo_generations = 0 # selects default based on effort
#geqo_selection_bias = 2.0 # range 1.5-2.0
#geqo_seed = 0.0 # range 0.0-1.0
# - Other Planner Options -
#default_statistics_target = 100 # range 1-10000
#constraint_exclusion = partition # on, off, or partition
#cursor_tuple_fraction = 0.1 # range 0.0-1.0
#from_collapse_limit = 8
#join_collapse_limit = 8 # 1 disables collapsing of explicit
# JOIN clauses
#------------------------------------------------------------------------------
# ERROR REPORTING AND LOGGING
#------------------------------------------------------------------------------
# - Where to Log -
#log_destination = 'stderr' # Valid values are combinations of
# stderr, csvlog, syslog, and eventlog,
# depending on platform. csvlog
# requires logging_collector to be on.
# This is used when logging to stderr:
logging_collector = on # Enable capturing of stderr and csvlog
# into log files. Required to be on for
# csvlogs.
# (change requires restart)
# These are only used if logging_collector is on:
log_directory = '../logs' # directory where log files are written,
# can be absolute or relative to PGDATA
log_filename = 'postgresql-%Y-%m-%d.log' # log file name pattern,
# can include strftime() escapes
#log_file_mode = 0600 # creation mode for log files,
# begin with 0 to use octal notation
log_truncate_on_rotation = on # If on, an existing log file with the
# same name as the new log file will be
# truncated rather than appended to.
# But such truncation only occurs on
# time-driven rotation, not on restarts
# or size-driven rotation. Default is
# off, meaning append to existing files
# in all cases.
#log_rotation_age = 1d # Automatic rotation of logfiles will
# happen after that time. 0 disables.
log_rotation_size = 100MB # Automatic rotation of logfiles will
# happen after that much log output.
# 0 disables.
# These are relevant when logging to syslog:
#syslog_facility = 'LOCAL0'
#syslog_ident = 'postgres'
# This is only relevant when logging to eventlog (win32):
#event_source = 'PostgreSQL'
# - When to Log -
#client_min_messages = notice # values in order of decreasing detail:
# debug5
# debug4
# debug3
# debug2
# debug1
# log
# notice
# warning
# error
log_min_messages = notice # values in order of decreasing detail:
# debug5
# debug4
# debug3
# debug2
# debug1
# info
# notice
# warning
# error
# log
# fatal
# panic
log_min_error_statement = notice # values in order of decreasing detail:
# debug5
# debug4
# debug3
# debug2
# debug1
# info
# notice
# warning
# error
# log
# fatal
# panic (effectively off)
log_min_duration_statement = 200 # -1 is disabled, 0 logs all statements
# and their durations, > 0 logs only
# statements running at least this number
# of milliseconds
# - What to Log -
#debug_print_parse = off
#debug_print_rewritten = off
#debug_print_plan = off
#debug_pretty_print = on
#log_checkpoints = off
#log_connections = off
#log_disconnections = off
#log_duration = off
#log_error_verbosity = default # terse, default, or verbose messages
#log_hostname = off
log_line_prefix = '[%t][%h][%a] ' # special values:
# %a = application name
# %u = user name
# %d = database name
# %r = remote host and port
# %h = remote host
# %p = process ID
# %t = timestamp without milliseconds
# %m = timestamp with milliseconds
# %i = command tag
# %e = SQL state
# %c = session ID
# %l = session line number
# %s = session start timestamp
# %v = virtual transaction ID
# %x = transaction ID (0 if none)
# %q = stop here in non-session
# processes
# %% = '%'
# e.g. '<%u%%%d> '
log_lock_waits = on # log lock waits >= deadlock_timeout
#log_statement = 'none' # none, ddl, mod, all
#log_temp_files = -1 # log temporary files equal or larger
# than the specified size in kilobytes;
# -1 disables, 0 logs all temp files
log_timezone = 'ROK'
#------------------------------------------------------------------------------
# RUNTIME STATISTICS
#------------------------------------------------------------------------------
# - Query/Index Statistics Collector -
#track_activities = on
#track_counts = on
#track_io_timing = off
#track_functions = none # none, pl, all
#track_activity_query_size = 1024 # (change requires restart)
#update_process_title = on
#stats_temp_directory = 'pg_stat_tmp'
# - Statistics Monitoring -
#log_parser_stats = off
#log_planner_stats = off
#log_executor_stats = off
#log_statement_stats = off
#------------------------------------------------------------------------------
# AUTOVACUUM PARAMETERS
#------------------------------------------------------------------------------
#autovacuum = on # Enable autovacuum subprocess? 'on'
# requires track_counts to also be on.
log_autovacuum_min_duration = 0 # -1 disables, 0 logs all actions and
# their durations, > 0 logs only
# actions running at least this number
# of milliseconds.
#autovacuum_max_workers = 3 # max number of autovacuum subprocesses
# (change requires restart)
#autovacuum_naptime = 1min # time between autovacuum runs
#autovacuum_vacuum_threshold = 50 # min number of row updates before
# vacuum
#autovacuum_analyze_threshold = 50 # min number of row updates before
# analyze
#autovacuum_vacuum_scale_factor = 0.2 # fraction of table size before vacuum
#autovacuum_analyze_scale_factor = 0.1 # fraction of table size before analyze
#autovacuum_freeze_max_age = 200000000 # maximum XID age before forced vacuum
# (change requires restart)
#autovacuum_multixact_freeze_max_age = 400000000 # maximum Multixact age
# before forced vacuum
# (change requires restart)
#autovacuum_vacuum_cost_delay = 20ms # default vacuum cost delay for
# autovacuum, in milliseconds;
# -1 means use vacuum_cost_delay
#autovacuum_vacuum_cost_limit = -1 # default vacuum cost limit for
# autovacuum, -1 means use
# vacuum_cost_limit
#------------------------------------------------------------------------------
# CLIENT CONNECTION DEFAULTS
#------------------------------------------------------------------------------
# - Statement Behavior -
#search_path = '"$user",public' # schema names
#default_tablespace = '' # a tablespace name, '' uses the default
#temp_tablespaces = '' # a list of tablespace names, '' uses
# only default tablespace
#check_function_bodies = on
#default_transaction_isolation = 'read committed'
#default_transaction_read_only = off
#default_transaction_deferrable = off
#session_replication_role = 'origin'
#statement_timeout = 0 # in milliseconds, 0 is disabled
#lock_timeout = 0 # in milliseconds, 0 is disabled
#vacuum_freeze_min_age = 50000000
#vacuum_freeze_table_age = 150000000
#vacuum_multixact_freeze_min_age = 5000000
#vacuum_multixact_freeze_table_age = 150000000
#bytea_output = 'hex' # hex, escape
#xmlbinary = 'base64'
#xmloption = 'content'
# - Locale and Formatting -
datestyle = 'iso, mdy'
#intervalstyle = 'postgres'
timezone = 'ROK'
#timezone_abbreviations = 'Default' # Select the set of available time zone
# abbreviations. Currently, there are
# Default
# Australia
# India
# You can create your own file in
# share/timezonesets/.
#extra_float_digits = 0 # min -15, max 3
client_encoding = uhc # actually, defaults to database
# encoding
# These settings are initialized by initdb, but they can be changed.
lc_messages = 'C' # locale for system error message
# strings
lc_monetary = 'C' # locale for monetary formatting
lc_numeric = 'C' # locale for number formatting
lc_time = 'C' # locale for time formatting
# default configuration for text search
default_text_search_config = 'pg_catalog.english'
# - Other Defaults -
#dynamic_library_path = '$libdir'
#local_preload_libraries = ''
#------------------------------------------------------------------------------
# LOCK MANAGEMENT
#------------------------------------------------------------------------------
#deadlock_timeout = 1s
#max_locks_per_transaction = 64 # min 10
# (change requires restart)
# Note: Each lock table slot uses ~270 bytes of shared memory, and there are
# max_locks_per_transaction * (max_connections + max_prepared_transactions)
# lock table slots.
#max_pred_locks_per_transaction = 64 # min 10
# (change requires restart)
#------------------------------------------------------------------------------
# VERSION/PLATFORM COMPATIBILITY
#------------------------------------------------------------------------------
# - Previous PostgreSQL Versions -
#array_nulls = on
backslash_quote = on # on, off, or safe_encoding
#default_with_oids = off
escape_string_warning = off
#lo_compat_privileges = off
#quote_all_identifiers = off
#sql_inheritance = on
#standard_conforming_strings = on
#synchronize_seqscans = on
# - Other Platforms and Clients -
#transform_null_equals = off
#------------------------------------------------------------------------------
# ERROR HANDLING
#------------------------------------------------------------------------------
#exit_on_error = off # terminate session on any error?
#restart_after_crash = on # reinitialize after backend crash?
#------------------------------------------------------------------------------
# CONFIG FILE INCLUDES
#------------------------------------------------------------------------------
# These options allow settings to be loaded from files other than the
# default postgresql.conf.
#include_dir = 'conf.d' # include files ending in '.conf' from
# directory 'conf.d'
#include_if_exists = 'exists.conf' # include file only if it exists
#include = 'special.conf' # include file
#------------------------------------------------------------------------------
# CUSTOMIZED OPTIONS
#------------------------------------------------------------------------------
# Add settings for extensions here
+81
View File
@@ -0,0 +1,81 @@
#! /bin/sh
#
# Description: PostgreSQL streaming repliation node failover script
# - promote execute
#
# Author: Solbox Storage dev team
# - storage.sd@solbox.com
## EDIT FROM HERE
# Installation prefix
prefix=/user/db/pgsql
# Data directory
PGDATA="$prefix/data"
# Who to run the postmaster as, usually "postgres". (NOT "root")
PGUSER=pgsql
## STOP EDITING HERE
# PID file
PIDFILE="$PGDATA/postmaster.pid"
# What to use to control command the postmaster
PGCTL="$prefix/bin/pg_ctl"
# Stnadby DB recovery.conf file
STANDBYDBCONF="$PGDATA/recovery.conf"
# The path that is to be used for the script
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# Parse command line parameters.
case $1 in
start)
# DB active and promote => normal
# etc => error
if [ -f $PIDFILE ] ; then
echo -n "Starting PostgreSQL Promote: "
su - $PGUSER -c "$PGCTL promote"
else
echo "Error: PostgreSQL is already stopped."
exit 1
fi
;;
stop)
echo -n "Stopping PostgreSQL: "
su - $PGUSER -c "$PGCTL stop --mode=fast"
echo "OK"
;;
status)
# Normal staus => print OK
# - DB active (pid exist )
# - AND Primary mode (recovery.conf not exist)
# Error status
# - etc ( DB not started or Standby mode )
if [ -f $PIDFILE ] ; then
if [ ! -f $STANDBYDBCONF ] ; then
echo "PostgreSQL running as a primary [OK]"
else
echo "PostgreSQL is standby status."
fi
else
echo "PostgreSQL is already stopped."
fi
;;
*)
# Print help
echo "Usage: $0 {start|stop|status}" 1>&2
exit 1
;;
esac
exit 0
+24
View File
@@ -0,0 +1,24 @@
각 스크립트 설명 및 사용법
============================
[RcdbFailover]
Heartbeat 를 이용한 RCDB 이중화 구성시
Heartbeat 을 통한 RCDB Failover 수행을 담당하기 위한 스크립트
본 스크립트는 Cloud Storage 의 RCDB 설치 패키지에 포함되어 배포된다.
1. 설치 경로
/etc/ha.d/resource.d
2. 설치 권한
-rwxr-xr-x 1 root root 1565 2014-08-28 19:17 RcdbFailover
3. 주의 사항
- 설치 전 Linux Heartbeat 가 먼저 설치되어 있어야 한다.
- PostgreSQL RCDB 가 /user/db/pgsql 기본 경로에 설치되어야 정상 동작한다.
( 기본 경로를 사용하지 않을 경우 스크립트 수정 필요)
-----------------------------
+27
View File
@@ -0,0 +1,27 @@
각 script 설정 방법 및 간략 설명
---------------------------------------------------------------------
[get_load]
1. 설명: RCDB 에서 수행 중인 Query 중 현재 실행 중인 Query 정보를 화면에 출력
2. 상세 내역
- 설치경로 : ~pgsql/scripts
3. 설치 후 확인 사항
- 해당 스크립트의 pgsql 실행 권한 설정 여부 확인
- 해당 스크립트는 9.x 이상 버전에서 정상 동작함
---------------------------------------------------------------------
[create_RCDB.sh]
1. 설명: RCDB 기본 스키마 생성 스크립트 생성
2. 상세 내역
- 설치경로 : ~pgsql/scripts
3. 설치 후 확인 사항
- 해당 디렉토리에 rcdb_schema.sql 존재되어야 함
- initdb 수행하기 때문에 data 디렉토리가 없어야 함
---------------------------------------------------------------------
+60
View File
@@ -0,0 +1,60 @@
#!/bin/sh
USER_INF=`whoami`
if [ $USER_INF != "pgsql" ]; then
echo "Please use 'pgsql' account.[current $USER_INF]"
exit 1
fi
CNT=`find . -maxdepth 1 -name "rcdb_schema.sql" | wc -l`
if [ $CNT -eq 0 ]; then
echo "Not Found Schema File."
exit 1
fi
#clean
rm -f err > /dev/null 2>&1
echo -n "1. init db "
initdb --locale=C > /dev/null 2>err
if [ $? -ne 0 ]; then
echo "...[ERR]"
cat err
exit 1
fi
echo "...[OK]"
echo -n "2. start RCDB "
pg_ctl start > /dev/null 2>err
if [ $? -ne 0 ]; then
echo "...[ERR]"
cat err
exit 1
fi
echo -n "."
while [ 1 ]
do
echo -n "."
sleep 1
if [ -n ~/data/postmaster.pid ]; then
break
fi
done
echo ".[OK]"
echo -n "3. create RCDB schema "
psql postgres < rcdb_schema.sql > /dev/null 2>err
if [ $? -ne 0 ]; then
echo "...[ERR]"
cat err
exit 1
fi
echo "...[OK]"
echo -n "4. stop RCDB "
pg_ctl stop -m f > /dev/null 2>err
if [ $? -ne 0 ]; then
echo "...[ERR]"
cat err
exit 1
fi
echo "...[OK]"
+5
View File
@@ -0,0 +1,5 @@
#!/bin/sh
# 8.4
#psql -p 5432 -c "select * from pg_stat_activity where current_query != '<IDLE>';" template1
# 9.x
psql -p 6543 -c "select * from pg_stat_activity where state != 'idle';" template1
File diff suppressed because it is too large Load Diff
+1
View File
@@ -0,0 +1 @@
각 script 설정 방법 및 간략 설명
+474
View File
@@ -0,0 +1,474 @@
Revision 1398
-------------------
수정일 : 2016-07-15
수정자 : 유희곤
- CHG : tagging 처리를 위한 copy 수행시 softlink 오류
- make_tagging.sh 에서 tagging 처리시 softlink 에 대해 -I 옵션 사용했으나.
- CentOS 7.X 에서 비정상 동작 발생.
- 이를 해결하기 위해 softlink 처리 부분에 대해 -P 옵션 사용하도록 수정 처리
- CHG : libs/libmcrypt-2.5.7 컴파일 오류 문제 수정
- CentOS 6.X, 7.X 에서 libmcrypt-2.5.7 make 수행시 automake-1.7 버전 문제 발생.
- 이를 해결하기 위해 configure 파일 1820 line 상의 am__api_version 항목 제거 처리
- 장비 테스트 결과 정상 make 확인 완료.
- CHG : libs/README.txt 파일 수정
- 잘못된 정보 수정 및 내역 추가
- NEW : README_linux.txt 파일 추가
- llnux 용 컴파일, tagging 방법에 대한 설명서 추가
* 본 사항은 기능 수정 사항이 아니므로.. tagging 처리 하지 않습니다.
Revision 1388
-------------------
수정일 : 2016-6-21
수정자 : 노경민
- CHG : auth token sample 추가
- sh_get_auth_string 사용한 cli tool sample 추가
Revision 1387
-------------------
수정일 : 2016-6-21
수정자 : 노경민
- CHG : sh_get_auth_string 불필요한 화면 출력 수정
- sh_get_auth_string 호출 시 불필요한 화면 출력 부분을 수정함
Revision 1345
-------------------
수정일 : 2016-4-7
수정자 : 노경민
- CHG : Sample 프로젝트 정리
- 각 예제별로 컴파일 환경 설정 방법을 ReadMe.txt로 추가함
Revision 1344
-------------------
수정일 : 2016-4-7
수정자 : 노경민
- CHG : tagging 스크립트 변경
- OS Bits 별 tagging 디렉토리 생성되도력 변경함
Revision 1308
-------------------
수정일 : 2015-12-21
수정자 : 노경민
- CHG: 배포 작업 개선
- LG U+, KTICS 별로 output 디렉토리 지정
- taggig을 위해한 배치 파일(스트립트) 추가
- sp-console3 을 위한 헤더 분리
Revision 1052
-------------------
수정일 : 2014-08-07
수정자 : 노경민
- BUG: 64Bits용 SSDK 사용할 경우 타임서버(cc_tsd)와 통신 지연
- 프로토콜 사이즈 오류 인한 통신 현상 발생
- 타임서버(cc_tsd) 5초 후 세션 강제 종료함
Revision 1032
-------------------
수정일 : 2014-07-29
수정자 : 노경민
- CHG: LG U+ GTS 도메인 변경
- gts.x-cdn.com => cs-gts.x-cdn.com
- cc-time.x-cdn.com => cs-time.x-cdn.com
- DEL: 사용되지 않는 기능 제거
- 구현되어 있지만 정상적으로 동작하지 않는 기능 제거
Revision 0953
-------------------
수정일 : 2014-02-25
수정자 : 노경민
- BUG: 수정일자 표기 오류
- 이전 sp-console 이슈되었된 내용이며, 소스 이원화로 CSDK에 관련 부분이
수정되지 않아서 발생한 버그임
Revision 0933
-------------------
수정일 : 2014-01-17
수정자 : 노경민
- CHG: neo library 소켓관련 버퍼 크기 변경
- 전처리기능을 관련 값 변경함(NE_BUFSIZ)
- 8KB => 64KB로 변경
Revision 0910
-------------------
수정일 : 2013-12-28
수정자 : 노경민
- CHG: 서비스 주소 획득 시 GTS와 연결 오류시 에러 오탐 수정
- SSDK의 get_address, get_addressex 함수 수정
- CHG: GTS와 통신 이용되는 이슈자명 변경
- SDK : SHSSDK=> SSDK
- sp-console : 기존과 구분을 위해서 sp-console3로 설정
- CHG: KTICS의 GTS, 타임서버 호스트 정보 변경
- GTS : gts01.ktsystemhosting.com => cc-gts.ktsh.co.kr
- 타임서버 : ktsh-tsc.ktsh.co.kr => cc-time.ktsh.co.kr
- CHG: 프로젝트 파일 수정
- sp-console 콘솔 지원을 위한 윈도우 프로젝트 정리
Revision 0887
-------------------
수정일 : 2013-08-26
수정자 : 노경민
- CHG: skylife Shared Library 지원(SSDK)
- SSDK library용 Shared Library 컴파일 옵션 조정
- NEW: 용량 조회 관련 함수 예제 추가
- SSDK 인터페이스 예제 추가
Revision 0880
-------------------
수정일 : 2013-08-19
수정자 : 노경민
- CHG: skylife Shared Library 지원
- mcrypt library static 링크를 위해서 libmcrypt 컴파일 변경
- NEW: sp-console 필요한 SSDK 함수 추가
- sp-console 콘솔 통합을 위해서 필요한 함수 추가
Revision 0878
-------------------
수정일 : 2013-08-16
수정자 : 노경민
- NEW: skylife 서비스 업로드 처리 위한 인터페이스 추가
- 해당 인터페이스 기존 인터페이스 재사용하여 만들어짐
Revision 0876
-------------------
수정일 : 2013-08-13
수정자 : 노경민
- CHG: sh_upload_buffer_r 외부 참조 인터페이스 추가
- 외부참조 가능 하도록 헤더 파일에 관련 함수 선언
- CHG: sh_upload_buffer_r의 start 위치 관련 변경
- 해당 필드값 0 미만이면 이어올리기 시 파일 뒷부분에 추가되도록 수정
- CHG: linux용 샘플 수정 및 추가
- CSDK와 sh_upload_buffer_r 사용 예제 추가
Revision 0873
-------------------
수정일 : 2013-08-09
수정자 : 김오종
- CHG: 모든 lib 및 dll 프로젝트 의 속성 정보 변경
- sdk가 배포될때 재배포 패키지의 설치가 필요없도록 하기 위함
- 속성에서 Code Generation -> Runtime Libarary의 속성을 /MD 에서 /MT로 변경 처리 함
Revision 0873
-------------------
수정일 : 2013-08-09
수정자 : 김오종
- CHG: 모든 lib 및 dll 프로젝트 의 속성 정보 변경
- sdk가 배포될때 재배포 패키지의 설치가 필요없도록 하기 위함
- 속성에서 Code Generation -> Runtime Libarary의 속성을 /MD 에서 /MT로 변경 처리 함
Revision 0871
-------------------
수정일 : 2013-06-26
수정자 : 김오종
- ADD: CSDK sh_upload() 함수 파라메터 추가
- 소프트라인(토토디스크) 요청으로 파라메터 추가
Revision 0860
-------------------
수정일 : 2013-03-25
수정자 : 김오종
- BUG: CSDK sh_download_buffer_r 함수 사용 중 메모리 참조 부분 수정
- BUG: CSDK 대용량 파일(4GB이상) 이어받기 기능 버그 수정
- ADD: CSDK sh_download() 함수 파라메터 추가
- 소프트라인(토토디스크) 요청으로 파라메터 추가
Revision 0637
-------------------
수정일 : 2011-12-12
수정자 : 노경민
- DEL: 불필요한 Visual Stuodio 프로젝트 파일 삭제
- CHG: 잘못등록된 소스 revert R0637 -> R0635
- SHCSDK.cpp 소스에 commit된 TEST 코드 원복처리
Revision 0636
-------------------
수정일 : 2011-12-08
수정자 : 김오종
- ADD: 고객 배포용 Sample 소스 등록.
- linux용과 windows용을 분리하여 등록한다.
Revision 0581
-------------------
수정일 : 2011-07-22
수정자 : 김오종
- CHG: cc_timed와 통신 하는 부분에 대해 32/64bit의 호환성을 위한 수정.
수정 파일 : SHCSDK.cpp
Revision 0574
-------------------
수정일 : 2011-07-05
수정자 : 노경민
- CHG: revision 573관련 프로젝트 속성 변경
Revision 0573
-------------------
수정일 : 2011-07-05
수정자 : 노경민
- NEW: SSDK 정적 라이브러리 프로젝트 추가
이전 SDK(version 1)에서 윈도우 계열 지원시 SSDK 경우 정적라이브러리도 제공되었음
정적 라이브러리 사용 시 런타임 라이브러리는 MTd, MT를 사용해야함
Revision 0572
-------------------
수정일 : 2011-06-20
수정자 : 노경민
- BUG: 멀티 쓰레드로 구성된 시스템에서 SDK 사용시 종료 현상 발생
1. DNS 캐쉬 관련 로직에서 static 변수 사용
2. get_auth_str 함수에서 static 변수 사용
3. strtok 함수 사용
4. gethostbyname 함수 사용
위와 같은 로직 때문에 관련 현상이 발생하여 이를 수정함
- BUG: 초기화(sh_init) 1회 후 리다이렉션 발생 한 이후 업로드되지 않는 버그
업로드 시 사용하는 path 변수가 중복으로 관리되어지는 문제 발견되어 이를 수정함
- CHG: CSDK를 사용하는 고정된 타임 서버 변경
ISP 구분 없이(KT,LG U+) 고정되어 있는 타임 서버를 ISP별로 구분할 있도록 수정함
KTICS : ktsh-tsc.ktsh.co.kr
LG U+ : cc-time.x-cdn.com
- NEW: 업/다운로드에서 발생하는 DSN lookup 실패 대한 재시도 로직 추가
DNS 캐쉬 삭제에 대한 부가적인 추가 기능이며, DNS lookup 실패 시 1회 재시도 로직을 추가함
Revision 0570
-------------------
수정일 : 2011-06-08
수정자 : 노경민
- CHG: Ubuntu 컴파일 오류 수정
include 선언 순서와 관련 있는 걸로 추정되며, 선언순을 바꿔 이를 해결하였음.
- BUG: Ubuntu에서 다운로드 오류 발생
Ubuntu 경우 open함수에서 O_CREAT 사용시 반드시 파일의 권한 설정되어야 정상동작함.
- BUG: 시간 동기화 맞지 않는 시스템에서 업로드 시 size '0'인 파일 발생
401에러 발생 시 재시도 로직에서 이전 단계에서 이미 body 부분을 모두 전송하였기 때문에
재시도 시 파일 사이즈에서 이전에 전송 성공했던 body부분을 차감하여 재시도 body가 '0'으로
재시도하여 이와 같은 현상이 발생함.
- CHG: 업로드 시 사용하는 인증 체제 이전으로 환원
이전 버전(version 1)에 업로드 관련 인증이 구인증 체계로 수행되어야하는 이유가 명확하지 않았으며,
통합시 신인증 체계로 수행에서 오류 발생하지 않았기 때문에 수정하였으나, 401에러 발생 시 중복업로드
현상이 발견되어 이전과 동일하게 구인증으로 수행될 수 있도록 수정하였음.
Revision 0528
-------------------
수정일 : 2011-04-28
수정자 : 노경민
- NEW: version 1에 적용된 TIME_WAIT 제거 적용
version 3에 관련 부분 처리 될 수 있게 수정함.
Revision 0524
-------------------
수정일 : 2011-04-28
수정자 : 노경민
- CHG: 기존 소스 처리
version_1으로 이동됨
- NEW: 플랫폼 통합 SDK 등록
version_3에 소스 등록됨
Revision 0504
-------------------
수정일 : 2011-03-28
수정자 : 김오종
- CHG: DLL SSDK에 sh_set_cache_file()함수 선언과 정의가 존재하고 설명서에도 존재함으로 원복시킨다.
Revision 0503
-------------------
수정일 : 2011-03-28
수정자 : 김오종
- CHG: 이어올리기 할 때 서버에 존재하는 파일보다 크거나 같은경우 성공처리하던 부분을
실패로 처리하고 그에 따른 오류메세지를 추가한다.
- DEL: Repository에 관리될 필요 없는 파일들을 삭제
- DEL: SSDK에 함수 선언만 있고 정의가 없는 함수인 sh_set_cache_file()를 삭제
Revision 0251
-------------------
수정일 : 2010-05-13
수정자 : 김오종
- BUG: 마샬링 샘플프로젝트에서 일부 char* 형으로 리턴하는 함수의 마샬링이 windows7 에서 이상현상 발견.
- IntPtr 형으로 리턴받은 후 string으로 마샬링 처리 함.
Revision 0248
-------------------
수정일 : 2010-05-11
수정자 : 김오종
- ADD: MarshallingSSDK project를 add한다.
- 고객사중 KT iFrame의 요청에 따라 C#을 지원하도록 marshalling이슈가 필요해서 제작된 프로젝트이다
Revision 0247
-------------------
수정일 : 2010-05-11
수정자 : 김오종
- CHG: csdk에서 Progress콜백함수의 함수 calling 방식을 __stdcall 로 변경한다.
- c, c++외에 다른 언어에서 사용할때 __stdcall형태로 되어야 하기 때문이다.
- CHG: SSDK의 dll타입의 프로젝트를 수정하여, lib타입의 아웃풋파일과 동일하게
기능하도록 수정.
- 고객사중 KT iFrame의 요청에 따라 C#을 지원하도록 marshalling이슈가 필요해서 수정하게됨
- NEW: SSDK.dll에 버전정보를 표시할 리소스가 없어서 추가한다.
- NEW: SSDK.lib에 버전정보를 표시할 리소스가 없어서 추가한다.
Revision 0233
-------------------
수정일 : 2010-03-29
수정자 : 김오종
BUG : 현재 사용하고 있는 libneon(ver 0.25.4)의 bug로 최신버전(ver 0.29.0)에는 패치된
내용이지만, 최신버전을 적용하기에는 위험부담이 있어 해당 부분만 수정하여
배포한다.
- ne_get_error()함수 수정
- ne_strclean()함수 수정
Revision 0202
-------------------
수정일 : 2010-03-29
수정자 : 김오종
NEW : sh_get_filelist_certain_time() 함수 추가.
특정 시간(tStart) 이후에 업로드된 리스트를 얻어오는 기능.
고객(연합뉴스)의 요청에 의해 해당 인터페이스 추가.
CHG : CSDK배포를 위해 버전정보를 변경한다.
2010.02.09.0
-------------------------------------------------------------------------------
libneon 의 변경 내역을 조사합니다.
** 파일 별 변경 내용.
ne_defs.h
- 버퍼사이즈를 8kb에서 64kb로 변경.
ne_gnutls.c
- 헤더 파일 참조 조정.
ne_request.c
- 64bit 환경의 컴파일을 위한 변수타입 조정.
- 요청 후 에러코드 부분 수정.
ne_socket.c
- 타임 아웃 적용을 위해 수정 적용.
ne_string.c
- md5 관련 부분 추가 적용.
ne_string.h
- md5 관련 부분 추가 적용.
-------------------------------------------------------------------------------
2010.02.04.1
-------------------------------------------------------------------------------
- 메모리 누수 현상 수정
-> sh_get_filelist() 호출 시 메모리 누수 발생 부분 수정.
-> pAuth 변수 메모리 할당 후 반환 누락 부분 추가.
- get_auth_str() 호출시 AuthKey에 공백문자가 포함될경우 "" 가 리턴됨에 따른 문제를 제거 하기 위해 수정.
-------------------------------------------------------------------------------
2010.02.04.0
-------------------------------------------------------------------------------
- TIME_WAIT 증가 문제가 발생.
: TIME_WAIT 제거를 위해 명시적으로 회피하도록 수정.
-> SO_LINGER option을 적용 함
-------------------------------------------------------------------------------
2010.01.20.0
-------------------------------------------------------------------------------
- enum SHCSDK_ERRNO{}; 에 세 가지 코드를 추가한다.
: 기존에 SHCERRNO_MAX 에러코드로 정의 된 몇몇 에러에 대한 에러코드 세분화
작업을 위해 추가 됨.
-------------------------------------------------------------------------------
2009.12.15.1
-------------------------------------------------------------------------------
- /Common/global_def.h 파일을 제거한다.
: 제거 배경 - Common한 library로 유지하기 위함이다.
- /Common/global_def.h Define되어 있던 항목들은
기존 /Common/global_def.h을 참조하던 프로젝트의 소스 부분으로 옮겨서 관리한다.
-------------------------------------------------------------------------------
2009.12.15.0
-------------------------------------------------------------------------------
- 아래와 같은 의사 결정은 11일에 팀원들끼리 협의하에 진행 된다.
- LG Telecom의 서비스 셋을 제공하게 됨에 따라 SampleUpDn_DACOM.sln 파일을 추가
한다.
- SampleUpDn_DACOM.sln 파일이 세 개의 프로젝트 파일을 추가한다.
추가 파일은 SHSSDK_DACOM.vcproj, SampleUpDn_DACOM.vcproj
, SHCSDK_DACOM.vcproj 이다.
-------------------------------------------------------------------------------
+22
View File
@@ -0,0 +1,22 @@
#ifndef _GTS_INFO_H_
#define _GTS_INFO_H_
// GTS
#ifdef _LGU
#define G_CENTERADDR "cs-gts.x-cdn.com"
#define G_CENTERADDR_PORT 80
#else
#define G_CENTERADDR "cc-gts.ktsh.co.kr"
#define G_CENTERADDR_PORT 80
#endif
// TIME
#ifdef _LGU
#define SNTP_DOMAIN "cs-time.x-cdn.com"
#define SNTP_PORT 80
#else
#define SNTP_DOMAIN "cc-time.ktsh.co.kr"
#define SNTP_PORT 80
#endif
#endif // _GTS_INFO_H_
+162
View File
@@ -0,0 +1,162 @@
PRGNAME_SSDK = libshssdk.la
PRGNAME_CSDK = libshcsdk.la
PRGNAME_SDK = libshsdk.la
CC = gcc
AR = /usr/bin/ar
RANLIB = /usr/bin/ranlib
OS = linux
NEON_DIR = libs/neon-0.29.5/src
CRYPT_DIR = libs/libmcrypt-2.5.7/lib
INCLUDES = -I. -I/user/local/include \
-Ilibs/libmcrypt-2.5.7/lib/ \
-Ilibs/neon-0.29.5/src/ #-Ilibs/neon-0.25.4/src/
LIBDIR = -L/usr/lib -L/usr/local/lib -fPIC
ifeq ($(FreeBSD), yes)
## FreeBSD
DFLAGS_32BIT =
else
## 32Bit Linux System - large file support option(-DNE_LFS -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64)
DFLAGS_32BIT = -DNE_LFS -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
endif
DFLAGS_EXT = -D_NEWAUTH
ifeq ($(SPSDK), yes)
DFLAGS_EXT = -D_SP_SDK_
endif
ifeq ($(LGU), yes)
## X-CDN
OUTPUT_SHARED=.libs_lgu
OUTPUT_STATIC=.libs_static_lgu
DFLAGS = ${DFLAGS_32BIT} -D_GNU_SOURCE -D_LGU \
${DFLAGS_EXT}
else
## KT-ICS
OUTPUT_SHARED=.libs_kt
OUTPUT_STATIC=.libs_static_kt
DFLAGS = ${DFLAGS_32BIT} -D_GNU_SOURCE \
${DFLAGS_EXT}
endif
OUTPUT_SHARED_MV=`mkdir -p ${OUTPUT_SHARED}; mv -f .libs/* ${OUTPUT_SHARED}/`
CLEAN_OUTPUT=${OUTPUT_SHARED}/* ${OUTPUT_STATIC}/*
CFLAGS = -fPIC -Wall -O -g3 ${DFLAGS}
LIBS = ${CRYPT_DIR}/libmcrypt.la ${NEON_DIR}/libneon.la
STATIC_LIBS = ${CRYPT_DIR}/libmcrypt.la ${NEON_DIR}/libneon.la
LIBTOOL = ./libtool
LINK = ${LIBTOOL} --mode=link ${CC} ${CFLAGS} -o $@
LTCOMPILE = ${LIBTOOL} --mode=compile ${CC} ${INCLUDES} ${CFLAGS}
SSDK_SRC = SHSSDK.h auth.h main.h solbox_util.c auth.c main.c
CSDK_SRC = solbox_util.c SHCSDK.cpp
SSDK_OBJ = solbox_util.Plo auth.Plo main.Plo
CSDK_OBJ = solbox_util.Plo SHCSDK.Plo
shssdk_OBJ = solbox_util.lo auth.lo main.lo
shcsdk_OBJ = solbox_util.lo SHCSDK.lo
shsdk_OBJ = solbox_util.lo auth.lo main.lo SHCSDK.lo
all : Makefile ${shssdk_OBJ} ${shcsdk_OBJ} libshssdk.a libshcsdk.a libshsdk.a
${LINK} -rpath /usr/local/lib -version-info 0:1:0 -o ${PRGNAME_SSDK} ${shssdk_OBJ} ${LIBS}
${LINK} -rpath /usr/local/lib -version-info 0:1:0 -o ${PRGNAME_CSDK} ${shcsdk_OBJ} ${LIBS}
${LINK} -rpath /usr/local/lib -version-info 0:1:0 -o ${PRGNAME_SDK} ${shsdk_OBJ} ${LIBS}
${OUTPUT_SHARED_MV}
libshssdk.a: ${shssdk_OBJ}
rm -f $@
rm -rf .obj
mkdir -p .obj
cp $(NEON_DIR)/.libs/libneon.a .obj
cp $(CRYPT_DIR)/.libs/libmcrypt.a .obj
cp ${shssdk_OBJ} .obj
cd .obj; \
$(AR) x libneon.a; \
$(AR) x libmcrypt.a; \
rm -f *.a; \
$(AR) cru $@ *.lo *.o; \
$(RANLIB) $@;
mkdir -p $(OUTPUT_STATIC)
cp .obj/libshssdk.a $(OUTPUT_STATIC)/libshssdk.a
# $(AR) x $(NEON_DIR)/libneon.a .obj
# $(AR) cru $@ $(shssdk_OBJ) $(NEON_DIR)/libneon.a $(HASH_DIR)/libmhash.a $(CRYPT_DIR)/libmcrypt.a
# $(RANLIB) $@
libshcsdk.a: ${shcsdk_OBJ}
rm -f $@
rm -rf .obj
mkdir -p .obj
cp $(NEON_DIR)/.libs/libneon.a .obj
cp $(CRYPT_DIR)/.libs/libmcrypt.a .obj
cp ${shcsdk_OBJ} .obj
cd .obj; \
$(AR) x libneon.a; \
$(AR) x libmcrypt.a; \
rm -f *.a; \
$(AR) cru $@ *.lo *.o; \
$(RANLIB) $@;
mkdir -p $(OUTPUT_STATIC)
cp .obj/libshcsdk.a $(OUTPUT_STATIC)/libshcsdk.a
libshsdk.a: ${shssdk_OBJ} ${shcsdk_OBJ}
rm -f $@
rm -rf .obj
mkdir -p .obj
cp $(NEON_DIR)/.libs/libneon.a .obj
cp $(CRYPT_DIR)/.libs/libmcrypt.a .obj
cp ${shssdk_OBJ} .obj
cp ${shcsdk_OBJ} .obj
cd .obj; \
$(AR) x libneon.a; \
$(AR) x libmcrypt.a; \
rm -f *.a; \
$(AR) cru $@ *.lo *.o; \
$(RANLIB) $@;
mkdir -p $(OUTPUT_STATIC)
cp .obj/libshsdk.a $(OUTPUT_STATIC)/libshsdk.a
### Elenoa: 2006. 12 18: hanatv test: START ###
test: test.o libshsdk.a
g++ test.o -o test -I/user/db/pgsql/include -L./ -lc -lexpat -lshsdk
test.o: test.c
${CC} -c -o $@ $<
### Elenoa: 2006. 12 18: hanatv test: END ###
.SUFFIXES: .c .lo .o .obj
.c.lo:
if $(LTCOMPILE) -MT $@ -MD -MP -MF "$*.Tpo" \
-c -o $@ `test -f '$<' || echo `$<; \
then mv "$*.Tpo" "$*.Plo"; \
else rm -f "$*.Tpo"; exit 1; \
fi
.cpp.lo:
if $(LTCOMPILE) -MT $@ -MD -MP -MF "$*.Tpo" \
-c -o $@ `test -f '$<' || echo `$<; \
then mv "$*.Tpo" "$*.Plo"; \
else rm -f "$*.Tpo"; exit 1; \
fi
.c.o : ${CSDK_SRC} ${SSDK_SRC}
#${CC} ${CFLAGS} -c -o $@ $< ${INCLUDES} ${DFLAGS}
${CC} ${CFLAGS} -o $@ -c $^ ${INCLUDES} ${DFLAGS}
.cpp.o : ${CSDK_SRC} ${SSDK_SRC}
#${CC} ${CFLAGS} -c -o $@ $< ${INCLUDES} ${DFLAGS}
${CC} ${CFLAGS} -o $@ -c $^ ${INCLUDES} ${DFLAGS}
clean :
rm -f ${CSDK_OBJ} ${SSDK_OBJ} ${shcsdk_OBJ} ${shssdk_OBJ} ${PRGNAME_SSDK} ${PRGNAME_CSDK} ${PRGNAME_SDK} ${CLEAN_OUTPUT} *.log *.pid *.core *.o
+42
View File
@@ -0,0 +1,42 @@
[Linux 컴파일 절차]
1. libs 컴파일
1) 자세한 사항은 libs/README.txt 파일 내역대로 진행
2. KT ICS ( default make 수행시 KT ICS 용 버전 생성됨)
# make clean
# make
3. LG U+
# make clean LGU=yes
# make LGU=yes
[SVN tagging]
1. tagging 을 위한 준비
# ./make_tagging.sh
* 각 폴더별 파일 정상 여부 확인
2. SVN tagging
- http://svn.solbox.com/svn/interactive/tags/release/SDK 경로에
- 다음과 같은 형식으로 등록.
SDK.R1052_64_CentOS_6_4.tar.gz
SDK.R1052_32_CentOS_6_7.tar.gz
[Linux 버전 고객 제공시 주의사항]
1. SVN 에 tagging 된 파일에는 KT, LG U+ 가 모두 포함되어 있음.
2. 따라서 tagging 파일의 압축을 푼 후
3. 제공해야 할 ISP 별로 다시 압축하여 전달할 것.
4. expat library 는 고객이 직접 설치 해야 하므로 다음과 같이 안내할 것.
# yum install expat expat-devel
File diff suppressed because it is too large Load Diff
+345
View File
@@ -0,0 +1,345 @@
#ifndef _SHCSDK_H
#define _SHCSDK_H
#ifdef WIN32
# if defined(SHCSDK_EXPORTS)
# define WIN32DLL __declspec(dllexport)
# else
# define WIN32DLL __declspec(dllimport)
# endif
#ifndef ssize_t
#define ssize_t SSIZE_T
#endif
#else
#define WIN32DLL
typedef long long INT64;
#endif
typedef void *HSHSDK;
typedef void *HSHFILELIST;
typedef struct {
char *path;
INT64 size;
char *lastModified;
char *lastModified_gmt;
unsigned int attr;
char *source;
} SHFILE_STRUCT, *PSHFILE_STRUCT;
// For SHFILE.attr
enum SHCSDK_FILEATTR {
SHFILEATTR_FOLDER = 0x00000001,
};
// For write policy
enum SHCSDK_WRITEPOLICY {
SHWRITEPOLICY_NONE = 0,
SHWRITEPOLICY_OVERWRITE,
SHWRITEPOLICY_APPEND,
};
// For error number
enum SHCSDK_ERRNO {
SHCERRNO_NOERROR = 0,
SHCERRNO_UNDEFINED = 30000,
SHCERRNO_INVALIDHDL = 30001,
SHCERRNO_INVALIDFLHDL = 30002,
SHCERRNO_SERVICE = 30003,
SHCERRNO_AUTHORIZATION = 30004,
SHCERRNO_ISBUSY = 30005,
SHCERRNO_EXISTSFILE = 30006,
SHCERRNO_NOEXISTSFILE = 30007,
SHCERRNO_NOAVAILQUOTA = 30008,
SHCERRNO_ALREADYEXIST = 30009,
// 아래 세개는 실제 나오는 경우가 없어 질것이다.
// 하지만,
////////////////////////////////////////////////////////////////////
SHCERRNO_RESP_TIMEOUT = 30010, // added by sangkeun.ha 20090727 /*NE_TIMEOUT*/
SHCERRNO_NE_LOOKUP = 30011, // added by webting 20100119 /* NE_LOOKUP */
SHCERRNO_NE_CONNECT = 30012, // added by webting 20100119 /* NE_CONNECT */
////////////////////////////////////////////////////////////////////
SHCERRNO_TRAGETBIGGER = 30013,
SHCERRNO_DNS_TIMEOUT = 30014,
SHCERRNO_EXT_OVERFLOW = 30015,
SHCERRNO_MAX = 30016,
};
// Callback function format
#ifdef WIN32 // 윈도우에서 다른 언어(C#) 지원하기 위해서 함수call 방식을 __stdcall 해야함
typedef int (__stdcall *sh_callback)(
#else // WIN32
typedef int (*sh_callback)(
#endif //WIN32
void *param, // Callback function's param
INT64 progress // Progress
);
typedef int (*down_stream)(
void* userval,
const char* buf,
size_t len
);
typedef ssize_t (*up_stream)(
void* userval,
char* buf,
size_t len
);
#ifdef __cplusplus
extern "C" {
#endif
// SDK 사용할 인스턴스 생성
WIN32DLL HSHSDK sh_init(
const char *url, // Url
const char *authString, // Authentication string
sh_callback proc, // Callback function
void *param); // Callback function's Param
// SDK 사용한 인스턴스 해제
WIN32DLL void sh_free(
HSHSDK hshsdk); // SDK HANDLE
// SDK에서 발생한 오류 번호
WIN32DLL int sh_get_error_number(
HSHSDK hshsdk); // SDK handle
// 발생한 오류에 대한 상세한 메세지
WIN32DLL const char* sh_get_error_message(
HSHSDK hshsdk); // SDK handle
// 디렉토리 생성
// 존재한 디렉토리 생성시 에러 리턴
WIN32DLL int sh_make_directory(
HSHSDK hshsdk, // SDK handle
const char *drectory); // Directory Path
// 서버의 파일(디렉토리) 복사
WIN32DLL int sh_copy(
HSHSDK hshsdk, // SDK handle
const char *srcPath, // Source file | directory
const char *dstPath, // Destination file | directory
int overwrite); // 0 : Don't overwrite
// 1 : Overwrite
// 서버의 파일(디렉토리) 이동
WIN32DLL int sh_move(
HSHSDK hshsdk, // SDK handle
const char *srcPath, // Source file | directory
const char *dstPath, // Destination file | directory
int overwrite); // 0 : Don't overwrite
// 1 : Overwrite
// 서버의 파일(디록토리) 삭제
WIN32DLL int sh_delete(
HSHSDK hshsdk, // SDK handle
const char *path); // File | directory
// 파일 업로드
WIN32DLL int sh_upload(
HSHSDK hshsdk, // SDK handle
const char *srcPath, // Source file
const char *dstPath, // Destination file
int writePolicy, // Write policy flag
INT64 availQuota,
const char *extSession); // Avail quota
// 파일 다운로드
WIN32DLL int sh_download(
HSHSDK hshsdk, // SDK handle
const char *srcPath, // Source file
const char *dstPath, // Destination file
int writePolicy, // Write policy flag
INT64 availQuota, // Avail quota
const char *extSession); // Extention query
// 서버의 파일 목록
WIN32DLL HSHFILELIST sh_get_filelist(
HSHSDK hshsdk, // SDK handle
const char *path, // Path
unsigned int depth); // 0 : itself
// 1 : 1 depth children
// 2 : all children
// sh_get_filelist로 얻어온 파일 목록의 개수
WIN32DLL long sh_get_filelist_count(
HSHSDK hshsdk, // SDK handle
HSHFILELIST hshfl); // File list handle
// 파일 목록의 핸들
WIN32DLL PSHFILE_STRUCT sh_get_file(
HSHSDK hshsdk, // SDK handle
HSHFILELIST hshfl, // File list handle
long index); // File index
// sh_get_filelist 얻은 파일 핸들 해제
WIN32DLL void sh_free_filelist(
HSHSDK hshsdk, // SDK handle
HSHFILELIST hshfl); // File list handle
// 데이터 암호화
WIN32DLL int sh_encrypt(
const char *text, // String (< 1000 bytes)
char *encrypted); // Encrypted String (1000 bytes)
// 전송 속도 설정
WIN32DLL int sh_set_limit(
HSHSDK hshsdk, // SDK handle
int nLimit); // Limit value
// 설정된 전송 속도
WIN32DLL int sh_get_limit(
HSHSDK hshsdk // SDK handle
); // Limit value
// 파일(폴더) 존재 유무
WIN32DLL bool sh_file_exist(
HSHSDK hshsdk, // SDK Handle
const char *path); // file/folder Path
// 파일을 버퍼로 다운로드
WIN32DLL int sh_download_buffer(
HSHSDK hshsdk, // SDK handle
const char *srcPath, // Source file
down_stream proc, // user defined function
INT64 beingpos, // point to read
void* userval // User-supplied value for callback
); // Avail quota
// 지정크기 만큼 버퍼로 다운로드
// sh_download_buffer range version for GAMPLE
WIN32DLL int sh_download_buffer_r(
HSHSDK hshsdk, // SDK handle
const char *srcPath, // Source file
down_stream proc, // user defined function
INT64 beingpos, // point to read
INT64 nbytes, // amount to read
void* userval // User-supplied value for callback
);
// 버퍼로부터 파일 업로드 한다
WIN32DLL int sh_upload_buffer(
HSHSDK hshsdk, // SDK handle
const char *dstPath, // Destination file
int writePolicy, // Write policy flag
up_stream proc, // user defined function
INT64 nbytes, // write size
void* userval // User-supplied value for callback
);
// 지정된 위치에서 버퍼로부터 파일 업로드 한다.
WIN32DLL int sh_upload_buffer_r(
HSHSDK hshsdk, // SDK handle
const char *dstPath, // Destination file
int writePolicy, // Write policy flag
up_stream proc, // user defined function
INT64 beginpos, // write start position
INT64 nbytes, // write size
void* userval // User-supplied value for callback
);
// 현재 파일 내 위치
WIN32DLL INT64 sh_get_filepos(
HSHSDK hshsdk // SDK handle
);
// 타임 서버에 요청 타임 아웃 설정
WIN32DLL void sh_set_sntp_timeout(
int second // Time out (Second)
);
// 타임 서버에 요청 타임 아웃 설정
WIN32DLL void sh_set_sntp_timeout(
int second // Time out (Second)
);
// 현재 세션의 세션 ID 설정
WIN32DLL int sh_set_sessionID(
HSHSDK hshsdk, // SDK Handle
const char *pszID);
// 현재 세션의 세션 ID 정보
WIN32DLL const char* sh_get_sessionID(
HSHSDK hshsdk // SDK Handle
);
// 세션의 인증 만료 시간 설정
WIN32DLL int sh_set_auth_expire(
HSHSDK hshsdk, // SDK Handle
int ntime // Expire time
);
// 세션의 인증 만료 시간 정보
WIN32DLL int sh_get_auth_expire(
HSHSDK hshsdk // SDK Handle
);
// DNS 성공 후 request 서버로 연결에 대한 타임 아웃 설정
WIN32DLL void sh_set_connect_timeout(
int second // Second
);
// DNS, request 성공 후 발생하는 응답에 대한 타임 아웃 설정
WIN32DLL void sh_set_response_timeout(
int second // Second
);
// NEW 2010-03-29
// 특정 시간(tStart) 이후에 업로드된 리스트를 얻어온다.
// 고객의 요청에 의해 해당 인터페이스 추가.
WIN32DLL HSHFILELIST sh_get_filelist_certain_time(
HSHSDK hshsdk, // SDK handle
const char *path, // Path
time_t tStart, // start time
unsigned int depth); // 0 : itself
// 1 : 1 depth children
// 2 : all children
// 소켓 연결 타임 아웃 설정
WIN32DLL void sh_set_C_timeout (
int second // Second
);
// 전송 관련 callback 함수 등록
WIN32DLL int sh_set_transfer_callback (
HSHSDK hshsdk, // SDK handle
sh_callback proc, // Callback function
void *param // Callback function's Param
);
// 지정된 파일의 부모 디렉토리 생성
WIN32DLL int sh_open (
HSHSDK hshsdk, // SDK handle
const char *path // Path
);
// 버퍼로부터 파일 업로드(존재 시 파일 끝에 추가됨)
WIN32DLL int sh_send_append (
HSHSDK hshsdk, // SDK handle
const char *dstPath, // Destination file
up_stream proc, // user defined function
INT64 nbytes, // write size
void* userval // User-supplied value for callback
);
// 지정된 위치에서 버퍼로 파일 업로드
WIN32DLL int sh_send_block (
HSHSDK hshsdk, // SDK handle
const char *dstPath, // Destination file
up_stream proc, // user defined function
INT64 beingpos, // write start position
INT64 nbytes, // write size
void* userval // User-supplied value for callback
);
#ifdef __cplusplus
}
#endif
#endif
+102
View File
@@ -0,0 +1,102 @@
#ifndef _SHSDK_H
#define _SHSDK_H
#include <time.h>
#ifdef WIN32
#ifdef __SSDK_LIB__
# define WIN32DLL
#else // __SSDK_LIB__
# if defined(SHSSDK_EXPORTS)
# define WIN32DLL __declspec(dllexport)
# else
# define WIN32DLL __declspec(dllimport)
# endif
#endif // __SSDK_LIB__
typedef __int64 INT64;
typedef __int64* PINT64;
typedef int BOOL;
#else
# define WIN32DLL
typedef long long INT64;
typedef long long* PINT64;
#endif
#ifdef _SP_SDK_
#include "SHSSDK_EXT.h"
#endif //
#ifdef __cplusplus
extern "C" {
#endif
// SSDK 커스텀 에러번호
enum SHSSDK_ERRNO {
SHERRNO_UNDEFINED = 30000,
SHERRNO_AUTHORIZATION = 31000,
SHERRNO_INTERNAL = 31001,
SHERRNO_NOSERVICE = 32000,
SHERRNO_NOCACHEFILE = 33000,
SHERRNO_INVALIDCACHEFILE = 33001,
};
enum SASSDK_ERRNO {
ERR_RCTRAN_NOT_EXSIT_URI = 0x3a27, // 존재하지 않는 URI
ERR_RCTRAN_USERID_NOT_FOUND = 0x3a24, // 존재하지 않는 ID
ERR_RCTRAN_PASSWORD_NOT_MATCH = 0x3a25, // 패스워드 에러
ERR_RCTRAN_NOT_DEFINED = 0x00, // 알수 없는 에러
};
WIN32DLL const char *sh_get_service_host(
const char *userId, // 사용자 ID
const char *password, // 사용자 비밀번호
const char *serviceId // 서비스 ID
);
WIN32DLL void sh_mem_free(void* pData);
WIN32DLL const int sh_get_service_info(
const char *userId, // 사용자 ID
const char *password, // 사용자 비밀번호
const char *serviceId, // 서비스 ID
PINT64 totalSpace, // 전체 용량
PINT64 freeSpace // 남은 용량
);
WIN32DLL const char *sh_get_auth_string(
const char *userId, // 사용자 ID
const char *password, // 사용자 비밀번호
const char *serviceId, // 서비스 ID
const char *authKey, // 인증 키
const char *authFile, // 인증서 파일 경로
time_t expire // (BASE 1970-01-01 00:00:00)
);
WIN32DLL const char *sh_decrypt(
const char *encrypted, // 암호화된 문자열
int acceptGap // 허용 시간 차
);
WIN32DLL void sh_set_timeout(
int second // ()
);
WIN32DLL void sh_set_cache_file(
const char *file_path // 캐쉬파일 저장 경로
);
WIN32DLL int sh_get_lasterror();
WIN32DLL void sh_get_error_msg(
int code, // error code
char* errstr // error string
);
#ifdef __cplusplus
}
#endif
#endif
+55
View File
@@ -0,0 +1,55 @@
#ifndef _SHSDK_EXT_H
#define _SHSDK_EXT_H
#ifdef __cplusplus
extern "C" {
#endif
#ifdef _SP_SDK_
// use sp-console
WIN32DLL void * sh_get_service_list(
const char *userId, // 사용자 ID
const char *password, // 사용자 비밀번호
int * cnt
);
WIN32DLL const char *sh_get_auth_sp_string(
const char *userId, // 사용자 ID
const char *password // 사용자 비밀번호
);
WIN32DLL void sh_set_center_info(
const char *host, // host
int port // port
);
WIN32DLL void sh_set_sntp_info(
const char *host, // host
int port // port
);
WIN32DLL void* sh_get_anonyauth(
const char *userId, // 사용자 ID
const char *password, // 사용자 비밀번호
const char *serviceId, // 서비스 ID
int * cnt
);
WIN32DLL int sh_set_anonyauth(
const char *userId, // 사용자 ID
const char *password, // 사용자 비밀번호
const char *serviceId, // 서비스 ID
int set, // (1), (0)
int sendlen, // 전송할 데이터 크기
const void *sendmsg // 전성홀 데이터
);
// use sp-console
#endif // _SP_SDK_
#ifdef __cplusplus
}
#endif
#endif
@@ -0,0 +1,55 @@
# Makefile for sample file
CC = g++
CFLAGS = -g -Wall
SDK_INCLUDE = ./SDK/include
SDK_LIB = ./SDK/lib
PATH_INC = -I$(SDK_INCLUDE)
UNAME_P := $(shell uname -p)
ifeq ($(UNAME_P),x86_64)
PATH_LIBS = -lc -lz -lexpat -lgssapi_krb5 -L$(SDK_LIB)
else
PATH_LIBS = -lc -lexpat -L$(SDK_LIB)
endif
APP= sample sample_csdk_static sample_csdk_dynamic sample_ssdk_static sample_ssdk_dynamic auth_token
all: $(APP)
sync
sample: sample.o
$(CC) $(CFLAGS) -o $@ $^ $(PATH_LIBS) $(SDK_LIB)/libshcsdk.a $(SDK_LIB)/libshssdk.a
sample.o: sample.cpp
$(CC) $(CFLAGS) -c $^ $(PATH_INC)
sample_csdk_static: sample_csdk.o
$(CC) $(CFLAGS) -o $@ $^ $(PATH_LIBS) $(SDK_LIB)/libshcsdk.a
sample_csdk_dynamic: sample_csdk.o
$(CC) $(CFLAGS) -o $@ $^ $(PATH_LIBS) -Wl,-rpath,'$(SDK_LIB)' -lshcsdk
sample_csdk.o: sample_csdk.cpp
$(CC) $(CFLAGS) -c $^ $(PATH_INC)
sample_ssdk_static: sample_ssdk.o
$(CC) $(CFLAGS) -o $@ $^ $(PATH_LIBS) $(SDK_LIB)/libshssdk.a
sample_ssdk_dynamic: sample_ssdk.o
$(CC) $(CFLAGS) -o $@ $^ $(PATH_LIBS) -Wl,-rpath,'$(SDK_LIB)' -lshssdk
sample_ssdk.o: sample_ssdk.cpp
$(CC) $(CFLAGS) -c $^ $(PATH_INC)
auth_token.o: auth_token.cpp
$(CC) $(CFLAGS) -c $^ $(PATH_INC)
auth_token: auth_token.o
$(CC) $(CFLAGS) -o $@ $^ $(PATH_LIBS) $(SDK_LIB)/libshssdk.a
clean:
rm -f *.o $(APP)
@@ -0,0 +1,29 @@
1. make SDK include
/smpale dir/SDK/include
2. make SDK lib
/smpale dir/SDK/lib
3. copy include, library files
tar.SDK/include/* => /smpale dir/SDK/include
tar.SDK/_shared/csdk/* => /smpale dir/SDK/lib
tar.SDK/_shared/ssdk/* => /smpale dir/SDK/lib
tar.SDK/_shared/sdk/* => /smpale dir/SDK/lib
tar.SDK/_static/csdk/* => /smpale dir/SDK/lib
tar.SDK/_static/ssdk/* => /smpale dir/SDK/lib
tar.SDK/_static/sdk/* => /smpale dir/SDK/lib
ex)
[sample_linux]# tar zxvf Solbox_SDK.tar.gz
[sample_linux]# tar zxvf Sample.tar.gz
[sample_linux]# cd sample_linux
[sample_linux]# mkdir -p SDK/include
[sample_linux]# mkdir -p SDK/lib
[sample_linux]# cp ../64/SOLBOX/include/* SDK/include
[sample_linux]# cp -P ../64/SOLBOX/_shared/csdk/* SDK/lib/
[sample_linux]# cp -P ../64/SOLBOX/_shared/ssdk/* SDK/lib/
[sample_linux]# cp -P ../64/SOLBOX/_shared/sdk/* SDK/lib/
[sample_linux]# cp -P ../64/SOLBOX/_static/csdk/* SDK/lib/
[sample_linux]# cp -P ../64/SOLBOX/_static/ssdk/* SDK/lib/
[sample_linux]# cp -P ../64/SOLBOX/_static/sdk/* SDK/lib/
@@ -0,0 +1,73 @@
#include <time.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctime>
#include "SHSSDK.h"
// 사용방법 표시
void PrintUsage(const char* prg)
{
fprintf( stderr, "\n" );
fprintf( stderr, "Usage: %s [id] [passwd] [service] [auth key] [cert file] [expire time]\n", prg );
fprintf( stderr, "Inputs: \n" );
fprintf( stderr, " id : ID \n" );
fprintf( stderr, " passwd : Password\n" );
fprintf( stderr, " service : Service Name \n" );
fprintf( stderr, " auth key : Service authentication key \n" );
fprintf( stderr, " cert file : authentication file(full path) \n" );
fprintf( stderr, " expire time: auth token expiration time(sec) \n" );
fprintf( stderr, "\n" );
fprintf( stderr, " ex) %s test pass test1 authkey /user/service/cert/test123.cert 3600", prg );
fprintf( stderr, "\n" );
fprintf( stderr, "\n" );
fprintf( stderr, " %s is Solbox Cloud Storage auth token tool.\n", prg );
fprintf( stderr, "\n" );
fprintf( stderr, "[Note] This program doesn't check for the input argument.\n");
fprintf( stderr, "\n" );
return;
}
int main(int argc, char * argv[])
{
if( argc != 7 ) {
PrintUsage(argv[0]);
return 1;
}
///////////////////////// SSDK ////////////////////////////////////////////////////////////////////
// !!! 중요 !!!
// SSDK 가 End User에게 배포가되면 안됩니다.
// 그 이유는 보안상 취약점이 발생 하기때문입니다.
// 해당 소스는 샘플용일 뿐이며, SSDK는 인증서버를 마련하여 해당 서버에서
// 생성해 전달 될 수 있도록 제작되어야 합니다.
char *__auth_string = NULL;
time_t expire = time(0)+atoll(argv[6]);
/* SSDK : get auth string */
__auth_string = (char *)sh_get_auth_string(argv[1], argv[2], argv[3], argv[4], argv[5], expire);
if (!__auth_string) {
fprintf(stderr, "Cannot get the auth string.\n");
return 1;
}
tm * ptm = localtime(&expire);
char buffer[64] = {0};
strftime(buffer, 64, "%F %T", ptm);
fprintf(stdout, "\n");
fprintf(stdout, "* auth token : \n");
fprintf(stdout, "%s\n\n",__auth_string);
fprintf(stdout, "* expire date : \n");
fprintf(stdout, "%s \n",buffer);
fprintf(stdout, "\n");
if(__auth_string)
sh_mem_free(__auth_string);
///////////////////////// SSDK ////////////////////////////////////////////////////////////////////
return 0;
}
@@ -0,0 +1,194 @@
#define INDEV stdin
#define OUTDEV stdout
#define DEFAULT_BUF_SIZE 1024
#define RESERVED 5
#include <time.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "SHSSDK.h"
#include "SHCSDK.h"
// 아래는 개통정보 전달시 전달된 내용입니다.
// 단, cert 파일은 샘플소스와 함께 전달됩니다.
#define ID "wjthinkbig"
#define PWD "wjthinkbig1@"
#define FILE_PATH "./wjthinkbig295.cert"
#define AUTHSTR "wjthinkbig"
#define SERVICE "wjthinkbig"
/* Callback Funtion */
int CallbackProc(void *param, long long int result)
{
// progress
printf("File Transfer : %lld\n", result);
// 1 : Stop
// 0 : Continue
return 1;
}
int main(void)
{
char service[DEFAULT_BUF_SIZE + RESERVED];
char path[DEFAULT_BUF_SIZE + RESERVED];
char service_host[DEFAULT_BUF_SIZE + RESERVED];
char auth_string[DEFAULT_BUF_SIZE + RESERVED];
char *auth_key, *auth_file;
char *__service_host = NULL;
char *__auth_string = NULL;
HSHSDK hsdk;
HSHFILELIST hsdf;
int i;
PSHFILE_STRUCT pshf;
strcpy(service, SERVICE);
if (service && !strcmp(service, SERVICE)) {
auth_key = AUTHSTR;
auth_file = FILE_PATH;
} else {
fprintf(OUTDEV, "There isn't the service ID\n");
return -1;
}
///////////////////////// SSDK ////////////////////////////////////////////////////////////////////
// !!! 중요 !!!
// SSDK 가 End User에게 배포가되면 안됩니다.
// 그 이유는 보안상 취약점이 발생 하기때문입니다.
// 해당 소스는 샘플용일 뿐이며, SSDK는 인증서버를 마련하여 해당 서버에서
// 생성해 전달 될 수 있도록 제작되어야 합니다.
/* SSDK : get service host */
__service_host = (char *)sh_get_service_host(ID, PWD, service);
if (!__service_host) {
fprintf(OUTDEV, "Cannot get the service host.\n");
goto ERR_EXIT;
}
/* SSDK : get auth string */
__auth_string = (char *)sh_get_auth_string(ID, PWD, service, auth_key, auth_file, time(0)+100000);
if (!__auth_string) {
fprintf(OUTDEV, "Cannot get the auth string.\n");
goto ERR_EXIT;
}
///////////////////////// SSDK ////////////////////////////////////////////////////////////////////
sprintf(service_host, "%s", __service_host);
sprintf(auth_string, "%s", __auth_string);
/* CSDK : init */
fprintf(stderr, "service_host!!! %s\n", service_host);
hsdk = sh_init(service_host, auth_string, CallbackProc, NULL);
if (hsdk == NULL) {
fprintf(OUTDEV, "Failed to initiate the SDK.\n");
goto ERR_EXIT;
}
path[0] = '\0';
/* TODO : listing base uri copy to path */
strcpy(path, "/");
/* CSDK : get list */
hsdf = sh_get_filelist(hsdk, path, 1);
if (hsdf == NULL) {
fprintf(OUTDEV, "Failed to retrieve the file list.\n");
goto ERR_EXIT;
}
for (i = 0; i< sh_get_filelist_count(hsdk, hsdf); i++) {
pshf = sh_get_file(hsdk, hsdf, i);
if (pshf->attr == SHFILEATTR_FOLDER) {
fprintf(OUTDEV, "Folder Name : %s\n", pshf->path);
} else {
fprintf(OUTDEV, "file Name : %s(%lld byte)\n",
pshf->path, pshf->size);
}
}
sh_free_filelist(hsdk, hsdf);
/* Upload Test */
if (!sh_upload(hsdk, "./test.txt", "/test.txt", SHWRITEPOLICY_OVERWRITE, -1, NULL))
{
printf("sh_upload ERROR 1: %d, %s\n", sh_get_error_number(hsdk), sh_get_error_message(hsdk));
goto ERR_EXIT;
} else {
printf("sh_upload SUCCESS\n");
}
/* Dowload Test */
if (!sh_download(hsdk, "/test.txt", "./test.txt", SHWRITEPOLICY_OVERWRITE, -1, NULL))
{
printf("sh_download ERROR : %d, %s\n", sh_get_error_number(hsdk), sh_get_error_message(hsdk));
goto ERR_EXIT;
} else {
printf("sh_download SUCCESS\n");
}
/* CSDK : get list */
hsdf = sh_get_filelist(hsdk, path, 1);
if (hsdf == NULL) {
fprintf(OUTDEV, "Failed to retrieve the file list.\n");
goto ERR_EXIT;
}
for (i = 0; i< sh_get_filelist_count(hsdk, hsdf); i++) {
pshf = sh_get_file(hsdk, hsdf, i);
if (pshf->attr == SHFILEATTR_FOLDER) {
fprintf(OUTDEV, "Folder Name : %s\n", pshf->path);
} else {
fprintf(OUTDEV, "file Name : %s(%lld byte)\n",
pshf->path, pshf->size);
}
}
sh_free_filelist(hsdk, hsdf);
/* File delete test */
if (sh_delete(hsdk, "/test.txt") == 0)
{
printf("sh_delete ERROR : %d, %s\n", sh_get_error_number(hsdk), sh_get_error_message(hsdk));
goto ERR_EXIT;
}
else
{
printf("sh_delete SUCCESS\n");
}
/* CSDK : get list */
hsdf = sh_get_filelist(hsdk, path, 1);
if (hsdf == NULL) {
fprintf(OUTDEV, "Failed to retrieve the file list.\n");
goto ERR_EXIT;
}
for (i = 0; i< sh_get_filelist_count(hsdk, hsdf); i++) {
pshf = sh_get_file(hsdk, hsdf, i);
if (pshf->attr == SHFILEATTR_FOLDER) {
fprintf(OUTDEV, "Folder Name : %s\n", pshf->path);
} else {
fprintf(OUTDEV, "file Name : %s(%lld byte)\n",
pshf->path, pshf->size);
}
}
sh_free_filelist(hsdk, hsdf);
sh_free(hsdk);
ERR_EXIT:
if(__service_host)
sh_mem_free(__service_host);
if(__auth_string)
sh_mem_free(__auth_string);
return 0;
}
@@ -0,0 +1,210 @@
#define INDEV stdin
#define OUTDEV stdout
#define DEFAULT_BUF_SIZE 1024
#define RESERVED 5
#include <time.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "SHCSDK.h"
/* Callback Funtion */
int CallbackProc(void *param, long long int result)
{
// progress
printf("File Transfer : %lld\n", result);
// 1 : Stop
// 0 : Continue
return 1;
}
static int __totalsend = 0;
ssize_t Upload_Func(void *userval, char *buf, size_t len)
{
int nbyte =*((int *)userval);
// Check buffer (MUST BE)
if(buf == 0x00)
return 0;
// Check the capacity of transmission (MUST BE)
if(__totalsend >= nbyte)
return 0; //
int nsend = 0;
char data[11] = "1234567890";
// copy data
nsend = strlen(data);
if ( nsend > (int)len )
{
nsend = len;
}
if( nbyte - __totalsend < nsend )
{
nsend = nbyte - __totalsend;
}
strncpy(buf, data, nsend);
__totalsend += nsend;
printf("uploading : %d\n", __totalsend);
// Return capacity of transmission
return nsend;
}
int main(void)
{
// Service Information : Again provided
char *__service_host = "http://nctest.ktsh.co.kr/dav";
char *__auth_string = "bmN0ZXN0QG5jdGVzdDpJci0ocTJeCl8XQ+7BR5mjQu+lIZB/YryG0skrskPC+NmftbbpDiB4C+iTuEErTRQQ+I3oOv5yDDg=";
char path[DEFAULT_BUF_SIZE + RESERVED];
char service_host[DEFAULT_BUF_SIZE + RESERVED];
char auth_string[DEFAULT_BUF_SIZE + RESERVED];
HSHSDK hsdk = NULL;
int nBytes = 0;
sprintf(service_host, "%s", __service_host);
sprintf(auth_string, "%s", __auth_string);
/* CSDK : init */
fprintf(stderr, "service_host!!! %s\n", service_host);
hsdk = sh_init(service_host, auth_string, CallbackProc, NULL);
if (hsdk == NULL) {
fprintf(OUTDEV, "Failed to initiate the SDK.\n");
goto ERR_EXIT;
}
path[0] = '\0';
/* TODO : listing base uri copy to path */
strcpy(path, "/test");
/* CSDK : Creating a directory */
if (sh_make_directory(hsdk, path) == 0)
{
if (sh_get_error_number(hsdk) != SHCERRNO_ALREADYEXIST )
{
printf("sh_make_directory ERROR : %d, %s\n", sh_get_error_number(hsdk), sh_get_error_message(hsdk));
goto ERR_EXIT;
}
else
{
printf("sh_make_directory always EXIST\n");
}
}
else
{
printf("sh_make_directory SUCCESS\n");
}
/* CSDK : Upload Test */
/* sh_upload_buffer_r Test : Add at the end of the file */
nBytes = 1024;
for(int n = 0; n < 3; ++n)
{
__totalsend = 0;
if (!sh_upload_buffer_r(hsdk, "/test.txt", SHWRITEPOLICY_APPEND, Upload_Func, -1, nBytes, &nBytes))
{
printf("upload_buffer_r : %d, %s\n", sh_get_error_number(hsdk), sh_get_error_message(hsdk));
goto ERR_EXIT;
}
else
{
printf("upload_buffer_r SUCCESS\n");
}
}
/* sh_upload_buffer_r Test : Replace the middle part of the file */
__totalsend = 0;
if (!sh_upload_buffer_r(hsdk, "/test.txt", SHWRITEPOLICY_APPEND, Upload_Func, 10, nBytes, &nBytes))
{
printf("upload_buffer_r : %d, %s\n", sh_get_error_number(hsdk), sh_get_error_message(hsdk));
goto ERR_EXIT;
}
else
{
printf("upload_buffer_r SUCCESS\n");
}
/* CSDK : delete Test */
/* File delete test */
if (sh_delete(hsdk, "/test.txt") == 0)
{
printf("sh_delete ERROR : %d, %s\n", sh_get_error_number(hsdk), sh_get_error_message(hsdk));
goto ERR_EXIT;
}
else
{
printf("sh_delete SUCCESS\n");
}
/* Directory delete test */
if (sh_delete(hsdk, "/test") == 0)
{
printf("sh_delete ERROR : %d, %s\n", sh_get_error_number(hsdk), sh_get_error_message(hsdk));
goto ERR_EXIT;
}
else
{
printf("sh_delete SUCCESS\n");
}
// sh_open : Create the parent directory of the file
strcpy(path, "/SVC1_TEST/test_send.txt");
if(!sh_open(hsdk, path) )
{
printf("sh_open ERROR : %d, %s\n", sh_get_error_number(hsdk), sh_get_error_message(hsdk));
goto ERR_EXIT;
}
else
{
printf("sh_open SUCCESS.\n");
nBytes = 1024;
for(int u = 0; u < 3; ++u)
{
__totalsend = 0;
// sh_send_append : Add data to the end of the file.
if(!sh_send_append(hsdk, path, Upload_Func, nBytes, &nBytes))
{
printf("sh_send_append ERROR : %d, %s\n", sh_get_error_number(hsdk), sh_get_error_message(hsdk));
goto ERR_EXIT;
}
else
{
printf("sh_send_append SUCCESS.\n");
}
}
// sh_send_block : Changes in the contents of the specified location.
nBytes = 10;
__totalsend = 0;
if( !sh_send_block(hsdk,path, Upload_Func, 3, nBytes, &nBytes) )
{
printf("sh_send_block ERROR : %d, %s\n", sh_get_error_number(hsdk), sh_get_error_message(hsdk));
goto ERR_EXIT;
}
else
{
printf("sh_send_block SUCCESS.\n");
}
}
ERR_EXIT:
if(hsdk) sh_free(hsdk);
return 0;
}
@@ -0,0 +1,39 @@
#include <time.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "SHSSDK.h"
// 아래는 개통정보 전달시 전달된 내용입니다.
#define ID "nctest"
#define PWD "nctest123"
#define SERVICE "nctest"
int main(void)
{
///////////////////////// SSDK ////////////////////////////////////////////////////////////////////
// !!! 중요 !!!
// SSDK 가 End User에게 배포가되면 안됩니다.
// 그 이유는 보안상 취약점이 발생 하기때문입니다.
// 해당 소스는 샘플용일 뿐이며, SSDK는 인증서버를 마련하여 해당 서버에서
// 생성해 전달 될 수 있도록 제작되어야 합니다.
/* SSDK : get service space (Bytes) */
long long t = 0, f = 0;
if (sh_get_service_info(ID, PWD, SERVICE, &t, &f))
{
printf("Service [%s] => Total space : %lld, Free space %lld\n", SERVICE, t, f);
}
else
{
char errmsg[254] = {0};
sh_get_error_msg(sh_get_lasterror(), errmsg);
printf("sh_get_service_info ERROR : %d, %s\n", sh_get_lasterror(), errmsg);
}
///////////////////////// SSDK ////////////////////////////////////////////////////////////////////
return 0;
}
@@ -0,0 +1,49 @@
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
test file.
@@ -0,0 +1,24 @@
1. make SDK include
/smpale dir/SDK/include
2. make SDK lib
/smpale dir/SDK/lib
3. copy include, library, dll files
zip.SDK/include/* => /smpale dir/SDK/include
zip.SDK/_bin/csdk/* => /smpale dir/SDK/lib
zip.SDK/_bin/ssdk/* => /smpale dir/SDK/lib
zip.SDK/_lib/ssdk/* => /smpale dir/SDK/lib
ex)
c:\> unzip Solbox_SDK.zip
c:\> unzip Sample.zip
c:\> cd sample_win
c:\sample_win> mkdir SDK\include
c:\sample_win> mkdir SDK\lib
c:\sample_win> xcopy /S ..\32\SOLBOX\include\* SDK\include
c:\sample_win> xcopy /S ..\32\SOLBOX\_bin\csdk\* SDK\lib
c:\sample_win> xcopy /S ..\32\SOLBOX\_bin\ssdk\* SDK\lib
c:\sample_win> xcopy /S ..\32\SOLBOX\_lib\ssdk\* SDK\lib
+206
View File
@@ -0,0 +1,206 @@
/***************************************************************************
Sample.cpp
-----------------------------------------
copyright : (C) 2005 SolutionBox Inc.
author : Service 1 Team
email : svc1@solbox.com
CopyRight(C) 2005 SolutionBox Inc. All Rights reserved.
Redistribution and use in source and binary forms, with or with out
modification, are not permitted in outside of SolutionBox Inc.
***************************************************************************/
#include "stdafx.h"
#define INDEV stdin
#define OUTDEV stdout
#define DEFAULT_BUF_SIZE 1024
#define RESERVED 5
#include <windows.h>
#include <atlstr.h>
#include "SHSSDK.h"
#include "SHCSDK.h"
// 아래는 개통정보 전달시 전달된 내용입니다.
// 단, cert 파일은 샘플소스와 함께 전달됩니다.
#define ID "xeron"
#define PWD "xeron@#$"
#define FILE_PATH "./xeron345.cert"
#define SERVICE "comtopsy"
#define AUTHSTR "didqkdgid"
/* Callback Funtion */
int __stdcall CallbackProc(void *param, long long int result)
{
// progress
printf("File Transfer : %lld\n", result);
// 1 : Stop
// 0 : Continue
return 1;
}
int main(void)
{
char service[DEFAULT_BUF_SIZE + RESERVED];
char path[DEFAULT_BUF_SIZE + RESERVED];
char service_host[DEFAULT_BUF_SIZE + RESERVED];
char auth_string[DEFAULT_BUF_SIZE + RESERVED];
char *auth_key, *auth_file;
char *__service_host = NULL;
char *__auth_string = NULL;
HSHSDK hsdk;
HSHFILELIST hsdf;
int i;
PSHFILE_STRUCT pshf;
strcpy(service, SERVICE);
if (service && !strcmp(service, SERVICE)) {
auth_key = AUTHSTR;
auth_file = FILE_PATH;
} else {
fprintf(OUTDEV, "There isn't the service ID\n");
return -1;
}
///////////////////////// SSDK ////////////////////////////////////////////////////////////////////
// !!! 중요 !!!
// SSDK 가 End User에게 배포가되면 안됩니다.
// 그 이유는 보안상 취약점이 발생 하기때문입니다.
// 해당 소스는 샘플용일 뿐이며, SSDK는 인증서버를 마련하여 해당 서버에서
// 생성해 전달 될 수 있도록 제작되어야 합니다.
/* SSDK : get service host */
__service_host = (char *)sh_get_service_host(ID, PWD, service);
if (!__service_host) {
fprintf(OUTDEV, "Cannot get the service host.\n");
goto ERR_EXIT;
}
/* SSDK : get auth string */
__auth_string = (char *)sh_get_auth_string(ID, PWD, service, auth_key, auth_file, time(0)+100000);
if (!__auth_string) {
fprintf(OUTDEV, "Cannot get the auth string.\n");
goto ERR_EXIT;
}
///////////////////////// SSDK ////////////////////////////////////////////////////////////////////
sprintf(service_host, "%s", __service_host);
sprintf(auth_string, "%s", __auth_string);
/* CSDK : init */
fprintf(stderr, "service_host!!! %s\n", service_host);
hsdk = sh_init(service_host, auth_string, CallbackProc, NULL);
if (hsdk == NULL) {
fprintf(OUTDEV, "Failed to initiate the SDK.\n");
goto ERR_EXIT;
}
path[0] = '\0';
/* TODO : listing base uri copy to path */
strcpy(path, "/");
/* CSDK : get list */
hsdf = sh_get_filelist(hsdk, path, 1);
if (hsdf == NULL) {
fprintf(OUTDEV, "Failed to retrieve the file list.\n");
goto ERR_EXIT;
}
for (i = 0; i< sh_get_filelist_count(hsdk, hsdf); i++) {
pshf = sh_get_file(hsdk, hsdf, i);
if (pshf->attr == SHFILEATTR_FOLDER) {
fprintf(OUTDEV, "Folder Name : %s\n", pshf->path);
} else {
fprintf(OUTDEV, "file Name : %s(%lld byte)\n",
pshf->path, pshf->size);
}
}
sh_free_filelist(hsdk, hsdf);
/* Upload Test */
if (!sh_upload(hsdk, "./test.txt", "/test.txt", SHWRITEPOLICY_OVERWRITE, -1, NULL))
{
printf("sh_upload ERROR 1: %d, %s\n", sh_get_error_number(hsdk), sh_get_error_message(hsdk));
goto ERR_EXIT;
} else {
printf("sh_upload SUCCESS\n");
}
/* Dowload Test */
if (!sh_download(hsdk, "/test.txt", "./test.txt", SHWRITEPOLICY_OVERWRITE, -1, NULL))
{
printf("sh_download ERROR : %d, %s\n", sh_get_error_number(hsdk), sh_get_error_message(hsdk));
goto ERR_EXIT;
} else {
printf("sh_download SUCCESS\n");
}
/* CSDK : get list */
hsdf = sh_get_filelist(hsdk, path, 1);
if (hsdf == NULL) {
fprintf(OUTDEV, "Failed to retrieve the file list.\n");
goto ERR_EXIT;
}
for (i = 0; i< sh_get_filelist_count(hsdk, hsdf); i++) {
pshf = sh_get_file(hsdk, hsdf, i);
if (pshf->attr == SHFILEATTR_FOLDER) {
fprintf(OUTDEV, "Folder Name : %s\n", pshf->path);
} else {
fprintf(OUTDEV, "file Name : %s(%lld byte)\n",
pshf->path, pshf->size);
}
}
sh_free_filelist(hsdk, hsdf);
/* File delete test */
if (sh_delete(hsdk, "/test.txt") == 0)
{
printf("sh_delete ERROR : %d, %s\n", sh_get_error_number(hsdk), sh_get_error_message(hsdk));
goto ERR_EXIT;
}
else
{
printf("sh_delete SUCCESS\n");
}
/* CSDK : get list */
hsdf = sh_get_filelist(hsdk, path, 1);
if (hsdf == NULL) {
fprintf(OUTDEV, "Failed to retrieve the file list.\n");
goto ERR_EXIT;
}
for (i = 0; i< sh_get_filelist_count(hsdk, hsdf); i++) {
pshf = sh_get_file(hsdk, hsdf, i);
if (pshf->attr == SHFILEATTR_FOLDER) {
fprintf(OUTDEV, "Folder Name : %s\n", pshf->path);
} else {
fprintf(OUTDEV, "file Name : %s(%lld byte)\n",
pshf->path, pshf->size);
}
}
sh_free_filelist(hsdk, hsdf);
sh_free(hsdk);
ERR_EXIT:
if(__service_host)
sh_mem_free(__service_host);
if(__auth_string)
sh_mem_free(__auth_string);
return 0;
}
@@ -0,0 +1,20 @@
Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Studio 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Sample", "Sample.vcproj", "{2E831581-9371-4024-88F7-F2AA94775755}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{2E831581-9371-4024-88F7-F2AA94775755}.Debug|Win32.ActiveCfg = Debug|Win32
{2E831581-9371-4024-88F7-F2AA94775755}.Debug|Win32.Build.0 = Debug|Win32
{2E831581-9371-4024-88F7-F2AA94775755}.Release|Win32.ActiveCfg = Release|Win32
{2E831581-9371-4024-88F7-F2AA94775755}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
@@ -0,0 +1,230 @@
<?xml version="1.0" encoding="ks_c_5601-1987"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="Sample"
ProjectGUID="{2E831581-9371-4024-88F7-F2AA94775755}"
RootNamespace="Sample"
Keyword="Win32Proj"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="./SDK/include"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_USE_32BIT_TIME_T"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="2"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="./SDK/lib/debug/SHCSDK.lib ./SDK/lib/debug/SHSSDK.lib"
OutputFile="$(OutDir)\$(ProjectName).exe"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="1"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="./SDK/include/"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
RuntimeLibrary="2"
UsePrecompiledHeader="2"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="./SDK/lib/release/SHCSDK.lib ./SDK/lib/release/SHSSDK.lib"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="소스 파일"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath=".\Sample.cpp"
>
</File>
<File
RelativePath=".\stdafx.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
/>
</FileConfiguration>
</File>
</Filter>
<Filter
Name="헤더 파일"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
RelativePath=".\stdafx.h"
>
</File>
</Filter>
<Filter
Name="리소스 파일"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
<File
RelativePath=".\ReadMe.txt"
>
</File>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
@@ -0,0 +1,42 @@
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Sample", "Sample_vs100.vcxproj", "{2E831581-9371-4024-88F7-F2AA94775755}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "auth_token", "auth_token_vs100.vcxproj", "{9C358813-59AD-4EDD-8CBC-4F230A28FC79}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|Mixed Platforms = Debug|Mixed Platforms
Debug|Win32 = Debug|Win32
Release|Any CPU = Release|Any CPU
Release|Mixed Platforms = Release|Mixed Platforms
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{2E831581-9371-4024-88F7-F2AA94775755}.Debug|Any CPU.ActiveCfg = Debug|Win32
{2E831581-9371-4024-88F7-F2AA94775755}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{2E831581-9371-4024-88F7-F2AA94775755}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{2E831581-9371-4024-88F7-F2AA94775755}.Debug|Win32.ActiveCfg = Debug|Win32
{2E831581-9371-4024-88F7-F2AA94775755}.Debug|Win32.Build.0 = Debug|Win32
{2E831581-9371-4024-88F7-F2AA94775755}.Release|Any CPU.ActiveCfg = Release|Win32
{2E831581-9371-4024-88F7-F2AA94775755}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{2E831581-9371-4024-88F7-F2AA94775755}.Release|Mixed Platforms.Build.0 = Release|Win32
{2E831581-9371-4024-88F7-F2AA94775755}.Release|Win32.ActiveCfg = Release|Win32
{2E831581-9371-4024-88F7-F2AA94775755}.Release|Win32.Build.0 = Release|Win32
{9C358813-59AD-4EDD-8CBC-4F230A28FC79}.Debug|Any CPU.ActiveCfg = Debug|Win32
{9C358813-59AD-4EDD-8CBC-4F230A28FC79}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{9C358813-59AD-4EDD-8CBC-4F230A28FC79}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{9C358813-59AD-4EDD-8CBC-4F230A28FC79}.Debug|Win32.ActiveCfg = Debug|Win32
{9C358813-59AD-4EDD-8CBC-4F230A28FC79}.Debug|Win32.Build.0 = Debug|Win32
{9C358813-59AD-4EDD-8CBC-4F230A28FC79}.Release|Any CPU.ActiveCfg = Release|Win32
{9C358813-59AD-4EDD-8CBC-4F230A28FC79}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{9C358813-59AD-4EDD-8CBC-4F230A28FC79}.Release|Mixed Platforms.Build.0 = Release|Win32
{9C358813-59AD-4EDD-8CBC-4F230A28FC79}.Release|Win32.ActiveCfg = Release|Win32
{9C358813-59AD-4EDD-8CBC-4F230A28FC79}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
@@ -0,0 +1,108 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>Sample</ProjectName>
<ProjectGuid>{2E831581-9371-4024-88F7-F2AA94775755}</ProjectGuid>
<RootNamespace>Sample</RootNamespace>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>./SDK/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_USE_32BIT_TIME_T;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>./SDK/lib/debug/SHCSDK.lib;./SDK/lib/debug/SHSSDK.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<AdditionalIncludeDirectories>./SDK/include/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>./SDK/lib/release/SHCSDK.lib;./SDK/lib/release/SHSSDK.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="Sample.cpp" />
<ClCompile Include="stdafx.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="stdafx.h" />
</ItemGroup>
<ItemGroup>
<None Include="ReadMe.txt" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="소스 파일">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="헤더 파일">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="리소스 파일">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="Sample.cpp">
<Filter>소스 파일</Filter>
</ClCompile>
<ClCompile Include="stdafx.cpp">
<Filter>소스 파일</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="stdafx.h">
<Filter>헤더 파일</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="ReadMe.txt" />
</ItemGroup>
</Project>
@@ -0,0 +1,73 @@
#include <time.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctime>
#include "SHSSDK.h"
// 사용방법 표시
void PrintUsage(const char* prg)
{
fprintf( stderr, "\n" );
fprintf( stderr, "Usage: %s [id] [passwd] [service] [auth key] [cert file] [expire time]\n", prg );
fprintf( stderr, "Inputs: \n" );
fprintf( stderr, " id : ID \n" );
fprintf( stderr, " passwd : Password\n" );
fprintf( stderr, " service : Service Name \n" );
fprintf( stderr, " auth key : Service authentication key \n" );
fprintf( stderr, " cert file : authentication file(full path) \n" );
fprintf( stderr, " expire time: auth token expiration time(sec) \n" );
fprintf( stderr, "\n" );
fprintf( stderr, " ex) %s test pass test1 authkey /user/service/cert/test123.cert 3600", prg );
fprintf( stderr, "\n" );
fprintf( stderr, "\n" );
fprintf( stderr, " %s is Solbox Cloud Storage auth token tool.\n", prg );
fprintf( stderr, "\n" );
fprintf( stderr, "[Note] This program doesn't check for the input argument.\n");
fprintf( stderr, "\n" );
return;
}
int main(int argc, char * argv[])
{
if( argc != 7 ) {
PrintUsage(argv[0]);
return 1;
}
///////////////////////// SSDK ////////////////////////////////////////////////////////////////////
// !!! 중요 !!!
// SSDK 가 End User에게 배포가되면 안됩니다.
// 그 이유는 보안상 취약점이 발생 하기때문입니다.
// 해당 소스는 샘플용일 뿐이며, SSDK는 인증서버를 마련하여 해당 서버에서
// 생성해 전달 될 수 있도록 제작되어야 합니다.
char *__auth_string = NULL;
time_t expire = time(0)+_atoi64(argv[6]);
/* SSDK : get auth string */
__auth_string = (char *)sh_get_auth_string(argv[1], argv[2], argv[3], argv[4], argv[5], expire);
if (!__auth_string) {
fprintf(stderr, "Cannot get the auth string.\n");
return 1;
}
tm * ptm = localtime(&expire);
char buffer[64] = {0};
strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", ptm);
fprintf(stdout, "\n");
fprintf(stdout, "* auth token : \n");
fprintf(stdout, "%s\n\n",__auth_string);
fprintf(stdout, "* expire date : \n");
fprintf(stdout, "%s \n",buffer);
fprintf(stdout, "\n");
if(__auth_string)
sh_mem_free(__auth_string);
///////////////////////// SSDK ////////////////////////////////////////////////////////////////////
return 0;
}
@@ -0,0 +1,99 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>auth_token</ProjectName>
<ProjectGuid>{9C358813-59AD-4EDD-8CBC-4F230A28FC79}</ProjectGuid>
<RootNamespace>auth_token</RootNamespace>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>./SDK/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;__SSDK_LIB__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>./SDK/lib/debug/libSHSSDK.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<AdditionalIncludeDirectories>./SDK/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;__SSDK_LIB__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>./SDK/lib/release/libSHSSDK.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="auth_token.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="소스 파일">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="헤더 파일">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="리소스 파일">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="auth_token.cpp">
<Filter>소스 파일</Filter>
</ClCompile>
</ItemGroup>
</Project>
@@ -0,0 +1,8 @@
// stdafx.cpp : 표준 포함 파일만 들어 있는 소스 파일입니다.
// Sample.pch는 미리 컴파일된 헤더가 됩니다.
// stdafx.obj에는 미리 컴파일된 형식 정보가 포함됩니다.
#include "stdafx.h"
// TODO: 필요한 추가 헤더는
// 이 파일이 아닌 STDAFX.H에서 참조합니다.
+15
View File
@@ -0,0 +1,15 @@
// stdafx.h : 자주 사용하지만 자주 변경되지는 않는
// 표준 시스템 포함 파일 및 프로젝트 관련 포함 파일이
// 들어 있는 포함 파일입니다.
//
#pragma once
#define WIN32_LEAN_AND_MEAN // 거의 사용되지 않는 내용은 Windows 헤더에서 제외합니다.
#include <stdio.h>
#include <tchar.h>
// TODO: 프로그램에 필요한 추가 헤더는 여기에서 참조합니다.
+32
View File
@@ -0,0 +1,32 @@
========================================================================
콘솔 응용 프로그램 : Sample 프로젝트 개요
========================================================================
응용 프로그램 마법사에서 이 Sample 응용 프로그램을 만들었습니다.
이 파일에는 Sample 응용 프로그램을 구성하는 각 파일에 대한
요약 설명이 포함되어 있습니다.
Sample.vcproj
응용 프로그램 마법사를 사용하여 생성한 VC++ 프로젝트의 기본 프로젝트 파일입니다.
파일을 생성한 Visual C++ 버전에 대한 정보와 응용 프로그램 마법사를 사용하여 선택한
플랫폼, 구성 및 프로젝트 기능에 대한 정보가 포함되어 있습니다.
Sample.cpp
기본 응용 프로그램 소스 파일입니다.
/////////////////////////////////////////////////////////////////////////////
기타 표준 파일:
StdAfx.h, StdAfx.cpp
이 파일은 미리 컴파일된 헤더(PCH) 파일인 Sample.pch와
미리 컴파일된 형식(PCT) 파일인 StdAfx.obj를 빌드하는 데 사용됩니다.
/////////////////////////////////////////////////////////////////////////////
기타 참고:
응용 프로그램 마법사에서 사용하는 "TODO:" 주석은 사용자가 추가하거나 사용자 지정해야 하는
소스 코드 부분을 나타냅니다.
/////////////////////////////////////////////////////////////////////////////
+728
View File
@@ -0,0 +1,728 @@
/*
Module : SNTP.CPP
Purpose: implementation for a MFC class to encapsulate the SNTP protocol
Created: PJN / 05-08-1998
History: PJN / 16-11-1998 1. m_nOriginateTime was getting set incorrectly in the SNTP response
2. GetLastError now works when a timeout occurs.
Copyright (c) 1998 by PJ Naughter.
All rights reserved.
*/
///////////////////////////////// Includes //////////////////////////////////
#include <windows.h>
#include <atlconv.h>
#include <math.h>
#include "sntp.h"
///////////////////////////////// Macros / Locals ///////////////////////////
#ifdef _DEBUG
//#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
const double NTP_FRACTIONAL_TO_MS = (((double)1000.0)/0xFFFFFFFF);
const double NTP_TO_SECOND = (((double)1.0)/0xFFFFFFFF);
const long JAN_1ST_1900 = 2415021;
//Lookup table to convert from Milliseconds (hence 1000 Entries)
//to fractions of a second expressed as a DWORD
DWORD CNtpTime::m_MsToNTP[1000] =
{
0x00000000, 0x00418937, 0x0083126f, 0x00c49ba6, 0x010624dd, 0x0147ae14,
0x0189374c, 0x01cac083, 0x020c49ba, 0x024dd2f2, 0x028f5c29, 0x02d0e560,
0x03126e98, 0x0353f7cf, 0x03958106, 0x03d70a3d, 0x04189375, 0x045a1cac,
0x049ba5e3, 0x04dd2f1b, 0x051eb852, 0x05604189, 0x05a1cac1, 0x05e353f8,
0x0624dd2f, 0x06666666, 0x06a7ef9e, 0x06e978d5, 0x072b020c, 0x076c8b44,
0x07ae147b, 0x07ef9db2, 0x083126e9, 0x0872b021, 0x08b43958, 0x08f5c28f,
0x09374bc7, 0x0978d4fe, 0x09ba5e35, 0x09fbe76d, 0x0a3d70a4, 0x0a7ef9db,
0x0ac08312, 0x0b020c4a, 0x0b439581, 0x0b851eb8, 0x0bc6a7f0, 0x0c083127,
0x0c49ba5e, 0x0c8b4396, 0x0ccccccd, 0x0d0e5604, 0x0d4fdf3b, 0x0d916873,
0x0dd2f1aa, 0x0e147ae1, 0x0e560419, 0x0e978d50, 0x0ed91687, 0x0f1a9fbe,
0x0f5c28f6, 0x0f9db22d, 0x0fdf3b64, 0x1020c49c, 0x10624dd3, 0x10a3d70a,
0x10e56042, 0x1126e979, 0x116872b0, 0x11a9fbe7, 0x11eb851f, 0x122d0e56,
0x126e978d, 0x12b020c5, 0x12f1a9fc, 0x13333333, 0x1374bc6a, 0x13b645a2,
0x13f7ced9, 0x14395810, 0x147ae148, 0x14bc6a7f, 0x14fdf3b6, 0x153f7cee,
0x15810625, 0x15c28f5c, 0x16041893, 0x1645a1cb, 0x16872b02, 0x16c8b439,
0x170a3d71, 0x174bc6a8, 0x178d4fdf, 0x17ced917, 0x1810624e, 0x1851eb85,
0x189374bc, 0x18d4fdf4, 0x1916872b, 0x19581062, 0x1999999a, 0x19db22d1,
0x1a1cac08, 0x1a5e353f, 0x1a9fbe77, 0x1ae147ae, 0x1b22d0e5, 0x1b645a1d,
0x1ba5e354, 0x1be76c8b, 0x1c28f5c3, 0x1c6a7efa, 0x1cac0831, 0x1ced9168,
0x1d2f1aa0, 0x1d70a3d7, 0x1db22d0e, 0x1df3b646, 0x1e353f7d, 0x1e76c8b4,
0x1eb851ec, 0x1ef9db23, 0x1f3b645a, 0x1f7ced91, 0x1fbe76c9, 0x20000000,
0x20418937, 0x2083126f, 0x20c49ba6, 0x210624dd, 0x2147ae14, 0x2189374c,
0x21cac083, 0x220c49ba, 0x224dd2f2, 0x228f5c29, 0x22d0e560, 0x23126e98,
0x2353f7cf, 0x23958106, 0x23d70a3d, 0x24189375, 0x245a1cac, 0x249ba5e3,
0x24dd2f1b, 0x251eb852, 0x25604189, 0x25a1cac1, 0x25e353f8, 0x2624dd2f,
0x26666666, 0x26a7ef9e, 0x26e978d5, 0x272b020c, 0x276c8b44, 0x27ae147b,
0x27ef9db2, 0x283126e9, 0x2872b021, 0x28b43958, 0x28f5c28f, 0x29374bc7,
0x2978d4fe, 0x29ba5e35, 0x29fbe76d, 0x2a3d70a4, 0x2a7ef9db, 0x2ac08312,
0x2b020c4a, 0x2b439581, 0x2b851eb8, 0x2bc6a7f0, 0x2c083127, 0x2c49ba5e,
0x2c8b4396, 0x2ccccccd, 0x2d0e5604, 0x2d4fdf3b, 0x2d916873, 0x2dd2f1aa,
0x2e147ae1, 0x2e560419, 0x2e978d50, 0x2ed91687, 0x2f1a9fbe, 0x2f5c28f6,
0x2f9db22d, 0x2fdf3b64, 0x3020c49c, 0x30624dd3, 0x30a3d70a, 0x30e56042,
0x3126e979, 0x316872b0, 0x31a9fbe7, 0x31eb851f, 0x322d0e56, 0x326e978d,
0x32b020c5, 0x32f1a9fc, 0x33333333, 0x3374bc6a, 0x33b645a2, 0x33f7ced9,
0x34395810, 0x347ae148, 0x34bc6a7f, 0x34fdf3b6, 0x353f7cee, 0x35810625,
0x35c28f5c, 0x36041893, 0x3645a1cb, 0x36872b02, 0x36c8b439, 0x370a3d71,
0x374bc6a8, 0x378d4fdf, 0x37ced917, 0x3810624e, 0x3851eb85, 0x389374bc,
0x38d4fdf4, 0x3916872b, 0x39581062, 0x3999999a, 0x39db22d1, 0x3a1cac08,
0x3a5e353f, 0x3a9fbe77, 0x3ae147ae, 0x3b22d0e5, 0x3b645a1d, 0x3ba5e354,
0x3be76c8b, 0x3c28f5c3, 0x3c6a7efa, 0x3cac0831, 0x3ced9168, 0x3d2f1aa0,
0x3d70a3d7, 0x3db22d0e, 0x3df3b646, 0x3e353f7d, 0x3e76c8b4, 0x3eb851ec,
0x3ef9db23, 0x3f3b645a, 0x3f7ced91, 0x3fbe76c9, 0x40000000, 0x40418937,
0x4083126f, 0x40c49ba6, 0x410624dd, 0x4147ae14, 0x4189374c, 0x41cac083,
0x420c49ba, 0x424dd2f2, 0x428f5c29, 0x42d0e560, 0x43126e98, 0x4353f7cf,
0x43958106, 0x43d70a3d, 0x44189375, 0x445a1cac, 0x449ba5e3, 0x44dd2f1b,
0x451eb852, 0x45604189, 0x45a1cac1, 0x45e353f8, 0x4624dd2f, 0x46666666,
0x46a7ef9e, 0x46e978d5, 0x472b020c, 0x476c8b44, 0x47ae147b, 0x47ef9db2,
0x483126e9, 0x4872b021, 0x48b43958, 0x48f5c28f, 0x49374bc7, 0x4978d4fe,
0x49ba5e35, 0x49fbe76d, 0x4a3d70a4, 0x4a7ef9db, 0x4ac08312, 0x4b020c4a,
0x4b439581, 0x4b851eb8, 0x4bc6a7f0, 0x4c083127, 0x4c49ba5e, 0x4c8b4396,
0x4ccccccd, 0x4d0e5604, 0x4d4fdf3b, 0x4d916873, 0x4dd2f1aa, 0x4e147ae1,
0x4e560419, 0x4e978d50, 0x4ed91687, 0x4f1a9fbe, 0x4f5c28f6, 0x4f9db22d,
0x4fdf3b64, 0x5020c49c, 0x50624dd3, 0x50a3d70a, 0x50e56042, 0x5126e979,
0x516872b0, 0x51a9fbe7, 0x51eb851f, 0x522d0e56, 0x526e978d, 0x52b020c5,
0x52f1a9fc, 0x53333333, 0x5374bc6a, 0x53b645a2, 0x53f7ced9, 0x54395810,
0x547ae148, 0x54bc6a7f, 0x54fdf3b6, 0x553f7cee, 0x55810625, 0x55c28f5c,
0x56041893, 0x5645a1cb, 0x56872b02, 0x56c8b439, 0x570a3d71, 0x574bc6a8,
0x578d4fdf, 0x57ced917, 0x5810624e, 0x5851eb85, 0x589374bc, 0x58d4fdf4,
0x5916872b, 0x59581062, 0x5999999a, 0x59db22d1, 0x5a1cac08, 0x5a5e353f,
0x5a9fbe77, 0x5ae147ae, 0x5b22d0e5, 0x5b645a1d, 0x5ba5e354, 0x5be76c8b,
0x5c28f5c3, 0x5c6a7efa, 0x5cac0831, 0x5ced9168, 0x5d2f1aa0, 0x5d70a3d7,
0x5db22d0e, 0x5df3b646, 0x5e353f7d, 0x5e76c8b4, 0x5eb851ec, 0x5ef9db23,
0x5f3b645a, 0x5f7ced91, 0x5fbe76c9, 0x60000000, 0x60418937, 0x6083126f,
0x60c49ba6, 0x610624dd, 0x6147ae14, 0x6189374c, 0x61cac083, 0x620c49ba,
0x624dd2f2, 0x628f5c29, 0x62d0e560, 0x63126e98, 0x6353f7cf, 0x63958106,
0x63d70a3d, 0x64189375, 0x645a1cac, 0x649ba5e3, 0x64dd2f1b, 0x651eb852,
0x65604189, 0x65a1cac1, 0x65e353f8, 0x6624dd2f, 0x66666666, 0x66a7ef9e,
0x66e978d5, 0x672b020c, 0x676c8b44, 0x67ae147b, 0x67ef9db2, 0x683126e9,
0x6872b021, 0x68b43958, 0x68f5c28f, 0x69374bc7, 0x6978d4fe, 0x69ba5e35,
0x69fbe76d, 0x6a3d70a4, 0x6a7ef9db, 0x6ac08312, 0x6b020c4a, 0x6b439581,
0x6b851eb8, 0x6bc6a7f0, 0x6c083127, 0x6c49ba5e, 0x6c8b4396, 0x6ccccccd,
0x6d0e5604, 0x6d4fdf3b, 0x6d916873, 0x6dd2f1aa, 0x6e147ae1, 0x6e560419,
0x6e978d50, 0x6ed91687, 0x6f1a9fbe, 0x6f5c28f6, 0x6f9db22d, 0x6fdf3b64,
0x7020c49c, 0x70624dd3, 0x70a3d70a, 0x70e56042, 0x7126e979, 0x716872b0,
0x71a9fbe7, 0x71eb851f, 0x722d0e56, 0x726e978d, 0x72b020c5, 0x72f1a9fc,
0x73333333, 0x7374bc6a, 0x73b645a2, 0x73f7ced9, 0x74395810, 0x747ae148,
0x74bc6a7f, 0x74fdf3b6, 0x753f7cee, 0x75810625, 0x75c28f5c, 0x76041893,
0x7645a1cb, 0x76872b02, 0x76c8b439, 0x770a3d71, 0x774bc6a8, 0x778d4fdf,
0x77ced917, 0x7810624e, 0x7851eb85, 0x789374bc, 0x78d4fdf4, 0x7916872b,
0x79581062, 0x7999999a, 0x79db22d1, 0x7a1cac08, 0x7a5e353f, 0x7a9fbe77,
0x7ae147ae, 0x7b22d0e5, 0x7b645a1d, 0x7ba5e354, 0x7be76c8b, 0x7c28f5c3,
0x7c6a7efa, 0x7cac0831, 0x7ced9168, 0x7d2f1aa0, 0x7d70a3d7, 0x7db22d0e,
0x7df3b646, 0x7e353f7d, 0x7e76c8b4, 0x7eb851ec, 0x7ef9db23, 0x7f3b645a,
0x7f7ced91, 0x7fbe76c9, 0x80000000, 0x80418937, 0x8083126f, 0x80c49ba6,
0x810624dd, 0x8147ae14, 0x8189374c, 0x81cac083, 0x820c49ba, 0x824dd2f2,
0x828f5c29, 0x82d0e560, 0x83126e98, 0x8353f7cf, 0x83958106, 0x83d70a3d,
0x84189375, 0x845a1cac, 0x849ba5e3, 0x84dd2f1b, 0x851eb852, 0x85604189,
0x85a1cac1, 0x85e353f8, 0x8624dd2f, 0x86666666, 0x86a7ef9e, 0x86e978d5,
0x872b020c, 0x876c8b44, 0x87ae147b, 0x87ef9db2, 0x883126e9, 0x8872b021,
0x88b43958, 0x88f5c28f, 0x89374bc7, 0x8978d4fe, 0x89ba5e35, 0x89fbe76d,
0x8a3d70a4, 0x8a7ef9db, 0x8ac08312, 0x8b020c4a, 0x8b439581, 0x8b851eb8,
0x8bc6a7f0, 0x8c083127, 0x8c49ba5e, 0x8c8b4396, 0x8ccccccd, 0x8d0e5604,
0x8d4fdf3b, 0x8d916873, 0x8dd2f1aa, 0x8e147ae1, 0x8e560419, 0x8e978d50,
0x8ed91687, 0x8f1a9fbe, 0x8f5c28f6, 0x8f9db22d, 0x8fdf3b64, 0x9020c49c,
0x90624dd3, 0x90a3d70a, 0x90e56042, 0x9126e979, 0x916872b0, 0x91a9fbe7,
0x91eb851f, 0x922d0e56, 0x926e978d, 0x92b020c5, 0x92f1a9fc, 0x93333333,
0x9374bc6a, 0x93b645a2, 0x93f7ced9, 0x94395810, 0x947ae148, 0x94bc6a7f,
0x94fdf3b6, 0x953f7cee, 0x95810625, 0x95c28f5c, 0x96041893, 0x9645a1cb,
0x96872b02, 0x96c8b439, 0x970a3d71, 0x974bc6a8, 0x978d4fdf, 0x97ced917,
0x9810624e, 0x9851eb85, 0x989374bc, 0x98d4fdf4, 0x9916872b, 0x99581062,
0x9999999a, 0x99db22d1, 0x9a1cac08, 0x9a5e353f, 0x9a9fbe77, 0x9ae147ae,
0x9b22d0e5, 0x9b645a1d, 0x9ba5e354, 0x9be76c8b, 0x9c28f5c3, 0x9c6a7efa,
0x9cac0831, 0x9ced9168, 0x9d2f1aa0, 0x9d70a3d7, 0x9db22d0e, 0x9df3b646,
0x9e353f7d, 0x9e76c8b4, 0x9eb851ec, 0x9ef9db23, 0x9f3b645a, 0x9f7ced91,
0x9fbe76c9, 0xa0000000, 0xa0418937, 0xa083126f, 0xa0c49ba6, 0xa10624dd,
0xa147ae14, 0xa189374c, 0xa1cac083, 0xa20c49ba, 0xa24dd2f2, 0xa28f5c29,
0xa2d0e560, 0xa3126e98, 0xa353f7cf, 0xa3958106, 0xa3d70a3d, 0xa4189375,
0xa45a1cac, 0xa49ba5e3, 0xa4dd2f1b, 0xa51eb852, 0xa5604189, 0xa5a1cac1,
0xa5e353f8, 0xa624dd2f, 0xa6666666, 0xa6a7ef9e, 0xa6e978d5, 0xa72b020c,
0xa76c8b44, 0xa7ae147b, 0xa7ef9db2, 0xa83126e9, 0xa872b021, 0xa8b43958,
0xa8f5c28f, 0xa9374bc7, 0xa978d4fe, 0xa9ba5e35, 0xa9fbe76d, 0xaa3d70a4,
0xaa7ef9db, 0xaac08312, 0xab020c4a, 0xab439581, 0xab851eb8, 0xabc6a7f0,
0xac083127, 0xac49ba5e, 0xac8b4396, 0xaccccccd, 0xad0e5604, 0xad4fdf3b,
0xad916873, 0xadd2f1aa, 0xae147ae1, 0xae560419, 0xae978d50, 0xaed91687,
0xaf1a9fbe, 0xaf5c28f6, 0xaf9db22d, 0xafdf3b64, 0xb020c49c, 0xb0624dd3,
0xb0a3d70a, 0xb0e56042, 0xb126e979, 0xb16872b0, 0xb1a9fbe7, 0xb1eb851f,
0xb22d0e56, 0xb26e978d, 0xb2b020c5, 0xb2f1a9fc, 0xb3333333, 0xb374bc6a,
0xb3b645a2, 0xb3f7ced9, 0xb4395810, 0xb47ae148, 0xb4bc6a7f, 0xb4fdf3b6,
0xb53f7cee, 0xb5810625, 0xb5c28f5c, 0xb6041893, 0xb645a1cb, 0xb6872b02,
0xb6c8b439, 0xb70a3d71, 0xb74bc6a8, 0xb78d4fdf, 0xb7ced917, 0xb810624e,
0xb851eb85, 0xb89374bc, 0xb8d4fdf4, 0xb916872b, 0xb9581062, 0xb999999a,
0xb9db22d1, 0xba1cac08, 0xba5e353f, 0xba9fbe77, 0xbae147ae, 0xbb22d0e5,
0xbb645a1d, 0xbba5e354, 0xbbe76c8b, 0xbc28f5c3, 0xbc6a7efa, 0xbcac0831,
0xbced9168, 0xbd2f1aa0, 0xbd70a3d7, 0xbdb22d0e, 0xbdf3b646, 0xbe353f7d,
0xbe76c8b4, 0xbeb851ec, 0xbef9db23, 0xbf3b645a, 0xbf7ced91, 0xbfbe76c9,
0xc0000000, 0xc0418937, 0xc083126f, 0xc0c49ba6, 0xc10624dd, 0xc147ae14,
0xc189374c, 0xc1cac083, 0xc20c49ba, 0xc24dd2f2, 0xc28f5c29, 0xc2d0e560,
0xc3126e98, 0xc353f7cf, 0xc3958106, 0xc3d70a3d, 0xc4189375, 0xc45a1cac,
0xc49ba5e3, 0xc4dd2f1b, 0xc51eb852, 0xc5604189, 0xc5a1cac1, 0xc5e353f8,
0xc624dd2f, 0xc6666666, 0xc6a7ef9e, 0xc6e978d5, 0xc72b020c, 0xc76c8b44,
0xc7ae147b, 0xc7ef9db2, 0xc83126e9, 0xc872b021, 0xc8b43958, 0xc8f5c28f,
0xc9374bc7, 0xc978d4fe, 0xc9ba5e35, 0xc9fbe76d, 0xca3d70a4, 0xca7ef9db,
0xcac08312, 0xcb020c4a, 0xcb439581, 0xcb851eb8, 0xcbc6a7f0, 0xcc083127,
0xcc49ba5e, 0xcc8b4396, 0xcccccccd, 0xcd0e5604, 0xcd4fdf3b, 0xcd916873,
0xcdd2f1aa, 0xce147ae1, 0xce560419, 0xce978d50, 0xced91687, 0xcf1a9fbe,
0xcf5c28f6, 0xcf9db22d, 0xcfdf3b64, 0xd020c49c, 0xd0624dd3, 0xd0a3d70a,
0xd0e56042, 0xd126e979, 0xd16872b0, 0xd1a9fbe7, 0xd1eb851f, 0xd22d0e56,
0xd26e978d, 0xd2b020c5, 0xd2f1a9fc, 0xd3333333, 0xd374bc6a, 0xd3b645a2,
0xd3f7ced9, 0xd4395810, 0xd47ae148, 0xd4bc6a7f, 0xd4fdf3b6, 0xd53f7cee,
0xd5810625, 0xd5c28f5c, 0xd6041893, 0xd645a1cb, 0xd6872b02, 0xd6c8b439,
0xd70a3d71, 0xd74bc6a8, 0xd78d4fdf, 0xd7ced917, 0xd810624e, 0xd851eb85,
0xd89374bc, 0xd8d4fdf4, 0xd916872b, 0xd9581062, 0xd999999a, 0xd9db22d1,
0xda1cac08, 0xda5e353f, 0xda9fbe77, 0xdae147ae, 0xdb22d0e5, 0xdb645a1d,
0xdba5e354, 0xdbe76c8b, 0xdc28f5c3, 0xdc6a7efa, 0xdcac0831, 0xdced9168,
0xdd2f1aa0, 0xdd70a3d7, 0xddb22d0e, 0xddf3b646, 0xde353f7d, 0xde76c8b4,
0xdeb851ec, 0xdef9db23, 0xdf3b645a, 0xdf7ced91, 0xdfbe76c9, 0xe0000000,
0xe0418937, 0xe083126f, 0xe0c49ba6, 0xe10624dd, 0xe147ae14, 0xe189374c,
0xe1cac083, 0xe20c49ba, 0xe24dd2f2, 0xe28f5c29, 0xe2d0e560, 0xe3126e98,
0xe353f7cf, 0xe3958106, 0xe3d70a3d, 0xe4189375, 0xe45a1cac, 0xe49ba5e3,
0xe4dd2f1b, 0xe51eb852, 0xe5604189, 0xe5a1cac1, 0xe5e353f8, 0xe624dd2f,
0xe6666666, 0xe6a7ef9e, 0xe6e978d5, 0xe72b020c, 0xe76c8b44, 0xe7ae147b,
0xe7ef9db2, 0xe83126e9, 0xe872b021, 0xe8b43958, 0xe8f5c28f, 0xe9374bc7,
0xe978d4fe, 0xe9ba5e35, 0xe9fbe76d, 0xea3d70a4, 0xea7ef9db, 0xeac08312,
0xeb020c4a, 0xeb439581, 0xeb851eb8, 0xebc6a7f0, 0xec083127, 0xec49ba5e,
0xec8b4396, 0xeccccccd, 0xed0e5604, 0xed4fdf3b, 0xed916873, 0xedd2f1aa,
0xee147ae1, 0xee560419, 0xee978d50, 0xeed91687, 0xef1a9fbe, 0xef5c28f6,
0xef9db22d, 0xefdf3b64, 0xf020c49c, 0xf0624dd3, 0xf0a3d70a, 0xf0e56042,
0xf126e979, 0xf16872b0, 0xf1a9fbe7, 0xf1eb851f, 0xf22d0e56, 0xf26e978d,
0xf2b020c5, 0xf2f1a9fc, 0xf3333333, 0xf374bc6a, 0xf3b645a2, 0xf3f7ced9,
0xf4395810, 0xf47ae148, 0xf4bc6a7f, 0xf4fdf3b6, 0xf53f7cee, 0xf5810625,
0xf5c28f5c, 0xf6041893, 0xf645a1cb, 0xf6872b02, 0xf6c8b439, 0xf70a3d71,
0xf74bc6a8, 0xf78d4fdf, 0xf7ced917, 0xf810624e, 0xf851eb85, 0xf89374bc,
0xf8d4fdf4, 0xf916872b, 0xf9581062, 0xf999999a, 0xf9db22d1, 0xfa1cac08,
0xfa5e353f, 0xfa9fbe77, 0xfae147ae, 0xfb22d0e5, 0xfb645a1d, 0xfba5e354,
0xfbe76c8b, 0xfc28f5c3, 0xfc6a7efa, 0xfcac0831, 0xfced9168, 0xfd2f1aa0,
0xfd70a3d7, 0xfdb22d0e, 0xfdf3b646, 0xfe353f7d, 0xfe76c8b4, 0xfeb851ec,
0xfef9db23, 0xff3b645a, 0xff7ced91, 0xffbe76c9
};
//The mandatory part of an NTP packet
struct NtpBasicInfo
{
BYTE m_LiVnMode;
BYTE m_Stratum;
char m_Poll;
char m_Precision;
long m_RootDelay;
long m_RootDispersion;
char m_ReferenceID[4];
CNtpTimePacket m_ReferenceTimestamp;
CNtpTimePacket m_OriginateTimestamp;
CNtpTimePacket m_ReceiveTimestamp;
CNtpTimePacket m_TransmitTimestamp;
};
//The optional part of an NTP packet
struct NtpAuthenticationInfo
{
unsigned long m_KeyID;
BYTE m_MessageDigest[16];
};
//The Full NTP packet
struct NtpFullPacket
{
NtpBasicInfo m_Basic;
NtpAuthenticationInfo m_Auth;
};
//Simple wrapper class for an Ntp socket
class CNtpSocket
{
public:
//Constructors / Destructors
CNtpSocket();
~CNtpSocket();
//General functions
BOOL Create();
BOOL Connect(LPCTSTR pszHostAddress, int nPort);
BOOL Send(LPCSTR pszBuf, int nBuf);
int Receive(LPSTR pszBuf, int nBuf);
void Close();
BOOL IsReadible(BOOL& bReadible, DWORD dwTimeout);
protected:
BOOL Connect(const SOCKADDR* lpSockAddr, int nSockAddrLen);
SOCKET m_hSocket;
};
///////////////////////////////// Implementation //////////////////////////////
CNtpTime::CNtpTime()
{
m_Time = 0;
}
CNtpTime::CNtpTime(const CNtpTime& time)
{
*this = time;
}
CNtpTime::CNtpTime(CNtpTimePacket& packet)
{
DWORD dwLow = ntohl(packet.m_dwFractional);
DWORD dwHigh = ntohl(packet.m_dwInteger);
m_Time = ((unsigned __int64) dwHigh) << 32;
m_Time += dwLow;
}
CNtpTime::CNtpTime(const SYSTEMTIME& st)
{
//Currently this function only operates correctly in
//the 1900 - 2036 primary epoch defined by NTP
long JD = GetJulianDay(st.wYear, st.wMonth, st.wDay);
JD -= JAN_1ST_1900;
// ASSERT(JD >= 0); //NTP only supports dates greater than 1900
unsigned __int64 Seconds = JD;
Seconds = (Seconds * 24) + st.wHour;
Seconds = (Seconds * 60) + st.wMinute;
Seconds = (Seconds * 60) + st.wSecond;
// ASSERT(Seconds <= 0xFFFFFFFF); //NTP Only supports up to 2036
m_Time = (Seconds << 32) + MsToNtpFraction(st.wMilliseconds);
}
long CNtpTime::GetJulianDay(WORD Year, WORD Month, WORD Day)
{
long y = (long) Year;
long m = (long) Month;
long d = (long) Day;
if (m > 2)
m = m - 3;
else
{
m = m + 9;
y = y - 1;
}
long c = y / 100;
long ya = y - 100 * c;
long j = (146097L * c) / 4 + (1461L * ya) / 4 + (153L * m + 2) / 5 + d + 1721119L;
return j;
}
void CNtpTime::GetGregorianDate(long JD, WORD& Year, WORD& Month, WORD& Day)
{
long j = JD - 1721119;
long y = (4 * j - 1) / 146097;
j = 4 * j - 1 - 146097 * y;
long d = j / 4;
j = (4 * d + 3) / 1461;
d = 4 * d + 3 - 1461 * j;
d = (d + 4) / 4;
long m = (5 * d - 3) / 153;
d = 5 * d - 3 - 153 * m;
d = (d + 5) / 5;
y = 100 * y + j;
if (m < 10)
m = m + 3;
else
{
m = m - 9;
y = y + 1;
}
Year = (WORD) y;
Month = (WORD) m;
Day = (WORD) d;
}
CNtpTime& CNtpTime::operator=(const CNtpTime& time)
{
m_Time = time.m_Time;
return *this;
}
double CNtpTime::operator-(const CNtpTime& time) const
{
if (m_Time >= time.m_Time)
{
CNtpTime diff;
diff.m_Time = m_Time - time.m_Time;
return diff.Seconds() + NtpFractionToSecond(diff.Fraction());
}
else
{
CNtpTime diff;
diff.m_Time = time.m_Time - m_Time;
return -(diff.Seconds() + NtpFractionToSecond(diff.Fraction()));
}
}
CNtpTime CNtpTime::operator+(const double& timespan) const
{
CNtpTime rVal;
rVal.m_Time = m_Time;
if (timespan >= 0)
{
unsigned __int64 diff = ((unsigned __int64) timespan) << 32;
double intpart;
double frac = modf(timespan, &intpart);
diff += (unsigned __int64) (frac * 0xFFFFFFFF);
rVal.m_Time += diff;
}
else
{
double d = -timespan;
unsigned __int64 diff = ((unsigned __int64) d) << 32;
double intpart;
double frac = modf(d, &intpart);
diff += (unsigned __int64) (frac * 0xFFFFFFFF);
rVal.m_Time -= diff;
}
return rVal;
}
CNtpTime::operator SYSTEMTIME() const
{
//Currently this function only operates correctly in
//the 1900 - 2036 primary epoch defined by NTP
SYSTEMTIME st;
DWORD s = Seconds();
st.wSecond = (WORD)(s % 60);
s /= 60;
st.wMinute = (WORD)(s % 60);
s /= 60;
st.wHour = (WORD)(s % 24);
s /= 24;
long JD = s + JAN_1ST_1900;
st.wDayOfWeek = (WORD)((JD + 1) % 7);
GetGregorianDate(JD, st.wYear, st.wMonth, st.wDay);
st.wMilliseconds = NtpFractionToMs(Fraction());
return st;
}
DWORD CNtpTime::Seconds() const
{
return (DWORD) ((m_Time & 0xFFFFFFFF00000000) >> 32);
}
DWORD CNtpTime::Fraction() const
{
return (DWORD) (m_Time & 0xFFFFFFFF);
}
CNtpTime::operator CNtpTimePacket() const
{
CNtpTimePacket ntp;
ntp.m_dwInteger = htonl(Seconds());
ntp.m_dwFractional = htonl(Fraction());
return ntp;
}
CNtpTime CNtpTime::GetCurrentTime()
{
SYSTEMTIME st;
GetSystemTime(&st);
CNtpTime t(st);
return t;
}
DWORD CNtpTime::MsToNtpFraction(WORD wMilliSeconds)
{
// ASSERT(wMilliSeconds < 1000);
return m_MsToNTP[wMilliSeconds];
}
WORD CNtpTime::NtpFractionToMs(DWORD dwFraction)
{
return (WORD)((((double)dwFraction) * NTP_FRACTIONAL_TO_MS) + 0.5);
}
double CNtpTime::NtpFractionToSecond(DWORD dwFraction)
{
double d = (double)dwFraction;
d *= NTP_TO_SECOND;
return ((double)dwFraction) * NTP_TO_SECOND;
}
CNtpSocket::CNtpSocket()
{
m_hSocket = INVALID_SOCKET; //default to an invalid scoket descriptor
}
CNtpSocket::~CNtpSocket()
{
Close();
}
BOOL CNtpSocket::Create()
{
//NTP Uses UDP instead of the usual TCP
m_hSocket = socket(AF_INET, SOCK_DGRAM, 0);
return (m_hSocket != INVALID_SOCKET);
}
BOOL CNtpSocket::Connect(LPCTSTR pszHostAddress, int nPort)
{
//For correct operation of the T2A macro, see MFC Tech Note 59
USES_CONVERSION;
//must have been created first
// ASSERT(m_hSocket != INVALID_SOCKET);
LPSTR lpszAscii = T2A((LPTSTR)pszHostAddress);
//Determine if the address is in dotted notation
SOCKADDR_IN sockAddr;
ZeroMemory(&sockAddr, sizeof(sockAddr));
sockAddr.sin_family = AF_INET;
sockAddr.sin_port = htons((u_short)nPort);
sockAddr.sin_addr.s_addr = inet_addr(lpszAscii);
//If the address is not dotted notation, then do a DNS
//lookup of it.
if (sockAddr.sin_addr.s_addr == INADDR_NONE)
{
LPHOSTENT lphost;
lphost = gethostbyname(lpszAscii);
if (lphost != NULL)
sockAddr.sin_addr.s_addr = ((LPIN_ADDR)lphost->h_addr)->s_addr;
else
return FALSE;
}
//Call the protected version which takes an address
//in the form of a standard C style struct.
return Connect((SOCKADDR*)&sockAddr, sizeof(sockAddr));
}
BOOL CNtpSocket::Connect(const SOCKADDR* lpSockAddr, int nSockAddrLen)
{
int nConnect = connect(m_hSocket, lpSockAddr, nSockAddrLen);
return (nConnect == 0);
}
BOOL CNtpSocket::Send(LPCSTR pszBuf, int nBuf)
{
//must have been created first
// ASSERT(m_hSocket != INVALID_SOCKET);
return (send(m_hSocket, pszBuf, nBuf, 0) != SOCKET_ERROR);
}
int CNtpSocket::Receive(LPSTR pszBuf, int nBuf)
{
//must have been created first
// ASSERT(m_hSocket != INVALID_SOCKET);
return recv(m_hSocket, pszBuf, nBuf, 0);
}
void CNtpSocket::Close()
{
if (m_hSocket != INVALID_SOCKET)
{
// VERIFY(SOCKET_ERROR != closesocket(m_hSocket));
m_hSocket = INVALID_SOCKET;
}
}
BOOL CNtpSocket::IsReadible(BOOL& bReadible, DWORD dwTimeout)
{
timeval timeout;
timeout.tv_sec = dwTimeout / 1000;
timeout.tv_usec = dwTimeout % 1000;
fd_set fds;
FD_ZERO(&fds);
FD_SET(m_hSocket, &fds);
int nStatus = select(0, &fds, NULL, NULL, &timeout);
if (nStatus == SOCKET_ERROR)
return FALSE;
else
{
bReadible = !(nStatus == 0);
return TRUE;
}
}
CSNTPClient::CSNTPClient()
{
m_dwTimeout = 5000; //Default timeout of 5 seconds
}
BOOL CSNTPClient::GetServerTime(LPCTSTR pszHostName, NtpServerResponse& response, int nPort)
{
//For correct operation of the T2A macro, see MFC Tech Note 59
USES_CONVERSION;
//paramater validity checking
// ASSERT(pszHostName);
//Create the socket, Allocated of the heap so we can control
//the time when it's destructor is called. This means that
//we can call SetLastError after its destructor
CNtpSocket* pSocket = new CNtpSocket();
if (!pSocket->Create())
{
// TRACE(_T("Failed to create client socket, GetLastError returns: %d\n"), GetLastError());
return FALSE;
}
//Connect to the SNTP server
if (!pSocket->Connect(pszHostName, nPort))
{
// TRACE(_T("Could not connect to the SNTP server %s on port %d, GetLastError returns: %d\n"), pszHostName, nPort, GetLastError());
//Tidy up prior to returning
DWORD dwError = GetLastError();
delete pSocket;
SetLastError(dwError);
return FALSE;
}
else
{
//Initialise the NtpBasicInfo packet
NtpBasicInfo nbi;
int nSendSize = sizeof(NtpBasicInfo);
ZeroMemory(&nbi, nSendSize);
nbi.m_LiVnMode = 27; //Encoded representation which represents NTP Client Request & NTP version 3.0
nbi.m_TransmitTimestamp = CNtpTime::GetCurrentTime();
//Send off the NtpBasicInfo packet
if (!pSocket->Send((LPCSTR) &nbi, nSendSize))
{
// TRACE(_T("Failed in call to send NTP request to the SNTP server, GetLastError returns %d\n"), GetLastError());
//Tidy up prior to returning
DWORD dwError = GetLastError();
delete pSocket;
SetLastError(dwError);
return FALSE;
}
//Need to use select to determine readibilty of socket
BOOL bReadable;
if (!pSocket->IsReadible(bReadable, m_dwTimeout) || !bReadable)
{
// TRACE(_T("Unable to wait for NTP reply from the SNTP server, GetLastError returns %d\n"), WSAETIMEDOUT);
//Tidy up prior to returning
delete pSocket;
SetLastError(WSAETIMEDOUT);
return FALSE;
}
response.m_DestinationTime = CNtpTime::GetCurrentTime();
//read back the response into the NtpFullPacket struct
NtpFullPacket nfp;
int nReceiveSize = sizeof(NtpFullPacket);
ZeroMemory(&nfp, nReceiveSize);
if (!pSocket->Receive((LPSTR) &nfp, nReceiveSize))
{
// TRACE(_T("Unable to read reply from the SNTP server, GetLastError returns %d\n"), GetLastError());
//Tidy up prior to returning
DWORD dwError = GetLastError();
delete pSocket;
SetLastError(dwError);
return FALSE;
}
//Transfer all the useful info into the response structure
response.m_nStratum = nfp.m_Basic.m_Stratum;
response.m_nLeapIndicator = (nfp.m_Basic.m_LiVnMode & 0xC0) >> 6;
response.m_OriginateTime = nfp.m_Basic.m_OriginateTimestamp;
response.m_ReceiveTime = nfp.m_Basic.m_ReceiveTimestamp;
response.m_TransmitTime = nfp.m_Basic.m_TransmitTimestamp;
response.m_RoundTripDelay = (response.m_DestinationTime - response.m_OriginateTime) - (response.m_ReceiveTime - response.m_TransmitTime);
response.m_LocalClockOffset = ((response.m_ReceiveTime - response.m_OriginateTime) + (response.m_TransmitTime - response.m_DestinationTime)) / 2;
//Tidy up prior to returning
delete pSocket;
return TRUE;
}
}
BOOL CSNTPClient::EnableSetTimePriviledge()
{
BOOL bOpenToken = OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES |
TOKEN_QUERY, &m_hToken);
m_bTakenPriviledge = FALSE;
if (!bOpenToken)
{
if (GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
{
//Must be running on 95 or 98 not NT. In that case just ignore the error
SetLastError(ERROR_SUCCESS);
return TRUE;
}
// TRACE(_T("Failed to get Adjust priviledge token\n"));
return FALSE;
}
ZeroMemory(&m_TokenPriv, sizeof(TOKEN_PRIVILEGES));
if (!LookupPrivilegeValue(NULL, SE_SYSTEMTIME_NAME, &m_TokenPriv.Privileges[0].Luid))
{
// TRACE(_T("Failed in callup to lookup priviledge\n"));
return FALSE;
}
m_TokenPriv.PrivilegeCount = 1;
m_TokenPriv.Privileges[0].Attributes |= SE_PRIVILEGE_ENABLED;
m_bTakenPriviledge = TRUE;
BOOL bSuccess = AdjustTokenPrivileges(m_hToken, FALSE, &m_TokenPriv, 0, NULL, 0);
// if (!bSuccess)
// TRACE(_T("Failed to adjust SetTime priviledge\n"));
return bSuccess;
}
void CSNTPClient::RevertSetTimePriviledge()
{
if (m_bTakenPriviledge)
{
m_TokenPriv.Privileges[0].Attributes &= (~SE_PRIVILEGE_ENABLED);
AdjustTokenPrivileges(m_hToken, FALSE, &m_TokenPriv, 0, NULL, 0);
// if (!AdjustTokenPrivileges(m_hToken, FALSE, &m_TokenPriv, 0, NULL, 0))
// TRACE(_T("Failed to reset SetTime priviledge\n"));
}
}
BOOL CSNTPClient::SetClientTime(const CNtpTime& NewTime)
{
BOOL bSuccess = FALSE;
if (EnableSetTimePriviledge())
{
SYSTEMTIME st = NewTime;
bSuccess = SetSystemTime(&st);
// if (!bSuccess)
// TRACE(_T("Failed in call to set the system time\n"));
}
RevertSetTimePriviledge();
return bSuccess;
}
+107
View File
@@ -0,0 +1,107 @@
/*
Module : SNTP.H
Purpose: Interface for a MFC class to encapsulate the SNTP protocol
Created: PJN / 05-08-1998
History: PJN / None
Copyright (c) 1998 by PJ Naughter.
All rights reserved.
*/
#ifndef __SNTP_H__
#define __SNTP_H__
///////////////////////////////// Classes //////////////////////////////
//Representation of an NTP timestamp
struct CNtpTimePacket
{
DWORD m_dwInteger;
DWORD m_dwFractional;
};
//Helper class to encapulate NTP time stamps
class CNtpTime
{
public:
//Constructors / Destructors
CNtpTime();
CNtpTime(const CNtpTime& time);
CNtpTime(CNtpTimePacket& packet);
CNtpTime(const SYSTEMTIME& st);
//General functions
CNtpTime& operator=(const CNtpTime& time);
double operator-(const CNtpTime& time) const;
CNtpTime operator+(const double& timespan) const;
operator SYSTEMTIME() const;
operator CNtpTimePacket() const;
operator unsigned __int64() const { return m_Time; };
DWORD Seconds() const;
DWORD Fraction() const;
//Static functions
static CNtpTime GetCurrentTime();
static DWORD MsToNtpFraction(WORD wMilliSeconds);
static WORD NtpFractionToMs(DWORD dwFraction);
static double NtpFractionToSecond(DWORD dwFraction);
protected:
//Internal static functions and data
static long GetJulianDay(WORD Year, WORD Month, WORD Day);
static void GetGregorianDate(long JD, WORD& Year, WORD& Month, WORD& Day);
static DWORD m_MsToNTP[1000];
//The actual data
unsigned __int64 m_Time;
};
struct NtpServerResponse
{
int m_nLeapIndicator; //0: no warning
//1: last minute in day has 61 seconds
//2: last minute has 59 seconds
//3: clock not synchronized
int m_nStratum; //0: unspecified or unavailable
//1: primary reference (e.g., radio clock)
//2-15: secondary reference (via NTP or SNTP)
//16-255: reserved
CNtpTime m_OriginateTime; //Time when the request was sent from the client to the SNTP server
CNtpTime m_ReceiveTime; //Time when the request was received by the server
CNtpTime m_TransmitTime; //Time when the server sent the request back to the client
CNtpTime m_DestinationTime; //Time when the reply was received by the client
double m_RoundTripDelay; //Round trip time in seconds
double m_LocalClockOffset; //Local clock offset relative to the server
};
//The actual SNTP class
class CSNTPClient
{
public:
//Constructors / Destructors
CSNTPClient();
//General functions
BOOL GetServerTime(LPCTSTR pszHostName, NtpServerResponse& response, int nPort = 123);
DWORD GetTimeout() const { return m_dwTimeout; };
void SetTimeout(DWORD dwTimeout) { m_dwTimeout = dwTimeout; };
BOOL SetClientTime(const CNtpTime& NewTime);
protected:
BOOL EnableSetTimePriviledge();
void RevertSetTimePriviledge();
DWORD m_dwTimeout;
HANDLE m_hToken;
TOKEN_PRIVILEGES m_TokenPriv;
BOOL m_bTakenPriviledge;
};
#endif //__SNTP_H__
@@ -0,0 +1,124 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>8.0.50727</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}</ProjectGuid>
<OutputType>Exe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>CSharp_Support</RootNamespace>
<AssemblyName>CSharp_Support</AssemblyName>
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
<FileUpgradeFlags>
</FileUpgradeFlags>
<OldToolsVersion>2.0</OldToolsVersion>
<UpgradeBackupLocation />
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\win32\bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<DebugSymbols>true</DebugSymbols>
<OutputPath>..\win32\bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<OutputPath>..\win32\bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
<DebugSymbols>true</DebugSymbols>
<OutputPath>..\win64\bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
<OutputPath>..\win64\bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
<Visible>False</Visible>
<ProductName>Windows Installer 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
@@ -0,0 +1,80 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>8.0.50727</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}</ProjectGuid>
<OutputType>Exe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>CSharp_Support</RootNamespace>
<AssemblyName>CSharp_Support</AssemblyName>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\win32\bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<DebugSymbols>true</DebugSymbols>
<OutputPath>..\win32\bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<OutputPath>..\win32\bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
<DebugSymbols>true</DebugSymbols>
<OutputPath>..\win64\bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
<OutputPath>..\win64\bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
@@ -0,0 +1,85 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>8.0.50727</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}</ProjectGuid>
<OutputType>Exe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>CSharp_Support</RootNamespace>
<AssemblyName>CSharp_Support</AssemblyName>
<FileUpgradeFlags>
</FileUpgradeFlags>
<OldToolsVersion>2.0</OldToolsVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\win32\bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<DebugSymbols>true</DebugSymbols>
<OutputPath>..\win32\bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<OutputPath>..\win32\bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
<DebugSymbols>true</DebugSymbols>
<OutputPath>..\win64\bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
<OutputPath>..\win64\bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
@@ -0,0 +1,205 @@
using System;
using System.Collections.Generic;
using System.Text;
// 마샬링을 위해 꼭!! 들어가야 하는 namespace입니다.
using System.Runtime.InteropServices;
namespace CSharp_Support
{
// kernel32.dll을 활용해서 unmanaged dll을 명시적으로 로드하기위한 클래스입니다.
static class NativeMethods
{
[DllImport("kernel32.dll")]
public static extern IntPtr LoadLibrary(string dllToLoad);
[DllImport("kernel32.dll")]
public static extern IntPtr GetProcAddress(IntPtr hModule, string procedureName);
[DllImport("kernel32.dll")]
public static extern bool FreeLibrary(IntPtr hModule);
}
class Program
{
// SSDK의 sh_get_service_host 함수의 타입을 정의하는 delegate선언.
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
private delegate IntPtr sh_get_service_host(string szUserID, string password, string serviceId);
// SSDK의 sh_get_auth_string 함수의 타입을 정의하는 delegate선언.
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
private delegate IntPtr sh_get_auth_string(string userId, string password, string serviceId
, string authKey, string authfile, Int64 expire);
// csdk의 sh_init 세번째 파라메터로 넘겨줄 함수포인터형 delegate선언.
public delegate int sh_callback(IntPtr param, Int64 progress);
// csdk의 sh_init 함수의 타입을 정의하는 delegate선언.
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
private delegate IntPtr sh_init(string url, string authString, sh_callback proc, IntPtr param);
// csdk의 sh_download 함수의 타입을 정의하는 delegate선언.
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
private delegate int sh_download(IntPtr hcsdk, string srcPath, string dstPath, int writePolicy, Int64 availQuota);
// csdk의 sh_free 함수의 타입을 정의하는 delegate선언.
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
private delegate int sh_upload(IntPtr hcsdk, string srcPath, string dstPath, int writePolicy, Int64 availQuota);
// csdk의 sh_get_error_number 함수의 타입을 정의하는 delegate선언.
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
private delegate int sh_get_error_number(IntPtr hcsdk);
// csdk의 sh_get_error_message 함수의 타입을 정의하는 delegate선언.
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
private delegate IntPtr sh_get_error_message(IntPtr hcsdk);
// csdk의 sh_free 함수의 타입을 정의하는 delegate선언.
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
private delegate void sh_free(IntPtr hcsdk);
// 고객 가입시 안내되는 접속정보 및 cert파일 정보.
// --> 기존에 서비스가 되고 있던 사이트로 알고 있습니다.
// 각 변수에 적당한 값들을 넣어주시면 되겠습니다.
// 혹, 정확한 입력값을 모르실경우 운영팀에 요청하시면 됩니다.
/*
public const string szService = "";
public const string szID = "";
public const string szPwd = "";
public const string szAuth = "";
public const string szCertPath = "";
*/
public const string szService = "svc1bd04";
public const string szID = "solboxsvc1";
public const string szPwd = "5emffld)";
public const string szAuth = "svc1bd04";
public const string szCertPath = "D:/cert/solboxsvc1298.cert";
static void Main(string[] args)
{
//1. 제공된 sdk에서 테스트 구현에 필요한 함수들만 마샬링한다.
// -> 제공된 sdk설명서를 참조하고 추가적으로 필요한 함수들은
// 아래 함수들처럼 마샬링처리 후에 사용하면된다.
//SSdk.dll을 로드하기 위한 구문.
IntPtr pSsdkDll = NativeMethods.LoadLibrary(@"SHSSDK.dll");
//CSdk.dll을 로드하기 위한 구문.
IntPtr pCsdkDll = NativeMethods.LoadLibrary(@"SHCSDK.dll");
// ProcAddress를 얻어올 변수이다.
// temporary 형태로 사용 할 수 있으므로, 한번 선언해서 계속 제사용 하면된다.
IntPtr pAddressOfFunctionToCall;
// NativeMethods를 활용해 dll에서 함수포인터를 얻는다.
pAddressOfFunctionToCall = NativeMethods.GetProcAddress(pSsdkDll, "sh_get_service_host");
// 취득한 함수 포인터를 Marshalling 단계를 거친다.
sh_get_service_host sh_get_service_host = (sh_get_service_host)Marshal.GetDelegateForFunctionPointer(
pAddressOfFunctionToCall,
typeof(sh_get_service_host));
pAddressOfFunctionToCall = NativeMethods.GetProcAddress(pSsdkDll, "sh_get_auth_string");
sh_get_auth_string sh_get_auth_string = (sh_get_auth_string)Marshal.GetDelegateForFunctionPointer(
pAddressOfFunctionToCall,
typeof(sh_get_auth_string));
pAddressOfFunctionToCall = NativeMethods.GetProcAddress(pCsdkDll, "sh_init");
sh_init sh_init = (sh_init)Marshal.GetDelegateForFunctionPointer(
pAddressOfFunctionToCall,
typeof(sh_init));
pAddressOfFunctionToCall = NativeMethods.GetProcAddress(pCsdkDll, "sh_download");
sh_download sh_download = (sh_download)Marshal.GetDelegateForFunctionPointer(
pAddressOfFunctionToCall,
typeof(sh_download));
pAddressOfFunctionToCall = NativeMethods.GetProcAddress(pCsdkDll, "sh_get_error_number");
sh_get_error_number sh_get_error_number = (sh_get_error_number)Marshal.GetDelegateForFunctionPointer(
pAddressOfFunctionToCall,
typeof(sh_get_error_number));
pAddressOfFunctionToCall = NativeMethods.GetProcAddress(pCsdkDll, "sh_get_error_message");
sh_get_error_message sh_get_error_message = (sh_get_error_message)Marshal.GetDelegateForFunctionPointer(
pAddressOfFunctionToCall,
typeof(sh_get_error_message));
pAddressOfFunctionToCall = NativeMethods.GetProcAddress(pCsdkDll, "sh_free");
sh_free sh_free = (sh_free)Marshal.GetDelegateForFunctionPointer(
pAddressOfFunctionToCall,
typeof(sh_free));
pAddressOfFunctionToCall = NativeMethods.GetProcAddress(pCsdkDll, "sh_upload");
sh_upload sh_upload = (sh_upload)Marshal.GetDelegateForFunctionPointer(
pAddressOfFunctionToCall,
typeof(sh_upload));
// 2. 사용할 함수들에 대해 마샬링 처리를 한 후 sdk설명서를 참조해서 아래처럼
// 구현에 사용하면 된다.
// 추가 설명 : 마샬링된 함수들의 파라메터들은 대부분 char* 또는 int, int64등과
// 같이 기본적은 변수 타입들이므로 적절한 변수타입으로 매칭시키면된다.
// * 핸들과 pointer형 변수들은 IntPtr로 매칭하면 된다.
// 호스트 정보를 얻어온다.
string host = Marshal.PtrToStringAnsi(sh_get_service_host(szID, szPwd, szService));
Console.WriteLine(host);
// c또는 c++에서 time(NULL)과 같은 값을 구하는 과정이다.
DateTime d1 = new DateTime(1970, 1, 1);
DateTime d2 = DateTime.Now;
TimeSpan ts = new TimeSpan(d2.Ticks - d1.Ticks);
int recordTime = Convert.ToInt32(ts.TotalSeconds);
// authstring을 얻어온다.
string astring = Marshal.PtrToStringAnsi(sh_get_auth_string(szID, szPwd, szService, szAuth, szCertPath, recordTime + 86400));
// csdk를 사용하기 위한 초기화단계.
IntPtr hcsdk = sh_init(host, astring, new sh_callback(CallbackProc), IntPtr.Zero);
// 다운로드 테스트.
// 2,3번째 다운로드 대상파일과 저장경로등은 적절히 변경하면된다.
if (sh_download(hcsdk, "/SVC1_TEST/test_CSharp", "D:\\temp\\a1.xml", 1, -1) == 0)
{
Console.Write("sh_download ERROR :");
Console.Write(sh_get_error_number(hcsdk));
Console.Write(",");
Console.WriteLine(Marshal.PtrToStringAnsi(sh_get_error_message(hcsdk)));
}
else
{
Console.WriteLine("sh_download SUCCESS\n");
}
// 업로드 테스트.
// 2,3번째 업로드 대상파일과 업로드경로등은 적절히 변경하면된다.
if (sh_upload(hcsdk, "D:/test_10k.txt", "/SVC1_TEST/test_CSharp", 1, -1) == 0)
{
Console.Write("sh_upload ERROR :");
Console.Write(sh_get_error_number(hcsdk));
Console.Write(",");
Console.WriteLine(Marshal.PtrToStringAnsi(sh_get_error_message(hcsdk)));
}
else
{
Console.WriteLine("sh_upload SUCCESS\n");
}
// sh_init() 함수를 통해 얻은 sdk의 핸들은 꼭! 해제를 해야한다.
sh_free(hcsdk);
// NativeMethods 클래스를 사용해 로드한 sdk들을 해제한다.
bool resultSSdk = NativeMethods.FreeLibrary(pSsdkDll);
bool resultCSdk = NativeMethods.FreeLibrary(pCsdkDll);
Environment.Exit(0);
}
// 콜백함수. __stdcall 형태로 콜링되도록 제공된다.
public static int CallbackProc(IntPtr param, Int64 result)
{
Console.Write("Transfer : ");
Console.WriteLine(result);
return 1;
}
}
}
@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("CSharp_Support")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Microsoft")]
[assembly: AssemblyProduct("CSharp_Support")]
[assembly: AssemblyCopyright("Copyright © Microsoft 2011")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("1ac3f192-0e6e-4818-8f06-5f75f4ec9fc8")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
</configuration>
+99
View File
@@ -0,0 +1,99 @@
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// 한국어(대한민국) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR)
LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
#pragma code_page(949)
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 3,4,0,1032
PRODUCTVERSION 3,4,0,1032
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x2L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "041204b0"
BEGIN
VALUE "FileDescription", "SHCSDK Dynamic Link Library"
VALUE "FileVersion", "3.4.0.1032"
VALUE "InternalName", "SHCSDK"
VALUE "LegalCopyright", "Copyright (C) 2010"
VALUE "OriginalFilename", "SHCSDK.dll"
VALUE "ProductName", "SHCSDK Dynamic Link Library"
VALUE "ProductVersion", "3.4.0.1032"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x412, 1200
END
END
#endif // 한국어(대한민국) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
@@ -0,0 +1,723 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug_SP-SDK-KTICS|Win32">
<Configuration>Debug_SP-SDK-KTICS</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug_SP-SDK-KTICS|x64">
<Configuration>Debug_SP-SDK-KTICS</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug_SP-SDK-X-CDN|Win32">
<Configuration>Debug_SP-SDK-X-CDN</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug_SP-SDK-X-CDN|x64">
<Configuration>Debug_SP-SDK-X-CDN</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug_X-CDN|Win32">
<Configuration>Debug_X-CDN</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug_X-CDN|x64">
<Configuration>Debug_X-CDN</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release_SP-SDK-KTICS|Win32">
<Configuration>Release_SP-SDK-KTICS</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release_SP-SDK-KTICS|x64">
<Configuration>Release_SP-SDK-KTICS</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release_SP-SDK-X-CDN|Win32">
<Configuration>Release_SP-SDK-X-CDN</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release_SP-SDK-X-CDN|x64">
<Configuration>Release_SP-SDK-X-CDN</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release_X-CDN|Win32">
<Configuration>Release_X-CDN</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release_X-CDN|x64">
<Configuration>Release_X-CDN</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>SHCSDK</ProjectName>
<ProjectGuid>{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}</ProjectGuid>
<RootNamespace>SHCSDK</RootNamespace>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../win32/bin/Debug/</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">../win64/bin/Debug</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../win32/bin/Release</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">../win64/bin/Release</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|Win32'">../win32/bin/Debug_LGU</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|Win32'">$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|Win32'">true</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|x64'">../win64/bin/Debug_LGU</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|x64'">$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|x64'">true</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|Win32'">../win32/bin/Release_LGU</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|Win32'">$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|Win32'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|x64'">../win64/bin/Release_LGU</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|x64'">$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|x64'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|Win32'">../win32/bin/Debug_SP-SDK</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|Win32'">$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|Win32'">true</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|x64'">../win64/bin/Debug_SP-SDK</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|x64'">$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|x64'">true</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|Win32'">../win32/bin/Debug_SP-SDK_LGU</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|Win32'">$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|Win32'">true</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|x64'">../win64/bin/Debug_SP-SDK_LGU</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|x64'">$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|x64'">true</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|Win32'">../win32/bin/Release_SP-SDK</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|Win32'">$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|Win32'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|x64'">../win64/bin/Release_SP-SDK</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|x64'">$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|x64'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|Win32'">../win32/bin/Release_SP-SDK_LGU</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|Win32'">$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|Win32'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|x64'">../win64/bin/Release_SP-SDK_LGU</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|x64'">$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|x64'">false</LinkIncremental>
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|x64'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|x64'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|x64'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|x64'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|x64'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|x64'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;_USE_32BIT_TIME_T;_CRT_SECURE_NO_DEPRECATE;SHCSDK_EXPORTS;_NEWAUTH;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>../win32/bin/Debug/libneon.lib;../win32/bin/Debug/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win32/bin/Debug/SHCSDK.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<MapExports>true</MapExports>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN32;_WIN64;WIN64;WIN32;_DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_DEPRECATE;SHCSDK_EXPORTS;_NEWAUTH;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>../win64/bin/Debug/libneon.lib;../win64/bin/Debug/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win64/bin/Debug/SHCSDK.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<MapExports>true</MapExports>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;_USE_32BIT_TIME_T;_CRT_SECURE_NO_DEPRECATE;SHCSDK_EXPORTS;_NEWAUTH;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>../win32/bin/Release/libneon.lib;../win32/bin/Release/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win32/bin/Release/SHCSDK.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<MapExports>true</MapExports>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN32;_WIN64;WIN64;WIN32;NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_DEPRECATE;SHCSDK_EXPORTS;_NEWAUTH;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>../win64/bin/Release/libneon.lib;../win64/bin/Release/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win64/bin/Release/SHCSDK.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<MapExports>true</MapExports>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;_USE_32BIT_TIME_T;_CRT_SECURE_NO_DEPRECATE;SHCSDK_EXPORTS;_NEWAUTH;_LGU;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>../win32/bin/Debug/libneon.lib;../win32/bin/Debug/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win32/bin/Debug_LGU/SHCSDK.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<MapExports>true</MapExports>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN32;_WIN64;WIN64;WIN32;_DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_DEPRECATE;SHCSDK_EXPORTS;_NEWAUTH;_LGU;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>../win64/bin/Debug/libneon.lib;../win64/bin/Debug/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win64/bin/Debug_LGU/SHCSDK.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<MapExports>true</MapExports>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;_USE_32BIT_TIME_T;_CRT_SECURE_NO_DEPRECATE;SHCSDK_EXPORTS;_NEWAUTH;_LGU;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>../win32/bin/Release/libneon.lib;../win32/bin/Release/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win32/bin/Release_LGU/SHCSDK.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<MapExports>true</MapExports>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN32;_WIN64;WIN64;WIN32;NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_DEPRECATE;SHCSDK_EXPORTS;_NEWAUTH;_LGU;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>../win64/bin/Release/libneon.lib;../win64/bin/Release/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win64/bin/Release_LGU/SHCSDK.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<MapExports>true</MapExports>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;_USE_32BIT_TIME_T;_CRT_SECURE_NO_DEPRECATE;SHCSDK_EXPORTS;_SP_SDK_;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>../win32/bin/Debug/libneon.lib;../win32/bin/Debug/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win32/bin/Debug_SP-SDK/SHCSDK.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<MapExports>true</MapExports>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN32;_WIN64;WIN64;WIN32;_DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_DEPRECATE;SHCSDK_EXPORTS;_NEWAUTH;_SP_SDK_;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>../win64/bin/Debug/libneon.lib;../win64/bin/Debug/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win64/bin/Debug_SP-SDK/SHCSDK.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<MapExports>true</MapExports>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;_USE_32BIT_TIME_T;_CRT_SECURE_NO_DEPRECATE;SHCSDK_EXPORTS;_SP_SDK_;_LGU;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>../win32/bin/Debug/libneon.lib;../win32/bin/Debug/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win32/bin/Debug_SP-SDK_LGU/SHCSDK.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<MapExports>true</MapExports>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN32;_WIN64;WIN64;WIN32;_DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_DEPRECATE;SHCSDK_EXPORTS;_NEWAUTH;_SP_SDK_;_LGU;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>../win64/bin/Debug/libneon.lib;../win64/bin/Debug/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win64/bin/Debug_SP-SDK_LGU/SHCSDK.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<MapExports>true</MapExports>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;_USE_32BIT_TIME_T;_CRT_SECURE_NO_DEPRECATE;SHCSDK_EXPORTS;_SP_SDK_;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>../win32/bin/Release/libneon.lib;../win32/bin/Release/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win32/bin/Release_SP-SDK/SHCSDK.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<MapExports>true</MapExports>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN32;_WIN64;WIN64;WIN32;NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_DEPRECATE;SHCSDK_EXPORTS;_NEWAUTH;_SP_SDK_;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>../win64/bin/Release/libneon.lib;../win64/bin/Release/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win64/bin/Release_SP-SDK/SHCSDK.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<MapExports>true</MapExports>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;_USE_32BIT_TIME_T;_CRT_SECURE_NO_DEPRECATE;SHCSDK_EXPORTS;_SP_SDK_;_LGU;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>../win32/bin/Release/libneon.lib;../win32/bin/Release/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win32/bin/Release_SP-SDK_LGU/SHCSDK.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<MapExports>true</MapExports>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN32;_WIN64;WIN64;WIN32;NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_DEPRECATE;SHCSDK_EXPORTS;_NEWAUTH;_SP_SDK_;_LGU;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>../win64/bin/Release/libneon.lib;../win64/bin/Release/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win64/bin/Release_SP-SDK_LGU/SHCSDK.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<MapExports>true</MapExports>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\SHCSDK.cpp" />
<ClCompile Include="..\..\solbox_util.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\GTS_INFO.h" />
<ClInclude Include="resource.h" />
<ClInclude Include="..\..\SHCSDK.h" />
<ClInclude Include="..\..\solbox_util.h" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="SHCSDK.rc" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\SHCSDK.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\solbox_util.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="resource.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\SHCSDK.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\solbox_util.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\GTS_INFO.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="SHCSDK.rc">
<Filter>Resource Files</Filter>
</ResourceCompile>
</ItemGroup>
</Project>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+14
View File
@@ -0,0 +1,14 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by SHCSDK.rc
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 101
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1001
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
@@ -0,0 +1,21 @@
========================================================================
정적 라이브러리 : SHSSDK.Static 프로젝트 개요
========================================================================
응용 프로그램 마법사에서 이 SHSSDK.Static 라이브러리를 만들었습니다.
프로젝트에 대해 소스 파일은 만들어지지 않았습니다.
SHSSDK.Static.vcproj
응용 프로그램 마법사를 사용하여 생성한 VC++ 프로젝트의 기본 프로젝트 파일입니다.
파일을 생성한 Visual C++ 버전에 대한 정보와 응용 프로그램 마법사를 사용하여 선택한
플랫폼, 구성 및 프로젝트 기능에 대한 정보가 포함되어 있습니다.
/////////////////////////////////////////////////////////////////////////////
기타 참고:
응용 프로그램 마법사에서 사용하는 "TODO:" 주석은 사용자가 추가하거나 사용자 지정해야 하는
소스 코드 부분을 나타냅니다.
/////////////////////////////////////////////////////////////////////////////
@@ -0,0 +1,589 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug_SP-SDK-KTICS|Win32">
<Configuration>Debug_SP-SDK-KTICS</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug_SP-SDK-KTICS|x64">
<Configuration>Debug_SP-SDK-KTICS</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug_SP-SDK-X-CDN|Win32">
<Configuration>Debug_SP-SDK-X-CDN</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug_SP-SDK-X-CDN|x64">
<Configuration>Debug_SP-SDK-X-CDN</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug_X-CDN|Win32">
<Configuration>Debug_X-CDN</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug_X-CDN|x64">
<Configuration>Debug_X-CDN</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release_SP-SDK-KTICS|Win32">
<Configuration>Release_SP-SDK-KTICS</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release_SP-SDK-KTICS|x64">
<Configuration>Release_SP-SDK-KTICS</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release_SP-SDK-X-CDN|Win32">
<Configuration>Release_SP-SDK-X-CDN</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release_SP-SDK-X-CDN|x64">
<Configuration>Release_SP-SDK-X-CDN</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release_X-CDN|Win32">
<Configuration>Release_X-CDN</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release_X-CDN|x64">
<Configuration>Release_X-CDN</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>SHSSDK.Static</ProjectName>
<ProjectGuid>{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}</ProjectGuid>
<RootNamespace>SHSSDKStatic</RootNamespace>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../win32/bin/Debug/</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">../win64/bin/Debug</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../win32/bin/Release</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">../win64/bin/Release</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|Win32'">../win32/bin/Debug_LGU/</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|Win32'">$(Configuration)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|x64'">../win64/bin/Debug_LGU</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|x64'">$(Platform)\$(Configuration)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|Win32'">../win32/bin/Release_LGU</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|Win32'">$(Configuration)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|x64'">../win64/bin/Release_LGU</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|x64'">$(Platform)\$(Configuration)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|Win32'">../win32/bin/Debug_SP-SDK</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|Win32'">$(Configuration)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|x64'">../win64/bin/Debug_SP-SDK</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|x64'">$(Platform)\$(Configuration)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|Win32'">../win32/bin/Debug_SP-SDK_LGU</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|Win32'">$(Configuration)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|x64'">../win64/bin/Debug_SP-SDK_LGU</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|x64'">$(Platform)\$(Configuration)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|Win32'">../win32/bin/Release_SP-SDK</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|Win32'">$(Configuration)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|x64'">../win64/bin/Release_SP-SDK</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|x64'">$(Platform)\$(Configuration)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|Win32'">../win32/bin/Release_SP-SDK_LGU</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|Win32'">$(Configuration)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|x64'">../win64/bin/Release_SP-SDK_LGU</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|x64'">$(Platform)\$(Configuration)\</IntDir>
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|x64'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|x64'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|x64'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|x64'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|x64'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|x64'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;__SSDK_LIB__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Lib>
<AdditionalDependencies>../win32/bin/Debug/libneon.lib;../win32/bin/Debug/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win32/bin/Debug/libSHSSDK.lib</OutputFile>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;__SSDK_LIB__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Lib>
<AdditionalDependencies>../win64/bin/Debug/libneon.lib;../win64/bin/Debug/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win64/bin/Debug/libSHSSDK.lib</OutputFile>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;__SSDK_LIB__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Lib>
<AdditionalDependencies>../win32/bin/Release/libneon.lib;../win32/bin/Release/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win32/bin/Release/libSHSSDK.lib</OutputFile>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;__SSDK_LIB__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Lib>
<AdditionalDependencies>../win64/bin/Release/libneon.lib;../win64/bin/Release/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win64/bin/Release/libSHSSDK.lib</OutputFile>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;__SSDK_LIB__;_LGU;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Lib>
<AdditionalDependencies>../win32/bin/Debug/libneon.lib;../win32/bin/Debug/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win32/bin/Debug_LGU/libSHSSDK.lib</OutputFile>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;__SSDK_LIB__;_LGU;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Lib>
<AdditionalDependencies>../win64/bin/Debug/libneon.lib;../win64/bin/Debug/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win64/bin/Debug_LGU/libSHSSDK.lib</OutputFile>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|Win32'">
<ClCompile>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;__SSDK_LIB__;_LGU;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Lib>
<AdditionalDependencies>../win32/bin/Release/libneon.lib;../win32/bin/Release/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win32/bin/Release_LGU/libSHSSDK.lib</OutputFile>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;__SSDK_LIB__;_LGU;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Lib>
<AdditionalDependencies>../win64/bin/Release/libneon.lib;../win64/bin/Release/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win64/bin/Release_LGU/libSHSSDK.lib</OutputFile>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;__SSDK_LIB__;_SP_SDK_;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Lib>
<AdditionalDependencies>../win32/bin/Debug/libneon.lib;../win32/bin/Debug/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win32/bin/Debug_SP-SDK/libSHSSDK.lib</OutputFile>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;__SSDK_LIB__;_SP_SDK_;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Lib>
<AdditionalDependencies>../win64/bin/Debug/libneon.lib;../win64/bin/Debug/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win64/bin/Debug_SP-SDK/libSHSSDK.lib</OutputFile>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;__SSDK_LIB__;_SP_SDK_;_LGU;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Lib>
<AdditionalDependencies>../win32/bin/Debug/libneon.lib;../win32/bin/Debug/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win32/bin/Debug_SP-SDK_LGU/libSHSSDK.lib</OutputFile>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;__SSDK_LIB__;_SP_SDK_;_LGU;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Lib>
<AdditionalDependencies>../win64/bin/Debug/libneon.lib;../win64/bin/Debug/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win64/bin/Debug_SP-SDK_LGU/libSHSSDK.lib</OutputFile>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|Win32'">
<ClCompile>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;__SSDK_LIB__;_SP_SDK_;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Lib>
<AdditionalDependencies>../win32/bin/Release/libneon.lib;../win32/bin/Release/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win32/bin/Release_SP-SDK/libSHSSDK.lib</OutputFile>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;__SSDK_LIB__;_SP_SDK_;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Lib>
<AdditionalDependencies>../win64/bin/Release/libneon.lib;../win64/bin/Release/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win64/bin/Release_SP-SDK/libSHSSDK.lib</OutputFile>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|Win32'">
<ClCompile>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;__SSDK_LIB__;_SP_SDK_;_LGU;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Lib>
<AdditionalDependencies>../win32/bin/Release/libneon.lib;../win32/bin/Release/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win32/bin/Release_SP-SDK_LGU/libSHSSDK.lib</OutputFile>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;__SSDK_LIB__;_SP_SDK_;_LGU;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Lib>
<AdditionalDependencies>../win64/bin/Release/libneon.lib;../win64/bin/Release/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win64/bin/Release_SP-SDK_LGU/libSHSSDK.lib</OutputFile>
</Lib>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\auth.c" />
<ClCompile Include="..\..\main.c" />
<ClCompile Include="..\..\solbox_util.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\auth.h" />
<ClInclude Include="..\..\GTS_INFO.h" />
<ClInclude Include="..\..\main.h" />
<ClInclude Include="..\..\SHSSDK.h" />
<ClInclude Include="..\..\solbox_util.h" />
</ItemGroup>
<ItemGroup>
<None Include="ReadMe.txt" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="소스 파일">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="헤더 파일">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="리소스 파일">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\auth.c">
<Filter>소스 파일</Filter>
</ClCompile>
<ClCompile Include="..\..\main.c">
<Filter>소스 파일</Filter>
</ClCompile>
<ClCompile Include="..\..\solbox_util.c">
<Filter>소스 파일</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\auth.h">
<Filter>헤더 파일</Filter>
</ClInclude>
<ClInclude Include="..\..\main.h">
<Filter>헤더 파일</Filter>
</ClInclude>
<ClInclude Include="..\..\SHSSDK.h">
<Filter>헤더 파일</Filter>
</ClInclude>
<ClInclude Include="..\..\solbox_util.h">
<Filter>헤더 파일</Filter>
</ClInclude>
<ClInclude Include="..\..\GTS_INFO.h">
<Filter>헤더 파일</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="ReadMe.txt" />
</ItemGroup>
</Project>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+29
View File
@@ -0,0 +1,29 @@
#include "../../SHSSDK.h"
#ifdef WIN32
#include <windows.h>
#ifdef _DEBUG
#define _CRTDBG_MAP_ALLOC
#include <crtdbg.h>
#define SET_CRT_DEBUG_FIELD(a) _CrtSetDbgFlag((a) | _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG))
#define CLEAR_CRT_DEBUG_FIELD(a) _CrtSetDbgFlag(~(a) & _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG))
#else // _DEBUG
#define SET_CRT_DEBUG_FIELD(a) ((void) 0)
#define CLEAR_CRT_DEBUG_FIELD(a) ((void) 0)
#endif // _DEBUG
HINSTANCE g_hInst;
BOOL APIENTRY DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
#ifdef _DEBUG
SET_CRT_DEBUG_FIELD( _CRTDBG_LEAK_CHECK_DF | _CRTDBG_DELAY_FREE_MEM_DF );
//_CrtSetBreakAlloc(160);
#endif
g_hInst = (HINSTANCE)hModule;
return TRUE;
}
#endif // WIN32
+99
View File
@@ -0,0 +1,99 @@
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// 한국어(대한민국) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR)
LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
#pragma code_page(949)
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 3,4,0,1052
PRODUCTVERSION 3,4,0,1052
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x2L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "041204b0"
BEGIN
VALUE "FileDescription", "SHSSDK Dynamic Link Library"
VALUE "FileVersion", "3.4.0.1052"
VALUE "InternalName", "SHSSDK"
VALUE "LegalCopyright", "Copyright (C) 2010"
VALUE "OriginalFilename", "SHSSDK.dll"
VALUE "ProductName", "SHSSDK Dynamic Link Library"
VALUE "ProductVersion", "3.4.0.1052"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x412, 1200
END
END
#endif // 한국어(대한민국) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
@@ -0,0 +1,728 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug_SP-SDK-KTICS|Win32">
<Configuration>Debug_SP-SDK-KTICS</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug_SP-SDK-KTICS|x64">
<Configuration>Debug_SP-SDK-KTICS</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug_SP-SDK-X-CDN|Win32">
<Configuration>Debug_SP-SDK-X-CDN</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug_SP-SDK-X-CDN|x64">
<Configuration>Debug_SP-SDK-X-CDN</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug_X-CDN|Win32">
<Configuration>Debug_X-CDN</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug_X-CDN|x64">
<Configuration>Debug_X-CDN</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release_SP-SDK-KTICS|Win32">
<Configuration>Release_SP-SDK-KTICS</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release_SP-SDK-KTICS|x64">
<Configuration>Release_SP-SDK-KTICS</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release_SP-SDK-X-CDN|Win32">
<Configuration>Release_SP-SDK-X-CDN</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release_SP-SDK-X-CDN|x64">
<Configuration>Release_SP-SDK-X-CDN</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release_X-CDN|Win32">
<Configuration>Release_X-CDN</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release_X-CDN|x64">
<Configuration>Release_X-CDN</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>SHSSDK</ProjectName>
<ProjectGuid>{CD7BE34D-4D9C-41DF-B136-56B75D97467F}</ProjectGuid>
<RootNamespace>SHSSDK</RootNamespace>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../win32/bin/Debug/</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">../win64/bin/Debug</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../win32/bin/Release</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">../win64/bin/Release</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|Win32'">../win32/bin/Debug_LGU/</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|Win32'">$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|Win32'">true</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|x64'">../win64/bin/Debug_LGU</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|x64'">$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|x64'">true</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|Win32'">../win32/bin/Release_LGU</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|Win32'">$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|Win32'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|x64'">../win64/bin/Release_LGU</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|x64'">$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|x64'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|Win32'">../win32/bin/Debug_SP-SDK</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|Win32'">$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|Win32'">true</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|x64'">../win64/bin/Debug_SP-SDK</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|x64'">$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|x64'">true</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|Win32'">../win32/bin/Debug_SP-SDK_LGU</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|Win32'">$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|Win32'">true</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|x64'">../win64/bin/Debug_SP-SDK_LGU</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|x64'">$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|x64'">true</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|Win32'">../win32/bin/Release_SP-SDK</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|Win32'">$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|Win32'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|x64'">../win64/bin/Release_SP-SDK</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|x64'">$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|x64'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|Win32'">../win32/bin/Release_SP-SDK_LGU</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|Win32'">$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|Win32'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|x64'">../win64/bin/Release_SP-SDK_LGU</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|x64'">$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|x64'">false</LinkIncremental>
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|x64'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|x64'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|x64'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|x64'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|x64'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|x64'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;SHSSDK_EXPORTS;_USE_32BIT_TIME_T;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>../win32/bin/Debug/libneon.lib;../win32/bin/Debug/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win32/bin/Debug/SHSSDK.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<MapExports>true</MapExports>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN32;_WIN64;WIN64;WIN32;_WINDOWS;_USRDLL;SHSSDK_EXPORTS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>../win64/bin/Debug/libneon.lib;../win64/bin/Debug/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win64/bin/Debug/SHSSDK.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<MapExports>true</MapExports>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;_USE_32BIT_TIME_T;_CRT_SECURE_NO_DEPRECATE;SHSSDK_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>../win32/bin/Release/libneon.lib;../win32/bin/Release/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win32/bin/Release/SHSSDK.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<MapExports>true</MapExports>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN32;_WIN64;WIN64;WIN32;NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_DEPRECATE;SHSSDK_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>../win64/bin/Release/libneon.lib;../win64/bin/Release/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win64/bin/Release/SHSSDK.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<MapExports>true</MapExports>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;SHSSDK_EXPORTS;_USE_32BIT_TIME_T;_CRT_SECURE_NO_DEPRECATE;_LGU;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>../win32/bin/Debug/libneon.lib;../win32/bin/Debug/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win32/bin/Debug_LGU/SHSSDK.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<MapExports>true</MapExports>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_X-CDN|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN32;_WIN64;WIN64;WIN32;_DEBUG;_WINDOWS;_USRDLL;SHSSDK_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_LGU;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>../win64/bin/Debug/libneon.lib;../win64/bin/Debug/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win64/bin/Debug_LGU/SHSSDK.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<MapExports>true</MapExports>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;_USE_32BIT_TIME_T;_CRT_SECURE_NO_DEPRECATE;SHSSDK_EXPORTS;_LGU;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>../win32/bin/Release/libneon.lib;../win32/bin/Release/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win32/bin/Release_LGU/SHSSDK.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<MapExports>true</MapExports>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_X-CDN|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN32;_WIN64;WIN64;WIN32;NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_DEPRECATE;SHSSDK_EXPORTS;_LGU;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>../win64/bin/Release/libneon.lib;../win64/bin/Release/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win64/bin/Release_LGU/SHSSDK.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<MapExports>true</MapExports>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;SHSSDK_EXPORTS;_USE_32BIT_TIME_T;_CRT_SECURE_NO_DEPRECATE;_SP_SDK_;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>../win32/bin/Debug/libneon.lib;../win32/bin/Debug/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win32/bin/Debug_SP-SDK/SHSSDK.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<MapExports>true</MapExports>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-KTICS|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN32;_WIN64;WIN64;WIN32;_WINDOWS;_USRDLL;SHSSDK_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_SP_SDK_;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>../win64/bin/Debug/libneon.lib;../win64/bin/Debug/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win64/bin/Debug_SP-SDK/SHSSDK.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<MapExports>true</MapExports>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;SHSSDK_EXPORTS;_USE_32BIT_TIME_T;_CRT_SECURE_NO_DEPRECATE;_SP_SDK_;_LGU;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>../win32/bin/Debug/libneon.lib;../win32/bin/Debug/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win32/bin/Debug_SP-SDK_LGU/SHSSDK.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<MapExports>true</MapExports>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SP-SDK-X-CDN|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN32;_WIN64;WIN64;WIN32;_DEBUG;_WINDOWS;_USRDLL;SHSSDK_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_SP_SDK_;_LGU;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>../win64/bin/Debug/libneon.lib;../win64/bin/Debug/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win64/bin/Debug_SP-SDK_LGU/SHSSDK.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<MapExports>true</MapExports>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;_USE_32BIT_TIME_T;_CRT_SECURE_NO_DEPRECATE;SHSSDK_EXPORTS;_SP_SDK_;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>../win32/bin/Release/libneon.lib;../win32/bin/Release/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win32/bin/Release_SP-SDK/SHSSDK.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<MapExports>true</MapExports>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-KTICS|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN32;_WIN64;WIN64;WIN32;NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_DEPRECATE;SHSSDK_EXPORTS;_SP_SDK_;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>../win64/bin/Release/libneon.lib;../win64/bin/Release/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win64/bin/Release_SP-SDK/SHSSDK.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<MapExports>true</MapExports>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;_USE_32BIT_TIME_T;_CRT_SECURE_NO_DEPRECATE;SHSSDK_EXPORTS;_SP_SDK_;_LGU;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>../win32/bin/Release/libneon.lib;../win32/bin/Release/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win32/bin/Release_SP-SDK_LGU/SHSSDK.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<MapExports>true</MapExports>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_SP-SDK-X-CDN|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>../../libs/neon-0.29.5/src;../../libs/libmcrypt-2.5.7/lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN32;_WIN64;WIN64;WIN32;NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_DEPRECATE;SHSSDK_EXPORTS;_SP_SDK_;_LGU;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>../win64/bin/Release/libneon.lib;../win64/bin/Release/libmcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win64/bin/Release_SP-SDK_LGU/SHSSDK.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<MapExports>true</MapExports>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\auth.c" />
<ClCompile Include="..\..\main.c" />
<ClCompile Include="SHSSDK.cpp" />
<ClCompile Include="..\..\solbox_util.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\auth.h" />
<ClInclude Include="..\..\GTS_INFO.h" />
<ClInclude Include="..\..\main.h" />
<ClInclude Include="..\..\SHSSDK_EXT.h" />
<ClInclude Include="resource.h" />
<ClInclude Include="..\..\SHSSDK.h" />
<ClInclude Include="..\..\solbox_util.h" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="SHSSDK.rc" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\auth.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\main.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="SHSSDK.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\solbox_util.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\auth.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\main.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="resource.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\SHSSDK.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\solbox_util.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\GTS_INFO.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\SHSSDK_EXT.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="SHSSDK.rc">
<Filter>Resource Files</Filter>
</ResourceCompile>
</ItemGroup>
</Project>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+14
View File
@@ -0,0 +1,14 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by SHSSDK.rc
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 101
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1001
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
+442
View File
@@ -0,0 +1,442 @@
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{D2C8805B-724B-4B04-97A8-3E5CA721C50A}"
ProjectSection(SolutionItems) = preProject
..\..\ChangLog.txt = ..\..\ChangLog.txt
..\Makefile = ..\Makefile
..\libs\README.txt = ..\libs\README.txt
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libneon", "libneon\libneon_vs100.vcxproj", "{7F093948-4D4A-442C-80F9-D61BC4B98C9D}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libexpat", "libexpat\libexpat_vs100.vcxproj", "{E4495C87-9B44-4A66-8946-E5DB8AA99F51}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmcrypt", "libmcrypt\libmcrypt_vs100.vcxproj", "{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SHCSDK", "SHCSDK\SHCSDK_vs100.vcxproj", "{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SHSSDK", "SHSSDK\SHSSDK_vs100.vcxproj", "{CD7BE34D-4D9C-41DF-B136-56B75D97467F}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_agent", "test_agent\test_agent_vs100.vcxproj", "{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSharp_Support_vs100", "CSharp_Support\CSharp_Support_vs100.csproj", "{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SHSSDK.Static", "SHSSDK.Static\SHSSDK.Static_vs100.vcxproj", "{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}"
EndProject
Global
GlobalSection(SubversionScc) = preSolution
Svn-Managed = True
Manager = AnkhSVN - Subversion Support for Visual Studio
EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug_SP-SDK-KTICS|Mixed Platforms = Debug_SP-SDK-KTICS|Mixed Platforms
Debug_SP-SDK-KTICS|Win32 = Debug_SP-SDK-KTICS|Win32
Debug_SP-SDK-KTICS|x64 = Debug_SP-SDK-KTICS|x64
Debug_SP-SDK-X-CDN|Mixed Platforms = Debug_SP-SDK-X-CDN|Mixed Platforms
Debug_SP-SDK-X-CDN|Win32 = Debug_SP-SDK-X-CDN|Win32
Debug_SP-SDK-X-CDN|x64 = Debug_SP-SDK-X-CDN|x64
Debug_X-CDN|Mixed Platforms = Debug_X-CDN|Mixed Platforms
Debug_X-CDN|Win32 = Debug_X-CDN|Win32
Debug_X-CDN|x64 = Debug_X-CDN|x64
Debug|Mixed Platforms = Debug|Mixed Platforms
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Release_SP-SDK-KTICS|Mixed Platforms = Release_SP-SDK-KTICS|Mixed Platforms
Release_SP-SDK-KTICS|Win32 = Release_SP-SDK-KTICS|Win32
Release_SP-SDK-KTICS|x64 = Release_SP-SDK-KTICS|x64
Release_SP-SDK-X-CDN|Mixed Platforms = Release_SP-SDK-X-CDN|Mixed Platforms
Release_SP-SDK-X-CDN|Win32 = Release_SP-SDK-X-CDN|Win32
Release_SP-SDK-X-CDN|x64 = Release_SP-SDK-X-CDN|x64
Release_X-CDN|Mixed Platforms = Release_X-CDN|Mixed Platforms
Release_X-CDN|Win32 = Release_X-CDN|Win32
Release_X-CDN|x64 = Release_X-CDN|x64
Release|Mixed Platforms = Release|Mixed Platforms
Release|Win32 = Release|Win32
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_SP-SDK-KTICS|Mixed Platforms.Build.0 = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_SP-SDK-KTICS|Win32.ActiveCfg = Debug|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_SP-SDK-KTICS|Win32.Build.0 = Debug|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_SP-SDK-KTICS|x64.ActiveCfg = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_SP-SDK-KTICS|x64.Build.0 = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_SP-SDK-X-CDN|Win32.ActiveCfg = Debug|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_SP-SDK-X-CDN|Win32.Build.0 = Debug|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_SP-SDK-X-CDN|x64.ActiveCfg = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_SP-SDK-X-CDN|x64.Build.0 = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_X-CDN|Mixed Platforms.ActiveCfg = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_X-CDN|Mixed Platforms.Build.0 = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_X-CDN|Win32.ActiveCfg = Debug|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_X-CDN|Win32.Build.0 = Debug|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_X-CDN|x64.ActiveCfg = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_X-CDN|x64.Build.0 = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug|Mixed Platforms.Build.0 = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug|Win32.ActiveCfg = Debug|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug|Win32.Build.0 = Debug|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug|x64.ActiveCfg = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug|x64.Build.0 = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_SP-SDK-KTICS|Mixed Platforms.Build.0 = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_SP-SDK-KTICS|Win32.ActiveCfg = Release|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_SP-SDK-KTICS|Win32.Build.0 = Release|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_SP-SDK-KTICS|x64.ActiveCfg = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_SP-SDK-KTICS|x64.Build.0 = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_SP-SDK-X-CDN|Win32.ActiveCfg = Release|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_SP-SDK-X-CDN|Win32.Build.0 = Release|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_SP-SDK-X-CDN|x64.ActiveCfg = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_SP-SDK-X-CDN|x64.Build.0 = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_X-CDN|Mixed Platforms.ActiveCfg = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_X-CDN|Mixed Platforms.Build.0 = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_X-CDN|Win32.ActiveCfg = Release|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_X-CDN|Win32.Build.0 = Release|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_X-CDN|x64.ActiveCfg = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_X-CDN|x64.Build.0 = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release|Mixed Platforms.ActiveCfg = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release|Mixed Platforms.Build.0 = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release|Win32.ActiveCfg = Release|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release|Win32.Build.0 = Release|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release|x64.ActiveCfg = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release|x64.Build.0 = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_SP-SDK-KTICS|Mixed Platforms.Build.0 = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_SP-SDK-KTICS|Win32.ActiveCfg = Debug|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_SP-SDK-KTICS|Win32.Build.0 = Debug|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_SP-SDK-KTICS|x64.ActiveCfg = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_SP-SDK-KTICS|x64.Build.0 = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_SP-SDK-X-CDN|Win32.ActiveCfg = Debug|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_SP-SDK-X-CDN|Win32.Build.0 = Debug|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_SP-SDK-X-CDN|x64.ActiveCfg = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_SP-SDK-X-CDN|x64.Build.0 = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_X-CDN|Mixed Platforms.ActiveCfg = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_X-CDN|Mixed Platforms.Build.0 = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_X-CDN|Win32.ActiveCfg = Debug|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_X-CDN|Win32.Build.0 = Debug|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_X-CDN|x64.ActiveCfg = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_X-CDN|x64.Build.0 = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug|Mixed Platforms.Build.0 = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug|Win32.ActiveCfg = Debug|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug|Win32.Build.0 = Debug|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug|x64.ActiveCfg = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug|x64.Build.0 = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_SP-SDK-KTICS|Mixed Platforms.Build.0 = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_SP-SDK-KTICS|Win32.ActiveCfg = Release|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_SP-SDK-KTICS|Win32.Build.0 = Release|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_SP-SDK-KTICS|x64.ActiveCfg = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_SP-SDK-KTICS|x64.Build.0 = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_SP-SDK-X-CDN|Win32.ActiveCfg = Release|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_SP-SDK-X-CDN|Win32.Build.0 = Release|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_SP-SDK-X-CDN|x64.ActiveCfg = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_SP-SDK-X-CDN|x64.Build.0 = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_X-CDN|Mixed Platforms.ActiveCfg = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_X-CDN|Mixed Platforms.Build.0 = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_X-CDN|Win32.ActiveCfg = Release|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_X-CDN|Win32.Build.0 = Release|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_X-CDN|x64.ActiveCfg = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_X-CDN|x64.Build.0 = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release|Mixed Platforms.ActiveCfg = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release|Mixed Platforms.Build.0 = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release|Win32.ActiveCfg = Release|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release|Win32.Build.0 = Release|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release|x64.ActiveCfg = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release|x64.Build.0 = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_SP-SDK-KTICS|Mixed Platforms.Build.0 = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_SP-SDK-KTICS|Win32.ActiveCfg = Debug|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_SP-SDK-KTICS|Win32.Build.0 = Debug|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_SP-SDK-KTICS|x64.ActiveCfg = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_SP-SDK-KTICS|x64.Build.0 = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_SP-SDK-X-CDN|Win32.ActiveCfg = Debug|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_SP-SDK-X-CDN|Win32.Build.0 = Debug|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_SP-SDK-X-CDN|x64.ActiveCfg = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_SP-SDK-X-CDN|x64.Build.0 = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_X-CDN|Mixed Platforms.ActiveCfg = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_X-CDN|Mixed Platforms.Build.0 = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_X-CDN|Win32.ActiveCfg = Debug|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_X-CDN|Win32.Build.0 = Debug|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_X-CDN|x64.ActiveCfg = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_X-CDN|x64.Build.0 = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug|Mixed Platforms.Build.0 = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug|Win32.ActiveCfg = Debug|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug|Win32.Build.0 = Debug|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug|x64.ActiveCfg = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug|x64.Build.0 = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_SP-SDK-KTICS|Mixed Platforms.Build.0 = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_SP-SDK-KTICS|Win32.ActiveCfg = Release|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_SP-SDK-KTICS|Win32.Build.0 = Release|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_SP-SDK-KTICS|x64.ActiveCfg = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_SP-SDK-KTICS|x64.Build.0 = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_SP-SDK-X-CDN|Win32.ActiveCfg = Release|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_SP-SDK-X-CDN|Win32.Build.0 = Release|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_SP-SDK-X-CDN|x64.ActiveCfg = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_SP-SDK-X-CDN|x64.Build.0 = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_X-CDN|Mixed Platforms.ActiveCfg = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_X-CDN|Mixed Platforms.Build.0 = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_X-CDN|Win32.ActiveCfg = Release|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_X-CDN|Win32.Build.0 = Release|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_X-CDN|x64.ActiveCfg = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_X-CDN|x64.Build.0 = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release|Mixed Platforms.ActiveCfg = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release|Mixed Platforms.Build.0 = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release|Win32.ActiveCfg = Release|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release|Win32.Build.0 = Release|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release|x64.ActiveCfg = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release|x64.Build.0 = Release|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Debug_SP-SDK-KTICS|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_SP-SDK-KTICS|Mixed Platforms.Build.0 = Debug_SP-SDK-KTICS|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_SP-SDK-KTICS|Win32.ActiveCfg = Debug_SP-SDK-KTICS|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_SP-SDK-KTICS|Win32.Build.0 = Debug_SP-SDK-KTICS|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_SP-SDK-KTICS|x64.ActiveCfg = Debug_SP-SDK-KTICS|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_SP-SDK-KTICS|x64.Build.0 = Debug_SP-SDK-KTICS|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Debug_SP-SDK-X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Debug_SP-SDK-X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_SP-SDK-X-CDN|Win32.ActiveCfg = Debug_SP-SDK-X-CDN|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_SP-SDK-X-CDN|Win32.Build.0 = Debug_SP-SDK-X-CDN|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_SP-SDK-X-CDN|x64.ActiveCfg = Debug_SP-SDK-X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_SP-SDK-X-CDN|x64.Build.0 = Debug_SP-SDK-X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_X-CDN|Mixed Platforms.ActiveCfg = Debug_X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_X-CDN|Mixed Platforms.Build.0 = Debug_X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_X-CDN|Win32.ActiveCfg = Debug_X-CDN|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_X-CDN|Win32.Build.0 = Debug_X-CDN|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_X-CDN|x64.ActiveCfg = Debug_X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_X-CDN|x64.Build.0 = Debug_X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug|Mixed Platforms.Build.0 = Debug|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug|Win32.ActiveCfg = Debug|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug|Win32.Build.0 = Debug|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug|x64.ActiveCfg = Debug|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug|x64.Build.0 = Debug|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Release_SP-SDK-KTICS|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_SP-SDK-KTICS|Mixed Platforms.Build.0 = Release_SP-SDK-KTICS|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_SP-SDK-KTICS|Win32.ActiveCfg = Release_SP-SDK-KTICS|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_SP-SDK-KTICS|Win32.Build.0 = Release_SP-SDK-KTICS|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_SP-SDK-KTICS|x64.ActiveCfg = Release_SP-SDK-KTICS|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_SP-SDK-KTICS|x64.Build.0 = Release_SP-SDK-KTICS|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Release_SP-SDK-X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Release_SP-SDK-X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_SP-SDK-X-CDN|Win32.ActiveCfg = Release_SP-SDK-X-CDN|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_SP-SDK-X-CDN|Win32.Build.0 = Release_SP-SDK-X-CDN|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_SP-SDK-X-CDN|x64.ActiveCfg = Release_SP-SDK-X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_SP-SDK-X-CDN|x64.Build.0 = Release_SP-SDK-X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_X-CDN|Mixed Platforms.ActiveCfg = Release_X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_X-CDN|Mixed Platforms.Build.0 = Release_X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_X-CDN|Win32.ActiveCfg = Release_X-CDN|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_X-CDN|Win32.Build.0 = Release_X-CDN|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_X-CDN|x64.ActiveCfg = Release_X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_X-CDN|x64.Build.0 = Release_X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release|Mixed Platforms.ActiveCfg = Release|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release|Mixed Platforms.Build.0 = Release|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release|Win32.ActiveCfg = Release|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release|Win32.Build.0 = Release|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release|x64.ActiveCfg = Release|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release|x64.Build.0 = Release|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Debug_SP-SDK-KTICS|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_SP-SDK-KTICS|Mixed Platforms.Build.0 = Debug_SP-SDK-KTICS|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_SP-SDK-KTICS|Win32.ActiveCfg = Debug_SP-SDK-KTICS|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_SP-SDK-KTICS|Win32.Build.0 = Debug_SP-SDK-KTICS|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_SP-SDK-KTICS|x64.ActiveCfg = Debug_SP-SDK-KTICS|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_SP-SDK-KTICS|x64.Build.0 = Debug_SP-SDK-KTICS|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Debug_SP-SDK-X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Debug_SP-SDK-X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_SP-SDK-X-CDN|Win32.ActiveCfg = Debug_SP-SDK-X-CDN|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_SP-SDK-X-CDN|Win32.Build.0 = Debug_SP-SDK-X-CDN|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_SP-SDK-X-CDN|x64.ActiveCfg = Debug_SP-SDK-X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_SP-SDK-X-CDN|x64.Build.0 = Debug_SP-SDK-X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_X-CDN|Mixed Platforms.ActiveCfg = Debug_X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_X-CDN|Mixed Platforms.Build.0 = Debug_X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_X-CDN|Win32.ActiveCfg = Debug_X-CDN|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_X-CDN|Win32.Build.0 = Debug_X-CDN|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_X-CDN|x64.ActiveCfg = Debug_X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_X-CDN|x64.Build.0 = Debug_X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug|Mixed Platforms.Build.0 = Debug|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug|Win32.ActiveCfg = Debug|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug|Win32.Build.0 = Debug|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug|x64.ActiveCfg = Debug|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug|x64.Build.0 = Debug|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Release_SP-SDK-KTICS|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_SP-SDK-KTICS|Mixed Platforms.Build.0 = Release_SP-SDK-KTICS|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_SP-SDK-KTICS|Win32.ActiveCfg = Release_SP-SDK-KTICS|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_SP-SDK-KTICS|Win32.Build.0 = Release_SP-SDK-KTICS|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_SP-SDK-KTICS|x64.ActiveCfg = Release_SP-SDK-KTICS|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_SP-SDK-KTICS|x64.Build.0 = Release_SP-SDK-KTICS|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Release_SP-SDK-X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Release_SP-SDK-X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_SP-SDK-X-CDN|Win32.ActiveCfg = Release_SP-SDK-X-CDN|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_SP-SDK-X-CDN|Win32.Build.0 = Release_SP-SDK-X-CDN|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_SP-SDK-X-CDN|x64.ActiveCfg = Release_SP-SDK-X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_SP-SDK-X-CDN|x64.Build.0 = Release_SP-SDK-X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_X-CDN|Mixed Platforms.ActiveCfg = Release_X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_X-CDN|Mixed Platforms.Build.0 = Release_X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_X-CDN|Win32.ActiveCfg = Release_X-CDN|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_X-CDN|Win32.Build.0 = Release_X-CDN|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_X-CDN|x64.ActiveCfg = Release_X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_X-CDN|x64.Build.0 = Release_X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release|Mixed Platforms.ActiveCfg = Release|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release|Mixed Platforms.Build.0 = Release|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release|Win32.ActiveCfg = Release|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release|Win32.Build.0 = Release|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release|x64.ActiveCfg = Release|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release|x64.Build.0 = Release|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Debug_SP-SDK-KTICS|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_SP-SDK-KTICS|Mixed Platforms.Build.0 = Debug_SP-SDK-KTICS|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_SP-SDK-KTICS|Win32.ActiveCfg = Debug_SP-SDK-KTICS|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_SP-SDK-KTICS|Win32.Build.0 = Debug_SP-SDK-KTICS|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_SP-SDK-KTICS|x64.ActiveCfg = Debug_SP-SDK-KTICS|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_SP-SDK-KTICS|x64.Build.0 = Debug_SP-SDK-KTICS|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Debug_SP-SDK-X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Debug_SP-SDK-X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_SP-SDK-X-CDN|Win32.ActiveCfg = Debug_SP-SDK-X-CDN|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_SP-SDK-X-CDN|Win32.Build.0 = Debug_SP-SDK-X-CDN|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_SP-SDK-X-CDN|x64.ActiveCfg = Debug_SP-SDK-X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_SP-SDK-X-CDN|x64.Build.0 = Debug_SP-SDK-X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_X-CDN|Mixed Platforms.ActiveCfg = Debug_SP-SDK-X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_X-CDN|Mixed Platforms.Build.0 = Debug_SP-SDK-X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_X-CDN|Win32.ActiveCfg = Debug_X-CDN|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_X-CDN|Win32.Build.0 = Debug_X-CDN|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_X-CDN|x64.ActiveCfg = Debug|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_X-CDN|x64.Build.0 = Debug|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug|Mixed Platforms.Build.0 = Debug|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug|Win32.ActiveCfg = Debug|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug|Win32.Build.0 = Debug|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug|x64.ActiveCfg = Debug|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug|x64.Build.0 = Debug|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Release_SP-SDK-KTICS|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_SP-SDK-KTICS|Mixed Platforms.Build.0 = Release_SP-SDK-KTICS|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_SP-SDK-KTICS|Win32.ActiveCfg = Release_SP-SDK-KTICS|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_SP-SDK-KTICS|Win32.Build.0 = Release_SP-SDK-KTICS|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_SP-SDK-KTICS|x64.ActiveCfg = Release_SP-SDK-KTICS|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_SP-SDK-KTICS|x64.Build.0 = Release_SP-SDK-KTICS|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Release_SP-SDK-X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Release_SP-SDK-X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_SP-SDK-X-CDN|Win32.ActiveCfg = Release_SP-SDK-X-CDN|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_SP-SDK-X-CDN|Win32.Build.0 = Release_SP-SDK-X-CDN|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_SP-SDK-X-CDN|x64.ActiveCfg = Release_SP-SDK-X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_SP-SDK-X-CDN|x64.Build.0 = Release_SP-SDK-X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_X-CDN|Mixed Platforms.ActiveCfg = Release_SP-SDK-X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_X-CDN|Mixed Platforms.Build.0 = Release_SP-SDK-X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_X-CDN|Win32.ActiveCfg = Release_X-CDN|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_X-CDN|Win32.Build.0 = Release_X-CDN|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_X-CDN|x64.ActiveCfg = Release_X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_X-CDN|x64.Build.0 = Release_X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release|Mixed Platforms.ActiveCfg = Release|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release|Mixed Platforms.Build.0 = Release|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release|Win32.ActiveCfg = Release|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release|Win32.Build.0 = Release|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release|x64.ActiveCfg = Release|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release|x64.Build.0 = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_SP-SDK-KTICS|Mixed Platforms.Build.0 = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_SP-SDK-KTICS|Win32.ActiveCfg = Debug|x86
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_SP-SDK-KTICS|x64.ActiveCfg = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_SP-SDK-KTICS|x64.Build.0 = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_SP-SDK-X-CDN|Win32.ActiveCfg = Debug|x86
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_SP-SDK-X-CDN|x64.ActiveCfg = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_SP-SDK-X-CDN|x64.Build.0 = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_X-CDN|Mixed Platforms.ActiveCfg = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_X-CDN|Mixed Platforms.Build.0 = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_X-CDN|Win32.ActiveCfg = Debug|x86
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_X-CDN|Win32.Build.0 = Debug|x86
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_X-CDN|x64.ActiveCfg = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_X-CDN|x64.Build.0 = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug|Mixed Platforms.Build.0 = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug|Win32.ActiveCfg = Debug|x86
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug|Win32.Build.0 = Debug|x86
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug|x64.ActiveCfg = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug|x64.Build.0 = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_SP-SDK-KTICS|Mixed Platforms.Build.0 = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_SP-SDK-KTICS|Win32.ActiveCfg = Release|x86
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_SP-SDK-KTICS|x64.ActiveCfg = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_SP-SDK-KTICS|x64.Build.0 = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_SP-SDK-X-CDN|Win32.ActiveCfg = Release|x86
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_SP-SDK-X-CDN|x64.ActiveCfg = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_SP-SDK-X-CDN|x64.Build.0 = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_X-CDN|Mixed Platforms.ActiveCfg = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_X-CDN|Mixed Platforms.Build.0 = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_X-CDN|Win32.ActiveCfg = Release|x86
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_X-CDN|Win32.Build.0 = Release|x86
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_X-CDN|x64.ActiveCfg = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_X-CDN|x64.Build.0 = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release|Mixed Platforms.ActiveCfg = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release|Mixed Platforms.Build.0 = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release|Win32.ActiveCfg = Release|x86
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release|Win32.Build.0 = Release|x86
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release|x64.ActiveCfg = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release|x64.Build.0 = Release|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Debug_SP-SDK-KTICS|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_SP-SDK-KTICS|Mixed Platforms.Build.0 = Debug_SP-SDK-KTICS|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_SP-SDK-KTICS|Win32.ActiveCfg = Debug_SP-SDK-KTICS|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_SP-SDK-KTICS|Win32.Build.0 = Debug_SP-SDK-KTICS|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_SP-SDK-KTICS|x64.ActiveCfg = Debug_SP-SDK-KTICS|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_SP-SDK-KTICS|x64.Build.0 = Debug_SP-SDK-KTICS|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Debug_SP-SDK-X-CDN|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Debug_SP-SDK-X-CDN|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_SP-SDK-X-CDN|Win32.ActiveCfg = Debug_SP-SDK-X-CDN|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_SP-SDK-X-CDN|Win32.Build.0 = Debug_SP-SDK-X-CDN|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_SP-SDK-X-CDN|x64.ActiveCfg = Debug_SP-SDK-X-CDN|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_SP-SDK-X-CDN|x64.Build.0 = Debug_SP-SDK-X-CDN|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_X-CDN|Mixed Platforms.ActiveCfg = Debug_X-CDN|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_X-CDN|Mixed Platforms.Build.0 = Debug_X-CDN|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_X-CDN|Win32.ActiveCfg = Debug_X-CDN|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_X-CDN|Win32.Build.0 = Debug_X-CDN|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_X-CDN|x64.ActiveCfg = Debug_X-CDN|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_X-CDN|x64.Build.0 = Debug_X-CDN|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug|Win32.ActiveCfg = Debug|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug|Win32.Build.0 = Debug|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug|x64.ActiveCfg = Debug|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Release_SP-SDK-KTICS|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_SP-SDK-KTICS|Mixed Platforms.Build.0 = Release_SP-SDK-KTICS|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_SP-SDK-KTICS|Win32.ActiveCfg = Release_SP-SDK-KTICS|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_SP-SDK-KTICS|Win32.Build.0 = Release_SP-SDK-KTICS|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_SP-SDK-KTICS|x64.ActiveCfg = Release_SP-SDK-KTICS|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_SP-SDK-KTICS|x64.Build.0 = Release_SP-SDK-KTICS|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Release_SP-SDK-X-CDN|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Release_SP-SDK-X-CDN|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_SP-SDK-X-CDN|Win32.ActiveCfg = Release_SP-SDK-X-CDN|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_SP-SDK-X-CDN|Win32.Build.0 = Release_SP-SDK-X-CDN|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_SP-SDK-X-CDN|x64.ActiveCfg = Release_SP-SDK-X-CDN|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_SP-SDK-X-CDN|x64.Build.0 = Release_SP-SDK-X-CDN|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_X-CDN|Mixed Platforms.ActiveCfg = Release|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_X-CDN|Mixed Platforms.Build.0 = Release|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_X-CDN|Win32.ActiveCfg = Release_X-CDN|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_X-CDN|Win32.Build.0 = Release_X-CDN|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_X-CDN|x64.ActiveCfg = Release_X-CDN|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_X-CDN|x64.Build.0 = Release_X-CDN|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release|Mixed Platforms.Build.0 = Release|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release|Win32.ActiveCfg = Release|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release|Win32.Build.0 = Release|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release|x64.ActiveCfg = Release|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
+442
View File
@@ -0,0 +1,442 @@
Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Studio 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libneon", "libneon\libneon_vs80.vcproj", "{7F093948-4D4A-442C-80F9-D61BC4B98C9D}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libexpat", "libexpat\libexpat_vs80.vcproj", "{E4495C87-9B44-4A66-8946-E5DB8AA99F51}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmcrypt", "libmcrypt\libmcrypt_vs80.vcproj", "{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SHCSDK", "SHCSDK\SHCSDK_vs80.vcproj", "{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SHSSDK", "SHSSDK\SHSSDK_vs80.vcproj", "{CD7BE34D-4D9C-41DF-B136-56B75D97467F}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_agent", "test_agent\test_agent_vs80.vcproj", "{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{D2C8805B-724B-4B04-97A8-3E5CA721C50A}"
ProjectSection(SolutionItems) = preProject
..\..\ChangLog.txt = ..\..\ChangLog.txt
..\Makefile = ..\Makefile
..\libs\README.txt = ..\libs\README.txt
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSharp_Support_vs80", "CSharp_Support\CSharp_Support_vs80.csproj", "{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SHSSDK.Static", "SHSSDK.Static\SHSSDK.Static_vs80.vcproj", "{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}"
EndProject
Global
GlobalSection(SubversionScc) = preSolution
Svn-Managed = True
Manager = AnkhSVN - Subversion Support for Visual Studio
EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug_SP-SDK-KTICS|Mixed Platforms = Debug_SP-SDK-KTICS|Mixed Platforms
Debug_SP-SDK-KTICS|Win32 = Debug_SP-SDK-KTICS|Win32
Debug_SP-SDK-KTICS|x64 = Debug_SP-SDK-KTICS|x64
Debug_SP-SDK-X-CDN|Mixed Platforms = Debug_SP-SDK-X-CDN|Mixed Platforms
Debug_SP-SDK-X-CDN|Win32 = Debug_SP-SDK-X-CDN|Win32
Debug_SP-SDK-X-CDN|x64 = Debug_SP-SDK-X-CDN|x64
Debug_X-CDN|Mixed Platforms = Debug_X-CDN|Mixed Platforms
Debug_X-CDN|Win32 = Debug_X-CDN|Win32
Debug_X-CDN|x64 = Debug_X-CDN|x64
Debug|Mixed Platforms = Debug|Mixed Platforms
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Release_SP-SDK-KTICS|Mixed Platforms = Release_SP-SDK-KTICS|Mixed Platforms
Release_SP-SDK-KTICS|Win32 = Release_SP-SDK-KTICS|Win32
Release_SP-SDK-KTICS|x64 = Release_SP-SDK-KTICS|x64
Release_SP-SDK-X-CDN|Mixed Platforms = Release_SP-SDK-X-CDN|Mixed Platforms
Release_SP-SDK-X-CDN|Win32 = Release_SP-SDK-X-CDN|Win32
Release_SP-SDK-X-CDN|x64 = Release_SP-SDK-X-CDN|x64
Release_X-CDN|Mixed Platforms = Release_X-CDN|Mixed Platforms
Release_X-CDN|Win32 = Release_X-CDN|Win32
Release_X-CDN|x64 = Release_X-CDN|x64
Release|Mixed Platforms = Release|Mixed Platforms
Release|Win32 = Release|Win32
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_SP-SDK-KTICS|Mixed Platforms.Build.0 = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_SP-SDK-KTICS|Win32.ActiveCfg = Debug|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_SP-SDK-KTICS|Win32.Build.0 = Debug|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_SP-SDK-KTICS|x64.ActiveCfg = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_SP-SDK-KTICS|x64.Build.0 = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_SP-SDK-X-CDN|Win32.ActiveCfg = Debug|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_SP-SDK-X-CDN|Win32.Build.0 = Debug|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_SP-SDK-X-CDN|x64.ActiveCfg = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_SP-SDK-X-CDN|x64.Build.0 = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_X-CDN|Mixed Platforms.ActiveCfg = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_X-CDN|Mixed Platforms.Build.0 = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_X-CDN|Win32.ActiveCfg = Debug|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_X-CDN|Win32.Build.0 = Debug|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_X-CDN|x64.ActiveCfg = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_X-CDN|x64.Build.0 = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug|Mixed Platforms.Build.0 = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug|Win32.ActiveCfg = Debug|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug|Win32.Build.0 = Debug|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug|x64.ActiveCfg = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug|x64.Build.0 = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_SP-SDK-KTICS|Mixed Platforms.Build.0 = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_SP-SDK-KTICS|Win32.ActiveCfg = Release|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_SP-SDK-KTICS|Win32.Build.0 = Release|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_SP-SDK-KTICS|x64.ActiveCfg = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_SP-SDK-KTICS|x64.Build.0 = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_SP-SDK-X-CDN|Win32.ActiveCfg = Release|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_SP-SDK-X-CDN|Win32.Build.0 = Release|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_SP-SDK-X-CDN|x64.ActiveCfg = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_SP-SDK-X-CDN|x64.Build.0 = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_X-CDN|Mixed Platforms.ActiveCfg = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_X-CDN|Mixed Platforms.Build.0 = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_X-CDN|Win32.ActiveCfg = Release|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_X-CDN|Win32.Build.0 = Release|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_X-CDN|x64.ActiveCfg = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_X-CDN|x64.Build.0 = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release|Mixed Platforms.ActiveCfg = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release|Mixed Platforms.Build.0 = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release|Win32.ActiveCfg = Release|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release|Win32.Build.0 = Release|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release|x64.ActiveCfg = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release|x64.Build.0 = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_SP-SDK-KTICS|Mixed Platforms.Build.0 = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_SP-SDK-KTICS|Win32.ActiveCfg = Debug|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_SP-SDK-KTICS|Win32.Build.0 = Debug|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_SP-SDK-KTICS|x64.ActiveCfg = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_SP-SDK-KTICS|x64.Build.0 = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_SP-SDK-X-CDN|Win32.ActiveCfg = Debug|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_SP-SDK-X-CDN|Win32.Build.0 = Debug|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_SP-SDK-X-CDN|x64.ActiveCfg = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_SP-SDK-X-CDN|x64.Build.0 = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_X-CDN|Mixed Platforms.ActiveCfg = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_X-CDN|Mixed Platforms.Build.0 = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_X-CDN|Win32.ActiveCfg = Debug|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_X-CDN|Win32.Build.0 = Debug|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_X-CDN|x64.ActiveCfg = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_X-CDN|x64.Build.0 = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug|Mixed Platforms.Build.0 = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug|Win32.ActiveCfg = Debug|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug|Win32.Build.0 = Debug|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug|x64.ActiveCfg = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug|x64.Build.0 = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_SP-SDK-KTICS|Mixed Platforms.Build.0 = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_SP-SDK-KTICS|Win32.ActiveCfg = Release|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_SP-SDK-KTICS|Win32.Build.0 = Release|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_SP-SDK-KTICS|x64.ActiveCfg = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_SP-SDK-KTICS|x64.Build.0 = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_SP-SDK-X-CDN|Win32.ActiveCfg = Release|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_SP-SDK-X-CDN|Win32.Build.0 = Release|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_SP-SDK-X-CDN|x64.ActiveCfg = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_SP-SDK-X-CDN|x64.Build.0 = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_X-CDN|Mixed Platforms.ActiveCfg = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_X-CDN|Mixed Platforms.Build.0 = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_X-CDN|Win32.ActiveCfg = Release|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_X-CDN|Win32.Build.0 = Release|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_X-CDN|x64.ActiveCfg = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_X-CDN|x64.Build.0 = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release|Mixed Platforms.ActiveCfg = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release|Mixed Platforms.Build.0 = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release|Win32.ActiveCfg = Release|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release|Win32.Build.0 = Release|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release|x64.ActiveCfg = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release|x64.Build.0 = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_SP-SDK-KTICS|Mixed Platforms.Build.0 = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_SP-SDK-KTICS|Win32.ActiveCfg = Debug|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_SP-SDK-KTICS|Win32.Build.0 = Debug|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_SP-SDK-KTICS|x64.ActiveCfg = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_SP-SDK-KTICS|x64.Build.0 = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_SP-SDK-X-CDN|Win32.ActiveCfg = Debug|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_SP-SDK-X-CDN|Win32.Build.0 = Debug|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_SP-SDK-X-CDN|x64.ActiveCfg = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_SP-SDK-X-CDN|x64.Build.0 = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_X-CDN|Mixed Platforms.ActiveCfg = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_X-CDN|Mixed Platforms.Build.0 = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_X-CDN|Win32.ActiveCfg = Debug|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_X-CDN|Win32.Build.0 = Debug|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_X-CDN|x64.ActiveCfg = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_X-CDN|x64.Build.0 = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug|Mixed Platforms.Build.0 = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug|Win32.ActiveCfg = Debug|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug|Win32.Build.0 = Debug|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug|x64.ActiveCfg = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug|x64.Build.0 = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_SP-SDK-KTICS|Mixed Platforms.Build.0 = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_SP-SDK-KTICS|Win32.ActiveCfg = Release|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_SP-SDK-KTICS|Win32.Build.0 = Release|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_SP-SDK-KTICS|x64.ActiveCfg = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_SP-SDK-KTICS|x64.Build.0 = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_SP-SDK-X-CDN|Win32.ActiveCfg = Release|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_SP-SDK-X-CDN|Win32.Build.0 = Release|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_SP-SDK-X-CDN|x64.ActiveCfg = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_SP-SDK-X-CDN|x64.Build.0 = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_X-CDN|Mixed Platforms.ActiveCfg = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_X-CDN|Mixed Platforms.Build.0 = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_X-CDN|Win32.ActiveCfg = Release|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_X-CDN|Win32.Build.0 = Release|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_X-CDN|x64.ActiveCfg = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_X-CDN|x64.Build.0 = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release|Mixed Platforms.ActiveCfg = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release|Mixed Platforms.Build.0 = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release|Win32.ActiveCfg = Release|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release|Win32.Build.0 = Release|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release|x64.ActiveCfg = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release|x64.Build.0 = Release|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Debug_SP-SDK-KTICS|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_SP-SDK-KTICS|Mixed Platforms.Build.0 = Debug_SP-SDK-KTICS|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_SP-SDK-KTICS|Win32.ActiveCfg = Debug_SP-SDK-KTICS|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_SP-SDK-KTICS|Win32.Build.0 = Debug_SP-SDK-KTICS|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_SP-SDK-KTICS|x64.ActiveCfg = Debug_SP-SDK-KTICS|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_SP-SDK-KTICS|x64.Build.0 = Debug_SP-SDK-KTICS|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Debug_SP-SDK-X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Debug_SP-SDK-X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_SP-SDK-X-CDN|Win32.ActiveCfg = Debug_SP-SDK-X-CDN|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_SP-SDK-X-CDN|Win32.Build.0 = Debug_SP-SDK-X-CDN|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_SP-SDK-X-CDN|x64.ActiveCfg = Debug_SP-SDK-X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_SP-SDK-X-CDN|x64.Build.0 = Debug_SP-SDK-X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_X-CDN|Mixed Platforms.ActiveCfg = Debug_X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_X-CDN|Mixed Platforms.Build.0 = Debug_X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_X-CDN|Win32.ActiveCfg = Debug_X-CDN|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_X-CDN|Win32.Build.0 = Debug_X-CDN|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_X-CDN|x64.ActiveCfg = Debug_X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_X-CDN|x64.Build.0 = Debug_X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug|Mixed Platforms.Build.0 = Debug|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug|Win32.ActiveCfg = Debug|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug|Win32.Build.0 = Debug|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug|x64.ActiveCfg = Debug|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug|x64.Build.0 = Debug|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Release_SP-SDK-KTICS|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_SP-SDK-KTICS|Mixed Platforms.Build.0 = Release_SP-SDK-KTICS|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_SP-SDK-KTICS|Win32.ActiveCfg = Release_SP-SDK-KTICS|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_SP-SDK-KTICS|Win32.Build.0 = Release_SP-SDK-KTICS|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_SP-SDK-KTICS|x64.ActiveCfg = Release_SP-SDK-KTICS|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_SP-SDK-KTICS|x64.Build.0 = Release_SP-SDK-KTICS|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Release_SP-SDK-X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Release_SP-SDK-X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_SP-SDK-X-CDN|Win32.ActiveCfg = Release_SP-SDK-X-CDN|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_SP-SDK-X-CDN|Win32.Build.0 = Release_SP-SDK-X-CDN|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_SP-SDK-X-CDN|x64.ActiveCfg = Release_SP-SDK-X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_SP-SDK-X-CDN|x64.Build.0 = Release_SP-SDK-X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_X-CDN|Mixed Platforms.ActiveCfg = Release_X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_X-CDN|Mixed Platforms.Build.0 = Release_X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_X-CDN|Win32.ActiveCfg = Release_X-CDN|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_X-CDN|Win32.Build.0 = Release_X-CDN|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_X-CDN|x64.ActiveCfg = Release_X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_X-CDN|x64.Build.0 = Release_X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release|Mixed Platforms.ActiveCfg = Release|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release|Mixed Platforms.Build.0 = Release|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release|Win32.ActiveCfg = Release|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release|Win32.Build.0 = Release|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release|x64.ActiveCfg = Release|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release|x64.Build.0 = Release|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Debug_SP-SDK-KTICS|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_SP-SDK-KTICS|Mixed Platforms.Build.0 = Debug_SP-SDK-KTICS|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_SP-SDK-KTICS|Win32.ActiveCfg = Debug_SP-SDK-KTICS|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_SP-SDK-KTICS|Win32.Build.0 = Debug_SP-SDK-KTICS|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_SP-SDK-KTICS|x64.ActiveCfg = Debug_SP-SDK-KTICS|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_SP-SDK-KTICS|x64.Build.0 = Debug_SP-SDK-KTICS|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Debug_SP-SDK-X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Debug_SP-SDK-X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_SP-SDK-X-CDN|Win32.ActiveCfg = Debug_SP-SDK-X-CDN|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_SP-SDK-X-CDN|Win32.Build.0 = Debug_SP-SDK-X-CDN|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_SP-SDK-X-CDN|x64.ActiveCfg = Debug_SP-SDK-X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_SP-SDK-X-CDN|x64.Build.0 = Debug_SP-SDK-X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_X-CDN|Mixed Platforms.ActiveCfg = Debug_X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_X-CDN|Mixed Platforms.Build.0 = Debug_X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_X-CDN|Win32.ActiveCfg = Debug_X-CDN|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_X-CDN|Win32.Build.0 = Debug_X-CDN|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_X-CDN|x64.ActiveCfg = Debug_X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_X-CDN|x64.Build.0 = Debug_X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug|Mixed Platforms.Build.0 = Debug|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug|Win32.ActiveCfg = Debug|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug|Win32.Build.0 = Debug|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug|x64.ActiveCfg = Debug|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug|x64.Build.0 = Debug|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Release_SP-SDK-KTICS|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_SP-SDK-KTICS|Mixed Platforms.Build.0 = Release_SP-SDK-KTICS|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_SP-SDK-KTICS|Win32.ActiveCfg = Release_SP-SDK-KTICS|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_SP-SDK-KTICS|Win32.Build.0 = Release_SP-SDK-KTICS|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_SP-SDK-KTICS|x64.ActiveCfg = Release_SP-SDK-KTICS|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_SP-SDK-KTICS|x64.Build.0 = Release_SP-SDK-KTICS|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Release_SP-SDK-X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Release_SP-SDK-X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_SP-SDK-X-CDN|Win32.ActiveCfg = Release_SP-SDK-X-CDN|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_SP-SDK-X-CDN|Win32.Build.0 = Release_SP-SDK-X-CDN|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_SP-SDK-X-CDN|x64.ActiveCfg = Release_SP-SDK-X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_SP-SDK-X-CDN|x64.Build.0 = Release_SP-SDK-X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_X-CDN|Mixed Platforms.ActiveCfg = Release_X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_X-CDN|Mixed Platforms.Build.0 = Release_X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_X-CDN|Win32.ActiveCfg = Release_X-CDN|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_X-CDN|Win32.Build.0 = Release_X-CDN|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_X-CDN|x64.ActiveCfg = Release_X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_X-CDN|x64.Build.0 = Release_X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release|Mixed Platforms.ActiveCfg = Release|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release|Mixed Platforms.Build.0 = Release|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release|Win32.ActiveCfg = Release|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release|Win32.Build.0 = Release|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release|x64.ActiveCfg = Release|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release|x64.Build.0 = Release|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Debug_SP-SDK-KTICS|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_SP-SDK-KTICS|Mixed Platforms.Build.0 = Debug_SP-SDK-KTICS|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_SP-SDK-KTICS|Win32.ActiveCfg = Debug_SP-SDK-KTICS|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_SP-SDK-KTICS|Win32.Build.0 = Debug_SP-SDK-KTICS|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_SP-SDK-KTICS|x64.ActiveCfg = Debug_SP-SDK-KTICS|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_SP-SDK-KTICS|x64.Build.0 = Debug_SP-SDK-KTICS|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Debug_SP-SDK-X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Debug_SP-SDK-X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_SP-SDK-X-CDN|Win32.ActiveCfg = Debug_SP-SDK-X-CDN|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_SP-SDK-X-CDN|Win32.Build.0 = Debug_SP-SDK-X-CDN|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_SP-SDK-X-CDN|x64.ActiveCfg = Debug_SP-SDK-X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_SP-SDK-X-CDN|x64.Build.0 = Debug_SP-SDK-X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_X-CDN|Mixed Platforms.ActiveCfg = Debug_SP-SDK-X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_X-CDN|Mixed Platforms.Build.0 = Debug_SP-SDK-X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_X-CDN|Win32.ActiveCfg = Debug_X-CDN|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_X-CDN|Win32.Build.0 = Debug_X-CDN|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_X-CDN|x64.ActiveCfg = Debug_X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_X-CDN|x64.Build.0 = Debug_X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug|Mixed Platforms.Build.0 = Debug|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug|Win32.ActiveCfg = Debug|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug|Win32.Build.0 = Debug|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug|x64.ActiveCfg = Debug|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug|x64.Build.0 = Debug|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Release_SP-SDK-KTICS|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_SP-SDK-KTICS|Mixed Platforms.Build.0 = Release_SP-SDK-KTICS|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_SP-SDK-KTICS|Win32.ActiveCfg = Release_SP-SDK-KTICS|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_SP-SDK-KTICS|Win32.Build.0 = Release_SP-SDK-KTICS|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_SP-SDK-KTICS|x64.ActiveCfg = Release_SP-SDK-KTICS|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_SP-SDK-KTICS|x64.Build.0 = Release_SP-SDK-KTICS|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Release_SP-SDK-X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Release_SP-SDK-X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_SP-SDK-X-CDN|Win32.ActiveCfg = Release_SP-SDK-X-CDN|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_SP-SDK-X-CDN|Win32.Build.0 = Release_SP-SDK-X-CDN|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_SP-SDK-X-CDN|x64.ActiveCfg = Release_SP-SDK-X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_SP-SDK-X-CDN|x64.Build.0 = Release_SP-SDK-X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_X-CDN|Mixed Platforms.ActiveCfg = Release_SP-SDK-X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_X-CDN|Mixed Platforms.Build.0 = Release_SP-SDK-X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_X-CDN|Win32.ActiveCfg = Release_X-CDN|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_X-CDN|Win32.Build.0 = Release_X-CDN|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_X-CDN|x64.ActiveCfg = Release_X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_X-CDN|x64.Build.0 = Release_X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release|Mixed Platforms.ActiveCfg = Release|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release|Mixed Platforms.Build.0 = Release|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release|Win32.ActiveCfg = Release|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release|Win32.Build.0 = Release|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release|x64.ActiveCfg = Release|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release|x64.Build.0 = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_SP-SDK-KTICS|Mixed Platforms.Build.0 = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_SP-SDK-KTICS|Win32.ActiveCfg = Debug|x86
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_SP-SDK-KTICS|x64.ActiveCfg = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_SP-SDK-KTICS|x64.Build.0 = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_SP-SDK-X-CDN|Win32.ActiveCfg = Debug|x86
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_SP-SDK-X-CDN|x64.ActiveCfg = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_SP-SDK-X-CDN|x64.Build.0 = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_X-CDN|Mixed Platforms.ActiveCfg = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_X-CDN|Mixed Platforms.Build.0 = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_X-CDN|Win32.ActiveCfg = Debug|x86
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_X-CDN|Win32.Build.0 = Debug|x86
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_X-CDN|x64.ActiveCfg = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_X-CDN|x64.Build.0 = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug|Mixed Platforms.Build.0 = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug|Win32.ActiveCfg = Debug|x86
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug|Win32.Build.0 = Debug|x86
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug|x64.ActiveCfg = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug|x64.Build.0 = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_SP-SDK-KTICS|Mixed Platforms.Build.0 = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_SP-SDK-KTICS|Win32.ActiveCfg = Release|x86
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_SP-SDK-KTICS|x64.ActiveCfg = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_SP-SDK-KTICS|x64.Build.0 = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_SP-SDK-X-CDN|Win32.ActiveCfg = Release|x86
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_SP-SDK-X-CDN|x64.ActiveCfg = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_SP-SDK-X-CDN|x64.Build.0 = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_X-CDN|Mixed Platforms.ActiveCfg = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_X-CDN|Mixed Platforms.Build.0 = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_X-CDN|Win32.ActiveCfg = Release|x86
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_X-CDN|Win32.Build.0 = Release|x86
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_X-CDN|x64.ActiveCfg = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_X-CDN|x64.Build.0 = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release|Mixed Platforms.ActiveCfg = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release|Mixed Platforms.Build.0 = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release|Win32.ActiveCfg = Release|x86
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release|Win32.Build.0 = Release|x86
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release|x64.ActiveCfg = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release|x64.Build.0 = Release|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Debug_SP-SDK-KTICS|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_SP-SDK-KTICS|Mixed Platforms.Build.0 = Debug_SP-SDK-KTICS|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_SP-SDK-KTICS|Win32.ActiveCfg = Debug_SP-SDK-KTICS|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_SP-SDK-KTICS|Win32.Build.0 = Debug_SP-SDK-KTICS|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_SP-SDK-KTICS|x64.ActiveCfg = Debug_SP-SDK-KTICS|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_SP-SDK-KTICS|x64.Build.0 = Debug_SP-SDK-KTICS|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Debug_SP-SDK-X-CDN|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Debug_SP-SDK-X-CDN|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_SP-SDK-X-CDN|Win32.ActiveCfg = Debug_SP-SDK-X-CDN|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_SP-SDK-X-CDN|Win32.Build.0 = Debug_SP-SDK-X-CDN|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_SP-SDK-X-CDN|x64.ActiveCfg = Debug_SP-SDK-X-CDN|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_SP-SDK-X-CDN|x64.Build.0 = Debug_SP-SDK-X-CDN|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_X-CDN|Mixed Platforms.ActiveCfg = Debug_X-CDN|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_X-CDN|Mixed Platforms.Build.0 = Debug_X-CDN|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_X-CDN|Win32.ActiveCfg = Debug_X-CDN|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_X-CDN|Win32.Build.0 = Debug_X-CDN|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_X-CDN|x64.ActiveCfg = Debug_X-CDN|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_X-CDN|x64.Build.0 = Debug_X-CDN|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug|Win32.ActiveCfg = Debug|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug|Win32.Build.0 = Debug|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug|x64.ActiveCfg = Debug|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Release_SP-SDK-KTICS|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_SP-SDK-KTICS|Mixed Platforms.Build.0 = Release_SP-SDK-KTICS|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_SP-SDK-KTICS|Win32.ActiveCfg = Release_SP-SDK-KTICS|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_SP-SDK-KTICS|Win32.Build.0 = Release_SP-SDK-KTICS|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_SP-SDK-KTICS|x64.ActiveCfg = Release_SP-SDK-KTICS|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_SP-SDK-KTICS|x64.Build.0 = Release_SP-SDK-KTICS|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Release_SP-SDK-X-CDN|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Release_SP-SDK-X-CDN|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_SP-SDK-X-CDN|Win32.ActiveCfg = Release_SP-SDK-X-CDN|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_SP-SDK-X-CDN|Win32.Build.0 = Release_SP-SDK-X-CDN|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_SP-SDK-X-CDN|x64.ActiveCfg = Release_SP-SDK-X-CDN|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_SP-SDK-X-CDN|x64.Build.0 = Release_SP-SDK-X-CDN|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_X-CDN|Mixed Platforms.ActiveCfg = Release|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_X-CDN|Mixed Platforms.Build.0 = Release|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_X-CDN|Win32.ActiveCfg = Release_X-CDN|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_X-CDN|Win32.Build.0 = Release_X-CDN|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_X-CDN|x64.ActiveCfg = Release_X-CDN|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_X-CDN|x64.Build.0 = Release_X-CDN|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release|Mixed Platforms.Build.0 = Release|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release|Win32.ActiveCfg = Release|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release|Win32.Build.0 = Release|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release|x64.ActiveCfg = Release|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
+442
View File
@@ -0,0 +1,442 @@
Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{D2C8805B-724B-4B04-97A8-3E5CA721C50A}"
ProjectSection(SolutionItems) = preProject
..\..\ChangLog.txt = ..\..\ChangLog.txt
..\Makefile = ..\Makefile
..\libs\README.txt = ..\libs\README.txt
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libneon", "libneon\libneon_vs90.vcproj", "{7F093948-4D4A-442C-80F9-D61BC4B98C9D}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libexpat", "libexpat\libexpat_vs90.vcproj", "{E4495C87-9B44-4A66-8946-E5DB8AA99F51}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmcrypt", "libmcrypt\libmcrypt_vs90.vcproj", "{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SHCSDK", "SHCSDK\SHCSDK_vs90.vcproj", "{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SHSSDK", "SHSSDK\SHSSDK_vs90.vcproj", "{CD7BE34D-4D9C-41DF-B136-56B75D97467F}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_agent", "test_agent\test_agent_vs90.vcproj", "{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSharp_Support_vs90", "CSharp_Support\CSharp_Support_vs90.csproj", "{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SHSSDK.Static", "SHSSDK.Static\SHSSDK.Static_vs90.vcproj", "{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}"
EndProject
Global
GlobalSection(SubversionScc) = preSolution
Svn-Managed = True
Manager = AnkhSVN - Subversion Support for Visual Studio
EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug_SP-SDK-KTICS|Mixed Platforms = Debug_SP-SDK-KTICS|Mixed Platforms
Debug_SP-SDK-KTICS|Win32 = Debug_SP-SDK-KTICS|Win32
Debug_SP-SDK-KTICS|x64 = Debug_SP-SDK-KTICS|x64
Debug_SP-SDK-X-CDN|Mixed Platforms = Debug_SP-SDK-X-CDN|Mixed Platforms
Debug_SP-SDK-X-CDN|Win32 = Debug_SP-SDK-X-CDN|Win32
Debug_SP-SDK-X-CDN|x64 = Debug_SP-SDK-X-CDN|x64
Debug_X-CDN|Mixed Platforms = Debug_X-CDN|Mixed Platforms
Debug_X-CDN|Win32 = Debug_X-CDN|Win32
Debug_X-CDN|x64 = Debug_X-CDN|x64
Debug|Mixed Platforms = Debug|Mixed Platforms
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Release_SP-SDK-KTICS|Mixed Platforms = Release_SP-SDK-KTICS|Mixed Platforms
Release_SP-SDK-KTICS|Win32 = Release_SP-SDK-KTICS|Win32
Release_SP-SDK-KTICS|x64 = Release_SP-SDK-KTICS|x64
Release_SP-SDK-X-CDN|Mixed Platforms = Release_SP-SDK-X-CDN|Mixed Platforms
Release_SP-SDK-X-CDN|Win32 = Release_SP-SDK-X-CDN|Win32
Release_SP-SDK-X-CDN|x64 = Release_SP-SDK-X-CDN|x64
Release_X-CDN|Mixed Platforms = Release_X-CDN|Mixed Platforms
Release_X-CDN|Win32 = Release_X-CDN|Win32
Release_X-CDN|x64 = Release_X-CDN|x64
Release|Mixed Platforms = Release|Mixed Platforms
Release|Win32 = Release|Win32
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_SP-SDK-KTICS|Mixed Platforms.Build.0 = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_SP-SDK-KTICS|Win32.ActiveCfg = Debug|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_SP-SDK-KTICS|Win32.Build.0 = Debug|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_SP-SDK-KTICS|x64.ActiveCfg = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_SP-SDK-KTICS|x64.Build.0 = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_SP-SDK-X-CDN|Win32.ActiveCfg = Debug|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_SP-SDK-X-CDN|Win32.Build.0 = Debug|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_SP-SDK-X-CDN|x64.ActiveCfg = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_SP-SDK-X-CDN|x64.Build.0 = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_X-CDN|Mixed Platforms.ActiveCfg = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_X-CDN|Mixed Platforms.Build.0 = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_X-CDN|Win32.ActiveCfg = Debug|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_X-CDN|Win32.Build.0 = Debug|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_X-CDN|x64.ActiveCfg = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug_X-CDN|x64.Build.0 = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug|Mixed Platforms.Build.0 = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug|Win32.ActiveCfg = Debug|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug|Win32.Build.0 = Debug|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug|x64.ActiveCfg = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Debug|x64.Build.0 = Debug|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_SP-SDK-KTICS|Mixed Platforms.Build.0 = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_SP-SDK-KTICS|Win32.ActiveCfg = Release|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_SP-SDK-KTICS|Win32.Build.0 = Release|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_SP-SDK-KTICS|x64.ActiveCfg = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_SP-SDK-KTICS|x64.Build.0 = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_SP-SDK-X-CDN|Win32.ActiveCfg = Release|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_SP-SDK-X-CDN|Win32.Build.0 = Release|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_SP-SDK-X-CDN|x64.ActiveCfg = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_SP-SDK-X-CDN|x64.Build.0 = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_X-CDN|Mixed Platforms.ActiveCfg = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_X-CDN|Mixed Platforms.Build.0 = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_X-CDN|Win32.ActiveCfg = Release|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_X-CDN|Win32.Build.0 = Release|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_X-CDN|x64.ActiveCfg = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release_X-CDN|x64.Build.0 = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release|Mixed Platforms.ActiveCfg = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release|Mixed Platforms.Build.0 = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release|Win32.ActiveCfg = Release|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release|Win32.Build.0 = Release|Win32
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release|x64.ActiveCfg = Release|x64
{7F093948-4D4A-442C-80F9-D61BC4B98C9D}.Release|x64.Build.0 = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_SP-SDK-KTICS|Mixed Platforms.Build.0 = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_SP-SDK-KTICS|Win32.ActiveCfg = Debug|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_SP-SDK-KTICS|Win32.Build.0 = Debug|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_SP-SDK-KTICS|x64.ActiveCfg = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_SP-SDK-KTICS|x64.Build.0 = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_SP-SDK-X-CDN|Win32.ActiveCfg = Debug|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_SP-SDK-X-CDN|Win32.Build.0 = Debug|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_SP-SDK-X-CDN|x64.ActiveCfg = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_SP-SDK-X-CDN|x64.Build.0 = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_X-CDN|Mixed Platforms.ActiveCfg = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_X-CDN|Mixed Platforms.Build.0 = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_X-CDN|Win32.ActiveCfg = Debug|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_X-CDN|Win32.Build.0 = Debug|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_X-CDN|x64.ActiveCfg = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug_X-CDN|x64.Build.0 = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug|Mixed Platforms.Build.0 = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug|Win32.ActiveCfg = Debug|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug|Win32.Build.0 = Debug|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug|x64.ActiveCfg = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Debug|x64.Build.0 = Debug|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_SP-SDK-KTICS|Mixed Platforms.Build.0 = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_SP-SDK-KTICS|Win32.ActiveCfg = Release|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_SP-SDK-KTICS|Win32.Build.0 = Release|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_SP-SDK-KTICS|x64.ActiveCfg = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_SP-SDK-KTICS|x64.Build.0 = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_SP-SDK-X-CDN|Win32.ActiveCfg = Release|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_SP-SDK-X-CDN|Win32.Build.0 = Release|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_SP-SDK-X-CDN|x64.ActiveCfg = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_SP-SDK-X-CDN|x64.Build.0 = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_X-CDN|Mixed Platforms.ActiveCfg = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_X-CDN|Mixed Platforms.Build.0 = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_X-CDN|Win32.ActiveCfg = Release|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_X-CDN|Win32.Build.0 = Release|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_X-CDN|x64.ActiveCfg = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release_X-CDN|x64.Build.0 = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release|Mixed Platforms.ActiveCfg = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release|Mixed Platforms.Build.0 = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release|Win32.ActiveCfg = Release|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release|Win32.Build.0 = Release|Win32
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release|x64.ActiveCfg = Release|x64
{E4495C87-9B44-4A66-8946-E5DB8AA99F51}.Release|x64.Build.0 = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_SP-SDK-KTICS|Mixed Platforms.Build.0 = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_SP-SDK-KTICS|Win32.ActiveCfg = Debug|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_SP-SDK-KTICS|Win32.Build.0 = Debug|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_SP-SDK-KTICS|x64.ActiveCfg = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_SP-SDK-KTICS|x64.Build.0 = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_SP-SDK-X-CDN|Win32.ActiveCfg = Debug|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_SP-SDK-X-CDN|Win32.Build.0 = Debug|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_SP-SDK-X-CDN|x64.ActiveCfg = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_SP-SDK-X-CDN|x64.Build.0 = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_X-CDN|Mixed Platforms.ActiveCfg = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_X-CDN|Mixed Platforms.Build.0 = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_X-CDN|Win32.ActiveCfg = Debug|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_X-CDN|Win32.Build.0 = Debug|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_X-CDN|x64.ActiveCfg = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug_X-CDN|x64.Build.0 = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug|Mixed Platforms.Build.0 = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug|Win32.ActiveCfg = Debug|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug|Win32.Build.0 = Debug|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug|x64.ActiveCfg = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Debug|x64.Build.0 = Debug|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_SP-SDK-KTICS|Mixed Platforms.Build.0 = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_SP-SDK-KTICS|Win32.ActiveCfg = Release|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_SP-SDK-KTICS|Win32.Build.0 = Release|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_SP-SDK-KTICS|x64.ActiveCfg = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_SP-SDK-KTICS|x64.Build.0 = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_SP-SDK-X-CDN|Win32.ActiveCfg = Release|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_SP-SDK-X-CDN|Win32.Build.0 = Release|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_SP-SDK-X-CDN|x64.ActiveCfg = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_SP-SDK-X-CDN|x64.Build.0 = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_X-CDN|Mixed Platforms.ActiveCfg = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_X-CDN|Mixed Platforms.Build.0 = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_X-CDN|Win32.ActiveCfg = Release|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_X-CDN|Win32.Build.0 = Release|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_X-CDN|x64.ActiveCfg = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release_X-CDN|x64.Build.0 = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release|Mixed Platforms.ActiveCfg = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release|Mixed Platforms.Build.0 = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release|Win32.ActiveCfg = Release|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release|Win32.Build.0 = Release|Win32
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release|x64.ActiveCfg = Release|x64
{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}.Release|x64.Build.0 = Release|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Debug_SP-SDK-KTICS|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_SP-SDK-KTICS|Mixed Platforms.Build.0 = Debug_SP-SDK-KTICS|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_SP-SDK-KTICS|Win32.ActiveCfg = Debug_SP-SDK-KTICS|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_SP-SDK-KTICS|Win32.Build.0 = Debug_SP-SDK-KTICS|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_SP-SDK-KTICS|x64.ActiveCfg = Debug_SP-SDK-KTICS|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_SP-SDK-KTICS|x64.Build.0 = Debug_SP-SDK-KTICS|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Debug_SP-SDK-X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Debug_SP-SDK-X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_SP-SDK-X-CDN|Win32.ActiveCfg = Debug_SP-SDK-X-CDN|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_SP-SDK-X-CDN|Win32.Build.0 = Debug_SP-SDK-X-CDN|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_SP-SDK-X-CDN|x64.ActiveCfg = Debug_SP-SDK-X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_SP-SDK-X-CDN|x64.Build.0 = Debug_SP-SDK-X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_X-CDN|Mixed Platforms.ActiveCfg = Debug_X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_X-CDN|Mixed Platforms.Build.0 = Debug_X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_X-CDN|Win32.ActiveCfg = Debug_X-CDN|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_X-CDN|Win32.Build.0 = Debug_X-CDN|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_X-CDN|x64.ActiveCfg = Debug_X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug_X-CDN|x64.Build.0 = Debug_X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug|Mixed Platforms.Build.0 = Debug|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug|Win32.ActiveCfg = Debug|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug|Win32.Build.0 = Debug|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug|x64.ActiveCfg = Debug|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Debug|x64.Build.0 = Debug|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Release_SP-SDK-KTICS|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_SP-SDK-KTICS|Mixed Platforms.Build.0 = Release_SP-SDK-KTICS|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_SP-SDK-KTICS|Win32.ActiveCfg = Release_SP-SDK-KTICS|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_SP-SDK-KTICS|Win32.Build.0 = Release_SP-SDK-KTICS|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_SP-SDK-KTICS|x64.ActiveCfg = Release_SP-SDK-KTICS|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_SP-SDK-KTICS|x64.Build.0 = Release_SP-SDK-KTICS|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Release_SP-SDK-X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Release_SP-SDK-X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_SP-SDK-X-CDN|Win32.ActiveCfg = Release_SP-SDK-X-CDN|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_SP-SDK-X-CDN|Win32.Build.0 = Release_SP-SDK-X-CDN|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_SP-SDK-X-CDN|x64.ActiveCfg = Release_SP-SDK-X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_SP-SDK-X-CDN|x64.Build.0 = Release_SP-SDK-X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_X-CDN|Mixed Platforms.ActiveCfg = Release_X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_X-CDN|Mixed Platforms.Build.0 = Release_X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_X-CDN|Win32.ActiveCfg = Release_X-CDN|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_X-CDN|Win32.Build.0 = Release_X-CDN|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_X-CDN|x64.ActiveCfg = Release_X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release_X-CDN|x64.Build.0 = Release_X-CDN|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release|Mixed Platforms.ActiveCfg = Release|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release|Mixed Platforms.Build.0 = Release|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release|Win32.ActiveCfg = Release|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release|Win32.Build.0 = Release|Win32
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release|x64.ActiveCfg = Release|x64
{1496C3C9-A784-4C77-AD25-C58E57F6E1A2}.Release|x64.Build.0 = Release|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Debug_SP-SDK-KTICS|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_SP-SDK-KTICS|Mixed Platforms.Build.0 = Debug_SP-SDK-KTICS|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_SP-SDK-KTICS|Win32.ActiveCfg = Debug_SP-SDK-KTICS|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_SP-SDK-KTICS|Win32.Build.0 = Debug_SP-SDK-KTICS|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_SP-SDK-KTICS|x64.ActiveCfg = Debug_SP-SDK-KTICS|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_SP-SDK-KTICS|x64.Build.0 = Debug_SP-SDK-KTICS|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Debug_SP-SDK-X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Debug_SP-SDK-X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_SP-SDK-X-CDN|Win32.ActiveCfg = Debug_SP-SDK-X-CDN|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_SP-SDK-X-CDN|Win32.Build.0 = Debug_SP-SDK-X-CDN|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_SP-SDK-X-CDN|x64.ActiveCfg = Debug_SP-SDK-X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_SP-SDK-X-CDN|x64.Build.0 = Debug_SP-SDK-X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_X-CDN|Mixed Platforms.ActiveCfg = Debug_X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_X-CDN|Mixed Platforms.Build.0 = Debug_X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_X-CDN|Win32.ActiveCfg = Debug_X-CDN|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_X-CDN|Win32.Build.0 = Debug_X-CDN|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_X-CDN|x64.ActiveCfg = Debug_X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug_X-CDN|x64.Build.0 = Debug_X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug|Mixed Platforms.Build.0 = Debug|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug|Win32.ActiveCfg = Debug|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug|Win32.Build.0 = Debug|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug|x64.ActiveCfg = Debug|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Debug|x64.Build.0 = Debug|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Release_SP-SDK-KTICS|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_SP-SDK-KTICS|Mixed Platforms.Build.0 = Release_SP-SDK-KTICS|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_SP-SDK-KTICS|Win32.ActiveCfg = Release_SP-SDK-KTICS|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_SP-SDK-KTICS|Win32.Build.0 = Release_SP-SDK-KTICS|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_SP-SDK-KTICS|x64.ActiveCfg = Release_SP-SDK-KTICS|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_SP-SDK-KTICS|x64.Build.0 = Release_SP-SDK-KTICS|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Release_SP-SDK-X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Release_SP-SDK-X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_SP-SDK-X-CDN|Win32.ActiveCfg = Release_SP-SDK-X-CDN|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_SP-SDK-X-CDN|Win32.Build.0 = Release_SP-SDK-X-CDN|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_SP-SDK-X-CDN|x64.ActiveCfg = Release_SP-SDK-X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_SP-SDK-X-CDN|x64.Build.0 = Release_SP-SDK-X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_X-CDN|Mixed Platforms.ActiveCfg = Release_X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_X-CDN|Mixed Platforms.Build.0 = Release_X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_X-CDN|Win32.ActiveCfg = Release_X-CDN|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_X-CDN|Win32.Build.0 = Release_X-CDN|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_X-CDN|x64.ActiveCfg = Release_X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release_X-CDN|x64.Build.0 = Release_X-CDN|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release|Mixed Platforms.ActiveCfg = Release|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release|Mixed Platforms.Build.0 = Release|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release|Win32.ActiveCfg = Release|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release|Win32.Build.0 = Release|Win32
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release|x64.ActiveCfg = Release|x64
{CD7BE34D-4D9C-41DF-B136-56B75D97467F}.Release|x64.Build.0 = Release|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Debug_SP-SDK-KTICS|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_SP-SDK-KTICS|Mixed Platforms.Build.0 = Debug_SP-SDK-KTICS|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_SP-SDK-KTICS|Win32.ActiveCfg = Debug_SP-SDK-KTICS|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_SP-SDK-KTICS|Win32.Build.0 = Debug_SP-SDK-KTICS|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_SP-SDK-KTICS|x64.ActiveCfg = Debug_SP-SDK-KTICS|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_SP-SDK-KTICS|x64.Build.0 = Debug_SP-SDK-KTICS|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Debug_SP-SDK-X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Debug_SP-SDK-X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_SP-SDK-X-CDN|Win32.ActiveCfg = Debug_SP-SDK-X-CDN|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_SP-SDK-X-CDN|Win32.Build.0 = Debug_SP-SDK-X-CDN|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_SP-SDK-X-CDN|x64.ActiveCfg = Debug_SP-SDK-X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_SP-SDK-X-CDN|x64.Build.0 = Debug_SP-SDK-X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_X-CDN|Mixed Platforms.ActiveCfg = Debug_SP-SDK-X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_X-CDN|Mixed Platforms.Build.0 = Debug_SP-SDK-X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_X-CDN|Win32.ActiveCfg = Debug_X-CDN|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_X-CDN|Win32.Build.0 = Debug_X-CDN|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_X-CDN|x64.ActiveCfg = Debug_X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug_X-CDN|x64.Build.0 = Debug_X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug|Mixed Platforms.Build.0 = Debug|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug|Win32.ActiveCfg = Debug|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug|Win32.Build.0 = Debug|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug|x64.ActiveCfg = Debug|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Debug|x64.Build.0 = Debug|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Release_SP-SDK-KTICS|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_SP-SDK-KTICS|Mixed Platforms.Build.0 = Release_SP-SDK-KTICS|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_SP-SDK-KTICS|Win32.ActiveCfg = Release_SP-SDK-KTICS|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_SP-SDK-KTICS|Win32.Build.0 = Release_SP-SDK-KTICS|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_SP-SDK-KTICS|x64.ActiveCfg = Release_SP-SDK-KTICS|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_SP-SDK-KTICS|x64.Build.0 = Release_SP-SDK-KTICS|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Release_SP-SDK-X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Release_SP-SDK-X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_SP-SDK-X-CDN|Win32.ActiveCfg = Release_SP-SDK-X-CDN|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_SP-SDK-X-CDN|Win32.Build.0 = Release_SP-SDK-X-CDN|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_SP-SDK-X-CDN|x64.ActiveCfg = Release_SP-SDK-X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_SP-SDK-X-CDN|x64.Build.0 = Release_SP-SDK-X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_X-CDN|Mixed Platforms.ActiveCfg = Release_SP-SDK-X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_X-CDN|Mixed Platforms.Build.0 = Release_SP-SDK-X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_X-CDN|Win32.ActiveCfg = Release_X-CDN|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_X-CDN|Win32.Build.0 = Release_X-CDN|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_X-CDN|x64.ActiveCfg = Release_X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release_X-CDN|x64.Build.0 = Release_X-CDN|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release|Mixed Platforms.ActiveCfg = Release|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release|Mixed Platforms.Build.0 = Release|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release|Win32.ActiveCfg = Release|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release|Win32.Build.0 = Release|Win32
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release|x64.ActiveCfg = Release|x64
{AD9F0C8F-DB80-48D7-BC2D-D670D316FB71}.Release|x64.Build.0 = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_SP-SDK-KTICS|Mixed Platforms.Build.0 = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_SP-SDK-KTICS|Win32.ActiveCfg = Debug|x86
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_SP-SDK-KTICS|x64.ActiveCfg = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_SP-SDK-KTICS|x64.Build.0 = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_SP-SDK-X-CDN|Win32.ActiveCfg = Debug|x86
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_SP-SDK-X-CDN|x64.ActiveCfg = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_SP-SDK-X-CDN|x64.Build.0 = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_X-CDN|Mixed Platforms.ActiveCfg = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_X-CDN|Mixed Platforms.Build.0 = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_X-CDN|Win32.ActiveCfg = Debug|x86
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_X-CDN|Win32.Build.0 = Debug|x86
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_X-CDN|x64.ActiveCfg = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug_X-CDN|x64.Build.0 = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug|Mixed Platforms.Build.0 = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug|Win32.ActiveCfg = Debug|x86
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug|Win32.Build.0 = Debug|x86
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug|x64.ActiveCfg = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Debug|x64.Build.0 = Debug|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_SP-SDK-KTICS|Mixed Platforms.Build.0 = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_SP-SDK-KTICS|Win32.ActiveCfg = Release|x86
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_SP-SDK-KTICS|x64.ActiveCfg = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_SP-SDK-KTICS|x64.Build.0 = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_SP-SDK-X-CDN|Win32.ActiveCfg = Release|x86
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_SP-SDK-X-CDN|x64.ActiveCfg = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_SP-SDK-X-CDN|x64.Build.0 = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_X-CDN|Mixed Platforms.ActiveCfg = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_X-CDN|Mixed Platforms.Build.0 = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_X-CDN|Win32.ActiveCfg = Release|x86
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_X-CDN|Win32.Build.0 = Release|x86
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_X-CDN|x64.ActiveCfg = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release_X-CDN|x64.Build.0 = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release|Mixed Platforms.ActiveCfg = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release|Mixed Platforms.Build.0 = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release|Win32.ActiveCfg = Release|x86
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release|Win32.Build.0 = Release|x86
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release|x64.ActiveCfg = Release|x64
{2FCF637F-16AB-4FE4-940C-0475A2D9D04B}.Release|x64.Build.0 = Release|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Debug_SP-SDK-KTICS|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_SP-SDK-KTICS|Mixed Platforms.Build.0 = Debug_SP-SDK-KTICS|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_SP-SDK-KTICS|Win32.ActiveCfg = Debug_SP-SDK-KTICS|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_SP-SDK-KTICS|Win32.Build.0 = Debug_SP-SDK-KTICS|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_SP-SDK-KTICS|x64.ActiveCfg = Debug_SP-SDK-KTICS|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_SP-SDK-KTICS|x64.Build.0 = Debug_SP-SDK-KTICS|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Debug_SP-SDK-X-CDN|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Debug_SP-SDK-X-CDN|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_SP-SDK-X-CDN|Win32.ActiveCfg = Debug_SP-SDK-X-CDN|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_SP-SDK-X-CDN|Win32.Build.0 = Debug_SP-SDK-X-CDN|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_SP-SDK-X-CDN|x64.ActiveCfg = Debug_SP-SDK-X-CDN|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_SP-SDK-X-CDN|x64.Build.0 = Debug_SP-SDK-X-CDN|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_X-CDN|Mixed Platforms.ActiveCfg = Debug_X-CDN|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_X-CDN|Mixed Platforms.Build.0 = Debug_X-CDN|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_X-CDN|Win32.ActiveCfg = Debug_X-CDN|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_X-CDN|Win32.Build.0 = Debug_X-CDN|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_X-CDN|x64.ActiveCfg = Debug_X-CDN|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug_X-CDN|x64.Build.0 = Debug_X-CDN|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug|Win32.ActiveCfg = Debug|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug|Win32.Build.0 = Debug|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Debug|x64.ActiveCfg = Debug|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_SP-SDK-KTICS|Mixed Platforms.ActiveCfg = Release_SP-SDK-KTICS|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_SP-SDK-KTICS|Mixed Platforms.Build.0 = Release_SP-SDK-KTICS|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_SP-SDK-KTICS|Win32.ActiveCfg = Release_SP-SDK-KTICS|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_SP-SDK-KTICS|Win32.Build.0 = Release_SP-SDK-KTICS|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_SP-SDK-KTICS|x64.ActiveCfg = Release_SP-SDK-KTICS|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_SP-SDK-KTICS|x64.Build.0 = Release_SP-SDK-KTICS|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_SP-SDK-X-CDN|Mixed Platforms.ActiveCfg = Release_SP-SDK-X-CDN|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_SP-SDK-X-CDN|Mixed Platforms.Build.0 = Release_SP-SDK-X-CDN|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_SP-SDK-X-CDN|Win32.ActiveCfg = Release_SP-SDK-X-CDN|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_SP-SDK-X-CDN|Win32.Build.0 = Release_SP-SDK-X-CDN|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_SP-SDK-X-CDN|x64.ActiveCfg = Release_SP-SDK-X-CDN|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_SP-SDK-X-CDN|x64.Build.0 = Release_SP-SDK-X-CDN|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_X-CDN|Mixed Platforms.ActiveCfg = Release|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_X-CDN|Mixed Platforms.Build.0 = Release|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_X-CDN|Win32.ActiveCfg = Release_X-CDN|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_X-CDN|Win32.Build.0 = Release_X-CDN|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_X-CDN|x64.ActiveCfg = Release_X-CDN|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release_X-CDN|x64.Build.0 = Release_X-CDN|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release|Mixed Platforms.Build.0 = Release|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release|Win32.ActiveCfg = Release|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release|Win32.Build.0 = Release|Win32
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release|x64.ActiveCfg = Release|x64
{39A0F379-B46E-4671-B1DC-0B2FE3B5AE25}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
+22
View File
@@ -0,0 +1,22 @@
========================================================================
STATIC LIBRARY : libexpat Project Overview
========================================================================
AppWizard has created this libexpat library project for you.
No source files were created as part of your project.
libexpat.vcproj
This is the main project file for VC++ projects generated using an Application Wizard.
It contains information about the version of Visual C++ that generated the file, and
information about the platforms, configurations, and project features selected with the
Application Wizard.
/////////////////////////////////////////////////////////////////////////////
Other notes:
AppWizard uses "TODO:" comments to indicate parts of the source code you
should add to or customize.
/////////////////////////////////////////////////////////////////////////////
@@ -0,0 +1,186 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>libexpat</ProjectName>
<ProjectGuid>{E4495C87-9B44-4A66-8946-E5DB8AA99F51}</ProjectGuid>
<RootNamespace>libexpat</RootNamespace>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir>
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_WINDOWS;COMPILED_FROM_DSP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Lib>
<OutputFile>../win32/bin/Debug/libexpatMT.lib</OutputFile>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_WIN32;_WIN64;WIN64;_DEBUG;_LIB;_WINDOWS;COMPILED_FROM_DSP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Lib>
<AdditionalOptions>/MACHINE:X64 %(AdditionalOptions)</AdditionalOptions>
<OutputFile>../win64/bin/Debug/libexpatMT.lib</OutputFile>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_WINDOWS;COMPILED_FROM_DSP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Lib>
<OutputFile>../win32/bin/Release/libexpatMT.lib</OutputFile>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>_WIN32;_WIN64;WIN64;NDEBUG;_LIB;_WINDOWS;COMPILED_FROM_DSP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Lib>
<OutputFile>../win64/bin/Release/libexpatMT.lib</OutputFile>
</Lib>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\libs\expat-2.0.1\lib\xmlparse.c" />
<ClCompile Include="..\..\libs\expat-2.0.1\lib\xmlrole.c" />
<ClCompile Include="..\..\libs\expat-2.0.1\lib\xmltok.c" />
<ClCompile Include="..\..\libs\expat-2.0.1\lib\xmltok_impl.c" />
<ClCompile Include="..\..\libs\expat-2.0.1\lib\xmltok_ns.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\libs\expat-2.0.1\lib\amigaconfig.h" />
<ClInclude Include="..\..\libs\expat-2.0.1\lib\ascii.h" />
<ClInclude Include="..\..\libs\expat-2.0.1\lib\asciitab.h" />
<ClInclude Include="..\..\libs\expat-2.0.1\lib\expat.h" />
<ClInclude Include="..\..\libs\expat-2.0.1\lib\expat_external.h" />
<ClInclude Include="..\..\libs\expat-2.0.1\lib\iasciitab.h" />
<ClInclude Include="..\..\libs\expat-2.0.1\lib\internal.h" />
<ClInclude Include="..\..\libs\expat-2.0.1\lib\latin1tab.h" />
<ClInclude Include="..\..\libs\expat-2.0.1\lib\macconfig.h" />
<ClInclude Include="..\..\libs\expat-2.0.1\lib\nametab.h" />
<ClInclude Include="..\..\libs\expat-2.0.1\lib\utf8tab.h" />
<ClInclude Include="..\..\libs\expat-2.0.1\lib\winconfig.h" />
<ClInclude Include="..\..\libs\expat-2.0.1\lib\xmlrole.h" />
<ClInclude Include="..\..\libs\expat-2.0.1\lib\xmltok.h" />
<ClInclude Include="..\..\libs\expat-2.0.1\lib\xmltok_impl.h" />
</ItemGroup>
<ItemGroup>
<None Include="ReadMe.txt" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
@@ -0,0 +1,84 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\libs\expat-2.0.1\lib\xmlparse.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\libs\expat-2.0.1\lib\xmlrole.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\libs\expat-2.0.1\lib\xmltok.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\libs\expat-2.0.1\lib\xmltok_impl.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\libs\expat-2.0.1\lib\xmltok_ns.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\libs\expat-2.0.1\lib\amigaconfig.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\expat-2.0.1\lib\ascii.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\expat-2.0.1\lib\asciitab.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\expat-2.0.1\lib\expat.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\expat-2.0.1\lib\expat_external.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\expat-2.0.1\lib\iasciitab.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\expat-2.0.1\lib\internal.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\expat-2.0.1\lib\latin1tab.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\expat-2.0.1\lib\macconfig.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\expat-2.0.1\lib\nametab.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\expat-2.0.1\lib\utf8tab.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\expat-2.0.1\lib\winconfig.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\expat-2.0.1\lib\xmlrole.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\expat-2.0.1\lib\xmltok.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\expat-2.0.1\lib\xmltok_impl.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="ReadMe.txt" />
</ItemGroup>
</Project>
@@ -0,0 +1,384 @@
<?xml version="1.0" encoding="ks_c_5601-1987"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="libexpat"
ProjectGUID="{E4495C87-9B44-4A66-8946-E5DB8AA99F51}"
RootNamespace="libexpat"
Keyword="Win32Proj"
>
<Platforms>
<Platform
Name="Win32"
/>
<Platform
Name="x64"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;_WINDOWS;COMPILED_FROM_DSP"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
OutputFile="../win32/bin/Debug/libexpatMT.lib"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Debug|x64"
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="_WIN32;_WIN64;WIN64;_DEBUG;_LIB;_WINDOWS;COMPILED_FROM_DSP"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
AdditionalOptions="/MACHINE:X64"
OutputFile="../win64/bin/Debug/libexpatMT.lib"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_WINDOWS;COMPILED_FROM_DSP"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
OutputFile="../win32/bin/Release/libexpatMT.lib"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|x64"
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
PreprocessorDefinitions="_WIN32;_WIN64;WIN64;NDEBUG;_LIB;_WINDOWS;COMPILED_FROM_DSP"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
OutputFile="../win64/bin/Release/libexpatMT.lib"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath="..\..\libs\expat-2.0.1\lib\xmlparse.c"
>
</File>
<File
RelativePath="..\..\libs\expat-2.0.1\lib\xmlrole.c"
>
</File>
<File
RelativePath="..\..\libs\expat-2.0.1\lib\xmltok.c"
>
</File>
<File
RelativePath="..\..\libs\expat-2.0.1\lib\xmltok_impl.c"
>
</File>
<File
RelativePath="..\..\libs\expat-2.0.1\lib\xmltok_ns.c"
>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
RelativePath="..\..\libs\expat-2.0.1\lib\amigaconfig.h"
>
</File>
<File
RelativePath="..\..\libs\expat-2.0.1\lib\ascii.h"
>
</File>
<File
RelativePath="..\..\libs\expat-2.0.1\lib\asciitab.h"
>
</File>
<File
RelativePath="..\..\libs\expat-2.0.1\lib\expat.h"
>
</File>
<File
RelativePath="..\..\libs\expat-2.0.1\lib\expat_external.h"
>
</File>
<File
RelativePath="..\..\libs\expat-2.0.1\lib\iasciitab.h"
>
</File>
<File
RelativePath="..\..\libs\expat-2.0.1\lib\internal.h"
>
</File>
<File
RelativePath="..\..\libs\expat-2.0.1\lib\latin1tab.h"
>
</File>
<File
RelativePath="..\..\libs\expat-2.0.1\lib\macconfig.h"
>
</File>
<File
RelativePath="..\..\libs\expat-2.0.1\lib\nametab.h"
>
</File>
<File
RelativePath="..\..\libs\expat-2.0.1\lib\utf8tab.h"
>
</File>
<File
RelativePath="..\..\libs\expat-2.0.1\lib\winconfig.h"
>
</File>
<File
RelativePath="..\..\libs\expat-2.0.1\lib\xmlrole.h"
>
</File>
<File
RelativePath="..\..\libs\expat-2.0.1\lib\xmltok.h"
>
</File>
<File
RelativePath="..\..\libs\expat-2.0.1\lib\xmltok_impl.h"
>
</File>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
<File
RelativePath=".\ReadMe.txt"
>
</File>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
@@ -0,0 +1,385 @@
<?xml version="1.0" encoding="ks_c_5601-1987"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="libexpat"
ProjectGUID="{E4495C87-9B44-4A66-8946-E5DB8AA99F51}"
RootNamespace="libexpat"
Keyword="Win32Proj"
TargetFrameworkVersion="131072"
>
<Platforms>
<Platform
Name="Win32"
/>
<Platform
Name="x64"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;_WINDOWS;COMPILED_FROM_DSP"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
OutputFile="../win32/bin/Debug/libexpatMT.lib"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Debug|x64"
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="_WIN32;_WIN64;WIN64;_DEBUG;_LIB;_WINDOWS;COMPILED_FROM_DSP"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
AdditionalOptions="/MACHINE:X64"
OutputFile="../win64/bin/Debug/libexpatMT.lib"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_WINDOWS;COMPILED_FROM_DSP"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
OutputFile="../win32/bin/Release/libexpatMT.lib"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|x64"
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
PreprocessorDefinitions="_WIN32;_WIN64;WIN64;NDEBUG;_LIB;_WINDOWS;COMPILED_FROM_DSP"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
OutputFile="../win64/bin/Release/libexpatMT.lib"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath="..\..\libs\expat-2.0.1\lib\xmlparse.c"
>
</File>
<File
RelativePath="..\..\libs\expat-2.0.1\lib\xmlrole.c"
>
</File>
<File
RelativePath="..\..\libs\expat-2.0.1\lib\xmltok.c"
>
</File>
<File
RelativePath="..\..\libs\expat-2.0.1\lib\xmltok_impl.c"
>
</File>
<File
RelativePath="..\..\libs\expat-2.0.1\lib\xmltok_ns.c"
>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
RelativePath="..\..\libs\expat-2.0.1\lib\amigaconfig.h"
>
</File>
<File
RelativePath="..\..\libs\expat-2.0.1\lib\ascii.h"
>
</File>
<File
RelativePath="..\..\libs\expat-2.0.1\lib\asciitab.h"
>
</File>
<File
RelativePath="..\..\libs\expat-2.0.1\lib\expat.h"
>
</File>
<File
RelativePath="..\..\libs\expat-2.0.1\lib\expat_external.h"
>
</File>
<File
RelativePath="..\..\libs\expat-2.0.1\lib\iasciitab.h"
>
</File>
<File
RelativePath="..\..\libs\expat-2.0.1\lib\internal.h"
>
</File>
<File
RelativePath="..\..\libs\expat-2.0.1\lib\latin1tab.h"
>
</File>
<File
RelativePath="..\..\libs\expat-2.0.1\lib\macconfig.h"
>
</File>
<File
RelativePath="..\..\libs\expat-2.0.1\lib\nametab.h"
>
</File>
<File
RelativePath="..\..\libs\expat-2.0.1\lib\utf8tab.h"
>
</File>
<File
RelativePath="..\..\libs\expat-2.0.1\lib\winconfig.h"
>
</File>
<File
RelativePath="..\..\libs\expat-2.0.1\lib\xmlrole.h"
>
</File>
<File
RelativePath="..\..\libs\expat-2.0.1\lib\xmltok.h"
>
</File>
<File
RelativePath="..\..\libs\expat-2.0.1\lib\xmltok_impl.h"
>
</File>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
<File
RelativePath=".\ReadMe.txt"
>
</File>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
@@ -0,0 +1,22 @@
========================================================================
STATIC LIBRARY : libmcrypt Project Overview
========================================================================
AppWizard has created this libmcrypt library project for you.
No source files were created as part of your project.
libmcrypt.vcproj
This is the main project file for VC++ projects generated using an Application Wizard.
It contains information about the version of Visual C++ that generated the file, and
information about the platforms, configurations, and project features selected with the
Application Wizard.
/////////////////////////////////////////////////////////////////////////////
Other notes:
AppWizard uses "TODO:" comments to indicate parts of the source code you
should add to or customize.
/////////////////////////////////////////////////////////////////////////////
@@ -0,0 +1,240 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>libmcrypt</ProjectName>
<ProjectGuid>{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}</ProjectGuid>
<RootNamespace>libmcrypt</RootNamespace>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir>
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>../../libs/libmcrypt-2.5.7/lib;../../libs/libmcrypt-2.5.7/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Lib>
<OutputFile>../win32/bin/Debug/libmcrypt.lib</OutputFile>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>../../libs/libmcrypt-2.5.7/lib;../../libs/libmcrypt-2.5.7/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN32;_WIN64;WIN64;WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Lib>
<OutputFile>../win64/bin/Debug/libmcrypt.lib</OutputFile>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>../../libs/libmcrypt-2.5.7/lib;../../libs/libmcrypt-2.5.7/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Lib>
<OutputFile>../win32/bin/Release/libmcrypt.lib</OutputFile>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>../../libs/libmcrypt-2.5.7/lib;../../libs/libmcrypt-2.5.7/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN32;_WIN64;WIN64;WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Lib>
<OutputFile>../win64/bin/Release/libmcrypt.lib</OutputFile>
</Lib>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\libs\libmcrypt-2.5.7\lib\bzero.c" />
<ClCompile Include="..\..\libs\libmcrypt-2.5.7\lib\mcrypt.c" />
<ClCompile Include="..\..\libs\libmcrypt-2.5.7\lib\mcrypt_modules.c" />
<ClCompile Include="..\..\libs\libmcrypt-2.5.7\lib\mcrypt_threads.c" />
<ClCompile Include="..\..\libs\libmcrypt-2.5.7\lib\win32_comp.c" />
<ClCompile Include="..\..\libs\libmcrypt-2.5.7\lib\xmemory.c" />
<ClCompile Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\3-way.c" />
<ClCompile Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\arcfour.c" />
<ClCompile Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\blowfish-compat.c" />
<ClCompile Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\blowfish.c" />
<ClCompile Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\cast-128.c" />
<ClCompile Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\cast-256.c" />
<ClCompile Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\des.c" />
<ClCompile Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\enigma.c" />
<ClCompile Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\gost.c" />
<ClCompile Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\loki97.c" />
<ClCompile Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\panama.c" />
<ClCompile Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\rc2.c" />
<ClCompile Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\rijndael-128.c" />
<ClCompile Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\rijndael-192.c" />
<ClCompile Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\rijndael-256.c" />
<ClCompile Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\safer128.c" />
<ClCompile Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\safer64.c" />
<ClCompile Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\saferplus.c" />
<ClCompile Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\serpent.c" />
<ClCompile Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\tripledes.c" />
<ClCompile Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\twofish.c" />
<ClCompile Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\wake.c" />
<ClCompile Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\xtea.c" />
<ClCompile Include="mcrypt_symb.c" />
<ClCompile Include="..\..\libs\libmcrypt-2.5.7\modules\modes\cbc.c" />
<ClCompile Include="..\..\libs\libmcrypt-2.5.7\modules\modes\cfb.c" />
<ClCompile Include="..\..\libs\libmcrypt-2.5.7\modules\modes\ctr.c" />
<ClCompile Include="..\..\libs\libmcrypt-2.5.7\modules\modes\ecb.c" />
<ClCompile Include="..\..\libs\libmcrypt-2.5.7\modules\modes\ncfb.c" />
<ClCompile Include="..\..\libs\libmcrypt-2.5.7\modules\modes\nofb.c" />
<ClCompile Include="..\..\libs\libmcrypt-2.5.7\modules\modes\ofb.c" />
<ClCompile Include="..\..\libs\libmcrypt-2.5.7\modules\modes\stream.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\libs\libmcrypt-2.5.7\lib\bzero.h" />
<ClInclude Include="..\..\libs\libmcrypt-2.5.7\lib\libdefs.h" />
<ClInclude Include="..\..\libs\libmcrypt-2.5.7\lib\mcrypt.h" />
<ClInclude Include="..\..\libs\libmcrypt-2.5.7\lib\mcrypt_internal.h" />
<ClInclude Include="..\..\libs\libmcrypt-2.5.7\lib\mcrypt_modules.h" />
<ClInclude Include="..\..\libs\libmcrypt-2.5.7\lib\xmemory.h" />
<ClInclude Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\3-way.h" />
<ClInclude Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\arcfour.h" />
<ClInclude Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\blowfish.h" />
<ClInclude Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\cast-128.h" />
<ClInclude Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\cast-128_sboxes.h" />
<ClInclude Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\cast-256.h" />
<ClInclude Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\des.h" />
<ClInclude Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\enigma.h" />
<ClInclude Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\panama.h" />
<ClInclude Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\rc2.h" />
<ClInclude Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\rijndael.h" />
<ClInclude Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\safer.h" />
<ClInclude Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\saferplus.h" />
<ClInclude Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\serpent.h" />
<ClInclude Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\tripledes.h" />
<ClInclude Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\twofish.h" />
<ClInclude Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\wake.h" />
<ClInclude Include="..\..\libs\libmcrypt-2.5.7\modules\algorithms\xtea.h" />
<ClInclude Include="..\..\libs\libmcrypt-2.5.7\lib\win32_comp.h" />
<ClInclude Include="..\..\libs\libmcrypt-2.5.7\modules\modes\cbc.h" />
<ClInclude Include="..\..\libs\libmcrypt-2.5.7\modules\modes\cfb.h" />
<ClInclude Include="..\..\libs\libmcrypt-2.5.7\modules\modes\ctr.h" />
<ClInclude Include="..\..\libs\libmcrypt-2.5.7\modules\modes\ecb.h" />
<ClInclude Include="..\..\libs\libmcrypt-2.5.7\modules\modes\ncfb.h" />
<ClInclude Include="..\..\libs\libmcrypt-2.5.7\modules\modes\nofb.h" />
<ClInclude Include="..\..\libs\libmcrypt-2.5.7\modules\modes\ofb.h" />
<ClInclude Include="..\..\libs\libmcrypt-2.5.7\modules\modes\stream.h" />
</ItemGroup>
<ItemGroup>
<None Include="ReadMe.txt" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
@@ -0,0 +1,602 @@
<?xml version="1.0" encoding="ks_c_5601-1987"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="libmcrypt"
ProjectGUID="{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}"
RootNamespace="libmcrypt"
Keyword="Win32Proj"
>
<Platforms>
<Platform
Name="Win32"
/>
<Platform
Name="x64"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="&quot;../../libs/libmcrypt-2.5.7/lib&quot;;&quot;../../libs/libmcrypt-2.5.7/&quot;"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
OutputFile="../win32/bin/Debug/libmcrypt.lib"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Debug|x64"
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="&quot;../../libs/libmcrypt-2.5.7/lib&quot;;&quot;../../libs/libmcrypt-2.5.7/&quot;"
PreprocessorDefinitions="_WIN32;_WIN64;WIN64;WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
OutputFile="../win64/bin/Debug/libmcrypt.lib"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
AdditionalIncludeDirectories="&quot;../../libs/libmcrypt-2.5.7/lib&quot;;&quot;../../libs/libmcrypt-2.5.7/&quot;"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
OutputFile="../win32/bin/Release/libmcrypt.lib"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|x64"
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
AdditionalIncludeDirectories="&quot;../../libs/libmcrypt-2.5.7/lib&quot;;&quot;../../libs/libmcrypt-2.5.7/&quot;"
PreprocessorDefinitions="_WIN32;_WIN64;WIN64;WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
OutputFile="../win64/bin/Release/libmcrypt.lib"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\lib\bzero.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\lib\mcrypt.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\lib\mcrypt_modules.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\lib\mcrypt_threads.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\lib\win32_comp.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\lib\xmemory.c"
>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\lib\bzero.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\lib\libdefs.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\lib\mcrypt.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\lib\mcrypt_internal.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\lib\mcrypt_modules.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\lib\xmemory.h"
>
</File>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
<Filter
Name="algorithm"
>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\3-way.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\3-way.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\arcfour.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\arcfour.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\blowfish-compat.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\blowfish.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\blowfish.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\cast-128.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\cast-128.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\cast-128_sboxes.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\cast-256.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\cast-256.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\des.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\des.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\enigma.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\enigma.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\gost.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\loki97.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\panama.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\panama.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\rc2.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\rc2.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\rijndael-128.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\rijndael-192.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\rijndael-256.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\rijndael.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\safer.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\safer128.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\safer64.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\saferplus.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\saferplus.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\serpent.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\serpent.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\tripledes.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\tripledes.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\twofish.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\twofish.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\wake.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\wake.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\xtea.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\xtea.h"
>
</File>
</Filter>
<Filter
Name="patch"
>
<File
RelativePath=".\mcrypt_symb.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\lib\win32_comp.h"
>
</File>
</Filter>
<Filter
Name="modes"
>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\modes\cbc.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\modes\cbc.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\modes\cfb.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\modes\cfb.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\modes\ctr.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\modes\ctr.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\modes\ecb.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\modes\ecb.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\modes\ncfb.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\modes\ncfb.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\modes\nofb.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\modes\nofb.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\modes\ofb.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\modes\ofb.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\modes\stream.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\modes\stream.h"
>
</File>
</Filter>
<File
RelativePath=".\ReadMe.txt"
>
</File>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
@@ -0,0 +1,603 @@
<?xml version="1.0" encoding="ks_c_5601-1987"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="libmcrypt"
ProjectGUID="{BE2BD8F1-5943-4B2F-9494-6E00A32FBC4E}"
RootNamespace="libmcrypt"
Keyword="Win32Proj"
TargetFrameworkVersion="131072"
>
<Platforms>
<Platform
Name="Win32"
/>
<Platform
Name="x64"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="&quot;../../libs/libmcrypt-2.5.7/lib&quot;;&quot;../../libs/libmcrypt-2.5.7/&quot;"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
OutputFile="../win32/bin/Debug/libmcrypt.lib"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Debug|x64"
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="&quot;../../libs/libmcrypt-2.5.7/lib&quot;;&quot;../../libs/libmcrypt-2.5.7/&quot;"
PreprocessorDefinitions="_WIN32;_WIN64;WIN64;WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
OutputFile="../win64/bin/Debug/libmcrypt.lib"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
AdditionalIncludeDirectories="&quot;../../libs/libmcrypt-2.5.7/lib&quot;;&quot;../../libs/libmcrypt-2.5.7/&quot;"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
OutputFile="../win32/bin/Release/libmcrypt.lib"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|x64"
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
AdditionalIncludeDirectories="&quot;../../libs/libmcrypt-2.5.7/lib&quot;;&quot;../../libs/libmcrypt-2.5.7/&quot;"
PreprocessorDefinitions="_WIN32;_WIN64;WIN64;WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
OutputFile="../win64/bin/Release/libmcrypt.lib"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\lib\bzero.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\lib\mcrypt.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\lib\mcrypt_modules.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\lib\mcrypt_threads.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\lib\win32_comp.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\lib\xmemory.c"
>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\lib\bzero.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\lib\libdefs.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\lib\mcrypt.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\lib\mcrypt_internal.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\lib\mcrypt_modules.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\lib\xmemory.h"
>
</File>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
<Filter
Name="algorithm"
>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\3-way.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\3-way.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\arcfour.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\arcfour.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\blowfish-compat.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\blowfish.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\blowfish.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\cast-128.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\cast-128.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\cast-128_sboxes.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\cast-256.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\cast-256.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\des.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\des.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\enigma.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\enigma.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\gost.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\loki97.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\panama.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\panama.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\rc2.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\rc2.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\rijndael-128.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\rijndael-192.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\rijndael-256.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\rijndael.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\safer.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\safer128.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\safer64.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\saferplus.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\saferplus.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\serpent.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\serpent.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\tripledes.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\tripledes.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\twofish.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\twofish.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\wake.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\wake.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\xtea.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\algorithms\xtea.h"
>
</File>
</Filter>
<Filter
Name="patch"
>
<File
RelativePath=".\mcrypt_symb.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\lib\win32_comp.h"
>
</File>
</Filter>
<Filter
Name="modes"
>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\modes\cbc.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\modes\cbc.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\modes\cfb.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\modes\cfb.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\modes\ctr.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\modes\ctr.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\modes\ecb.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\modes\ecb.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\modes\ncfb.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\modes\ncfb.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\modes\nofb.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\modes\nofb.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\modes\ofb.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\modes\ofb.h"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\modes\stream.c"
>
</File>
<File
RelativePath="..\..\libs\libmcrypt-2.5.7\modules\modes\stream.h"
>
</File>
</Filter>
<File
RelativePath=".\ReadMe.txt"
>
</File>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
+22
View File
@@ -0,0 +1,22 @@
========================================================================
STATIC LIBRARY : libneon Project Overview
========================================================================
AppWizard has created this libneon library project for you.
No source files were created as part of your project.
libneon.vcproj
This is the main project file for VC++ projects generated using an Application Wizard.
It contains information about the version of Visual C++ that generated the file, and
information about the platforms, configurations, and project features selected with the
Application Wizard.
/////////////////////////////////////////////////////////////////////////////
Other notes:
AppWizard uses "TODO:" comments to indicate parts of the source code you
should add to or customize.
/////////////////////////////////////////////////////////////////////////////
@@ -0,0 +1,104 @@
/* -*- c -*-
Win32 config.h
Copyright (C) 1999-2000, Peter Boos <pedib@colorfullife.com>
Copyright (C) 2002-2006, Joe Orton <joe@manyfish.co.uk>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
MA 02111-1307, USA
*/
#if defined(_WIN32) && !defined(WIN32)
#define WIN32
#endif
#include <Basetsd.h> // Windows Data Types
#ifdef WIN32
#define NEON_VERSION "0.29.5"
#define NE_VERSION_MAJOR (0)
#define NE_VERSION_MINOR (29)
#define HAVE_ERRNO_H
#define HAVE_LIMITS_H
#define HAVE_STDLIB_H
#define HAVE_STRING_H
#define HAVE_MEMCPY
#define HAVE_SETSOCKOPT
#define HAVE_SSPI
/* Define to enable debugging */
#define NE_DEBUGGING 1
#define NE_FMT_SIZE_T "u"
#define NE_FMT_SSIZE_T "d"
#define NE_FMT_OFF_T "ld"
#define NE_FMT_NE_OFF_T NE_FMT_OFF_T
#ifndef NE_FMT_XML_SIZE
#define NE_FMT_XML_SIZE "d"
#endif
/* needs adjusting for Win64... */
#define SIZEOF_INT 4
#define SIZEOF_LONG 4
// 2011.01.04 dadamin comment : Windows에서는 포인터만 8바이트로 표현함으로써 32비트 시스템과의 호환성을 중시한다.
/* Win32 uses a underscore, so we use a macro to eliminate that. */
#define snprintf _snprintf
/* VS2008 has this already defined */
#if (_MSC_VER < 1500)
#define vsnprintf _vsnprintf
#endif
#if defined(_MSC_VER) && _MSC_VER >= 1400
#define strcasecmp _strcmpi
#define strncasecmp _strnicmp
#else
#define strcasecmp strcmpi
#define strncasecmp strnicmp
#endif
// 2011.01.04 dadamin comment : Windows 경우 ssize_t 지원
#define ssize_t SSIZE_T
#define inline __inline
#define off_t _off_t
#ifndef USE_GETADDRINFO
#define in_addr_t unsigned int
#endif
typedef int socklen_t;
#include <io.h>
#define read _read
// windows large file support
#if (_MSC_VER >= 1400)
#define NE_LFS 1 /* Enable long file support */
#define HAVE_STRTOLL 1
typedef __int64 off64_t;
#define NE_FMT_OFF64_T "I64d"
#define lseek64 _lseeki64
#define fstat64 _fstati64
#define stat64 _stati64
#define strtoll _strtoi64
#endif
// windows large file support
#endif
@@ -0,0 +1,4 @@
@echo off
::copy /Y ..\..\libs\neon-0.29.5\config.hw ..\..\libs\neon-0.29.5\src\config.h > nul
copy /Y config.solbox.hw ..\..\libs\neon-0.29.5\src\config.h > nul
echo Created config.h from config.hw
@@ -0,0 +1,240 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>libneon</ProjectName>
<ProjectGuid>{7F093948-4D4A-442C-80F9-D61BC4B98C9D}</ProjectGuid>
<RootNamespace>libneon</RootNamespace>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir>
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<PreBuildEvent>
<Command>copy_config.bat</Command>
</PreBuildEvent>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>../../libs/expat-2.0.1/lib;../../libs/neon-0.29.5/src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;COMPILED_FROM_DSP;XML_STATIC;HAVE_EXPAT;_WFINDDATA_T_DEFINED;USE_GETADDRINFO;NE_BUFSIZ=65536;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Lib>
<AdditionalDependencies>../win32/bin/Debug/libexpatMT.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win32/bin/Debug/libneon.lib</OutputFile>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<PreBuildEvent>
<Command>copy_config.bat</Command>
</PreBuildEvent>
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>../../libs/expat-2.0.1/lib;../../libs/neon-0.29.5/src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN32;_WIN64;WIN64;_DEBUG;_LIB;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;COMPILED_FROM_DSP;XML_STATIC;HAVE_EXPAT;_WFINDDATA_T_DEFINED;USE_GETADDRINFO;NE_BUFSIZ=65536;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Lib>
<AdditionalOptions>/MACHINE:X64 %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>../win64/bin/Debug/libexpatMT.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win64/bin/Debug/libneon.lib</OutputFile>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>../../libs/expat-2.0.1/lib;../../libs/neon-0.29.5/src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_WINDOWS;COMPILED_FROM_DSP;XML_STATIC;HAVE_EXPAT;_WFINDDATA_T_DEFINED;USE_GETADDRINFO;_CRT_SECURE_NO_DEPRECATE;NE_BUFSIZ=65536;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Lib>
<AdditionalDependencies>../win32/bin/Release/libexpatMT.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win32/bin/Release/libneon.lib</OutputFile>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>../../libs/expat-2.0.1/lib;../../libs/neon-0.29.5/src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN32;_WIN64;WIN64;NDEBUG;_LIB;_WINDOWS;COMPILED_FROM_DSP;XML_STATIC;HAVE_EXPAT;_WFINDDATA_T_DEFINED;USE_GETADDRINFO;_CRT_SECURE_NO_DEPRECATE;NE_BUFSIZ=65536;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Lib>
<AdditionalDependencies>../win64/bin/Release/libexpatMT.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>../win64/bin/Release/libneon.lib</OutputFile>
</Lib>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="..\..\libs\neon-0.29.5\src\config.h" />
<ClInclude Include="..\..\libs\neon-0.29.5\src\memleak.h" />
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_207.h" />
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_acl.h" />
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_acl3744.h" />
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_alloc.h" />
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_auth.h" />
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_basic.h" />
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_compress.h" />
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_dates.h" />
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_defs.h" />
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_i18n.h" />
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_internal.h" />
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_locks.h" />
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_md5.h" />
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_ntlm.h" />
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_pkcs11.h" />
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_private.h" />
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_privssl.h" />
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_props.h" />
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_redirect.h" />
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_request.h" />
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_session.h" />
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_socket.h" />
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_ssl.h" />
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_sspi.h" />
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_string.h" />
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_uri.h" />
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_utils.h" />
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_xml.h" />
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_xmlreq.h" />
</ItemGroup>
<ItemGroup>
<None Include="config.solbox.hw" />
<None Include="copy_config.bat" />
<None Include="windows_nonblocking_connect.patch" />
<None Include="ReadMe.txt" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="ne_socket.c" />
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_207.c" />
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_acl3744.c" />
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_alloc.c" />
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_auth.c" />
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_basic.c" />
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_compress.c" />
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_dates.c" />
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_i18n.c" />
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_locks.c" />
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_md5.c" />
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_ntlm.c" />
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_oldacl.c" />
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_pkcs11.c" />
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_props.c" />
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_redirect.c" />
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_request.c" />
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_session.c" />
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_socks.c" />
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_sspi.c" />
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_string.c" />
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_stubssl.c" />
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_uri.c" />
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_utils.c" />
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_xml.c" />
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_xmlreq.c" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
@@ -0,0 +1,207 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
</Filter>
<Filter Include="patch">
<UniqueIdentifier>{147e6547-6f64-472f-9dee-2866d5e78e66}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\libs\neon-0.29.5\src\config.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\neon-0.29.5\src\memleak.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_207.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_acl.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_acl3744.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_alloc.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_auth.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_basic.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_compress.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_dates.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_defs.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_i18n.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_internal.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_locks.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_md5.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_ntlm.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_pkcs11.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_private.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_privssl.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_props.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_redirect.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_request.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_session.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_socket.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_ssl.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_sspi.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_string.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_uri.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_utils.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_xml.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libs\neon-0.29.5\src\ne_xmlreq.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="config.solbox.hw">
<Filter>patch</Filter>
</None>
<None Include="copy_config.bat">
<Filter>patch</Filter>
</None>
<None Include="windows_nonblocking_connect.patch">
<Filter>patch</Filter>
</None>
<None Include="ReadMe.txt" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="ne_socket.c">
<Filter>patch</Filter>
</ClCompile>
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_207.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_acl3744.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_alloc.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_auth.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_basic.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_compress.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_dates.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_i18n.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_locks.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_md5.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_ntlm.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_oldacl.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_pkcs11.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_props.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_redirect.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_request.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_session.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_socks.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_sspi.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_string.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_stubssl.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_uri.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_utils.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_xml.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\libs\neon-0.29.5\src\ne_xmlreq.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>
@@ -0,0 +1,561 @@
<?xml version="1.0" encoding="ks_c_5601-1987"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="libneon"
ProjectGUID="{7F093948-4D4A-442C-80F9-D61BC4B98C9D}"
RootNamespace="libneon"
Keyword="Win32Proj"
>
<Platforms>
<Platform
Name="Win32"
/>
<Platform
Name="x64"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
CommandLine="copy_config.bat"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="&quot;../../libs/expat-2.0.1/lib&quot;;&quot;../../libs/neon-0.29.5/src&quot;"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;COMPILED_FROM_DSP;XML_STATIC;HAVE_EXPAT;_WFINDDATA_T_DEFINED;USE_GETADDRINFO;NE_BUFSIZ=65536"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
AdditionalDependencies="../win32/bin/Debug/libexpatMT.lib"
OutputFile="../win32/bin/Debug/libneon.lib"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Debug|x64"
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
CommandLine="copy_config.bat"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="&quot;../../libs/expat-2.0.1/lib&quot;;&quot;../../libs/neon-0.29.5/src&quot;"
PreprocessorDefinitions="_WIN32;_WIN64;WIN64;_DEBUG;_LIB;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;COMPILED_FROM_DSP;XML_STATIC;HAVE_EXPAT;_WFINDDATA_T_DEFINED;USE_GETADDRINFO;NE_BUFSIZ=65536"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
AdditionalOptions="/MACHINE:X64"
AdditionalDependencies="../win64/bin/Debug/libexpatMT.lib"
OutputFile="../win64/bin/Debug/libneon.lib"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
AdditionalIncludeDirectories="&quot;../../libs/expat-2.0.1/lib&quot;;&quot;../../libs/neon-0.29.5/src&quot;"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_WINDOWS;COMPILED_FROM_DSP;XML_STATIC;HAVE_EXPAT;_WFINDDATA_T_DEFINED;USE_GETADDRINFO;_CRT_SECURE_NO_DEPRECATE;NE_BUFSIZ=65536"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
AdditionalDependencies="../win32/bin/Release/libexpatMT.lib"
OutputFile="../win32/bin/Release/libneon.lib"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|x64"
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
AdditionalIncludeDirectories="&quot;../../libs/expat-2.0.1/lib&quot;;&quot;../../libs/neon-0.29.5/src&quot;"
PreprocessorDefinitions="_WIN32;_WIN64;WIN64;NDEBUG;_LIB;_WINDOWS;COMPILED_FROM_DSP;XML_STATIC;HAVE_EXPAT;_WFINDDATA_T_DEFINED;USE_GETADDRINFO;_CRT_SECURE_NO_DEPRECATE;NE_BUFSIZ=65536"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
AdditionalDependencies="../win64/bin/Release/libexpatMT.lib"
OutputFile="../win64/bin/Release/libneon.lib"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
RelativePath="..\..\libs\neon-0.29.5\src\config.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\memleak.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_207.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_acl.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_acl3744.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_alloc.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_auth.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_basic.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_compress.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_dates.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_defs.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_i18n.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_internal.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_locks.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_md5.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_ntlm.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_pkcs11.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_private.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_privssl.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_props.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_redirect.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_request.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_session.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_socket.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_ssl.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_sspi.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_string.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_uri.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_utils.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_xml.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_xmlreq.h"
>
</File>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
<Filter
Name="patch"
>
<File
RelativePath=".\config.solbox.hw"
>
</File>
<File
RelativePath=".\copy_config.bat"
>
</File>
<File
RelativePath=".\ne_socket.c"
>
</File>
<File
RelativePath=".\windows_nonblocking_connect.patch"
>
</File>
</Filter>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_207.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_acl3744.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_alloc.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_auth.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_basic.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_compress.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_dates.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_i18n.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_locks.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_md5.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_ntlm.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_oldacl.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_pkcs11.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_props.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_redirect.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_request.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_session.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_socks.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_sspi.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_string.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_stubssl.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_uri.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_utils.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_xml.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_xmlreq.c"
>
</File>
</Filter>
<File
RelativePath=".\ReadMe.txt"
>
</File>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
@@ -0,0 +1,562 @@
<?xml version="1.0" encoding="ks_c_5601-1987"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="libneon"
ProjectGUID="{7F093948-4D4A-442C-80F9-D61BC4B98C9D}"
RootNamespace="libneon"
Keyword="Win32Proj"
TargetFrameworkVersion="131072"
>
<Platforms>
<Platform
Name="Win32"
/>
<Platform
Name="x64"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
CommandLine="copy_config.bat"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="&quot;../../libs/expat-2.0.1/lib&quot;;&quot;../../libs/neon-0.29.5/src&quot;"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;COMPILED_FROM_DSP;XML_STATIC;HAVE_EXPAT;_WFINDDATA_T_DEFINED;USE_GETADDRINFO;NE_BUFSIZ=65536"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
AdditionalDependencies="../win32/bin/Debug/libexpatMT.lib"
OutputFile="../win32/bin/Debug/libneon.lib"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Debug|x64"
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
CommandLine="copy_config.bat"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="&quot;../../libs/expat-2.0.1/lib&quot;;&quot;../../libs/neon-0.29.5/src&quot;"
PreprocessorDefinitions="_WIN32;_WIN64;WIN64;_DEBUG;_LIB;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;COMPILED_FROM_DSP;XML_STATIC;HAVE_EXPAT;_WFINDDATA_T_DEFINED;USE_GETADDRINFO;NE_BUFSIZ=65536"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
AdditionalOptions="/MACHINE:X64"
AdditionalDependencies="../win64/bin/Debug/libexpatMT.lib"
OutputFile="../win64/bin/Debug/libneon.lib"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
AdditionalIncludeDirectories="&quot;../../libs/expat-2.0.1/lib&quot;;&quot;../../libs/neon-0.29.5/src&quot;"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_WINDOWS;COMPILED_FROM_DSP;XML_STATIC;HAVE_EXPAT;_WFINDDATA_T_DEFINED;USE_GETADDRINFO;_CRT_SECURE_NO_DEPRECATE;NE_BUFSIZ=65536"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
AdditionalDependencies="../win32/bin/Release/libexpatMT.lib"
OutputFile="../win32/bin/Release/libneon.lib"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|x64"
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
AdditionalIncludeDirectories="&quot;../../libs/expat-2.0.1/lib&quot;;&quot;../../libs/neon-0.29.5/src&quot;"
PreprocessorDefinitions="_WIN32;_WIN64;WIN64;NDEBUG;_LIB;_WINDOWS;COMPILED_FROM_DSP;XML_STATIC;HAVE_EXPAT;_WFINDDATA_T_DEFINED;USE_GETADDRINFO;_CRT_SECURE_NO_DEPRECATE;NE_BUFSIZ=65536"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
AdditionalDependencies="../win64/bin/Release/libexpatMT.lib"
OutputFile="../win64/bin/Release/libneon.lib"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
RelativePath="..\..\libs\neon-0.29.5\src\config.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\memleak.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_207.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_acl.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_acl3744.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_alloc.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_auth.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_basic.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_compress.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_dates.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_defs.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_i18n.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_internal.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_locks.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_md5.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_ntlm.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_pkcs11.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_private.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_privssl.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_props.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_redirect.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_request.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_session.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_socket.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_ssl.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_sspi.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_string.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_uri.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_utils.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_xml.h"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_xmlreq.h"
>
</File>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
<Filter
Name="patch"
>
<File
RelativePath=".\config.solbox.hw"
>
</File>
<File
RelativePath=".\copy_config.bat"
>
</File>
<File
RelativePath=".\ne_socket.c"
>
</File>
<File
RelativePath=".\windows_nonblocking_connect.patch"
>
</File>
</Filter>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_207.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_acl3744.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_alloc.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_auth.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_basic.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_compress.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_dates.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_i18n.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_locks.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_md5.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_ntlm.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_oldacl.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_pkcs11.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_props.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_redirect.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_request.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_session.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_socks.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_sspi.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_string.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_stubssl.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_uri.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_utils.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_xml.c"
>
</File>
<File
RelativePath="..\..\libs\neon-0.29.5\src\ne_xmlreq.c"
>
</File>
</Filter>
<File
RelativePath=".\ReadMe.txt"
>
</File>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
@@ -0,0 +1,53 @@
Index: src/ne_socket.c
===================================================================
--- src/ne_socket.c (revision 1791)
+++ src/ne_socket.c (working copy)
@@ -1178,10 +1178,11 @@
{
int ret;
-#ifdef USE_NONBLOCKING_CONNECT
+#if defined(USE_NONBLOCKING_CONNECT) || defined(WIN32)
if (sock->cotimeout) {
int errnum, flags;
+#ifdef USE_NONBLOCKING_CONNECT
/* Get flags and then set O_NONBLOCK. */
flags = fcntl(fd, F_GETFL);
if (flags & O_NONBLOCK) {
@@ -1193,6 +1194,13 @@
set_strerror(sock, errno);
return NE_SOCK_ERROR;
}
+#else
+ unsigned long nonblocking = 1;
+ if (ioctlsocket(fd, FIONBIO, &nonblocking)) {
+ set_strerror(sock, errnum);
+ ret = NE_SOCK_ERROR;
+ }
+#endif
ret = raw_connect(fd, sa, salen);
if (ret == -1) {
@@ -1229,12 +1237,19 @@
ret = NE_SOCK_ERROR;
}
}
-
+#ifdef USE_NONBLOCKING_CONNECT
/* Reset to old flags: */
if (fcntl(fd, F_SETFL, flags) == -1) {
set_strerror(sock, errno);
ret = NE_SOCK_ERROR;
- }
+ }
+#else
+ nonblocking = 0;
+ if (ioctlsocket(fd, FIONBIO, &nonblocking)) {
+ set_strerror(sock, errnum);
+ ret = NE_SOCK_ERROR;
+ }
+#endif
} else
#endif /* USE_NONBLOCKING_CONNECT */
{

Some files were not shown because too many files have changed in this diff Show More