mirror of
				https://github.com/Telecominfraproject/wlan-cloud-lib-poco.git
				synced 2025-10-31 02:27:56 +00:00 
			
		
		
		
	fixed line endings
This commit is contained in:
		| @@ -1,63 +1,63 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <?eclipse-cdt version="2.0"?> | ||||
|  | ||||
| <cdtproject id="org.eclipse.cdt.make.core.make"> | ||||
| <extension id="org.eclipse.cdt.core.Cygwin_PE" point="org.eclipse.cdt.core.BinaryParser"> | ||||
| <attribute key="addr2line" value="addr2line"/> | ||||
| <attribute key="cygpath" value="cygpath"/> | ||||
| <attribute key="c++filt" value="c++filt"/> | ||||
| <attribute key="nm" value="nm"/> | ||||
| </extension> | ||||
| <data> | ||||
| <item id="scannerConfiguration"> | ||||
| <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/> | ||||
| <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"> | ||||
| <buildOutputProvider> | ||||
| <openAction enabled="true" filePath=""/> | ||||
| <parser enabled="true"/> | ||||
| </buildOutputProvider> | ||||
| <scannerInfoProvider id="specsFile"> | ||||
| <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> | ||||
| <parser enabled="true"/> | ||||
| </scannerInfoProvider> | ||||
| </profile> | ||||
| <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile"> | ||||
| <buildOutputProvider> | ||||
| <openAction enabled="false" filePath=""/> | ||||
| <parser enabled="true"/> | ||||
| </buildOutputProvider> | ||||
| <scannerInfoProvider id="makefileGenerator"> | ||||
| <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/> | ||||
| <parser enabled="false"/> | ||||
| </scannerInfoProvider> | ||||
| </profile> | ||||
| <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile"> | ||||
| <buildOutputProvider> | ||||
| <openAction enabled="false" filePath=""/> | ||||
| <parser enabled="true"/> | ||||
| </buildOutputProvider> | ||||
| <scannerInfoProvider id="specsFile"> | ||||
| <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> | ||||
| <parser enabled="false"/> | ||||
| </scannerInfoProvider> | ||||
| </profile> | ||||
| <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile"> | ||||
| <buildOutputProvider> | ||||
| <openAction enabled="false" filePath=""/> | ||||
| <parser enabled="true"/> | ||||
| </buildOutputProvider> | ||||
| <scannerInfoProvider id="specsFile"> | ||||
| <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> | ||||
| <parser enabled="false"/> | ||||
| </scannerInfoProvider> | ||||
| </profile> | ||||
| </item> | ||||
| <item id="org.eclipse.cdt.core.pathentry"> | ||||
| <pathentry excluding="*.vmsbuild|*.sln|*.vcproj|*.ncb|*.suo|*.vcproj.*|include/|src/|testsuite/src/" kind="src" path=""/> | ||||
| <pathentry kind="src" path="include"/> | ||||
| <pathentry kind="src" path="src"/> | ||||
| <pathentry kind="out" path=""/> | ||||
| <pathentry kind="con" path="org.eclipse.cdt.make.core.DISCOVERED_SCANNER_INFO"/> | ||||
| </item> | ||||
| </data> | ||||
| </cdtproject> | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <?eclipse-cdt version="2.0"?> | ||||
|  | ||||
| <cdtproject id="org.eclipse.cdt.make.core.make"> | ||||
| <extension id="org.eclipse.cdt.core.Cygwin_PE" point="org.eclipse.cdt.core.BinaryParser"> | ||||
| <attribute key="addr2line" value="addr2line"/> | ||||
| <attribute key="cygpath" value="cygpath"/> | ||||
| <attribute key="c++filt" value="c++filt"/> | ||||
| <attribute key="nm" value="nm"/> | ||||
| </extension> | ||||
| <data> | ||||
| <item id="scannerConfiguration"> | ||||
| <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/> | ||||
| <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"> | ||||
| <buildOutputProvider> | ||||
| <openAction enabled="true" filePath=""/> | ||||
| <parser enabled="true"/> | ||||
| </buildOutputProvider> | ||||
| <scannerInfoProvider id="specsFile"> | ||||
| <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> | ||||
| <parser enabled="true"/> | ||||
| </scannerInfoProvider> | ||||
| </profile> | ||||
| <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile"> | ||||
| <buildOutputProvider> | ||||
| <openAction enabled="false" filePath=""/> | ||||
| <parser enabled="true"/> | ||||
| </buildOutputProvider> | ||||
| <scannerInfoProvider id="makefileGenerator"> | ||||
| <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/> | ||||
| <parser enabled="false"/> | ||||
| </scannerInfoProvider> | ||||
| </profile> | ||||
| <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile"> | ||||
| <buildOutputProvider> | ||||
| <openAction enabled="false" filePath=""/> | ||||
| <parser enabled="true"/> | ||||
| </buildOutputProvider> | ||||
| <scannerInfoProvider id="specsFile"> | ||||
| <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> | ||||
| <parser enabled="false"/> | ||||
| </scannerInfoProvider> | ||||
| </profile> | ||||
| <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile"> | ||||
| <buildOutputProvider> | ||||
| <openAction enabled="false" filePath=""/> | ||||
| <parser enabled="true"/> | ||||
| </buildOutputProvider> | ||||
| <scannerInfoProvider id="specsFile"> | ||||
| <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> | ||||
| <parser enabled="false"/> | ||||
| </scannerInfoProvider> | ||||
| </profile> | ||||
| </item> | ||||
| <item id="org.eclipse.cdt.core.pathentry"> | ||||
| <pathentry excluding="*.vmsbuild|*.sln|*.vcproj|*.ncb|*.suo|*.vcproj.*|include/|src/|testsuite/src/" kind="src" path=""/> | ||||
| <pathentry kind="src" path="include"/> | ||||
| <pathentry kind="src" path="src"/> | ||||
| <pathentry kind="out" path=""/> | ||||
| <pathentry kind="con" path="org.eclipse.cdt.make.core.DISCOVERED_SCANNER_INFO"/> | ||||
| </item> | ||||
| </data> | ||||
| </cdtproject> | ||||
|   | ||||
| @@ -1,88 +1,88 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <projectDescription> | ||||
| 	<name>Net</name> | ||||
| 	<comment></comment> | ||||
| 	<projects> | ||||
| 		<project>Foundation</project> | ||||
| 		<project>NetSSL_OpenSSL</project> | ||||
| 	</projects> | ||||
| 	<buildSpec> | ||||
| 		<buildCommand> | ||||
| 			<name>org.eclipse.cdt.make.core.makeBuilder</name> | ||||
| 			<triggers>clean,full,incremental,</triggers> | ||||
| 			<arguments> | ||||
| 				<dictionary> | ||||
| 					<key>org.eclipse.cdt.make.core.build.arguments</key> | ||||
| 					<value></value> | ||||
| 				</dictionary> | ||||
| 				<dictionary> | ||||
| 					<key>org.eclipse.cdt.core.errorOutputParser</key> | ||||
| 					<value>org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.VCErrorParser;</value> | ||||
| 				</dictionary> | ||||
| 				<dictionary> | ||||
| 					<key>org.eclipse.cdt.make.core.environment</key> | ||||
| 					<value></value> | ||||
| 				</dictionary> | ||||
| 				<dictionary> | ||||
| 					<key>org.eclipse.cdt.make.core.enableAutoBuild</key> | ||||
| 					<value>false</value> | ||||
| 				</dictionary> | ||||
| 				<dictionary> | ||||
| 					<key>org.eclipse.cdt.make.core.build.target.inc</key> | ||||
| 					<value>-s</value> | ||||
| 				</dictionary> | ||||
| 				<dictionary> | ||||
| 					<key>org.eclipse.cdt.make.core.enableFullBuild</key> | ||||
| 					<value>true</value> | ||||
| 				</dictionary> | ||||
| 				<dictionary> | ||||
| 					<key>org.eclipse.cdt.make.core.enabledIncrementalBuild</key> | ||||
| 					<value>true</value> | ||||
| 				</dictionary> | ||||
| 				<dictionary> | ||||
| 					<key>org.eclipse.cdt.make.core.build.location</key> | ||||
| 					<value></value> | ||||
| 				</dictionary> | ||||
| 				<dictionary> | ||||
| 					<key>org.eclipse.cdt.make.core.build.command</key> | ||||
| 					<value>make</value> | ||||
| 				</dictionary> | ||||
| 				<dictionary> | ||||
| 					<key>org.eclipse.cdt.make.core.build.target.clean</key> | ||||
| 					<value>clean</value> | ||||
| 				</dictionary> | ||||
| 				<dictionary> | ||||
| 					<key>org.eclipse.cdt.make.core.enableCleanBuild</key> | ||||
| 					<value>true</value> | ||||
| 				</dictionary> | ||||
| 				<dictionary> | ||||
| 					<key>org.eclipse.cdt.make.core.append_environment</key> | ||||
| 					<value>true</value> | ||||
| 				</dictionary> | ||||
| 				<dictionary> | ||||
| 					<key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key> | ||||
| 					<value>true</value> | ||||
| 				</dictionary> | ||||
| 				<dictionary> | ||||
| 					<key>org.eclipse.cdt.make.core.build.target.auto</key> | ||||
| 					<value>all</value> | ||||
| 				</dictionary> | ||||
| 				<dictionary> | ||||
| 					<key>org.eclipse.cdt.make.core.stopOnError</key> | ||||
| 					<value>true</value> | ||||
| 				</dictionary> | ||||
| 			</arguments> | ||||
| 		</buildCommand> | ||||
| 		<buildCommand> | ||||
| 			<name>org.eclipse.cdt.make.core.ScannerConfigBuilder</name> | ||||
| 			<arguments> | ||||
| 			</arguments> | ||||
| 		</buildCommand> | ||||
| 	</buildSpec> | ||||
| 	<natures> | ||||
| 		<nature>org.eclipse.cdt.core.cnature</nature> | ||||
| 		<nature>org.eclipse.cdt.make.core.makeNature</nature> | ||||
| 		<nature>org.eclipse.cdt.make.core.ScannerConfigNature</nature> | ||||
| 		<nature>org.eclipse.cdt.core.ccnature</nature> | ||||
| 	</natures> | ||||
| </projectDescription> | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <projectDescription> | ||||
| 	<name>Net</name> | ||||
| 	<comment></comment> | ||||
| 	<projects> | ||||
| 		<project>Foundation</project> | ||||
| 		<project>NetSSL_OpenSSL</project> | ||||
| 	</projects> | ||||
| 	<buildSpec> | ||||
| 		<buildCommand> | ||||
| 			<name>org.eclipse.cdt.make.core.makeBuilder</name> | ||||
| 			<triggers>clean,full,incremental,</triggers> | ||||
| 			<arguments> | ||||
| 				<dictionary> | ||||
| 					<key>org.eclipse.cdt.make.core.build.arguments</key> | ||||
| 					<value></value> | ||||
| 				</dictionary> | ||||
| 				<dictionary> | ||||
| 					<key>org.eclipse.cdt.core.errorOutputParser</key> | ||||
| 					<value>org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.VCErrorParser;</value> | ||||
| 				</dictionary> | ||||
| 				<dictionary> | ||||
| 					<key>org.eclipse.cdt.make.core.environment</key> | ||||
| 					<value></value> | ||||
| 				</dictionary> | ||||
| 				<dictionary> | ||||
| 					<key>org.eclipse.cdt.make.core.enableAutoBuild</key> | ||||
| 					<value>false</value> | ||||
| 				</dictionary> | ||||
| 				<dictionary> | ||||
| 					<key>org.eclipse.cdt.make.core.build.target.inc</key> | ||||
| 					<value>-s</value> | ||||
| 				</dictionary> | ||||
| 				<dictionary> | ||||
| 					<key>org.eclipse.cdt.make.core.enableFullBuild</key> | ||||
| 					<value>true</value> | ||||
| 				</dictionary> | ||||
| 				<dictionary> | ||||
| 					<key>org.eclipse.cdt.make.core.enabledIncrementalBuild</key> | ||||
| 					<value>true</value> | ||||
| 				</dictionary> | ||||
| 				<dictionary> | ||||
| 					<key>org.eclipse.cdt.make.core.build.location</key> | ||||
| 					<value></value> | ||||
| 				</dictionary> | ||||
| 				<dictionary> | ||||
| 					<key>org.eclipse.cdt.make.core.build.command</key> | ||||
| 					<value>make</value> | ||||
| 				</dictionary> | ||||
| 				<dictionary> | ||||
| 					<key>org.eclipse.cdt.make.core.build.target.clean</key> | ||||
| 					<value>clean</value> | ||||
| 				</dictionary> | ||||
| 				<dictionary> | ||||
| 					<key>org.eclipse.cdt.make.core.enableCleanBuild</key> | ||||
| 					<value>true</value> | ||||
| 				</dictionary> | ||||
| 				<dictionary> | ||||
| 					<key>org.eclipse.cdt.make.core.append_environment</key> | ||||
| 					<value>true</value> | ||||
| 				</dictionary> | ||||
| 				<dictionary> | ||||
| 					<key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key> | ||||
| 					<value>true</value> | ||||
| 				</dictionary> | ||||
| 				<dictionary> | ||||
| 					<key>org.eclipse.cdt.make.core.build.target.auto</key> | ||||
| 					<value>all</value> | ||||
| 				</dictionary> | ||||
| 				<dictionary> | ||||
| 					<key>org.eclipse.cdt.make.core.stopOnError</key> | ||||
| 					<value>true</value> | ||||
| 				</dictionary> | ||||
| 			</arguments> | ||||
| 		</buildCommand> | ||||
| 		<buildCommand> | ||||
| 			<name>org.eclipse.cdt.make.core.ScannerConfigBuilder</name> | ||||
| 			<arguments> | ||||
| 			</arguments> | ||||
| 		</buildCommand> | ||||
| 	</buildSpec> | ||||
| 	<natures> | ||||
| 		<nature>org.eclipse.cdt.core.cnature</nature> | ||||
| 		<nature>org.eclipse.cdt.make.core.makeNature</nature> | ||||
| 		<nature>org.eclipse.cdt.make.core.ScannerConfigNature</nature> | ||||
| 		<nature>org.eclipse.cdt.core.ccnature</nature> | ||||
| 	</natures> | ||||
| </projectDescription> | ||||
|   | ||||
| @@ -1,40 +1,40 @@ | ||||
| Microsoft Visual Studio Solution File, Format Version 8.00 | ||||
| Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NetSSL_OpenSSL", "NetSSL_OpenSSL_vs71.vcproj", "{5AECC55E-A469-11DA-8DA6-005056C00008}" | ||||
| 	ProjectSection(ProjectDependencies) = postProject | ||||
| 	EndProjectSection | ||||
| EndProject | ||||
| Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs71.vcproj", "{5B023A89-A469-11DA-8DA6-005056C00008}" | ||||
| 	ProjectSection(ProjectDependencies) = postProject | ||||
| 		{5AECC55E-A469-11DA-8DA6-005056C00008} = {5AECC55E-A469-11DA-8DA6-005056C00008} | ||||
| 	EndProjectSection | ||||
| EndProject | ||||
| Global | ||||
| 	GlobalSection(SolutionConfiguration) = preSolution | ||||
| 		debug_shared = debug_shared | ||||
| 		debug_static = debug_static | ||||
| 		release_shared = release_shared | ||||
| 		release_static = release_static | ||||
| 	EndGlobalSection | ||||
| 	GlobalSection(ProjectConfiguration) = postSolution | ||||
| 		{5AECC55E-A469-11DA-8DA6-005056C00008}.debug_shared.ActiveCfg = debug_shared|Win32 | ||||
| 		{5AECC55E-A469-11DA-8DA6-005056C00008}.debug_shared.Build.0 = debug_shared|Win32 | ||||
| 		{5AECC55E-A469-11DA-8DA6-005056C00008}.debug_static.ActiveCfg = debug_static|Win32 | ||||
| 		{5AECC55E-A469-11DA-8DA6-005056C00008}.debug_static.Build.0 = debug_static|Win32 | ||||
| 		{5AECC55E-A469-11DA-8DA6-005056C00008}.release_shared.ActiveCfg = release_shared|Win32 | ||||
| 		{5AECC55E-A469-11DA-8DA6-005056C00008}.release_shared.Build.0 = release_shared|Win32 | ||||
| 		{5AECC55E-A469-11DA-8DA6-005056C00008}.release_static.ActiveCfg = release_static|Win32 | ||||
| 		{5AECC55E-A469-11DA-8DA6-005056C00008}.release_static.Build.0 = release_static|Win32 | ||||
| 		{5B023A89-A469-11DA-8DA6-005056C00008}.debug_shared.ActiveCfg = debug_shared|Win32 | ||||
| 		{5B023A89-A469-11DA-8DA6-005056C00008}.debug_shared.Build.0 = debug_shared|Win32 | ||||
| 		{5B023A89-A469-11DA-8DA6-005056C00008}.debug_static.ActiveCfg = debug_static|Win32 | ||||
| 		{5B023A89-A469-11DA-8DA6-005056C00008}.debug_static.Build.0 = debug_static|Win32 | ||||
| 		{5B023A89-A469-11DA-8DA6-005056C00008}.release_shared.ActiveCfg = release_shared|Win32 | ||||
| 		{5B023A89-A469-11DA-8DA6-005056C00008}.release_shared.Build.0 = release_shared|Win32 | ||||
| 		{5B023A89-A469-11DA-8DA6-005056C00008}.release_static.ActiveCfg = release_static|Win32 | ||||
| 		{5B023A89-A469-11DA-8DA6-005056C00008}.release_static.Build.0 = release_static|Win32 | ||||
| 	EndGlobalSection | ||||
| 	GlobalSection(ExtensibilityGlobals) = postSolution | ||||
| 	EndGlobalSection | ||||
| 	GlobalSection(ExtensibilityAddIns) = postSolution | ||||
| 	EndGlobalSection | ||||
| EndGlobal | ||||
| Microsoft Visual Studio Solution File, Format Version 8.00 | ||||
| Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NetSSL_OpenSSL", "NetSSL_OpenSSL_vs71.vcproj", "{5AECC55E-A469-11DA-8DA6-005056C00008}" | ||||
| 	ProjectSection(ProjectDependencies) = postProject | ||||
| 	EndProjectSection | ||||
| EndProject | ||||
| Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs71.vcproj", "{5B023A89-A469-11DA-8DA6-005056C00008}" | ||||
| 	ProjectSection(ProjectDependencies) = postProject | ||||
| 		{5AECC55E-A469-11DA-8DA6-005056C00008} = {5AECC55E-A469-11DA-8DA6-005056C00008} | ||||
| 	EndProjectSection | ||||
| EndProject | ||||
| Global | ||||
| 	GlobalSection(SolutionConfiguration) = preSolution | ||||
| 		debug_shared = debug_shared | ||||
| 		debug_static = debug_static | ||||
| 		release_shared = release_shared | ||||
| 		release_static = release_static | ||||
| 	EndGlobalSection | ||||
| 	GlobalSection(ProjectConfiguration) = postSolution | ||||
| 		{5AECC55E-A469-11DA-8DA6-005056C00008}.debug_shared.ActiveCfg = debug_shared|Win32 | ||||
| 		{5AECC55E-A469-11DA-8DA6-005056C00008}.debug_shared.Build.0 = debug_shared|Win32 | ||||
| 		{5AECC55E-A469-11DA-8DA6-005056C00008}.debug_static.ActiveCfg = debug_static|Win32 | ||||
| 		{5AECC55E-A469-11DA-8DA6-005056C00008}.debug_static.Build.0 = debug_static|Win32 | ||||
| 		{5AECC55E-A469-11DA-8DA6-005056C00008}.release_shared.ActiveCfg = release_shared|Win32 | ||||
| 		{5AECC55E-A469-11DA-8DA6-005056C00008}.release_shared.Build.0 = release_shared|Win32 | ||||
| 		{5AECC55E-A469-11DA-8DA6-005056C00008}.release_static.ActiveCfg = release_static|Win32 | ||||
| 		{5AECC55E-A469-11DA-8DA6-005056C00008}.release_static.Build.0 = release_static|Win32 | ||||
| 		{5B023A89-A469-11DA-8DA6-005056C00008}.debug_shared.ActiveCfg = debug_shared|Win32 | ||||
| 		{5B023A89-A469-11DA-8DA6-005056C00008}.debug_shared.Build.0 = debug_shared|Win32 | ||||
| 		{5B023A89-A469-11DA-8DA6-005056C00008}.debug_static.ActiveCfg = debug_static|Win32 | ||||
| 		{5B023A89-A469-11DA-8DA6-005056C00008}.debug_static.Build.0 = debug_static|Win32 | ||||
| 		{5B023A89-A469-11DA-8DA6-005056C00008}.release_shared.ActiveCfg = release_shared|Win32 | ||||
| 		{5B023A89-A469-11DA-8DA6-005056C00008}.release_shared.Build.0 = release_shared|Win32 | ||||
| 		{5B023A89-A469-11DA-8DA6-005056C00008}.release_static.ActiveCfg = release_static|Win32 | ||||
| 		{5B023A89-A469-11DA-8DA6-005056C00008}.release_static.Build.0 = release_static|Win32 | ||||
| 	EndGlobalSection | ||||
| 	GlobalSection(ExtensibilityGlobals) = postSolution | ||||
| 	EndGlobalSection | ||||
| 	GlobalSection(ExtensibilityAddIns) = postSolution | ||||
| 	EndGlobalSection | ||||
| EndGlobal | ||||
|   | ||||
| @@ -1,39 +1,39 @@ | ||||
|  | ||||
| Microsoft Visual Studio Solution File, Format Version 9.00 | ||||
| # Visual Studio 2005 | ||||
| Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NetSSL_OpenSSL", "NetSSL_OpenSSL_vs80.vcproj", "{5AECC55E-A469-11DA-8DA6-005056C00008}" | ||||
| EndProject | ||||
| Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs80.vcproj", "{B2B88092-5BCE-4AC0-941E-88167138B4A7}" | ||||
| 	ProjectSection(ProjectDependencies) = postProject | ||||
| 		{5AECC55E-A469-11DA-8DA6-005056C00008} = {5AECC55E-A469-11DA-8DA6-005056C00008} | ||||
| 	EndProjectSection | ||||
| EndProject | ||||
| Global | ||||
| 	GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||||
| 		debug_shared|Win32 = debug_shared|Win32 | ||||
| 		debug_static|Win32 = debug_static|Win32 | ||||
| 		release_shared|Win32 = release_shared|Win32 | ||||
| 		release_static|Win32 = release_static|Win32 | ||||
| 	EndGlobalSection | ||||
| 	GlobalSection(ProjectConfigurationPlatforms) = postSolution | ||||
| 		{5AECC55E-A469-11DA-8DA6-005056C00008}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 | ||||
| 		{5AECC55E-A469-11DA-8DA6-005056C00008}.debug_shared|Win32.Build.0 = debug_shared|Win32 | ||||
| 		{5AECC55E-A469-11DA-8DA6-005056C00008}.debug_static|Win32.ActiveCfg = debug_static|Win32 | ||||
| 		{5AECC55E-A469-11DA-8DA6-005056C00008}.debug_static|Win32.Build.0 = debug_static|Win32 | ||||
| 		{5AECC55E-A469-11DA-8DA6-005056C00008}.release_shared|Win32.ActiveCfg = release_shared|Win32 | ||||
| 		{5AECC55E-A469-11DA-8DA6-005056C00008}.release_shared|Win32.Build.0 = release_shared|Win32 | ||||
| 		{5AECC55E-A469-11DA-8DA6-005056C00008}.release_static|Win32.ActiveCfg = release_static|Win32 | ||||
| 		{5AECC55E-A469-11DA-8DA6-005056C00008}.release_static|Win32.Build.0 = release_static|Win32 | ||||
| 		{B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 | ||||
| 		{B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_shared|Win32.Build.0 = debug_shared|Win32 | ||||
| 		{B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_static|Win32.ActiveCfg = debug_static|Win32 | ||||
| 		{B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_static|Win32.Build.0 = debug_static|Win32 | ||||
| 		{B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_shared|Win32.ActiveCfg = release_shared|Win32 | ||||
| 		{B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_shared|Win32.Build.0 = release_shared|Win32 | ||||
| 		{B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_static|Win32.ActiveCfg = release_static|Win32 | ||||
| 		{B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_static|Win32.Build.0 = release_static|Win32 | ||||
| 	EndGlobalSection | ||||
| 	GlobalSection(SolutionProperties) = preSolution | ||||
| 		HideSolutionNode = FALSE | ||||
| 	EndGlobalSection | ||||
| EndGlobal | ||||
|  | ||||
| Microsoft Visual Studio Solution File, Format Version 9.00 | ||||
| # Visual Studio 2005 | ||||
| Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NetSSL_OpenSSL", "NetSSL_OpenSSL_vs80.vcproj", "{5AECC55E-A469-11DA-8DA6-005056C00008}" | ||||
| EndProject | ||||
| Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs80.vcproj", "{B2B88092-5BCE-4AC0-941E-88167138B4A7}" | ||||
| 	ProjectSection(ProjectDependencies) = postProject | ||||
| 		{5AECC55E-A469-11DA-8DA6-005056C00008} = {5AECC55E-A469-11DA-8DA6-005056C00008} | ||||
| 	EndProjectSection | ||||
| EndProject | ||||
| Global | ||||
| 	GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||||
| 		debug_shared|Win32 = debug_shared|Win32 | ||||
| 		debug_static|Win32 = debug_static|Win32 | ||||
| 		release_shared|Win32 = release_shared|Win32 | ||||
| 		release_static|Win32 = release_static|Win32 | ||||
| 	EndGlobalSection | ||||
| 	GlobalSection(ProjectConfigurationPlatforms) = postSolution | ||||
| 		{5AECC55E-A469-11DA-8DA6-005056C00008}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 | ||||
| 		{5AECC55E-A469-11DA-8DA6-005056C00008}.debug_shared|Win32.Build.0 = debug_shared|Win32 | ||||
| 		{5AECC55E-A469-11DA-8DA6-005056C00008}.debug_static|Win32.ActiveCfg = debug_static|Win32 | ||||
| 		{5AECC55E-A469-11DA-8DA6-005056C00008}.debug_static|Win32.Build.0 = debug_static|Win32 | ||||
| 		{5AECC55E-A469-11DA-8DA6-005056C00008}.release_shared|Win32.ActiveCfg = release_shared|Win32 | ||||
| 		{5AECC55E-A469-11DA-8DA6-005056C00008}.release_shared|Win32.Build.0 = release_shared|Win32 | ||||
| 		{5AECC55E-A469-11DA-8DA6-005056C00008}.release_static|Win32.ActiveCfg = release_static|Win32 | ||||
| 		{5AECC55E-A469-11DA-8DA6-005056C00008}.release_static|Win32.Build.0 = release_static|Win32 | ||||
| 		{B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 | ||||
| 		{B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_shared|Win32.Build.0 = debug_shared|Win32 | ||||
| 		{B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_static|Win32.ActiveCfg = debug_static|Win32 | ||||
| 		{B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_static|Win32.Build.0 = debug_static|Win32 | ||||
| 		{B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_shared|Win32.ActiveCfg = release_shared|Win32 | ||||
| 		{B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_shared|Win32.Build.0 = release_shared|Win32 | ||||
| 		{B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_static|Win32.ActiveCfg = release_static|Win32 | ||||
| 		{B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_static|Win32.Build.0 = release_static|Win32 | ||||
| 	EndGlobalSection | ||||
| 	GlobalSection(SolutionProperties) = preSolution | ||||
| 		HideSolutionNode = FALSE | ||||
| 	EndGlobalSection | ||||
| EndGlobal | ||||
|   | ||||
| @@ -1,36 +1,36 @@ | ||||
| NetSSL requires OpenSSL release 0.9.8 or later. | ||||
|  | ||||
| Unix | ||||
| ==== | ||||
|  | ||||
| Most Unix systems already have OpenSSL preinstalled. | ||||
| If your system does not have OpenSSL, please get it from | ||||
| http://www.openssl.org/ or another source. You do not | ||||
| have to build OpenSSL yourself - a binary distribution | ||||
| is fine. | ||||
|  | ||||
| If you do build OpenSSl yourself be sure to call | ||||
|  | ||||
| ./configure --prefix=/usr --openssldir/usr/openssl | ||||
| make | ||||
| make install (with superuser rights) | ||||
|  | ||||
| so that poco works out of the box | ||||
|  | ||||
|  | ||||
| Windows | ||||
| ======= | ||||
|  | ||||
| The easiest way to install OpenSSL on Windows is to | ||||
| use a binary (prebuild) release, for example the | ||||
| one from Shining Light Productions that comes with | ||||
| a Windows installer. | ||||
|  | ||||
| 1. Download OpenSSL (at least v0.98a) from:  | ||||
|    http://www.slproweb.com/products/Win32OpenSSL.html | ||||
| 2. Install OpenSSL (we assume you install to c:\OpenSSL) | ||||
| 3. Start Visual Studio, go to Tools->Options, under Projects->VC++ Directories | ||||
|    add the following directories: | ||||
|     - Include Files: C:\OpenSSL\include | ||||
|     - Library Files: C:\OpenSSL\lib\VC | ||||
| 4. You are now ready to build NetSSL. | ||||
| NetSSL requires OpenSSL release 0.9.8 or later. | ||||
|  | ||||
| Unix | ||||
| ==== | ||||
|  | ||||
| Most Unix systems already have OpenSSL preinstalled. | ||||
| If your system does not have OpenSSL, please get it from | ||||
| http://www.openssl.org/ or another source. You do not | ||||
| have to build OpenSSL yourself - a binary distribution | ||||
| is fine. | ||||
|  | ||||
| If you do build OpenSSl yourself be sure to call | ||||
|  | ||||
| ./configure --prefix=/usr --openssldir/usr/openssl | ||||
| make | ||||
| make install (with superuser rights) | ||||
|  | ||||
| so that poco works out of the box | ||||
|  | ||||
|  | ||||
| Windows | ||||
| ======= | ||||
|  | ||||
| The easiest way to install OpenSSL on Windows is to | ||||
| use a binary (prebuild) release, for example the | ||||
| one from Shining Light Productions that comes with | ||||
| a Windows installer. | ||||
|  | ||||
| 1. Download OpenSSL (at least v0.98a) from:  | ||||
|    http://www.slproweb.com/products/Win32OpenSSL.html | ||||
| 2. Install OpenSSL (we assume you install to c:\OpenSSL) | ||||
| 3. Start Visual Studio, go to Tools->Options, under Projects->VC++ Directories | ||||
|    add the following directories: | ||||
|     - Include Files: C:\OpenSSL\include | ||||
|     - Library Files: C:\OpenSSL\lib\VC | ||||
| 4. You are now ready to build NetSSL. | ||||
|   | ||||
| @@ -1,81 +1,81 @@ | ||||
| // | ||||
| // AcceptCertificateHandler.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/AcceptCertificateHandler.h#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  AcceptCertificateHandler | ||||
| // | ||||
| // Definition of the AcceptCertificateHandler class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_AcceptCertificateHandler_INCLUDED | ||||
| #define NetSSL_AcceptCertificateHandler_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
| #include "Poco/Net/InvalidCertificateHandler.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class NetSSL_API AcceptCertificateHandler: public InvalidCertificateHandler | ||||
| 	/// A AcceptCertificateHandler is invoked whenever an error  | ||||
| 	/// occurs verifying the certificate. It always accepts | ||||
| 	/// the certificate. Only use this one during testing! | ||||
| { | ||||
| public: | ||||
| 	AcceptCertificateHandler(bool handleErrorsOnServerSide); | ||||
| 		/// Creates the AcceptCertificateHandler | ||||
|  | ||||
| 	virtual ~AcceptCertificateHandler(); | ||||
| 		/// Destroys the AcceptCertificateHandler. | ||||
|  | ||||
| 	void onInvalidCertificate(const void* pSender, VerificationErrorArgs& errorCert); | ||||
| 		/// Receives the questionable certificate in parameter errorCert. If one wants to accept the | ||||
| 		/// certificate, call errorCert.setIgnoreError(true). | ||||
| }; | ||||
|  | ||||
|  | ||||
| // | ||||
| // inlines | ||||
| // | ||||
| inline void AcceptCertificateHandler::onInvalidCertificate(const void*, VerificationErrorArgs& errorCert) | ||||
| { | ||||
| 	errorCert.setIgnoreError(true); | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| #endif // NetSSL_AcceptCertificateHandler_INCLUDED | ||||
| // | ||||
| // AcceptCertificateHandler.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/AcceptCertificateHandler.h#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  AcceptCertificateHandler | ||||
| // | ||||
| // Definition of the AcceptCertificateHandler class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_AcceptCertificateHandler_INCLUDED | ||||
| #define NetSSL_AcceptCertificateHandler_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
| #include "Poco/Net/InvalidCertificateHandler.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class NetSSL_API AcceptCertificateHandler: public InvalidCertificateHandler | ||||
| 	/// A AcceptCertificateHandler is invoked whenever an error  | ||||
| 	/// occurs verifying the certificate. It always accepts | ||||
| 	/// the certificate. Only use this one during testing! | ||||
| { | ||||
| public: | ||||
| 	AcceptCertificateHandler(bool handleErrorsOnServerSide); | ||||
| 		/// Creates the AcceptCertificateHandler | ||||
|  | ||||
| 	virtual ~AcceptCertificateHandler(); | ||||
| 		/// Destroys the AcceptCertificateHandler. | ||||
|  | ||||
| 	void onInvalidCertificate(const void* pSender, VerificationErrorArgs& errorCert); | ||||
| 		/// Receives the questionable certificate in parameter errorCert. If one wants to accept the | ||||
| 		/// certificate, call errorCert.setIgnoreError(true). | ||||
| }; | ||||
|  | ||||
|  | ||||
| // | ||||
| // inlines | ||||
| // | ||||
| inline void AcceptCertificateHandler::onInvalidCertificate(const void*, VerificationErrorArgs& errorCert) | ||||
| { | ||||
| 	errorCert.setIgnoreError(true); | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| #endif // NetSSL_AcceptCertificateHandler_INCLUDED | ||||
|   | ||||
| @@ -1,113 +1,113 @@ | ||||
| // | ||||
| // CertificateHandlerFactory.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/CertificateHandlerFactory.h#2 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  CertificateHandlerFactory | ||||
| // | ||||
| // Definition of the CertificateHandlerFactory class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_CertificateHandlerFactory_INCLUDED | ||||
| #define NetSSL_CertificateHandlerFactory_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class InvalidCertificateHandler; | ||||
|  | ||||
|  | ||||
| class NetSSL_API CertificateHandlerFactory | ||||
| 	/// A CertificateHandlerFactory is responsible for creating InvalidCertificateHandlers. | ||||
| 	/// You don't need to access this class directly. Use the macro | ||||
| 	///     POCO_REGISTER_CHFACTORY(namespace, InvalidCertificateHandlerName)  | ||||
| 	/// instead (see the documentation of InvalidCertificateHandler for an example). | ||||
| { | ||||
| public: | ||||
| 	CertificateHandlerFactory(); | ||||
| 		/// Creates the CertificateHandlerFactory. | ||||
|  | ||||
| 	virtual ~CertificateHandlerFactory(); | ||||
| 		/// Destroys the CertificateHandlerFactory. | ||||
|  | ||||
| 	virtual InvalidCertificateHandler* create(bool server) const = 0; | ||||
| 		/// Creates a new InvalidCertificateHandler. Set server to true if the certificate handler is used on the server side. | ||||
| }; | ||||
|  | ||||
|  | ||||
| class NetSSL_API CertificateHandlerFactoryRegistrar | ||||
| 	/// Registrar class which automatically registers CertificateHandlerFactory at the CertificateHandlerFactoryMgr. | ||||
| 	/// You don't need to access this class directly. Use the macro | ||||
| 	///     POCO_REGISTER_CHFACTORY(namespace, InvalidCertificateHandlerName)  | ||||
| 	/// instead (see the documentation of InvalidCertificateHandler for an example). | ||||
| { | ||||
| public: | ||||
| 	CertificateHandlerFactoryRegistrar(const std::string& name, CertificateHandlerFactory* pFactory); | ||||
| 		/// Registers the CertificateHandlerFactory with the given name at the factory manager. | ||||
|  | ||||
| 	virtual ~CertificateHandlerFactoryRegistrar(); | ||||
| 		/// Destroys the CertificateHandlerFactoryRegistrar. | ||||
| }; | ||||
|  | ||||
| template <typename T> | ||||
| class CertificateHandlerFactoryImpl: public Poco::Net::CertificateHandlerFactory | ||||
| { | ||||
| public: | ||||
| 	CertificateHandlerFactoryImpl() | ||||
| 	{ | ||||
| 	} | ||||
|  | ||||
| 	~CertificateHandlerFactoryImpl() | ||||
| 	{ | ||||
| 	} | ||||
|  | ||||
| 	InvalidCertificateHandler* create(bool server) const | ||||
| 	{ | ||||
| 		return new T(server); | ||||
| 	} | ||||
| }; | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| // DEPRECATED: register the factory directly at the FactoryMgr: | ||||
| // Poco::Net::SSLManager::instance().certificateHandlerFactoryMgr().setFactory(name, new Poco::Net::CertificateHandlerFactoryImpl<MyConsoleHandler>()); | ||||
| #define POCO_REGISTER_CHFACTORY(API, PKCLS)		\ | ||||
| 	static Poco::Net::CertificateHandlerFactoryRegistrar aRegistrar(std::string(#PKCLS), new Poco::Net::CertificateHandlerFactoryImpl<PKCLS>()); | ||||
|  | ||||
|  | ||||
| #endif // NetSSL_CertificateHandlerFactory_INCLUDED | ||||
| // | ||||
| // CertificateHandlerFactory.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/CertificateHandlerFactory.h#2 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  CertificateHandlerFactory | ||||
| // | ||||
| // Definition of the CertificateHandlerFactory class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_CertificateHandlerFactory_INCLUDED | ||||
| #define NetSSL_CertificateHandlerFactory_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class InvalidCertificateHandler; | ||||
|  | ||||
|  | ||||
| class NetSSL_API CertificateHandlerFactory | ||||
| 	/// A CertificateHandlerFactory is responsible for creating InvalidCertificateHandlers. | ||||
| 	/// You don't need to access this class directly. Use the macro | ||||
| 	///     POCO_REGISTER_CHFACTORY(namespace, InvalidCertificateHandlerName)  | ||||
| 	/// instead (see the documentation of InvalidCertificateHandler for an example). | ||||
| { | ||||
| public: | ||||
| 	CertificateHandlerFactory(); | ||||
| 		/// Creates the CertificateHandlerFactory. | ||||
|  | ||||
| 	virtual ~CertificateHandlerFactory(); | ||||
| 		/// Destroys the CertificateHandlerFactory. | ||||
|  | ||||
| 	virtual InvalidCertificateHandler* create(bool server) const = 0; | ||||
| 		/// Creates a new InvalidCertificateHandler. Set server to true if the certificate handler is used on the server side. | ||||
| }; | ||||
|  | ||||
|  | ||||
| class NetSSL_API CertificateHandlerFactoryRegistrar | ||||
| 	/// Registrar class which automatically registers CertificateHandlerFactory at the CertificateHandlerFactoryMgr. | ||||
| 	/// You don't need to access this class directly. Use the macro | ||||
| 	///     POCO_REGISTER_CHFACTORY(namespace, InvalidCertificateHandlerName)  | ||||
| 	/// instead (see the documentation of InvalidCertificateHandler for an example). | ||||
| { | ||||
| public: | ||||
| 	CertificateHandlerFactoryRegistrar(const std::string& name, CertificateHandlerFactory* pFactory); | ||||
| 		/// Registers the CertificateHandlerFactory with the given name at the factory manager. | ||||
|  | ||||
| 	virtual ~CertificateHandlerFactoryRegistrar(); | ||||
| 		/// Destroys the CertificateHandlerFactoryRegistrar. | ||||
| }; | ||||
|  | ||||
| template <typename T> | ||||
| class CertificateHandlerFactoryImpl: public Poco::Net::CertificateHandlerFactory | ||||
| { | ||||
| public: | ||||
| 	CertificateHandlerFactoryImpl() | ||||
| 	{ | ||||
| 	} | ||||
|  | ||||
| 	~CertificateHandlerFactoryImpl() | ||||
| 	{ | ||||
| 	} | ||||
|  | ||||
| 	InvalidCertificateHandler* create(bool server) const | ||||
| 	{ | ||||
| 		return new T(server); | ||||
| 	} | ||||
| }; | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| // DEPRECATED: register the factory directly at the FactoryMgr: | ||||
| // Poco::Net::SSLManager::instance().certificateHandlerFactoryMgr().setFactory(name, new Poco::Net::CertificateHandlerFactoryImpl<MyConsoleHandler>()); | ||||
| #define POCO_REGISTER_CHFACTORY(API, PKCLS)		\ | ||||
| 	static Poco::Net::CertificateHandlerFactoryRegistrar aRegistrar(std::string(#PKCLS), new Poco::Net::CertificateHandlerFactoryImpl<PKCLS>()); | ||||
|  | ||||
|  | ||||
| #endif // NetSSL_CertificateHandlerFactory_INCLUDED | ||||
|   | ||||
| @@ -1,86 +1,86 @@ | ||||
| // | ||||
| // CertificateHandlerFactoryMgr.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/CertificateHandlerFactoryMgr.h#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  CertificateHandlerFactoryMgr | ||||
| // | ||||
| // Definition of the CertificateHandlerFactoryMgr class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_CertificateHandlerFactoryMgr_INCLUDED | ||||
| #define NetSSL_CertificateHandlerFactoryMgr_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
| #include "Poco/Net/CertificateHandlerFactory.h" | ||||
| #include "Poco/SharedPtr.h" | ||||
| #include <map> | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class NetSSL_API CertificateHandlerFactoryMgr | ||||
| 	/// A CertificateHandlerFactoryMgr manages all existing CertificateHandlerFactories. | ||||
| { | ||||
| public: | ||||
| 	typedef std::map<std::string, Poco::SharedPtr<CertificateHandlerFactory> > FactoriesMap; | ||||
| 	 | ||||
| 	CertificateHandlerFactoryMgr(); | ||||
| 		/// Creates the CertificateHandlerFactoryMgr. | ||||
|  | ||||
| 	~CertificateHandlerFactoryMgr(); | ||||
| 		/// Destroys the CertificateHandlerFactoryMgr. | ||||
|  | ||||
| 	void setFactory(const std::string& name, CertificateHandlerFactory* pFactory); | ||||
| 		/// Registers the factory. Class takes ownership of the pointer. | ||||
| 		/// If a factory with the same name already exists, an exception is thrown. | ||||
|  | ||||
| 	bool hasFactory(const std::string& name) const; | ||||
| 		/// Returns true if for the given name a factory is already registered | ||||
| 	 | ||||
| 	const CertificateHandlerFactory* getFactory(const std::string& name) const; | ||||
| 		/// Returns NULL if for the given name a factory does not exist, otherwise the factory is returned | ||||
|  | ||||
| 	void removeFactory(const std::string& name); | ||||
| 		/// Removes the factory from the manager.  | ||||
|  | ||||
| private: | ||||
| 	FactoriesMap _factories; | ||||
| }; | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| #endif // NetSSL_CertificateHandlerFactoryMgr_INCLUDED | ||||
| // | ||||
| // CertificateHandlerFactoryMgr.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/CertificateHandlerFactoryMgr.h#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  CertificateHandlerFactoryMgr | ||||
| // | ||||
| // Definition of the CertificateHandlerFactoryMgr class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_CertificateHandlerFactoryMgr_INCLUDED | ||||
| #define NetSSL_CertificateHandlerFactoryMgr_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
| #include "Poco/Net/CertificateHandlerFactory.h" | ||||
| #include "Poco/SharedPtr.h" | ||||
| #include <map> | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class NetSSL_API CertificateHandlerFactoryMgr | ||||
| 	/// A CertificateHandlerFactoryMgr manages all existing CertificateHandlerFactories. | ||||
| { | ||||
| public: | ||||
| 	typedef std::map<std::string, Poco::SharedPtr<CertificateHandlerFactory> > FactoriesMap; | ||||
| 	 | ||||
| 	CertificateHandlerFactoryMgr(); | ||||
| 		/// Creates the CertificateHandlerFactoryMgr. | ||||
|  | ||||
| 	~CertificateHandlerFactoryMgr(); | ||||
| 		/// Destroys the CertificateHandlerFactoryMgr. | ||||
|  | ||||
| 	void setFactory(const std::string& name, CertificateHandlerFactory* pFactory); | ||||
| 		/// Registers the factory. Class takes ownership of the pointer. | ||||
| 		/// If a factory with the same name already exists, an exception is thrown. | ||||
|  | ||||
| 	bool hasFactory(const std::string& name) const; | ||||
| 		/// Returns true if for the given name a factory is already registered | ||||
| 	 | ||||
| 	const CertificateHandlerFactory* getFactory(const std::string& name) const; | ||||
| 		/// Returns NULL if for the given name a factory does not exist, otherwise the factory is returned | ||||
|  | ||||
| 	void removeFactory(const std::string& name); | ||||
| 		/// Removes the factory from the manager.  | ||||
|  | ||||
| private: | ||||
| 	FactoriesMap _factories; | ||||
| }; | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| #endif // NetSSL_CertificateHandlerFactoryMgr_INCLUDED | ||||
|   | ||||
| @@ -1,71 +1,71 @@ | ||||
| // | ||||
| // ConsoleCertificateHandler.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/ConsoleCertificateHandler.h#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  ConsoleCertificateHandler | ||||
| // | ||||
| // Definition of the ConsoleCertificateHandler class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_ConsoleCertificateHandler_INCLUDED | ||||
| #define NetSSL_ConsoleCertificateHandler_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
| #include "Poco/Net/InvalidCertificateHandler.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class NetSSL_API ConsoleCertificateHandler: public InvalidCertificateHandler | ||||
| 	/// A ConsoleCertificateHandler is invoked whenever an error occurs verifying the certificate.  | ||||
| 	/// The certificate is printed to stdout and the user is asked via console if he wants to accept it. | ||||
| { | ||||
| public: | ||||
| 	ConsoleCertificateHandler(bool handleErrorsOnServerSide); | ||||
| 		/// Creates the ConsoleCertificateHandler. | ||||
|  | ||||
| 	virtual ~ConsoleCertificateHandler(); | ||||
| 		/// Destroys the ConsoleCertificateHandler. | ||||
|  | ||||
| 	void onInvalidCertificate(const void* pSender, VerificationErrorArgs& errorCert); | ||||
| 		/// Prints the certificate to stdout and waits for user input on the console | ||||
| 		/// to decide if a certificate should be accepted/rejected. | ||||
| }; | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| #endif // NetSSL_ConsoleCertificateHandler_INCLUDED | ||||
| // | ||||
| // ConsoleCertificateHandler.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/ConsoleCertificateHandler.h#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  ConsoleCertificateHandler | ||||
| // | ||||
| // Definition of the ConsoleCertificateHandler class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_ConsoleCertificateHandler_INCLUDED | ||||
| #define NetSSL_ConsoleCertificateHandler_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
| #include "Poco/Net/InvalidCertificateHandler.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class NetSSL_API ConsoleCertificateHandler: public InvalidCertificateHandler | ||||
| 	/// A ConsoleCertificateHandler is invoked whenever an error occurs verifying the certificate.  | ||||
| 	/// The certificate is printed to stdout and the user is asked via console if he wants to accept it. | ||||
| { | ||||
| public: | ||||
| 	ConsoleCertificateHandler(bool handleErrorsOnServerSide); | ||||
| 		/// Creates the ConsoleCertificateHandler. | ||||
|  | ||||
| 	virtual ~ConsoleCertificateHandler(); | ||||
| 		/// Destroys the ConsoleCertificateHandler. | ||||
|  | ||||
| 	void onInvalidCertificate(const void* pSender, VerificationErrorArgs& errorCert); | ||||
| 		/// Prints the certificate to stdout and waits for user input on the console | ||||
| 		/// to decide if a certificate should be accepted/rejected. | ||||
| }; | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| #endif // NetSSL_ConsoleCertificateHandler_INCLUDED | ||||
|   | ||||
| @@ -1,112 +1,112 @@ | ||||
| // | ||||
| // HTTPSClientSession.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/HTTPSClientSession.h#3 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: HTTPSClient | ||||
| // Module:  HTTPSClientSession | ||||
| // | ||||
| // Definition of the HTTPSClientSession class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_HTTPSClientSession_INCLUDED | ||||
| #define NetSSL_HTTPSClientSession_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
| #include "Poco/Net/Utility.h" | ||||
| #include "Poco/Net/HTTPClientSession.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class SecureStreamSocket; | ||||
| class HTTPRequest; | ||||
| class HTTPResponse; | ||||
|  | ||||
|  | ||||
| class NetSSL_API HTTPSClientSession: public HTTPClientSession | ||||
| 	/// This class implements the client-side of | ||||
| 	/// a HTTPS session. | ||||
| 	/// | ||||
| 	/// To send a HTTPS request to a HTTPS server, first | ||||
| 	/// instantiate a HTTPSClientSession object and | ||||
| 	/// specify the server's host name and port number. | ||||
| 	/// | ||||
| 	/// Then create a HTTPRequest object, fill it accordingly, | ||||
| 	/// and pass it as argument to the sendRequst() method. | ||||
| 	/// | ||||
| 	/// sendRequest() will return an output stream that can | ||||
| 	/// be used to send the request body, if there is any. | ||||
| 	/// | ||||
| 	/// After you are done sending the request body, create | ||||
| 	/// a HTTPResponse object and pass it to receiveResponse(). | ||||
| 	/// | ||||
| 	/// This will return an input stream that can be used to | ||||
| 	/// read the response body. | ||||
| 	/// | ||||
| 	/// See RFC 2616 <http://www.faqs.org/rfcs/rfc2616.html> for more | ||||
| 	/// information about the HTTP protocol. | ||||
| { | ||||
| public: | ||||
| 	HTTPSClientSession(); | ||||
| 		/// Creates an unconnected HTTPSClientSession. | ||||
|  | ||||
| 	HTTPSClientSession(const SecureStreamSocket& socket); | ||||
| 		/// Creates a HTTPSClientSession using the given socket. | ||||
| 		/// The socket must not be connected. The session | ||||
| 		/// takes ownership of the socket. | ||||
|  | ||||
| 	HTTPSClientSession(const std::string& host, Poco::UInt16 port = Utility::HTTPS_PORT); | ||||
| 		/// Creates a HTTPSClientSession using the given host and port. | ||||
|  | ||||
| 	~HTTPSClientSession(); | ||||
| 		/// Destroys the HTTPSClientSession and closes | ||||
| 		/// the underlying socket. | ||||
|  | ||||
| protected: | ||||
| 	void connect(const SocketAddress& address); | ||||
| 		// Connects the socket to the server. | ||||
| 	 | ||||
| 	std::string getHostInfo() const; | ||||
| 		/// Returns the target host and port number for proxy requests. | ||||
|  | ||||
| private: | ||||
| 	HTTPSClientSession(const HTTPSClientSession&); | ||||
| 	HTTPSClientSession& operator = (const HTTPSClientSession&); | ||||
| }; | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| #endif // Net_HTTPSClientSession_INCLUDED | ||||
| // | ||||
| // HTTPSClientSession.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/HTTPSClientSession.h#3 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: HTTPSClient | ||||
| // Module:  HTTPSClientSession | ||||
| // | ||||
| // Definition of the HTTPSClientSession class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_HTTPSClientSession_INCLUDED | ||||
| #define NetSSL_HTTPSClientSession_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
| #include "Poco/Net/Utility.h" | ||||
| #include "Poco/Net/HTTPClientSession.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class SecureStreamSocket; | ||||
| class HTTPRequest; | ||||
| class HTTPResponse; | ||||
|  | ||||
|  | ||||
| class NetSSL_API HTTPSClientSession: public HTTPClientSession | ||||
| 	/// This class implements the client-side of | ||||
| 	/// a HTTPS session. | ||||
| 	/// | ||||
| 	/// To send a HTTPS request to a HTTPS server, first | ||||
| 	/// instantiate a HTTPSClientSession object and | ||||
| 	/// specify the server's host name and port number. | ||||
| 	/// | ||||
| 	/// Then create a HTTPRequest object, fill it accordingly, | ||||
| 	/// and pass it as argument to the sendRequst() method. | ||||
| 	/// | ||||
| 	/// sendRequest() will return an output stream that can | ||||
| 	/// be used to send the request body, if there is any. | ||||
| 	/// | ||||
| 	/// After you are done sending the request body, create | ||||
| 	/// a HTTPResponse object and pass it to receiveResponse(). | ||||
| 	/// | ||||
| 	/// This will return an input stream that can be used to | ||||
| 	/// read the response body. | ||||
| 	/// | ||||
| 	/// See RFC 2616 <http://www.faqs.org/rfcs/rfc2616.html> for more | ||||
| 	/// information about the HTTP protocol. | ||||
| { | ||||
| public: | ||||
| 	HTTPSClientSession(); | ||||
| 		/// Creates an unconnected HTTPSClientSession. | ||||
|  | ||||
| 	HTTPSClientSession(const SecureStreamSocket& socket); | ||||
| 		/// Creates a HTTPSClientSession using the given socket. | ||||
| 		/// The socket must not be connected. The session | ||||
| 		/// takes ownership of the socket. | ||||
|  | ||||
| 	HTTPSClientSession(const std::string& host, Poco::UInt16 port = Utility::HTTPS_PORT); | ||||
| 		/// Creates a HTTPSClientSession using the given host and port. | ||||
|  | ||||
| 	~HTTPSClientSession(); | ||||
| 		/// Destroys the HTTPSClientSession and closes | ||||
| 		/// the underlying socket. | ||||
|  | ||||
| protected: | ||||
| 	void connect(const SocketAddress& address); | ||||
| 		// Connects the socket to the server. | ||||
| 	 | ||||
| 	std::string getHostInfo() const; | ||||
| 		/// Returns the target host and port number for proxy requests. | ||||
|  | ||||
| private: | ||||
| 	HTTPSClientSession(const HTTPSClientSession&); | ||||
| 	HTTPSClientSession& operator = (const HTTPSClientSession&); | ||||
| }; | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| #endif // Net_HTTPSClientSession_INCLUDED | ||||
|   | ||||
| @@ -1,77 +1,77 @@ | ||||
| // | ||||
| // HTTPSSessionInstantiator.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/HTTPSSessionInstantiator.h#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: HTTPSClient | ||||
| // Module:  HTTPSSessionInstantiator | ||||
| // | ||||
| // Definition of the HTTPSSessionInstantiator class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef Net_HTTPSSessionInstantiator_INCLUDED | ||||
| #define Net_HTTPSSessionInstantiator_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
| #include "Poco/Net/Utility.h" | ||||
| #include "Poco/Net/HTTPSessionInstantiator.h" | ||||
| #include "Poco/URI.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class NetSSL_API HTTPSSessionInstantiator: public HTTPSessionInstantiator | ||||
| 	/// The HTTPSessionInstantiator for HTTPSClientSession. | ||||
| { | ||||
| public: | ||||
| 	HTTPSSessionInstantiator(); | ||||
| 		/// Creates the HTTPSSessionInstantiator. | ||||
|  | ||||
| 	~HTTPSSessionInstantiator(); | ||||
| 		/// Destroys the HTTPSSessionInstantiator. | ||||
|  | ||||
| 	HTTPClientSession* createClientSession(const Poco::URI& uri); | ||||
| 		/// Creates a HTTPSClientSession for the given URI. | ||||
|  | ||||
| 	static void registerInstantiator(); | ||||
| 		/// Registers the instantiator with the global HTTPSessionFactory. | ||||
|  | ||||
| 	static void unregisterInstantiator(); | ||||
| 		/// Unregisters the factory with the global HTTPSessionFactory. | ||||
| }; | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| #endif // Net_HTTPSSessionInstantiator_INCLUDED | ||||
| // | ||||
| // HTTPSSessionInstantiator.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/HTTPSSessionInstantiator.h#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: HTTPSClient | ||||
| // Module:  HTTPSSessionInstantiator | ||||
| // | ||||
| // Definition of the HTTPSSessionInstantiator class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef Net_HTTPSSessionInstantiator_INCLUDED | ||||
| #define Net_HTTPSSessionInstantiator_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
| #include "Poco/Net/Utility.h" | ||||
| #include "Poco/Net/HTTPSessionInstantiator.h" | ||||
| #include "Poco/URI.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class NetSSL_API HTTPSSessionInstantiator: public HTTPSessionInstantiator | ||||
| 	/// The HTTPSessionInstantiator for HTTPSClientSession. | ||||
| { | ||||
| public: | ||||
| 	HTTPSSessionInstantiator(); | ||||
| 		/// Creates the HTTPSSessionInstantiator. | ||||
|  | ||||
| 	~HTTPSSessionInstantiator(); | ||||
| 		/// Destroys the HTTPSSessionInstantiator. | ||||
|  | ||||
| 	HTTPClientSession* createClientSession(const Poco::URI& uri); | ||||
| 		/// Creates a HTTPSClientSession for the given URI. | ||||
|  | ||||
| 	static void registerInstantiator(); | ||||
| 		/// Registers the instantiator with the global HTTPSessionFactory. | ||||
|  | ||||
| 	static void unregisterInstantiator(); | ||||
| 		/// Unregisters the factory with the global HTTPSessionFactory. | ||||
| }; | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| #endif // Net_HTTPSSessionInstantiator_INCLUDED | ||||
|   | ||||
| @@ -1,92 +1,92 @@ | ||||
| // | ||||
| // HTTPSStreamFactory.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/HTTPSStreamFactory.h#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: HTTPSClient | ||||
| // Module:  HTTPSStreamFactory | ||||
| // | ||||
| // Definition of the HTTPSStreamFactory class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_HTTPSStreamFactory_INCLUDED | ||||
| #define NetSSL_HTTPSStreamFactory_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
| #include "Poco/Net/HTTPSession.h" | ||||
| #include "Poco/URIStreamFactory.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class NetSSL_API HTTPSStreamFactory: public Poco::URIStreamFactory | ||||
| 	/// An implementation of the URIStreamFactory interface | ||||
| 	/// that handles Hyper-Text Transfer Protocol (http) URIs. | ||||
| { | ||||
| public: | ||||
| 	HTTPSStreamFactory(); | ||||
| 		/// Creates the HTTPSStreamFactory. | ||||
|  | ||||
| 	HTTPSStreamFactory(const std::string& proxyHost, Poco::UInt16 proxyPort = HTTPSession::HTTP_PORT); | ||||
| 		/// Creates the HTTPSStreamFactory. | ||||
| 		/// | ||||
| 		/// HTTP connections will use the given proxy. | ||||
|  | ||||
| 	~HTTPSStreamFactory(); | ||||
| 		/// Destroys the HTTPSStreamFactory. | ||||
| 		 | ||||
| 	std::istream* open(const Poco::URI& uri); | ||||
| 		/// Creates and opens a HTTPS stream for the given URI. | ||||
| 		/// The URI must be a https://... URI. | ||||
| 		/// | ||||
| 		/// Throws a NetException if anything goes wrong. | ||||
| 		 | ||||
| 	static void registerFactory(); | ||||
| 		/// Registers the HTTPSStreamFactory with the | ||||
| 		/// default URIStreamOpener instance.	 | ||||
| 		 | ||||
| private: | ||||
| 	enum | ||||
| 	{ | ||||
| 		MAX_REDIRECTS = 10 | ||||
| 	}; | ||||
| 	 | ||||
| 	std::string  _proxyHost; | ||||
| 	Poco::UInt16 _proxyPort; | ||||
| }; | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| #endif // Net_HTTPSStreamFactory_INCLUDED | ||||
| // | ||||
| // HTTPSStreamFactory.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/HTTPSStreamFactory.h#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: HTTPSClient | ||||
| // Module:  HTTPSStreamFactory | ||||
| // | ||||
| // Definition of the HTTPSStreamFactory class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_HTTPSStreamFactory_INCLUDED | ||||
| #define NetSSL_HTTPSStreamFactory_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
| #include "Poco/Net/HTTPSession.h" | ||||
| #include "Poco/URIStreamFactory.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class NetSSL_API HTTPSStreamFactory: public Poco::URIStreamFactory | ||||
| 	/// An implementation of the URIStreamFactory interface | ||||
| 	/// that handles Hyper-Text Transfer Protocol (http) URIs. | ||||
| { | ||||
| public: | ||||
| 	HTTPSStreamFactory(); | ||||
| 		/// Creates the HTTPSStreamFactory. | ||||
|  | ||||
| 	HTTPSStreamFactory(const std::string& proxyHost, Poco::UInt16 proxyPort = HTTPSession::HTTP_PORT); | ||||
| 		/// Creates the HTTPSStreamFactory. | ||||
| 		/// | ||||
| 		/// HTTP connections will use the given proxy. | ||||
|  | ||||
| 	~HTTPSStreamFactory(); | ||||
| 		/// Destroys the HTTPSStreamFactory. | ||||
| 		 | ||||
| 	std::istream* open(const Poco::URI& uri); | ||||
| 		/// Creates and opens a HTTPS stream for the given URI. | ||||
| 		/// The URI must be a https://... URI. | ||||
| 		/// | ||||
| 		/// Throws a NetException if anything goes wrong. | ||||
| 		 | ||||
| 	static void registerFactory(); | ||||
| 		/// Registers the HTTPSStreamFactory with the | ||||
| 		/// default URIStreamOpener instance.	 | ||||
| 		 | ||||
| private: | ||||
| 	enum | ||||
| 	{ | ||||
| 		MAX_REDIRECTS = 10 | ||||
| 	}; | ||||
| 	 | ||||
| 	std::string  _proxyHost; | ||||
| 	Poco::UInt16 _proxyPort; | ||||
| }; | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| #endif // Net_HTTPSStreamFactory_INCLUDED | ||||
|   | ||||
| @@ -1,100 +1,100 @@ | ||||
| // | ||||
| // InvalidCertificateHandler.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/InvalidCertificateHandler.h#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  InvalidCertificateHandler | ||||
| // | ||||
| // Definition of the InvalidCertificateHandler class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_InvalidCertificateHandler_INCLUDED | ||||
| #define NetSSL_InvalidCertificateHandler_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
| #include "Poco/Net/VerificationErrorArgs.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class NetSSL_API InvalidCertificateHandler | ||||
| 	/// A InvalidCertificateHandler is invoked whenever an error occurs verifying the certificate. It allows the user | ||||
| 	/// to inspect and accept/reject the certificate. | ||||
| 	/// One can install one's own InvalidCertificateHandler by implementing this interface. Note that | ||||
| 	/// in the cpp file of the subclass the following code must be present (assuming you use the namespace My_API  | ||||
| 	/// and the name of your handler class is MyGuiHandler): | ||||
| 	///     | ||||
| 	///    #include "Poco/Net/CertificateHandlerFactory.h" | ||||
| 	///    ... | ||||
| 	///    POCO_REGISTER_CHFACTORY(My_API, MyGuiHandler) | ||||
| 	/// | ||||
| 	/// One can either set the handler directly in the startup code of the main method of ones application by calling | ||||
| 	/// | ||||
| 	///    SSLManager::instance().initialize(mypassphraseHandler, myguiHandler, mySSLContext) | ||||
| 	/// | ||||
| 	/// or in case one uses Poco::Util::Application one can rely on an XML configuration and put the following entry | ||||
| 	/// under the path openSSL.invalidCertificateHandler: | ||||
| 	///     | ||||
| 	///    <invalidCertificateHandler> | ||||
| 	///        <name>MyGuiHandler<name> | ||||
| 	///        <options> | ||||
| 	///            [...] // Put optional config params for the handler here | ||||
| 	///        </options> | ||||
| 	///    </invalidCertificateHandler> | ||||
| 	/// Note that the name of the InvalidCertificateHandler must be same as the one provided to the POCO_REGISTER_CHFACTORY macro. | ||||
| { | ||||
| public: | ||||
| 	InvalidCertificateHandler(bool handleErrorsOnServerSide); | ||||
| 		/// Creates the InvalidCertificateHandler.  | ||||
| 		/// Set handleErrorsOnServerSide to true if the certificate handler is used on the server side. | ||||
| 		/// Automatically registers at one of the SSLManager::VerificationError events. | ||||
|  | ||||
| 	virtual ~InvalidCertificateHandler(); | ||||
| 		/// Destroys the InvalidCertificateHandler. | ||||
|  | ||||
| 	virtual void onInvalidCertificate(const void* pSender, VerificationErrorArgs& errorCert) = 0; | ||||
| 		/// Receives the questionable certificate in parameter errorCert. If one wants to accept the | ||||
| 		/// certificate, call errorCert.setIgnoreError(true). | ||||
|  | ||||
| protected: | ||||
| 	bool _handleErrorsOnServerSide; | ||||
| 		/// Stores if the certificate handler gets invoked by the server (i.e. a client certificate is wrong) | ||||
| 		/// or the client (a server certificate is wrong) | ||||
| }; | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| #endif // NetSSL_InvalidCertificateHandler_INCLUDED | ||||
| // | ||||
| // InvalidCertificateHandler.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/InvalidCertificateHandler.h#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  InvalidCertificateHandler | ||||
| // | ||||
| // Definition of the InvalidCertificateHandler class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_InvalidCertificateHandler_INCLUDED | ||||
| #define NetSSL_InvalidCertificateHandler_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
| #include "Poco/Net/VerificationErrorArgs.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class NetSSL_API InvalidCertificateHandler | ||||
| 	/// A InvalidCertificateHandler is invoked whenever an error occurs verifying the certificate. It allows the user | ||||
| 	/// to inspect and accept/reject the certificate. | ||||
| 	/// One can install one's own InvalidCertificateHandler by implementing this interface. Note that | ||||
| 	/// in the cpp file of the subclass the following code must be present (assuming you use the namespace My_API  | ||||
| 	/// and the name of your handler class is MyGuiHandler): | ||||
| 	///     | ||||
| 	///    #include "Poco/Net/CertificateHandlerFactory.h" | ||||
| 	///    ... | ||||
| 	///    POCO_REGISTER_CHFACTORY(My_API, MyGuiHandler) | ||||
| 	/// | ||||
| 	/// One can either set the handler directly in the startup code of the main method of ones application by calling | ||||
| 	/// | ||||
| 	///    SSLManager::instance().initialize(mypassphraseHandler, myguiHandler, mySSLContext) | ||||
| 	/// | ||||
| 	/// or in case one uses Poco::Util::Application one can rely on an XML configuration and put the following entry | ||||
| 	/// under the path openSSL.invalidCertificateHandler: | ||||
| 	///     | ||||
| 	///    <invalidCertificateHandler> | ||||
| 	///        <name>MyGuiHandler<name> | ||||
| 	///        <options> | ||||
| 	///            [...] // Put optional config params for the handler here | ||||
| 	///        </options> | ||||
| 	///    </invalidCertificateHandler> | ||||
| 	/// Note that the name of the InvalidCertificateHandler must be same as the one provided to the POCO_REGISTER_CHFACTORY macro. | ||||
| { | ||||
| public: | ||||
| 	InvalidCertificateHandler(bool handleErrorsOnServerSide); | ||||
| 		/// Creates the InvalidCertificateHandler.  | ||||
| 		/// Set handleErrorsOnServerSide to true if the certificate handler is used on the server side. | ||||
| 		/// Automatically registers at one of the SSLManager::VerificationError events. | ||||
|  | ||||
| 	virtual ~InvalidCertificateHandler(); | ||||
| 		/// Destroys the InvalidCertificateHandler. | ||||
|  | ||||
| 	virtual void onInvalidCertificate(const void* pSender, VerificationErrorArgs& errorCert) = 0; | ||||
| 		/// Receives the questionable certificate in parameter errorCert. If one wants to accept the | ||||
| 		/// certificate, call errorCert.setIgnoreError(true). | ||||
|  | ||||
| protected: | ||||
| 	bool _handleErrorsOnServerSide; | ||||
| 		/// Stores if the certificate handler gets invoked by the server (i.e. a client certificate is wrong) | ||||
| 		/// or the client (a server certificate is wrong) | ||||
| }; | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| #endif // NetSSL_InvalidCertificateHandler_INCLUDED | ||||
|   | ||||
| @@ -1,68 +1,68 @@ | ||||
| // | ||||
| // KeyConsoleHandler.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/KeyConsoleHandler.h#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  KeyConsoleHandler | ||||
| // | ||||
| // Definition of the KeyConsoleHandler class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_KeyConsoleHandler_INCLUDED | ||||
| #define NetSSL_KeyConsoleHandler_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
| #include "Poco/Net/PrivateKeyPassphraseHandler.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class NetSSL_API KeyConsoleHandler: public PrivateKeyPassphraseHandler | ||||
| 	/// Class KeyConsoleHandler. Reads the key for a certificate from the console. | ||||
| { | ||||
| public: | ||||
| 	KeyConsoleHandler(bool server); | ||||
| 		/// Creates the KeyConsoleHandler. | ||||
|  | ||||
| 	~KeyConsoleHandler(); | ||||
| 		/// Destroys the KeyConsoleHandler. | ||||
|  | ||||
| 	void onPrivateKeyRequested(const void* pSender, std::string& privateKey); | ||||
| }; | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| #endif // NetSSL_KeyConsoleHandler_INCLUDED | ||||
| // | ||||
| // KeyConsoleHandler.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/KeyConsoleHandler.h#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  KeyConsoleHandler | ||||
| // | ||||
| // Definition of the KeyConsoleHandler class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_KeyConsoleHandler_INCLUDED | ||||
| #define NetSSL_KeyConsoleHandler_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
| #include "Poco/Net/PrivateKeyPassphraseHandler.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class NetSSL_API KeyConsoleHandler: public PrivateKeyPassphraseHandler | ||||
| 	/// Class KeyConsoleHandler. Reads the key for a certificate from the console. | ||||
| { | ||||
| public: | ||||
| 	KeyConsoleHandler(bool server); | ||||
| 		/// Creates the KeyConsoleHandler. | ||||
|  | ||||
| 	~KeyConsoleHandler(); | ||||
| 		/// Destroys the KeyConsoleHandler. | ||||
|  | ||||
| 	void onPrivateKeyRequested(const void* pSender, std::string& privateKey); | ||||
| }; | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| #endif // NetSSL_KeyConsoleHandler_INCLUDED | ||||
|   | ||||
| @@ -1,72 +1,72 @@ | ||||
| // | ||||
| // KeyFileHandler.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/KeyFileHandler.h#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  KeyFileHandler | ||||
| // | ||||
| // Definition of the KeyFileHandler class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_KeyFileHandler_INCLUDED | ||||
| #define NetSSL_KeyFileHandler_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
| #include "Poco/Net/PrivateKeyPassphraseHandler.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class NetSSL_API KeyFileHandler: public PrivateKeyPassphraseHandler | ||||
| 	/// Class KeyFileHandler. Reads the key for a certificate from a configuration file | ||||
| 	/// under the path "openSSL.privateKeyPassphraseHandler.options.password". | ||||
| { | ||||
| public: | ||||
| 	KeyFileHandler(bool server); | ||||
| 		/// Creates the KeyFileHandler. | ||||
|  | ||||
| 	virtual ~KeyFileHandler(); | ||||
| 		/// Destroys the KeyFileHandler. | ||||
|  | ||||
| 	void onPrivateKeyRequested(const void* pSender, std::string& privateKey); | ||||
|  | ||||
| private: | ||||
| 	static const std::string CFG_PRIV_KEY_FILE; | ||||
| }; | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| #endif // NetSSL_KeyFileHandler_INCLUDED | ||||
| // | ||||
| // KeyFileHandler.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/KeyFileHandler.h#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  KeyFileHandler | ||||
| // | ||||
| // Definition of the KeyFileHandler class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_KeyFileHandler_INCLUDED | ||||
| #define NetSSL_KeyFileHandler_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
| #include "Poco/Net/PrivateKeyPassphraseHandler.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class NetSSL_API KeyFileHandler: public PrivateKeyPassphraseHandler | ||||
| 	/// Class KeyFileHandler. Reads the key for a certificate from a configuration file | ||||
| 	/// under the path "openSSL.privateKeyPassphraseHandler.options.password". | ||||
| { | ||||
| public: | ||||
| 	KeyFileHandler(bool server); | ||||
| 		/// Creates the KeyFileHandler. | ||||
|  | ||||
| 	virtual ~KeyFileHandler(); | ||||
| 		/// Destroys the KeyFileHandler. | ||||
|  | ||||
| 	void onPrivateKeyRequested(const void* pSender, std::string& privateKey); | ||||
|  | ||||
| private: | ||||
| 	static const std::string CFG_PRIV_KEY_FILE; | ||||
| }; | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| #endif // NetSSL_KeyFileHandler_INCLUDED | ||||
|   | ||||
| @@ -1,92 +1,92 @@ | ||||
| // | ||||
| // NetSSL.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/NetSSL.h#2 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  OpenSSL | ||||
| // | ||||
| // Basic definitions for the Poco OpenSSL library. | ||||
| // This file must be the first file included by every other OpenSSL | ||||
| // header file. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_NetSSL_INCLUDED | ||||
| #define NetSSL_NetSSL_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/Net.h" | ||||
|  | ||||
|  | ||||
| // | ||||
| // The following block is the standard way of creating macros which make exporting | ||||
| // from a DLL simpler. All files within this DLL are compiled with the NetSSL_EXPORTS | ||||
| // symbol defined on the command line. this symbol should not be defined on any project | ||||
| // that uses this DLL. This way any other project whose source files include this file see | ||||
| // NetSSL_API functions as being imported from a DLL, wheras this DLL sees symbols | ||||
| // defined with this macro as being exported. | ||||
| // | ||||
| #if (defined(_WIN32) || defined(__CYGWIN__)) && defined(POCO_DLL) | ||||
| 	#if defined(NetSSL_EXPORTS) | ||||
| 		#define NetSSL_API __declspec(dllexport) | ||||
| 	#else | ||||
| 		#define NetSSL_API __declspec(dllimport) | ||||
| 	#endif | ||||
| #endif | ||||
|  | ||||
|  | ||||
| #if !defined(NetSSL_API) | ||||
| 	#define NetSSL_API | ||||
| #endif | ||||
|  | ||||
|  | ||||
| // | ||||
| // Automatically link NetSSL library. | ||||
| // | ||||
| #if defined(_MSC_VER) | ||||
| 	#if !defined(POCO_NO_AUTOMATIC_LIBS) && !defined(NetSSL_EXPORTS) | ||||
| 		#if defined(POCO_DLL) | ||||
| 			#if defined(_DEBUG) | ||||
| 				#pragma comment(lib, "PocoNetSSLd.lib") | ||||
| 			#else | ||||
| 				#pragma comment(lib, "PocoNetSSL.lib") | ||||
| 			#endif | ||||
| 		#else | ||||
| 			#if defined(_DEBUG) | ||||
| 				#pragma comment(lib, "PocoNetSSLmtd.lib") | ||||
| 			#else | ||||
| 				#pragma comment(lib, "PocoNetSSLmt.lib") | ||||
| 			#endif | ||||
| 		#endif | ||||
| 	#endif | ||||
| #endif | ||||
|  | ||||
|  | ||||
| #endif // NetSSL_NetSSL_INCLUDED | ||||
| // | ||||
| // NetSSL.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/NetSSL.h#2 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  OpenSSL | ||||
| // | ||||
| // Basic definitions for the Poco OpenSSL library. | ||||
| // This file must be the first file included by every other OpenSSL | ||||
| // header file. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_NetSSL_INCLUDED | ||||
| #define NetSSL_NetSSL_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/Net.h" | ||||
|  | ||||
|  | ||||
| // | ||||
| // The following block is the standard way of creating macros which make exporting | ||||
| // from a DLL simpler. All files within this DLL are compiled with the NetSSL_EXPORTS | ||||
| // symbol defined on the command line. this symbol should not be defined on any project | ||||
| // that uses this DLL. This way any other project whose source files include this file see | ||||
| // NetSSL_API functions as being imported from a DLL, wheras this DLL sees symbols | ||||
| // defined with this macro as being exported. | ||||
| // | ||||
| #if (defined(_WIN32) || defined(__CYGWIN__)) && defined(POCO_DLL) | ||||
| 	#if defined(NetSSL_EXPORTS) | ||||
| 		#define NetSSL_API __declspec(dllexport) | ||||
| 	#else | ||||
| 		#define NetSSL_API __declspec(dllimport) | ||||
| 	#endif | ||||
| #endif | ||||
|  | ||||
|  | ||||
| #if !defined(NetSSL_API) | ||||
| 	#define NetSSL_API | ||||
| #endif | ||||
|  | ||||
|  | ||||
| // | ||||
| // Automatically link NetSSL library. | ||||
| // | ||||
| #if defined(_MSC_VER) | ||||
| 	#if !defined(POCO_NO_AUTOMATIC_LIBS) && !defined(NetSSL_EXPORTS) | ||||
| 		#if defined(POCO_DLL) | ||||
| 			#if defined(_DEBUG) | ||||
| 				#pragma comment(lib, "PocoNetSSLd.lib") | ||||
| 			#else | ||||
| 				#pragma comment(lib, "PocoNetSSL.lib") | ||||
| 			#endif | ||||
| 		#else | ||||
| 			#if defined(_DEBUG) | ||||
| 				#pragma comment(lib, "PocoNetSSLmtd.lib") | ||||
| 			#else | ||||
| 				#pragma comment(lib, "PocoNetSSLmt.lib") | ||||
| 			#endif | ||||
| 		#endif | ||||
| 	#endif | ||||
| #endif | ||||
|  | ||||
|  | ||||
| #endif // NetSSL_NetSSL_INCLUDED | ||||
|   | ||||
| @@ -1,115 +1,115 @@ | ||||
| // | ||||
| // PrivateKeyFactory.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/PrivateKeyFactory.h#2 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  PrivateKeyFactory | ||||
| // | ||||
| // Definition of the PrivateKeyFactory class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_PrivateKeyFactory_INCLUDED | ||||
| #define NetSSL_PrivateKeyFactory_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class PrivateKeyPassphraseHandler; | ||||
|  | ||||
|  | ||||
| class NetSSL_API PrivateKeyFactory | ||||
| 	/// A PrivateKeyFactory is responsible for creating PrivateKeyPassphraseHandlers. | ||||
| 	/// You don't need to access this class directly. Use the macro | ||||
| 	///     POCO_REGISTER_KEYFACTORY(namespace, PrivateKeyPassphraseHandlerName)  | ||||
| 	/// instead (see the documentation of PrivateKeyPassphraseHandler for an example). | ||||
| { | ||||
| public: | ||||
| 	PrivateKeyFactory(); | ||||
| 		/// Creates the PrivateKeyFactory. | ||||
|  | ||||
| 	virtual ~PrivateKeyFactory(); | ||||
| 		/// Destroys the PrivateKeyFactory. | ||||
|  | ||||
| 	virtual PrivateKeyPassphraseHandler* create(bool onServer) const = 0; | ||||
| 		/// Creates a new PrivateKeyPassphraseHandler | ||||
| }; | ||||
|  | ||||
|  | ||||
| class NetSSL_API PrivateKeyFactoryRegistrar | ||||
| 	/// Registrar class which automatically registers PrivateKeyFactories at the PrivateKeyFactoryMgr. | ||||
| 	/// You don't need to access this class directly. Use the macro | ||||
| 	///     POCO_REGISTER_KEYFACTORY(namespace, PrivateKeyPassphraseHandlerName)  | ||||
| 	/// instead (see the documentation of PrivateKeyPassphraseHandler for an example). | ||||
|  | ||||
| { | ||||
| public: | ||||
| 	PrivateKeyFactoryRegistrar(const std::string& name, PrivateKeyFactory* pFactory); | ||||
| 		/// Registers the PrivateKeyFactory with the given name at the factory manager. | ||||
|  | ||||
| 	virtual ~PrivateKeyFactoryRegistrar(); | ||||
| 		/// Destroys the PrivateKeyFactoryRegistrar. | ||||
| }; | ||||
|  | ||||
|  | ||||
| template<typename T> | ||||
| class PrivateKeyFactoryImpl: public Poco::Net::PrivateKeyFactory | ||||
| { | ||||
| public: | ||||
| 	PrivateKeyFactoryImpl() | ||||
| 	{ | ||||
| 	} | ||||
|  | ||||
| 	~PrivateKeyFactoryImpl() | ||||
| 	{ | ||||
| 	} | ||||
|  | ||||
| 	PrivateKeyPassphraseHandler* create(bool server) const | ||||
| 	{ | ||||
| 		return new T(server); | ||||
| 	} | ||||
| }; | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| // DEPRECATED: register the factory directly at the FactoryMgr: | ||||
| // Poco::Net::SSLManager::instance().privateKeyFactoryMgr().setFactory(name, new Poco::Net::PrivateKeyFactoryImpl<MyKeyHandler>()); | ||||
| #define POCO_REGISTER_KEYFACTORY(API, PKCLS)	\ | ||||
| 	static Poco::Net::PrivateKeyFactoryRegistrar aRegistrar(std::string(#PKCLS), new Poco::Net::PrivateKeyFactoryImpl<PKCLS>()); | ||||
|  | ||||
|  | ||||
| #endif // NetSSL_PrivateKeyFactory_INCLUDED | ||||
| // | ||||
| // PrivateKeyFactory.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/PrivateKeyFactory.h#2 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  PrivateKeyFactory | ||||
| // | ||||
| // Definition of the PrivateKeyFactory class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_PrivateKeyFactory_INCLUDED | ||||
| #define NetSSL_PrivateKeyFactory_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class PrivateKeyPassphraseHandler; | ||||
|  | ||||
|  | ||||
| class NetSSL_API PrivateKeyFactory | ||||
| 	/// A PrivateKeyFactory is responsible for creating PrivateKeyPassphraseHandlers. | ||||
| 	/// You don't need to access this class directly. Use the macro | ||||
| 	///     POCO_REGISTER_KEYFACTORY(namespace, PrivateKeyPassphraseHandlerName)  | ||||
| 	/// instead (see the documentation of PrivateKeyPassphraseHandler for an example). | ||||
| { | ||||
| public: | ||||
| 	PrivateKeyFactory(); | ||||
| 		/// Creates the PrivateKeyFactory. | ||||
|  | ||||
| 	virtual ~PrivateKeyFactory(); | ||||
| 		/// Destroys the PrivateKeyFactory. | ||||
|  | ||||
| 	virtual PrivateKeyPassphraseHandler* create(bool onServer) const = 0; | ||||
| 		/// Creates a new PrivateKeyPassphraseHandler | ||||
| }; | ||||
|  | ||||
|  | ||||
| class NetSSL_API PrivateKeyFactoryRegistrar | ||||
| 	/// Registrar class which automatically registers PrivateKeyFactories at the PrivateKeyFactoryMgr. | ||||
| 	/// You don't need to access this class directly. Use the macro | ||||
| 	///     POCO_REGISTER_KEYFACTORY(namespace, PrivateKeyPassphraseHandlerName)  | ||||
| 	/// instead (see the documentation of PrivateKeyPassphraseHandler for an example). | ||||
|  | ||||
| { | ||||
| public: | ||||
| 	PrivateKeyFactoryRegistrar(const std::string& name, PrivateKeyFactory* pFactory); | ||||
| 		/// Registers the PrivateKeyFactory with the given name at the factory manager. | ||||
|  | ||||
| 	virtual ~PrivateKeyFactoryRegistrar(); | ||||
| 		/// Destroys the PrivateKeyFactoryRegistrar. | ||||
| }; | ||||
|  | ||||
|  | ||||
| template<typename T> | ||||
| class PrivateKeyFactoryImpl: public Poco::Net::PrivateKeyFactory | ||||
| { | ||||
| public: | ||||
| 	PrivateKeyFactoryImpl() | ||||
| 	{ | ||||
| 	} | ||||
|  | ||||
| 	~PrivateKeyFactoryImpl() | ||||
| 	{ | ||||
| 	} | ||||
|  | ||||
| 	PrivateKeyPassphraseHandler* create(bool server) const | ||||
| 	{ | ||||
| 		return new T(server); | ||||
| 	} | ||||
| }; | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| // DEPRECATED: register the factory directly at the FactoryMgr: | ||||
| // Poco::Net::SSLManager::instance().privateKeyFactoryMgr().setFactory(name, new Poco::Net::PrivateKeyFactoryImpl<MyKeyHandler>()); | ||||
| #define POCO_REGISTER_KEYFACTORY(API, PKCLS)	\ | ||||
| 	static Poco::Net::PrivateKeyFactoryRegistrar aRegistrar(std::string(#PKCLS), new Poco::Net::PrivateKeyFactoryImpl<PKCLS>()); | ||||
|  | ||||
|  | ||||
| #endif // NetSSL_PrivateKeyFactory_INCLUDED | ||||
|   | ||||
| @@ -1,86 +1,86 @@ | ||||
| // | ||||
| // PrivateKeyFactoryMgr.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/PrivateKeyFactoryMgr.h#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  PrivateKeyFactoryMgr | ||||
| // | ||||
| // Definition of the PrivateKeyFactoryMgr class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_PrivateKeyFactoryMgr_INCLUDED | ||||
| #define NetSSL_PrivateKeyFactoryMgr_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
| #include "Poco/Net/PrivateKeyFactory.h" | ||||
| #include "Poco/SharedPtr.h" | ||||
| #include <map> | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class NetSSL_API PrivateKeyFactoryMgr | ||||
| 	/// A PrivateKeyFactoryMgr manages all existing PrivateKeyFactories. | ||||
| { | ||||
| public: | ||||
| 	typedef std::map<std::string, Poco::SharedPtr<PrivateKeyFactory> > FactoriesMap; | ||||
| 	 | ||||
| 	PrivateKeyFactoryMgr(); | ||||
| 		/// Creates the PrivateKeyFactoryMgr. | ||||
|  | ||||
| 	~PrivateKeyFactoryMgr(); | ||||
| 		/// Destroys the PrivateKeyFactoryMgr. | ||||
|  | ||||
| 	void setFactory(const std::string& name, PrivateKeyFactory* pFactory); | ||||
| 		/// Registers the factory. Class takes ownership of the pointer. | ||||
| 		/// If a factory with the same name already exists, an exception is thrown. | ||||
|  | ||||
| 	bool hasFactory(const std::string& name) const; | ||||
| 		/// Returns true if for the given name a factory is already registered | ||||
| 	 | ||||
| 	const PrivateKeyFactory* getFactory(const std::string& name) const; | ||||
| 		/// Returns NULL if for the given name a factory does not exist, otherwise the factory is returned | ||||
|  | ||||
| 	void removeFactory(const std::string& name); | ||||
| 		/// Removes the factory from the manager.  | ||||
|  | ||||
| private: | ||||
| 	FactoriesMap _factories; | ||||
| }; | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| #endif // NetSSL_PrivateKeyFactoryMgr_INCLUDED | ||||
| // | ||||
| // PrivateKeyFactoryMgr.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/PrivateKeyFactoryMgr.h#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  PrivateKeyFactoryMgr | ||||
| // | ||||
| // Definition of the PrivateKeyFactoryMgr class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_PrivateKeyFactoryMgr_INCLUDED | ||||
| #define NetSSL_PrivateKeyFactoryMgr_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
| #include "Poco/Net/PrivateKeyFactory.h" | ||||
| #include "Poco/SharedPtr.h" | ||||
| #include <map> | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class NetSSL_API PrivateKeyFactoryMgr | ||||
| 	/// A PrivateKeyFactoryMgr manages all existing PrivateKeyFactories. | ||||
| { | ||||
| public: | ||||
| 	typedef std::map<std::string, Poco::SharedPtr<PrivateKeyFactory> > FactoriesMap; | ||||
| 	 | ||||
| 	PrivateKeyFactoryMgr(); | ||||
| 		/// Creates the PrivateKeyFactoryMgr. | ||||
|  | ||||
| 	~PrivateKeyFactoryMgr(); | ||||
| 		/// Destroys the PrivateKeyFactoryMgr. | ||||
|  | ||||
| 	void setFactory(const std::string& name, PrivateKeyFactory* pFactory); | ||||
| 		/// Registers the factory. Class takes ownership of the pointer. | ||||
| 		/// If a factory with the same name already exists, an exception is thrown. | ||||
|  | ||||
| 	bool hasFactory(const std::string& name) const; | ||||
| 		/// Returns true if for the given name a factory is already registered | ||||
| 	 | ||||
| 	const PrivateKeyFactory* getFactory(const std::string& name) const; | ||||
| 		/// Returns NULL if for the given name a factory does not exist, otherwise the factory is returned | ||||
|  | ||||
| 	void removeFactory(const std::string& name); | ||||
| 		/// Removes the factory from the manager.  | ||||
|  | ||||
| private: | ||||
| 	FactoriesMap _factories; | ||||
| }; | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| #endif // NetSSL_PrivateKeyFactoryMgr_INCLUDED | ||||
|   | ||||
| @@ -1,105 +1,105 @@ | ||||
| // | ||||
| // PrivateKeyPassphraseHandler.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/PrivateKeyPassphraseHandler.h#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  PrivateKeyPassphraseHandler | ||||
| // | ||||
| // Definition of the PrivateKeyPassphraseHandler class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_PrivateKeyPassphraseHandler_INCLUDED | ||||
| #define NetSSL_PrivateKeyPassphraseHandler_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class NetSSL_API PrivateKeyPassphraseHandler | ||||
| 	/// A passphrase handler is needed whenever the private key of a certificate is loaded and the certificate is protected | ||||
| 	/// by a passphrase. The PrivateKeyPassphraseHandler's task is to provide that passphrase. | ||||
| 	/// One can install one's own PrivateKeyPassphraseHandler by implementing this interface. Note that | ||||
| 	/// in the cpp file of the subclass the following code must be present (assuming you use the namespace My_API  | ||||
| 	/// and the name of your handler class is MyGuiHandler): | ||||
| 	///     | ||||
| 	///    #include "Poco/Net/PrivateKeyFactory.h" | ||||
| 	///    ... | ||||
| 	///    POCO_REGISTER_KEYFACTORY(My_API, MyGuiHandler) | ||||
| 	/// | ||||
| 	/// One can either set the handler directly in the startup code of the main method of ones application by calling | ||||
| 	/// | ||||
| 	///    SSLManager::instance().initialize(myguiHandler, myInvalidCertificateHandler, mySSLContext) | ||||
| 	/// | ||||
| 	/// or in case one's application extends Poco::Util::Application one can use an XML configuration and put the following entry | ||||
| 	/// under the path openSSL.privateKeyPassphraseHandler: | ||||
| 	///     | ||||
| 	///    <privateKeyPassphraseHandler> | ||||
| 	///        <name>MyGuiHandler</name> | ||||
| 	///        <options> | ||||
| 	///            [...] // Put optional config params for the handler here | ||||
| 	///        </options> | ||||
| 	///    </privateKeyPassphraseHandler> | ||||
| 	/// Note that the name of the passphrase handler must be same as the one provided to the POCO_REGISTER_KEYFACTORY macro. | ||||
| { | ||||
| public: | ||||
| 	PrivateKeyPassphraseHandler(bool onServerSide); | ||||
| 		/// Creates the PrivateKeyPassphraseHandler. Automatically registers at the SSLManager::PrivateKeyPassword event. | ||||
|  | ||||
| 	virtual ~PrivateKeyPassphraseHandler(); | ||||
| 		/// Destroys the PrivateKeyPassphraseHandler. | ||||
|  | ||||
| 	virtual void onPrivateKeyRequested(const void* pSender, std::string& privateKey) = 0; | ||||
| 		/// Returns the requested private key in the parameter privateKey. | ||||
|  | ||||
| 	bool serverSide() const; | ||||
|  | ||||
| private: | ||||
| 	bool _serverSide; | ||||
| }; | ||||
|  | ||||
|  | ||||
| // | ||||
| // inlines | ||||
| // | ||||
| inline bool PrivateKeyPassphraseHandler::serverSide() const | ||||
| { | ||||
| 	return _serverSide; | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| #endif // NetSSL_PrivateKeyPassphraseHandler_INCLUDED | ||||
| // | ||||
| // PrivateKeyPassphraseHandler.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/PrivateKeyPassphraseHandler.h#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  PrivateKeyPassphraseHandler | ||||
| // | ||||
| // Definition of the PrivateKeyPassphraseHandler class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_PrivateKeyPassphraseHandler_INCLUDED | ||||
| #define NetSSL_PrivateKeyPassphraseHandler_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class NetSSL_API PrivateKeyPassphraseHandler | ||||
| 	/// A passphrase handler is needed whenever the private key of a certificate is loaded and the certificate is protected | ||||
| 	/// by a passphrase. The PrivateKeyPassphraseHandler's task is to provide that passphrase. | ||||
| 	/// One can install one's own PrivateKeyPassphraseHandler by implementing this interface. Note that | ||||
| 	/// in the cpp file of the subclass the following code must be present (assuming you use the namespace My_API  | ||||
| 	/// and the name of your handler class is MyGuiHandler): | ||||
| 	///     | ||||
| 	///    #include "Poco/Net/PrivateKeyFactory.h" | ||||
| 	///    ... | ||||
| 	///    POCO_REGISTER_KEYFACTORY(My_API, MyGuiHandler) | ||||
| 	/// | ||||
| 	/// One can either set the handler directly in the startup code of the main method of ones application by calling | ||||
| 	/// | ||||
| 	///    SSLManager::instance().initialize(myguiHandler, myInvalidCertificateHandler, mySSLContext) | ||||
| 	/// | ||||
| 	/// or in case one's application extends Poco::Util::Application one can use an XML configuration and put the following entry | ||||
| 	/// under the path openSSL.privateKeyPassphraseHandler: | ||||
| 	///     | ||||
| 	///    <privateKeyPassphraseHandler> | ||||
| 	///        <name>MyGuiHandler</name> | ||||
| 	///        <options> | ||||
| 	///            [...] // Put optional config params for the handler here | ||||
| 	///        </options> | ||||
| 	///    </privateKeyPassphraseHandler> | ||||
| 	/// Note that the name of the passphrase handler must be same as the one provided to the POCO_REGISTER_KEYFACTORY macro. | ||||
| { | ||||
| public: | ||||
| 	PrivateKeyPassphraseHandler(bool onServerSide); | ||||
| 		/// Creates the PrivateKeyPassphraseHandler. Automatically registers at the SSLManager::PrivateKeyPassword event. | ||||
|  | ||||
| 	virtual ~PrivateKeyPassphraseHandler(); | ||||
| 		/// Destroys the PrivateKeyPassphraseHandler. | ||||
|  | ||||
| 	virtual void onPrivateKeyRequested(const void* pSender, std::string& privateKey) = 0; | ||||
| 		/// Returns the requested private key in the parameter privateKey. | ||||
|  | ||||
| 	bool serverSide() const; | ||||
|  | ||||
| private: | ||||
| 	bool _serverSide; | ||||
| }; | ||||
|  | ||||
|  | ||||
| // | ||||
| // inlines | ||||
| // | ||||
| inline bool PrivateKeyPassphraseHandler::serverSide() const | ||||
| { | ||||
| 	return _serverSide; | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| #endif // NetSSL_PrivateKeyPassphraseHandler_INCLUDED | ||||
|   | ||||
| @@ -1,59 +1,59 @@ | ||||
| // | ||||
| // SSLException.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/SSLException.h#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  SSLException | ||||
| // | ||||
| // Definition of the SSLException class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_SSLException_INCLUDED | ||||
| #define NetSSL_SSLException_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
| #include "Poco/Net/NetException.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| POCO_DECLARE_EXCEPTION(NetSSL_API, SSLException, NetException) | ||||
| POCO_DECLARE_EXCEPTION(NetSSL_API, SSLContextException, SSLException) | ||||
| POCO_DECLARE_EXCEPTION(NetSSL_API, InvalidCertificateException, SSLException) | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| #endif // NetSSL_SSLException_INCLUDED | ||||
| // | ||||
| // SSLException.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/SSLException.h#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  SSLException | ||||
| // | ||||
| // Definition of the SSLException class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_SSLException_INCLUDED | ||||
| #define NetSSL_SSLException_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
| #include "Poco/Net/NetException.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| POCO_DECLARE_EXCEPTION(NetSSL_API, SSLException, NetException) | ||||
| POCO_DECLARE_EXCEPTION(NetSSL_API, SSLContextException, SSLException) | ||||
| POCO_DECLARE_EXCEPTION(NetSSL_API, InvalidCertificateException, SSLException) | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| #endif // NetSSL_SSLException_INCLUDED | ||||
|   | ||||
| @@ -1,101 +1,101 @@ | ||||
| // | ||||
| // SSLInitializer.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/SSLInitializer.h#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  SSLInitializer | ||||
| // | ||||
| // Definition of the SSLInitializer class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_SSLInitializer_INCLUDED | ||||
| #define NetSSL_SSLInitializer_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
| #include "Poco/Mutex.h" | ||||
|  | ||||
|  | ||||
| extern "C" | ||||
| { | ||||
| 	struct CRYPTO_dynlock_value | ||||
| 	{ | ||||
| 		Poco::FastMutex _mutex; | ||||
| 	}; | ||||
| } | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class NetSSL_API SSLInitializer | ||||
| 	/// Initalizes the OpenSSL library. | ||||
| 	/// | ||||
| 	/// The class ensures the earliest initialization and the | ||||
| 	/// latest shutdown of the OpenSSL library. | ||||
| { | ||||
| public: | ||||
| 	SSLInitializer(); | ||||
| 		/// Automatically initialize OpenSSL on startup. | ||||
| 		 | ||||
| 	~SSLInitializer(); | ||||
| 		/// Automatically shut down OpenSSL on exit. | ||||
| 	 | ||||
| 	static void initialize(); | ||||
| 		/// Initializes the OpenSSL machinery. | ||||
|  | ||||
| 	static void uninitialize(); | ||||
| 		/// Shuts down the OpenSSL machinery. | ||||
|  | ||||
| protected: | ||||
| 	enum | ||||
| 	{ | ||||
| 		SEEDSIZE = 256 | ||||
| 	}; | ||||
| 	 | ||||
| 	// OpenSSL multithreading support | ||||
| 	static void lock(int mode, int n, const char* file, int line); | ||||
| 	static unsigned long id(); | ||||
| 	static struct CRYPTO_dynlock_value* dynlockCreate(const char* file, int line); | ||||
| 	static void dynlock(int mode, struct CRYPTO_dynlock_value* lock, const char* file, int line); | ||||
| 	static void dynlockDestroy(struct CRYPTO_dynlock_value* lock, const char* file, int line); | ||||
|  | ||||
| private: | ||||
| 	static Poco::FastMutex* _mutexes; | ||||
| 	static int _rc; | ||||
| }; | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| #endif // NetSSL_SSLInitializer_INCLUDED | ||||
| // | ||||
| // SSLInitializer.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/SSLInitializer.h#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  SSLInitializer | ||||
| // | ||||
| // Definition of the SSLInitializer class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_SSLInitializer_INCLUDED | ||||
| #define NetSSL_SSLInitializer_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
| #include "Poco/Mutex.h" | ||||
|  | ||||
|  | ||||
| extern "C" | ||||
| { | ||||
| 	struct CRYPTO_dynlock_value | ||||
| 	{ | ||||
| 		Poco::FastMutex _mutex; | ||||
| 	}; | ||||
| } | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class NetSSL_API SSLInitializer | ||||
| 	/// Initalizes the OpenSSL library. | ||||
| 	/// | ||||
| 	/// The class ensures the earliest initialization and the | ||||
| 	/// latest shutdown of the OpenSSL library. | ||||
| { | ||||
| public: | ||||
| 	SSLInitializer(); | ||||
| 		/// Automatically initialize OpenSSL on startup. | ||||
| 		 | ||||
| 	~SSLInitializer(); | ||||
| 		/// Automatically shut down OpenSSL on exit. | ||||
| 	 | ||||
| 	static void initialize(); | ||||
| 		/// Initializes the OpenSSL machinery. | ||||
|  | ||||
| 	static void uninitialize(); | ||||
| 		/// Shuts down the OpenSSL machinery. | ||||
|  | ||||
| protected: | ||||
| 	enum | ||||
| 	{ | ||||
| 		SEEDSIZE = 256 | ||||
| 	}; | ||||
| 	 | ||||
| 	// OpenSSL multithreading support | ||||
| 	static void lock(int mode, int n, const char* file, int line); | ||||
| 	static unsigned long id(); | ||||
| 	static struct CRYPTO_dynlock_value* dynlockCreate(const char* file, int line); | ||||
| 	static void dynlock(int mode, struct CRYPTO_dynlock_value* lock, const char* file, int line); | ||||
| 	static void dynlockDestroy(struct CRYPTO_dynlock_value* lock, const char* file, int line); | ||||
|  | ||||
| private: | ||||
| 	static Poco::FastMutex* _mutexes; | ||||
| 	static int _rc; | ||||
| }; | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| #endif // NetSSL_SSLInitializer_INCLUDED | ||||
|   | ||||
| @@ -1,271 +1,271 @@ | ||||
| // | ||||
| // SSLManager.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/SSLManager.h#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  SSLManager | ||||
| // | ||||
| // Definition of the SSLManager class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_SSLManager_INCLUDED | ||||
| #define NetSSL_SSLManager_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
| #include "Poco/Net/VerificationErrorArgs.h" | ||||
| #include "Poco/Net/Context.h" | ||||
| #include "Poco/Net/PrivateKeyFactoryMgr.h" | ||||
| #include "Poco/Net/CertificateHandlerFactoryMgr.h" | ||||
| #include "Poco/Net/InvalidCertificateHandler.h" | ||||
| #include "Poco/BasicEvent.h" | ||||
| #include "Poco/SharedPtr.h" | ||||
| #include <openssl/ssl.h> | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class Context; | ||||
|  | ||||
|  | ||||
| class NetSSL_API SSLManager | ||||
| 	/// Class SSLManager. Singleton for holding the default server/client Context and PrivateKeyPassphraseHandler. | ||||
| 	/// Either initialize via Poco::Util::Application or via the | ||||
| 	/// initialize methods of the singleton. Note that the latter initialization must happen very early | ||||
| 	/// during program startup before somebody calls defaultClientContext()/defaultServerContext()  | ||||
| 	/// or any of the passPhraseHandler methods (which tries to auto-initialize | ||||
| 	/// the context and passphrase handler based on an Poco::Util::Application configuration). | ||||
| 	/// An exemplary documentation which sets either the server or client defaultcontext and creates a PrivateKeyPassphraseHandler | ||||
| 	/// that reads the password from the XML file looks like this: | ||||
| 	/// | ||||
| 	///    <AppConfig> | ||||
| 	///       <openSSL> | ||||
| 	///          <server|client> | ||||
| 	///            <privateKeyFile>any.pem</privateKeyFile> | ||||
| 	///            <caConfig>rootcert.pem</caConfig> | ||||
| 	///            <verificationMode>relaxed</verificationMode> | ||||
| 	///            <verificationDepth>9</verificationDepth> | ||||
| 	///            <loadDefaultCAFile>true</loadDefaultCAFile> | ||||
| 	///            <cypherList>ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH</cypherList> | ||||
| 	///            <privateKeyPassphraseHandler> | ||||
| 	///                <name>KeyFileHandler</name> | ||||
| 	///                <options> | ||||
| 	///                    <password>test</password> | ||||
| 	///                </options> | ||||
| 	///            </privateKeyPassphraseHandler> | ||||
| 	///            <invalidCertificateHandler> | ||||
| 	///                 <name>ConsoleCertificateHandler</name> | ||||
| 	///                 <options> | ||||
| 	///                 </options> | ||||
| 	///            </invalidCertificateHandler> | ||||
| 	///          </server|client> | ||||
| 	///       </openSSL> | ||||
| 	///    </AppConfig> | ||||
| 	/// | ||||
| { | ||||
| public: | ||||
| 	typedef Poco::SharedPtr<Context> ContextPtr; | ||||
| 	typedef Poco::SharedPtr<PrivateKeyPassphraseHandler> PrivateKeyPassphraseHandlerPtr; | ||||
| 	typedef Poco::SharedPtr<InvalidCertificateHandler> InvalidCertificateHandlerPtr; | ||||
|  | ||||
| 	Poco::BasicEvent<VerificationErrorArgs>  ServerVerificationError; | ||||
| 		/// Thrown whenever a certificate error is detected by the server during a handshake | ||||
|  | ||||
| 	Poco::BasicEvent<VerificationErrorArgs>  ClientVerificationError; | ||||
| 		/// Thrown whenever a certificate error is detected by the client during a handshake | ||||
|  | ||||
| 	Poco::BasicEvent<std::string> PrivateKeyPassPhrase; | ||||
| 		/// Thrown when a encrypted certificate is loaded. Not setting the passwd | ||||
| 		/// in the event parameter will result in a failure to load the certificate. | ||||
| 		/// Per default the SSLManager checks the configuration.xml file (path openSSL.privateKeyPassphraseHandler.name) | ||||
| 		/// which default delegate it should register. If nothing is configured, | ||||
| 		/// a KeyConsoleHandler is used. | ||||
|  | ||||
| 	static SSLManager& instance(); | ||||
| 		/// Returns the instance of the SSLManager singleton. | ||||
|  | ||||
| 	void initializeServer(PrivateKeyPassphraseHandlerPtr& ptrPassPhraseHandler, InvalidCertificateHandlerPtr& ptrHandler, ContextPtr ptrContext); | ||||
| 		/// Initializes the server side of the SSLManager with a default passphrase handler, a default invalid certificate handler and a default context. If this method | ||||
| 		/// is never called the SSLmanager will try to initialize its members from an application configuration. | ||||
| 		/// Note: ALWAYS create the handlers before you create the context! | ||||
| 		/// Valid initialization code would be: | ||||
| 		///    SharedPtr<PrivateKeyPassphraseHandler> ptrConsole = new KeyConsoleHandler(); | ||||
| 		///    SharedPtr<InvalidCertificateHandler> ptrCert = new ConsoleCertificateHandler(); | ||||
| 		///    SharedPtr<Context> ptrContext = new Context("any.pem", "rootcert.pem", Context::Relaxed, 9, false, "ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH"); | ||||
| 		/// | ||||
| 		/// This method can only be called, if no defaultContext is set yet. | ||||
|  | ||||
| 	void initializeClient(PrivateKeyPassphraseHandlerPtr& ptrPassPhraseHandler, InvalidCertificateHandlerPtr& ptrHandler, ContextPtr ptrContext); | ||||
| 		/// Initializes the client side of the SSLManager with a default passphrase handler, a default invalid certificate handler and a default context. If this method | ||||
| 		/// is never called the SSLmanager will try to initialize its members from an application configuration. | ||||
| 		/// Note: ALWAYS create the handlers before you create the context! | ||||
| 		/// Valid initialization code would be: | ||||
| 		///    SharedPtr<PrivateKeyPassphraseHandler> ptrConsole = new KeyConsoleHandler(); | ||||
| 		///    SharedPtr<InvalidCertificateHandler> ptrCert = new ConsoleCertificateHandler(); | ||||
| 		///    SharedPtr<Context> ptrContext = new Context("any.pem", "rootcert.pem", Context::Relaxed, 9, false, "ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH"); | ||||
| 		/// | ||||
| 		/// This method can only be called, if no defaultContext is set yet. | ||||
|  | ||||
| 	ContextPtr defaultServerContext(); | ||||
| 		/// Returns the default context used by the server. The first call to this method initializes the defaultContext | ||||
| 		/// from an application configuration. | ||||
|  | ||||
| 	ContextPtr defaultClientContext(); | ||||
| 		/// Returns the default context used by the client. The first call to this method initializes the defaultContext | ||||
| 		/// from an application configuration. | ||||
|  | ||||
| 	PrivateKeyPassphraseHandlerPtr serverPassPhraseHandler(); | ||||
| 		/// Returns the configured passphrase handler of the server. If none is set, the method will create a default one | ||||
| 		/// from an application configuration | ||||
|  | ||||
| 	InvalidCertificateHandlerPtr serverCertificateHandler(); | ||||
| 		/// Returns an initialized certificate handler (used by the server to verify client cert) which determines how invalid certificates are treated. | ||||
| 		/// If none is set, it will try to auto-initialize one from an application configuration. | ||||
|  | ||||
| 	PrivateKeyPassphraseHandlerPtr clientPassPhraseHandler(); | ||||
| 		/// Returns the configured passphrase handler of the client. If none is set, the method will create a default one | ||||
| 		/// from an application configuration | ||||
|  | ||||
| 	InvalidCertificateHandlerPtr clientCertificateHandler(); | ||||
| 		/// Returns an initialized certificate handler (used by the client to verify server cert) which determines how invalid certificates are treated. | ||||
| 		/// If none is set, it will try to auto-initialize one from an application configuration. | ||||
|  | ||||
| 	PrivateKeyFactoryMgr& privateKeyFactoryMgr(); | ||||
| 		/// Returns the private key factory manager which stores the  | ||||
| 		/// factories for the different registered passphrase handlers for private keys. | ||||
|  | ||||
| 	CertificateHandlerFactoryMgr& certificateHandlerFactoryMgr(); | ||||
| 		/// Returns the CertificateHandlerFactoryMgr which stores the  | ||||
| 		/// factories for the different registered certificate handlers. | ||||
|  | ||||
| 	static int verifyClientCallback(int ok, X509_STORE_CTX* pStore); | ||||
| 		/// The return value of this method defines how errors in | ||||
| 		/// verification are handled. Return 0 to terminate the handshake, | ||||
| 		/// or 1 to continue despite the error. | ||||
|  | ||||
| 	static int verifyServerCallback(int ok, X509_STORE_CTX* pStore); | ||||
| 		/// The return value of this method defines how errors in | ||||
| 		/// verification are handled. Return 0 to terminate the handshake, | ||||
| 		/// or 1 to continue despite the error. | ||||
|  | ||||
| 	static int privateKeyPasswdCallback(char* pBuf, int size, int flag, void* userData); | ||||
| 		/// Method is invoked by OpenSSl to retrieve a passwd for an encrypted certificate. | ||||
| 		/// The request is delegated to the PrivatekeyPassword event. This method returns the | ||||
| 		/// length of the password. | ||||
|  | ||||
| 	static const std::string CFG_SERVER_PREFIX; | ||||
| 	static const std::string CFG_CLIENT_PREFIX; | ||||
|  | ||||
| private: | ||||
| 	SSLManager(); | ||||
| 		/// Creates the SSLManager. | ||||
|  | ||||
| 	~SSLManager(); | ||||
| 		/// Destroys the SSLManager. | ||||
|  | ||||
| 	void initDefaultContext(bool server); | ||||
| 		/// Inits the default context, the first time it is accessed. | ||||
|  | ||||
| 	void initEvents(bool server); | ||||
| 		/// Registers delegates at the events according to the configuration. | ||||
|  | ||||
| 	void initPassPhraseHandler(bool server); | ||||
| 		/// Inits the passphrase handler. | ||||
|  | ||||
| 	void initCertificateHandler(bool server); | ||||
| 		/// Inits the certificate handler. | ||||
|  | ||||
| 	static int verifyCallback(bool server, int ok, X509_STORE_CTX* pStore); | ||||
| 		/// The return value of this method defines how errors in | ||||
| 		/// verification are handled. Return 0 to terminate the handshake, | ||||
| 		/// or 1 to continue despite the error. | ||||
|  | ||||
| 	PrivateKeyFactoryMgr           _factoryMgr; | ||||
| 	CertificateHandlerFactoryMgr   _certHandlerFactoryMgr; | ||||
| 	ContextPtr                     _ptrDefaultServerContext; | ||||
| 	PrivateKeyPassphraseHandlerPtr _ptrServerPassPhraseHandler; | ||||
| 	InvalidCertificateHandlerPtr   _ptrServerCertificateHandler; | ||||
| 	ContextPtr                     _ptrDefaultClientContext; | ||||
| 	PrivateKeyPassphraseHandlerPtr _ptrClientPassPhraseHandler; | ||||
| 	InvalidCertificateHandlerPtr   _ptrClientCertificateHandler; | ||||
|  | ||||
| 	static const std::string CFG_PRIV_KEY_FILE; | ||||
| 	static const std::string CFG_CA_LOCATION; | ||||
| 	static const std::string CFG_VER_MODE; | ||||
| 	static const Context::VerificationMode VAL_VER_MODE; | ||||
| 	static const std::string CFG_VER_DEPTH; | ||||
| 	static const int         VAL_VER_DEPTH; | ||||
| 	static const std::string CFG_ENABLE_DEFAULT_CA; | ||||
| 	static const bool        VAL_ENABLE_DEFAULT_CA; | ||||
| 	static const std::string CFG_CYPHER_LIST; | ||||
| 	static const std::string VAL_CYPHER_LIST; | ||||
| 	static const std::string CFG_DELEGATE_HANDLER; | ||||
| 	static const std::string VAL_DELEGATE_HANDLER; | ||||
| 	static const std::string CFG_CERTIFICATE_HANDLER; | ||||
| 	static const std::string VAL_CERTIFICATE_HANDLER; | ||||
|  | ||||
| 	friend class Poco::SingletonHolder<SSLManager>; | ||||
| }; | ||||
|  | ||||
|  | ||||
| // | ||||
| // inlines | ||||
| // | ||||
| inline PrivateKeyFactoryMgr& SSLManager::privateKeyFactoryMgr() | ||||
| { | ||||
| 	return _factoryMgr; | ||||
| } | ||||
|  | ||||
|  | ||||
| inline CertificateHandlerFactoryMgr& SSLManager::certificateHandlerFactoryMgr() | ||||
| { | ||||
| 	return _certHandlerFactoryMgr; | ||||
| } | ||||
|  | ||||
|  | ||||
| inline int SSLManager::verifyServerCallback(int ok, X509_STORE_CTX* pStore) | ||||
| { | ||||
| 	return SSLManager::verifyCallback(true, ok, pStore); | ||||
| } | ||||
|  | ||||
|  | ||||
| inline int SSLManager::verifyClientCallback(int ok, X509_STORE_CTX* pStore) | ||||
| { | ||||
| 	return SSLManager::verifyCallback(false, ok, pStore); | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| #endif // NetSSL_SSLManager_INCLUDED | ||||
| // | ||||
| // SSLManager.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/SSLManager.h#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  SSLManager | ||||
| // | ||||
| // Definition of the SSLManager class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_SSLManager_INCLUDED | ||||
| #define NetSSL_SSLManager_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
| #include "Poco/Net/VerificationErrorArgs.h" | ||||
| #include "Poco/Net/Context.h" | ||||
| #include "Poco/Net/PrivateKeyFactoryMgr.h" | ||||
| #include "Poco/Net/CertificateHandlerFactoryMgr.h" | ||||
| #include "Poco/Net/InvalidCertificateHandler.h" | ||||
| #include "Poco/BasicEvent.h" | ||||
| #include "Poco/SharedPtr.h" | ||||
| #include <openssl/ssl.h> | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class Context; | ||||
|  | ||||
|  | ||||
| class NetSSL_API SSLManager | ||||
| 	/// Class SSLManager. Singleton for holding the default server/client Context and PrivateKeyPassphraseHandler. | ||||
| 	/// Either initialize via Poco::Util::Application or via the | ||||
| 	/// initialize methods of the singleton. Note that the latter initialization must happen very early | ||||
| 	/// during program startup before somebody calls defaultClientContext()/defaultServerContext()  | ||||
| 	/// or any of the passPhraseHandler methods (which tries to auto-initialize | ||||
| 	/// the context and passphrase handler based on an Poco::Util::Application configuration). | ||||
| 	/// An exemplary documentation which sets either the server or client defaultcontext and creates a PrivateKeyPassphraseHandler | ||||
| 	/// that reads the password from the XML file looks like this: | ||||
| 	/// | ||||
| 	///    <AppConfig> | ||||
| 	///       <openSSL> | ||||
| 	///          <server|client> | ||||
| 	///            <privateKeyFile>any.pem</privateKeyFile> | ||||
| 	///            <caConfig>rootcert.pem</caConfig> | ||||
| 	///            <verificationMode>relaxed</verificationMode> | ||||
| 	///            <verificationDepth>9</verificationDepth> | ||||
| 	///            <loadDefaultCAFile>true</loadDefaultCAFile> | ||||
| 	///            <cypherList>ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH</cypherList> | ||||
| 	///            <privateKeyPassphraseHandler> | ||||
| 	///                <name>KeyFileHandler</name> | ||||
| 	///                <options> | ||||
| 	///                    <password>test</password> | ||||
| 	///                </options> | ||||
| 	///            </privateKeyPassphraseHandler> | ||||
| 	///            <invalidCertificateHandler> | ||||
| 	///                 <name>ConsoleCertificateHandler</name> | ||||
| 	///                 <options> | ||||
| 	///                 </options> | ||||
| 	///            </invalidCertificateHandler> | ||||
| 	///          </server|client> | ||||
| 	///       </openSSL> | ||||
| 	///    </AppConfig> | ||||
| 	/// | ||||
| { | ||||
| public: | ||||
| 	typedef Poco::SharedPtr<Context> ContextPtr; | ||||
| 	typedef Poco::SharedPtr<PrivateKeyPassphraseHandler> PrivateKeyPassphraseHandlerPtr; | ||||
| 	typedef Poco::SharedPtr<InvalidCertificateHandler> InvalidCertificateHandlerPtr; | ||||
|  | ||||
| 	Poco::BasicEvent<VerificationErrorArgs>  ServerVerificationError; | ||||
| 		/// Thrown whenever a certificate error is detected by the server during a handshake | ||||
|  | ||||
| 	Poco::BasicEvent<VerificationErrorArgs>  ClientVerificationError; | ||||
| 		/// Thrown whenever a certificate error is detected by the client during a handshake | ||||
|  | ||||
| 	Poco::BasicEvent<std::string> PrivateKeyPassPhrase; | ||||
| 		/// Thrown when a encrypted certificate is loaded. Not setting the passwd | ||||
| 		/// in the event parameter will result in a failure to load the certificate. | ||||
| 		/// Per default the SSLManager checks the configuration.xml file (path openSSL.privateKeyPassphraseHandler.name) | ||||
| 		/// which default delegate it should register. If nothing is configured, | ||||
| 		/// a KeyConsoleHandler is used. | ||||
|  | ||||
| 	static SSLManager& instance(); | ||||
| 		/// Returns the instance of the SSLManager singleton. | ||||
|  | ||||
| 	void initializeServer(PrivateKeyPassphraseHandlerPtr& ptrPassPhraseHandler, InvalidCertificateHandlerPtr& ptrHandler, ContextPtr ptrContext); | ||||
| 		/// Initializes the server side of the SSLManager with a default passphrase handler, a default invalid certificate handler and a default context. If this method | ||||
| 		/// is never called the SSLmanager will try to initialize its members from an application configuration. | ||||
| 		/// Note: ALWAYS create the handlers before you create the context! | ||||
| 		/// Valid initialization code would be: | ||||
| 		///    SharedPtr<PrivateKeyPassphraseHandler> ptrConsole = new KeyConsoleHandler(); | ||||
| 		///    SharedPtr<InvalidCertificateHandler> ptrCert = new ConsoleCertificateHandler(); | ||||
| 		///    SharedPtr<Context> ptrContext = new Context("any.pem", "rootcert.pem", Context::Relaxed, 9, false, "ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH"); | ||||
| 		/// | ||||
| 		/// This method can only be called, if no defaultContext is set yet. | ||||
|  | ||||
| 	void initializeClient(PrivateKeyPassphraseHandlerPtr& ptrPassPhraseHandler, InvalidCertificateHandlerPtr& ptrHandler, ContextPtr ptrContext); | ||||
| 		/// Initializes the client side of the SSLManager with a default passphrase handler, a default invalid certificate handler and a default context. If this method | ||||
| 		/// is never called the SSLmanager will try to initialize its members from an application configuration. | ||||
| 		/// Note: ALWAYS create the handlers before you create the context! | ||||
| 		/// Valid initialization code would be: | ||||
| 		///    SharedPtr<PrivateKeyPassphraseHandler> ptrConsole = new KeyConsoleHandler(); | ||||
| 		///    SharedPtr<InvalidCertificateHandler> ptrCert = new ConsoleCertificateHandler(); | ||||
| 		///    SharedPtr<Context> ptrContext = new Context("any.pem", "rootcert.pem", Context::Relaxed, 9, false, "ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH"); | ||||
| 		/// | ||||
| 		/// This method can only be called, if no defaultContext is set yet. | ||||
|  | ||||
| 	ContextPtr defaultServerContext(); | ||||
| 		/// Returns the default context used by the server. The first call to this method initializes the defaultContext | ||||
| 		/// from an application configuration. | ||||
|  | ||||
| 	ContextPtr defaultClientContext(); | ||||
| 		/// Returns the default context used by the client. The first call to this method initializes the defaultContext | ||||
| 		/// from an application configuration. | ||||
|  | ||||
| 	PrivateKeyPassphraseHandlerPtr serverPassPhraseHandler(); | ||||
| 		/// Returns the configured passphrase handler of the server. If none is set, the method will create a default one | ||||
| 		/// from an application configuration | ||||
|  | ||||
| 	InvalidCertificateHandlerPtr serverCertificateHandler(); | ||||
| 		/// Returns an initialized certificate handler (used by the server to verify client cert) which determines how invalid certificates are treated. | ||||
| 		/// If none is set, it will try to auto-initialize one from an application configuration. | ||||
|  | ||||
| 	PrivateKeyPassphraseHandlerPtr clientPassPhraseHandler(); | ||||
| 		/// Returns the configured passphrase handler of the client. If none is set, the method will create a default one | ||||
| 		/// from an application configuration | ||||
|  | ||||
| 	InvalidCertificateHandlerPtr clientCertificateHandler(); | ||||
| 		/// Returns an initialized certificate handler (used by the client to verify server cert) which determines how invalid certificates are treated. | ||||
| 		/// If none is set, it will try to auto-initialize one from an application configuration. | ||||
|  | ||||
| 	PrivateKeyFactoryMgr& privateKeyFactoryMgr(); | ||||
| 		/// Returns the private key factory manager which stores the  | ||||
| 		/// factories for the different registered passphrase handlers for private keys. | ||||
|  | ||||
| 	CertificateHandlerFactoryMgr& certificateHandlerFactoryMgr(); | ||||
| 		/// Returns the CertificateHandlerFactoryMgr which stores the  | ||||
| 		/// factories for the different registered certificate handlers. | ||||
|  | ||||
| 	static int verifyClientCallback(int ok, X509_STORE_CTX* pStore); | ||||
| 		/// The return value of this method defines how errors in | ||||
| 		/// verification are handled. Return 0 to terminate the handshake, | ||||
| 		/// or 1 to continue despite the error. | ||||
|  | ||||
| 	static int verifyServerCallback(int ok, X509_STORE_CTX* pStore); | ||||
| 		/// The return value of this method defines how errors in | ||||
| 		/// verification are handled. Return 0 to terminate the handshake, | ||||
| 		/// or 1 to continue despite the error. | ||||
|  | ||||
| 	static int privateKeyPasswdCallback(char* pBuf, int size, int flag, void* userData); | ||||
| 		/// Method is invoked by OpenSSl to retrieve a passwd for an encrypted certificate. | ||||
| 		/// The request is delegated to the PrivatekeyPassword event. This method returns the | ||||
| 		/// length of the password. | ||||
|  | ||||
| 	static const std::string CFG_SERVER_PREFIX; | ||||
| 	static const std::string CFG_CLIENT_PREFIX; | ||||
|  | ||||
| private: | ||||
| 	SSLManager(); | ||||
| 		/// Creates the SSLManager. | ||||
|  | ||||
| 	~SSLManager(); | ||||
| 		/// Destroys the SSLManager. | ||||
|  | ||||
| 	void initDefaultContext(bool server); | ||||
| 		/// Inits the default context, the first time it is accessed. | ||||
|  | ||||
| 	void initEvents(bool server); | ||||
| 		/// Registers delegates at the events according to the configuration. | ||||
|  | ||||
| 	void initPassPhraseHandler(bool server); | ||||
| 		/// Inits the passphrase handler. | ||||
|  | ||||
| 	void initCertificateHandler(bool server); | ||||
| 		/// Inits the certificate handler. | ||||
|  | ||||
| 	static int verifyCallback(bool server, int ok, X509_STORE_CTX* pStore); | ||||
| 		/// The return value of this method defines how errors in | ||||
| 		/// verification are handled. Return 0 to terminate the handshake, | ||||
| 		/// or 1 to continue despite the error. | ||||
|  | ||||
| 	PrivateKeyFactoryMgr           _factoryMgr; | ||||
| 	CertificateHandlerFactoryMgr   _certHandlerFactoryMgr; | ||||
| 	ContextPtr                     _ptrDefaultServerContext; | ||||
| 	PrivateKeyPassphraseHandlerPtr _ptrServerPassPhraseHandler; | ||||
| 	InvalidCertificateHandlerPtr   _ptrServerCertificateHandler; | ||||
| 	ContextPtr                     _ptrDefaultClientContext; | ||||
| 	PrivateKeyPassphraseHandlerPtr _ptrClientPassPhraseHandler; | ||||
| 	InvalidCertificateHandlerPtr   _ptrClientCertificateHandler; | ||||
|  | ||||
| 	static const std::string CFG_PRIV_KEY_FILE; | ||||
| 	static const std::string CFG_CA_LOCATION; | ||||
| 	static const std::string CFG_VER_MODE; | ||||
| 	static const Context::VerificationMode VAL_VER_MODE; | ||||
| 	static const std::string CFG_VER_DEPTH; | ||||
| 	static const int         VAL_VER_DEPTH; | ||||
| 	static const std::string CFG_ENABLE_DEFAULT_CA; | ||||
| 	static const bool        VAL_ENABLE_DEFAULT_CA; | ||||
| 	static const std::string CFG_CYPHER_LIST; | ||||
| 	static const std::string VAL_CYPHER_LIST; | ||||
| 	static const std::string CFG_DELEGATE_HANDLER; | ||||
| 	static const std::string VAL_DELEGATE_HANDLER; | ||||
| 	static const std::string CFG_CERTIFICATE_HANDLER; | ||||
| 	static const std::string VAL_CERTIFICATE_HANDLER; | ||||
|  | ||||
| 	friend class Poco::SingletonHolder<SSLManager>; | ||||
| }; | ||||
|  | ||||
|  | ||||
| // | ||||
| // inlines | ||||
| // | ||||
| inline PrivateKeyFactoryMgr& SSLManager::privateKeyFactoryMgr() | ||||
| { | ||||
| 	return _factoryMgr; | ||||
| } | ||||
|  | ||||
|  | ||||
| inline CertificateHandlerFactoryMgr& SSLManager::certificateHandlerFactoryMgr() | ||||
| { | ||||
| 	return _certHandlerFactoryMgr; | ||||
| } | ||||
|  | ||||
|  | ||||
| inline int SSLManager::verifyServerCallback(int ok, X509_STORE_CTX* pStore) | ||||
| { | ||||
| 	return SSLManager::verifyCallback(true, ok, pStore); | ||||
| } | ||||
|  | ||||
|  | ||||
| inline int SSLManager::verifyClientCallback(int ok, X509_STORE_CTX* pStore) | ||||
| { | ||||
| 	return SSLManager::verifyCallback(false, ok, pStore); | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| #endif // NetSSL_SSLManager_INCLUDED | ||||
|   | ||||
| @@ -1,120 +1,120 @@ | ||||
| // | ||||
| // SecureServerSocket.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/SecureServerSocket.h#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLSockets | ||||
| // Module:  SecureServerSocket | ||||
| // | ||||
| // Definition of the SecureServerSocket class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_SecureServerSocket_INCLUDED | ||||
| #define NetSSL_SecureServerSocket_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
| #include "Poco/Net/ServerSocket.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class NetSSL_API SecureServerSocket: public ServerSocket | ||||
| 	/// A server socket for secure SSL connections. | ||||
| { | ||||
| public: | ||||
| 	SecureServerSocket(); | ||||
| 		/// Creates a SSL server socket. | ||||
| 		/// | ||||
| 		/// The server socket must be bound to | ||||
| 		/// an address and put into listening state. | ||||
|  | ||||
| 	SecureServerSocket(const Socket& socket); | ||||
| 		/// Creates the SecureServerSocket with the SocketImpl | ||||
| 		/// from another socket. The SocketImpl must be | ||||
| 		/// a ServerSocketImpl, otherwise an InvalidArgumentException | ||||
| 		/// will be thrown. | ||||
|  | ||||
| 	SecureServerSocket(const SocketAddress& address, int backlog = 64); | ||||
| 		/// Creates a server socket, binds it | ||||
| 		/// to the given address and puts it in listening | ||||
| 		/// state. | ||||
| 		/// | ||||
| 		/// After successful construction, the server socket | ||||
| 		/// is ready to accept connections. | ||||
|  | ||||
| 	SecureServerSocket(Poco::UInt16 port, int backlog = 64); | ||||
| 		/// Creates a server socket, binds it | ||||
| 		/// to the given port and puts it in listening | ||||
| 		/// state. | ||||
| 		/// | ||||
| 		/// After successful construction, the server socket | ||||
| 		/// is ready to accept connections. | ||||
|  | ||||
| 	virtual ~SecureServerSocket(); | ||||
| 		/// Destroys the StreamSocket. | ||||
|  | ||||
| 	SecureServerSocket& operator = (const Socket& socket); | ||||
| 		/// Assignment operator. | ||||
| 		/// | ||||
| 		/// Releases the socket's SocketImpl and | ||||
| 		/// attaches the SocketImpl from the other socket and | ||||
| 		/// increments the reference count of the SocketImpl.	 | ||||
|  | ||||
| 	StreamSocket acceptConnection(SocketAddress& clientAddr); | ||||
| 		/// Get the next completed connection from the | ||||
| 		/// socket's completed connection queue. | ||||
| 		/// | ||||
| 		/// If the queue is empty, waits until a connection | ||||
| 		/// request completes. | ||||
| 		/// | ||||
| 		/// Returns a new SSL TCP socket for the connection | ||||
| 		/// with the client. | ||||
| 		/// | ||||
| 		/// The client socket's address is returned in clientAddr. | ||||
|  | ||||
| 	StreamSocket acceptConnection(); | ||||
| 		/// Get the next completed connection from the | ||||
| 		/// socket's completed connection queue. | ||||
| 		/// | ||||
| 		/// If the queue is empty, waits until a connection | ||||
| 		/// request completes. | ||||
| 		/// | ||||
| 		/// Returns a new TCP socket for the connection | ||||
| 		/// with the client. | ||||
| }; | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| #endif // NetSSL_SecureServerSocket_INCLUDED | ||||
| // | ||||
| // SecureServerSocket.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/SecureServerSocket.h#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLSockets | ||||
| // Module:  SecureServerSocket | ||||
| // | ||||
| // Definition of the SecureServerSocket class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_SecureServerSocket_INCLUDED | ||||
| #define NetSSL_SecureServerSocket_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
| #include "Poco/Net/ServerSocket.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class NetSSL_API SecureServerSocket: public ServerSocket | ||||
| 	/// A server socket for secure SSL connections. | ||||
| { | ||||
| public: | ||||
| 	SecureServerSocket(); | ||||
| 		/// Creates a SSL server socket. | ||||
| 		/// | ||||
| 		/// The server socket must be bound to | ||||
| 		/// an address and put into listening state. | ||||
|  | ||||
| 	SecureServerSocket(const Socket& socket); | ||||
| 		/// Creates the SecureServerSocket with the SocketImpl | ||||
| 		/// from another socket. The SocketImpl must be | ||||
| 		/// a ServerSocketImpl, otherwise an InvalidArgumentException | ||||
| 		/// will be thrown. | ||||
|  | ||||
| 	SecureServerSocket(const SocketAddress& address, int backlog = 64); | ||||
| 		/// Creates a server socket, binds it | ||||
| 		/// to the given address and puts it in listening | ||||
| 		/// state. | ||||
| 		/// | ||||
| 		/// After successful construction, the server socket | ||||
| 		/// is ready to accept connections. | ||||
|  | ||||
| 	SecureServerSocket(Poco::UInt16 port, int backlog = 64); | ||||
| 		/// Creates a server socket, binds it | ||||
| 		/// to the given port and puts it in listening | ||||
| 		/// state. | ||||
| 		/// | ||||
| 		/// After successful construction, the server socket | ||||
| 		/// is ready to accept connections. | ||||
|  | ||||
| 	virtual ~SecureServerSocket(); | ||||
| 		/// Destroys the StreamSocket. | ||||
|  | ||||
| 	SecureServerSocket& operator = (const Socket& socket); | ||||
| 		/// Assignment operator. | ||||
| 		/// | ||||
| 		/// Releases the socket's SocketImpl and | ||||
| 		/// attaches the SocketImpl from the other socket and | ||||
| 		/// increments the reference count of the SocketImpl.	 | ||||
|  | ||||
| 	StreamSocket acceptConnection(SocketAddress& clientAddr); | ||||
| 		/// Get the next completed connection from the | ||||
| 		/// socket's completed connection queue. | ||||
| 		/// | ||||
| 		/// If the queue is empty, waits until a connection | ||||
| 		/// request completes. | ||||
| 		/// | ||||
| 		/// Returns a new SSL TCP socket for the connection | ||||
| 		/// with the client. | ||||
| 		/// | ||||
| 		/// The client socket's address is returned in clientAddr. | ||||
|  | ||||
| 	StreamSocket acceptConnection(); | ||||
| 		/// Get the next completed connection from the | ||||
| 		/// socket's completed connection queue. | ||||
| 		/// | ||||
| 		/// If the queue is empty, waits until a connection | ||||
| 		/// request completes. | ||||
| 		/// | ||||
| 		/// Returns a new TCP socket for the connection | ||||
| 		/// with the client. | ||||
| }; | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| #endif // NetSSL_SecureServerSocket_INCLUDED | ||||
|   | ||||
| @@ -1,163 +1,163 @@ | ||||
| // | ||||
| // SecureServerSocketImpl.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/SecureServerSocketImpl.h#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLSockets | ||||
| // Module:  SecureServerSocketImpl | ||||
| // | ||||
| // Definition of the SecureServerSocketImpl class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_SecureServerSocketImpl_INCLUDED | ||||
| #define NetSSL_SecureServerSocketImpl_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
| #include "Poco/Net/SecureSocketImpl.h" | ||||
| #include "Poco/Net/ServerSocketImpl.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class NetSSL_API SecureServerSocketImpl: public ServerSocketImpl | ||||
| 	/// The SocketImpl class for SecureServerSocket. | ||||
| { | ||||
| public: | ||||
| 	SecureServerSocketImpl(); | ||||
| 		/// Creates the SecureServerSocketImpl. | ||||
|  | ||||
| 	SocketImpl* acceptConnection(SocketAddress& clientAddr); | ||||
| 		/// Get the next completed connection from the | ||||
| 		/// socket's completed connection queue. | ||||
| 		/// | ||||
| 		/// If the queue is empty, waits until a connection | ||||
| 		/// request completes. | ||||
| 		/// | ||||
| 		/// Returns a new TCP socket for the connection | ||||
| 		/// with the client. | ||||
| 		/// | ||||
| 		/// The client socket's address is returned in clientAddr. | ||||
| 	 | ||||
| 	void connect(const SocketAddress& address); | ||||
| 		/// Initializes the socket and establishes a connection to  | ||||
| 		/// the TCP server at the given address. | ||||
| 		/// | ||||
| 		/// Can also be used for UDP sockets. In this case, no | ||||
| 		/// connection is established. Instead, incoming and outgoing | ||||
| 		/// packets are restricted to the specified address. | ||||
|  | ||||
| 	void connect(const SocketAddress& address, const Poco::Timespan& timeout); | ||||
| 		/// Initializes the socket, sets the socket timeout and  | ||||
| 		/// establishes a connection to the TCP server at the given address. | ||||
|  | ||||
| 	void connectNB(const SocketAddress& address); | ||||
| 		/// Initializes the socket and establishes a connection to  | ||||
| 		/// the TCP server at the given address. Prior to opening the | ||||
| 		/// connection the socket is set to nonblocking mode. | ||||
| 	 | ||||
| 	void bind(const SocketAddress& address, bool reuseAddress = false); | ||||
| 		/// Bind a local address to the socket. | ||||
| 		/// | ||||
| 		/// This is usually only done when establishing a server | ||||
| 		/// socket. TCP clients should not bind a socket to a | ||||
| 		/// specific address. | ||||
| 		/// | ||||
| 		/// If reuseAddress is true, sets the SO_REUSEADDR | ||||
| 		/// socket option. | ||||
| 		 | ||||
| 	void listen(int backlog = 64); | ||||
| 		/// Puts the socket into listening state. | ||||
| 		/// | ||||
| 		/// The socket becomes a passive socket that | ||||
| 		/// can accept incoming connection requests. | ||||
| 		/// | ||||
| 		/// The backlog argument specifies the maximum | ||||
| 		/// number of connections that can be queued | ||||
| 		/// for this socket. | ||||
|  | ||||
| 	void close(); | ||||
| 		/// Close the socket. | ||||
| 	 | ||||
| 	int sendBytes(const void* buffer, int length, int flags = 0); | ||||
| 		/// Sends the contents of the given buffer through | ||||
| 		/// the socket. Any specified flags are ignored. | ||||
| 		/// | ||||
| 		/// Returns the number of bytes sent, which may be | ||||
| 		/// less than the number of bytes specified. | ||||
| 	 | ||||
| 	int receiveBytes(void* buffer, int length, int flags = 0); | ||||
| 		/// Receives data from the socket and stores it | ||||
| 		/// in buffer. Up to length bytes are received. | ||||
| 		/// | ||||
| 		/// Returns the number of bytes received. | ||||
| 	 | ||||
| 	int sendTo(const void* buffer, int length, const SocketAddress& address, int flags = 0); | ||||
| 		/// Sends the contents of the given buffer through | ||||
| 		/// the socket to the given address. | ||||
| 		/// | ||||
| 		/// Returns the number of bytes sent, which may be | ||||
| 		/// less than the number of bytes specified. | ||||
| 	 | ||||
| 	int receiveFrom(void* buffer, int length, SocketAddress& address, int flags = 0); | ||||
| 		/// Receives data from the socket and stores it | ||||
| 		/// in buffer. Up to length bytes are received. | ||||
| 		/// Stores the address of the sender in address. | ||||
| 		/// | ||||
| 		/// Returns the number of bytes received. | ||||
| 	 | ||||
| 	void sendUrgent(unsigned char data); | ||||
| 		/// Sends one byte of urgent data through | ||||
| 		/// the socket. | ||||
| 		/// | ||||
| 		/// The data is sent with the MSG_OOB flag. | ||||
| 		/// | ||||
| 		/// The preferred way for a socket to receive urgent data | ||||
| 		/// is by enabling the SO_OOBINLINE option. | ||||
|  | ||||
| protected: | ||||
| 	~SecureServerSocketImpl(); | ||||
| 		/// Destroys the SecureServerSocketImpl. | ||||
|  | ||||
| private: | ||||
| 	SecureServerSocketImpl(const SecureServerSocketImpl&); | ||||
| 	SecureServerSocketImpl& operator = (const SecureServerSocketImpl&); | ||||
|  | ||||
| private: | ||||
| 	SecureSocketImpl _socket; | ||||
| }; | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| #endif // NetSSL_SecureServerSocketImpl_INCLUDED | ||||
| // | ||||
| // SecureServerSocketImpl.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/SecureServerSocketImpl.h#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLSockets | ||||
| // Module:  SecureServerSocketImpl | ||||
| // | ||||
| // Definition of the SecureServerSocketImpl class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_SecureServerSocketImpl_INCLUDED | ||||
| #define NetSSL_SecureServerSocketImpl_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
| #include "Poco/Net/SecureSocketImpl.h" | ||||
| #include "Poco/Net/ServerSocketImpl.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class NetSSL_API SecureServerSocketImpl: public ServerSocketImpl | ||||
| 	/// The SocketImpl class for SecureServerSocket. | ||||
| { | ||||
| public: | ||||
| 	SecureServerSocketImpl(); | ||||
| 		/// Creates the SecureServerSocketImpl. | ||||
|  | ||||
| 	SocketImpl* acceptConnection(SocketAddress& clientAddr); | ||||
| 		/// Get the next completed connection from the | ||||
| 		/// socket's completed connection queue. | ||||
| 		/// | ||||
| 		/// If the queue is empty, waits until a connection | ||||
| 		/// request completes. | ||||
| 		/// | ||||
| 		/// Returns a new TCP socket for the connection | ||||
| 		/// with the client. | ||||
| 		/// | ||||
| 		/// The client socket's address is returned in clientAddr. | ||||
| 	 | ||||
| 	void connect(const SocketAddress& address); | ||||
| 		/// Initializes the socket and establishes a connection to  | ||||
| 		/// the TCP server at the given address. | ||||
| 		/// | ||||
| 		/// Can also be used for UDP sockets. In this case, no | ||||
| 		/// connection is established. Instead, incoming and outgoing | ||||
| 		/// packets are restricted to the specified address. | ||||
|  | ||||
| 	void connect(const SocketAddress& address, const Poco::Timespan& timeout); | ||||
| 		/// Initializes the socket, sets the socket timeout and  | ||||
| 		/// establishes a connection to the TCP server at the given address. | ||||
|  | ||||
| 	void connectNB(const SocketAddress& address); | ||||
| 		/// Initializes the socket and establishes a connection to  | ||||
| 		/// the TCP server at the given address. Prior to opening the | ||||
| 		/// connection the socket is set to nonblocking mode. | ||||
| 	 | ||||
| 	void bind(const SocketAddress& address, bool reuseAddress = false); | ||||
| 		/// Bind a local address to the socket. | ||||
| 		/// | ||||
| 		/// This is usually only done when establishing a server | ||||
| 		/// socket. TCP clients should not bind a socket to a | ||||
| 		/// specific address. | ||||
| 		/// | ||||
| 		/// If reuseAddress is true, sets the SO_REUSEADDR | ||||
| 		/// socket option. | ||||
| 		 | ||||
| 	void listen(int backlog = 64); | ||||
| 		/// Puts the socket into listening state. | ||||
| 		/// | ||||
| 		/// The socket becomes a passive socket that | ||||
| 		/// can accept incoming connection requests. | ||||
| 		/// | ||||
| 		/// The backlog argument specifies the maximum | ||||
| 		/// number of connections that can be queued | ||||
| 		/// for this socket. | ||||
|  | ||||
| 	void close(); | ||||
| 		/// Close the socket. | ||||
| 	 | ||||
| 	int sendBytes(const void* buffer, int length, int flags = 0); | ||||
| 		/// Sends the contents of the given buffer through | ||||
| 		/// the socket. Any specified flags are ignored. | ||||
| 		/// | ||||
| 		/// Returns the number of bytes sent, which may be | ||||
| 		/// less than the number of bytes specified. | ||||
| 	 | ||||
| 	int receiveBytes(void* buffer, int length, int flags = 0); | ||||
| 		/// Receives data from the socket and stores it | ||||
| 		/// in buffer. Up to length bytes are received. | ||||
| 		/// | ||||
| 		/// Returns the number of bytes received. | ||||
| 	 | ||||
| 	int sendTo(const void* buffer, int length, const SocketAddress& address, int flags = 0); | ||||
| 		/// Sends the contents of the given buffer through | ||||
| 		/// the socket to the given address. | ||||
| 		/// | ||||
| 		/// Returns the number of bytes sent, which may be | ||||
| 		/// less than the number of bytes specified. | ||||
| 	 | ||||
| 	int receiveFrom(void* buffer, int length, SocketAddress& address, int flags = 0); | ||||
| 		/// Receives data from the socket and stores it | ||||
| 		/// in buffer. Up to length bytes are received. | ||||
| 		/// Stores the address of the sender in address. | ||||
| 		/// | ||||
| 		/// Returns the number of bytes received. | ||||
| 	 | ||||
| 	void sendUrgent(unsigned char data); | ||||
| 		/// Sends one byte of urgent data through | ||||
| 		/// the socket. | ||||
| 		/// | ||||
| 		/// The data is sent with the MSG_OOB flag. | ||||
| 		/// | ||||
| 		/// The preferred way for a socket to receive urgent data | ||||
| 		/// is by enabling the SO_OOBINLINE option. | ||||
|  | ||||
| protected: | ||||
| 	~SecureServerSocketImpl(); | ||||
| 		/// Destroys the SecureServerSocketImpl. | ||||
|  | ||||
| private: | ||||
| 	SecureServerSocketImpl(const SecureServerSocketImpl&); | ||||
| 	SecureServerSocketImpl& operator = (const SecureServerSocketImpl&); | ||||
|  | ||||
| private: | ||||
| 	SecureSocketImpl _socket; | ||||
| }; | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| #endif // NetSSL_SecureServerSocketImpl_INCLUDED | ||||
|   | ||||
| @@ -1,91 +1,91 @@ | ||||
| // | ||||
| // SecureStreamSocket.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/SecureStreamSocket.h#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLSockets | ||||
| // Module:  SecureStreamSocket | ||||
| // | ||||
| // Definition of the SecureStreamSocket class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_SecureStreamSocket_INCLUDED | ||||
| #define NetSSL_SecureStreamSocket_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
| #include "Poco/Net/StreamSocket.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class NetSSL_API SecureStreamSocket: public StreamSocket | ||||
| 	/// A subclass of StreamSocket for secure SSL sockets. | ||||
| { | ||||
| public: | ||||
| 	SecureStreamSocket(); | ||||
| 		/// Creates an unconnected stream socket. | ||||
| 		/// | ||||
| 		/// Before sending or receiving data, the socket | ||||
| 		/// must be connected with a call to connect(). | ||||
|  | ||||
| 	SecureStreamSocket(const SocketAddress& address); | ||||
| 		/// Creates a stream socket and connects it to | ||||
| 		/// the socket specified by address. | ||||
|  | ||||
| 	SecureStreamSocket(const Socket& socket); | ||||
| 		/// Creates the StreamSocket with the SocketImpl | ||||
| 		/// from another socket. The SocketImpl must be | ||||
| 		/// a StreamSocketImpl, otherwise an InvalidArgumentException | ||||
| 		/// will be thrown. | ||||
|  | ||||
| 	virtual ~SecureStreamSocket(); | ||||
| 		/// Destroys the StreamSocket. | ||||
|  | ||||
| 	SecureStreamSocket& operator = (const Socket& socket); | ||||
| 		/// Assignment operator. | ||||
| 		/// | ||||
| 		/// Releases the socket's SocketImpl and | ||||
| 		/// attaches the SocketImpl from the other socket and | ||||
| 		/// increments the reference count of the SocketImpl.	 | ||||
|  | ||||
| protected: | ||||
| 	SecureStreamSocket(SocketImpl* pImpl); | ||||
|  | ||||
| 	friend class SecureServerSocket; | ||||
| }; | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| #endif // NetSSL_SecureStreamSocket_INCLUDED | ||||
| // | ||||
| // SecureStreamSocket.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/SecureStreamSocket.h#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLSockets | ||||
| // Module:  SecureStreamSocket | ||||
| // | ||||
| // Definition of the SecureStreamSocket class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_SecureStreamSocket_INCLUDED | ||||
| #define NetSSL_SecureStreamSocket_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
| #include "Poco/Net/StreamSocket.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class NetSSL_API SecureStreamSocket: public StreamSocket | ||||
| 	/// A subclass of StreamSocket for secure SSL sockets. | ||||
| { | ||||
| public: | ||||
| 	SecureStreamSocket(); | ||||
| 		/// Creates an unconnected stream socket. | ||||
| 		/// | ||||
| 		/// Before sending or receiving data, the socket | ||||
| 		/// must be connected with a call to connect(). | ||||
|  | ||||
| 	SecureStreamSocket(const SocketAddress& address); | ||||
| 		/// Creates a stream socket and connects it to | ||||
| 		/// the socket specified by address. | ||||
|  | ||||
| 	SecureStreamSocket(const Socket& socket); | ||||
| 		/// Creates the StreamSocket with the SocketImpl | ||||
| 		/// from another socket. The SocketImpl must be | ||||
| 		/// a StreamSocketImpl, otherwise an InvalidArgumentException | ||||
| 		/// will be thrown. | ||||
|  | ||||
| 	virtual ~SecureStreamSocket(); | ||||
| 		/// Destroys the StreamSocket. | ||||
|  | ||||
| 	SecureStreamSocket& operator = (const Socket& socket); | ||||
| 		/// Assignment operator. | ||||
| 		/// | ||||
| 		/// Releases the socket's SocketImpl and | ||||
| 		/// attaches the SocketImpl from the other socket and | ||||
| 		/// increments the reference count of the SocketImpl.	 | ||||
|  | ||||
| protected: | ||||
| 	SecureStreamSocket(SocketImpl* pImpl); | ||||
|  | ||||
| 	friend class SecureServerSocket; | ||||
| }; | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| #endif // NetSSL_SecureStreamSocket_INCLUDED | ||||
|   | ||||
| @@ -1,184 +1,184 @@ | ||||
| // | ||||
| // SecureStreamSocketImpl.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/SecureStreamSocketImpl.h#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLSockets | ||||
| // Module:  SecureStreamSocketImpl | ||||
| // | ||||
| // Definition of the SecureStreamSocketImpl class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_SecureStreamSocketImpl_INCLUDED | ||||
| #define NetSSL_SecureStreamSocketImpl_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
| #include "Poco/Net/SecureSocketImpl.h" | ||||
| #include "Poco/Net/StreamSocketImpl.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class NetSSL_API SecureStreamSocketImpl: public StreamSocketImpl | ||||
| 	/// This class implements a SSL TCP socket. | ||||
| { | ||||
| public: | ||||
| 	SecureStreamSocketImpl(); | ||||
| 		/// Creates the SecureStreamSocketImpl. | ||||
|  | ||||
| 	SecureStreamSocketImpl(SSL* _pSSL); | ||||
| 		/// Creates a SecureStreamSocketImpl using the given native socket. | ||||
|  | ||||
| 	SocketImpl* acceptConnection(SocketAddress& clientAddr); | ||||
| 		/// Get the next completed connection from the | ||||
| 		/// socket's completed connection queue. | ||||
| 		/// | ||||
| 		/// If the queue is empty, waits until a connection | ||||
| 		/// request completes. | ||||
| 		/// | ||||
| 		/// Returns a new TCP socket for the connection | ||||
| 		/// with the client. | ||||
| 		/// | ||||
| 		/// The client socket's address is returned in clientAddr. | ||||
| 	 | ||||
| 	void connect(const SocketAddress& address); | ||||
| 		/// Initializes the socket and establishes a connection to  | ||||
| 		/// the TCP server at the given address. | ||||
| 		/// | ||||
| 		/// Can also be used for UDP sockets. In this case, no | ||||
| 		/// connection is established. Instead, incoming and outgoing | ||||
| 		/// packets are restricted to the specified address. | ||||
|  | ||||
| 	void connect(const SocketAddress& address, const Poco::Timespan& timeout); | ||||
| 		/// Initializes the socket, sets the socket timeout and  | ||||
| 		/// establishes a connection to the TCP server at the given address. | ||||
|  | ||||
| 	void connectNB(const SocketAddress& address); | ||||
| 		/// Initializes the socket and establishes a connection to  | ||||
| 		/// the TCP server at the given address. Prior to opening the | ||||
| 		/// connection the socket is set to nonblocking mode. | ||||
| 	 | ||||
| 	void bind(const SocketAddress& address, bool reuseAddress = false); | ||||
| 		/// Bind a local address to the socket. | ||||
| 		/// | ||||
| 		/// This is usually only done when establishing a server | ||||
| 		/// socket. TCP clients should not bind a socket to a | ||||
| 		/// specific address. | ||||
| 		/// | ||||
| 		/// If reuseAddress is true, sets the SO_REUSEADDR | ||||
| 		/// socket option. | ||||
| 		 | ||||
| 	void listen(int backlog = 64); | ||||
| 		/// Puts the socket into listening state. | ||||
| 		/// | ||||
| 		/// The socket becomes a passive socket that | ||||
| 		/// can accept incoming connection requests. | ||||
| 		/// | ||||
| 		/// The backlog argument specifies the maximum | ||||
| 		/// number of connections that can be queued | ||||
| 		/// for this socket. | ||||
|  | ||||
| 	void close(); | ||||
| 		/// Close the socket. | ||||
| 	 | ||||
| 	int sendBytes(const void* buffer, int length, int flags = 0); | ||||
| 		/// Sends the contents of the given buffer through | ||||
| 		/// the socket. Any specified flags are ignored. | ||||
| 		/// | ||||
| 		/// Returns the number of bytes sent, which may be | ||||
| 		/// less than the number of bytes specified. | ||||
| 	 | ||||
| 	int receiveBytes(void* buffer, int length, int flags = 0); | ||||
| 		/// Receives data from the socket and stores it | ||||
| 		/// in buffer. Up to length bytes are received. | ||||
| 		/// | ||||
| 		/// Returns the number of bytes received. | ||||
| 	 | ||||
| 	int sendTo(const void* buffer, int length, const SocketAddress& address, int flags = 0); | ||||
| 		/// Sends the contents of the given buffer through | ||||
| 		/// the socket to the given address. | ||||
| 		/// | ||||
| 		/// Returns the number of bytes sent, which may be | ||||
| 		/// less than the number of bytes specified. | ||||
| 	 | ||||
| 	int receiveFrom(void* buffer, int length, SocketAddress& address, int flags = 0); | ||||
| 		/// Receives data from the socket and stores it | ||||
| 		/// in buffer. Up to length bytes are received. | ||||
| 		/// Stores the address of the sender in address. | ||||
| 		/// | ||||
| 		/// Returns the number of bytes received. | ||||
| 	 | ||||
| 	void sendUrgent(unsigned char data); | ||||
| 		/// Sends one byte of urgent data through | ||||
| 		/// the socket. | ||||
| 		/// | ||||
| 		/// The data is sent with the MSG_OOB flag. | ||||
| 		/// | ||||
| 		/// The preferred way for a socket to receive urgent data | ||||
| 		/// is by enabling the SO_OOBINLINE option. | ||||
|  | ||||
| 	void setTunnelEndPoint(const std::string& host, Poco::UInt16 port); | ||||
| 		/// Due to the fact that SSLConnections that run over proxies require | ||||
| 		/// a different connect phase (ie send an unencrypted HTTP CONNECT before | ||||
| 		/// establishing, we must inform the socket that it is only used as a proxy | ||||
| 		/// that works as a tunnel to the given endPoint. | ||||
| 		/// Only call this method on disconnected sockets. | ||||
|  | ||||
| protected: | ||||
| 	~SecureStreamSocketImpl(); | ||||
| 		/// Destroys the SecureStreamSocketImpl. | ||||
|  | ||||
| private: | ||||
| 	SecureStreamSocketImpl(const SecureStreamSocketImpl&); | ||||
| 	SecureStreamSocketImpl& operator = (const SecureStreamSocketImpl&); | ||||
|  | ||||
| private: | ||||
| 	SecureSocketImpl _socket; | ||||
|  | ||||
| 	friend class SecureSocketImpl; | ||||
| }; | ||||
|  | ||||
|  | ||||
| // | ||||
| // inlines | ||||
| // | ||||
| inline void SecureStreamSocketImpl::setTunnelEndPoint(const std::string& host, Poco::UInt16 port) | ||||
| { | ||||
| 	_socket.setTunnelEndPoint(host, port); | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| #endif // NetSSL_SecureStreamSocketImpl_INCLUDED | ||||
| // | ||||
| // SecureStreamSocketImpl.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/SecureStreamSocketImpl.h#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLSockets | ||||
| // Module:  SecureStreamSocketImpl | ||||
| // | ||||
| // Definition of the SecureStreamSocketImpl class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_SecureStreamSocketImpl_INCLUDED | ||||
| #define NetSSL_SecureStreamSocketImpl_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
| #include "Poco/Net/SecureSocketImpl.h" | ||||
| #include "Poco/Net/StreamSocketImpl.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class NetSSL_API SecureStreamSocketImpl: public StreamSocketImpl | ||||
| 	/// This class implements a SSL TCP socket. | ||||
| { | ||||
| public: | ||||
| 	SecureStreamSocketImpl(); | ||||
| 		/// Creates the SecureStreamSocketImpl. | ||||
|  | ||||
| 	SecureStreamSocketImpl(SSL* _pSSL); | ||||
| 		/// Creates a SecureStreamSocketImpl using the given native socket. | ||||
|  | ||||
| 	SocketImpl* acceptConnection(SocketAddress& clientAddr); | ||||
| 		/// Get the next completed connection from the | ||||
| 		/// socket's completed connection queue. | ||||
| 		/// | ||||
| 		/// If the queue is empty, waits until a connection | ||||
| 		/// request completes. | ||||
| 		/// | ||||
| 		/// Returns a new TCP socket for the connection | ||||
| 		/// with the client. | ||||
| 		/// | ||||
| 		/// The client socket's address is returned in clientAddr. | ||||
| 	 | ||||
| 	void connect(const SocketAddress& address); | ||||
| 		/// Initializes the socket and establishes a connection to  | ||||
| 		/// the TCP server at the given address. | ||||
| 		/// | ||||
| 		/// Can also be used for UDP sockets. In this case, no | ||||
| 		/// connection is established. Instead, incoming and outgoing | ||||
| 		/// packets are restricted to the specified address. | ||||
|  | ||||
| 	void connect(const SocketAddress& address, const Poco::Timespan& timeout); | ||||
| 		/// Initializes the socket, sets the socket timeout and  | ||||
| 		/// establishes a connection to the TCP server at the given address. | ||||
|  | ||||
| 	void connectNB(const SocketAddress& address); | ||||
| 		/// Initializes the socket and establishes a connection to  | ||||
| 		/// the TCP server at the given address. Prior to opening the | ||||
| 		/// connection the socket is set to nonblocking mode. | ||||
| 	 | ||||
| 	void bind(const SocketAddress& address, bool reuseAddress = false); | ||||
| 		/// Bind a local address to the socket. | ||||
| 		/// | ||||
| 		/// This is usually only done when establishing a server | ||||
| 		/// socket. TCP clients should not bind a socket to a | ||||
| 		/// specific address. | ||||
| 		/// | ||||
| 		/// If reuseAddress is true, sets the SO_REUSEADDR | ||||
| 		/// socket option. | ||||
| 		 | ||||
| 	void listen(int backlog = 64); | ||||
| 		/// Puts the socket into listening state. | ||||
| 		/// | ||||
| 		/// The socket becomes a passive socket that | ||||
| 		/// can accept incoming connection requests. | ||||
| 		/// | ||||
| 		/// The backlog argument specifies the maximum | ||||
| 		/// number of connections that can be queued | ||||
| 		/// for this socket. | ||||
|  | ||||
| 	void close(); | ||||
| 		/// Close the socket. | ||||
| 	 | ||||
| 	int sendBytes(const void* buffer, int length, int flags = 0); | ||||
| 		/// Sends the contents of the given buffer through | ||||
| 		/// the socket. Any specified flags are ignored. | ||||
| 		/// | ||||
| 		/// Returns the number of bytes sent, which may be | ||||
| 		/// less than the number of bytes specified. | ||||
| 	 | ||||
| 	int receiveBytes(void* buffer, int length, int flags = 0); | ||||
| 		/// Receives data from the socket and stores it | ||||
| 		/// in buffer. Up to length bytes are received. | ||||
| 		/// | ||||
| 		/// Returns the number of bytes received. | ||||
| 	 | ||||
| 	int sendTo(const void* buffer, int length, const SocketAddress& address, int flags = 0); | ||||
| 		/// Sends the contents of the given buffer through | ||||
| 		/// the socket to the given address. | ||||
| 		/// | ||||
| 		/// Returns the number of bytes sent, which may be | ||||
| 		/// less than the number of bytes specified. | ||||
| 	 | ||||
| 	int receiveFrom(void* buffer, int length, SocketAddress& address, int flags = 0); | ||||
| 		/// Receives data from the socket and stores it | ||||
| 		/// in buffer. Up to length bytes are received. | ||||
| 		/// Stores the address of the sender in address. | ||||
| 		/// | ||||
| 		/// Returns the number of bytes received. | ||||
| 	 | ||||
| 	void sendUrgent(unsigned char data); | ||||
| 		/// Sends one byte of urgent data through | ||||
| 		/// the socket. | ||||
| 		/// | ||||
| 		/// The data is sent with the MSG_OOB flag. | ||||
| 		/// | ||||
| 		/// The preferred way for a socket to receive urgent data | ||||
| 		/// is by enabling the SO_OOBINLINE option. | ||||
|  | ||||
| 	void setTunnelEndPoint(const std::string& host, Poco::UInt16 port); | ||||
| 		/// Due to the fact that SSLConnections that run over proxies require | ||||
| 		/// a different connect phase (ie send an unencrypted HTTP CONNECT before | ||||
| 		/// establishing, we must inform the socket that it is only used as a proxy | ||||
| 		/// that works as a tunnel to the given endPoint. | ||||
| 		/// Only call this method on disconnected sockets. | ||||
|  | ||||
| protected: | ||||
| 	~SecureStreamSocketImpl(); | ||||
| 		/// Destroys the SecureStreamSocketImpl. | ||||
|  | ||||
| private: | ||||
| 	SecureStreamSocketImpl(const SecureStreamSocketImpl&); | ||||
| 	SecureStreamSocketImpl& operator = (const SecureStreamSocketImpl&); | ||||
|  | ||||
| private: | ||||
| 	SecureSocketImpl _socket; | ||||
|  | ||||
| 	friend class SecureSocketImpl; | ||||
| }; | ||||
|  | ||||
|  | ||||
| // | ||||
| // inlines | ||||
| // | ||||
| inline void SecureStreamSocketImpl::setTunnelEndPoint(const std::string& host, Poco::UInt16 port) | ||||
| { | ||||
| 	_socket.setTunnelEndPoint(host, port); | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| #endif // NetSSL_SecureStreamSocketImpl_INCLUDED | ||||
|   | ||||
| @@ -1,72 +1,72 @@ | ||||
| // | ||||
| // Utility.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/Utility.h#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  Utility | ||||
| // | ||||
| // Definition of the Utility class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_Utility_INCLUDED | ||||
| #define NetSSL_Utility_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
| #include "Poco/Net/Context.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class NetSSL_API Utility | ||||
| 	/// Class Utility. helper class for init & shutdown of the OpenSSL library | ||||
| { | ||||
| public: | ||||
| 	static int HTTPS_PORT; | ||||
| 		/// Default port value for HHTPS | ||||
|  | ||||
| 	static Context::VerificationMode convertVerificationMode(const std::string& verMode); | ||||
| 		/// Non-case sensitive conversion of a string to a VerificationMode enum. | ||||
| 		/// If verMode is illegal an OptionException is thrown. | ||||
|  | ||||
| 	static std::string convertCertificateError(long errCode); | ||||
| 		/// Converts an SSL error code into human readable form | ||||
|  | ||||
| 	static std::string convertSSLError(SSL* pSSL, int errCode); | ||||
| }; | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| #endif // NetSSL_Utility_INCLUDED | ||||
| // | ||||
| // Utility.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/Utility.h#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  Utility | ||||
| // | ||||
| // Definition of the Utility class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_Utility_INCLUDED | ||||
| #define NetSSL_Utility_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
| #include "Poco/Net/Context.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class NetSSL_API Utility | ||||
| 	/// Class Utility. helper class for init & shutdown of the OpenSSL library | ||||
| { | ||||
| public: | ||||
| 	static int HTTPS_PORT; | ||||
| 		/// Default port value for HHTPS | ||||
|  | ||||
| 	static Context::VerificationMode convertVerificationMode(const std::string& verMode); | ||||
| 		/// Non-case sensitive conversion of a string to a VerificationMode enum. | ||||
| 		/// If verMode is illegal an OptionException is thrown. | ||||
|  | ||||
| 	static std::string convertCertificateError(long errCode); | ||||
| 		/// Converts an SSL error code into human readable form | ||||
|  | ||||
| 	static std::string convertSSLError(SSL* pSSL, int errCode); | ||||
| }; | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| #endif // NetSSL_Utility_INCLUDED | ||||
|   | ||||
| @@ -1,130 +1,130 @@ | ||||
| // | ||||
| // VerificationErrorArgs.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/VerificationErrorArgs.h#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  VerificationErrorArgs | ||||
| // | ||||
| // Definition of the VerificationErrorArgs class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_VerificationErrorArgs_INCLUDED | ||||
| #define NetSSL_VerificationErrorArgs_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
| #include "Poco/Net/X509Certificate.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class NetSSL_API VerificationErrorArgs | ||||
| 	/// A utility class for certificate error handling. | ||||
| { | ||||
| public: | ||||
| 	VerificationErrorArgs(const X509Certificate& cert, int errDepth, int errNum, const std::string& errMsg); | ||||
| 		/// Creates the VerificationErrorArgs. _ignoreError is per default set to false. | ||||
|  | ||||
| 	~VerificationErrorArgs(); | ||||
| 		/// Destroys the VerificationErrorArgs. | ||||
|  | ||||
| 	const X509Certificate& certificate() const; | ||||
| 		/// Returns the certificate that caused the error. | ||||
|  | ||||
| 	int errorDepth() const; | ||||
| 		/// Returns the position of the certificate in the certificate chain. | ||||
|  | ||||
| 	int errorNumber() const; | ||||
| 		/// Returns the id of the error | ||||
|  | ||||
| 	const std::string& errorMessage() const; | ||||
| 		/// Returns the textual presentation of the errorNumber. | ||||
|  | ||||
| 	void setIgnoreError(bool ignoreError); | ||||
| 		/// setIgnoreError to true, if a verification error is judged non-fatal by the user. | ||||
|  | ||||
| 	bool getIgnoreError() const; | ||||
| 		/// returns the value of _ignoreError | ||||
|  | ||||
| private: | ||||
| 	X509Certificate	_cert; | ||||
| 	int             _errorDepth; | ||||
| 	int             _errorNumber; | ||||
| 	std::string     _errorMessage; /// Textual representation of the _errorNumber | ||||
| 	bool            _ignoreError; | ||||
| }; | ||||
|  | ||||
|  | ||||
| // | ||||
| // inlines | ||||
| // | ||||
| inline const X509Certificate& VerificationErrorArgs::certificate() const | ||||
| { | ||||
| 	return _cert; | ||||
| } | ||||
|  | ||||
|  | ||||
| inline int VerificationErrorArgs::errorDepth() const | ||||
| { | ||||
| 	return _errorDepth; | ||||
| } | ||||
|  | ||||
|  | ||||
| inline int VerificationErrorArgs::errorNumber() const | ||||
| { | ||||
| 	return _errorNumber; | ||||
| } | ||||
|  | ||||
|  | ||||
| inline const std::string& VerificationErrorArgs::errorMessage() const | ||||
| { | ||||
| 	return _errorMessage; | ||||
| } | ||||
|  | ||||
|  | ||||
| inline void VerificationErrorArgs::setIgnoreError(bool ignoreError) | ||||
| { | ||||
| 	_ignoreError = ignoreError; | ||||
| } | ||||
|  | ||||
|  | ||||
| inline bool VerificationErrorArgs::getIgnoreError() const | ||||
| { | ||||
| 	return _ignoreError; | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| #endif // NetSSL_VerificationErrorArgs_INCLUDED | ||||
| // | ||||
| // VerificationErrorArgs.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/VerificationErrorArgs.h#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  VerificationErrorArgs | ||||
| // | ||||
| // Definition of the VerificationErrorArgs class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSL_VerificationErrorArgs_INCLUDED | ||||
| #define NetSSL_VerificationErrorArgs_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/NetSSL.h" | ||||
| #include "Poco/Net/X509Certificate.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| class NetSSL_API VerificationErrorArgs | ||||
| 	/// A utility class for certificate error handling. | ||||
| { | ||||
| public: | ||||
| 	VerificationErrorArgs(const X509Certificate& cert, int errDepth, int errNum, const std::string& errMsg); | ||||
| 		/// Creates the VerificationErrorArgs. _ignoreError is per default set to false. | ||||
|  | ||||
| 	~VerificationErrorArgs(); | ||||
| 		/// Destroys the VerificationErrorArgs. | ||||
|  | ||||
| 	const X509Certificate& certificate() const; | ||||
| 		/// Returns the certificate that caused the error. | ||||
|  | ||||
| 	int errorDepth() const; | ||||
| 		/// Returns the position of the certificate in the certificate chain. | ||||
|  | ||||
| 	int errorNumber() const; | ||||
| 		/// Returns the id of the error | ||||
|  | ||||
| 	const std::string& errorMessage() const; | ||||
| 		/// Returns the textual presentation of the errorNumber. | ||||
|  | ||||
| 	void setIgnoreError(bool ignoreError); | ||||
| 		/// setIgnoreError to true, if a verification error is judged non-fatal by the user. | ||||
|  | ||||
| 	bool getIgnoreError() const; | ||||
| 		/// returns the value of _ignoreError | ||||
|  | ||||
| private: | ||||
| 	X509Certificate	_cert; | ||||
| 	int             _errorDepth; | ||||
| 	int             _errorNumber; | ||||
| 	std::string     _errorMessage; /// Textual representation of the _errorNumber | ||||
| 	bool            _ignoreError; | ||||
| }; | ||||
|  | ||||
|  | ||||
| // | ||||
| // inlines | ||||
| // | ||||
| inline const X509Certificate& VerificationErrorArgs::certificate() const | ||||
| { | ||||
| 	return _cert; | ||||
| } | ||||
|  | ||||
|  | ||||
| inline int VerificationErrorArgs::errorDepth() const | ||||
| { | ||||
| 	return _errorDepth; | ||||
| } | ||||
|  | ||||
|  | ||||
| inline int VerificationErrorArgs::errorNumber() const | ||||
| { | ||||
| 	return _errorNumber; | ||||
| } | ||||
|  | ||||
|  | ||||
| inline const std::string& VerificationErrorArgs::errorMessage() const | ||||
| { | ||||
| 	return _errorMessage; | ||||
| } | ||||
|  | ||||
|  | ||||
| inline void VerificationErrorArgs::setIgnoreError(bool ignoreError) | ||||
| { | ||||
| 	_ignoreError = ignoreError; | ||||
| } | ||||
|  | ||||
|  | ||||
| inline bool VerificationErrorArgs::getIgnoreError() const | ||||
| { | ||||
| 	return _ignoreError; | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|  | ||||
|  | ||||
| #endif // NetSSL_VerificationErrorArgs_INCLUDED | ||||
|   | ||||
| @@ -1,29 +1,29 @@ | ||||
| # This is a sample configuration file for HTTPTimeServer | ||||
|  | ||||
| logging.loggers.root.channel.class = ConsoleChannel | ||||
| logging.loggers.app.name = Application | ||||
| logging.loggers.app.channel = c1 | ||||
| logging.formatters.f1.class = PatternFormatter | ||||
| logging.formatters.f1.pattern = [%p] %t | ||||
| logging.channels.c1.class = ConsoleChannel | ||||
| logging.channels.c1.formatter = f1 | ||||
| # HTTPSTimeServer.format = %W, %e %b %y %H:%M:%S %Z | ||||
| # HTTPSTimeServer.port   = 9980 | ||||
| # openSSL.client.privateKeyFile = ${application.configDir}any.pem | ||||
| # openSSL.client.caConfig = ${application.configDir}rootcert.pem | ||||
| # openSSL.client.verificationMode = relaxed | ||||
| # openSSL.client.verificationDepth = 9 | ||||
| # openSSL.client.loadDefaultCAFile = false | ||||
| # openSSL.client.cypherList = ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH | ||||
| # openSSL.client.privateKeyPassphraseHandler.name = KeyFileHandler | ||||
| # openSSL.client.privateKeyPassphraseHandler.options.password = test | ||||
| # openSSL.client.invalidCertificateHandler = AcceptCertificateHandler | ||||
| openSSL.server.privateKeyFile = ${application.configDir}any.pem | ||||
| openSSL.server.caConfig = ${application.configDir}rootcert.pem | ||||
| openSSL.server.verificationMode = none | ||||
| openSSL.server.verificationDepth = 9 | ||||
| openSSL.server.loadDefaultCAFile = false | ||||
| openSSL.server.cypherList = ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH | ||||
| openSSL.server.privateKeyPassphraseHandler.name = KeyFileHandler | ||||
| openSSL.server.privateKeyPassphraseHandler.options.password = test | ||||
| openSSL.server.invalidCertificateHandler = AcceptCertificateHandler | ||||
| # This is a sample configuration file for HTTPTimeServer | ||||
|  | ||||
| logging.loggers.root.channel.class = ConsoleChannel | ||||
| logging.loggers.app.name = Application | ||||
| logging.loggers.app.channel = c1 | ||||
| logging.formatters.f1.class = PatternFormatter | ||||
| logging.formatters.f1.pattern = [%p] %t | ||||
| logging.channels.c1.class = ConsoleChannel | ||||
| logging.channels.c1.formatter = f1 | ||||
| # HTTPSTimeServer.format = %W, %e %b %y %H:%M:%S %Z | ||||
| # HTTPSTimeServer.port   = 9980 | ||||
| # openSSL.client.privateKeyFile = ${application.configDir}any.pem | ||||
| # openSSL.client.caConfig = ${application.configDir}rootcert.pem | ||||
| # openSSL.client.verificationMode = relaxed | ||||
| # openSSL.client.verificationDepth = 9 | ||||
| # openSSL.client.loadDefaultCAFile = false | ||||
| # openSSL.client.cypherList = ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH | ||||
| # openSSL.client.privateKeyPassphraseHandler.name = KeyFileHandler | ||||
| # openSSL.client.privateKeyPassphraseHandler.options.password = test | ||||
| # openSSL.client.invalidCertificateHandler = AcceptCertificateHandler | ||||
| openSSL.server.privateKeyFile = ${application.configDir}any.pem | ||||
| openSSL.server.caConfig = ${application.configDir}rootcert.pem | ||||
| openSSL.server.verificationMode = none | ||||
| openSSL.server.verificationDepth = 9 | ||||
| openSSL.server.loadDefaultCAFile = false | ||||
| openSSL.server.cypherList = ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH | ||||
| openSSL.server.privateKeyPassphraseHandler.name = KeyFileHandler | ||||
| openSSL.server.privateKeyPassphraseHandler.options.password = test | ||||
| openSSL.server.invalidCertificateHandler = AcceptCertificateHandler | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| # | ||||
| # sample.vmsbuild | ||||
| # | ||||
| # $Id: //poco/Main/Net/samples/HTTPTimeServer/HTTPTimeServer.vmsbuild#1 $ | ||||
| # | ||||
| EXE=HTTPSTimeServer | ||||
| HTTPSTimeServer | ||||
| # | ||||
| # sample.vmsbuild | ||||
| # | ||||
| # $Id: //poco/Main/Net/samples/HTTPTimeServer/HTTPTimeServer.vmsbuild#1 $ | ||||
| # | ||||
| EXE=HTTPSTimeServer | ||||
| HTTPSTimeServer | ||||
|   | ||||
| @@ -1,152 +1,152 @@ | ||||
| <?xml version="1.0" encoding="Windows-1252"?> | ||||
| <VisualStudioProject | ||||
| 	ProjectType="Visual C++" | ||||
| 	Version="7.10" | ||||
| 	Name="HTTPSTimeServer" | ||||
| 	ProjectGUID="{B11672FF-4E0A-4cf4-8FC0-0AEEAF962158}" | ||||
| 	Keyword="Win32Proj"> | ||||
| 	<Platforms> | ||||
| 		<Platform | ||||
| 			Name="Win32"/> | ||||
| 	</Platforms> | ||||
| 	<Configurations> | ||||
| 		<Configuration | ||||
| 			Name="debug_shared|Win32" | ||||
| 			OutputDirectory="obj\debug_shared" | ||||
| 			IntermediateDirectory="obj\debug_shared" | ||||
| 			ConfigurationType="1" | ||||
| 			UseOfMFC="2" | ||||
| 			CharacterSet="2"> | ||||
| 			<Tool | ||||
| 				Name="VCCLCompilerTool" | ||||
| 				Optimization="0" | ||||
| 				AdditionalIncludeDirectories=".\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Net\include;..\..\..\Util\include;..\..\..\NetSSL_OpenSSL\include" | ||||
| 				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_DLL;WINVER=0x0500" | ||||
| 				MinimalRebuild="TRUE" | ||||
| 				BasicRuntimeChecks="3" | ||||
| 				RuntimeLibrary="3" | ||||
| 				BufferSecurityCheck="TRUE" | ||||
| 				TreatWChar_tAsBuiltInType="TRUE" | ||||
| 				ForceConformanceInForLoopScope="TRUE" | ||||
| 				RuntimeTypeInfo="TRUE" | ||||
| 				UsePrecompiledHeader="0" | ||||
| 				WarningLevel="3" | ||||
| 				Detect64BitPortabilityProblems="TRUE" | ||||
| 				DebugInformationFormat="4"/> | ||||
| 			<Tool | ||||
| 				Name="VCCustomBuildTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCLinkerTool" | ||||
| 				AdditionalDependencies="PocoFoundationd.lib PocoXMLd.lib PocoNetd.lib PocoUtild.lib PocoNetSSLd.lib" | ||||
| 				OutputFile="bin/HTTPSTimeServerd.exe" | ||||
| 				LinkIncremental="2" | ||||
| 				AdditionalLibraryDirectories="..\..\..\lib" | ||||
| 				GenerateDebugInformation="TRUE" | ||||
| 				ProgramDatabaseFile="bin/HTTPSTimeServerd.pdb" | ||||
| 				SubSystem="1" | ||||
| 				TargetMachine="1"/> | ||||
| 			<Tool | ||||
| 				Name="VCMIDLTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPostBuildEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreBuildEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreLinkEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCResourceCompilerTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCWebServiceProxyGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCXMLDataGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCWebDeploymentTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCManagedWrapperGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCAuxiliaryManagedWrapperGeneratorTool"/> | ||||
| 		</Configuration> | ||||
| 		<Configuration | ||||
| 			Name="release_shared|Win32" | ||||
| 			OutputDirectory="obj\release_shared" | ||||
| 			IntermediateDirectory="obj\release_shared" | ||||
| 			ConfigurationType="1" | ||||
| 			UseOfMFC="2" | ||||
| 			CharacterSet="2"> | ||||
| 			<Tool | ||||
| 				Name="VCCLCompilerTool" | ||||
| 				Optimization="4" | ||||
| 				InlineFunctionExpansion="1" | ||||
| 				EnableIntrinsicFunctions="TRUE" | ||||
| 				FavorSizeOrSpeed="1" | ||||
| 				OmitFramePointers="TRUE" | ||||
| 				OptimizeForWindowsApplication="TRUE" | ||||
| 				AdditionalIncludeDirectories=".\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Net\include;..\..\..\Util\include;..\..\..\NetSSL_OpenSSL\include" | ||||
| 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_DLL;WINVER=0x0500" | ||||
| 				StringPooling="TRUE" | ||||
| 				RuntimeLibrary="2" | ||||
| 				BufferSecurityCheck="FALSE" | ||||
| 				TreatWChar_tAsBuiltInType="TRUE" | ||||
| 				ForceConformanceInForLoopScope="TRUE" | ||||
| 				RuntimeTypeInfo="TRUE" | ||||
| 				UsePrecompiledHeader="0" | ||||
| 				WarningLevel="3" | ||||
| 				Detect64BitPortabilityProblems="TRUE" | ||||
| 				DebugInformationFormat="3"/> | ||||
| 			<Tool | ||||
| 				Name="VCCustomBuildTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCLinkerTool" | ||||
| 				AdditionalDependencies="PocoFoundation.lib PocoXML.lib PocoNet.lib PocoUtil.lib PocoNetSSL.lib" | ||||
| 				OutputFile="bin/HTTPSTimeServer.exe" | ||||
| 				LinkIncremental="1" | ||||
| 				AdditionalLibraryDirectories="..\..\..\lib" | ||||
| 				GenerateDebugInformation="FALSE" | ||||
| 				ProgramDatabaseFile="" | ||||
| 				SubSystem="1" | ||||
| 				OptimizeReferences="2" | ||||
| 				EnableCOMDATFolding="2" | ||||
| 				TargetMachine="1"/> | ||||
| 			<Tool | ||||
| 				Name="VCMIDLTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPostBuildEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreBuildEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreLinkEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCResourceCompilerTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCWebServiceProxyGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCXMLDataGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCWebDeploymentTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCManagedWrapperGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCAuxiliaryManagedWrapperGeneratorTool"/> | ||||
| 		</Configuration> | ||||
| 	</Configurations> | ||||
| 	<References> | ||||
| 	</References> | ||||
| 	<Files> | ||||
| 		<Filter | ||||
| 			Name="Configuration Files" | ||||
| 			Filter=""> | ||||
| 			<File | ||||
| 				RelativePath=".\HTTPSTimeServer.properties"> | ||||
| 			</File> | ||||
| 		</Filter> | ||||
| 		<Filter | ||||
| 			Name="Source Files" | ||||
| 			Filter=""> | ||||
| 			<File | ||||
| 				RelativePath=".\src\HTTPSTimeServer.cpp"> | ||||
| 			</File> | ||||
| 		</Filter> | ||||
| 	</Files> | ||||
| 	<Globals> | ||||
| 	</Globals> | ||||
| </VisualStudioProject> | ||||
| <?xml version="1.0" encoding="Windows-1252"?> | ||||
| <VisualStudioProject | ||||
| 	ProjectType="Visual C++" | ||||
| 	Version="7.10" | ||||
| 	Name="HTTPSTimeServer" | ||||
| 	ProjectGUID="{B11672FF-4E0A-4cf4-8FC0-0AEEAF962158}" | ||||
| 	Keyword="Win32Proj"> | ||||
| 	<Platforms> | ||||
| 		<Platform | ||||
| 			Name="Win32"/> | ||||
| 	</Platforms> | ||||
| 	<Configurations> | ||||
| 		<Configuration | ||||
| 			Name="debug_shared|Win32" | ||||
| 			OutputDirectory="obj\debug_shared" | ||||
| 			IntermediateDirectory="obj\debug_shared" | ||||
| 			ConfigurationType="1" | ||||
| 			UseOfMFC="2" | ||||
| 			CharacterSet="2"> | ||||
| 			<Tool | ||||
| 				Name="VCCLCompilerTool" | ||||
| 				Optimization="0" | ||||
| 				AdditionalIncludeDirectories=".\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Net\include;..\..\..\Util\include;..\..\..\NetSSL_OpenSSL\include" | ||||
| 				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_DLL;WINVER=0x0500" | ||||
| 				MinimalRebuild="TRUE" | ||||
| 				BasicRuntimeChecks="3" | ||||
| 				RuntimeLibrary="3" | ||||
| 				BufferSecurityCheck="TRUE" | ||||
| 				TreatWChar_tAsBuiltInType="TRUE" | ||||
| 				ForceConformanceInForLoopScope="TRUE" | ||||
| 				RuntimeTypeInfo="TRUE" | ||||
| 				UsePrecompiledHeader="0" | ||||
| 				WarningLevel="3" | ||||
| 				Detect64BitPortabilityProblems="TRUE" | ||||
| 				DebugInformationFormat="4"/> | ||||
| 			<Tool | ||||
| 				Name="VCCustomBuildTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCLinkerTool" | ||||
| 				AdditionalDependencies="PocoFoundationd.lib PocoXMLd.lib PocoNetd.lib PocoUtild.lib PocoNetSSLd.lib" | ||||
| 				OutputFile="bin/HTTPSTimeServerd.exe" | ||||
| 				LinkIncremental="2" | ||||
| 				AdditionalLibraryDirectories="..\..\..\lib" | ||||
| 				GenerateDebugInformation="TRUE" | ||||
| 				ProgramDatabaseFile="bin/HTTPSTimeServerd.pdb" | ||||
| 				SubSystem="1" | ||||
| 				TargetMachine="1"/> | ||||
| 			<Tool | ||||
| 				Name="VCMIDLTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPostBuildEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreBuildEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreLinkEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCResourceCompilerTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCWebServiceProxyGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCXMLDataGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCWebDeploymentTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCManagedWrapperGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCAuxiliaryManagedWrapperGeneratorTool"/> | ||||
| 		</Configuration> | ||||
| 		<Configuration | ||||
| 			Name="release_shared|Win32" | ||||
| 			OutputDirectory="obj\release_shared" | ||||
| 			IntermediateDirectory="obj\release_shared" | ||||
| 			ConfigurationType="1" | ||||
| 			UseOfMFC="2" | ||||
| 			CharacterSet="2"> | ||||
| 			<Tool | ||||
| 				Name="VCCLCompilerTool" | ||||
| 				Optimization="4" | ||||
| 				InlineFunctionExpansion="1" | ||||
| 				EnableIntrinsicFunctions="TRUE" | ||||
| 				FavorSizeOrSpeed="1" | ||||
| 				OmitFramePointers="TRUE" | ||||
| 				OptimizeForWindowsApplication="TRUE" | ||||
| 				AdditionalIncludeDirectories=".\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Net\include;..\..\..\Util\include;..\..\..\NetSSL_OpenSSL\include" | ||||
| 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_DLL;WINVER=0x0500" | ||||
| 				StringPooling="TRUE" | ||||
| 				RuntimeLibrary="2" | ||||
| 				BufferSecurityCheck="FALSE" | ||||
| 				TreatWChar_tAsBuiltInType="TRUE" | ||||
| 				ForceConformanceInForLoopScope="TRUE" | ||||
| 				RuntimeTypeInfo="TRUE" | ||||
| 				UsePrecompiledHeader="0" | ||||
| 				WarningLevel="3" | ||||
| 				Detect64BitPortabilityProblems="TRUE" | ||||
| 				DebugInformationFormat="3"/> | ||||
| 			<Tool | ||||
| 				Name="VCCustomBuildTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCLinkerTool" | ||||
| 				AdditionalDependencies="PocoFoundation.lib PocoXML.lib PocoNet.lib PocoUtil.lib PocoNetSSL.lib" | ||||
| 				OutputFile="bin/HTTPSTimeServer.exe" | ||||
| 				LinkIncremental="1" | ||||
| 				AdditionalLibraryDirectories="..\..\..\lib" | ||||
| 				GenerateDebugInformation="FALSE" | ||||
| 				ProgramDatabaseFile="" | ||||
| 				SubSystem="1" | ||||
| 				OptimizeReferences="2" | ||||
| 				EnableCOMDATFolding="2" | ||||
| 				TargetMachine="1"/> | ||||
| 			<Tool | ||||
| 				Name="VCMIDLTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPostBuildEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreBuildEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreLinkEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCResourceCompilerTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCWebServiceProxyGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCXMLDataGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCWebDeploymentTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCManagedWrapperGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCAuxiliaryManagedWrapperGeneratorTool"/> | ||||
| 		</Configuration> | ||||
| 	</Configurations> | ||||
| 	<References> | ||||
| 	</References> | ||||
| 	<Files> | ||||
| 		<Filter | ||||
| 			Name="Configuration Files" | ||||
| 			Filter=""> | ||||
| 			<File | ||||
| 				RelativePath=".\HTTPSTimeServer.properties"> | ||||
| 			</File> | ||||
| 		</Filter> | ||||
| 		<Filter | ||||
| 			Name="Source Files" | ||||
| 			Filter=""> | ||||
| 			<File | ||||
| 				RelativePath=".\src\HTTPSTimeServer.cpp"> | ||||
| 			</File> | ||||
| 		</Filter> | ||||
| 	</Files> | ||||
| 	<Globals> | ||||
| 	</Globals> | ||||
| </VisualStudioProject> | ||||
|   | ||||
| @@ -1,217 +1,217 @@ | ||||
| <?xml version="1.0" encoding="Windows-1252"?> | ||||
| <VisualStudioProject | ||||
| 	ProjectType="Visual C++" | ||||
| 	Version="8,00" | ||||
| 	Name="HTTPSTimeServer" | ||||
| 	ProjectGUID="{7C4285ED-F0BC-4CBA-B1F0-61FCB7FA26C4}" | ||||
| 	Keyword="Win32Proj" | ||||
| 	> | ||||
| 	<Platforms> | ||||
| 		<Platform | ||||
| 			Name="Win32" | ||||
| 		/> | ||||
| 	</Platforms> | ||||
| 	<ToolFiles> | ||||
| 	</ToolFiles> | ||||
| 	<Configurations> | ||||
| 		<Configuration | ||||
| 			Name="debug_shared|Win32" | ||||
| 			OutputDirectory="obj\debug_shared" | ||||
| 			IntermediateDirectory="obj\debug_shared" | ||||
| 			ConfigurationType="1" | ||||
| 			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" | ||||
| 			UseOfMFC="2" | ||||
| 			CharacterSet="2" | ||||
| 			> | ||||
| 			<Tool | ||||
| 				Name="VCPreBuildEventTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCCustomBuildTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCXMLDataGeneratorTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCWebServiceProxyGeneratorTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCMIDLTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCCLCompilerTool" | ||||
| 				Optimization="0" | ||||
| 				AdditionalIncludeDirectories=".\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Net\include;..\..\..\Util\include;..\..\..\NetSSL_OpenSSL\include" | ||||
| 				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_DLL;WINVER=0x0500" | ||||
| 				MinimalRebuild="true" | ||||
| 				BasicRuntimeChecks="3" | ||||
| 				RuntimeLibrary="3" | ||||
| 				BufferSecurityCheck="true" | ||||
| 				TreatWChar_tAsBuiltInType="true" | ||||
| 				ForceConformanceInForLoopScope="true" | ||||
| 				RuntimeTypeInfo="true" | ||||
| 				UsePrecompiledHeader="0" | ||||
| 				WarningLevel="3" | ||||
| 				Detect64BitPortabilityProblems="true" | ||||
| 				DebugInformationFormat="4" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCManagedResourceCompilerTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCResourceCompilerTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCPreLinkEventTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCLinkerTool" | ||||
| 				AdditionalDependencies="PocoFoundationd.lib PocoXMLd.lib PocoNetd.lib PocoUtild.lib PocoNetSSLd.lib" | ||||
| 				OutputFile="bin/HTTPSTimeServerd.exe" | ||||
| 				LinkIncremental="2" | ||||
| 				AdditionalLibraryDirectories="..\..\..\lib" | ||||
| 				GenerateDebugInformation="true" | ||||
| 				ProgramDatabaseFile="bin/HTTPSTimeServerd.pdb" | ||||
| 				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_shared|Win32" | ||||
| 			OutputDirectory="obj\release_shared" | ||||
| 			IntermediateDirectory="obj\release_shared" | ||||
| 			ConfigurationType="1" | ||||
| 			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" | ||||
| 			UseOfMFC="2" | ||||
| 			CharacterSet="2" | ||||
| 			> | ||||
| 			<Tool | ||||
| 				Name="VCPreBuildEventTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCCustomBuildTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCXMLDataGeneratorTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCWebServiceProxyGeneratorTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCMIDLTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCCLCompilerTool" | ||||
| 				Optimization="4" | ||||
| 				InlineFunctionExpansion="1" | ||||
| 				EnableIntrinsicFunctions="true" | ||||
| 				FavorSizeOrSpeed="1" | ||||
| 				OmitFramePointers="true" | ||||
| 				AdditionalIncludeDirectories=".\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Net\include;..\..\..\Util\include;..\..\..\NetSSL_OpenSSL\include" | ||||
| 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_DLL;WINVER=0x0500" | ||||
| 				StringPooling="true" | ||||
| 				RuntimeLibrary="2" | ||||
| 				BufferSecurityCheck="false" | ||||
| 				TreatWChar_tAsBuiltInType="true" | ||||
| 				ForceConformanceInForLoopScope="true" | ||||
| 				RuntimeTypeInfo="true" | ||||
| 				UsePrecompiledHeader="0" | ||||
| 				WarningLevel="3" | ||||
| 				Detect64BitPortabilityProblems="true" | ||||
| 				DebugInformationFormat="3" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCManagedResourceCompilerTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCResourceCompilerTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCPreLinkEventTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCLinkerTool" | ||||
| 				AdditionalDependencies="PocoFoundation.lib PocoXML.lib PocoNet.lib PocoUtil.lib PocoNetSSL.lib" | ||||
| 				OutputFile="bin/HTTPSTimeServer.exe" | ||||
| 				LinkIncremental="1" | ||||
| 				AdditionalLibraryDirectories="..\..\..\lib" | ||||
| 				GenerateDebugInformation="false" | ||||
| 				ProgramDatabaseFile="" | ||||
| 				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="Configuration Files" | ||||
| 			> | ||||
| 			<File | ||||
| 				RelativePath=".\HTTPSTimeServer.properties" | ||||
| 				> | ||||
| 			</File> | ||||
| 		</Filter> | ||||
| 		<Filter | ||||
| 			Name="Source Files" | ||||
| 			> | ||||
| 			<File | ||||
| 				RelativePath=".\src\HTTPSTimeServer.cpp" | ||||
| 				> | ||||
| 			</File> | ||||
| 		</Filter> | ||||
| 	</Files> | ||||
| 	<Globals> | ||||
| 	</Globals> | ||||
| </VisualStudioProject> | ||||
| <?xml version="1.0" encoding="Windows-1252"?> | ||||
| <VisualStudioProject | ||||
| 	ProjectType="Visual C++" | ||||
| 	Version="8,00" | ||||
| 	Name="HTTPSTimeServer" | ||||
| 	ProjectGUID="{7C4285ED-F0BC-4CBA-B1F0-61FCB7FA26C4}" | ||||
| 	Keyword="Win32Proj" | ||||
| 	> | ||||
| 	<Platforms> | ||||
| 		<Platform | ||||
| 			Name="Win32" | ||||
| 		/> | ||||
| 	</Platforms> | ||||
| 	<ToolFiles> | ||||
| 	</ToolFiles> | ||||
| 	<Configurations> | ||||
| 		<Configuration | ||||
| 			Name="debug_shared|Win32" | ||||
| 			OutputDirectory="obj\debug_shared" | ||||
| 			IntermediateDirectory="obj\debug_shared" | ||||
| 			ConfigurationType="1" | ||||
| 			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" | ||||
| 			UseOfMFC="2" | ||||
| 			CharacterSet="2" | ||||
| 			> | ||||
| 			<Tool | ||||
| 				Name="VCPreBuildEventTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCCustomBuildTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCXMLDataGeneratorTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCWebServiceProxyGeneratorTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCMIDLTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCCLCompilerTool" | ||||
| 				Optimization="0" | ||||
| 				AdditionalIncludeDirectories=".\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Net\include;..\..\..\Util\include;..\..\..\NetSSL_OpenSSL\include" | ||||
| 				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_DLL;WINVER=0x0500" | ||||
| 				MinimalRebuild="true" | ||||
| 				BasicRuntimeChecks="3" | ||||
| 				RuntimeLibrary="3" | ||||
| 				BufferSecurityCheck="true" | ||||
| 				TreatWChar_tAsBuiltInType="true" | ||||
| 				ForceConformanceInForLoopScope="true" | ||||
| 				RuntimeTypeInfo="true" | ||||
| 				UsePrecompiledHeader="0" | ||||
| 				WarningLevel="3" | ||||
| 				Detect64BitPortabilityProblems="true" | ||||
| 				DebugInformationFormat="4" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCManagedResourceCompilerTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCResourceCompilerTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCPreLinkEventTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCLinkerTool" | ||||
| 				AdditionalDependencies="PocoFoundationd.lib PocoXMLd.lib PocoNetd.lib PocoUtild.lib PocoNetSSLd.lib" | ||||
| 				OutputFile="bin/HTTPSTimeServerd.exe" | ||||
| 				LinkIncremental="2" | ||||
| 				AdditionalLibraryDirectories="..\..\..\lib" | ||||
| 				GenerateDebugInformation="true" | ||||
| 				ProgramDatabaseFile="bin/HTTPSTimeServerd.pdb" | ||||
| 				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_shared|Win32" | ||||
| 			OutputDirectory="obj\release_shared" | ||||
| 			IntermediateDirectory="obj\release_shared" | ||||
| 			ConfigurationType="1" | ||||
| 			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" | ||||
| 			UseOfMFC="2" | ||||
| 			CharacterSet="2" | ||||
| 			> | ||||
| 			<Tool | ||||
| 				Name="VCPreBuildEventTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCCustomBuildTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCXMLDataGeneratorTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCWebServiceProxyGeneratorTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCMIDLTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCCLCompilerTool" | ||||
| 				Optimization="4" | ||||
| 				InlineFunctionExpansion="1" | ||||
| 				EnableIntrinsicFunctions="true" | ||||
| 				FavorSizeOrSpeed="1" | ||||
| 				OmitFramePointers="true" | ||||
| 				AdditionalIncludeDirectories=".\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Net\include;..\..\..\Util\include;..\..\..\NetSSL_OpenSSL\include" | ||||
| 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_DLL;WINVER=0x0500" | ||||
| 				StringPooling="true" | ||||
| 				RuntimeLibrary="2" | ||||
| 				BufferSecurityCheck="false" | ||||
| 				TreatWChar_tAsBuiltInType="true" | ||||
| 				ForceConformanceInForLoopScope="true" | ||||
| 				RuntimeTypeInfo="true" | ||||
| 				UsePrecompiledHeader="0" | ||||
| 				WarningLevel="3" | ||||
| 				Detect64BitPortabilityProblems="true" | ||||
| 				DebugInformationFormat="3" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCManagedResourceCompilerTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCResourceCompilerTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCPreLinkEventTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCLinkerTool" | ||||
| 				AdditionalDependencies="PocoFoundation.lib PocoXML.lib PocoNet.lib PocoUtil.lib PocoNetSSL.lib" | ||||
| 				OutputFile="bin/HTTPSTimeServer.exe" | ||||
| 				LinkIncremental="1" | ||||
| 				AdditionalLibraryDirectories="..\..\..\lib" | ||||
| 				GenerateDebugInformation="false" | ||||
| 				ProgramDatabaseFile="" | ||||
| 				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="Configuration Files" | ||||
| 			> | ||||
| 			<File | ||||
| 				RelativePath=".\HTTPSTimeServer.properties" | ||||
| 				> | ||||
| 			</File> | ||||
| 		</Filter> | ||||
| 		<Filter | ||||
| 			Name="Source Files" | ||||
| 			> | ||||
| 			<File | ||||
| 				RelativePath=".\src\HTTPSTimeServer.cpp" | ||||
| 				> | ||||
| 			</File> | ||||
| 		</Filter> | ||||
| 	</Files> | ||||
| 	<Globals> | ||||
| 	</Globals> | ||||
| </VisualStudioProject> | ||||
|   | ||||
| @@ -1,48 +1,48 @@ | ||||
| -----BEGIN CERTIFICATE----- | ||||
| MIICaDCCAdECCQCzfxSsk7yaLjANBgkqhkiG9w0BAQUFADBzMQswCQYDVQQGEwJB | ||||
| VDESMBAGA1UECBMJQ2FyaW50aGlhMRIwEAYDVQQHEwlTdC4gSmFrb2IxDzANBgNV | ||||
| BAoTBkFwcEluZjEPMA0GA1UEAxMGQXBwSW5mMRowGAYJKoZIhvcNAQkBFgthcHBA | ||||
| aW5mLmNvbTAeFw0wNjAzMDExMzA3MzFaFw0wNjAzMzExMzA3MzFaMH4xCzAJBgNV | ||||
| BAYTAkFUMRIwEAYDVQQIEwlDYXJpbnRoaWExETAPBgNVBAcTCFN0IEpha29iMRww | ||||
| GgYDVQQKExNBcHBsaWVkIEluZm9ybWF0aWNzMQowCAYDVQQDFAEqMR4wHAYJKoZI | ||||
| hvcNAQkBFg9pbmZvQGFwcGluZi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ | ||||
| AoGBAJHGyXDHyCYoWz+65ltNwwZbhwOGnxr9P1WMATuFJh0bPBZxKbZRdbTm9KhZ | ||||
| OlvsEIsfgiYdsxURYIqXfEgISYLZcZY0pQwGEOmB+0NeC/+ENSfOlNSthx6zSVlc | ||||
| zhJ7+dJOGwepHAiLr1fRuc5jogYLraE+lKTnqAAFfzwvti77AgMBAAEwDQYJKoZI | ||||
| hvcNAQEFBQADgYEAY/ZoeY1ukkEJX7259NeoVM0oahlulWV0rlCqyaeosOiDORPT | ||||
| m6X1w/5MTCf9VyaD1zukoSZ4QqNVjHFXcXidbB7Tgt3yRuZ5PC5LIFCDPv9mgPne | ||||
| mUA70yfctNfza2z3ZiQ6NDkW3mZX+1tmxYIrJQIrkVeYeqf1Gh2nyZrUMcE= | ||||
| -----END CERTIFICATE----- | ||||
| -----BEGIN RSA PRIVATE KEY----- | ||||
| Proc-Type: 4,ENCRYPTED | ||||
| DEK-Info: DES-EDE3-CBC,E7AE93C9E49184EA | ||||
|  | ||||
| A2IqzNcWs+I5vzV+i+woDk56+yr58eU0Onw8eEvXkLjnSc58JU4327IF7yUbKWdW | ||||
| Q7BYGGOkVFiZ7ANOwviDg5SUhxRDWCcW8dS6/p1vfdQ1C3qj2OwJjkpg0aDBIzJn | ||||
| FzgguT3MF3ama77vxv0S3kOfmCj62MLqPGpj5pQ0/1hefRFbL8oAX8bXUN7/rmGM | ||||
| Zc0QyzFZv2iQ04dY/6TNclwKPB4H0On4K+8BMs3PRkWA0clCaQaFO2+iwnk3XZfe | ||||
| +MsKUEbLCpAQeYspYv1cw38dCdWq1KTP5aJk+oXgwjfX5cAaPTz74NTqTIsCcaTD | ||||
| 3vy7ukJYFlDR9Kyo7z8rMazYrKJslhnuRH0BhK9st9McwL957j5tZmrKyraCcmCx | ||||
| dMAGcsis1va3ayYZpIpFqA4EhYrTM+6N8ZRfUap20+b5IQwHfTQDejUhL6rBwy7j | ||||
| Ti5yD83/itoOMyXq2sV/XWfVD5zk/P5iv22O1EAQMhhnPB9K/I/JhuSGQJfn3cNh | ||||
| ykOUYT0+vDeSeEVa+FVEP1W35G0alTbKbNs5Tb8KxJ3iDJUxokM//SvPXZy9hOVX | ||||
| Y05imB04J15DaGbAHlNzunhuJi7121WV/JRXZRW9diE6hwpD8rwqi3FMuRUmy7U9 | ||||
| aFA5poKRAYlo9YtZ3YpFyjGKB6MfCQcB2opuSnQ/gbugV41m67uQ4CDwWLaNRkTb | ||||
| GlsMBNcHnidg15Bsat5HaB7l250ukrI13Uw1MYdDUzaS3gPfw9aC4F2w0p3U+DPH | ||||
| 80/zePxtroR7T4/+rI136Rl+aMXDMOEGCX1TVP8rjuZzuRyUSUKC8Q== | ||||
| -----END RSA PRIVATE KEY----- | ||||
| -----BEGIN CERTIFICATE----- | ||||
| MIICXTCCAcYCCQC1Vk/N8qR4AjANBgkqhkiG9w0BAQUFADBzMQswCQYDVQQGEwJB | ||||
| VDESMBAGA1UECBMJQ2FyaW50aGlhMRIwEAYDVQQHEwlTdC4gSmFrb2IxDzANBgNV | ||||
| BAoTBkFwcEluZjEPMA0GA1UEAxMGQXBwSW5mMRowGAYJKoZIhvcNAQkBFgthcHBA | ||||
| aW5mLmNvbTAeFw0wNjAyMjcxMzI3MThaFw0wNjAzMjkxMzI3MThaMHMxCzAJBgNV | ||||
| BAYTAkFUMRIwEAYDVQQIEwlDYXJpbnRoaWExEjAQBgNVBAcTCVN0LiBKYWtvYjEP | ||||
| MA0GA1UEChMGQXBwSW5mMQ8wDQYDVQQDEwZBcHBJbmYxGjAYBgkqhkiG9w0BCQEW | ||||
| C2FwcEBpbmYuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCsFXiPuicN | ||||
| Im4oJwF8NuaFN+lgYwcZ6dAO3ILIR3kLA2PxF8HSQLfF8J8a4odZhLhctIMAKTxm | ||||
| k0w8TW5qhL8QLdGzY9vzvkgdKOkan2t3sMeXJAfrM1AphTsmgntAQazGZjOj5p4W | ||||
| jDnxQ+VXAylqwjHh49eSBxM3wgoscF4iLQIDAQABMA0GCSqGSIb3DQEBBQUAA4GB | ||||
| AIpfLdXiKchPvFMhQS8xTtXvrw5dVL3yImUMYs4GQi8RrjGmfGB3yMAR7B/b8v4a | ||||
| +ztfusgWAWiUKuSGTk4S8YB0fsFlmOv0WDr+PyZ4Lui/a8opbyzGE7rqpnF/s0GO | ||||
| M7uLCNNwIN7WhmxcWV0KZU1wTppoSWPJda1yTbBzF9XP | ||||
| -----END CERTIFICATE----- | ||||
| -----BEGIN CERTIFICATE----- | ||||
| MIICaDCCAdECCQCzfxSsk7yaLjANBgkqhkiG9w0BAQUFADBzMQswCQYDVQQGEwJB | ||||
| VDESMBAGA1UECBMJQ2FyaW50aGlhMRIwEAYDVQQHEwlTdC4gSmFrb2IxDzANBgNV | ||||
| BAoTBkFwcEluZjEPMA0GA1UEAxMGQXBwSW5mMRowGAYJKoZIhvcNAQkBFgthcHBA | ||||
| aW5mLmNvbTAeFw0wNjAzMDExMzA3MzFaFw0wNjAzMzExMzA3MzFaMH4xCzAJBgNV | ||||
| BAYTAkFUMRIwEAYDVQQIEwlDYXJpbnRoaWExETAPBgNVBAcTCFN0IEpha29iMRww | ||||
| GgYDVQQKExNBcHBsaWVkIEluZm9ybWF0aWNzMQowCAYDVQQDFAEqMR4wHAYJKoZI | ||||
| hvcNAQkBFg9pbmZvQGFwcGluZi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ | ||||
| AoGBAJHGyXDHyCYoWz+65ltNwwZbhwOGnxr9P1WMATuFJh0bPBZxKbZRdbTm9KhZ | ||||
| OlvsEIsfgiYdsxURYIqXfEgISYLZcZY0pQwGEOmB+0NeC/+ENSfOlNSthx6zSVlc | ||||
| zhJ7+dJOGwepHAiLr1fRuc5jogYLraE+lKTnqAAFfzwvti77AgMBAAEwDQYJKoZI | ||||
| hvcNAQEFBQADgYEAY/ZoeY1ukkEJX7259NeoVM0oahlulWV0rlCqyaeosOiDORPT | ||||
| m6X1w/5MTCf9VyaD1zukoSZ4QqNVjHFXcXidbB7Tgt3yRuZ5PC5LIFCDPv9mgPne | ||||
| mUA70yfctNfza2z3ZiQ6NDkW3mZX+1tmxYIrJQIrkVeYeqf1Gh2nyZrUMcE= | ||||
| -----END CERTIFICATE----- | ||||
| -----BEGIN RSA PRIVATE KEY----- | ||||
| Proc-Type: 4,ENCRYPTED | ||||
| DEK-Info: DES-EDE3-CBC,E7AE93C9E49184EA | ||||
|  | ||||
| A2IqzNcWs+I5vzV+i+woDk56+yr58eU0Onw8eEvXkLjnSc58JU4327IF7yUbKWdW | ||||
| Q7BYGGOkVFiZ7ANOwviDg5SUhxRDWCcW8dS6/p1vfdQ1C3qj2OwJjkpg0aDBIzJn | ||||
| FzgguT3MF3ama77vxv0S3kOfmCj62MLqPGpj5pQ0/1hefRFbL8oAX8bXUN7/rmGM | ||||
| Zc0QyzFZv2iQ04dY/6TNclwKPB4H0On4K+8BMs3PRkWA0clCaQaFO2+iwnk3XZfe | ||||
| +MsKUEbLCpAQeYspYv1cw38dCdWq1KTP5aJk+oXgwjfX5cAaPTz74NTqTIsCcaTD | ||||
| 3vy7ukJYFlDR9Kyo7z8rMazYrKJslhnuRH0BhK9st9McwL957j5tZmrKyraCcmCx | ||||
| dMAGcsis1va3ayYZpIpFqA4EhYrTM+6N8ZRfUap20+b5IQwHfTQDejUhL6rBwy7j | ||||
| Ti5yD83/itoOMyXq2sV/XWfVD5zk/P5iv22O1EAQMhhnPB9K/I/JhuSGQJfn3cNh | ||||
| ykOUYT0+vDeSeEVa+FVEP1W35G0alTbKbNs5Tb8KxJ3iDJUxokM//SvPXZy9hOVX | ||||
| Y05imB04J15DaGbAHlNzunhuJi7121WV/JRXZRW9diE6hwpD8rwqi3FMuRUmy7U9 | ||||
| aFA5poKRAYlo9YtZ3YpFyjGKB6MfCQcB2opuSnQ/gbugV41m67uQ4CDwWLaNRkTb | ||||
| GlsMBNcHnidg15Bsat5HaB7l250ukrI13Uw1MYdDUzaS3gPfw9aC4F2w0p3U+DPH | ||||
| 80/zePxtroR7T4/+rI136Rl+aMXDMOEGCX1TVP8rjuZzuRyUSUKC8Q== | ||||
| -----END RSA PRIVATE KEY----- | ||||
| -----BEGIN CERTIFICATE----- | ||||
| MIICXTCCAcYCCQC1Vk/N8qR4AjANBgkqhkiG9w0BAQUFADBzMQswCQYDVQQGEwJB | ||||
| VDESMBAGA1UECBMJQ2FyaW50aGlhMRIwEAYDVQQHEwlTdC4gSmFrb2IxDzANBgNV | ||||
| BAoTBkFwcEluZjEPMA0GA1UEAxMGQXBwSW5mMRowGAYJKoZIhvcNAQkBFgthcHBA | ||||
| aW5mLmNvbTAeFw0wNjAyMjcxMzI3MThaFw0wNjAzMjkxMzI3MThaMHMxCzAJBgNV | ||||
| BAYTAkFUMRIwEAYDVQQIEwlDYXJpbnRoaWExEjAQBgNVBAcTCVN0LiBKYWtvYjEP | ||||
| MA0GA1UEChMGQXBwSW5mMQ8wDQYDVQQDEwZBcHBJbmYxGjAYBgkqhkiG9w0BCQEW | ||||
| C2FwcEBpbmYuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCsFXiPuicN | ||||
| Im4oJwF8NuaFN+lgYwcZ6dAO3ILIR3kLA2PxF8HSQLfF8J8a4odZhLhctIMAKTxm | ||||
| k0w8TW5qhL8QLdGzY9vzvkgdKOkan2t3sMeXJAfrM1AphTsmgntAQazGZjOj5p4W | ||||
| jDnxQ+VXAylqwjHh49eSBxM3wgoscF4iLQIDAQABMA0GCSqGSIb3DQEBBQUAA4GB | ||||
| AIpfLdXiKchPvFMhQS8xTtXvrw5dVL3yImUMYs4GQi8RrjGmfGB3yMAR7B/b8v4a | ||||
| +ztfusgWAWiUKuSGTk4S8YB0fsFlmOv0WDr+PyZ4Lui/a8opbyzGE7rqpnF/s0GO | ||||
| M7uLCNNwIN7WhmxcWV0KZU1wTppoSWPJda1yTbBzF9XP | ||||
| -----END CERTIFICATE----- | ||||
|   | ||||
| @@ -1,15 +1,15 @@ | ||||
| -----BEGIN CERTIFICATE----- | ||||
| MIICXTCCAcYCCQC1Vk/N8qR4AjANBgkqhkiG9w0BAQUFADBzMQswCQYDVQQGEwJB | ||||
| VDESMBAGA1UECBMJQ2FyaW50aGlhMRIwEAYDVQQHEwlTdC4gSmFrb2IxDzANBgNV | ||||
| BAoTBkFwcEluZjEPMA0GA1UEAxMGQXBwSW5mMRowGAYJKoZIhvcNAQkBFgthcHBA | ||||
| aW5mLmNvbTAeFw0wNjAyMjcxMzI3MThaFw0wNjAzMjkxMzI3MThaMHMxCzAJBgNV | ||||
| BAYTAkFUMRIwEAYDVQQIEwlDYXJpbnRoaWExEjAQBgNVBAcTCVN0LiBKYWtvYjEP | ||||
| MA0GA1UEChMGQXBwSW5mMQ8wDQYDVQQDEwZBcHBJbmYxGjAYBgkqhkiG9w0BCQEW | ||||
| C2FwcEBpbmYuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCsFXiPuicN | ||||
| Im4oJwF8NuaFN+lgYwcZ6dAO3ILIR3kLA2PxF8HSQLfF8J8a4odZhLhctIMAKTxm | ||||
| k0w8TW5qhL8QLdGzY9vzvkgdKOkan2t3sMeXJAfrM1AphTsmgntAQazGZjOj5p4W | ||||
| jDnxQ+VXAylqwjHh49eSBxM3wgoscF4iLQIDAQABMA0GCSqGSIb3DQEBBQUAA4GB | ||||
| AIpfLdXiKchPvFMhQS8xTtXvrw5dVL3yImUMYs4GQi8RrjGmfGB3yMAR7B/b8v4a | ||||
| +ztfusgWAWiUKuSGTk4S8YB0fsFlmOv0WDr+PyZ4Lui/a8opbyzGE7rqpnF/s0GO | ||||
| M7uLCNNwIN7WhmxcWV0KZU1wTppoSWPJda1yTbBzF9XP | ||||
| -----END CERTIFICATE----- | ||||
| -----BEGIN CERTIFICATE----- | ||||
| MIICXTCCAcYCCQC1Vk/N8qR4AjANBgkqhkiG9w0BAQUFADBzMQswCQYDVQQGEwJB | ||||
| VDESMBAGA1UECBMJQ2FyaW50aGlhMRIwEAYDVQQHEwlTdC4gSmFrb2IxDzANBgNV | ||||
| BAoTBkFwcEluZjEPMA0GA1UEAxMGQXBwSW5mMRowGAYJKoZIhvcNAQkBFgthcHBA | ||||
| aW5mLmNvbTAeFw0wNjAyMjcxMzI3MThaFw0wNjAzMjkxMzI3MThaMHMxCzAJBgNV | ||||
| BAYTAkFUMRIwEAYDVQQIEwlDYXJpbnRoaWExEjAQBgNVBAcTCVN0LiBKYWtvYjEP | ||||
| MA0GA1UEChMGQXBwSW5mMQ8wDQYDVQQDEwZBcHBJbmYxGjAYBgkqhkiG9w0BCQEW | ||||
| C2FwcEBpbmYuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCsFXiPuicN | ||||
| Im4oJwF8NuaFN+lgYwcZ6dAO3ILIR3kLA2PxF8HSQLfF8J8a4odZhLhctIMAKTxm | ||||
| k0w8TW5qhL8QLdGzY9vzvkgdKOkan2t3sMeXJAfrM1AphTsmgntAQazGZjOj5p4W | ||||
| jDnxQ+VXAylqwjHh49eSBxM3wgoscF4iLQIDAQABMA0GCSqGSIb3DQEBBQUAA4GB | ||||
| AIpfLdXiKchPvFMhQS8xTtXvrw5dVL3yImUMYs4GQi8RrjGmfGB3yMAR7B/b8v4a | ||||
| +ztfusgWAWiUKuSGTk4S8YB0fsFlmOv0WDr+PyZ4Lui/a8opbyzGE7rqpnF/s0GO | ||||
| M7uLCNNwIN7WhmxcWV0KZU1wTppoSWPJda1yTbBzF9XP | ||||
| -----END CERTIFICATE----- | ||||
|   | ||||
| @@ -1,48 +1,48 @@ | ||||
| -----BEGIN CERTIFICATE----- | ||||
| MIICaDCCAdECCQCzfxSsk7yaLjANBgkqhkiG9w0BAQUFADBzMQswCQYDVQQGEwJB | ||||
| VDESMBAGA1UECBMJQ2FyaW50aGlhMRIwEAYDVQQHEwlTdC4gSmFrb2IxDzANBgNV | ||||
| BAoTBkFwcEluZjEPMA0GA1UEAxMGQXBwSW5mMRowGAYJKoZIhvcNAQkBFgthcHBA | ||||
| aW5mLmNvbTAeFw0wNjAzMDExMzA3MzFaFw0wNjAzMzExMzA3MzFaMH4xCzAJBgNV | ||||
| BAYTAkFUMRIwEAYDVQQIEwlDYXJpbnRoaWExETAPBgNVBAcTCFN0IEpha29iMRww | ||||
| GgYDVQQKExNBcHBsaWVkIEluZm9ybWF0aWNzMQowCAYDVQQDFAEqMR4wHAYJKoZI | ||||
| hvcNAQkBFg9pbmZvQGFwcGluZi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ | ||||
| AoGBAJHGyXDHyCYoWz+65ltNwwZbhwOGnxr9P1WMATuFJh0bPBZxKbZRdbTm9KhZ | ||||
| OlvsEIsfgiYdsxURYIqXfEgISYLZcZY0pQwGEOmB+0NeC/+ENSfOlNSthx6zSVlc | ||||
| zhJ7+dJOGwepHAiLr1fRuc5jogYLraE+lKTnqAAFfzwvti77AgMBAAEwDQYJKoZI | ||||
| hvcNAQEFBQADgYEAY/ZoeY1ukkEJX7259NeoVM0oahlulWV0rlCqyaeosOiDORPT | ||||
| m6X1w/5MTCf9VyaD1zukoSZ4QqNVjHFXcXidbB7Tgt3yRuZ5PC5LIFCDPv9mgPne | ||||
| mUA70yfctNfza2z3ZiQ6NDkW3mZX+1tmxYIrJQIrkVeYeqf1Gh2nyZrUMcE= | ||||
| -----END CERTIFICATE----- | ||||
| -----BEGIN RSA PRIVATE KEY----- | ||||
| Proc-Type: 4,ENCRYPTED | ||||
| DEK-Info: DES-EDE3-CBC,E7AE93C9E49184EA | ||||
|  | ||||
| A2IqzNcWs+I5vzV+i+woDk56+yr58eU0Onw8eEvXkLjnSc58JU4327IF7yUbKWdW | ||||
| Q7BYGGOkVFiZ7ANOwviDg5SUhxRDWCcW8dS6/p1vfdQ1C3qj2OwJjkpg0aDBIzJn | ||||
| FzgguT3MF3ama77vxv0S3kOfmCj62MLqPGpj5pQ0/1hefRFbL8oAX8bXUN7/rmGM | ||||
| Zc0QyzFZv2iQ04dY/6TNclwKPB4H0On4K+8BMs3PRkWA0clCaQaFO2+iwnk3XZfe | ||||
| +MsKUEbLCpAQeYspYv1cw38dCdWq1KTP5aJk+oXgwjfX5cAaPTz74NTqTIsCcaTD | ||||
| 3vy7ukJYFlDR9Kyo7z8rMazYrKJslhnuRH0BhK9st9McwL957j5tZmrKyraCcmCx | ||||
| dMAGcsis1va3ayYZpIpFqA4EhYrTM+6N8ZRfUap20+b5IQwHfTQDejUhL6rBwy7j | ||||
| Ti5yD83/itoOMyXq2sV/XWfVD5zk/P5iv22O1EAQMhhnPB9K/I/JhuSGQJfn3cNh | ||||
| ykOUYT0+vDeSeEVa+FVEP1W35G0alTbKbNs5Tb8KxJ3iDJUxokM//SvPXZy9hOVX | ||||
| Y05imB04J15DaGbAHlNzunhuJi7121WV/JRXZRW9diE6hwpD8rwqi3FMuRUmy7U9 | ||||
| aFA5poKRAYlo9YtZ3YpFyjGKB6MfCQcB2opuSnQ/gbugV41m67uQ4CDwWLaNRkTb | ||||
| GlsMBNcHnidg15Bsat5HaB7l250ukrI13Uw1MYdDUzaS3gPfw9aC4F2w0p3U+DPH | ||||
| 80/zePxtroR7T4/+rI136Rl+aMXDMOEGCX1TVP8rjuZzuRyUSUKC8Q== | ||||
| -----END RSA PRIVATE KEY----- | ||||
| -----BEGIN CERTIFICATE----- | ||||
| MIICXTCCAcYCCQC1Vk/N8qR4AjANBgkqhkiG9w0BAQUFADBzMQswCQYDVQQGEwJB | ||||
| VDESMBAGA1UECBMJQ2FyaW50aGlhMRIwEAYDVQQHEwlTdC4gSmFrb2IxDzANBgNV | ||||
| BAoTBkFwcEluZjEPMA0GA1UEAxMGQXBwSW5mMRowGAYJKoZIhvcNAQkBFgthcHBA | ||||
| aW5mLmNvbTAeFw0wNjAyMjcxMzI3MThaFw0wNjAzMjkxMzI3MThaMHMxCzAJBgNV | ||||
| BAYTAkFUMRIwEAYDVQQIEwlDYXJpbnRoaWExEjAQBgNVBAcTCVN0LiBKYWtvYjEP | ||||
| MA0GA1UEChMGQXBwSW5mMQ8wDQYDVQQDEwZBcHBJbmYxGjAYBgkqhkiG9w0BCQEW | ||||
| C2FwcEBpbmYuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCsFXiPuicN | ||||
| Im4oJwF8NuaFN+lgYwcZ6dAO3ILIR3kLA2PxF8HSQLfF8J8a4odZhLhctIMAKTxm | ||||
| k0w8TW5qhL8QLdGzY9vzvkgdKOkan2t3sMeXJAfrM1AphTsmgntAQazGZjOj5p4W | ||||
| jDnxQ+VXAylqwjHh49eSBxM3wgoscF4iLQIDAQABMA0GCSqGSIb3DQEBBQUAA4GB | ||||
| AIpfLdXiKchPvFMhQS8xTtXvrw5dVL3yImUMYs4GQi8RrjGmfGB3yMAR7B/b8v4a | ||||
| +ztfusgWAWiUKuSGTk4S8YB0fsFlmOv0WDr+PyZ4Lui/a8opbyzGE7rqpnF/s0GO | ||||
| M7uLCNNwIN7WhmxcWV0KZU1wTppoSWPJda1yTbBzF9XP | ||||
| -----END CERTIFICATE----- | ||||
| -----BEGIN CERTIFICATE----- | ||||
| MIICaDCCAdECCQCzfxSsk7yaLjANBgkqhkiG9w0BAQUFADBzMQswCQYDVQQGEwJB | ||||
| VDESMBAGA1UECBMJQ2FyaW50aGlhMRIwEAYDVQQHEwlTdC4gSmFrb2IxDzANBgNV | ||||
| BAoTBkFwcEluZjEPMA0GA1UEAxMGQXBwSW5mMRowGAYJKoZIhvcNAQkBFgthcHBA | ||||
| aW5mLmNvbTAeFw0wNjAzMDExMzA3MzFaFw0wNjAzMzExMzA3MzFaMH4xCzAJBgNV | ||||
| BAYTAkFUMRIwEAYDVQQIEwlDYXJpbnRoaWExETAPBgNVBAcTCFN0IEpha29iMRww | ||||
| GgYDVQQKExNBcHBsaWVkIEluZm9ybWF0aWNzMQowCAYDVQQDFAEqMR4wHAYJKoZI | ||||
| hvcNAQkBFg9pbmZvQGFwcGluZi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ | ||||
| AoGBAJHGyXDHyCYoWz+65ltNwwZbhwOGnxr9P1WMATuFJh0bPBZxKbZRdbTm9KhZ | ||||
| OlvsEIsfgiYdsxURYIqXfEgISYLZcZY0pQwGEOmB+0NeC/+ENSfOlNSthx6zSVlc | ||||
| zhJ7+dJOGwepHAiLr1fRuc5jogYLraE+lKTnqAAFfzwvti77AgMBAAEwDQYJKoZI | ||||
| hvcNAQEFBQADgYEAY/ZoeY1ukkEJX7259NeoVM0oahlulWV0rlCqyaeosOiDORPT | ||||
| m6X1w/5MTCf9VyaD1zukoSZ4QqNVjHFXcXidbB7Tgt3yRuZ5PC5LIFCDPv9mgPne | ||||
| mUA70yfctNfza2z3ZiQ6NDkW3mZX+1tmxYIrJQIrkVeYeqf1Gh2nyZrUMcE= | ||||
| -----END CERTIFICATE----- | ||||
| -----BEGIN RSA PRIVATE KEY----- | ||||
| Proc-Type: 4,ENCRYPTED | ||||
| DEK-Info: DES-EDE3-CBC,E7AE93C9E49184EA | ||||
|  | ||||
| A2IqzNcWs+I5vzV+i+woDk56+yr58eU0Onw8eEvXkLjnSc58JU4327IF7yUbKWdW | ||||
| Q7BYGGOkVFiZ7ANOwviDg5SUhxRDWCcW8dS6/p1vfdQ1C3qj2OwJjkpg0aDBIzJn | ||||
| FzgguT3MF3ama77vxv0S3kOfmCj62MLqPGpj5pQ0/1hefRFbL8oAX8bXUN7/rmGM | ||||
| Zc0QyzFZv2iQ04dY/6TNclwKPB4H0On4K+8BMs3PRkWA0clCaQaFO2+iwnk3XZfe | ||||
| +MsKUEbLCpAQeYspYv1cw38dCdWq1KTP5aJk+oXgwjfX5cAaPTz74NTqTIsCcaTD | ||||
| 3vy7ukJYFlDR9Kyo7z8rMazYrKJslhnuRH0BhK9st9McwL957j5tZmrKyraCcmCx | ||||
| dMAGcsis1va3ayYZpIpFqA4EhYrTM+6N8ZRfUap20+b5IQwHfTQDejUhL6rBwy7j | ||||
| Ti5yD83/itoOMyXq2sV/XWfVD5zk/P5iv22O1EAQMhhnPB9K/I/JhuSGQJfn3cNh | ||||
| ykOUYT0+vDeSeEVa+FVEP1W35G0alTbKbNs5Tb8KxJ3iDJUxokM//SvPXZy9hOVX | ||||
| Y05imB04J15DaGbAHlNzunhuJi7121WV/JRXZRW9diE6hwpD8rwqi3FMuRUmy7U9 | ||||
| aFA5poKRAYlo9YtZ3YpFyjGKB6MfCQcB2opuSnQ/gbugV41m67uQ4CDwWLaNRkTb | ||||
| GlsMBNcHnidg15Bsat5HaB7l250ukrI13Uw1MYdDUzaS3gPfw9aC4F2w0p3U+DPH | ||||
| 80/zePxtroR7T4/+rI136Rl+aMXDMOEGCX1TVP8rjuZzuRyUSUKC8Q== | ||||
| -----END RSA PRIVATE KEY----- | ||||
| -----BEGIN CERTIFICATE----- | ||||
| MIICXTCCAcYCCQC1Vk/N8qR4AjANBgkqhkiG9w0BAQUFADBzMQswCQYDVQQGEwJB | ||||
| VDESMBAGA1UECBMJQ2FyaW50aGlhMRIwEAYDVQQHEwlTdC4gSmFrb2IxDzANBgNV | ||||
| BAoTBkFwcEluZjEPMA0GA1UEAxMGQXBwSW5mMRowGAYJKoZIhvcNAQkBFgthcHBA | ||||
| aW5mLmNvbTAeFw0wNjAyMjcxMzI3MThaFw0wNjAzMjkxMzI3MThaMHMxCzAJBgNV | ||||
| BAYTAkFUMRIwEAYDVQQIEwlDYXJpbnRoaWExEjAQBgNVBAcTCVN0LiBKYWtvYjEP | ||||
| MA0GA1UEChMGQXBwSW5mMQ8wDQYDVQQDEwZBcHBJbmYxGjAYBgkqhkiG9w0BCQEW | ||||
| C2FwcEBpbmYuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCsFXiPuicN | ||||
| Im4oJwF8NuaFN+lgYwcZ6dAO3ILIR3kLA2PxF8HSQLfF8J8a4odZhLhctIMAKTxm | ||||
| k0w8TW5qhL8QLdGzY9vzvkgdKOkan2t3sMeXJAfrM1AphTsmgntAQazGZjOj5p4W | ||||
| jDnxQ+VXAylqwjHh49eSBxM3wgoscF4iLQIDAQABMA0GCSqGSIb3DQEBBQUAA4GB | ||||
| AIpfLdXiKchPvFMhQS8xTtXvrw5dVL3yImUMYs4GQi8RrjGmfGB3yMAR7B/b8v4a | ||||
| +ztfusgWAWiUKuSGTk4S8YB0fsFlmOv0WDr+PyZ4Lui/a8opbyzGE7rqpnF/s0GO | ||||
| M7uLCNNwIN7WhmxcWV0KZU1wTppoSWPJda1yTbBzF9XP | ||||
| -----END CERTIFICATE----- | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| # | ||||
| # sample.vmsbuild | ||||
| # | ||||
| # $Id: //poco/Main/template/sample.vmsbuild#3 $ | ||||
| # | ||||
| EXE=download | ||||
| download | ||||
| <SourceFilesHere> | ||||
| # | ||||
| # sample.vmsbuild | ||||
| # | ||||
| # $Id: //poco/Main/template/sample.vmsbuild#3 $ | ||||
| # | ||||
| EXE=download | ||||
| download | ||||
| <SourceFilesHere> | ||||
|   | ||||
| @@ -1,145 +1,145 @@ | ||||
| <?xml version="1.0" encoding="Windows-1252"?> | ||||
| <VisualStudioProject | ||||
| 	ProjectType="Visual C++" | ||||
| 	Version="7.10" | ||||
| 	Name="download" | ||||
| 	ProjectGUID="{9BDC3455-0F7A-46b5-8EA5-9AA291419ED4}" | ||||
| 	Keyword="Win32Proj"> | ||||
| 	<Platforms> | ||||
| 		<Platform | ||||
| 			Name="Win32"/> | ||||
| 	</Platforms> | ||||
| 	<Configurations> | ||||
| 		<Configuration | ||||
| 			Name="debug_shared|Win32" | ||||
| 			OutputDirectory="obj\debug_shared" | ||||
| 			IntermediateDirectory="obj\debug_shared" | ||||
| 			ConfigurationType="1" | ||||
| 			UseOfMFC="2" | ||||
| 			CharacterSet="2"> | ||||
| 			<Tool | ||||
| 				Name="VCCLCompilerTool" | ||||
| 				Optimization="0" | ||||
| 				AdditionalIncludeDirectories=".\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Net\include;..\..\..\Util\include;..\..\..\NetSSL_OpenSSL\include" | ||||
| 				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_DLL;WINVER=0x0500" | ||||
| 				MinimalRebuild="TRUE" | ||||
| 				BasicRuntimeChecks="3" | ||||
| 				RuntimeLibrary="3" | ||||
| 				BufferSecurityCheck="TRUE" | ||||
| 				TreatWChar_tAsBuiltInType="TRUE" | ||||
| 				ForceConformanceInForLoopScope="TRUE" | ||||
| 				RuntimeTypeInfo="TRUE" | ||||
| 				UsePrecompiledHeader="0" | ||||
| 				WarningLevel="3" | ||||
| 				Detect64BitPortabilityProblems="TRUE" | ||||
| 				DebugInformationFormat="4"/> | ||||
| 			<Tool | ||||
| 				Name="VCCustomBuildTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCLinkerTool" | ||||
| 				AdditionalDependencies="PocoFoundationd.lib PocoXMLd.lib PocoNetd.lib PocoUtild.lib PocoNetSSLd.lib" | ||||
| 				OutputFile="bin/downloadd.exe" | ||||
| 				LinkIncremental="2" | ||||
| 				AdditionalLibraryDirectories="..\..\..\lib" | ||||
| 				GenerateDebugInformation="TRUE" | ||||
| 				ProgramDatabaseFile="bin/downloadd.pdb" | ||||
| 				SubSystem="1" | ||||
| 				TargetMachine="1"/> | ||||
| 			<Tool | ||||
| 				Name="VCMIDLTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPostBuildEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreBuildEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreLinkEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCResourceCompilerTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCWebServiceProxyGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCXMLDataGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCWebDeploymentTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCManagedWrapperGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCAuxiliaryManagedWrapperGeneratorTool"/> | ||||
| 		</Configuration> | ||||
| 		<Configuration | ||||
| 			Name="release_shared|Win32" | ||||
| 			OutputDirectory="obj\release_shared" | ||||
| 			IntermediateDirectory="obj\release_shared" | ||||
| 			ConfigurationType="1" | ||||
| 			UseOfMFC="2" | ||||
| 			CharacterSet="2"> | ||||
| 			<Tool | ||||
| 				Name="VCCLCompilerTool" | ||||
| 				Optimization="4" | ||||
| 				InlineFunctionExpansion="1" | ||||
| 				EnableIntrinsicFunctions="TRUE" | ||||
| 				FavorSizeOrSpeed="1" | ||||
| 				OmitFramePointers="TRUE" | ||||
| 				OptimizeForWindowsApplication="TRUE" | ||||
| 				AdditionalIncludeDirectories=".\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Net\include;..\..\..\Util\include;..\..\..\NetSSL_OpenSSL\include" | ||||
| 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_DLL;WINVER=0x0500" | ||||
| 				StringPooling="TRUE" | ||||
| 				RuntimeLibrary="2" | ||||
| 				BufferSecurityCheck="FALSE" | ||||
| 				TreatWChar_tAsBuiltInType="TRUE" | ||||
| 				ForceConformanceInForLoopScope="TRUE" | ||||
| 				RuntimeTypeInfo="TRUE" | ||||
| 				UsePrecompiledHeader="0" | ||||
| 				WarningLevel="3" | ||||
| 				Detect64BitPortabilityProblems="TRUE" | ||||
| 				DebugInformationFormat="3"/> | ||||
| 			<Tool | ||||
| 				Name="VCCustomBuildTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCLinkerTool" | ||||
| 				AdditionalDependencies="PocoFoundation.lib PocoXML.lib PocoNet.lib PocoUtil.lib PocoNetSSL.lib" | ||||
| 				OutputFile="bin/download.exe" | ||||
| 				LinkIncremental="1" | ||||
| 				AdditionalLibraryDirectories="..\..\..\lib" | ||||
| 				GenerateDebugInformation="FALSE" | ||||
| 				ProgramDatabaseFile="" | ||||
| 				SubSystem="1" | ||||
| 				OptimizeReferences="2" | ||||
| 				EnableCOMDATFolding="2" | ||||
| 				TargetMachine="1"/> | ||||
| 			<Tool | ||||
| 				Name="VCMIDLTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPostBuildEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreBuildEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreLinkEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCResourceCompilerTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCWebServiceProxyGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCXMLDataGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCWebDeploymentTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCManagedWrapperGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCAuxiliaryManagedWrapperGeneratorTool"/> | ||||
| 		</Configuration> | ||||
| 	</Configurations> | ||||
| 	<References> | ||||
| 	</References> | ||||
| 	<Files> | ||||
| 		<Filter | ||||
| 			Name="Source Files" | ||||
| 			Filter=""> | ||||
| 			<File | ||||
| 				RelativePath=".\src\download.cpp"> | ||||
| 			</File> | ||||
| 		</Filter> | ||||
| 	</Files> | ||||
| 	<Globals> | ||||
| 	</Globals> | ||||
| </VisualStudioProject> | ||||
| <?xml version="1.0" encoding="Windows-1252"?> | ||||
| <VisualStudioProject | ||||
| 	ProjectType="Visual C++" | ||||
| 	Version="7.10" | ||||
| 	Name="download" | ||||
| 	ProjectGUID="{9BDC3455-0F7A-46b5-8EA5-9AA291419ED4}" | ||||
| 	Keyword="Win32Proj"> | ||||
| 	<Platforms> | ||||
| 		<Platform | ||||
| 			Name="Win32"/> | ||||
| 	</Platforms> | ||||
| 	<Configurations> | ||||
| 		<Configuration | ||||
| 			Name="debug_shared|Win32" | ||||
| 			OutputDirectory="obj\debug_shared" | ||||
| 			IntermediateDirectory="obj\debug_shared" | ||||
| 			ConfigurationType="1" | ||||
| 			UseOfMFC="2" | ||||
| 			CharacterSet="2"> | ||||
| 			<Tool | ||||
| 				Name="VCCLCompilerTool" | ||||
| 				Optimization="0" | ||||
| 				AdditionalIncludeDirectories=".\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Net\include;..\..\..\Util\include;..\..\..\NetSSL_OpenSSL\include" | ||||
| 				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_DLL;WINVER=0x0500" | ||||
| 				MinimalRebuild="TRUE" | ||||
| 				BasicRuntimeChecks="3" | ||||
| 				RuntimeLibrary="3" | ||||
| 				BufferSecurityCheck="TRUE" | ||||
| 				TreatWChar_tAsBuiltInType="TRUE" | ||||
| 				ForceConformanceInForLoopScope="TRUE" | ||||
| 				RuntimeTypeInfo="TRUE" | ||||
| 				UsePrecompiledHeader="0" | ||||
| 				WarningLevel="3" | ||||
| 				Detect64BitPortabilityProblems="TRUE" | ||||
| 				DebugInformationFormat="4"/> | ||||
| 			<Tool | ||||
| 				Name="VCCustomBuildTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCLinkerTool" | ||||
| 				AdditionalDependencies="PocoFoundationd.lib PocoXMLd.lib PocoNetd.lib PocoUtild.lib PocoNetSSLd.lib" | ||||
| 				OutputFile="bin/downloadd.exe" | ||||
| 				LinkIncremental="2" | ||||
| 				AdditionalLibraryDirectories="..\..\..\lib" | ||||
| 				GenerateDebugInformation="TRUE" | ||||
| 				ProgramDatabaseFile="bin/downloadd.pdb" | ||||
| 				SubSystem="1" | ||||
| 				TargetMachine="1"/> | ||||
| 			<Tool | ||||
| 				Name="VCMIDLTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPostBuildEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreBuildEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreLinkEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCResourceCompilerTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCWebServiceProxyGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCXMLDataGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCWebDeploymentTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCManagedWrapperGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCAuxiliaryManagedWrapperGeneratorTool"/> | ||||
| 		</Configuration> | ||||
| 		<Configuration | ||||
| 			Name="release_shared|Win32" | ||||
| 			OutputDirectory="obj\release_shared" | ||||
| 			IntermediateDirectory="obj\release_shared" | ||||
| 			ConfigurationType="1" | ||||
| 			UseOfMFC="2" | ||||
| 			CharacterSet="2"> | ||||
| 			<Tool | ||||
| 				Name="VCCLCompilerTool" | ||||
| 				Optimization="4" | ||||
| 				InlineFunctionExpansion="1" | ||||
| 				EnableIntrinsicFunctions="TRUE" | ||||
| 				FavorSizeOrSpeed="1" | ||||
| 				OmitFramePointers="TRUE" | ||||
| 				OptimizeForWindowsApplication="TRUE" | ||||
| 				AdditionalIncludeDirectories=".\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Net\include;..\..\..\Util\include;..\..\..\NetSSL_OpenSSL\include" | ||||
| 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_DLL;WINVER=0x0500" | ||||
| 				StringPooling="TRUE" | ||||
| 				RuntimeLibrary="2" | ||||
| 				BufferSecurityCheck="FALSE" | ||||
| 				TreatWChar_tAsBuiltInType="TRUE" | ||||
| 				ForceConformanceInForLoopScope="TRUE" | ||||
| 				RuntimeTypeInfo="TRUE" | ||||
| 				UsePrecompiledHeader="0" | ||||
| 				WarningLevel="3" | ||||
| 				Detect64BitPortabilityProblems="TRUE" | ||||
| 				DebugInformationFormat="3"/> | ||||
| 			<Tool | ||||
| 				Name="VCCustomBuildTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCLinkerTool" | ||||
| 				AdditionalDependencies="PocoFoundation.lib PocoXML.lib PocoNet.lib PocoUtil.lib PocoNetSSL.lib" | ||||
| 				OutputFile="bin/download.exe" | ||||
| 				LinkIncremental="1" | ||||
| 				AdditionalLibraryDirectories="..\..\..\lib" | ||||
| 				GenerateDebugInformation="FALSE" | ||||
| 				ProgramDatabaseFile="" | ||||
| 				SubSystem="1" | ||||
| 				OptimizeReferences="2" | ||||
| 				EnableCOMDATFolding="2" | ||||
| 				TargetMachine="1"/> | ||||
| 			<Tool | ||||
| 				Name="VCMIDLTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPostBuildEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreBuildEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreLinkEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCResourceCompilerTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCWebServiceProxyGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCXMLDataGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCWebDeploymentTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCManagedWrapperGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCAuxiliaryManagedWrapperGeneratorTool"/> | ||||
| 		</Configuration> | ||||
| 	</Configurations> | ||||
| 	<References> | ||||
| 	</References> | ||||
| 	<Files> | ||||
| 		<Filter | ||||
| 			Name="Source Files" | ||||
| 			Filter=""> | ||||
| 			<File | ||||
| 				RelativePath=".\src\download.cpp"> | ||||
| 			</File> | ||||
| 		</Filter> | ||||
| 	</Files> | ||||
| 	<Globals> | ||||
| 	</Globals> | ||||
| </VisualStudioProject> | ||||
|   | ||||
| @@ -1,210 +1,210 @@ | ||||
| <?xml version="1.0" encoding="Windows-1252"?> | ||||
| <VisualStudioProject | ||||
| 	ProjectType="Visual C++" | ||||
| 	Version="8,00" | ||||
| 	Name="download" | ||||
| 	ProjectGUID="{22F6B2E6-A532-4156-A49A-835A21BFF3F6}" | ||||
| 	RootNamespace="download" | ||||
| 	Keyword="Win32Proj" | ||||
| 	> | ||||
| 	<Platforms> | ||||
| 		<Platform | ||||
| 			Name="Win32" | ||||
| 		/> | ||||
| 	</Platforms> | ||||
| 	<ToolFiles> | ||||
| 	</ToolFiles> | ||||
| 	<Configurations> | ||||
| 		<Configuration | ||||
| 			Name="debug_shared|Win32" | ||||
| 			OutputDirectory="obj\debug_shared" | ||||
| 			IntermediateDirectory="obj\debug_shared" | ||||
| 			ConfigurationType="1" | ||||
| 			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" | ||||
| 			UseOfMFC="2" | ||||
| 			CharacterSet="2" | ||||
| 			> | ||||
| 			<Tool | ||||
| 				Name="VCPreBuildEventTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCCustomBuildTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCXMLDataGeneratorTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCWebServiceProxyGeneratorTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCMIDLTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCCLCompilerTool" | ||||
| 				Optimization="0" | ||||
| 				AdditionalIncludeDirectories=".\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Net\include;..\..\..\Util\include;..\..\..\NetSSL_OpenSSL\include" | ||||
| 				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_DLL;WINVER=0x0500" | ||||
| 				MinimalRebuild="true" | ||||
| 				BasicRuntimeChecks="3" | ||||
| 				RuntimeLibrary="3" | ||||
| 				BufferSecurityCheck="true" | ||||
| 				TreatWChar_tAsBuiltInType="true" | ||||
| 				ForceConformanceInForLoopScope="true" | ||||
| 				RuntimeTypeInfo="true" | ||||
| 				UsePrecompiledHeader="0" | ||||
| 				WarningLevel="3" | ||||
| 				Detect64BitPortabilityProblems="true" | ||||
| 				DebugInformationFormat="4" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCManagedResourceCompilerTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCResourceCompilerTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCPreLinkEventTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCLinkerTool" | ||||
| 				AdditionalDependencies="PocoFoundationd.lib PocoXMLd.lib PocoNetd.lib PocoNetSSLd.lib PocoUtild.lib" | ||||
| 				OutputFile="bin/downloadd.exe" | ||||
| 				LinkIncremental="2" | ||||
| 				AdditionalLibraryDirectories="..\..\..\lib" | ||||
| 				GenerateDebugInformation="true" | ||||
| 				ProgramDatabaseFile="bin/downloadd.pdb" | ||||
| 				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_shared|Win32" | ||||
| 			OutputDirectory="obj\release_shared" | ||||
| 			IntermediateDirectory="obj\release_shared" | ||||
| 			ConfigurationType="1" | ||||
| 			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" | ||||
| 			UseOfMFC="2" | ||||
| 			CharacterSet="2" | ||||
| 			> | ||||
| 			<Tool | ||||
| 				Name="VCPreBuildEventTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCCustomBuildTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCXMLDataGeneratorTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCWebServiceProxyGeneratorTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCMIDLTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCCLCompilerTool" | ||||
| 				Optimization="4" | ||||
| 				InlineFunctionExpansion="1" | ||||
| 				EnableIntrinsicFunctions="true" | ||||
| 				FavorSizeOrSpeed="1" | ||||
| 				OmitFramePointers="true" | ||||
| 				AdditionalIncludeDirectories=".\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Net\include;..\..\..\Util\include;..\..\..\NetSSL_OpenSSL\include" | ||||
| 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_DLL;WINVER=0x0500" | ||||
| 				StringPooling="true" | ||||
| 				RuntimeLibrary="2" | ||||
| 				BufferSecurityCheck="false" | ||||
| 				TreatWChar_tAsBuiltInType="true" | ||||
| 				ForceConformanceInForLoopScope="true" | ||||
| 				RuntimeTypeInfo="true" | ||||
| 				UsePrecompiledHeader="0" | ||||
| 				WarningLevel="3" | ||||
| 				Detect64BitPortabilityProblems="true" | ||||
| 				DebugInformationFormat="3" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCManagedResourceCompilerTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCResourceCompilerTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCPreLinkEventTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCLinkerTool" | ||||
| 				AdditionalDependencies="PocoFoundation.lib PocoXML.lib PocoNet.lib PocoNetSSL.lib PocoUtil.lib" | ||||
| 				OutputFile="bin/download.exe" | ||||
| 				LinkIncremental="1" | ||||
| 				AdditionalLibraryDirectories="..\..\..\lib" | ||||
| 				GenerateDebugInformation="false" | ||||
| 				ProgramDatabaseFile="" | ||||
| 				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="Source Files" | ||||
| 			> | ||||
| 			<File | ||||
| 				RelativePath=".\src\download.cpp" | ||||
| 				> | ||||
| 			</File> | ||||
| 		</Filter> | ||||
| 	</Files> | ||||
| 	<Globals> | ||||
| 	</Globals> | ||||
| </VisualStudioProject> | ||||
| <?xml version="1.0" encoding="Windows-1252"?> | ||||
| <VisualStudioProject | ||||
| 	ProjectType="Visual C++" | ||||
| 	Version="8,00" | ||||
| 	Name="download" | ||||
| 	ProjectGUID="{22F6B2E6-A532-4156-A49A-835A21BFF3F6}" | ||||
| 	RootNamespace="download" | ||||
| 	Keyword="Win32Proj" | ||||
| 	> | ||||
| 	<Platforms> | ||||
| 		<Platform | ||||
| 			Name="Win32" | ||||
| 		/> | ||||
| 	</Platforms> | ||||
| 	<ToolFiles> | ||||
| 	</ToolFiles> | ||||
| 	<Configurations> | ||||
| 		<Configuration | ||||
| 			Name="debug_shared|Win32" | ||||
| 			OutputDirectory="obj\debug_shared" | ||||
| 			IntermediateDirectory="obj\debug_shared" | ||||
| 			ConfigurationType="1" | ||||
| 			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" | ||||
| 			UseOfMFC="2" | ||||
| 			CharacterSet="2" | ||||
| 			> | ||||
| 			<Tool | ||||
| 				Name="VCPreBuildEventTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCCustomBuildTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCXMLDataGeneratorTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCWebServiceProxyGeneratorTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCMIDLTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCCLCompilerTool" | ||||
| 				Optimization="0" | ||||
| 				AdditionalIncludeDirectories=".\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Net\include;..\..\..\Util\include;..\..\..\NetSSL_OpenSSL\include" | ||||
| 				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_DLL;WINVER=0x0500" | ||||
| 				MinimalRebuild="true" | ||||
| 				BasicRuntimeChecks="3" | ||||
| 				RuntimeLibrary="3" | ||||
| 				BufferSecurityCheck="true" | ||||
| 				TreatWChar_tAsBuiltInType="true" | ||||
| 				ForceConformanceInForLoopScope="true" | ||||
| 				RuntimeTypeInfo="true" | ||||
| 				UsePrecompiledHeader="0" | ||||
| 				WarningLevel="3" | ||||
| 				Detect64BitPortabilityProblems="true" | ||||
| 				DebugInformationFormat="4" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCManagedResourceCompilerTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCResourceCompilerTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCPreLinkEventTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCLinkerTool" | ||||
| 				AdditionalDependencies="PocoFoundationd.lib PocoXMLd.lib PocoNetd.lib PocoNetSSLd.lib PocoUtild.lib" | ||||
| 				OutputFile="bin/downloadd.exe" | ||||
| 				LinkIncremental="2" | ||||
| 				AdditionalLibraryDirectories="..\..\..\lib" | ||||
| 				GenerateDebugInformation="true" | ||||
| 				ProgramDatabaseFile="bin/downloadd.pdb" | ||||
| 				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_shared|Win32" | ||||
| 			OutputDirectory="obj\release_shared" | ||||
| 			IntermediateDirectory="obj\release_shared" | ||||
| 			ConfigurationType="1" | ||||
| 			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" | ||||
| 			UseOfMFC="2" | ||||
| 			CharacterSet="2" | ||||
| 			> | ||||
| 			<Tool | ||||
| 				Name="VCPreBuildEventTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCCustomBuildTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCXMLDataGeneratorTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCWebServiceProxyGeneratorTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCMIDLTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCCLCompilerTool" | ||||
| 				Optimization="4" | ||||
| 				InlineFunctionExpansion="1" | ||||
| 				EnableIntrinsicFunctions="true" | ||||
| 				FavorSizeOrSpeed="1" | ||||
| 				OmitFramePointers="true" | ||||
| 				AdditionalIncludeDirectories=".\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Net\include;..\..\..\Util\include;..\..\..\NetSSL_OpenSSL\include" | ||||
| 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_DLL;WINVER=0x0500" | ||||
| 				StringPooling="true" | ||||
| 				RuntimeLibrary="2" | ||||
| 				BufferSecurityCheck="false" | ||||
| 				TreatWChar_tAsBuiltInType="true" | ||||
| 				ForceConformanceInForLoopScope="true" | ||||
| 				RuntimeTypeInfo="true" | ||||
| 				UsePrecompiledHeader="0" | ||||
| 				WarningLevel="3" | ||||
| 				Detect64BitPortabilityProblems="true" | ||||
| 				DebugInformationFormat="3" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCManagedResourceCompilerTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCResourceCompilerTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCPreLinkEventTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCLinkerTool" | ||||
| 				AdditionalDependencies="PocoFoundation.lib PocoXML.lib PocoNet.lib PocoNetSSL.lib PocoUtil.lib" | ||||
| 				OutputFile="bin/download.exe" | ||||
| 				LinkIncremental="1" | ||||
| 				AdditionalLibraryDirectories="..\..\..\lib" | ||||
| 				GenerateDebugInformation="false" | ||||
| 				ProgramDatabaseFile="" | ||||
| 				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="Source Files" | ||||
| 			> | ||||
| 			<File | ||||
| 				RelativePath=".\src\download.cpp" | ||||
| 				> | ||||
| 			</File> | ||||
| 		</Filter> | ||||
| 	</Files> | ||||
| 	<Globals> | ||||
| 	</Globals> | ||||
| </VisualStudioProject> | ||||
|   | ||||
| @@ -1,15 +1,15 @@ | ||||
| -----BEGIN CERTIFICATE----- | ||||
| MIICXTCCAcYCCQC1Vk/N8qR4AjANBgkqhkiG9w0BAQUFADBzMQswCQYDVQQGEwJB | ||||
| VDESMBAGA1UECBMJQ2FyaW50aGlhMRIwEAYDVQQHEwlTdC4gSmFrb2IxDzANBgNV | ||||
| BAoTBkFwcEluZjEPMA0GA1UEAxMGQXBwSW5mMRowGAYJKoZIhvcNAQkBFgthcHBA | ||||
| aW5mLmNvbTAeFw0wNjAyMjcxMzI3MThaFw0wNjAzMjkxMzI3MThaMHMxCzAJBgNV | ||||
| BAYTAkFUMRIwEAYDVQQIEwlDYXJpbnRoaWExEjAQBgNVBAcTCVN0LiBKYWtvYjEP | ||||
| MA0GA1UEChMGQXBwSW5mMQ8wDQYDVQQDEwZBcHBJbmYxGjAYBgkqhkiG9w0BCQEW | ||||
| C2FwcEBpbmYuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCsFXiPuicN | ||||
| Im4oJwF8NuaFN+lgYwcZ6dAO3ILIR3kLA2PxF8HSQLfF8J8a4odZhLhctIMAKTxm | ||||
| k0w8TW5qhL8QLdGzY9vzvkgdKOkan2t3sMeXJAfrM1AphTsmgntAQazGZjOj5p4W | ||||
| jDnxQ+VXAylqwjHh49eSBxM3wgoscF4iLQIDAQABMA0GCSqGSIb3DQEBBQUAA4GB | ||||
| AIpfLdXiKchPvFMhQS8xTtXvrw5dVL3yImUMYs4GQi8RrjGmfGB3yMAR7B/b8v4a | ||||
| +ztfusgWAWiUKuSGTk4S8YB0fsFlmOv0WDr+PyZ4Lui/a8opbyzGE7rqpnF/s0GO | ||||
| M7uLCNNwIN7WhmxcWV0KZU1wTppoSWPJda1yTbBzF9XP | ||||
| -----END CERTIFICATE----- | ||||
| -----BEGIN CERTIFICATE----- | ||||
| MIICXTCCAcYCCQC1Vk/N8qR4AjANBgkqhkiG9w0BAQUFADBzMQswCQYDVQQGEwJB | ||||
| VDESMBAGA1UECBMJQ2FyaW50aGlhMRIwEAYDVQQHEwlTdC4gSmFrb2IxDzANBgNV | ||||
| BAoTBkFwcEluZjEPMA0GA1UEAxMGQXBwSW5mMRowGAYJKoZIhvcNAQkBFgthcHBA | ||||
| aW5mLmNvbTAeFw0wNjAyMjcxMzI3MThaFw0wNjAzMjkxMzI3MThaMHMxCzAJBgNV | ||||
| BAYTAkFUMRIwEAYDVQQIEwlDYXJpbnRoaWExEjAQBgNVBAcTCVN0LiBKYWtvYjEP | ||||
| MA0GA1UEChMGQXBwSW5mMQ8wDQYDVQQDEwZBcHBJbmYxGjAYBgkqhkiG9w0BCQEW | ||||
| C2FwcEBpbmYuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCsFXiPuicN | ||||
| Im4oJwF8NuaFN+lgYwcZ6dAO3ILIR3kLA2PxF8HSQLfF8J8a4odZhLhctIMAKTxm | ||||
| k0w8TW5qhL8QLdGzY9vzvkgdKOkan2t3sMeXJAfrM1AphTsmgntAQazGZjOj5p4W | ||||
| jDnxQ+VXAylqwjHh49eSBxM3wgoscF4iLQIDAQABMA0GCSqGSIb3DQEBBQUAA4GB | ||||
| AIpfLdXiKchPvFMhQS8xTtXvrw5dVL3yImUMYs4GQi8RrjGmfGB3yMAR7B/b8v4a | ||||
| +ztfusgWAWiUKuSGTk4S8YB0fsFlmOv0WDr+PyZ4Lui/a8opbyzGE7rqpnF/s0GO | ||||
| M7uLCNNwIN7WhmxcWV0KZU1wTppoSWPJda1yTbBzF9XP | ||||
| -----END CERTIFICATE----- | ||||
|   | ||||
| @@ -1,29 +1,29 @@ | ||||
| Microsoft Visual Studio Solution File, Format Version 8.00 | ||||
| Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HTTPSTimeServer", "HTTPSTimeServer\HTTPSTimeServer_vs71.vcproj", "{7C4285ED-F0BC-4CBA-B1F0-61FCB7FA26C4}" | ||||
| 	ProjectSection(ProjectDependencies) = postProject | ||||
| 	EndProjectSection | ||||
| EndProject | ||||
| Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "download", "download\download_vs71.vcproj", "{22F6B2E6-A532-4156-A49A-835A21BFF3F6}" | ||||
| 	ProjectSection(ProjectDependencies) = postProject | ||||
| 	EndProjectSection | ||||
| EndProject | ||||
| Global | ||||
| 	GlobalSection(SolutionConfiguration) = preSolution | ||||
| 		debug_shared = debug_shared | ||||
| 		release_shared = release_shared | ||||
| 	EndGlobalSection | ||||
| 	GlobalSection(ProjectConfiguration) = postSolution | ||||
| 		{7C4285ED-F0BC-4CBA-B1F0-61FCB7FA26C4}.debug_shared.ActiveCfg = debug_shared|Win32 | ||||
| 		{7C4285ED-F0BC-4CBA-B1F0-61FCB7FA26C4}.debug_shared.Build.0 = debug_shared|Win32 | ||||
| 		{7C4285ED-F0BC-4CBA-B1F0-61FCB7FA26C4}.release_shared.ActiveCfg = release_shared|Win32 | ||||
| 		{7C4285ED-F0BC-4CBA-B1F0-61FCB7FA26C4}.release_shared.Build.0 = release_shared|Win32 | ||||
| 		{22F6B2E6-A532-4156-A49A-835A21BFF3F6}.debug_shared.ActiveCfg = debug_shared|Win32 | ||||
| 		{22F6B2E6-A532-4156-A49A-835A21BFF3F6}.debug_shared.Build.0 = debug_shared|Win32 | ||||
| 		{22F6B2E6-A532-4156-A49A-835A21BFF3F6}.release_shared.ActiveCfg = release_shared|Win32 | ||||
| 		{22F6B2E6-A532-4156-A49A-835A21BFF3F6}.release_shared.Build.0 = release_shared|Win32 | ||||
| 	EndGlobalSection | ||||
| 	GlobalSection(ExtensibilityGlobals) = postSolution | ||||
| 	EndGlobalSection | ||||
| 	GlobalSection(ExtensibilityAddIns) = postSolution | ||||
| 	EndGlobalSection | ||||
| EndGlobal | ||||
| Microsoft Visual Studio Solution File, Format Version 8.00 | ||||
| Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HTTPSTimeServer", "HTTPSTimeServer\HTTPSTimeServer_vs71.vcproj", "{7C4285ED-F0BC-4CBA-B1F0-61FCB7FA26C4}" | ||||
| 	ProjectSection(ProjectDependencies) = postProject | ||||
| 	EndProjectSection | ||||
| EndProject | ||||
| Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "download", "download\download_vs71.vcproj", "{22F6B2E6-A532-4156-A49A-835A21BFF3F6}" | ||||
| 	ProjectSection(ProjectDependencies) = postProject | ||||
| 	EndProjectSection | ||||
| EndProject | ||||
| Global | ||||
| 	GlobalSection(SolutionConfiguration) = preSolution | ||||
| 		debug_shared = debug_shared | ||||
| 		release_shared = release_shared | ||||
| 	EndGlobalSection | ||||
| 	GlobalSection(ProjectConfiguration) = postSolution | ||||
| 		{7C4285ED-F0BC-4CBA-B1F0-61FCB7FA26C4}.debug_shared.ActiveCfg = debug_shared|Win32 | ||||
| 		{7C4285ED-F0BC-4CBA-B1F0-61FCB7FA26C4}.debug_shared.Build.0 = debug_shared|Win32 | ||||
| 		{7C4285ED-F0BC-4CBA-B1F0-61FCB7FA26C4}.release_shared.ActiveCfg = release_shared|Win32 | ||||
| 		{7C4285ED-F0BC-4CBA-B1F0-61FCB7FA26C4}.release_shared.Build.0 = release_shared|Win32 | ||||
| 		{22F6B2E6-A532-4156-A49A-835A21BFF3F6}.debug_shared.ActiveCfg = debug_shared|Win32 | ||||
| 		{22F6B2E6-A532-4156-A49A-835A21BFF3F6}.debug_shared.Build.0 = debug_shared|Win32 | ||||
| 		{22F6B2E6-A532-4156-A49A-835A21BFF3F6}.release_shared.ActiveCfg = release_shared|Win32 | ||||
| 		{22F6B2E6-A532-4156-A49A-835A21BFF3F6}.release_shared.Build.0 = release_shared|Win32 | ||||
| 	EndGlobalSection | ||||
| 	GlobalSection(ExtensibilityGlobals) = postSolution | ||||
| 	EndGlobalSection | ||||
| 	GlobalSection(ExtensibilityAddIns) = postSolution | ||||
| 	EndGlobalSection | ||||
| EndGlobal | ||||
|   | ||||
| @@ -1,25 +1,25 @@ | ||||
| Microsoft Visual Studio Solution File, Format Version 9.00 | ||||
| # Visual Studio 2005 | ||||
| Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HTTPSTimeServer", "HTTPSTimeServer\HTTPSTimeServer_vs80.vcproj", "{7C4285ED-F0BC-4CBA-B1F0-61FCB7FA26C4}" | ||||
| EndProject | ||||
| Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "download", "download\download_vs80.vcproj", "{22F6B2E6-A532-4156-A49A-835A21BFF3F6}" | ||||
| EndProject | ||||
| Global | ||||
| 	GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||||
| 		debug_shared|Win32 = debug_shared|Win32 | ||||
| 		release_shared|Win32 = release_shared|Win32 | ||||
| 	EndGlobalSection | ||||
| 	GlobalSection(ProjectConfigurationPlatforms) = postSolution | ||||
| 		{7C4285ED-F0BC-4CBA-B1F0-61FCB7FA26C4}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 | ||||
| 		{7C4285ED-F0BC-4CBA-B1F0-61FCB7FA26C4}.debug_shared|Win32.Build.0 = debug_shared|Win32 | ||||
| 		{7C4285ED-F0BC-4CBA-B1F0-61FCB7FA26C4}.release_shared|Win32.ActiveCfg = release_shared|Win32 | ||||
| 		{7C4285ED-F0BC-4CBA-B1F0-61FCB7FA26C4}.release_shared|Win32.Build.0 = release_shared|Win32 | ||||
| 		{22F6B2E6-A532-4156-A49A-835A21BFF3F6}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 | ||||
| 		{22F6B2E6-A532-4156-A49A-835A21BFF3F6}.debug_shared|Win32.Build.0 = debug_shared|Win32 | ||||
| 		{22F6B2E6-A532-4156-A49A-835A21BFF3F6}.release_shared|Win32.ActiveCfg = release_shared|Win32 | ||||
| 		{22F6B2E6-A532-4156-A49A-835A21BFF3F6}.release_shared|Win32.Build.0 = release_shared|Win32 | ||||
| 	EndGlobalSection | ||||
| 	GlobalSection(SolutionProperties) = preSolution | ||||
| 		HideSolutionNode = FALSE | ||||
| 	EndGlobalSection | ||||
| EndGlobal | ||||
| Microsoft Visual Studio Solution File, Format Version 9.00 | ||||
| # Visual Studio 2005 | ||||
| Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HTTPSTimeServer", "HTTPSTimeServer\HTTPSTimeServer_vs80.vcproj", "{7C4285ED-F0BC-4CBA-B1F0-61FCB7FA26C4}" | ||||
| EndProject | ||||
| Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "download", "download\download_vs80.vcproj", "{22F6B2E6-A532-4156-A49A-835A21BFF3F6}" | ||||
| EndProject | ||||
| Global | ||||
| 	GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||||
| 		debug_shared|Win32 = debug_shared|Win32 | ||||
| 		release_shared|Win32 = release_shared|Win32 | ||||
| 	EndGlobalSection | ||||
| 	GlobalSection(ProjectConfigurationPlatforms) = postSolution | ||||
| 		{7C4285ED-F0BC-4CBA-B1F0-61FCB7FA26C4}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 | ||||
| 		{7C4285ED-F0BC-4CBA-B1F0-61FCB7FA26C4}.debug_shared|Win32.Build.0 = debug_shared|Win32 | ||||
| 		{7C4285ED-F0BC-4CBA-B1F0-61FCB7FA26C4}.release_shared|Win32.ActiveCfg = release_shared|Win32 | ||||
| 		{7C4285ED-F0BC-4CBA-B1F0-61FCB7FA26C4}.release_shared|Win32.Build.0 = release_shared|Win32 | ||||
| 		{22F6B2E6-A532-4156-A49A-835A21BFF3F6}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 | ||||
| 		{22F6B2E6-A532-4156-A49A-835A21BFF3F6}.debug_shared|Win32.Build.0 = debug_shared|Win32 | ||||
| 		{22F6B2E6-A532-4156-A49A-835A21BFF3F6}.release_shared|Win32.ActiveCfg = release_shared|Win32 | ||||
| 		{22F6B2E6-A532-4156-A49A-835A21BFF3F6}.release_shared|Win32.Build.0 = release_shared|Win32 | ||||
| 	EndGlobalSection | ||||
| 	GlobalSection(SolutionProperties) = preSolution | ||||
| 		HideSolutionNode = FALSE | ||||
| 	EndGlobalSection | ||||
| EndGlobal | ||||
|   | ||||
| @@ -1,54 +1,54 @@ | ||||
| // | ||||
| // AcceptCertificateHandler.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/AcceptCertificateHandler.cpp#2 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  AcceptCertificateHandler | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/AcceptCertificateHandler.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| AcceptCertificateHandler::AcceptCertificateHandler(bool server):InvalidCertificateHandler(server) | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| AcceptCertificateHandler::~AcceptCertificateHandler() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
| // | ||||
| // AcceptCertificateHandler.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/AcceptCertificateHandler.cpp#2 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  AcceptCertificateHandler | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/AcceptCertificateHandler.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| AcceptCertificateHandler::AcceptCertificateHandler(bool server):InvalidCertificateHandler(server) | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| AcceptCertificateHandler::~AcceptCertificateHandler() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|   | ||||
| @@ -1,66 +1,66 @@ | ||||
| // | ||||
| // CertificateHandlerFactory.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/CertificateHandlerFactory.cpp#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  CertificateHandlerFactory | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/CertificateHandlerFactory.h" | ||||
| #include "Poco/Net/SSLManager.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| CertificateHandlerFactory::CertificateHandlerFactory() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| CertificateHandlerFactory::~CertificateHandlerFactory() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| CertificateHandlerFactoryRegistrar::CertificateHandlerFactoryRegistrar(const std::string& name, CertificateHandlerFactory* pFactory) | ||||
| { | ||||
| 	SSLManager::instance().certificateHandlerFactoryMgr().setFactory(name, pFactory); | ||||
| } | ||||
|  | ||||
|  | ||||
| CertificateHandlerFactoryRegistrar::~CertificateHandlerFactoryRegistrar() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
| // | ||||
| // CertificateHandlerFactory.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/CertificateHandlerFactory.cpp#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  CertificateHandlerFactory | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/CertificateHandlerFactory.h" | ||||
| #include "Poco/Net/SSLManager.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| CertificateHandlerFactory::CertificateHandlerFactory() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| CertificateHandlerFactory::~CertificateHandlerFactory() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| CertificateHandlerFactoryRegistrar::CertificateHandlerFactoryRegistrar(const std::string& name, CertificateHandlerFactory* pFactory) | ||||
| { | ||||
| 	SSLManager::instance().certificateHandlerFactoryMgr().setFactory(name, pFactory); | ||||
| } | ||||
|  | ||||
|  | ||||
| CertificateHandlerFactoryRegistrar::~CertificateHandlerFactoryRegistrar() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|   | ||||
| @@ -1,90 +1,90 @@ | ||||
| // | ||||
| // CertificateHandlerFactoryMgr.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/CertificateHandlerFactoryMgr.cpp#2 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  CertificateHandlerFactoryMgr | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/CertificateHandlerFactoryMgr.h" | ||||
| #include "Poco/Net/ConsoleCertificateHandler.h" | ||||
| #include "Poco/Net/AcceptCertificateHandler.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| CertificateHandlerFactoryMgr::CertificateHandlerFactoryMgr() | ||||
| { | ||||
| 	setFactory("ConsoleCertificateHandler", new CertificateHandlerFactoryImpl<ConsoleCertificateHandler>()); | ||||
| 	setFactory("AcceptCertificateHandler", new CertificateHandlerFactoryImpl<AcceptCertificateHandler>()); | ||||
|  | ||||
| } | ||||
|  | ||||
|  | ||||
| CertificateHandlerFactoryMgr::~CertificateHandlerFactoryMgr() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| void CertificateHandlerFactoryMgr::setFactory(const std::string& name, CertificateHandlerFactory* pFactory) | ||||
| { | ||||
| 	bool success = _factories.insert(make_pair(name, Poco::SharedPtr<CertificateHandlerFactory>(pFactory))).second; | ||||
| 	if (!success) | ||||
| 		delete pFactory; | ||||
| 	poco_assert(success); | ||||
| } | ||||
| 		 | ||||
|  | ||||
| bool CertificateHandlerFactoryMgr::hasFactory(const std::string& name) const | ||||
| { | ||||
| 	return _factories.find(name) != _factories.end(); | ||||
| } | ||||
| 		 | ||||
| 	 | ||||
| const CertificateHandlerFactory* CertificateHandlerFactoryMgr::getFactory(const std::string& name) const | ||||
| { | ||||
| 	FactoriesMap::const_iterator it = _factories.find(name); | ||||
| 	if (it != _factories.end()) | ||||
| 		return it->second; | ||||
| 	else | ||||
| 		return 0; | ||||
| } | ||||
|  | ||||
|  | ||||
| void CertificateHandlerFactoryMgr::removeFactory(const std::string& name) | ||||
| { | ||||
| 	_factories.erase(name); | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
| // | ||||
| // CertificateHandlerFactoryMgr.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/CertificateHandlerFactoryMgr.cpp#2 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  CertificateHandlerFactoryMgr | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/CertificateHandlerFactoryMgr.h" | ||||
| #include "Poco/Net/ConsoleCertificateHandler.h" | ||||
| #include "Poco/Net/AcceptCertificateHandler.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| CertificateHandlerFactoryMgr::CertificateHandlerFactoryMgr() | ||||
| { | ||||
| 	setFactory("ConsoleCertificateHandler", new CertificateHandlerFactoryImpl<ConsoleCertificateHandler>()); | ||||
| 	setFactory("AcceptCertificateHandler", new CertificateHandlerFactoryImpl<AcceptCertificateHandler>()); | ||||
|  | ||||
| } | ||||
|  | ||||
|  | ||||
| CertificateHandlerFactoryMgr::~CertificateHandlerFactoryMgr() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| void CertificateHandlerFactoryMgr::setFactory(const std::string& name, CertificateHandlerFactory* pFactory) | ||||
| { | ||||
| 	bool success = _factories.insert(make_pair(name, Poco::SharedPtr<CertificateHandlerFactory>(pFactory))).second; | ||||
| 	if (!success) | ||||
| 		delete pFactory; | ||||
| 	poco_assert(success); | ||||
| } | ||||
| 		 | ||||
|  | ||||
| bool CertificateHandlerFactoryMgr::hasFactory(const std::string& name) const | ||||
| { | ||||
| 	return _factories.find(name) != _factories.end(); | ||||
| } | ||||
| 		 | ||||
| 	 | ||||
| const CertificateHandlerFactory* CertificateHandlerFactoryMgr::getFactory(const std::string& name) const | ||||
| { | ||||
| 	FactoriesMap::const_iterator it = _factories.find(name); | ||||
| 	if (it != _factories.end()) | ||||
| 		return it->second; | ||||
| 	else | ||||
| 		return 0; | ||||
| } | ||||
|  | ||||
|  | ||||
| void CertificateHandlerFactoryMgr::removeFactory(const std::string& name) | ||||
| { | ||||
| 	_factories.erase(name); | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|   | ||||
| @@ -1,74 +1,74 @@ | ||||
| // | ||||
| // ConsoleCertificateHandler.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/ConsoleCertificateHandler.cpp#2 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  ConsoleCertificateHandler | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/ConsoleCertificateHandler.h" | ||||
| #include <iostream> | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| ConsoleCertificateHandler::ConsoleCertificateHandler(bool server):InvalidCertificateHandler(server) | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| ConsoleCertificateHandler::~ConsoleCertificateHandler() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| void ConsoleCertificateHandler::onInvalidCertificate(const void*, VerificationErrorArgs& errorCert) | ||||
| { | ||||
| 	const X509Certificate& aCert = errorCert.certificate(); | ||||
| 	std::cout << " Certificate:\n"; | ||||
| 	std::cout << "----------------\n"; | ||||
| 	std::cout << "  IssuerName: \t" << aCert.issuerName() << "\n"; | ||||
| 	std::cout << "  SubjectName:\t" << aCert.subjectName() << "\n\n"; | ||||
| 	std::cout << "The certificate yielded the error: " << errorCert.errorMessage() << "\n\n"; | ||||
| 	std::cout << "The error occurred at in the certificate chain at position " << errorCert.errorDepth() << "\n"; | ||||
| 	std::cout << "Accept the certificate? (y,n)"; | ||||
| 	char c; | ||||
| 	std::cin >> c; | ||||
| 	if (c == 'y' || c == 'Y') | ||||
| 		errorCert.setIgnoreError(true); | ||||
| 	else | ||||
| 		errorCert.setIgnoreError(false); | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
| // | ||||
| // ConsoleCertificateHandler.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/ConsoleCertificateHandler.cpp#2 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  ConsoleCertificateHandler | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/ConsoleCertificateHandler.h" | ||||
| #include <iostream> | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| ConsoleCertificateHandler::ConsoleCertificateHandler(bool server):InvalidCertificateHandler(server) | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| ConsoleCertificateHandler::~ConsoleCertificateHandler() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| void ConsoleCertificateHandler::onInvalidCertificate(const void*, VerificationErrorArgs& errorCert) | ||||
| { | ||||
| 	const X509Certificate& aCert = errorCert.certificate(); | ||||
| 	std::cout << " Certificate:\n"; | ||||
| 	std::cout << "----------------\n"; | ||||
| 	std::cout << "  IssuerName: \t" << aCert.issuerName() << "\n"; | ||||
| 	std::cout << "  SubjectName:\t" << aCert.subjectName() << "\n\n"; | ||||
| 	std::cout << "The certificate yielded the error: " << errorCert.errorMessage() << "\n\n"; | ||||
| 	std::cout << "The error occurred at in the certificate chain at position " << errorCert.errorDepth() << "\n"; | ||||
| 	std::cout << "Accept the certificate? (y,n)"; | ||||
| 	char c; | ||||
| 	std::cin >> c; | ||||
| 	if (c == 'y' || c == 'Y') | ||||
| 		errorCert.setIgnoreError(true); | ||||
| 	else | ||||
| 		errorCert.setIgnoreError(false); | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|   | ||||
| @@ -1,108 +1,108 @@ | ||||
| // | ||||
| // HTTPSClientSession.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/HTTPSClientSession.cpp#3 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: HTTPSClient | ||||
| // Module:  HTTPSClientSession | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/HTTPSClientSession.h" | ||||
| #include "Poco/Net/SecureStreamSocket.h" | ||||
| #include "Poco/Net/SecureStreamSocketImpl.h" | ||||
| #include "Poco/Net/HTTPRequest.h" | ||||
| #include "Poco/Net/HTTPResponse.h" | ||||
| #include "Poco/Net/HTTPHeaderStream.h" | ||||
| #include "Poco/Net/HTTPStream.h" | ||||
| #include "Poco/Net/HTTPFixedLengthStream.h" | ||||
| #include "Poco/Net/HTTPChunkedStream.h" | ||||
| #include "Poco/Net/NetException.h" | ||||
| #include "Poco/NumberFormatter.h" | ||||
|  | ||||
|  | ||||
| using Poco::NumberFormatter; | ||||
| using Poco::IllegalStateException; | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| HTTPSClientSession::HTTPSClientSession(): | ||||
| 	HTTPClientSession(SecureStreamSocket()) | ||||
| { | ||||
| 	setPort(Utility::HTTPS_PORT); | ||||
| } | ||||
|  | ||||
|  | ||||
| HTTPSClientSession::HTTPSClientSession(const SecureStreamSocket& socket): | ||||
| 	HTTPClientSession(socket) | ||||
| { | ||||
| 	setPort(Utility::HTTPS_PORT); | ||||
| } | ||||
|  | ||||
|  | ||||
| HTTPSClientSession::HTTPSClientSession(const std::string& host, Poco::UInt16 port): | ||||
| 	HTTPClientSession(SecureStreamSocket()) | ||||
| { | ||||
| 	setHost(host); | ||||
| 	setPort(port); | ||||
| } | ||||
|  | ||||
|  | ||||
| HTTPSClientSession::~HTTPSClientSession() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| std::string HTTPSClientSession::getHostInfo() const | ||||
| { | ||||
| 	std::string result("https://"); | ||||
| 	result.append(getHost()); | ||||
| 	result.append(":"); | ||||
| 	result.append(NumberFormatter::format(getPort())); | ||||
| 	return result; | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSClientSession::connect(const SocketAddress& address) | ||||
| { | ||||
| 	if (!getProxyHost().empty()) | ||||
| 	{ | ||||
| 		StreamSocket& aSock = socket(); | ||||
| 		SecureStreamSocketImpl* pImplSock = dynamic_cast<SecureStreamSocketImpl*>(aSock.impl()); | ||||
| 		poco_check_ptr (pImplSock); | ||||
| 		pImplSock->setTunnelEndPoint(getHost(), getPort()); | ||||
| 	} | ||||
| 	HTTPSession::connect(address); | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
| // | ||||
| // HTTPSClientSession.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/HTTPSClientSession.cpp#3 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: HTTPSClient | ||||
| // Module:  HTTPSClientSession | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/HTTPSClientSession.h" | ||||
| #include "Poco/Net/SecureStreamSocket.h" | ||||
| #include "Poco/Net/SecureStreamSocketImpl.h" | ||||
| #include "Poco/Net/HTTPRequest.h" | ||||
| #include "Poco/Net/HTTPResponse.h" | ||||
| #include "Poco/Net/HTTPHeaderStream.h" | ||||
| #include "Poco/Net/HTTPStream.h" | ||||
| #include "Poco/Net/HTTPFixedLengthStream.h" | ||||
| #include "Poco/Net/HTTPChunkedStream.h" | ||||
| #include "Poco/Net/NetException.h" | ||||
| #include "Poco/NumberFormatter.h" | ||||
|  | ||||
|  | ||||
| using Poco::NumberFormatter; | ||||
| using Poco::IllegalStateException; | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| HTTPSClientSession::HTTPSClientSession(): | ||||
| 	HTTPClientSession(SecureStreamSocket()) | ||||
| { | ||||
| 	setPort(Utility::HTTPS_PORT); | ||||
| } | ||||
|  | ||||
|  | ||||
| HTTPSClientSession::HTTPSClientSession(const SecureStreamSocket& socket): | ||||
| 	HTTPClientSession(socket) | ||||
| { | ||||
| 	setPort(Utility::HTTPS_PORT); | ||||
| } | ||||
|  | ||||
|  | ||||
| HTTPSClientSession::HTTPSClientSession(const std::string& host, Poco::UInt16 port): | ||||
| 	HTTPClientSession(SecureStreamSocket()) | ||||
| { | ||||
| 	setHost(host); | ||||
| 	setPort(port); | ||||
| } | ||||
|  | ||||
|  | ||||
| HTTPSClientSession::~HTTPSClientSession() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| std::string HTTPSClientSession::getHostInfo() const | ||||
| { | ||||
| 	std::string result("https://"); | ||||
| 	result.append(getHost()); | ||||
| 	result.append(":"); | ||||
| 	result.append(NumberFormatter::format(getPort())); | ||||
| 	return result; | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSClientSession::connect(const SocketAddress& address) | ||||
| { | ||||
| 	if (!getProxyHost().empty()) | ||||
| 	{ | ||||
| 		StreamSocket& aSock = socket(); | ||||
| 		SecureStreamSocketImpl* pImplSock = dynamic_cast<SecureStreamSocketImpl*>(aSock.impl()); | ||||
| 		poco_check_ptr (pImplSock); | ||||
| 		pImplSock->setTunnelEndPoint(getHost(), getPort()); | ||||
| 	} | ||||
| 	HTTPSession::connect(address); | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|   | ||||
| @@ -1,77 +1,77 @@ | ||||
| // | ||||
| // HTTPSSessionInstantiator.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/HTTPSSessionInstantiator.cpp#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: HTTPSClient | ||||
| // Module:  HTTPSSessionInstantiator | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/HTTPSSessionInstantiator.h" | ||||
| #include "Poco/Net/HTTPSessionFactory.h" | ||||
| #include "Poco/Net/HTTPSClientSession.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| HTTPSSessionInstantiator::HTTPSSessionInstantiator() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| HTTPSSessionInstantiator::~HTTPSSessionInstantiator() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| HTTPClientSession* HTTPSSessionInstantiator::createClientSession(const Poco::URI& uri) | ||||
| { | ||||
| 	poco_assert (uri.getScheme() == "https"); | ||||
| 	HTTPSClientSession* pSession = new HTTPSClientSession(uri.getHost(), uri.getPort()); | ||||
| 	pSession->setProxy(proxyHost(), proxyPort()); | ||||
| 	return pSession; | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSSessionInstantiator::registerInstantiator() | ||||
| { | ||||
| 	HTTPSessionFactory::defaultFactory().registerProtocol("https", new HTTPSSessionInstantiator); | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSSessionInstantiator::unregisterInstantiator() | ||||
| { | ||||
| 	HTTPSessionFactory::defaultFactory().unregisterProtocol("https"); | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
| // | ||||
| // HTTPSSessionInstantiator.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/HTTPSSessionInstantiator.cpp#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: HTTPSClient | ||||
| // Module:  HTTPSSessionInstantiator | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/HTTPSSessionInstantiator.h" | ||||
| #include "Poco/Net/HTTPSessionFactory.h" | ||||
| #include "Poco/Net/HTTPSClientSession.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| HTTPSSessionInstantiator::HTTPSSessionInstantiator() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| HTTPSSessionInstantiator::~HTTPSSessionInstantiator() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| HTTPClientSession* HTTPSSessionInstantiator::createClientSession(const Poco::URI& uri) | ||||
| { | ||||
| 	poco_assert (uri.getScheme() == "https"); | ||||
| 	HTTPSClientSession* pSession = new HTTPSClientSession(uri.getHost(), uri.getPort()); | ||||
| 	pSession->setProxy(proxyHost(), proxyPort()); | ||||
| 	return pSession; | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSSessionInstantiator::registerInstantiator() | ||||
| { | ||||
| 	HTTPSessionFactory::defaultFactory().registerProtocol("https", new HTTPSSessionInstantiator); | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSSessionInstantiator::unregisterInstantiator() | ||||
| { | ||||
| 	HTTPSessionFactory::defaultFactory().unregisterProtocol("https"); | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|   | ||||
| @@ -1,128 +1,128 @@ | ||||
| // | ||||
| // HTTPSStreamFactory.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/HTTPSStreamFactory.cpp#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: HTTPSClient | ||||
| // Module:  HTTPSStreamFactory | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/HTTPSStreamFactory.h" | ||||
| #include "Poco/Net/HTTPSClientSession.h" | ||||
| #include "Poco/Net/HTTPIOStream.h" | ||||
| #include "Poco/Net/HTTPRequest.h" | ||||
| #include "Poco/Net/HTTPResponse.h" | ||||
| #include "Poco/Net/NetException.h" | ||||
| #include "Poco/URI.h" | ||||
| #include "Poco/URIStreamOpener.h" | ||||
| #include "Poco/UnbufferedStreamBuf.h" | ||||
|  | ||||
|  | ||||
| using Poco::URIStreamFactory; | ||||
| using Poco::URI; | ||||
| using Poco::URIStreamOpener; | ||||
| using Poco::UnbufferedStreamBuf; | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| HTTPSStreamFactory::HTTPSStreamFactory(): | ||||
| 	_proxyPort(HTTPSession::HTTP_PORT) | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| HTTPSStreamFactory::HTTPSStreamFactory(const std::string& proxyHost, Poco::UInt16 proxyPort): | ||||
| 	_proxyHost(proxyHost), | ||||
| 	_proxyPort(proxyPort) | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| HTTPSStreamFactory::~HTTPSStreamFactory() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| std::istream* HTTPSStreamFactory::open(const URI& uri) | ||||
| { | ||||
| 	poco_assert (uri.getScheme() == "https"); | ||||
|  | ||||
| 	URI resolvedURI(uri); | ||||
| 	HTTPClientSession* pSession = 0; | ||||
| 	try | ||||
| 	{ | ||||
| 		int redirects = 0; | ||||
| 		do | ||||
| 		{ | ||||
| 			pSession = new HTTPSClientSession(resolvedURI.getHost(), resolvedURI.getPort()); | ||||
| 			pSession->setProxy(_proxyHost, _proxyPort); | ||||
| 			std::string path = resolvedURI.getPathAndQuery(); | ||||
| 			if (path.empty()) path = "/"; | ||||
| 			HTTPRequest req(HTTPRequest::HTTP_GET, path, HTTPMessage::HTTP_1_1); | ||||
| 			pSession->sendRequest(req); | ||||
| 			HTTPResponse res; | ||||
| 			std::istream& rs = pSession->receiveResponse(res); | ||||
| 			bool moved = (res.getStatus() == HTTPResponse::HTTP_MOVED_PERMANENTLY ||  | ||||
| 			              res.getStatus() == HTTPResponse::HTTP_FOUND ||  | ||||
| 			              res.getStatus() == HTTPResponse::HTTP_SEE_OTHER); | ||||
| 			if (moved) | ||||
| 			{ | ||||
| 				resolvedURI.resolve(res.get("Location")); | ||||
| 				delete pSession; | ||||
| 				++redirects; | ||||
| 			} | ||||
| 			else if (res.getStatus() == HTTPResponse::HTTP_OK) | ||||
| 			{ | ||||
| 				return new HTTPResponseStream(rs, pSession); | ||||
| 			} | ||||
| 			else throw HTTPException(res.getReason(), uri.toString()); | ||||
| 		} | ||||
| 		while (redirects < MAX_REDIRECTS); | ||||
| 		throw HTTPException("Too many redirects", uri.toString()); | ||||
| 	} | ||||
| 	catch (...) | ||||
| 	{ | ||||
| 		delete pSession; | ||||
| 		throw; | ||||
| 	} | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSStreamFactory::registerFactory() | ||||
| { | ||||
| 	std::string https("https"); | ||||
| 	URIStreamOpener::defaultOpener().registerStreamFactory(https, new HTTPSStreamFactory); | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
| // | ||||
| // HTTPSStreamFactory.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/HTTPSStreamFactory.cpp#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: HTTPSClient | ||||
| // Module:  HTTPSStreamFactory | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/HTTPSStreamFactory.h" | ||||
| #include "Poco/Net/HTTPSClientSession.h" | ||||
| #include "Poco/Net/HTTPIOStream.h" | ||||
| #include "Poco/Net/HTTPRequest.h" | ||||
| #include "Poco/Net/HTTPResponse.h" | ||||
| #include "Poco/Net/NetException.h" | ||||
| #include "Poco/URI.h" | ||||
| #include "Poco/URIStreamOpener.h" | ||||
| #include "Poco/UnbufferedStreamBuf.h" | ||||
|  | ||||
|  | ||||
| using Poco::URIStreamFactory; | ||||
| using Poco::URI; | ||||
| using Poco::URIStreamOpener; | ||||
| using Poco::UnbufferedStreamBuf; | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| HTTPSStreamFactory::HTTPSStreamFactory(): | ||||
| 	_proxyPort(HTTPSession::HTTP_PORT) | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| HTTPSStreamFactory::HTTPSStreamFactory(const std::string& proxyHost, Poco::UInt16 proxyPort): | ||||
| 	_proxyHost(proxyHost), | ||||
| 	_proxyPort(proxyPort) | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| HTTPSStreamFactory::~HTTPSStreamFactory() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| std::istream* HTTPSStreamFactory::open(const URI& uri) | ||||
| { | ||||
| 	poco_assert (uri.getScheme() == "https"); | ||||
|  | ||||
| 	URI resolvedURI(uri); | ||||
| 	HTTPClientSession* pSession = 0; | ||||
| 	try | ||||
| 	{ | ||||
| 		int redirects = 0; | ||||
| 		do | ||||
| 		{ | ||||
| 			pSession = new HTTPSClientSession(resolvedURI.getHost(), resolvedURI.getPort()); | ||||
| 			pSession->setProxy(_proxyHost, _proxyPort); | ||||
| 			std::string path = resolvedURI.getPathAndQuery(); | ||||
| 			if (path.empty()) path = "/"; | ||||
| 			HTTPRequest req(HTTPRequest::HTTP_GET, path, HTTPMessage::HTTP_1_1); | ||||
| 			pSession->sendRequest(req); | ||||
| 			HTTPResponse res; | ||||
| 			std::istream& rs = pSession->receiveResponse(res); | ||||
| 			bool moved = (res.getStatus() == HTTPResponse::HTTP_MOVED_PERMANENTLY ||  | ||||
| 			              res.getStatus() == HTTPResponse::HTTP_FOUND ||  | ||||
| 			              res.getStatus() == HTTPResponse::HTTP_SEE_OTHER); | ||||
| 			if (moved) | ||||
| 			{ | ||||
| 				resolvedURI.resolve(res.get("Location")); | ||||
| 				delete pSession; | ||||
| 				++redirects; | ||||
| 			} | ||||
| 			else if (res.getStatus() == HTTPResponse::HTTP_OK) | ||||
| 			{ | ||||
| 				return new HTTPResponseStream(rs, pSession); | ||||
| 			} | ||||
| 			else throw HTTPException(res.getReason(), uri.toString()); | ||||
| 		} | ||||
| 		while (redirects < MAX_REDIRECTS); | ||||
| 		throw HTTPException("Too many redirects", uri.toString()); | ||||
| 	} | ||||
| 	catch (...) | ||||
| 	{ | ||||
| 		delete pSession; | ||||
| 		throw; | ||||
| 	} | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSStreamFactory::registerFactory() | ||||
| { | ||||
| 	std::string https("https"); | ||||
| 	URIStreamOpener::defaultOpener().registerStreamFactory(https, new HTTPSStreamFactory); | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|   | ||||
| @@ -1,67 +1,67 @@ | ||||
| // | ||||
| // InvalidCertificateHandler.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/InvalidCertificateHandler.cpp#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  InvalidCertificateHandler | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/InvalidCertificateHandler.h" | ||||
| #include "Poco/Net/SSLManager.h" | ||||
| #include "Poco/Delegate.h" | ||||
|  | ||||
|  | ||||
| using Poco::Delegate; | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| InvalidCertificateHandler::InvalidCertificateHandler(bool handleErrorsOnServerSide): _handleErrorsOnServerSide(handleErrorsOnServerSide) | ||||
| { | ||||
| 	if (_handleErrorsOnServerSide) | ||||
| 		SSLManager::instance().ServerVerificationError += Delegate<InvalidCertificateHandler, VerificationErrorArgs>(this, &InvalidCertificateHandler::onInvalidCertificate); | ||||
| 	else | ||||
| 		SSLManager::instance().ClientVerificationError += Delegate<InvalidCertificateHandler, VerificationErrorArgs>(this, &InvalidCertificateHandler::onInvalidCertificate); | ||||
| } | ||||
|  | ||||
|  | ||||
| InvalidCertificateHandler::~InvalidCertificateHandler() | ||||
| { | ||||
| 	if (_handleErrorsOnServerSide) | ||||
| 		SSLManager::instance().ServerVerificationError -= Delegate<InvalidCertificateHandler, VerificationErrorArgs>(this, &InvalidCertificateHandler::onInvalidCertificate); | ||||
| 	else | ||||
| 		SSLManager::instance().ClientVerificationError -= Delegate<InvalidCertificateHandler, VerificationErrorArgs>(this, &InvalidCertificateHandler::onInvalidCertificate); | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
| // | ||||
| // InvalidCertificateHandler.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/InvalidCertificateHandler.cpp#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  InvalidCertificateHandler | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/InvalidCertificateHandler.h" | ||||
| #include "Poco/Net/SSLManager.h" | ||||
| #include "Poco/Delegate.h" | ||||
|  | ||||
|  | ||||
| using Poco::Delegate; | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| InvalidCertificateHandler::InvalidCertificateHandler(bool handleErrorsOnServerSide): _handleErrorsOnServerSide(handleErrorsOnServerSide) | ||||
| { | ||||
| 	if (_handleErrorsOnServerSide) | ||||
| 		SSLManager::instance().ServerVerificationError += Delegate<InvalidCertificateHandler, VerificationErrorArgs>(this, &InvalidCertificateHandler::onInvalidCertificate); | ||||
| 	else | ||||
| 		SSLManager::instance().ClientVerificationError += Delegate<InvalidCertificateHandler, VerificationErrorArgs>(this, &InvalidCertificateHandler::onInvalidCertificate); | ||||
| } | ||||
|  | ||||
|  | ||||
| InvalidCertificateHandler::~InvalidCertificateHandler() | ||||
| { | ||||
| 	if (_handleErrorsOnServerSide) | ||||
| 		SSLManager::instance().ServerVerificationError -= Delegate<InvalidCertificateHandler, VerificationErrorArgs>(this, &InvalidCertificateHandler::onInvalidCertificate); | ||||
| 	else | ||||
| 		SSLManager::instance().ClientVerificationError -= Delegate<InvalidCertificateHandler, VerificationErrorArgs>(this, &InvalidCertificateHandler::onInvalidCertificate); | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|   | ||||
| @@ -1,62 +1,62 @@ | ||||
| // | ||||
| // KeyConsoleHandler.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/KeyConsoleHandler.cpp#2 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  KeyConsoleHandler | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/KeyConsoleHandler.h" | ||||
| #include <iostream> | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| KeyConsoleHandler::KeyConsoleHandler(bool server):PrivateKeyPassphraseHandler(server) | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| KeyConsoleHandler::~KeyConsoleHandler() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| void KeyConsoleHandler::onPrivateKeyRequested(const void* pSender, std::string& privateKey) | ||||
| { | ||||
| 	std::cout << "Please enter the pass-phrase for the private key: "; | ||||
| 	std::cin >> privateKey; | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
| // | ||||
| // KeyConsoleHandler.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/KeyConsoleHandler.cpp#2 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  KeyConsoleHandler | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/KeyConsoleHandler.h" | ||||
| #include <iostream> | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| KeyConsoleHandler::KeyConsoleHandler(bool server):PrivateKeyPassphraseHandler(server) | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| KeyConsoleHandler::~KeyConsoleHandler() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| void KeyConsoleHandler::onPrivateKeyRequested(const void* pSender, std::string& privateKey) | ||||
| { | ||||
| 	std::cout << "Please enter the pass-phrase for the private key: "; | ||||
| 	std::cin >> privateKey; | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|   | ||||
| @@ -1,75 +1,75 @@ | ||||
| // | ||||
| // KeyFileHandler.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/KeyFileHandler.cpp#2 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  KeyFileHandler | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/KeyFileHandler.h" | ||||
| #include "Poco/Net/SSLManager.h" | ||||
| #include "Poco/File.h" | ||||
| #include "Poco/Util/LayeredConfiguration.h" | ||||
| #include "Poco/Util/Application.h" | ||||
| #include "Poco/Util/OptionException.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| const std::string KeyFileHandler::CFG_PRIV_KEY_FILE("privateKeyPassphraseHandler.options.password"); | ||||
|  | ||||
|  | ||||
| KeyFileHandler::KeyFileHandler(bool server):PrivateKeyPassphraseHandler(server) | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| KeyFileHandler::~KeyFileHandler() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| void KeyFileHandler::onPrivateKeyRequested(const void* pSender, std::string& privateKey) | ||||
| { | ||||
| 	Poco::Util::LayeredConfiguration& config = Poco::Util::Application::instance().config(); | ||||
| 	std::string prefix = serverSide() ? SSLManager::CFG_SERVER_PREFIX : SSLManager::CFG_CLIENT_PREFIX; | ||||
| 	if (!config.hasProperty(prefix+CFG_PRIV_KEY_FILE)) | ||||
| 	{ | ||||
| 		throw Poco::Util::EmptyOptionException(std::string("Missing Configuration Entry: ") + prefix+CFG_PRIV_KEY_FILE); | ||||
| 	} | ||||
|  | ||||
| 	privateKey = config.getString(prefix+CFG_PRIV_KEY_FILE); | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
| // | ||||
| // KeyFileHandler.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/KeyFileHandler.cpp#2 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  KeyFileHandler | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/KeyFileHandler.h" | ||||
| #include "Poco/Net/SSLManager.h" | ||||
| #include "Poco/File.h" | ||||
| #include "Poco/Util/LayeredConfiguration.h" | ||||
| #include "Poco/Util/Application.h" | ||||
| #include "Poco/Util/OptionException.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| const std::string KeyFileHandler::CFG_PRIV_KEY_FILE("privateKeyPassphraseHandler.options.password"); | ||||
|  | ||||
|  | ||||
| KeyFileHandler::KeyFileHandler(bool server):PrivateKeyPassphraseHandler(server) | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| KeyFileHandler::~KeyFileHandler() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| void KeyFileHandler::onPrivateKeyRequested(const void* pSender, std::string& privateKey) | ||||
| { | ||||
| 	Poco::Util::LayeredConfiguration& config = Poco::Util::Application::instance().config(); | ||||
| 	std::string prefix = serverSide() ? SSLManager::CFG_SERVER_PREFIX : SSLManager::CFG_CLIENT_PREFIX; | ||||
| 	if (!config.hasProperty(prefix+CFG_PRIV_KEY_FILE)) | ||||
| 	{ | ||||
| 		throw Poco::Util::EmptyOptionException(std::string("Missing Configuration Entry: ") + prefix+CFG_PRIV_KEY_FILE); | ||||
| 	} | ||||
|  | ||||
| 	privateKey = config.getString(prefix+CFG_PRIV_KEY_FILE); | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|   | ||||
| @@ -1,66 +1,66 @@ | ||||
| // | ||||
| // PrivateKeyFactory.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/PrivateKeyFactory.cpp#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  PrivateKeyFactory | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/PrivateKeyFactory.h" | ||||
| #include "Poco/Net/SSLManager.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| PrivateKeyFactory::PrivateKeyFactory() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| PrivateKeyFactory::~PrivateKeyFactory() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| PrivateKeyFactoryRegistrar::PrivateKeyFactoryRegistrar(const std::string& name, PrivateKeyFactory* pFactory) | ||||
| { | ||||
| 	SSLManager::instance().privateKeyFactoryMgr().setFactory(name, pFactory); | ||||
| } | ||||
|  | ||||
|  | ||||
| PrivateKeyFactoryRegistrar::~PrivateKeyFactoryRegistrar() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
| // | ||||
| // PrivateKeyFactory.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/PrivateKeyFactory.cpp#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  PrivateKeyFactory | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/PrivateKeyFactory.h" | ||||
| #include "Poco/Net/SSLManager.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| PrivateKeyFactory::PrivateKeyFactory() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| PrivateKeyFactory::~PrivateKeyFactory() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| PrivateKeyFactoryRegistrar::PrivateKeyFactoryRegistrar(const std::string& name, PrivateKeyFactory* pFactory) | ||||
| { | ||||
| 	SSLManager::instance().privateKeyFactoryMgr().setFactory(name, pFactory); | ||||
| } | ||||
|  | ||||
|  | ||||
| PrivateKeyFactoryRegistrar::~PrivateKeyFactoryRegistrar() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|   | ||||
| @@ -1,89 +1,89 @@ | ||||
| // | ||||
| // PrivateKeyFactoryMgr.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/PrivateKeyFactoryMgr.cpp#2 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  PrivateKeyFactoryMgr | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/PrivateKeyFactoryMgr.h" | ||||
| #include "Poco/Net/KeyFileHandler.h" | ||||
| #include "Poco/Net/KeyConsoleHandler.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| PrivateKeyFactoryMgr::PrivateKeyFactoryMgr() | ||||
| { | ||||
| 	setFactory("KeyFileHandler", new PrivateKeyFactoryImpl<KeyFileHandler>()); | ||||
| 	setFactory("KeyConsoleHandler", new PrivateKeyFactoryImpl<KeyConsoleHandler>()); | ||||
| } | ||||
|  | ||||
|  | ||||
| PrivateKeyFactoryMgr::~PrivateKeyFactoryMgr() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| void PrivateKeyFactoryMgr::setFactory(const std::string& name, PrivateKeyFactory* pFactory) | ||||
| { | ||||
| 	bool success = _factories.insert(make_pair(name, Poco::SharedPtr<PrivateKeyFactory>(pFactory))).second; | ||||
| 	if (!success) | ||||
| 		delete pFactory; | ||||
| 	poco_assert(success); | ||||
| } | ||||
| 		 | ||||
|  | ||||
| bool PrivateKeyFactoryMgr::hasFactory(const std::string& name) const | ||||
| { | ||||
| 	return _factories.find(name) != _factories.end(); | ||||
| } | ||||
| 		 | ||||
| 	 | ||||
| const PrivateKeyFactory* PrivateKeyFactoryMgr::getFactory(const std::string& name) const | ||||
| { | ||||
| 	FactoriesMap::const_iterator it = _factories.find(name); | ||||
| 	if (it != _factories.end()) | ||||
| 		return it->second; | ||||
| 	else | ||||
| 		return 0; | ||||
| } | ||||
|  | ||||
|  | ||||
| void PrivateKeyFactoryMgr::removeFactory(const std::string& name) | ||||
| { | ||||
| 	_factories.erase(name); | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
| // | ||||
| // PrivateKeyFactoryMgr.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/PrivateKeyFactoryMgr.cpp#2 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  PrivateKeyFactoryMgr | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/PrivateKeyFactoryMgr.h" | ||||
| #include "Poco/Net/KeyFileHandler.h" | ||||
| #include "Poco/Net/KeyConsoleHandler.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| PrivateKeyFactoryMgr::PrivateKeyFactoryMgr() | ||||
| { | ||||
| 	setFactory("KeyFileHandler", new PrivateKeyFactoryImpl<KeyFileHandler>()); | ||||
| 	setFactory("KeyConsoleHandler", new PrivateKeyFactoryImpl<KeyConsoleHandler>()); | ||||
| } | ||||
|  | ||||
|  | ||||
| PrivateKeyFactoryMgr::~PrivateKeyFactoryMgr() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| void PrivateKeyFactoryMgr::setFactory(const std::string& name, PrivateKeyFactory* pFactory) | ||||
| { | ||||
| 	bool success = _factories.insert(make_pair(name, Poco::SharedPtr<PrivateKeyFactory>(pFactory))).second; | ||||
| 	if (!success) | ||||
| 		delete pFactory; | ||||
| 	poco_assert(success); | ||||
| } | ||||
| 		 | ||||
|  | ||||
| bool PrivateKeyFactoryMgr::hasFactory(const std::string& name) const | ||||
| { | ||||
| 	return _factories.find(name) != _factories.end(); | ||||
| } | ||||
| 		 | ||||
| 	 | ||||
| const PrivateKeyFactory* PrivateKeyFactoryMgr::getFactory(const std::string& name) const | ||||
| { | ||||
| 	FactoriesMap::const_iterator it = _factories.find(name); | ||||
| 	if (it != _factories.end()) | ||||
| 		return it->second; | ||||
| 	else | ||||
| 		return 0; | ||||
| } | ||||
|  | ||||
|  | ||||
| void PrivateKeyFactoryMgr::removeFactory(const std::string& name) | ||||
| { | ||||
| 	_factories.erase(name); | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|   | ||||
| @@ -1,61 +1,61 @@ | ||||
| // | ||||
| // PrivateKeyPassphraseHandler.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/PrivateKeyPassphraseHandler.cpp#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  PrivateKeyPassphraseHandler | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/PrivateKeyPassphraseHandler.h" | ||||
| #include "Poco/Net/SSLManager.h" | ||||
| #include "Poco/Delegate.h" | ||||
|  | ||||
|  | ||||
| using Poco::Delegate; | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| PrivateKeyPassphraseHandler::PrivateKeyPassphraseHandler(bool onServerSide): _serverSide(onServerSide) | ||||
| { | ||||
| 	SSLManager::instance().PrivateKeyPassPhrase += Delegate<PrivateKeyPassphraseHandler, std::string>(this, &PrivateKeyPassphraseHandler::onPrivateKeyRequested); | ||||
| } | ||||
|  | ||||
|  | ||||
| PrivateKeyPassphraseHandler::~PrivateKeyPassphraseHandler() | ||||
| { | ||||
| 	SSLManager::instance().PrivateKeyPassPhrase -= Delegate<PrivateKeyPassphraseHandler, std::string>(this, &PrivateKeyPassphraseHandler::onPrivateKeyRequested); | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
| // | ||||
| // PrivateKeyPassphraseHandler.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/PrivateKeyPassphraseHandler.cpp#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  PrivateKeyPassphraseHandler | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/PrivateKeyPassphraseHandler.h" | ||||
| #include "Poco/Net/SSLManager.h" | ||||
| #include "Poco/Delegate.h" | ||||
|  | ||||
|  | ||||
| using Poco::Delegate; | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| PrivateKeyPassphraseHandler::PrivateKeyPassphraseHandler(bool onServerSide): _serverSide(onServerSide) | ||||
| { | ||||
| 	SSLManager::instance().PrivateKeyPassPhrase += Delegate<PrivateKeyPassphraseHandler, std::string>(this, &PrivateKeyPassphraseHandler::onPrivateKeyRequested); | ||||
| } | ||||
|  | ||||
|  | ||||
| PrivateKeyPassphraseHandler::~PrivateKeyPassphraseHandler() | ||||
| { | ||||
| 	SSLManager::instance().PrivateKeyPassPhrase -= Delegate<PrivateKeyPassphraseHandler, std::string>(this, &PrivateKeyPassphraseHandler::onPrivateKeyRequested); | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|   | ||||
| @@ -1,50 +1,50 @@ | ||||
| // | ||||
| // SSLException.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/SSLException.cpp#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  SSLException | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/SSLException.h" | ||||
| #include <typeinfo> | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| POCO_IMPLEMENT_EXCEPTION(SSLException, NetException, "SSLException") | ||||
| POCO_IMPLEMENT_EXCEPTION(SSLContextException, SSLException, "SSLContextException") | ||||
| POCO_IMPLEMENT_EXCEPTION(InvalidCertificateException, SSLException, "InvalidCertificateException") | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
| // | ||||
| // SSLException.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/SSLException.cpp#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  SSLException | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/SSLException.h" | ||||
| #include <typeinfo> | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| POCO_IMPLEMENT_EXCEPTION(SSLException, NetException, "SSLException") | ||||
| POCO_IMPLEMENT_EXCEPTION(SSLContextException, SSLException, "SSLContextException") | ||||
| POCO_IMPLEMENT_EXCEPTION(InvalidCertificateException, SSLException, "InvalidCertificateException") | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|   | ||||
| @@ -1,148 +1,148 @@ | ||||
| // | ||||
| // SSLInitializer.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/SSLInitializer.cpp#2 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  SSLInitializer | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/SSLInitializer.h" | ||||
| #include "Poco/Net/KeyConsoleHandler.h" | ||||
| #include "Poco/Net/KeyFileHandler.h" | ||||
| #include "Poco/RandomStream.h" | ||||
| #include "Poco/Thread.h" | ||||
| #include <openssl/ssl.h> | ||||
| #include <openssl/rand.h> | ||||
| #include <openssl/crypto.h> | ||||
|  | ||||
|  | ||||
| using Poco::RandomInputStream; | ||||
| using Poco::Thread; | ||||
| using Poco::FastMutex; | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| FastMutex* SSLInitializer::_mutexes(0); | ||||
| int SSLInitializer::_rc(0); | ||||
|  | ||||
|  | ||||
| static SSLInitializer initializer; | ||||
|  | ||||
|  | ||||
| SSLInitializer::SSLInitializer() | ||||
| { | ||||
| 	initialize(); | ||||
| } | ||||
|  | ||||
|  | ||||
| SSLInitializer::~SSLInitializer() | ||||
| { | ||||
| 	uninitialize(); | ||||
| } | ||||
|  | ||||
|  | ||||
| void SSLInitializer::initialize() | ||||
| { | ||||
| 	if (++_rc == 1) | ||||
| 	{ | ||||
| 		poco_assert (1 == SSL_library_init()); // always returns 1 | ||||
| 		SSL_load_error_strings(); | ||||
| 		 | ||||
| 		char seed[SEEDSIZE]; | ||||
| 		RandomInputStream rnd; | ||||
| 		rnd.read(seed, sizeof(seed)); | ||||
| 		RAND_seed(seed, SEEDSIZE); | ||||
| 		 | ||||
| 		int nMutexes = CRYPTO_num_locks(); | ||||
| 		_mutexes = new FastMutex[nMutexes]; | ||||
| 		CRYPTO_set_locking_callback(&SSLInitializer::lock); | ||||
| #ifndef POCO_OS_FAMILY_WINDOWS // SF# 1828231: random unhandled exceptions when linking with ssl | ||||
| 		CRYPTO_set_id_callback(&SSLInitializer::id); | ||||
| #endif | ||||
| 		CRYPTO_set_dynlock_create_callback(&SSLInitializer::dynlockCreate); | ||||
| 		CRYPTO_set_dynlock_lock_callback(&SSLInitializer::dynlock); | ||||
| 		CRYPTO_set_dynlock_destroy_callback(&SSLInitializer::dynlockDestroy); | ||||
| 	} | ||||
| } | ||||
|  | ||||
|  | ||||
| void SSLInitializer::uninitialize() | ||||
| { | ||||
| 	if (--_rc == 0) | ||||
| 	{ | ||||
| 		delete [] _mutexes; | ||||
| 	} | ||||
| } | ||||
|  | ||||
|  | ||||
| void SSLInitializer::lock(int mode, int n, const char* file, int line) | ||||
| { | ||||
| 	if (mode & CRYPTO_LOCK) | ||||
| 		_mutexes[n].lock(); | ||||
| 	else | ||||
| 		_mutexes[n].unlock(); | ||||
| } | ||||
|  | ||||
|  | ||||
| unsigned long SSLInitializer::id() | ||||
| { | ||||
| 	Thread* pThread = Thread::current(); | ||||
| 	return pThread ? pThread->id() : 0; | ||||
| } | ||||
|  | ||||
|  | ||||
| struct CRYPTO_dynlock_value* SSLInitializer::dynlockCreate(const char* file, int line) | ||||
| { | ||||
| 	return new CRYPTO_dynlock_value; | ||||
| } | ||||
|  | ||||
|  | ||||
| void SSLInitializer::dynlock(int mode, struct CRYPTO_dynlock_value* lock, const char* file, int line) | ||||
| { | ||||
| 	poco_check_ptr (lock); | ||||
|  | ||||
| 	if (mode & CRYPTO_LOCK) | ||||
| 		lock->_mutex.lock(); | ||||
| 	else | ||||
| 		lock->_mutex.unlock(); | ||||
| } | ||||
|  | ||||
|  | ||||
| void SSLInitializer::dynlockDestroy(struct CRYPTO_dynlock_value* lock, const char* file, int line) | ||||
| { | ||||
| 	delete lock; | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
| // | ||||
| // SSLInitializer.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/SSLInitializer.cpp#2 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  SSLInitializer | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/SSLInitializer.h" | ||||
| #include "Poco/Net/KeyConsoleHandler.h" | ||||
| #include "Poco/Net/KeyFileHandler.h" | ||||
| #include "Poco/RandomStream.h" | ||||
| #include "Poco/Thread.h" | ||||
| #include <openssl/ssl.h> | ||||
| #include <openssl/rand.h> | ||||
| #include <openssl/crypto.h> | ||||
|  | ||||
|  | ||||
| using Poco::RandomInputStream; | ||||
| using Poco::Thread; | ||||
| using Poco::FastMutex; | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| FastMutex* SSLInitializer::_mutexes(0); | ||||
| int SSLInitializer::_rc(0); | ||||
|  | ||||
|  | ||||
| static SSLInitializer initializer; | ||||
|  | ||||
|  | ||||
| SSLInitializer::SSLInitializer() | ||||
| { | ||||
| 	initialize(); | ||||
| } | ||||
|  | ||||
|  | ||||
| SSLInitializer::~SSLInitializer() | ||||
| { | ||||
| 	uninitialize(); | ||||
| } | ||||
|  | ||||
|  | ||||
| void SSLInitializer::initialize() | ||||
| { | ||||
| 	if (++_rc == 1) | ||||
| 	{ | ||||
| 		poco_assert (1 == SSL_library_init()); // always returns 1 | ||||
| 		SSL_load_error_strings(); | ||||
| 		 | ||||
| 		char seed[SEEDSIZE]; | ||||
| 		RandomInputStream rnd; | ||||
| 		rnd.read(seed, sizeof(seed)); | ||||
| 		RAND_seed(seed, SEEDSIZE); | ||||
| 		 | ||||
| 		int nMutexes = CRYPTO_num_locks(); | ||||
| 		_mutexes = new FastMutex[nMutexes]; | ||||
| 		CRYPTO_set_locking_callback(&SSLInitializer::lock); | ||||
| #ifndef POCO_OS_FAMILY_WINDOWS // SF# 1828231: random unhandled exceptions when linking with ssl | ||||
| 		CRYPTO_set_id_callback(&SSLInitializer::id); | ||||
| #endif | ||||
| 		CRYPTO_set_dynlock_create_callback(&SSLInitializer::dynlockCreate); | ||||
| 		CRYPTO_set_dynlock_lock_callback(&SSLInitializer::dynlock); | ||||
| 		CRYPTO_set_dynlock_destroy_callback(&SSLInitializer::dynlockDestroy); | ||||
| 	} | ||||
| } | ||||
|  | ||||
|  | ||||
| void SSLInitializer::uninitialize() | ||||
| { | ||||
| 	if (--_rc == 0) | ||||
| 	{ | ||||
| 		delete [] _mutexes; | ||||
| 	} | ||||
| } | ||||
|  | ||||
|  | ||||
| void SSLInitializer::lock(int mode, int n, const char* file, int line) | ||||
| { | ||||
| 	if (mode & CRYPTO_LOCK) | ||||
| 		_mutexes[n].lock(); | ||||
| 	else | ||||
| 		_mutexes[n].unlock(); | ||||
| } | ||||
|  | ||||
|  | ||||
| unsigned long SSLInitializer::id() | ||||
| { | ||||
| 	Thread* pThread = Thread::current(); | ||||
| 	return pThread ? pThread->id() : 0; | ||||
| } | ||||
|  | ||||
|  | ||||
| struct CRYPTO_dynlock_value* SSLInitializer::dynlockCreate(const char* file, int line) | ||||
| { | ||||
| 	return new CRYPTO_dynlock_value; | ||||
| } | ||||
|  | ||||
|  | ||||
| void SSLInitializer::dynlock(int mode, struct CRYPTO_dynlock_value* lock, const char* file, int line) | ||||
| { | ||||
| 	poco_check_ptr (lock); | ||||
|  | ||||
| 	if (mode & CRYPTO_LOCK) | ||||
| 		lock->_mutex.lock(); | ||||
| 	else | ||||
| 		lock->_mutex.unlock(); | ||||
| } | ||||
|  | ||||
|  | ||||
| void SSLInitializer::dynlockDestroy(struct CRYPTO_dynlock_value* lock, const char* file, int line) | ||||
| { | ||||
| 	delete lock; | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|   | ||||
| @@ -1,305 +1,305 @@ | ||||
| // | ||||
| // SSLManager.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/SSLManager.cpp#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  SSLManager | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/SSLManager.h" | ||||
| #include "Poco/Net/Context.h" | ||||
| #include "Poco/Net/Utility.h" | ||||
| #include "Poco/Net/PrivateKeyPassphraseHandler.h" | ||||
| #include "Poco/Net/SSLInitializer.h" | ||||
| #include "Poco/SingletonHolder.h" | ||||
| #include "Poco/Delegate.h" | ||||
| #include "Poco/Util/Application.h" | ||||
| #include "Poco/Util/OptionException.h" | ||||
| #include "Poco/Util/LayeredConfiguration.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| const std::string SSLManager::CFG_PRIV_KEY_FILE("privateKeyFile"); | ||||
| const std::string SSLManager::CFG_CA_LOCATION("caConfig"); | ||||
| const std::string SSLManager::CFG_VER_MODE("verificationMode"); | ||||
| const Context::VerificationMode SSLManager::VAL_VER_MODE(Context::VERIFY_STRICT); | ||||
| const std::string SSLManager::CFG_VER_DEPTH("verificationDepth"); | ||||
| const int         SSLManager::VAL_VER_DEPTH(9); | ||||
| const std::string SSLManager::CFG_ENABLE_DEFAULT_CA("loadDefaultCAFile"); | ||||
| const bool        SSLManager::VAL_ENABLE_DEFAULT_CA(false); | ||||
| const std::string SSLManager::CFG_CYPHER_LIST("cypherList"); | ||||
| const std::string SSLManager::VAL_CYPHER_LIST("ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH"); | ||||
| const std::string SSLManager::CFG_DELEGATE_HANDLER("privateKeyPassphraseHandler.name"); | ||||
| const std::string SSLManager::VAL_DELEGATE_HANDLER("KeyConsoleHandler"); | ||||
| const std::string SSLManager::CFG_CERTIFICATE_HANDLER("invalidCertificateHandler.name"); | ||||
| const std::string SSLManager::VAL_CERTIFICATE_HANDLER("ConsoleCertificateHandler"); | ||||
| const std::string SSLManager::CFG_SERVER_PREFIX("openSSL.server."); | ||||
| const std::string SSLManager::CFG_CLIENT_PREFIX("openSSL.client."); | ||||
|  | ||||
|  | ||||
| SSLManager::SSLManager() | ||||
| { | ||||
| 	SSLInitializer::initialize(); | ||||
| } | ||||
|  | ||||
|  | ||||
| SSLManager::~SSLManager() | ||||
| { | ||||
| 	PrivateKeyPassPhrase.clear(); | ||||
| 	ClientVerificationError.clear(); | ||||
| 	ServerVerificationError.clear(); | ||||
| 	_ptrServerPassPhraseHandler  = 0; | ||||
| 	_ptrServerCertificateHandler = 0; | ||||
| 	_ptrDefaultServerContext     = 0; | ||||
| 	_ptrClientPassPhraseHandler  = 0; | ||||
| 	_ptrClientCertificateHandler = 0; | ||||
| 	_ptrDefaultClientContext     = 0; | ||||
| 	SSLInitializer::uninitialize(); | ||||
| } | ||||
|  | ||||
|  | ||||
| SSLManager& SSLManager::instance() | ||||
| { | ||||
| 	static Poco::SingletonHolder<SSLManager> singleton; | ||||
| 	return *singleton.get(); | ||||
| } | ||||
|  | ||||
|  | ||||
| void SSLManager::initializeServer(PrivateKeyPassphraseHandlerPtr& ptrPassPhraseHandler, InvalidCertificateHandlerPtr& ptrHandler, ContextPtr ptrContext) | ||||
| { | ||||
| 	_ptrServerPassPhraseHandler  = ptrPassPhraseHandler; | ||||
| 	_ptrServerCertificateHandler = ptrHandler; | ||||
| 	_ptrDefaultServerContext     = ptrContext; | ||||
| } | ||||
|  | ||||
|  | ||||
| void SSLManager::initializeClient(PrivateKeyPassphraseHandlerPtr& ptrPassPhraseHandler, InvalidCertificateHandlerPtr& ptrHandler, ContextPtr ptrContext) | ||||
| { | ||||
| 	_ptrClientPassPhraseHandler  = ptrPassPhraseHandler; | ||||
| 	_ptrClientCertificateHandler = ptrHandler; | ||||
| 	_ptrDefaultClientContext     = ptrContext; | ||||
| } | ||||
|  | ||||
|  | ||||
| SSLManager::ContextPtr SSLManager::defaultServerContext() | ||||
| { | ||||
| 	if (!_ptrDefaultServerContext) | ||||
| 		initDefaultContext(true); | ||||
|  | ||||
| 	return _ptrDefaultServerContext; | ||||
| } | ||||
|  | ||||
|  | ||||
| SSLManager::ContextPtr SSLManager::defaultClientContext() | ||||
| { | ||||
| 	if (!_ptrDefaultClientContext) | ||||
| 		initDefaultContext(false); | ||||
|  | ||||
| 	return _ptrDefaultClientContext; | ||||
| } | ||||
|  | ||||
|  | ||||
| SSLManager::PrivateKeyPassphraseHandlerPtr SSLManager::serverPassPhraseHandler() | ||||
| { | ||||
| 	if (!_ptrServerPassPhraseHandler) | ||||
| 		initPassPhraseHandler(true); | ||||
|  | ||||
| 	return _ptrServerPassPhraseHandler; | ||||
| } | ||||
|  | ||||
|  | ||||
| SSLManager::PrivateKeyPassphraseHandlerPtr SSLManager::clientPassPhraseHandler() | ||||
| { | ||||
| 	if (!_ptrClientPassPhraseHandler) | ||||
| 		initPassPhraseHandler(false); | ||||
|  | ||||
| 	return _ptrClientPassPhraseHandler; | ||||
| } | ||||
|  | ||||
|  | ||||
| SSLManager::InvalidCertificateHandlerPtr SSLManager::serverCertificateHandler() | ||||
| { | ||||
| 	if (!_ptrServerCertificateHandler) | ||||
| 		initCertificateHandler(true); | ||||
|  | ||||
| 	return _ptrServerCertificateHandler; | ||||
| } | ||||
|  | ||||
|  | ||||
| SSLManager::InvalidCertificateHandlerPtr SSLManager::clientCertificateHandler() | ||||
| { | ||||
| 	if (!_ptrClientCertificateHandler) | ||||
| 		initCertificateHandler(false); | ||||
|  | ||||
| 	return _ptrClientCertificateHandler; | ||||
| } | ||||
|  | ||||
|  | ||||
| int SSLManager::verifyCallback(bool server, int ok, X509_STORE_CTX* pStore) | ||||
| { | ||||
| 	if (!ok) | ||||
| 	{ | ||||
| 		X509* pCert = X509_STORE_CTX_get_current_cert(pStore); | ||||
| 		X509Certificate x509(pCert); | ||||
| 		int depth = X509_STORE_CTX_get_error_depth(pStore); | ||||
| 		int err = X509_STORE_CTX_get_error(pStore); | ||||
| 		std::string error(X509_verify_cert_error_string(err)); | ||||
| 		VerificationErrorArgs args(x509, depth, err, error); | ||||
| 		if (server) | ||||
| 			SSLManager::instance().ServerVerificationError.notify(&SSLManager::instance(), args); | ||||
| 		else | ||||
| 			SSLManager::instance().ClientVerificationError.notify(&SSLManager::instance(), args); | ||||
| 		ok = args.getIgnoreError() ? 1 : 0; | ||||
| 	} | ||||
|  | ||||
| 	return ok; | ||||
| } | ||||
|  | ||||
|  | ||||
| int SSLManager::privateKeyPasswdCallback(char* pBuf, int size, int flag, void* userData) | ||||
| { | ||||
| 	std::string pwd; | ||||
| 	SSLManager::instance().PrivateKeyPassPhrase.notify(&SSLManager::instance(), pwd); | ||||
|  | ||||
| 	strncpy(pBuf, (char *)(pwd.c_str()), size); | ||||
| 	pBuf[size - 1] = '\0'; | ||||
| 	if (size > pwd.length()) | ||||
| 		size = (int) pwd.length(); | ||||
|  | ||||
| 	return size; | ||||
| } | ||||
|  | ||||
|  | ||||
| void SSLManager::initDefaultContext(bool server) | ||||
| { | ||||
| 	if (server && _ptrDefaultServerContext) return; | ||||
| 	if (!server && _ptrDefaultClientContext) return; | ||||
|  | ||||
| 	initEvents(server); | ||||
|  | ||||
| 	Poco::Util::LayeredConfiguration& config = Poco::Util::Application::instance().config(); | ||||
| 	std::string prefix = server ? CFG_SERVER_PREFIX : CFG_CLIENT_PREFIX; | ||||
| 	if (!config.hasProperty(prefix+CFG_PRIV_KEY_FILE)) | ||||
| 	{ | ||||
| 		throw Poco::Util::EmptyOptionException(std::string("Missing Configuration Entry: ") + prefix+CFG_PRIV_KEY_FILE); | ||||
| 	} | ||||
| 	// mandatory options | ||||
| 	std::string privKeyFile = config.getString(prefix+CFG_PRIV_KEY_FILE); | ||||
| 	std::string caLocation = config.getString(prefix+CFG_CA_LOCATION); | ||||
|  | ||||
| 	// optional options for which we have defaults defined | ||||
| 	Context::VerificationMode verMode = VAL_VER_MODE; | ||||
| 	if (config.hasProperty(prefix+CFG_VER_MODE)) | ||||
| 	{ | ||||
| 		// either: none, relaxed, strict, once | ||||
| 		std::string mode = config.getString(prefix+CFG_VER_MODE); | ||||
| 		verMode = Utility::convertVerificationMode(mode); | ||||
| 	} | ||||
|  | ||||
| 	int verDepth = config.getInt(prefix+CFG_VER_DEPTH, VAL_VER_DEPTH); | ||||
| 	bool loadDefCA = config.getBool(prefix+CFG_ENABLE_DEFAULT_CA, VAL_ENABLE_DEFAULT_CA); | ||||
| 	std::string cypherList = config.getString(prefix+CFG_CYPHER_LIST, VAL_CYPHER_LIST); | ||||
| 	if (server) | ||||
| 	{ | ||||
| 		_ptrDefaultServerContext = new Context(privKeyFile, caLocation, server, verMode, verDepth, loadDefCA, cypherList); | ||||
| 	} | ||||
| 	else | ||||
| 	{ | ||||
| 		_ptrDefaultClientContext = new Context(privKeyFile, caLocation, server, verMode, verDepth, loadDefCA, cypherList); | ||||
| 	} | ||||
| } | ||||
|  | ||||
|  | ||||
| void SSLManager::initEvents(bool server) | ||||
| { | ||||
| 	initPassPhraseHandler(server); | ||||
| 	initCertificateHandler(server); | ||||
| } | ||||
|  | ||||
|  | ||||
| void SSLManager::initPassPhraseHandler(bool server) | ||||
| { | ||||
| 	if (server && _ptrServerPassPhraseHandler) return; | ||||
| 	if (!server && _ptrClientPassPhraseHandler) return; | ||||
| 	 | ||||
| 	std::string prefix = server ? CFG_SERVER_PREFIX : CFG_CLIENT_PREFIX; | ||||
| 	Poco::Util::LayeredConfiguration& config = Poco::Util::Application::instance().config(); | ||||
|  | ||||
| 	std::string className(config.getString(prefix+CFG_DELEGATE_HANDLER, VAL_DELEGATE_HANDLER)); | ||||
|  | ||||
| 	const PrivateKeyFactory* pFactory = 0; | ||||
| 	if (privateKeyFactoryMgr().hasFactory(className)) | ||||
| 	{ | ||||
| 		pFactory = privateKeyFactoryMgr().getFactory(className); | ||||
| 	} | ||||
|  | ||||
| 	if (pFactory) | ||||
| 	{ | ||||
| 		if (server) | ||||
| 			_ptrServerPassPhraseHandler = pFactory->create(server); | ||||
| 		else | ||||
| 			_ptrClientPassPhraseHandler = pFactory->create(server); | ||||
| 	} | ||||
| 	else throw Poco::Util::UnknownOptionException(std::string("No PassPhrasehandler known with the name ") + className); | ||||
| } | ||||
| 	 | ||||
|  | ||||
| void SSLManager::initCertificateHandler(bool server) | ||||
| { | ||||
| 	if (server && _ptrServerCertificateHandler) return; | ||||
| 	if (!server && _ptrClientCertificateHandler) return; | ||||
|  | ||||
| 	std::string prefix = server ? CFG_SERVER_PREFIX : CFG_CLIENT_PREFIX; | ||||
| 	Poco::Util::LayeredConfiguration& config = Poco::Util::Application::instance().config(); | ||||
|  | ||||
| 	std::string className(config.getString(prefix+CFG_CERTIFICATE_HANDLER, VAL_CERTIFICATE_HANDLER)); | ||||
|  | ||||
| 	const CertificateHandlerFactory* pFactory = 0; | ||||
| 	if (certificateHandlerFactoryMgr().hasFactory(className)) | ||||
| 	{ | ||||
| 		pFactory = certificateHandlerFactoryMgr().getFactory(className); | ||||
| 	} | ||||
|  | ||||
| 	if (pFactory) | ||||
| 	{ | ||||
| 		if (server) | ||||
| 			_ptrServerCertificateHandler = pFactory->create(true); | ||||
| 		else | ||||
| 			_ptrClientCertificateHandler = pFactory->create(false); | ||||
| 	} | ||||
| 	else throw Poco::Util::UnknownOptionException(std::string("No InvalidCertificate handler known with the name ") + className); | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
| // | ||||
| // SSLManager.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/SSLManager.cpp#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  SSLManager | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/SSLManager.h" | ||||
| #include "Poco/Net/Context.h" | ||||
| #include "Poco/Net/Utility.h" | ||||
| #include "Poco/Net/PrivateKeyPassphraseHandler.h" | ||||
| #include "Poco/Net/SSLInitializer.h" | ||||
| #include "Poco/SingletonHolder.h" | ||||
| #include "Poco/Delegate.h" | ||||
| #include "Poco/Util/Application.h" | ||||
| #include "Poco/Util/OptionException.h" | ||||
| #include "Poco/Util/LayeredConfiguration.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| const std::string SSLManager::CFG_PRIV_KEY_FILE("privateKeyFile"); | ||||
| const std::string SSLManager::CFG_CA_LOCATION("caConfig"); | ||||
| const std::string SSLManager::CFG_VER_MODE("verificationMode"); | ||||
| const Context::VerificationMode SSLManager::VAL_VER_MODE(Context::VERIFY_STRICT); | ||||
| const std::string SSLManager::CFG_VER_DEPTH("verificationDepth"); | ||||
| const int         SSLManager::VAL_VER_DEPTH(9); | ||||
| const std::string SSLManager::CFG_ENABLE_DEFAULT_CA("loadDefaultCAFile"); | ||||
| const bool        SSLManager::VAL_ENABLE_DEFAULT_CA(false); | ||||
| const std::string SSLManager::CFG_CYPHER_LIST("cypherList"); | ||||
| const std::string SSLManager::VAL_CYPHER_LIST("ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH"); | ||||
| const std::string SSLManager::CFG_DELEGATE_HANDLER("privateKeyPassphraseHandler.name"); | ||||
| const std::string SSLManager::VAL_DELEGATE_HANDLER("KeyConsoleHandler"); | ||||
| const std::string SSLManager::CFG_CERTIFICATE_HANDLER("invalidCertificateHandler.name"); | ||||
| const std::string SSLManager::VAL_CERTIFICATE_HANDLER("ConsoleCertificateHandler"); | ||||
| const std::string SSLManager::CFG_SERVER_PREFIX("openSSL.server."); | ||||
| const std::string SSLManager::CFG_CLIENT_PREFIX("openSSL.client."); | ||||
|  | ||||
|  | ||||
| SSLManager::SSLManager() | ||||
| { | ||||
| 	SSLInitializer::initialize(); | ||||
| } | ||||
|  | ||||
|  | ||||
| SSLManager::~SSLManager() | ||||
| { | ||||
| 	PrivateKeyPassPhrase.clear(); | ||||
| 	ClientVerificationError.clear(); | ||||
| 	ServerVerificationError.clear(); | ||||
| 	_ptrServerPassPhraseHandler  = 0; | ||||
| 	_ptrServerCertificateHandler = 0; | ||||
| 	_ptrDefaultServerContext     = 0; | ||||
| 	_ptrClientPassPhraseHandler  = 0; | ||||
| 	_ptrClientCertificateHandler = 0; | ||||
| 	_ptrDefaultClientContext     = 0; | ||||
| 	SSLInitializer::uninitialize(); | ||||
| } | ||||
|  | ||||
|  | ||||
| SSLManager& SSLManager::instance() | ||||
| { | ||||
| 	static Poco::SingletonHolder<SSLManager> singleton; | ||||
| 	return *singleton.get(); | ||||
| } | ||||
|  | ||||
|  | ||||
| void SSLManager::initializeServer(PrivateKeyPassphraseHandlerPtr& ptrPassPhraseHandler, InvalidCertificateHandlerPtr& ptrHandler, ContextPtr ptrContext) | ||||
| { | ||||
| 	_ptrServerPassPhraseHandler  = ptrPassPhraseHandler; | ||||
| 	_ptrServerCertificateHandler = ptrHandler; | ||||
| 	_ptrDefaultServerContext     = ptrContext; | ||||
| } | ||||
|  | ||||
|  | ||||
| void SSLManager::initializeClient(PrivateKeyPassphraseHandlerPtr& ptrPassPhraseHandler, InvalidCertificateHandlerPtr& ptrHandler, ContextPtr ptrContext) | ||||
| { | ||||
| 	_ptrClientPassPhraseHandler  = ptrPassPhraseHandler; | ||||
| 	_ptrClientCertificateHandler = ptrHandler; | ||||
| 	_ptrDefaultClientContext     = ptrContext; | ||||
| } | ||||
|  | ||||
|  | ||||
| SSLManager::ContextPtr SSLManager::defaultServerContext() | ||||
| { | ||||
| 	if (!_ptrDefaultServerContext) | ||||
| 		initDefaultContext(true); | ||||
|  | ||||
| 	return _ptrDefaultServerContext; | ||||
| } | ||||
|  | ||||
|  | ||||
| SSLManager::ContextPtr SSLManager::defaultClientContext() | ||||
| { | ||||
| 	if (!_ptrDefaultClientContext) | ||||
| 		initDefaultContext(false); | ||||
|  | ||||
| 	return _ptrDefaultClientContext; | ||||
| } | ||||
|  | ||||
|  | ||||
| SSLManager::PrivateKeyPassphraseHandlerPtr SSLManager::serverPassPhraseHandler() | ||||
| { | ||||
| 	if (!_ptrServerPassPhraseHandler) | ||||
| 		initPassPhraseHandler(true); | ||||
|  | ||||
| 	return _ptrServerPassPhraseHandler; | ||||
| } | ||||
|  | ||||
|  | ||||
| SSLManager::PrivateKeyPassphraseHandlerPtr SSLManager::clientPassPhraseHandler() | ||||
| { | ||||
| 	if (!_ptrClientPassPhraseHandler) | ||||
| 		initPassPhraseHandler(false); | ||||
|  | ||||
| 	return _ptrClientPassPhraseHandler; | ||||
| } | ||||
|  | ||||
|  | ||||
| SSLManager::InvalidCertificateHandlerPtr SSLManager::serverCertificateHandler() | ||||
| { | ||||
| 	if (!_ptrServerCertificateHandler) | ||||
| 		initCertificateHandler(true); | ||||
|  | ||||
| 	return _ptrServerCertificateHandler; | ||||
| } | ||||
|  | ||||
|  | ||||
| SSLManager::InvalidCertificateHandlerPtr SSLManager::clientCertificateHandler() | ||||
| { | ||||
| 	if (!_ptrClientCertificateHandler) | ||||
| 		initCertificateHandler(false); | ||||
|  | ||||
| 	return _ptrClientCertificateHandler; | ||||
| } | ||||
|  | ||||
|  | ||||
| int SSLManager::verifyCallback(bool server, int ok, X509_STORE_CTX* pStore) | ||||
| { | ||||
| 	if (!ok) | ||||
| 	{ | ||||
| 		X509* pCert = X509_STORE_CTX_get_current_cert(pStore); | ||||
| 		X509Certificate x509(pCert); | ||||
| 		int depth = X509_STORE_CTX_get_error_depth(pStore); | ||||
| 		int err = X509_STORE_CTX_get_error(pStore); | ||||
| 		std::string error(X509_verify_cert_error_string(err)); | ||||
| 		VerificationErrorArgs args(x509, depth, err, error); | ||||
| 		if (server) | ||||
| 			SSLManager::instance().ServerVerificationError.notify(&SSLManager::instance(), args); | ||||
| 		else | ||||
| 			SSLManager::instance().ClientVerificationError.notify(&SSLManager::instance(), args); | ||||
| 		ok = args.getIgnoreError() ? 1 : 0; | ||||
| 	} | ||||
|  | ||||
| 	return ok; | ||||
| } | ||||
|  | ||||
|  | ||||
| int SSLManager::privateKeyPasswdCallback(char* pBuf, int size, int flag, void* userData) | ||||
| { | ||||
| 	std::string pwd; | ||||
| 	SSLManager::instance().PrivateKeyPassPhrase.notify(&SSLManager::instance(), pwd); | ||||
|  | ||||
| 	strncpy(pBuf, (char *)(pwd.c_str()), size); | ||||
| 	pBuf[size - 1] = '\0'; | ||||
| 	if (size > pwd.length()) | ||||
| 		size = (int) pwd.length(); | ||||
|  | ||||
| 	return size; | ||||
| } | ||||
|  | ||||
|  | ||||
| void SSLManager::initDefaultContext(bool server) | ||||
| { | ||||
| 	if (server && _ptrDefaultServerContext) return; | ||||
| 	if (!server && _ptrDefaultClientContext) return; | ||||
|  | ||||
| 	initEvents(server); | ||||
|  | ||||
| 	Poco::Util::LayeredConfiguration& config = Poco::Util::Application::instance().config(); | ||||
| 	std::string prefix = server ? CFG_SERVER_PREFIX : CFG_CLIENT_PREFIX; | ||||
| 	if (!config.hasProperty(prefix+CFG_PRIV_KEY_FILE)) | ||||
| 	{ | ||||
| 		throw Poco::Util::EmptyOptionException(std::string("Missing Configuration Entry: ") + prefix+CFG_PRIV_KEY_FILE); | ||||
| 	} | ||||
| 	// mandatory options | ||||
| 	std::string privKeyFile = config.getString(prefix+CFG_PRIV_KEY_FILE); | ||||
| 	std::string caLocation = config.getString(prefix+CFG_CA_LOCATION); | ||||
|  | ||||
| 	// optional options for which we have defaults defined | ||||
| 	Context::VerificationMode verMode = VAL_VER_MODE; | ||||
| 	if (config.hasProperty(prefix+CFG_VER_MODE)) | ||||
| 	{ | ||||
| 		// either: none, relaxed, strict, once | ||||
| 		std::string mode = config.getString(prefix+CFG_VER_MODE); | ||||
| 		verMode = Utility::convertVerificationMode(mode); | ||||
| 	} | ||||
|  | ||||
| 	int verDepth = config.getInt(prefix+CFG_VER_DEPTH, VAL_VER_DEPTH); | ||||
| 	bool loadDefCA = config.getBool(prefix+CFG_ENABLE_DEFAULT_CA, VAL_ENABLE_DEFAULT_CA); | ||||
| 	std::string cypherList = config.getString(prefix+CFG_CYPHER_LIST, VAL_CYPHER_LIST); | ||||
| 	if (server) | ||||
| 	{ | ||||
| 		_ptrDefaultServerContext = new Context(privKeyFile, caLocation, server, verMode, verDepth, loadDefCA, cypherList); | ||||
| 	} | ||||
| 	else | ||||
| 	{ | ||||
| 		_ptrDefaultClientContext = new Context(privKeyFile, caLocation, server, verMode, verDepth, loadDefCA, cypherList); | ||||
| 	} | ||||
| } | ||||
|  | ||||
|  | ||||
| void SSLManager::initEvents(bool server) | ||||
| { | ||||
| 	initPassPhraseHandler(server); | ||||
| 	initCertificateHandler(server); | ||||
| } | ||||
|  | ||||
|  | ||||
| void SSLManager::initPassPhraseHandler(bool server) | ||||
| { | ||||
| 	if (server && _ptrServerPassPhraseHandler) return; | ||||
| 	if (!server && _ptrClientPassPhraseHandler) return; | ||||
| 	 | ||||
| 	std::string prefix = server ? CFG_SERVER_PREFIX : CFG_CLIENT_PREFIX; | ||||
| 	Poco::Util::LayeredConfiguration& config = Poco::Util::Application::instance().config(); | ||||
|  | ||||
| 	std::string className(config.getString(prefix+CFG_DELEGATE_HANDLER, VAL_DELEGATE_HANDLER)); | ||||
|  | ||||
| 	const PrivateKeyFactory* pFactory = 0; | ||||
| 	if (privateKeyFactoryMgr().hasFactory(className)) | ||||
| 	{ | ||||
| 		pFactory = privateKeyFactoryMgr().getFactory(className); | ||||
| 	} | ||||
|  | ||||
| 	if (pFactory) | ||||
| 	{ | ||||
| 		if (server) | ||||
| 			_ptrServerPassPhraseHandler = pFactory->create(server); | ||||
| 		else | ||||
| 			_ptrClientPassPhraseHandler = pFactory->create(server); | ||||
| 	} | ||||
| 	else throw Poco::Util::UnknownOptionException(std::string("No PassPhrasehandler known with the name ") + className); | ||||
| } | ||||
| 	 | ||||
|  | ||||
| void SSLManager::initCertificateHandler(bool server) | ||||
| { | ||||
| 	if (server && _ptrServerCertificateHandler) return; | ||||
| 	if (!server && _ptrClientCertificateHandler) return; | ||||
|  | ||||
| 	std::string prefix = server ? CFG_SERVER_PREFIX : CFG_CLIENT_PREFIX; | ||||
| 	Poco::Util::LayeredConfiguration& config = Poco::Util::Application::instance().config(); | ||||
|  | ||||
| 	std::string className(config.getString(prefix+CFG_CERTIFICATE_HANDLER, VAL_CERTIFICATE_HANDLER)); | ||||
|  | ||||
| 	const CertificateHandlerFactory* pFactory = 0; | ||||
| 	if (certificateHandlerFactoryMgr().hasFactory(className)) | ||||
| 	{ | ||||
| 		pFactory = certificateHandlerFactoryMgr().getFactory(className); | ||||
| 	} | ||||
|  | ||||
| 	if (pFactory) | ||||
| 	{ | ||||
| 		if (server) | ||||
| 			_ptrServerCertificateHandler = pFactory->create(true); | ||||
| 		else | ||||
| 			_ptrClientCertificateHandler = pFactory->create(false); | ||||
| 	} | ||||
| 	else throw Poco::Util::UnknownOptionException(std::string("No InvalidCertificate handler known with the name ") + className); | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|   | ||||
| @@ -1,113 +1,113 @@ | ||||
| // | ||||
| // SecureServerSocket.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/SecureServerSocket.cpp#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLSockets | ||||
| // Module:  SecureServerSocket | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/SecureServerSocket.h" | ||||
| #include "Poco/Net/SecureServerSocketImpl.h" | ||||
| #include "Poco/Net/SecureStreamSocket.h" | ||||
| #include "Poco/Exception.h" | ||||
|  | ||||
|  | ||||
| using Poco::InvalidArgumentException; | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| SecureServerSocket::SecureServerSocket():  | ||||
| 	ServerSocket(new SecureServerSocketImpl, true) | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| SecureServerSocket::SecureServerSocket(const Socket& socket):  | ||||
| 	ServerSocket(socket) | ||||
| { | ||||
| 	if (!dynamic_cast<SecureServerSocketImpl*>(impl())) | ||||
| 		throw InvalidArgumentException("Cannot assign incompatible socket"); | ||||
| } | ||||
|  | ||||
|  | ||||
| SecureServerSocket::SecureServerSocket(const SocketAddress& address, int backlog):  | ||||
| 	ServerSocket(new SecureServerSocketImpl, true) | ||||
| { | ||||
| 	impl()->bind(address, true); | ||||
| 	impl()->listen(backlog); | ||||
| } | ||||
|  | ||||
|  | ||||
| SecureServerSocket::SecureServerSocket(Poco::UInt16 port, int backlog):  | ||||
| 	ServerSocket(new SecureServerSocketImpl, true) | ||||
| { | ||||
| 	IPAddress wildcardAddr; | ||||
| 	SocketAddress address(wildcardAddr, port); | ||||
| 	impl()->bind(address, true); | ||||
| 	impl()->listen(backlog); | ||||
| } | ||||
|  | ||||
|  | ||||
| SecureServerSocket::~SecureServerSocket() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| SecureServerSocket& SecureServerSocket::operator = (const Socket& socket) | ||||
| { | ||||
| 	if (&socket != this) | ||||
| 	{ | ||||
| 		if (dynamic_cast<SecureServerSocketImpl*>(socket.impl())) | ||||
| 			ServerSocket::operator = (socket); | ||||
| 		else | ||||
| 			throw InvalidArgumentException("Cannot assign incompatible socket"); | ||||
| 	} | ||||
| 	return *this; | ||||
| } | ||||
|  | ||||
|  | ||||
| StreamSocket SecureServerSocket::acceptConnection(SocketAddress& clientAddr) | ||||
| { | ||||
| 	return SecureStreamSocket(impl()->acceptConnection(clientAddr)); | ||||
| } | ||||
|  | ||||
|  | ||||
| StreamSocket SecureServerSocket::acceptConnection() | ||||
| { | ||||
| 	SocketAddress clientAddr; | ||||
| 	return SecureStreamSocket(impl()->acceptConnection(clientAddr)); | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
| // | ||||
| // SecureServerSocket.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/SecureServerSocket.cpp#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLSockets | ||||
| // Module:  SecureServerSocket | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/SecureServerSocket.h" | ||||
| #include "Poco/Net/SecureServerSocketImpl.h" | ||||
| #include "Poco/Net/SecureStreamSocket.h" | ||||
| #include "Poco/Exception.h" | ||||
|  | ||||
|  | ||||
| using Poco::InvalidArgumentException; | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| SecureServerSocket::SecureServerSocket():  | ||||
| 	ServerSocket(new SecureServerSocketImpl, true) | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| SecureServerSocket::SecureServerSocket(const Socket& socket):  | ||||
| 	ServerSocket(socket) | ||||
| { | ||||
| 	if (!dynamic_cast<SecureServerSocketImpl*>(impl())) | ||||
| 		throw InvalidArgumentException("Cannot assign incompatible socket"); | ||||
| } | ||||
|  | ||||
|  | ||||
| SecureServerSocket::SecureServerSocket(const SocketAddress& address, int backlog):  | ||||
| 	ServerSocket(new SecureServerSocketImpl, true) | ||||
| { | ||||
| 	impl()->bind(address, true); | ||||
| 	impl()->listen(backlog); | ||||
| } | ||||
|  | ||||
|  | ||||
| SecureServerSocket::SecureServerSocket(Poco::UInt16 port, int backlog):  | ||||
| 	ServerSocket(new SecureServerSocketImpl, true) | ||||
| { | ||||
| 	IPAddress wildcardAddr; | ||||
| 	SocketAddress address(wildcardAddr, port); | ||||
| 	impl()->bind(address, true); | ||||
| 	impl()->listen(backlog); | ||||
| } | ||||
|  | ||||
|  | ||||
| SecureServerSocket::~SecureServerSocket() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| SecureServerSocket& SecureServerSocket::operator = (const Socket& socket) | ||||
| { | ||||
| 	if (&socket != this) | ||||
| 	{ | ||||
| 		if (dynamic_cast<SecureServerSocketImpl*>(socket.impl())) | ||||
| 			ServerSocket::operator = (socket); | ||||
| 		else | ||||
| 			throw InvalidArgumentException("Cannot assign incompatible socket"); | ||||
| 	} | ||||
| 	return *this; | ||||
| } | ||||
|  | ||||
|  | ||||
| StreamSocket SecureServerSocket::acceptConnection(SocketAddress& clientAddr) | ||||
| { | ||||
| 	return SecureStreamSocket(impl()->acceptConnection(clientAddr)); | ||||
| } | ||||
|  | ||||
|  | ||||
| StreamSocket SecureServerSocket::acceptConnection() | ||||
| { | ||||
| 	SocketAddress clientAddr; | ||||
| 	return SecureStreamSocket(impl()->acceptConnection(clientAddr)); | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|   | ||||
| @@ -1,131 +1,131 @@ | ||||
| // | ||||
| // SecureServerSocketImpl.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/SecureServerSocketImpl.cpp#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLSockets | ||||
| // Module:  SecureServerSocketImpl | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/SecureServerSocketImpl.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| SecureServerSocketImpl::SecureServerSocketImpl() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| SecureServerSocketImpl::~SecureServerSocketImpl() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| SocketImpl* SecureServerSocketImpl::acceptConnection(SocketAddress& clientAddr) | ||||
| { | ||||
| 	return _socket.acceptConnection(clientAddr); | ||||
| } | ||||
|  | ||||
|  | ||||
| void SecureServerSocketImpl::connect(const SocketAddress& address) | ||||
| { | ||||
| 	_socket.connect(address); | ||||
| 	setSockfd(_socket.sockfd()); | ||||
| } | ||||
|  | ||||
|  | ||||
| void SecureServerSocketImpl::connect(const SocketAddress& address, const Poco::Timespan& timeout) | ||||
| { | ||||
| 	_socket.connect(address, timeout); | ||||
| 	setSockfd(_socket.sockfd()); | ||||
| } | ||||
| 	 | ||||
|  | ||||
| void SecureServerSocketImpl::connectNB(const SocketAddress& address) | ||||
| { | ||||
| 	_socket.connectNB(address); | ||||
| 	setSockfd(_socket.sockfd()); | ||||
| } | ||||
| 	 | ||||
|  | ||||
| void SecureServerSocketImpl::bind(const SocketAddress& address, bool reuseAddress) | ||||
| { | ||||
| 	_socket.bind(address, reuseAddress); | ||||
| } | ||||
|  | ||||
| 	 | ||||
| void SecureServerSocketImpl::listen(int backlog) | ||||
| { | ||||
| 	_socket.listen(backlog); | ||||
| 	setSockfd(_socket.sockfd()); | ||||
| } | ||||
| 	 | ||||
|  | ||||
| void SecureServerSocketImpl::close() | ||||
| { | ||||
| 	invalidate(); | ||||
| 	_socket.close(); | ||||
| } | ||||
| 	 | ||||
|  | ||||
| int SecureServerSocketImpl::sendBytes(const void* buffer, int length, int flags) | ||||
| { | ||||
| 	return _socket.sendBytes(buffer, length, flags); | ||||
| } | ||||
|  | ||||
|  | ||||
| int SecureServerSocketImpl::receiveBytes(void* buffer, int length, int flags) | ||||
| { | ||||
| 	return _socket.receiveBytes(buffer, length, flags); | ||||
| } | ||||
|  | ||||
|  | ||||
| int SecureServerSocketImpl::sendTo(const void* buffer, int length, const SocketAddress& address, int flags) | ||||
| { | ||||
| 	return _socket.sendTo(buffer, length, address, flags); | ||||
| } | ||||
|  | ||||
|  | ||||
| int SecureServerSocketImpl::receiveFrom(void* buffer, int length, SocketAddress& address, int flags) | ||||
| { | ||||
| 	return _socket.receiveFrom(buffer, length, address, flags); | ||||
| } | ||||
|  | ||||
|  | ||||
| void SecureServerSocketImpl::sendUrgent(unsigned char data) | ||||
| { | ||||
| 	return _socket.sendUrgent(data); | ||||
| } | ||||
| 	 | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
| // | ||||
| // SecureServerSocketImpl.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/SecureServerSocketImpl.cpp#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLSockets | ||||
| // Module:  SecureServerSocketImpl | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/SecureServerSocketImpl.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| SecureServerSocketImpl::SecureServerSocketImpl() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| SecureServerSocketImpl::~SecureServerSocketImpl() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| SocketImpl* SecureServerSocketImpl::acceptConnection(SocketAddress& clientAddr) | ||||
| { | ||||
| 	return _socket.acceptConnection(clientAddr); | ||||
| } | ||||
|  | ||||
|  | ||||
| void SecureServerSocketImpl::connect(const SocketAddress& address) | ||||
| { | ||||
| 	_socket.connect(address); | ||||
| 	setSockfd(_socket.sockfd()); | ||||
| } | ||||
|  | ||||
|  | ||||
| void SecureServerSocketImpl::connect(const SocketAddress& address, const Poco::Timespan& timeout) | ||||
| { | ||||
| 	_socket.connect(address, timeout); | ||||
| 	setSockfd(_socket.sockfd()); | ||||
| } | ||||
| 	 | ||||
|  | ||||
| void SecureServerSocketImpl::connectNB(const SocketAddress& address) | ||||
| { | ||||
| 	_socket.connectNB(address); | ||||
| 	setSockfd(_socket.sockfd()); | ||||
| } | ||||
| 	 | ||||
|  | ||||
| void SecureServerSocketImpl::bind(const SocketAddress& address, bool reuseAddress) | ||||
| { | ||||
| 	_socket.bind(address, reuseAddress); | ||||
| } | ||||
|  | ||||
| 	 | ||||
| void SecureServerSocketImpl::listen(int backlog) | ||||
| { | ||||
| 	_socket.listen(backlog); | ||||
| 	setSockfd(_socket.sockfd()); | ||||
| } | ||||
| 	 | ||||
|  | ||||
| void SecureServerSocketImpl::close() | ||||
| { | ||||
| 	invalidate(); | ||||
| 	_socket.close(); | ||||
| } | ||||
| 	 | ||||
|  | ||||
| int SecureServerSocketImpl::sendBytes(const void* buffer, int length, int flags) | ||||
| { | ||||
| 	return _socket.sendBytes(buffer, length, flags); | ||||
| } | ||||
|  | ||||
|  | ||||
| int SecureServerSocketImpl::receiveBytes(void* buffer, int length, int flags) | ||||
| { | ||||
| 	return _socket.receiveBytes(buffer, length, flags); | ||||
| } | ||||
|  | ||||
|  | ||||
| int SecureServerSocketImpl::sendTo(const void* buffer, int length, const SocketAddress& address, int flags) | ||||
| { | ||||
| 	return _socket.sendTo(buffer, length, address, flags); | ||||
| } | ||||
|  | ||||
|  | ||||
| int SecureServerSocketImpl::receiveFrom(void* buffer, int length, SocketAddress& address, int flags) | ||||
| { | ||||
| 	return _socket.receiveFrom(buffer, length, address, flags); | ||||
| } | ||||
|  | ||||
|  | ||||
| void SecureServerSocketImpl::sendUrgent(unsigned char data) | ||||
| { | ||||
| 	return _socket.sendUrgent(data); | ||||
| } | ||||
| 	 | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|   | ||||
| @@ -1,94 +1,94 @@ | ||||
| // | ||||
| // SecureStreamSocket.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/SecureStreamSocket.cpp#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLSockets | ||||
| // Module:  SecureStreamSocket | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/SecureStreamSocket.h" | ||||
| #include "Poco/Net/SecureStreamSocketImpl.h" | ||||
| #include "Poco/Net/SocketImpl.h" | ||||
| #include "Poco/Exception.h" | ||||
|  | ||||
|  | ||||
| using Poco::InvalidArgumentException; | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| SecureStreamSocket::SecureStreamSocket():  | ||||
| 	StreamSocket(new SecureStreamSocketImpl) | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| SecureStreamSocket::SecureStreamSocket(const SocketAddress& address):  | ||||
| 	StreamSocket(new SecureStreamSocketImpl) | ||||
| { | ||||
| 	connect(address); | ||||
| } | ||||
|  | ||||
|  | ||||
| SecureStreamSocket::SecureStreamSocket(const Socket& socket):  | ||||
| 	StreamSocket(socket) | ||||
| { | ||||
| 	if (!dynamic_cast<SecureStreamSocketImpl*>(impl())) | ||||
| 		throw InvalidArgumentException("Cannot assign incompatible socket"); | ||||
| } | ||||
|  | ||||
|  | ||||
| SecureStreamSocket::SecureStreamSocket(SocketImpl* pImpl):  | ||||
| 	StreamSocket(pImpl) | ||||
| { | ||||
| 	if (!dynamic_cast<SecureStreamSocketImpl*>(impl())) | ||||
| 		throw InvalidArgumentException("Cannot assign incompatible socket"); | ||||
| } | ||||
|  | ||||
|  | ||||
| SecureStreamSocket::~SecureStreamSocket() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| SecureStreamSocket& SecureStreamSocket::operator = (const Socket& socket) | ||||
| { | ||||
| 	if (dynamic_cast<SecureStreamSocketImpl*>(socket.impl())) | ||||
| 		StreamSocket::operator = (socket); | ||||
| 	else | ||||
| 		throw InvalidArgumentException("Cannot assign incompatible socket"); | ||||
| 	return *this; | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
| // | ||||
| // SecureStreamSocket.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/SecureStreamSocket.cpp#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLSockets | ||||
| // Module:  SecureStreamSocket | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/SecureStreamSocket.h" | ||||
| #include "Poco/Net/SecureStreamSocketImpl.h" | ||||
| #include "Poco/Net/SocketImpl.h" | ||||
| #include "Poco/Exception.h" | ||||
|  | ||||
|  | ||||
| using Poco::InvalidArgumentException; | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| SecureStreamSocket::SecureStreamSocket():  | ||||
| 	StreamSocket(new SecureStreamSocketImpl) | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| SecureStreamSocket::SecureStreamSocket(const SocketAddress& address):  | ||||
| 	StreamSocket(new SecureStreamSocketImpl) | ||||
| { | ||||
| 	connect(address); | ||||
| } | ||||
|  | ||||
|  | ||||
| SecureStreamSocket::SecureStreamSocket(const Socket& socket):  | ||||
| 	StreamSocket(socket) | ||||
| { | ||||
| 	if (!dynamic_cast<SecureStreamSocketImpl*>(impl())) | ||||
| 		throw InvalidArgumentException("Cannot assign incompatible socket"); | ||||
| } | ||||
|  | ||||
|  | ||||
| SecureStreamSocket::SecureStreamSocket(SocketImpl* pImpl):  | ||||
| 	StreamSocket(pImpl) | ||||
| { | ||||
| 	if (!dynamic_cast<SecureStreamSocketImpl*>(impl())) | ||||
| 		throw InvalidArgumentException("Cannot assign incompatible socket"); | ||||
| } | ||||
|  | ||||
|  | ||||
| SecureStreamSocket::~SecureStreamSocket() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| SecureStreamSocket& SecureStreamSocket::operator = (const Socket& socket) | ||||
| { | ||||
| 	if (dynamic_cast<SecureStreamSocketImpl*>(socket.impl())) | ||||
| 		StreamSocket::operator = (socket); | ||||
| 	else | ||||
| 		throw InvalidArgumentException("Cannot assign incompatible socket"); | ||||
| 	return *this; | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|   | ||||
| @@ -1,145 +1,145 @@ | ||||
| // | ||||
| // SecureStreamSocketImpl.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/SecureStreamSocketImpl.cpp#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLSockets | ||||
| // Module:  SecureStreamSocketImpl | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/SecureStreamSocketImpl.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| SecureStreamSocketImpl::SecureStreamSocketImpl() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| SecureStreamSocketImpl::SecureStreamSocketImpl(SSL* _pSSL): _socket(_pSSL) | ||||
| { | ||||
| 	setSockfd(_socket.sockfd()); | ||||
| } | ||||
|  | ||||
|  | ||||
| SecureStreamSocketImpl::~SecureStreamSocketImpl() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| SocketImpl* SecureStreamSocketImpl::acceptConnection(SocketAddress& clientAddr) | ||||
| { | ||||
| 	return _socket.acceptConnection(clientAddr); | ||||
| } | ||||
|  | ||||
|  | ||||
| void SecureStreamSocketImpl::connect(const SocketAddress& address) | ||||
| { | ||||
| 	_socket.connect(address); | ||||
| 	setSockfd(_socket.sockfd()); | ||||
| } | ||||
|  | ||||
|  | ||||
| void SecureStreamSocketImpl::connect(const SocketAddress& address, const Poco::Timespan& timeout) | ||||
| { | ||||
| 	_socket.connect(address, timeout); | ||||
| 	setSockfd(_socket.sockfd()); | ||||
| } | ||||
| 	 | ||||
|  | ||||
| void SecureStreamSocketImpl::connectNB(const SocketAddress& address) | ||||
| { | ||||
| 	_socket.connectNB(address); | ||||
| 	setSockfd(_socket.sockfd()); | ||||
| } | ||||
| 	 | ||||
|  | ||||
| void SecureStreamSocketImpl::bind(const SocketAddress& address, bool reuseAddress) | ||||
| { | ||||
| 	_socket.bind(address, reuseAddress); | ||||
| } | ||||
|  | ||||
| 	 | ||||
| void SecureStreamSocketImpl::listen(int backlog) | ||||
| { | ||||
| 	_socket.listen(backlog); | ||||
| 	setSockfd(_socket.sockfd()); | ||||
| } | ||||
| 	 | ||||
|  | ||||
| void SecureStreamSocketImpl::close() | ||||
| { | ||||
| 	invalidate(); | ||||
| 	_socket.close(); | ||||
| } | ||||
| 	 | ||||
|  | ||||
| int SecureStreamSocketImpl::sendBytes(const void* buffer, int length, int flags) | ||||
| { | ||||
| 	const char* p = reinterpret_cast<const char*>(buffer); | ||||
| 	int remaining = length; | ||||
| 	while (remaining > 0) | ||||
| 	{ | ||||
| 		int n = _socket.sendBytes(p, length, flags); | ||||
| 		p += n;  | ||||
| 		remaining -= n; | ||||
| 	} | ||||
| 	return length; | ||||
| } | ||||
|  | ||||
|  | ||||
| int SecureStreamSocketImpl::receiveBytes(void* buffer, int length, int flags) | ||||
| { | ||||
| 	return _socket.receiveBytes(buffer, length, flags); | ||||
| } | ||||
|  | ||||
|  | ||||
| int SecureStreamSocketImpl::sendTo(const void* buffer, int length, const SocketAddress& address, int flags) | ||||
| { | ||||
| 	return _socket.sendTo(buffer, length, address, flags); | ||||
| } | ||||
|  | ||||
|  | ||||
| int SecureStreamSocketImpl::receiveFrom(void* buffer, int length, SocketAddress& address, int flags) | ||||
| { | ||||
| 	return _socket.receiveFrom(buffer, length, address, flags); | ||||
| } | ||||
|  | ||||
|  | ||||
| void SecureStreamSocketImpl::sendUrgent(unsigned char data) | ||||
| { | ||||
| 	return _socket.sendUrgent(data); | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
| // | ||||
| // SecureStreamSocketImpl.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/SecureStreamSocketImpl.cpp#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLSockets | ||||
| // Module:  SecureStreamSocketImpl | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/SecureStreamSocketImpl.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| SecureStreamSocketImpl::SecureStreamSocketImpl() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| SecureStreamSocketImpl::SecureStreamSocketImpl(SSL* _pSSL): _socket(_pSSL) | ||||
| { | ||||
| 	setSockfd(_socket.sockfd()); | ||||
| } | ||||
|  | ||||
|  | ||||
| SecureStreamSocketImpl::~SecureStreamSocketImpl() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| SocketImpl* SecureStreamSocketImpl::acceptConnection(SocketAddress& clientAddr) | ||||
| { | ||||
| 	return _socket.acceptConnection(clientAddr); | ||||
| } | ||||
|  | ||||
|  | ||||
| void SecureStreamSocketImpl::connect(const SocketAddress& address) | ||||
| { | ||||
| 	_socket.connect(address); | ||||
| 	setSockfd(_socket.sockfd()); | ||||
| } | ||||
|  | ||||
|  | ||||
| void SecureStreamSocketImpl::connect(const SocketAddress& address, const Poco::Timespan& timeout) | ||||
| { | ||||
| 	_socket.connect(address, timeout); | ||||
| 	setSockfd(_socket.sockfd()); | ||||
| } | ||||
| 	 | ||||
|  | ||||
| void SecureStreamSocketImpl::connectNB(const SocketAddress& address) | ||||
| { | ||||
| 	_socket.connectNB(address); | ||||
| 	setSockfd(_socket.sockfd()); | ||||
| } | ||||
| 	 | ||||
|  | ||||
| void SecureStreamSocketImpl::bind(const SocketAddress& address, bool reuseAddress) | ||||
| { | ||||
| 	_socket.bind(address, reuseAddress); | ||||
| } | ||||
|  | ||||
| 	 | ||||
| void SecureStreamSocketImpl::listen(int backlog) | ||||
| { | ||||
| 	_socket.listen(backlog); | ||||
| 	setSockfd(_socket.sockfd()); | ||||
| } | ||||
| 	 | ||||
|  | ||||
| void SecureStreamSocketImpl::close() | ||||
| { | ||||
| 	invalidate(); | ||||
| 	_socket.close(); | ||||
| } | ||||
| 	 | ||||
|  | ||||
| int SecureStreamSocketImpl::sendBytes(const void* buffer, int length, int flags) | ||||
| { | ||||
| 	const char* p = reinterpret_cast<const char*>(buffer); | ||||
| 	int remaining = length; | ||||
| 	while (remaining > 0) | ||||
| 	{ | ||||
| 		int n = _socket.sendBytes(p, length, flags); | ||||
| 		p += n;  | ||||
| 		remaining -= n; | ||||
| 	} | ||||
| 	return length; | ||||
| } | ||||
|  | ||||
|  | ||||
| int SecureStreamSocketImpl::receiveBytes(void* buffer, int length, int flags) | ||||
| { | ||||
| 	return _socket.receiveBytes(buffer, length, flags); | ||||
| } | ||||
|  | ||||
|  | ||||
| int SecureStreamSocketImpl::sendTo(const void* buffer, int length, const SocketAddress& address, int flags) | ||||
| { | ||||
| 	return _socket.sendTo(buffer, length, address, flags); | ||||
| } | ||||
|  | ||||
|  | ||||
| int SecureStreamSocketImpl::receiveFrom(void* buffer, int length, SocketAddress& address, int flags) | ||||
| { | ||||
| 	return _socket.receiveFrom(buffer, length, address, flags); | ||||
| } | ||||
|  | ||||
|  | ||||
| void SecureStreamSocketImpl::sendUrgent(unsigned char data) | ||||
| { | ||||
| 	return _socket.sendUrgent(data); | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|   | ||||
| @@ -1,135 +1,135 @@ | ||||
| // | ||||
| // Utility.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/Utility.cpp#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  Utility | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/Utility.h" | ||||
| #include "Poco/String.h" | ||||
| #include "Poco/Util/OptionException.h" | ||||
| #include <openssl/err.h> | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| int Utility::HTTPS_PORT = 443; | ||||
|  | ||||
|  | ||||
| Context::VerificationMode Utility::convertVerificationMode(const std::string& vMode) | ||||
| { | ||||
| 	std::string mode = Poco::toLower(vMode); | ||||
| 	Context::VerificationMode verMode = Context::VERIFY_STRICT; | ||||
|  | ||||
| 	if (mode == "none") | ||||
| 		verMode = Context::VERIFY_NONE; | ||||
| 	else if (mode == "relaxed") | ||||
| 		verMode = Context::VERIFY_RELAXED; | ||||
| 	else if (mode == "strict") | ||||
| 		verMode = Context::VERIFY_STRICT; | ||||
| 	else if (mode == "once") | ||||
| 		verMode = Context::VERIFY_ONCE; | ||||
| 	else | ||||
| 		throw Poco::Util::OptionException(std::string("Wrong value >") + vMode + std::string("< for a verificationMode. Can only be none, relaxed, strict or once.")); | ||||
|  | ||||
| 	return verMode; | ||||
| } | ||||
|  | ||||
|  | ||||
| std::string Utility::convertCertificateError(long errCode) | ||||
| { | ||||
| 	std::string errMsg(X509_verify_cert_error_string(errCode)); | ||||
| 	return errMsg; | ||||
| } | ||||
|  | ||||
|  | ||||
| std::string Utility::convertSSLError(SSL* pSSL, int errCode) | ||||
| { | ||||
| 	 | ||||
| 	std::string errMsg; | ||||
| 	if (errCode > 0) return "no error"; | ||||
|  | ||||
| 	int connectErr = SSL_get_error(pSSL, errCode); | ||||
| 	long lErr = 0; | ||||
| 	char buf[512]; | ||||
| 	 | ||||
| 	switch (connectErr) | ||||
| 	{ | ||||
| 	case SSL_ERROR_ZERO_RETURN: | ||||
| 		// connection closed | ||||
| 		errMsg = "connection closed by server"; | ||||
| 		break; | ||||
| 	case SSL_ERROR_WANT_READ: | ||||
| 		errMsg = "want read"; | ||||
| 		break; | ||||
| 	case SSL_ERROR_WANT_WRITE: | ||||
| 		errMsg = "want write"; | ||||
| 		break; | ||||
| 	case SSL_ERROR_WANT_CONNECT:  | ||||
| 		errMsg = "want connect"; | ||||
| 		break; | ||||
| 	case SSL_ERROR_WANT_ACCEPT: | ||||
| 		errMsg = "want accept"; | ||||
| 		break; | ||||
| 	case SSL_ERROR_WANT_X509_LOOKUP: | ||||
| 		errMsg = "want lookup"; | ||||
| 		break; | ||||
| 	case SSL_ERROR_SYSCALL: | ||||
| 		errMsg = "syscall"; | ||||
| 		break; | ||||
| 	case SSL_ERROR_SSL: | ||||
| 		lErr = ERR_get_error(); | ||||
| 		if (errCode == 0) | ||||
| 		{ | ||||
| 			errMsg = "EOF was observed"; | ||||
| 		} | ||||
| 		else if (errCode == -1) | ||||
| 		{ | ||||
| 			errMsg = "The underlying BIO reported an I/O error"; | ||||
| 		} | ||||
| 		else | ||||
| 		{ | ||||
| 			ERR_error_string_n(lErr, buf, 512); | ||||
| 			errMsg = buf; | ||||
| 		} | ||||
| 		break; | ||||
| 	default: | ||||
| 		errMsg = "none"; | ||||
| 	} | ||||
|  | ||||
| 	return errMsg; | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
| // | ||||
| // Utility.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/Utility.cpp#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  Utility | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/Utility.h" | ||||
| #include "Poco/String.h" | ||||
| #include "Poco/Util/OptionException.h" | ||||
| #include <openssl/err.h> | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| int Utility::HTTPS_PORT = 443; | ||||
|  | ||||
|  | ||||
| Context::VerificationMode Utility::convertVerificationMode(const std::string& vMode) | ||||
| { | ||||
| 	std::string mode = Poco::toLower(vMode); | ||||
| 	Context::VerificationMode verMode = Context::VERIFY_STRICT; | ||||
|  | ||||
| 	if (mode == "none") | ||||
| 		verMode = Context::VERIFY_NONE; | ||||
| 	else if (mode == "relaxed") | ||||
| 		verMode = Context::VERIFY_RELAXED; | ||||
| 	else if (mode == "strict") | ||||
| 		verMode = Context::VERIFY_STRICT; | ||||
| 	else if (mode == "once") | ||||
| 		verMode = Context::VERIFY_ONCE; | ||||
| 	else | ||||
| 		throw Poco::Util::OptionException(std::string("Wrong value >") + vMode + std::string("< for a verificationMode. Can only be none, relaxed, strict or once.")); | ||||
|  | ||||
| 	return verMode; | ||||
| } | ||||
|  | ||||
|  | ||||
| std::string Utility::convertCertificateError(long errCode) | ||||
| { | ||||
| 	std::string errMsg(X509_verify_cert_error_string(errCode)); | ||||
| 	return errMsg; | ||||
| } | ||||
|  | ||||
|  | ||||
| std::string Utility::convertSSLError(SSL* pSSL, int errCode) | ||||
| { | ||||
| 	 | ||||
| 	std::string errMsg; | ||||
| 	if (errCode > 0) return "no error"; | ||||
|  | ||||
| 	int connectErr = SSL_get_error(pSSL, errCode); | ||||
| 	long lErr = 0; | ||||
| 	char buf[512]; | ||||
| 	 | ||||
| 	switch (connectErr) | ||||
| 	{ | ||||
| 	case SSL_ERROR_ZERO_RETURN: | ||||
| 		// connection closed | ||||
| 		errMsg = "connection closed by server"; | ||||
| 		break; | ||||
| 	case SSL_ERROR_WANT_READ: | ||||
| 		errMsg = "want read"; | ||||
| 		break; | ||||
| 	case SSL_ERROR_WANT_WRITE: | ||||
| 		errMsg = "want write"; | ||||
| 		break; | ||||
| 	case SSL_ERROR_WANT_CONNECT:  | ||||
| 		errMsg = "want connect"; | ||||
| 		break; | ||||
| 	case SSL_ERROR_WANT_ACCEPT: | ||||
| 		errMsg = "want accept"; | ||||
| 		break; | ||||
| 	case SSL_ERROR_WANT_X509_LOOKUP: | ||||
| 		errMsg = "want lookup"; | ||||
| 		break; | ||||
| 	case SSL_ERROR_SYSCALL: | ||||
| 		errMsg = "syscall"; | ||||
| 		break; | ||||
| 	case SSL_ERROR_SSL: | ||||
| 		lErr = ERR_get_error(); | ||||
| 		if (errCode == 0) | ||||
| 		{ | ||||
| 			errMsg = "EOF was observed"; | ||||
| 		} | ||||
| 		else if (errCode == -1) | ||||
| 		{ | ||||
| 			errMsg = "The underlying BIO reported an I/O error"; | ||||
| 		} | ||||
| 		else | ||||
| 		{ | ||||
| 			ERR_error_string_n(lErr, buf, 512); | ||||
| 			errMsg = buf; | ||||
| 		} | ||||
| 		break; | ||||
| 	default: | ||||
| 		errMsg = "none"; | ||||
| 	} | ||||
|  | ||||
| 	return errMsg; | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|   | ||||
| @@ -1,59 +1,59 @@ | ||||
| // | ||||
| // VerificationErrorArgs.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/VerificationErrorArgs.cpp#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  VerificationErrorArgs | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/VerificationErrorArgs.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| VerificationErrorArgs::VerificationErrorArgs(const X509Certificate& cert, int errDepth, int errNum, const std::string& errMsg): | ||||
| 	_cert(cert), | ||||
| 	_errorDepth(errDepth), | ||||
| 	_errorNumber(errNum), | ||||
| 	_errorMessage(errMsg), | ||||
| 	_ignoreError(false) | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| VerificationErrorArgs::~VerificationErrorArgs() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
| // | ||||
| // VerificationErrorArgs.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/src/VerificationErrorArgs.cpp#1 $ | ||||
| // | ||||
| // Library: NetSSL_OpenSSL | ||||
| // Package: SSLCore | ||||
| // Module:  VerificationErrorArgs | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/VerificationErrorArgs.h" | ||||
|  | ||||
|  | ||||
| namespace Poco { | ||||
| namespace Net { | ||||
|  | ||||
|  | ||||
| VerificationErrorArgs::VerificationErrorArgs(const X509Certificate& cert, int errDepth, int errNum, const std::string& errMsg): | ||||
| 	_cert(cert), | ||||
| 	_errorDepth(errDepth), | ||||
| 	_errorNumber(errNum), | ||||
| 	_errorMessage(errMsg), | ||||
| 	_ignoreError(false) | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| VerificationErrorArgs::~VerificationErrorArgs() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| } } // namespace Poco::Net | ||||
|   | ||||
| @@ -1,9 +1,9 @@ | ||||
| # | ||||
| # TestSuite.vmsbuild | ||||
| # | ||||
| # $Id: //poco/Main/template/TestSuite.vmsbuild#3 $ | ||||
| # | ||||
| EXE=TestRunner | ||||
| OpenSSLTestSuite | ||||
| Driver | ||||
| <SourceFilesHere> | ||||
| # | ||||
| # TestSuite.vmsbuild | ||||
| # | ||||
| # $Id: //poco/Main/template/TestSuite.vmsbuild#3 $ | ||||
| # | ||||
| EXE=TestRunner | ||||
| OpenSSLTestSuite | ||||
| Driver | ||||
| <SourceFilesHere> | ||||
|   | ||||
| @@ -1,42 +1,42 @@ | ||||
| <AppConfig> | ||||
| 	<openSSL> | ||||
| 		<server> | ||||
| 			<privateKeyFile>${application.configDir}any.pem</privateKeyFile> | ||||
| 			<caConfig>${application.configDir}rootcert.pem</caConfig> | ||||
| 			<verificationMode>none</verificationMode> | ||||
| 			<verificationDepth>9</verificationDepth> | ||||
| 			<loadDefaultCAFile>true</loadDefaultCAFile> | ||||
| 			<cypherList>ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH</cypherList> | ||||
| 			<privateKeyPassphraseHandler> | ||||
| 				<name>KeyFileHandler</name> | ||||
| 				<options> | ||||
| 					<password>test</password> | ||||
| 				</options> | ||||
| 			</privateKeyPassphraseHandler> | ||||
| 			<invalidCertificateHandler> | ||||
| 				<name>AcceptCertificateHandler</name> | ||||
| 				<options> | ||||
| 				</options> | ||||
| 			</invalidCertificateHandler> | ||||
| 		</server> | ||||
| 		<client> | ||||
| 			<privateKeyFile>${application.configDir}any.pem</privateKeyFile> | ||||
| 			<caConfig>${application.configDir}rootcert.pem</caConfig> | ||||
| 			<verificationMode>relaxed</verificationMode> | ||||
| 			<verificationDepth>9</verificationDepth> | ||||
| 			<loadDefaultCAFile>true</loadDefaultCAFile> | ||||
| 			<cypherList>ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH</cypherList> | ||||
| 			<privateKeyPassphraseHandler> | ||||
| 				<name>KeyFileHandler</name> | ||||
| 				<options> | ||||
| 					<password>test</password> | ||||
| 				</options> | ||||
| 			</privateKeyPassphraseHandler> | ||||
| 			<invalidCertificateHandler> | ||||
| 				<name>AcceptCertificateHandler</name> | ||||
| 				<options> | ||||
| 				</options> | ||||
| 			</invalidCertificateHandler> | ||||
| 		</client> | ||||
| 	</openSSL> | ||||
| </AppConfig> | ||||
| <AppConfig> | ||||
| 	<openSSL> | ||||
| 		<server> | ||||
| 			<privateKeyFile>${application.configDir}any.pem</privateKeyFile> | ||||
| 			<caConfig>${application.configDir}rootcert.pem</caConfig> | ||||
| 			<verificationMode>none</verificationMode> | ||||
| 			<verificationDepth>9</verificationDepth> | ||||
| 			<loadDefaultCAFile>true</loadDefaultCAFile> | ||||
| 			<cypherList>ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH</cypherList> | ||||
| 			<privateKeyPassphraseHandler> | ||||
| 				<name>KeyFileHandler</name> | ||||
| 				<options> | ||||
| 					<password>test</password> | ||||
| 				</options> | ||||
| 			</privateKeyPassphraseHandler> | ||||
| 			<invalidCertificateHandler> | ||||
| 				<name>AcceptCertificateHandler</name> | ||||
| 				<options> | ||||
| 				</options> | ||||
| 			</invalidCertificateHandler> | ||||
| 		</server> | ||||
| 		<client> | ||||
| 			<privateKeyFile>${application.configDir}any.pem</privateKeyFile> | ||||
| 			<caConfig>${application.configDir}rootcert.pem</caConfig> | ||||
| 			<verificationMode>relaxed</verificationMode> | ||||
| 			<verificationDepth>9</verificationDepth> | ||||
| 			<loadDefaultCAFile>true</loadDefaultCAFile> | ||||
| 			<cypherList>ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH</cypherList> | ||||
| 			<privateKeyPassphraseHandler> | ||||
| 				<name>KeyFileHandler</name> | ||||
| 				<options> | ||||
| 					<password>test</password> | ||||
| 				</options> | ||||
| 			</privateKeyPassphraseHandler> | ||||
| 			<invalidCertificateHandler> | ||||
| 				<name>AcceptCertificateHandler</name> | ||||
| 				<options> | ||||
| 				</options> | ||||
| 			</invalidCertificateHandler> | ||||
| 		</client> | ||||
| 	</openSSL> | ||||
| </AppConfig> | ||||
|   | ||||
| @@ -1,381 +1,381 @@ | ||||
| <?xml version="1.0" encoding="Windows-1252"?> | ||||
| <VisualStudioProject | ||||
| 	ProjectType="Visual C++" | ||||
| 	Version="7.10" | ||||
| 	Name="TestSuite" | ||||
| 	ProjectGUID="{5B023A89-A469-11DA-8DA6-005056C00008}" | ||||
| 	Keyword="Win32Proj"> | ||||
| 	<Platforms> | ||||
| 		<Platform | ||||
| 			Name="Win32"/> | ||||
| 	</Platforms> | ||||
| 	<Configurations> | ||||
| 		<Configuration | ||||
| 			Name="debug_shared|Win32" | ||||
| 			OutputDirectory="obj\debug_shared" | ||||
| 			IntermediateDirectory="obj\debug_shared" | ||||
| 			ConfigurationType="1" | ||||
| 			UseOfMFC="2" | ||||
| 			CharacterSet="2"> | ||||
| 			<Tool | ||||
| 				Name="VCCLCompilerTool" | ||||
| 				Optimization="0" | ||||
| 				AdditionalIncludeDirectories="..\include;..\..\Net\include;..\..\Foundation\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Util\include" | ||||
| 				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_DLL;WINVER=0x0500" | ||||
| 				MinimalRebuild="TRUE" | ||||
| 				BasicRuntimeChecks="3" | ||||
| 				RuntimeLibrary="3" | ||||
| 				BufferSecurityCheck="TRUE" | ||||
| 				TreatWChar_tAsBuiltInType="TRUE" | ||||
| 				ForceConformanceInForLoopScope="TRUE" | ||||
| 				RuntimeTypeInfo="TRUE" | ||||
| 				UsePrecompiledHeader="0" | ||||
| 				WarningLevel="3" | ||||
| 				Detect64BitPortabilityProblems="TRUE" | ||||
| 				DebugInformationFormat="4"/> | ||||
| 			<Tool | ||||
| 				Name="VCCustomBuildTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCLinkerTool" | ||||
| 				AdditionalDependencies="CppUnitd.lib WinTestRunnerd.lib PocoFoundationd.lib PocoNetd.lib PocoNetSSLd.lib PocoUtild.lib" | ||||
| 				OutputFile="bin/TestSuited.exe" | ||||
| 				LinkIncremental="2" | ||||
| 				AdditionalLibraryDirectories="..\..\lib" | ||||
| 				GenerateDebugInformation="TRUE" | ||||
| 				ProgramDatabaseFile="bin/TestSuited.pdb" | ||||
| 				SubSystem="2" | ||||
| 				TargetMachine="1"/> | ||||
| 			<Tool | ||||
| 				Name="VCMIDLTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPostBuildEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreBuildEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreLinkEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCResourceCompilerTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCWebServiceProxyGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCXMLDataGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCWebDeploymentTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCManagedWrapperGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCAuxiliaryManagedWrapperGeneratorTool"/> | ||||
| 		</Configuration> | ||||
| 		<Configuration | ||||
| 			Name="release_shared|Win32" | ||||
| 			OutputDirectory="obj\release_shared" | ||||
| 			IntermediateDirectory="obj\release_shared" | ||||
| 			ConfigurationType="1" | ||||
| 			UseOfMFC="2" | ||||
| 			CharacterSet="2"> | ||||
| 			<Tool | ||||
| 				Name="VCCLCompilerTool" | ||||
| 				Optimization="4" | ||||
| 				InlineFunctionExpansion="1" | ||||
| 				EnableIntrinsicFunctions="TRUE" | ||||
| 				FavorSizeOrSpeed="1" | ||||
| 				OmitFramePointers="TRUE" | ||||
| 				OptimizeForWindowsApplication="TRUE" | ||||
| 				AdditionalIncludeDirectories="..\include;..\..\Net\include;..\..\Foundation\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Util\include" | ||||
| 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_DLL;WINVER=0x0500" | ||||
| 				StringPooling="TRUE" | ||||
| 				RuntimeLibrary="2" | ||||
| 				BufferSecurityCheck="FALSE" | ||||
| 				TreatWChar_tAsBuiltInType="TRUE" | ||||
| 				ForceConformanceInForLoopScope="TRUE" | ||||
| 				RuntimeTypeInfo="TRUE" | ||||
| 				UsePrecompiledHeader="0" | ||||
| 				WarningLevel="3" | ||||
| 				Detect64BitPortabilityProblems="TRUE" | ||||
| 				DebugInformationFormat="3"/> | ||||
| 			<Tool | ||||
| 				Name="VCCustomBuildTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCLinkerTool" | ||||
| 				AdditionalDependencies="CppUnit.lib WinTestRunner.lib PocoFoundation.lib PocoNet.lib PocoNetSSL.lib PocoUtil.lib" | ||||
| 				OutputFile="bin/TestSuite.exe" | ||||
| 				LinkIncremental="1" | ||||
| 				AdditionalLibraryDirectories="..\..\lib" | ||||
| 				GenerateDebugInformation="FALSE" | ||||
| 				ProgramDatabaseFile="" | ||||
| 				SubSystem="2" | ||||
| 				OptimizeReferences="2" | ||||
| 				EnableCOMDATFolding="2" | ||||
| 				TargetMachine="1"/> | ||||
| 			<Tool | ||||
| 				Name="VCMIDLTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPostBuildEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreBuildEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreLinkEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCResourceCompilerTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCWebServiceProxyGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCXMLDataGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCWebDeploymentTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCManagedWrapperGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCAuxiliaryManagedWrapperGeneratorTool"/> | ||||
| 		</Configuration> | ||||
| 		<Configuration | ||||
| 			Name="debug_static|Win32" | ||||
| 			OutputDirectory="$(ConfigurationName)" | ||||
| 			IntermediateDirectory="$(ConfigurationName)" | ||||
| 			ConfigurationType="1" | ||||
| 			UseOfMFC="2" | ||||
| 			CharacterSet="2"> | ||||
| 			<Tool | ||||
| 				Name="VCCLCompilerTool" | ||||
| 				Optimization="0" | ||||
| 				AdditionalIncludeDirectories="..\include;..\..\Net\include;..\..\Foundation\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Util\include" | ||||
| 				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_DLL;WINVER=0x0500" | ||||
| 				MinimalRebuild="TRUE" | ||||
| 				BasicRuntimeChecks="3" | ||||
| 				RuntimeLibrary="3" | ||||
| 				BufferSecurityCheck="TRUE" | ||||
| 				TreatWChar_tAsBuiltInType="TRUE" | ||||
| 				ForceConformanceInForLoopScope="TRUE" | ||||
| 				RuntimeTypeInfo="TRUE" | ||||
| 				UsePrecompiledHeader="0" | ||||
| 				WarningLevel="3" | ||||
| 				Detect64BitPortabilityProblems="TRUE" | ||||
| 				DebugInformationFormat="4"/> | ||||
| 			<Tool | ||||
| 				Name="VCCustomBuildTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCLinkerTool" | ||||
| 				AdditionalDependencies="CppUnitmtd.lib WinTestRunnermtd.lib PocoFoundationmtd.lib PocoNetmtd.lib PocoNetSSLmtd.lib PocoUtilmtd.lib libeay32mtd.lib ssleay32mtd.lib PocoXMLmtd.lib winmm.lib" | ||||
| 				OutputFile="bin/TestSuitemtd.exe" | ||||
| 				LinkIncremental="2" | ||||
| 				AdditionalLibraryDirectories="..\..\lib" | ||||
| 				GenerateDebugInformation="TRUE" | ||||
| 				ProgramDatabaseFile="bin/TestSuited.pdb" | ||||
| 				SubSystem="2" | ||||
| 				TargetMachine="1"/> | ||||
| 			<Tool | ||||
| 				Name="VCMIDLTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPostBuildEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreBuildEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreLinkEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCResourceCompilerTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCWebServiceProxyGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCXMLDataGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCWebDeploymentTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCManagedWrapperGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCAuxiliaryManagedWrapperGeneratorTool"/> | ||||
| 		</Configuration> | ||||
| 		<Configuration | ||||
| 			Name="release_static|Win32" | ||||
| 			OutputDirectory="$(ConfigurationName)" | ||||
| 			IntermediateDirectory="$(ConfigurationName)" | ||||
| 			ConfigurationType="1" | ||||
| 			UseOfMFC="2" | ||||
| 			CharacterSet="2"> | ||||
| 			<Tool | ||||
| 				Name="VCCLCompilerTool" | ||||
| 				Optimization="4" | ||||
| 				InlineFunctionExpansion="1" | ||||
| 				EnableIntrinsicFunctions="TRUE" | ||||
| 				FavorSizeOrSpeed="1" | ||||
| 				OmitFramePointers="TRUE" | ||||
| 				OptimizeForWindowsApplication="TRUE" | ||||
| 				AdditionalIncludeDirectories="..\include;..\..\Net\include;..\..\Foundation\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Util\include" | ||||
| 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_DLL;WINVER=0x0500" | ||||
| 				StringPooling="TRUE" | ||||
| 				RuntimeLibrary="2" | ||||
| 				BufferSecurityCheck="FALSE" | ||||
| 				TreatWChar_tAsBuiltInType="TRUE" | ||||
| 				ForceConformanceInForLoopScope="TRUE" | ||||
| 				RuntimeTypeInfo="TRUE" | ||||
| 				UsePrecompiledHeader="0" | ||||
| 				WarningLevel="3" | ||||
| 				Detect64BitPortabilityProblems="TRUE" | ||||
| 				DebugInformationFormat="3"/> | ||||
| 			<Tool | ||||
| 				Name="VCCustomBuildTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCLinkerTool" | ||||
| 				AdditionalDependencies="CppUnitmt.lib WinTestRunnermt.lib PocoFoundationmt.lib PocoNetmt.lib PocoNetSSLmt.lib PocoUtilmt.lib libeay32mt.lib ssleay32mt.lib PocoXMLmt.lib winmm.lib" | ||||
| 				OutputFile="bin/TestSuitemt.exe" | ||||
| 				LinkIncremental="1" | ||||
| 				AdditionalLibraryDirectories="..\..\lib" | ||||
| 				GenerateDebugInformation="FALSE" | ||||
| 				ProgramDatabaseFile="" | ||||
| 				SubSystem="2" | ||||
| 				OptimizeReferences="2" | ||||
| 				EnableCOMDATFolding="2" | ||||
| 				TargetMachine="1"/> | ||||
| 			<Tool | ||||
| 				Name="VCMIDLTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPostBuildEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreBuildEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreLinkEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCResourceCompilerTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCWebServiceProxyGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCXMLDataGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCWebDeploymentTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCManagedWrapperGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCAuxiliaryManagedWrapperGeneratorTool"/> | ||||
| 		</Configuration> | ||||
| 	</Configurations> | ||||
| 	<References> | ||||
| 	</References> | ||||
| 	<Files> | ||||
| 		<Filter | ||||
| 			Name="_Suite" | ||||
| 			Filter=""> | ||||
| 			<Filter | ||||
| 				Name="Header Files" | ||||
| 				Filter=""> | ||||
| 				<File | ||||
| 					RelativePath=".\src\NetSSLTestSuite.h"> | ||||
| 				</File> | ||||
| 			</Filter> | ||||
| 			<Filter | ||||
| 				Name="Source Files" | ||||
| 				Filter=""> | ||||
| 				<File | ||||
| 					RelativePath=".\src\NetSSLTestSuite.cpp"> | ||||
| 				</File> | ||||
| 			</Filter> | ||||
| 		</Filter> | ||||
| 		<Filter | ||||
| 			Name="_Driver" | ||||
| 			Filter=""> | ||||
| 			<Filter | ||||
| 				Name="Source Files" | ||||
| 				Filter=""> | ||||
| 				<File | ||||
| 					RelativePath=".\src\WinDriver.cpp"> | ||||
| 				</File> | ||||
| 			</Filter> | ||||
| 		</Filter> | ||||
| 		<Filter | ||||
| 			Name="HTTPS" | ||||
| 			Filter=""> | ||||
| 			<Filter | ||||
| 				Name="Header Files" | ||||
| 				Filter=""> | ||||
| 				<File | ||||
| 					RelativePath=".\src\HTTPSTestServer.h"> | ||||
| 				</File> | ||||
| 			</Filter> | ||||
| 			<Filter | ||||
| 				Name="Source Files" | ||||
| 				Filter=""> | ||||
| 				<File | ||||
| 					RelativePath=".\src\HTTPSTestServer.cpp"> | ||||
| 				</File> | ||||
| 			</Filter> | ||||
| 		</Filter> | ||||
| 		<Filter | ||||
| 			Name="HTTPSClient" | ||||
| 			Filter=""> | ||||
| 			<Filter | ||||
| 				Name="Header Files" | ||||
| 				Filter=""> | ||||
| 				<File | ||||
| 					RelativePath=".\src\HTTPSClientSessionTest.h"> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath=".\src\HTTPSClientTestSuite.h"> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath=".\src\HTTPSStreamFactoryTest.h"> | ||||
| 				</File> | ||||
| 			</Filter> | ||||
| 			<Filter | ||||
| 				Name="Source Files" | ||||
| 				Filter=""> | ||||
| 				<File | ||||
| 					RelativePath=".\src\HTTPSClientSessionTest.cpp"> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath=".\src\HTTPSClientTestSuite.cpp"> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath=".\src\HTTPSStreamFactoryTest.cpp"> | ||||
| 				</File> | ||||
| 			</Filter> | ||||
| 		</Filter> | ||||
| 		<Filter | ||||
| 			Name="HTTPServer" | ||||
| 			Filter=""> | ||||
| 			<Filter | ||||
| 				Name="Header Files" | ||||
| 				Filter=""> | ||||
| 				<File | ||||
| 					RelativePath=".\src\HTTPSServerTest.h"> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath=".\src\HTTPSServerTestSuite.h"> | ||||
| 				</File> | ||||
| 			</Filter> | ||||
| 			<Filter | ||||
| 				Name="Source Files" | ||||
| 				Filter=""> | ||||
| 				<File | ||||
| 					RelativePath=".\src\HTTPSServerTest.cpp"> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath=".\src\HTTPSServerTestSuite.cpp"> | ||||
| 				</File> | ||||
| 			</Filter> | ||||
| 		</Filter> | ||||
| 		<Filter | ||||
| 			Name="TCPServer" | ||||
| 			Filter=""> | ||||
| 			<Filter | ||||
| 				Name="Header Files" | ||||
| 				Filter=""> | ||||
| 				<File | ||||
| 					RelativePath=".\src\TCPServerTest.h"> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath=".\src\TCPServerTestSuite.h"> | ||||
| 				</File> | ||||
| 			</Filter> | ||||
| 			<Filter | ||||
| 				Name="Source Files" | ||||
| 				Filter=""> | ||||
| 				<File | ||||
| 					RelativePath=".\src\TCPServerTest.cpp"> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath=".\src\TCPServerTestSuite.cpp"> | ||||
| 				</File> | ||||
| 			</Filter> | ||||
| 		</Filter> | ||||
| 	</Files> | ||||
| 	<Globals> | ||||
| 	</Globals> | ||||
| </VisualStudioProject> | ||||
| <?xml version="1.0" encoding="Windows-1252"?> | ||||
| <VisualStudioProject | ||||
| 	ProjectType="Visual C++" | ||||
| 	Version="7.10" | ||||
| 	Name="TestSuite" | ||||
| 	ProjectGUID="{5B023A89-A469-11DA-8DA6-005056C00008}" | ||||
| 	Keyword="Win32Proj"> | ||||
| 	<Platforms> | ||||
| 		<Platform | ||||
| 			Name="Win32"/> | ||||
| 	</Platforms> | ||||
| 	<Configurations> | ||||
| 		<Configuration | ||||
| 			Name="debug_shared|Win32" | ||||
| 			OutputDirectory="obj\debug_shared" | ||||
| 			IntermediateDirectory="obj\debug_shared" | ||||
| 			ConfigurationType="1" | ||||
| 			UseOfMFC="2" | ||||
| 			CharacterSet="2"> | ||||
| 			<Tool | ||||
| 				Name="VCCLCompilerTool" | ||||
| 				Optimization="0" | ||||
| 				AdditionalIncludeDirectories="..\include;..\..\Net\include;..\..\Foundation\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Util\include" | ||||
| 				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_DLL;WINVER=0x0500" | ||||
| 				MinimalRebuild="TRUE" | ||||
| 				BasicRuntimeChecks="3" | ||||
| 				RuntimeLibrary="3" | ||||
| 				BufferSecurityCheck="TRUE" | ||||
| 				TreatWChar_tAsBuiltInType="TRUE" | ||||
| 				ForceConformanceInForLoopScope="TRUE" | ||||
| 				RuntimeTypeInfo="TRUE" | ||||
| 				UsePrecompiledHeader="0" | ||||
| 				WarningLevel="3" | ||||
| 				Detect64BitPortabilityProblems="TRUE" | ||||
| 				DebugInformationFormat="4"/> | ||||
| 			<Tool | ||||
| 				Name="VCCustomBuildTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCLinkerTool" | ||||
| 				AdditionalDependencies="CppUnitd.lib WinTestRunnerd.lib PocoFoundationd.lib PocoNetd.lib PocoNetSSLd.lib PocoUtild.lib" | ||||
| 				OutputFile="bin/TestSuited.exe" | ||||
| 				LinkIncremental="2" | ||||
| 				AdditionalLibraryDirectories="..\..\lib" | ||||
| 				GenerateDebugInformation="TRUE" | ||||
| 				ProgramDatabaseFile="bin/TestSuited.pdb" | ||||
| 				SubSystem="2" | ||||
| 				TargetMachine="1"/> | ||||
| 			<Tool | ||||
| 				Name="VCMIDLTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPostBuildEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreBuildEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreLinkEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCResourceCompilerTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCWebServiceProxyGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCXMLDataGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCWebDeploymentTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCManagedWrapperGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCAuxiliaryManagedWrapperGeneratorTool"/> | ||||
| 		</Configuration> | ||||
| 		<Configuration | ||||
| 			Name="release_shared|Win32" | ||||
| 			OutputDirectory="obj\release_shared" | ||||
| 			IntermediateDirectory="obj\release_shared" | ||||
| 			ConfigurationType="1" | ||||
| 			UseOfMFC="2" | ||||
| 			CharacterSet="2"> | ||||
| 			<Tool | ||||
| 				Name="VCCLCompilerTool" | ||||
| 				Optimization="4" | ||||
| 				InlineFunctionExpansion="1" | ||||
| 				EnableIntrinsicFunctions="TRUE" | ||||
| 				FavorSizeOrSpeed="1" | ||||
| 				OmitFramePointers="TRUE" | ||||
| 				OptimizeForWindowsApplication="TRUE" | ||||
| 				AdditionalIncludeDirectories="..\include;..\..\Net\include;..\..\Foundation\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Util\include" | ||||
| 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_DLL;WINVER=0x0500" | ||||
| 				StringPooling="TRUE" | ||||
| 				RuntimeLibrary="2" | ||||
| 				BufferSecurityCheck="FALSE" | ||||
| 				TreatWChar_tAsBuiltInType="TRUE" | ||||
| 				ForceConformanceInForLoopScope="TRUE" | ||||
| 				RuntimeTypeInfo="TRUE" | ||||
| 				UsePrecompiledHeader="0" | ||||
| 				WarningLevel="3" | ||||
| 				Detect64BitPortabilityProblems="TRUE" | ||||
| 				DebugInformationFormat="3"/> | ||||
| 			<Tool | ||||
| 				Name="VCCustomBuildTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCLinkerTool" | ||||
| 				AdditionalDependencies="CppUnit.lib WinTestRunner.lib PocoFoundation.lib PocoNet.lib PocoNetSSL.lib PocoUtil.lib" | ||||
| 				OutputFile="bin/TestSuite.exe" | ||||
| 				LinkIncremental="1" | ||||
| 				AdditionalLibraryDirectories="..\..\lib" | ||||
| 				GenerateDebugInformation="FALSE" | ||||
| 				ProgramDatabaseFile="" | ||||
| 				SubSystem="2" | ||||
| 				OptimizeReferences="2" | ||||
| 				EnableCOMDATFolding="2" | ||||
| 				TargetMachine="1"/> | ||||
| 			<Tool | ||||
| 				Name="VCMIDLTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPostBuildEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreBuildEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreLinkEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCResourceCompilerTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCWebServiceProxyGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCXMLDataGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCWebDeploymentTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCManagedWrapperGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCAuxiliaryManagedWrapperGeneratorTool"/> | ||||
| 		</Configuration> | ||||
| 		<Configuration | ||||
| 			Name="debug_static|Win32" | ||||
| 			OutputDirectory="$(ConfigurationName)" | ||||
| 			IntermediateDirectory="$(ConfigurationName)" | ||||
| 			ConfigurationType="1" | ||||
| 			UseOfMFC="2" | ||||
| 			CharacterSet="2"> | ||||
| 			<Tool | ||||
| 				Name="VCCLCompilerTool" | ||||
| 				Optimization="0" | ||||
| 				AdditionalIncludeDirectories="..\include;..\..\Net\include;..\..\Foundation\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Util\include" | ||||
| 				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_DLL;WINVER=0x0500" | ||||
| 				MinimalRebuild="TRUE" | ||||
| 				BasicRuntimeChecks="3" | ||||
| 				RuntimeLibrary="3" | ||||
| 				BufferSecurityCheck="TRUE" | ||||
| 				TreatWChar_tAsBuiltInType="TRUE" | ||||
| 				ForceConformanceInForLoopScope="TRUE" | ||||
| 				RuntimeTypeInfo="TRUE" | ||||
| 				UsePrecompiledHeader="0" | ||||
| 				WarningLevel="3" | ||||
| 				Detect64BitPortabilityProblems="TRUE" | ||||
| 				DebugInformationFormat="4"/> | ||||
| 			<Tool | ||||
| 				Name="VCCustomBuildTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCLinkerTool" | ||||
| 				AdditionalDependencies="CppUnitmtd.lib WinTestRunnermtd.lib PocoFoundationmtd.lib PocoNetmtd.lib PocoNetSSLmtd.lib PocoUtilmtd.lib libeay32mtd.lib ssleay32mtd.lib PocoXMLmtd.lib winmm.lib" | ||||
| 				OutputFile="bin/TestSuitemtd.exe" | ||||
| 				LinkIncremental="2" | ||||
| 				AdditionalLibraryDirectories="..\..\lib" | ||||
| 				GenerateDebugInformation="TRUE" | ||||
| 				ProgramDatabaseFile="bin/TestSuited.pdb" | ||||
| 				SubSystem="2" | ||||
| 				TargetMachine="1"/> | ||||
| 			<Tool | ||||
| 				Name="VCMIDLTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPostBuildEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreBuildEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreLinkEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCResourceCompilerTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCWebServiceProxyGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCXMLDataGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCWebDeploymentTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCManagedWrapperGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCAuxiliaryManagedWrapperGeneratorTool"/> | ||||
| 		</Configuration> | ||||
| 		<Configuration | ||||
| 			Name="release_static|Win32" | ||||
| 			OutputDirectory="$(ConfigurationName)" | ||||
| 			IntermediateDirectory="$(ConfigurationName)" | ||||
| 			ConfigurationType="1" | ||||
| 			UseOfMFC="2" | ||||
| 			CharacterSet="2"> | ||||
| 			<Tool | ||||
| 				Name="VCCLCompilerTool" | ||||
| 				Optimization="4" | ||||
| 				InlineFunctionExpansion="1" | ||||
| 				EnableIntrinsicFunctions="TRUE" | ||||
| 				FavorSizeOrSpeed="1" | ||||
| 				OmitFramePointers="TRUE" | ||||
| 				OptimizeForWindowsApplication="TRUE" | ||||
| 				AdditionalIncludeDirectories="..\include;..\..\Net\include;..\..\Foundation\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Util\include" | ||||
| 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_DLL;WINVER=0x0500" | ||||
| 				StringPooling="TRUE" | ||||
| 				RuntimeLibrary="2" | ||||
| 				BufferSecurityCheck="FALSE" | ||||
| 				TreatWChar_tAsBuiltInType="TRUE" | ||||
| 				ForceConformanceInForLoopScope="TRUE" | ||||
| 				RuntimeTypeInfo="TRUE" | ||||
| 				UsePrecompiledHeader="0" | ||||
| 				WarningLevel="3" | ||||
| 				Detect64BitPortabilityProblems="TRUE" | ||||
| 				DebugInformationFormat="3"/> | ||||
| 			<Tool | ||||
| 				Name="VCCustomBuildTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCLinkerTool" | ||||
| 				AdditionalDependencies="CppUnitmt.lib WinTestRunnermt.lib PocoFoundationmt.lib PocoNetmt.lib PocoNetSSLmt.lib PocoUtilmt.lib libeay32mt.lib ssleay32mt.lib PocoXMLmt.lib winmm.lib" | ||||
| 				OutputFile="bin/TestSuitemt.exe" | ||||
| 				LinkIncremental="1" | ||||
| 				AdditionalLibraryDirectories="..\..\lib" | ||||
| 				GenerateDebugInformation="FALSE" | ||||
| 				ProgramDatabaseFile="" | ||||
| 				SubSystem="2" | ||||
| 				OptimizeReferences="2" | ||||
| 				EnableCOMDATFolding="2" | ||||
| 				TargetMachine="1"/> | ||||
| 			<Tool | ||||
| 				Name="VCMIDLTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPostBuildEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreBuildEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreLinkEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCResourceCompilerTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCWebServiceProxyGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCXMLDataGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCWebDeploymentTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCManagedWrapperGeneratorTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCAuxiliaryManagedWrapperGeneratorTool"/> | ||||
| 		</Configuration> | ||||
| 	</Configurations> | ||||
| 	<References> | ||||
| 	</References> | ||||
| 	<Files> | ||||
| 		<Filter | ||||
| 			Name="_Suite" | ||||
| 			Filter=""> | ||||
| 			<Filter | ||||
| 				Name="Header Files" | ||||
| 				Filter=""> | ||||
| 				<File | ||||
| 					RelativePath=".\src\NetSSLTestSuite.h"> | ||||
| 				</File> | ||||
| 			</Filter> | ||||
| 			<Filter | ||||
| 				Name="Source Files" | ||||
| 				Filter=""> | ||||
| 				<File | ||||
| 					RelativePath=".\src\NetSSLTestSuite.cpp"> | ||||
| 				</File> | ||||
| 			</Filter> | ||||
| 		</Filter> | ||||
| 		<Filter | ||||
| 			Name="_Driver" | ||||
| 			Filter=""> | ||||
| 			<Filter | ||||
| 				Name="Source Files" | ||||
| 				Filter=""> | ||||
| 				<File | ||||
| 					RelativePath=".\src\WinDriver.cpp"> | ||||
| 				</File> | ||||
| 			</Filter> | ||||
| 		</Filter> | ||||
| 		<Filter | ||||
| 			Name="HTTPS" | ||||
| 			Filter=""> | ||||
| 			<Filter | ||||
| 				Name="Header Files" | ||||
| 				Filter=""> | ||||
| 				<File | ||||
| 					RelativePath=".\src\HTTPSTestServer.h"> | ||||
| 				</File> | ||||
| 			</Filter> | ||||
| 			<Filter | ||||
| 				Name="Source Files" | ||||
| 				Filter=""> | ||||
| 				<File | ||||
| 					RelativePath=".\src\HTTPSTestServer.cpp"> | ||||
| 				</File> | ||||
| 			</Filter> | ||||
| 		</Filter> | ||||
| 		<Filter | ||||
| 			Name="HTTPSClient" | ||||
| 			Filter=""> | ||||
| 			<Filter | ||||
| 				Name="Header Files" | ||||
| 				Filter=""> | ||||
| 				<File | ||||
| 					RelativePath=".\src\HTTPSClientSessionTest.h"> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath=".\src\HTTPSClientTestSuite.h"> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath=".\src\HTTPSStreamFactoryTest.h"> | ||||
| 				</File> | ||||
| 			</Filter> | ||||
| 			<Filter | ||||
| 				Name="Source Files" | ||||
| 				Filter=""> | ||||
| 				<File | ||||
| 					RelativePath=".\src\HTTPSClientSessionTest.cpp"> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath=".\src\HTTPSClientTestSuite.cpp"> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath=".\src\HTTPSStreamFactoryTest.cpp"> | ||||
| 				</File> | ||||
| 			</Filter> | ||||
| 		</Filter> | ||||
| 		<Filter | ||||
| 			Name="HTTPServer" | ||||
| 			Filter=""> | ||||
| 			<Filter | ||||
| 				Name="Header Files" | ||||
| 				Filter=""> | ||||
| 				<File | ||||
| 					RelativePath=".\src\HTTPSServerTest.h"> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath=".\src\HTTPSServerTestSuite.h"> | ||||
| 				</File> | ||||
| 			</Filter> | ||||
| 			<Filter | ||||
| 				Name="Source Files" | ||||
| 				Filter=""> | ||||
| 				<File | ||||
| 					RelativePath=".\src\HTTPSServerTest.cpp"> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath=".\src\HTTPSServerTestSuite.cpp"> | ||||
| 				</File> | ||||
| 			</Filter> | ||||
| 		</Filter> | ||||
| 		<Filter | ||||
| 			Name="TCPServer" | ||||
| 			Filter=""> | ||||
| 			<Filter | ||||
| 				Name="Header Files" | ||||
| 				Filter=""> | ||||
| 				<File | ||||
| 					RelativePath=".\src\TCPServerTest.h"> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath=".\src\TCPServerTestSuite.h"> | ||||
| 				</File> | ||||
| 			</Filter> | ||||
| 			<Filter | ||||
| 				Name="Source Files" | ||||
| 				Filter=""> | ||||
| 				<File | ||||
| 					RelativePath=".\src\TCPServerTest.cpp"> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath=".\src\TCPServerTestSuite.cpp"> | ||||
| 				</File> | ||||
| 			</Filter> | ||||
| 		</Filter> | ||||
| 	</Files> | ||||
| 	<Globals> | ||||
| 	</Globals> | ||||
| </VisualStudioProject> | ||||
|   | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -1,48 +1,48 @@ | ||||
| -----BEGIN CERTIFICATE----- | ||||
| MIICaDCCAdECCQCzfxSsk7yaLjANBgkqhkiG9w0BAQUFADBzMQswCQYDVQQGEwJB | ||||
| VDESMBAGA1UECBMJQ2FyaW50aGlhMRIwEAYDVQQHEwlTdC4gSmFrb2IxDzANBgNV | ||||
| BAoTBkFwcEluZjEPMA0GA1UEAxMGQXBwSW5mMRowGAYJKoZIhvcNAQkBFgthcHBA | ||||
| aW5mLmNvbTAeFw0wNjAzMDExMzA3MzFaFw0wNjAzMzExMzA3MzFaMH4xCzAJBgNV | ||||
| BAYTAkFUMRIwEAYDVQQIEwlDYXJpbnRoaWExETAPBgNVBAcTCFN0IEpha29iMRww | ||||
| GgYDVQQKExNBcHBsaWVkIEluZm9ybWF0aWNzMQowCAYDVQQDFAEqMR4wHAYJKoZI | ||||
| hvcNAQkBFg9pbmZvQGFwcGluZi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ | ||||
| AoGBAJHGyXDHyCYoWz+65ltNwwZbhwOGnxr9P1WMATuFJh0bPBZxKbZRdbTm9KhZ | ||||
| OlvsEIsfgiYdsxURYIqXfEgISYLZcZY0pQwGEOmB+0NeC/+ENSfOlNSthx6zSVlc | ||||
| zhJ7+dJOGwepHAiLr1fRuc5jogYLraE+lKTnqAAFfzwvti77AgMBAAEwDQYJKoZI | ||||
| hvcNAQEFBQADgYEAY/ZoeY1ukkEJX7259NeoVM0oahlulWV0rlCqyaeosOiDORPT | ||||
| m6X1w/5MTCf9VyaD1zukoSZ4QqNVjHFXcXidbB7Tgt3yRuZ5PC5LIFCDPv9mgPne | ||||
| mUA70yfctNfza2z3ZiQ6NDkW3mZX+1tmxYIrJQIrkVeYeqf1Gh2nyZrUMcE= | ||||
| -----END CERTIFICATE----- | ||||
| -----BEGIN RSA PRIVATE KEY----- | ||||
| Proc-Type: 4,ENCRYPTED | ||||
| DEK-Info: DES-EDE3-CBC,E7AE93C9E49184EA | ||||
|  | ||||
| A2IqzNcWs+I5vzV+i+woDk56+yr58eU0Onw8eEvXkLjnSc58JU4327IF7yUbKWdW | ||||
| Q7BYGGOkVFiZ7ANOwviDg5SUhxRDWCcW8dS6/p1vfdQ1C3qj2OwJjkpg0aDBIzJn | ||||
| FzgguT3MF3ama77vxv0S3kOfmCj62MLqPGpj5pQ0/1hefRFbL8oAX8bXUN7/rmGM | ||||
| Zc0QyzFZv2iQ04dY/6TNclwKPB4H0On4K+8BMs3PRkWA0clCaQaFO2+iwnk3XZfe | ||||
| +MsKUEbLCpAQeYspYv1cw38dCdWq1KTP5aJk+oXgwjfX5cAaPTz74NTqTIsCcaTD | ||||
| 3vy7ukJYFlDR9Kyo7z8rMazYrKJslhnuRH0BhK9st9McwL957j5tZmrKyraCcmCx | ||||
| dMAGcsis1va3ayYZpIpFqA4EhYrTM+6N8ZRfUap20+b5IQwHfTQDejUhL6rBwy7j | ||||
| Ti5yD83/itoOMyXq2sV/XWfVD5zk/P5iv22O1EAQMhhnPB9K/I/JhuSGQJfn3cNh | ||||
| ykOUYT0+vDeSeEVa+FVEP1W35G0alTbKbNs5Tb8KxJ3iDJUxokM//SvPXZy9hOVX | ||||
| Y05imB04J15DaGbAHlNzunhuJi7121WV/JRXZRW9diE6hwpD8rwqi3FMuRUmy7U9 | ||||
| aFA5poKRAYlo9YtZ3YpFyjGKB6MfCQcB2opuSnQ/gbugV41m67uQ4CDwWLaNRkTb | ||||
| GlsMBNcHnidg15Bsat5HaB7l250ukrI13Uw1MYdDUzaS3gPfw9aC4F2w0p3U+DPH | ||||
| 80/zePxtroR7T4/+rI136Rl+aMXDMOEGCX1TVP8rjuZzuRyUSUKC8Q== | ||||
| -----END RSA PRIVATE KEY----- | ||||
| -----BEGIN CERTIFICATE----- | ||||
| MIICXTCCAcYCCQC1Vk/N8qR4AjANBgkqhkiG9w0BAQUFADBzMQswCQYDVQQGEwJB | ||||
| VDESMBAGA1UECBMJQ2FyaW50aGlhMRIwEAYDVQQHEwlTdC4gSmFrb2IxDzANBgNV | ||||
| BAoTBkFwcEluZjEPMA0GA1UEAxMGQXBwSW5mMRowGAYJKoZIhvcNAQkBFgthcHBA | ||||
| aW5mLmNvbTAeFw0wNjAyMjcxMzI3MThaFw0wNjAzMjkxMzI3MThaMHMxCzAJBgNV | ||||
| BAYTAkFUMRIwEAYDVQQIEwlDYXJpbnRoaWExEjAQBgNVBAcTCVN0LiBKYWtvYjEP | ||||
| MA0GA1UEChMGQXBwSW5mMQ8wDQYDVQQDEwZBcHBJbmYxGjAYBgkqhkiG9w0BCQEW | ||||
| C2FwcEBpbmYuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCsFXiPuicN | ||||
| Im4oJwF8NuaFN+lgYwcZ6dAO3ILIR3kLA2PxF8HSQLfF8J8a4odZhLhctIMAKTxm | ||||
| k0w8TW5qhL8QLdGzY9vzvkgdKOkan2t3sMeXJAfrM1AphTsmgntAQazGZjOj5p4W | ||||
| jDnxQ+VXAylqwjHh49eSBxM3wgoscF4iLQIDAQABMA0GCSqGSIb3DQEBBQUAA4GB | ||||
| AIpfLdXiKchPvFMhQS8xTtXvrw5dVL3yImUMYs4GQi8RrjGmfGB3yMAR7B/b8v4a | ||||
| +ztfusgWAWiUKuSGTk4S8YB0fsFlmOv0WDr+PyZ4Lui/a8opbyzGE7rqpnF/s0GO | ||||
| M7uLCNNwIN7WhmxcWV0KZU1wTppoSWPJda1yTbBzF9XP | ||||
| -----END CERTIFICATE----- | ||||
| -----BEGIN CERTIFICATE----- | ||||
| MIICaDCCAdECCQCzfxSsk7yaLjANBgkqhkiG9w0BAQUFADBzMQswCQYDVQQGEwJB | ||||
| VDESMBAGA1UECBMJQ2FyaW50aGlhMRIwEAYDVQQHEwlTdC4gSmFrb2IxDzANBgNV | ||||
| BAoTBkFwcEluZjEPMA0GA1UEAxMGQXBwSW5mMRowGAYJKoZIhvcNAQkBFgthcHBA | ||||
| aW5mLmNvbTAeFw0wNjAzMDExMzA3MzFaFw0wNjAzMzExMzA3MzFaMH4xCzAJBgNV | ||||
| BAYTAkFUMRIwEAYDVQQIEwlDYXJpbnRoaWExETAPBgNVBAcTCFN0IEpha29iMRww | ||||
| GgYDVQQKExNBcHBsaWVkIEluZm9ybWF0aWNzMQowCAYDVQQDFAEqMR4wHAYJKoZI | ||||
| hvcNAQkBFg9pbmZvQGFwcGluZi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ | ||||
| AoGBAJHGyXDHyCYoWz+65ltNwwZbhwOGnxr9P1WMATuFJh0bPBZxKbZRdbTm9KhZ | ||||
| OlvsEIsfgiYdsxURYIqXfEgISYLZcZY0pQwGEOmB+0NeC/+ENSfOlNSthx6zSVlc | ||||
| zhJ7+dJOGwepHAiLr1fRuc5jogYLraE+lKTnqAAFfzwvti77AgMBAAEwDQYJKoZI | ||||
| hvcNAQEFBQADgYEAY/ZoeY1ukkEJX7259NeoVM0oahlulWV0rlCqyaeosOiDORPT | ||||
| m6X1w/5MTCf9VyaD1zukoSZ4QqNVjHFXcXidbB7Tgt3yRuZ5PC5LIFCDPv9mgPne | ||||
| mUA70yfctNfza2z3ZiQ6NDkW3mZX+1tmxYIrJQIrkVeYeqf1Gh2nyZrUMcE= | ||||
| -----END CERTIFICATE----- | ||||
| -----BEGIN RSA PRIVATE KEY----- | ||||
| Proc-Type: 4,ENCRYPTED | ||||
| DEK-Info: DES-EDE3-CBC,E7AE93C9E49184EA | ||||
|  | ||||
| A2IqzNcWs+I5vzV+i+woDk56+yr58eU0Onw8eEvXkLjnSc58JU4327IF7yUbKWdW | ||||
| Q7BYGGOkVFiZ7ANOwviDg5SUhxRDWCcW8dS6/p1vfdQ1C3qj2OwJjkpg0aDBIzJn | ||||
| FzgguT3MF3ama77vxv0S3kOfmCj62MLqPGpj5pQ0/1hefRFbL8oAX8bXUN7/rmGM | ||||
| Zc0QyzFZv2iQ04dY/6TNclwKPB4H0On4K+8BMs3PRkWA0clCaQaFO2+iwnk3XZfe | ||||
| +MsKUEbLCpAQeYspYv1cw38dCdWq1KTP5aJk+oXgwjfX5cAaPTz74NTqTIsCcaTD | ||||
| 3vy7ukJYFlDR9Kyo7z8rMazYrKJslhnuRH0BhK9st9McwL957j5tZmrKyraCcmCx | ||||
| dMAGcsis1va3ayYZpIpFqA4EhYrTM+6N8ZRfUap20+b5IQwHfTQDejUhL6rBwy7j | ||||
| Ti5yD83/itoOMyXq2sV/XWfVD5zk/P5iv22O1EAQMhhnPB9K/I/JhuSGQJfn3cNh | ||||
| ykOUYT0+vDeSeEVa+FVEP1W35G0alTbKbNs5Tb8KxJ3iDJUxokM//SvPXZy9hOVX | ||||
| Y05imB04J15DaGbAHlNzunhuJi7121WV/JRXZRW9diE6hwpD8rwqi3FMuRUmy7U9 | ||||
| aFA5poKRAYlo9YtZ3YpFyjGKB6MfCQcB2opuSnQ/gbugV41m67uQ4CDwWLaNRkTb | ||||
| GlsMBNcHnidg15Bsat5HaB7l250ukrI13Uw1MYdDUzaS3gPfw9aC4F2w0p3U+DPH | ||||
| 80/zePxtroR7T4/+rI136Rl+aMXDMOEGCX1TVP8rjuZzuRyUSUKC8Q== | ||||
| -----END RSA PRIVATE KEY----- | ||||
| -----BEGIN CERTIFICATE----- | ||||
| MIICXTCCAcYCCQC1Vk/N8qR4AjANBgkqhkiG9w0BAQUFADBzMQswCQYDVQQGEwJB | ||||
| VDESMBAGA1UECBMJQ2FyaW50aGlhMRIwEAYDVQQHEwlTdC4gSmFrb2IxDzANBgNV | ||||
| BAoTBkFwcEluZjEPMA0GA1UEAxMGQXBwSW5mMRowGAYJKoZIhvcNAQkBFgthcHBA | ||||
| aW5mLmNvbTAeFw0wNjAyMjcxMzI3MThaFw0wNjAzMjkxMzI3MThaMHMxCzAJBgNV | ||||
| BAYTAkFUMRIwEAYDVQQIEwlDYXJpbnRoaWExEjAQBgNVBAcTCVN0LiBKYWtvYjEP | ||||
| MA0GA1UEChMGQXBwSW5mMQ8wDQYDVQQDEwZBcHBJbmYxGjAYBgkqhkiG9w0BCQEW | ||||
| C2FwcEBpbmYuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCsFXiPuicN | ||||
| Im4oJwF8NuaFN+lgYwcZ6dAO3ILIR3kLA2PxF8HSQLfF8J8a4odZhLhctIMAKTxm | ||||
| k0w8TW5qhL8QLdGzY9vzvkgdKOkan2t3sMeXJAfrM1AphTsmgntAQazGZjOj5p4W | ||||
| jDnxQ+VXAylqwjHh49eSBxM3wgoscF4iLQIDAQABMA0GCSqGSIb3DQEBBQUAA4GB | ||||
| AIpfLdXiKchPvFMhQS8xTtXvrw5dVL3yImUMYs4GQi8RrjGmfGB3yMAR7B/b8v4a | ||||
| +ztfusgWAWiUKuSGTk4S8YB0fsFlmOv0WDr+PyZ4Lui/a8opbyzGE7rqpnF/s0GO | ||||
| M7uLCNNwIN7WhmxcWV0KZU1wTppoSWPJda1yTbBzF9XP | ||||
| -----END CERTIFICATE----- | ||||
|   | ||||
| @@ -1,15 +1,15 @@ | ||||
| -----BEGIN CERTIFICATE----- | ||||
| MIICXTCCAcYCCQC1Vk/N8qR4AjANBgkqhkiG9w0BAQUFADBzMQswCQYDVQQGEwJB | ||||
| VDESMBAGA1UECBMJQ2FyaW50aGlhMRIwEAYDVQQHEwlTdC4gSmFrb2IxDzANBgNV | ||||
| BAoTBkFwcEluZjEPMA0GA1UEAxMGQXBwSW5mMRowGAYJKoZIhvcNAQkBFgthcHBA | ||||
| aW5mLmNvbTAeFw0wNjAyMjcxMzI3MThaFw0wNjAzMjkxMzI3MThaMHMxCzAJBgNV | ||||
| BAYTAkFUMRIwEAYDVQQIEwlDYXJpbnRoaWExEjAQBgNVBAcTCVN0LiBKYWtvYjEP | ||||
| MA0GA1UEChMGQXBwSW5mMQ8wDQYDVQQDEwZBcHBJbmYxGjAYBgkqhkiG9w0BCQEW | ||||
| C2FwcEBpbmYuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCsFXiPuicN | ||||
| Im4oJwF8NuaFN+lgYwcZ6dAO3ILIR3kLA2PxF8HSQLfF8J8a4odZhLhctIMAKTxm | ||||
| k0w8TW5qhL8QLdGzY9vzvkgdKOkan2t3sMeXJAfrM1AphTsmgntAQazGZjOj5p4W | ||||
| jDnxQ+VXAylqwjHh49eSBxM3wgoscF4iLQIDAQABMA0GCSqGSIb3DQEBBQUAA4GB | ||||
| AIpfLdXiKchPvFMhQS8xTtXvrw5dVL3yImUMYs4GQi8RrjGmfGB3yMAR7B/b8v4a | ||||
| +ztfusgWAWiUKuSGTk4S8YB0fsFlmOv0WDr+PyZ4Lui/a8opbyzGE7rqpnF/s0GO | ||||
| M7uLCNNwIN7WhmxcWV0KZU1wTppoSWPJda1yTbBzF9XP | ||||
| -----END CERTIFICATE----- | ||||
| -----BEGIN CERTIFICATE----- | ||||
| MIICXTCCAcYCCQC1Vk/N8qR4AjANBgkqhkiG9w0BAQUFADBzMQswCQYDVQQGEwJB | ||||
| VDESMBAGA1UECBMJQ2FyaW50aGlhMRIwEAYDVQQHEwlTdC4gSmFrb2IxDzANBgNV | ||||
| BAoTBkFwcEluZjEPMA0GA1UEAxMGQXBwSW5mMRowGAYJKoZIhvcNAQkBFgthcHBA | ||||
| aW5mLmNvbTAeFw0wNjAyMjcxMzI3MThaFw0wNjAzMjkxMzI3MThaMHMxCzAJBgNV | ||||
| BAYTAkFUMRIwEAYDVQQIEwlDYXJpbnRoaWExEjAQBgNVBAcTCVN0LiBKYWtvYjEP | ||||
| MA0GA1UEChMGQXBwSW5mMQ8wDQYDVQQDEwZBcHBJbmYxGjAYBgkqhkiG9w0BCQEW | ||||
| C2FwcEBpbmYuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCsFXiPuicN | ||||
| Im4oJwF8NuaFN+lgYwcZ6dAO3ILIR3kLA2PxF8HSQLfF8J8a4odZhLhctIMAKTxm | ||||
| k0w8TW5qhL8QLdGzY9vzvkgdKOkan2t3sMeXJAfrM1AphTsmgntAQazGZjOj5p4W | ||||
| jDnxQ+VXAylqwjHh49eSBxM3wgoscF4iLQIDAQABMA0GCSqGSIb3DQEBBQUAA4GB | ||||
| AIpfLdXiKchPvFMhQS8xTtXvrw5dVL3yImUMYs4GQi8RrjGmfGB3yMAR7B/b8v4a | ||||
| +ztfusgWAWiUKuSGTk4S8YB0fsFlmOv0WDr+PyZ4Lui/a8opbyzGE7rqpnF/s0GO | ||||
| M7uLCNNwIN7WhmxcWV0KZU1wTppoSWPJda1yTbBzF9XP | ||||
| -----END CERTIFICATE----- | ||||
|   | ||||
| @@ -1,84 +1,84 @@ | ||||
| // | ||||
| // Driver.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/testsuite/src/Driver.cpp#1 $ | ||||
| // | ||||
| // Console-based test driver for Poco NetSSL. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "CppUnit/TestRunner.h" | ||||
| #include "NetSSLTestSuite.h" | ||||
| #include "Poco/Util/Application.h" | ||||
| #include "Poco/Net/HTTPStreamFactory.h" | ||||
| #include "Poco/Net/HTTPSStreamFactory.h" | ||||
| #include <iostream> | ||||
|  | ||||
|  | ||||
| class NetSSLApp: public Poco::Util::Application | ||||
| { | ||||
| public: | ||||
| 	NetSSLApp() | ||||
| 	{ | ||||
| 	} | ||||
|  | ||||
| 	~NetSSLApp() | ||||
| 	{ | ||||
| 	} | ||||
|  | ||||
| protected:	 | ||||
| 	void initialize(Poco::Util::Application& self) | ||||
| 	{ | ||||
| 		loadConfiguration(); // load default configuration files, if present | ||||
| 		Poco::Util::Application::initialize(self); | ||||
| 	} | ||||
| }; | ||||
|  | ||||
|  | ||||
| int main(int ac, char **av) | ||||
| { | ||||
| 	Poco::Net::HTTPStreamFactory::registerFactory(); | ||||
| 	Poco::Net::HTTPSStreamFactory::registerFactory(); | ||||
| 	NetSSLApp app; | ||||
| 	try | ||||
| 	{ | ||||
| 		app.init(1, av); | ||||
| 	} | ||||
| 	catch (Poco::Exception& exc) | ||||
| 	{ | ||||
| 		std::cout << exc.displayText() << std::endl; | ||||
| 		return 1; | ||||
| 	} | ||||
|  | ||||
| 	std::vector<std::string> args; | ||||
| 	for (int i = 0; i < ac; ++i) | ||||
| 		args.push_back(std::string(av[i])); | ||||
| 	CppUnit::TestRunner runner; | ||||
| 	runner.addTest("NetSSLTestSuite", NetSSLTestSuite::suite()); | ||||
| 	return runner.run(args) ? 0 : 1; | ||||
| } | ||||
| // | ||||
| // Driver.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/testsuite/src/Driver.cpp#1 $ | ||||
| // | ||||
| // Console-based test driver for Poco NetSSL. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "CppUnit/TestRunner.h" | ||||
| #include "NetSSLTestSuite.h" | ||||
| #include "Poco/Util/Application.h" | ||||
| #include "Poco/Net/HTTPStreamFactory.h" | ||||
| #include "Poco/Net/HTTPSStreamFactory.h" | ||||
| #include <iostream> | ||||
|  | ||||
|  | ||||
| class NetSSLApp: public Poco::Util::Application | ||||
| { | ||||
| public: | ||||
| 	NetSSLApp() | ||||
| 	{ | ||||
| 	} | ||||
|  | ||||
| 	~NetSSLApp() | ||||
| 	{ | ||||
| 	} | ||||
|  | ||||
| protected:	 | ||||
| 	void initialize(Poco::Util::Application& self) | ||||
| 	{ | ||||
| 		loadConfiguration(); // load default configuration files, if present | ||||
| 		Poco::Util::Application::initialize(self); | ||||
| 	} | ||||
| }; | ||||
|  | ||||
|  | ||||
| int main(int ac, char **av) | ||||
| { | ||||
| 	Poco::Net::HTTPStreamFactory::registerFactory(); | ||||
| 	Poco::Net::HTTPSStreamFactory::registerFactory(); | ||||
| 	NetSSLApp app; | ||||
| 	try | ||||
| 	{ | ||||
| 		app.init(1, av); | ||||
| 	} | ||||
| 	catch (Poco::Exception& exc) | ||||
| 	{ | ||||
| 		std::cout << exc.displayText() << std::endl; | ||||
| 		return 1; | ||||
| 	} | ||||
|  | ||||
| 	std::vector<std::string> args; | ||||
| 	for (int i = 0; i < ac; ++i) | ||||
| 		args.push_back(std::string(av[i])); | ||||
| 	CppUnit::TestRunner runner; | ||||
| 	runner.addTest("NetSSLTestSuite", NetSSLTestSuite::suite()); | ||||
| 	return runner.run(args) ? 0 : 1; | ||||
| } | ||||
|   | ||||
| @@ -1,46 +1,46 @@ | ||||
| // | ||||
| // HTTPSClientTestSuite.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/testsuite/src/HTTPSClientTestSuite.cpp#1 $ | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "HTTPSClientTestSuite.h" | ||||
| #include "HTTPSClientSessionTest.h" | ||||
| #include "HTTPSStreamFactoryTest.h" | ||||
|  | ||||
|  | ||||
| CppUnit::Test* HTTPSClientTestSuite::suite() | ||||
| { | ||||
| 	CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("HTTPSClientTestSuite"); | ||||
|  | ||||
| 	pSuite->addTest(HTTPSClientSessionTest::suite()); | ||||
| 	pSuite->addTest(HTTPSStreamFactoryTest::suite()); | ||||
|  | ||||
| 	return pSuite; | ||||
| } | ||||
| // | ||||
| // HTTPSClientTestSuite.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/testsuite/src/HTTPSClientTestSuite.cpp#1 $ | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "HTTPSClientTestSuite.h" | ||||
| #include "HTTPSClientSessionTest.h" | ||||
| #include "HTTPSStreamFactoryTest.h" | ||||
|  | ||||
|  | ||||
| CppUnit::Test* HTTPSClientTestSuite::suite() | ||||
| { | ||||
| 	CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("HTTPSClientTestSuite"); | ||||
|  | ||||
| 	pSuite->addTest(HTTPSClientSessionTest::suite()); | ||||
| 	pSuite->addTest(HTTPSStreamFactoryTest::suite()); | ||||
|  | ||||
| 	return pSuite; | ||||
| } | ||||
|   | ||||
| @@ -1,49 +1,49 @@ | ||||
| // | ||||
| // HTTPSClientTestSuite.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/testsuite/src/HTTPSClientTestSuite.h#1 $ | ||||
| // | ||||
| // Definition of the HTTPSClientTestSuite class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef HTTPSClientTestSuite_INCLUDED | ||||
| #define HTTPSClientTestSuite_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "CppUnit/TestSuite.h" | ||||
|  | ||||
|  | ||||
| class HTTPSClientTestSuite | ||||
| { | ||||
| public: | ||||
| 	static CppUnit::Test* suite(); | ||||
| }; | ||||
|  | ||||
|  | ||||
| #endif // HTTPSClientTestSuite_INCLUDED | ||||
| // | ||||
| // HTTPSClientTestSuite.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/testsuite/src/HTTPSClientTestSuite.h#1 $ | ||||
| // | ||||
| // Definition of the HTTPSClientTestSuite class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef HTTPSClientTestSuite_INCLUDED | ||||
| #define HTTPSClientTestSuite_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "CppUnit/TestSuite.h" | ||||
|  | ||||
|  | ||||
| class HTTPSClientTestSuite | ||||
| { | ||||
| public: | ||||
| 	static CppUnit::Test* suite(); | ||||
| }; | ||||
|  | ||||
|  | ||||
| #endif // HTTPSClientTestSuite_INCLUDED | ||||
|   | ||||
| @@ -1,421 +1,421 @@ | ||||
| // | ||||
| // HTTPSServerTest.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/testsuite/src/HTTPSServerTest.cpp#2 $ | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "HTTPSServerTest.h" | ||||
| #include "CppUnit/TestCaller.h" | ||||
| #include "CppUnit/TestSuite.h" | ||||
| #include "Poco/Net/HTTPServer.h" | ||||
| #include "Poco/Net/HTTPServerParams.h" | ||||
| #include "Poco/Net/HTTPRequestHandler.h" | ||||
| #include "Poco/Net/HTTPRequestHandlerFactory.h" | ||||
| #include "Poco/Net/HTTPSClientSession.h" | ||||
| #include "Poco/Net/HTTPRequest.h" | ||||
| #include "Poco/Net/HTTPServerRequest.h" | ||||
| #include "Poco/Net/HTTPResponse.h" | ||||
| #include "Poco/Net/HTTPServerResponse.h" | ||||
| #include "Poco/Net/SecureServerSocket.h" | ||||
| #include "Poco/StreamCopier.h" | ||||
| #include <sstream> | ||||
|  | ||||
|  | ||||
| using Poco::Net::HTTPServer; | ||||
| using Poco::Net::HTTPServerParams; | ||||
| using Poco::Net::HTTPRequestHandler; | ||||
| using Poco::Net::HTTPRequestHandlerFactory; | ||||
| using Poco::Net::HTTPSClientSession; | ||||
| using Poco::Net::HTTPRequest; | ||||
| using Poco::Net::HTTPServerRequest; | ||||
| using Poco::Net::HTTPResponse; | ||||
| using Poco::Net::HTTPServerResponse; | ||||
| using Poco::Net::HTTPMessage; | ||||
| using Poco::Net::SecureServerSocket; | ||||
| using Poco::StreamCopier; | ||||
|  | ||||
|  | ||||
| namespace | ||||
| { | ||||
| 	class EchoBodyRequestHandler: public HTTPRequestHandler | ||||
| 	{ | ||||
| 	public: | ||||
| 		void handleRequest(HTTPServerRequest& request, HTTPServerResponse& response) | ||||
| 		{ | ||||
| 			if (request.getChunkedTransferEncoding()) | ||||
| 				response.setChunkedTransferEncoding(true); | ||||
| 			else if (request.getContentLength() != HTTPMessage::UNKNOWN_CONTENT_LENGTH) | ||||
| 				response.setContentLength(request.getContentLength()); | ||||
| 			 | ||||
| 			response.setContentType(request.getContentType()); | ||||
| 			 | ||||
| 			std::istream& istr = request.stream(); | ||||
| 			std::ostream& ostr = response.send(); | ||||
| 			int n = StreamCopier::copyStream(istr, ostr); | ||||
| 		} | ||||
| 	}; | ||||
| 	 | ||||
| 	class EchoHeaderRequestHandler: public HTTPRequestHandler | ||||
| 	{ | ||||
| 	public: | ||||
| 		void handleRequest(HTTPServerRequest& request, HTTPServerResponse& response) | ||||
| 		{ | ||||
| 			std::ostringstream osstr; | ||||
| 			request.write(osstr); | ||||
| 			int n = (int) osstr.str().length(); | ||||
| 			response.setContentLength(n); | ||||
| 			std::ostream& ostr = response.send(); | ||||
| 			if (request.getMethod() != HTTPRequest::HTTP_HEAD) | ||||
| 				request.write(ostr); | ||||
| 		} | ||||
| 	}; | ||||
|  | ||||
| 	class RedirectRequestHandler: public HTTPRequestHandler | ||||
| 	{ | ||||
| 	public: | ||||
| 		void handleRequest(HTTPServerRequest& request, HTTPServerResponse& response) | ||||
| 		{ | ||||
| 			response.redirect("http://www.appinf.com/"); | ||||
| 		} | ||||
| 	}; | ||||
|  | ||||
| 	class AuthRequestHandler: public HTTPRequestHandler | ||||
| 	{ | ||||
| 	public: | ||||
| 		void handleRequest(HTTPServerRequest& request, HTTPServerResponse& response) | ||||
| 		{ | ||||
| 			response.requireAuthentication("/auth"); | ||||
| 			response.send(); | ||||
| 		} | ||||
| 	}; | ||||
| 	 | ||||
| 	class RequestHandlerFactory: public HTTPRequestHandlerFactory | ||||
| 	{ | ||||
| 	public: | ||||
| 		HTTPRequestHandler* createRequestHandler(const HTTPServerRequest& request) | ||||
| 		{ | ||||
| 			if (request.getURI() == "/echoBody") | ||||
| 				return new EchoBodyRequestHandler; | ||||
| 			else if (request.getURI() == "/echoHeader") | ||||
| 				return new EchoHeaderRequestHandler; | ||||
| 			else if (request.getURI() == "/redirect") | ||||
| 				return new RedirectRequestHandler(); | ||||
| 			else if (request.getURI() == "/auth") | ||||
| 				return new AuthRequestHandler(); | ||||
| 			else | ||||
| 				return 0; | ||||
| 		} | ||||
| 	}; | ||||
| } | ||||
|  | ||||
|  | ||||
| HTTPSServerTest::HTTPSServerTest(const std::string& name): CppUnit::TestCase(name) | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| HTTPSServerTest::~HTTPSServerTest() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSServerTest::testIdentityRequest() | ||||
| { | ||||
| 	SecureServerSocket svs(0); | ||||
| 	HTTPServerParams* pParams = new HTTPServerParams; | ||||
| 	pParams->setKeepAlive(false); | ||||
| 	HTTPServer srv(new RequestHandlerFactory, svs, pParams); | ||||
| 	srv.start(); | ||||
| 	 | ||||
| 	HTTPSClientSession cs("localhost", svs.address().port()); | ||||
| 	std::string body(5000, 'x'); | ||||
| 	HTTPRequest request("POST", "/echoBody"); | ||||
| 	request.setContentLength((int) body.length()); | ||||
| 	request.setContentType("text/plain"); | ||||
| 	cs.sendRequest(request) << body; | ||||
| 	HTTPResponse response; | ||||
| 	std::string rbody; | ||||
| 	cs.receiveResponse(response) >> rbody; | ||||
| 	assert (response.getContentLength() == body.size()); | ||||
| 	assert (response.getContentType() == "text/plain"); | ||||
| 	assert (rbody == body); | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSServerTest::testChunkedRequest() | ||||
| { | ||||
| 	SecureServerSocket svs(0); | ||||
| 	HTTPServerParams* pParams = new HTTPServerParams; | ||||
| 	pParams->setKeepAlive(false); | ||||
| 	HTTPServer srv(new RequestHandlerFactory, svs, pParams); | ||||
| 	srv.start(); | ||||
| 	 | ||||
| 	HTTPSClientSession cs("localhost", svs.address().port()); | ||||
| 	std::string body(5000, 'x'); | ||||
| 	HTTPRequest request("POST", "/echoBody"); | ||||
| 	request.setContentType("text/plain"); | ||||
| 	request.setChunkedTransferEncoding(true); | ||||
| 	cs.sendRequest(request) << body; | ||||
| 	HTTPResponse response; | ||||
| 	std::string rbody; | ||||
| 	cs.receiveResponse(response) >> rbody; | ||||
| 	assert (response.getContentLength() == HTTPMessage::UNKNOWN_CONTENT_LENGTH); | ||||
| 	assert (response.getContentType() == "text/plain"); | ||||
| 	assert (response.getChunkedTransferEncoding()); | ||||
| 	assert (rbody == body); | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSServerTest::testClosedRequest() | ||||
| { | ||||
| 	SecureServerSocket svs(0); | ||||
| 	HTTPServerParams* pParams = new HTTPServerParams; | ||||
| 	pParams->setKeepAlive(false); | ||||
| 	HTTPServer srv(new RequestHandlerFactory, svs, pParams); | ||||
| 	srv.start(); | ||||
| 	 | ||||
| 	HTTPSClientSession cs("localhost", svs.address().port()); | ||||
| 	std::string body(5000, 'x'); | ||||
| 	HTTPRequest request("POST", "/echoBody"); | ||||
| 	request.setContentType("text/plain"); | ||||
| 	cs.sendRequest(request) << body; | ||||
| 	HTTPResponse response; | ||||
| 	std::string rbody; | ||||
| 	cs.receiveResponse(response) >> rbody; | ||||
| 	assert (response.getContentLength() == HTTPMessage::UNKNOWN_CONTENT_LENGTH); | ||||
| 	assert (response.getContentType() == "text/plain"); | ||||
| 	assert (!response.getChunkedTransferEncoding()); | ||||
| 	assert (rbody == body); | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSServerTest::testIdentityRequestKeepAlive() | ||||
| { | ||||
| 	SecureServerSocket svs(0); | ||||
| 	HTTPServerParams* pParams = new HTTPServerParams; | ||||
| 	pParams->setKeepAlive(true); | ||||
| 	HTTPServer srv(new RequestHandlerFactory, svs, pParams); | ||||
| 	srv.start(); | ||||
| 	 | ||||
| 	HTTPSClientSession cs("localhost", svs.address().port()); | ||||
| 	cs.setKeepAlive(true); | ||||
| 	std::string body(5000, 'x'); | ||||
| 	HTTPRequest request("POST", "/echoBody", HTTPMessage::HTTP_1_1); | ||||
| 	request.setContentLength((int) body.length()); | ||||
| 	request.setContentType("text/plain"); | ||||
| 	cs.sendRequest(request) << body; | ||||
| 	HTTPResponse response; | ||||
| 	std::string rbody; | ||||
| 	cs.receiveResponse(response) >> rbody; | ||||
| 	assert (response.getContentLength() == body.size()); | ||||
| 	assert (response.getContentType() == "text/plain"); | ||||
| 	assert (response.getKeepAlive()); | ||||
| 	assert (rbody == body); | ||||
| 	 | ||||
| 	body.assign(1000, 'y'); | ||||
| 	request.setContentLength((int) body.length()); | ||||
| 	request.setKeepAlive(false); | ||||
| 	cs.sendRequest(request) << body; | ||||
| 	cs.receiveResponse(response) >> rbody; | ||||
| 	assert (response.getContentLength() == body.size()); | ||||
| 	assert (response.getContentType() == "text/plain"); | ||||
| 	assert (!response.getKeepAlive()); | ||||
| 	assert (rbody == body);} | ||||
|  | ||||
|  | ||||
| void HTTPSServerTest::testChunkedRequestKeepAlive() | ||||
| { | ||||
| 	SecureServerSocket svs(0); | ||||
| 	HTTPServerParams* pParams = new HTTPServerParams; | ||||
| 	pParams->setKeepAlive(true); | ||||
| 	HTTPServer srv(new RequestHandlerFactory, svs, pParams); | ||||
| 	srv.start(); | ||||
| 	 | ||||
| 	HTTPSClientSession cs("localhost", svs.address().port()); | ||||
| 	cs.setKeepAlive(true); | ||||
| 	std::string body(5000, 'x'); | ||||
| 	HTTPRequest request("POST", "/echoBody", HTTPMessage::HTTP_1_1); | ||||
| 	request.setContentType("text/plain"); | ||||
| 	request.setChunkedTransferEncoding(true); | ||||
| 	cs.sendRequest(request) << body; | ||||
| 	HTTPResponse response; | ||||
| 	std::string rbody; | ||||
| 	cs.receiveResponse(response) >> rbody; | ||||
| 	assert (response.getContentLength() == HTTPMessage::UNKNOWN_CONTENT_LENGTH); | ||||
| 	assert (response.getContentType() == "text/plain"); | ||||
| 	assert (response.getChunkedTransferEncoding()); | ||||
| 	assert (rbody == body); | ||||
|  | ||||
| 	body.assign(1000, 'y'); | ||||
| 	request.setKeepAlive(false); | ||||
| 	cs.sendRequest(request) << body; | ||||
| 	cs.receiveResponse(response) >> rbody; | ||||
| 	assert (response.getContentLength() == HTTPMessage::UNKNOWN_CONTENT_LENGTH); | ||||
| 	assert (response.getContentType() == "text/plain"); | ||||
| 	assert (response.getChunkedTransferEncoding()); | ||||
| 	assert (!response.getKeepAlive()); | ||||
| 	assert (rbody == body); | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSServerTest::testClosedRequestKeepAlive() | ||||
| { | ||||
| 	SecureServerSocket svs(0); | ||||
| 	HTTPServerParams* pParams = new HTTPServerParams; | ||||
| 	pParams->setKeepAlive(true); | ||||
| 	HTTPServer srv(new RequestHandlerFactory, svs, pParams); | ||||
| 	srv.start(); | ||||
| 	 | ||||
| 	HTTPSClientSession cs("localhost", svs.address().port()); | ||||
| 	std::string body(5000, 'x'); | ||||
| 	HTTPRequest request("POST", "/echoBody"); | ||||
| 	request.setContentType("text/plain"); | ||||
| 	cs.sendRequest(request) << body; | ||||
| 	HTTPResponse response; | ||||
| 	std::string rbody; | ||||
| 	cs.receiveResponse(response) >> rbody; | ||||
| 	assert (response.getContentLength() == HTTPMessage::UNKNOWN_CONTENT_LENGTH); | ||||
| 	assert (response.getContentType() == "text/plain"); | ||||
| 	assert (!response.getChunkedTransferEncoding()); | ||||
| 	assert (!response.getKeepAlive()); | ||||
| 	assert (rbody == body); | ||||
| 	int n = (int) rbody.size(); | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSServerTest::test100Continue() | ||||
| { | ||||
| 	SecureServerSocket svs(0); | ||||
| 	HTTPServerParams* pParams = new HTTPServerParams; | ||||
| 	pParams->setKeepAlive(false); | ||||
| 	HTTPServer srv(new RequestHandlerFactory, svs, pParams); | ||||
| 	srv.start(); | ||||
| 	 | ||||
| 	HTTPSClientSession cs("localhost", svs.address().port()); | ||||
| 	std::string body(5000, 'x'); | ||||
| 	HTTPRequest request("POST", "/echoBody"); | ||||
| 	request.setContentLength((int) body.length()); | ||||
| 	request.setContentType("text/plain"); | ||||
| 	request.set("Expect", "100-Continue"); | ||||
| 	cs.sendRequest(request) << body; | ||||
| 	HTTPResponse response; | ||||
| 	std::string rbody; | ||||
| 	cs.receiveResponse(response) >> rbody; | ||||
| 	assert (response.getContentLength() == body.size()); | ||||
| 	assert (response.getContentType() == "text/plain"); | ||||
| 	assert (rbody == body); | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSServerTest::testRedirect() | ||||
| { | ||||
| 	SecureServerSocket svs(0); | ||||
| 	HTTPServerParams* pParams = new HTTPServerParams; | ||||
| 	pParams->setKeepAlive(false); | ||||
| 	HTTPServer srv(new RequestHandlerFactory, svs, pParams); | ||||
| 	srv.start(); | ||||
| 	 | ||||
| 	HTTPSClientSession cs("localhost", svs.address().port()); | ||||
| 	HTTPRequest request("GET", "/redirect"); | ||||
| 	cs.sendRequest(request); | ||||
| 	HTTPResponse response; | ||||
| 	std::string rbody; | ||||
| 	cs.receiveResponse(response) >> rbody; | ||||
| 	assert (response.getStatus() == HTTPResponse::HTTP_FOUND); | ||||
| 	assert (response.get("Location") == "http://www.appinf.com/"); | ||||
| 	assert (rbody.empty()); | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSServerTest::testAuth() | ||||
| { | ||||
| 	SecureServerSocket svs(0); | ||||
| 	HTTPServerParams* pParams = new HTTPServerParams; | ||||
| 	pParams->setKeepAlive(false); | ||||
| 	HTTPServer srv(new RequestHandlerFactory, svs, pParams); | ||||
| 	srv.start(); | ||||
| 	 | ||||
| 	HTTPSClientSession cs("localhost", svs.address().port()); | ||||
| 	HTTPRequest request("GET", "/auth"); | ||||
| 	cs.sendRequest(request); | ||||
| 	HTTPResponse response; | ||||
| 	std::string rbody; | ||||
| 	cs.receiveResponse(response) >> rbody; | ||||
| 	assert (response.getStatus() == HTTPResponse::HTTP_UNAUTHORIZED); | ||||
| 	assert (response.get("WWW-Authenticate") == "Basic realm=\"/auth\""); | ||||
| 	assert (rbody.empty()); | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSServerTest::testNotImpl() | ||||
| { | ||||
| 	SecureServerSocket svs(0); | ||||
| 	HTTPServerParams* pParams = new HTTPServerParams; | ||||
| 	pParams->setKeepAlive(false); | ||||
| 	HTTPServer srv(new RequestHandlerFactory, svs, pParams); | ||||
| 	srv.start(); | ||||
| 	 | ||||
| 	HTTPSClientSession cs("localhost", svs.address().port()); | ||||
| 	HTTPRequest request("GET", "/notImpl"); | ||||
| 	cs.sendRequest(request); | ||||
| 	HTTPResponse response; | ||||
| 	std::string rbody; | ||||
| 	cs.receiveResponse(response) >> rbody; | ||||
| 	assert (response.getStatus() == HTTPResponse::HTTP_NOT_IMPLEMENTED); | ||||
| 	assert (rbody.empty()); | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSServerTest::setUp() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSServerTest::tearDown() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| CppUnit::Test* HTTPSServerTest::suite() | ||||
| { | ||||
| 	CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("HTTPSServerTest"); | ||||
|  | ||||
| 	CppUnit_addTest(pSuite, HTTPSServerTest, testIdentityRequest); | ||||
| 	CppUnit_addTest(pSuite, HTTPSServerTest, testChunkedRequest); | ||||
| 	CppUnit_addTest(pSuite, HTTPSServerTest, testClosedRequest); | ||||
| 	CppUnit_addTest(pSuite, HTTPSServerTest, testIdentityRequestKeepAlive); | ||||
| 	CppUnit_addTest(pSuite, HTTPSServerTest, testChunkedRequestKeepAlive); | ||||
| 	CppUnit_addTest(pSuite, HTTPSServerTest, testClosedRequestKeepAlive); | ||||
| 	CppUnit_addTest(pSuite, HTTPSServerTest, test100Continue); | ||||
| 	CppUnit_addTest(pSuite, HTTPSServerTest, testRedirect); | ||||
| 	CppUnit_addTest(pSuite, HTTPSServerTest, testAuth); | ||||
| 	CppUnit_addTest(pSuite, HTTPSServerTest, testNotImpl); | ||||
|  | ||||
| 	return pSuite; | ||||
| } | ||||
| // | ||||
| // HTTPSServerTest.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/testsuite/src/HTTPSServerTest.cpp#2 $ | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "HTTPSServerTest.h" | ||||
| #include "CppUnit/TestCaller.h" | ||||
| #include "CppUnit/TestSuite.h" | ||||
| #include "Poco/Net/HTTPServer.h" | ||||
| #include "Poco/Net/HTTPServerParams.h" | ||||
| #include "Poco/Net/HTTPRequestHandler.h" | ||||
| #include "Poco/Net/HTTPRequestHandlerFactory.h" | ||||
| #include "Poco/Net/HTTPSClientSession.h" | ||||
| #include "Poco/Net/HTTPRequest.h" | ||||
| #include "Poco/Net/HTTPServerRequest.h" | ||||
| #include "Poco/Net/HTTPResponse.h" | ||||
| #include "Poco/Net/HTTPServerResponse.h" | ||||
| #include "Poco/Net/SecureServerSocket.h" | ||||
| #include "Poco/StreamCopier.h" | ||||
| #include <sstream> | ||||
|  | ||||
|  | ||||
| using Poco::Net::HTTPServer; | ||||
| using Poco::Net::HTTPServerParams; | ||||
| using Poco::Net::HTTPRequestHandler; | ||||
| using Poco::Net::HTTPRequestHandlerFactory; | ||||
| using Poco::Net::HTTPSClientSession; | ||||
| using Poco::Net::HTTPRequest; | ||||
| using Poco::Net::HTTPServerRequest; | ||||
| using Poco::Net::HTTPResponse; | ||||
| using Poco::Net::HTTPServerResponse; | ||||
| using Poco::Net::HTTPMessage; | ||||
| using Poco::Net::SecureServerSocket; | ||||
| using Poco::StreamCopier; | ||||
|  | ||||
|  | ||||
| namespace | ||||
| { | ||||
| 	class EchoBodyRequestHandler: public HTTPRequestHandler | ||||
| 	{ | ||||
| 	public: | ||||
| 		void handleRequest(HTTPServerRequest& request, HTTPServerResponse& response) | ||||
| 		{ | ||||
| 			if (request.getChunkedTransferEncoding()) | ||||
| 				response.setChunkedTransferEncoding(true); | ||||
| 			else if (request.getContentLength() != HTTPMessage::UNKNOWN_CONTENT_LENGTH) | ||||
| 				response.setContentLength(request.getContentLength()); | ||||
| 			 | ||||
| 			response.setContentType(request.getContentType()); | ||||
| 			 | ||||
| 			std::istream& istr = request.stream(); | ||||
| 			std::ostream& ostr = response.send(); | ||||
| 			int n = StreamCopier::copyStream(istr, ostr); | ||||
| 		} | ||||
| 	}; | ||||
| 	 | ||||
| 	class EchoHeaderRequestHandler: public HTTPRequestHandler | ||||
| 	{ | ||||
| 	public: | ||||
| 		void handleRequest(HTTPServerRequest& request, HTTPServerResponse& response) | ||||
| 		{ | ||||
| 			std::ostringstream osstr; | ||||
| 			request.write(osstr); | ||||
| 			int n = (int) osstr.str().length(); | ||||
| 			response.setContentLength(n); | ||||
| 			std::ostream& ostr = response.send(); | ||||
| 			if (request.getMethod() != HTTPRequest::HTTP_HEAD) | ||||
| 				request.write(ostr); | ||||
| 		} | ||||
| 	}; | ||||
|  | ||||
| 	class RedirectRequestHandler: public HTTPRequestHandler | ||||
| 	{ | ||||
| 	public: | ||||
| 		void handleRequest(HTTPServerRequest& request, HTTPServerResponse& response) | ||||
| 		{ | ||||
| 			response.redirect("http://www.appinf.com/"); | ||||
| 		} | ||||
| 	}; | ||||
|  | ||||
| 	class AuthRequestHandler: public HTTPRequestHandler | ||||
| 	{ | ||||
| 	public: | ||||
| 		void handleRequest(HTTPServerRequest& request, HTTPServerResponse& response) | ||||
| 		{ | ||||
| 			response.requireAuthentication("/auth"); | ||||
| 			response.send(); | ||||
| 		} | ||||
| 	}; | ||||
| 	 | ||||
| 	class RequestHandlerFactory: public HTTPRequestHandlerFactory | ||||
| 	{ | ||||
| 	public: | ||||
| 		HTTPRequestHandler* createRequestHandler(const HTTPServerRequest& request) | ||||
| 		{ | ||||
| 			if (request.getURI() == "/echoBody") | ||||
| 				return new EchoBodyRequestHandler; | ||||
| 			else if (request.getURI() == "/echoHeader") | ||||
| 				return new EchoHeaderRequestHandler; | ||||
| 			else if (request.getURI() == "/redirect") | ||||
| 				return new RedirectRequestHandler(); | ||||
| 			else if (request.getURI() == "/auth") | ||||
| 				return new AuthRequestHandler(); | ||||
| 			else | ||||
| 				return 0; | ||||
| 		} | ||||
| 	}; | ||||
| } | ||||
|  | ||||
|  | ||||
| HTTPSServerTest::HTTPSServerTest(const std::string& name): CppUnit::TestCase(name) | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| HTTPSServerTest::~HTTPSServerTest() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSServerTest::testIdentityRequest() | ||||
| { | ||||
| 	SecureServerSocket svs(0); | ||||
| 	HTTPServerParams* pParams = new HTTPServerParams; | ||||
| 	pParams->setKeepAlive(false); | ||||
| 	HTTPServer srv(new RequestHandlerFactory, svs, pParams); | ||||
| 	srv.start(); | ||||
| 	 | ||||
| 	HTTPSClientSession cs("localhost", svs.address().port()); | ||||
| 	std::string body(5000, 'x'); | ||||
| 	HTTPRequest request("POST", "/echoBody"); | ||||
| 	request.setContentLength((int) body.length()); | ||||
| 	request.setContentType("text/plain"); | ||||
| 	cs.sendRequest(request) << body; | ||||
| 	HTTPResponse response; | ||||
| 	std::string rbody; | ||||
| 	cs.receiveResponse(response) >> rbody; | ||||
| 	assert (response.getContentLength() == body.size()); | ||||
| 	assert (response.getContentType() == "text/plain"); | ||||
| 	assert (rbody == body); | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSServerTest::testChunkedRequest() | ||||
| { | ||||
| 	SecureServerSocket svs(0); | ||||
| 	HTTPServerParams* pParams = new HTTPServerParams; | ||||
| 	pParams->setKeepAlive(false); | ||||
| 	HTTPServer srv(new RequestHandlerFactory, svs, pParams); | ||||
| 	srv.start(); | ||||
| 	 | ||||
| 	HTTPSClientSession cs("localhost", svs.address().port()); | ||||
| 	std::string body(5000, 'x'); | ||||
| 	HTTPRequest request("POST", "/echoBody"); | ||||
| 	request.setContentType("text/plain"); | ||||
| 	request.setChunkedTransferEncoding(true); | ||||
| 	cs.sendRequest(request) << body; | ||||
| 	HTTPResponse response; | ||||
| 	std::string rbody; | ||||
| 	cs.receiveResponse(response) >> rbody; | ||||
| 	assert (response.getContentLength() == HTTPMessage::UNKNOWN_CONTENT_LENGTH); | ||||
| 	assert (response.getContentType() == "text/plain"); | ||||
| 	assert (response.getChunkedTransferEncoding()); | ||||
| 	assert (rbody == body); | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSServerTest::testClosedRequest() | ||||
| { | ||||
| 	SecureServerSocket svs(0); | ||||
| 	HTTPServerParams* pParams = new HTTPServerParams; | ||||
| 	pParams->setKeepAlive(false); | ||||
| 	HTTPServer srv(new RequestHandlerFactory, svs, pParams); | ||||
| 	srv.start(); | ||||
| 	 | ||||
| 	HTTPSClientSession cs("localhost", svs.address().port()); | ||||
| 	std::string body(5000, 'x'); | ||||
| 	HTTPRequest request("POST", "/echoBody"); | ||||
| 	request.setContentType("text/plain"); | ||||
| 	cs.sendRequest(request) << body; | ||||
| 	HTTPResponse response; | ||||
| 	std::string rbody; | ||||
| 	cs.receiveResponse(response) >> rbody; | ||||
| 	assert (response.getContentLength() == HTTPMessage::UNKNOWN_CONTENT_LENGTH); | ||||
| 	assert (response.getContentType() == "text/plain"); | ||||
| 	assert (!response.getChunkedTransferEncoding()); | ||||
| 	assert (rbody == body); | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSServerTest::testIdentityRequestKeepAlive() | ||||
| { | ||||
| 	SecureServerSocket svs(0); | ||||
| 	HTTPServerParams* pParams = new HTTPServerParams; | ||||
| 	pParams->setKeepAlive(true); | ||||
| 	HTTPServer srv(new RequestHandlerFactory, svs, pParams); | ||||
| 	srv.start(); | ||||
| 	 | ||||
| 	HTTPSClientSession cs("localhost", svs.address().port()); | ||||
| 	cs.setKeepAlive(true); | ||||
| 	std::string body(5000, 'x'); | ||||
| 	HTTPRequest request("POST", "/echoBody", HTTPMessage::HTTP_1_1); | ||||
| 	request.setContentLength((int) body.length()); | ||||
| 	request.setContentType("text/plain"); | ||||
| 	cs.sendRequest(request) << body; | ||||
| 	HTTPResponse response; | ||||
| 	std::string rbody; | ||||
| 	cs.receiveResponse(response) >> rbody; | ||||
| 	assert (response.getContentLength() == body.size()); | ||||
| 	assert (response.getContentType() == "text/plain"); | ||||
| 	assert (response.getKeepAlive()); | ||||
| 	assert (rbody == body); | ||||
| 	 | ||||
| 	body.assign(1000, 'y'); | ||||
| 	request.setContentLength((int) body.length()); | ||||
| 	request.setKeepAlive(false); | ||||
| 	cs.sendRequest(request) << body; | ||||
| 	cs.receiveResponse(response) >> rbody; | ||||
| 	assert (response.getContentLength() == body.size()); | ||||
| 	assert (response.getContentType() == "text/plain"); | ||||
| 	assert (!response.getKeepAlive()); | ||||
| 	assert (rbody == body);} | ||||
|  | ||||
|  | ||||
| void HTTPSServerTest::testChunkedRequestKeepAlive() | ||||
| { | ||||
| 	SecureServerSocket svs(0); | ||||
| 	HTTPServerParams* pParams = new HTTPServerParams; | ||||
| 	pParams->setKeepAlive(true); | ||||
| 	HTTPServer srv(new RequestHandlerFactory, svs, pParams); | ||||
| 	srv.start(); | ||||
| 	 | ||||
| 	HTTPSClientSession cs("localhost", svs.address().port()); | ||||
| 	cs.setKeepAlive(true); | ||||
| 	std::string body(5000, 'x'); | ||||
| 	HTTPRequest request("POST", "/echoBody", HTTPMessage::HTTP_1_1); | ||||
| 	request.setContentType("text/plain"); | ||||
| 	request.setChunkedTransferEncoding(true); | ||||
| 	cs.sendRequest(request) << body; | ||||
| 	HTTPResponse response; | ||||
| 	std::string rbody; | ||||
| 	cs.receiveResponse(response) >> rbody; | ||||
| 	assert (response.getContentLength() == HTTPMessage::UNKNOWN_CONTENT_LENGTH); | ||||
| 	assert (response.getContentType() == "text/plain"); | ||||
| 	assert (response.getChunkedTransferEncoding()); | ||||
| 	assert (rbody == body); | ||||
|  | ||||
| 	body.assign(1000, 'y'); | ||||
| 	request.setKeepAlive(false); | ||||
| 	cs.sendRequest(request) << body; | ||||
| 	cs.receiveResponse(response) >> rbody; | ||||
| 	assert (response.getContentLength() == HTTPMessage::UNKNOWN_CONTENT_LENGTH); | ||||
| 	assert (response.getContentType() == "text/plain"); | ||||
| 	assert (response.getChunkedTransferEncoding()); | ||||
| 	assert (!response.getKeepAlive()); | ||||
| 	assert (rbody == body); | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSServerTest::testClosedRequestKeepAlive() | ||||
| { | ||||
| 	SecureServerSocket svs(0); | ||||
| 	HTTPServerParams* pParams = new HTTPServerParams; | ||||
| 	pParams->setKeepAlive(true); | ||||
| 	HTTPServer srv(new RequestHandlerFactory, svs, pParams); | ||||
| 	srv.start(); | ||||
| 	 | ||||
| 	HTTPSClientSession cs("localhost", svs.address().port()); | ||||
| 	std::string body(5000, 'x'); | ||||
| 	HTTPRequest request("POST", "/echoBody"); | ||||
| 	request.setContentType("text/plain"); | ||||
| 	cs.sendRequest(request) << body; | ||||
| 	HTTPResponse response; | ||||
| 	std::string rbody; | ||||
| 	cs.receiveResponse(response) >> rbody; | ||||
| 	assert (response.getContentLength() == HTTPMessage::UNKNOWN_CONTENT_LENGTH); | ||||
| 	assert (response.getContentType() == "text/plain"); | ||||
| 	assert (!response.getChunkedTransferEncoding()); | ||||
| 	assert (!response.getKeepAlive()); | ||||
| 	assert (rbody == body); | ||||
| 	int n = (int) rbody.size(); | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSServerTest::test100Continue() | ||||
| { | ||||
| 	SecureServerSocket svs(0); | ||||
| 	HTTPServerParams* pParams = new HTTPServerParams; | ||||
| 	pParams->setKeepAlive(false); | ||||
| 	HTTPServer srv(new RequestHandlerFactory, svs, pParams); | ||||
| 	srv.start(); | ||||
| 	 | ||||
| 	HTTPSClientSession cs("localhost", svs.address().port()); | ||||
| 	std::string body(5000, 'x'); | ||||
| 	HTTPRequest request("POST", "/echoBody"); | ||||
| 	request.setContentLength((int) body.length()); | ||||
| 	request.setContentType("text/plain"); | ||||
| 	request.set("Expect", "100-Continue"); | ||||
| 	cs.sendRequest(request) << body; | ||||
| 	HTTPResponse response; | ||||
| 	std::string rbody; | ||||
| 	cs.receiveResponse(response) >> rbody; | ||||
| 	assert (response.getContentLength() == body.size()); | ||||
| 	assert (response.getContentType() == "text/plain"); | ||||
| 	assert (rbody == body); | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSServerTest::testRedirect() | ||||
| { | ||||
| 	SecureServerSocket svs(0); | ||||
| 	HTTPServerParams* pParams = new HTTPServerParams; | ||||
| 	pParams->setKeepAlive(false); | ||||
| 	HTTPServer srv(new RequestHandlerFactory, svs, pParams); | ||||
| 	srv.start(); | ||||
| 	 | ||||
| 	HTTPSClientSession cs("localhost", svs.address().port()); | ||||
| 	HTTPRequest request("GET", "/redirect"); | ||||
| 	cs.sendRequest(request); | ||||
| 	HTTPResponse response; | ||||
| 	std::string rbody; | ||||
| 	cs.receiveResponse(response) >> rbody; | ||||
| 	assert (response.getStatus() == HTTPResponse::HTTP_FOUND); | ||||
| 	assert (response.get("Location") == "http://www.appinf.com/"); | ||||
| 	assert (rbody.empty()); | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSServerTest::testAuth() | ||||
| { | ||||
| 	SecureServerSocket svs(0); | ||||
| 	HTTPServerParams* pParams = new HTTPServerParams; | ||||
| 	pParams->setKeepAlive(false); | ||||
| 	HTTPServer srv(new RequestHandlerFactory, svs, pParams); | ||||
| 	srv.start(); | ||||
| 	 | ||||
| 	HTTPSClientSession cs("localhost", svs.address().port()); | ||||
| 	HTTPRequest request("GET", "/auth"); | ||||
| 	cs.sendRequest(request); | ||||
| 	HTTPResponse response; | ||||
| 	std::string rbody; | ||||
| 	cs.receiveResponse(response) >> rbody; | ||||
| 	assert (response.getStatus() == HTTPResponse::HTTP_UNAUTHORIZED); | ||||
| 	assert (response.get("WWW-Authenticate") == "Basic realm=\"/auth\""); | ||||
| 	assert (rbody.empty()); | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSServerTest::testNotImpl() | ||||
| { | ||||
| 	SecureServerSocket svs(0); | ||||
| 	HTTPServerParams* pParams = new HTTPServerParams; | ||||
| 	pParams->setKeepAlive(false); | ||||
| 	HTTPServer srv(new RequestHandlerFactory, svs, pParams); | ||||
| 	srv.start(); | ||||
| 	 | ||||
| 	HTTPSClientSession cs("localhost", svs.address().port()); | ||||
| 	HTTPRequest request("GET", "/notImpl"); | ||||
| 	cs.sendRequest(request); | ||||
| 	HTTPResponse response; | ||||
| 	std::string rbody; | ||||
| 	cs.receiveResponse(response) >> rbody; | ||||
| 	assert (response.getStatus() == HTTPResponse::HTTP_NOT_IMPLEMENTED); | ||||
| 	assert (rbody.empty()); | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSServerTest::setUp() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSServerTest::tearDown() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| CppUnit::Test* HTTPSServerTest::suite() | ||||
| { | ||||
| 	CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("HTTPSServerTest"); | ||||
|  | ||||
| 	CppUnit_addTest(pSuite, HTTPSServerTest, testIdentityRequest); | ||||
| 	CppUnit_addTest(pSuite, HTTPSServerTest, testChunkedRequest); | ||||
| 	CppUnit_addTest(pSuite, HTTPSServerTest, testClosedRequest); | ||||
| 	CppUnit_addTest(pSuite, HTTPSServerTest, testIdentityRequestKeepAlive); | ||||
| 	CppUnit_addTest(pSuite, HTTPSServerTest, testChunkedRequestKeepAlive); | ||||
| 	CppUnit_addTest(pSuite, HTTPSServerTest, testClosedRequestKeepAlive); | ||||
| 	CppUnit_addTest(pSuite, HTTPSServerTest, test100Continue); | ||||
| 	CppUnit_addTest(pSuite, HTTPSServerTest, testRedirect); | ||||
| 	CppUnit_addTest(pSuite, HTTPSServerTest, testAuth); | ||||
| 	CppUnit_addTest(pSuite, HTTPSServerTest, testNotImpl); | ||||
|  | ||||
| 	return pSuite; | ||||
| } | ||||
|   | ||||
| @@ -1,69 +1,69 @@ | ||||
| // | ||||
| // HTTPSServerTest.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/testsuite/src/HTTPSServerTest.h#1 $ | ||||
| // | ||||
| // Definition of the HTTPSServerTest class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef HTTPSServerTest_INCLUDED | ||||
| #define HTTPSServerTest_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/Net.h" | ||||
| #include "CppUnit/TestCase.h" | ||||
|  | ||||
|  | ||||
| class HTTPSServerTest: public CppUnit::TestCase | ||||
| { | ||||
| public: | ||||
| 	HTTPSServerTest(const std::string& name); | ||||
| 	~HTTPSServerTest(); | ||||
|  | ||||
| 	void testIdentityRequest(); | ||||
| 	void testChunkedRequest(); | ||||
| 	void testClosedRequest(); | ||||
| 	void testIdentityRequestKeepAlive(); | ||||
| 	void testChunkedRequestKeepAlive(); | ||||
| 	void testClosedRequestKeepAlive(); | ||||
| 	void test100Continue(); | ||||
| 	void testRedirect(); | ||||
| 	void testAuth(); | ||||
| 	void testNotImpl(); | ||||
|  | ||||
| 	void setUp(); | ||||
| 	void tearDown(); | ||||
|  | ||||
| 	static CppUnit::Test* suite(); | ||||
|  | ||||
| private: | ||||
| }; | ||||
|  | ||||
|  | ||||
| #endif // HTTPSServerTest_INCLUDED | ||||
| // | ||||
| // HTTPSServerTest.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/testsuite/src/HTTPSServerTest.h#1 $ | ||||
| // | ||||
| // Definition of the HTTPSServerTest class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef HTTPSServerTest_INCLUDED | ||||
| #define HTTPSServerTest_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/Net.h" | ||||
| #include "CppUnit/TestCase.h" | ||||
|  | ||||
|  | ||||
| class HTTPSServerTest: public CppUnit::TestCase | ||||
| { | ||||
| public: | ||||
| 	HTTPSServerTest(const std::string& name); | ||||
| 	~HTTPSServerTest(); | ||||
|  | ||||
| 	void testIdentityRequest(); | ||||
| 	void testChunkedRequest(); | ||||
| 	void testClosedRequest(); | ||||
| 	void testIdentityRequestKeepAlive(); | ||||
| 	void testChunkedRequestKeepAlive(); | ||||
| 	void testClosedRequestKeepAlive(); | ||||
| 	void test100Continue(); | ||||
| 	void testRedirect(); | ||||
| 	void testAuth(); | ||||
| 	void testNotImpl(); | ||||
|  | ||||
| 	void setUp(); | ||||
| 	void tearDown(); | ||||
|  | ||||
| 	static CppUnit::Test* suite(); | ||||
|  | ||||
| private: | ||||
| }; | ||||
|  | ||||
|  | ||||
| #endif // HTTPSServerTest_INCLUDED | ||||
|   | ||||
| @@ -1,44 +1,44 @@ | ||||
| // | ||||
| // HTTPSServerTestSuite.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/testsuite/src/HTTPSServerTestSuite.cpp#1 $ | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "HTTPSServerTestSuite.h" | ||||
| #include "HTTPSServerTest.h" | ||||
|  | ||||
|  | ||||
| CppUnit::Test* HTTPSServerTestSuite::suite() | ||||
| { | ||||
| 	CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("HTTPSServerTestSuite"); | ||||
|  | ||||
| 	pSuite->addTest(HTTPSServerTest::suite()); | ||||
|  | ||||
| 	return pSuite; | ||||
| } | ||||
| // | ||||
| // HTTPSServerTestSuite.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/testsuite/src/HTTPSServerTestSuite.cpp#1 $ | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "HTTPSServerTestSuite.h" | ||||
| #include "HTTPSServerTest.h" | ||||
|  | ||||
|  | ||||
| CppUnit::Test* HTTPSServerTestSuite::suite() | ||||
| { | ||||
| 	CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("HTTPSServerTestSuite"); | ||||
|  | ||||
| 	pSuite->addTest(HTTPSServerTest::suite()); | ||||
|  | ||||
| 	return pSuite; | ||||
| } | ||||
|   | ||||
| @@ -1,49 +1,49 @@ | ||||
| // | ||||
| // HTTPSServerTestSuite.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/testsuite/src/HTTPSServerTestSuite.h#1 $ | ||||
| // | ||||
| // Definition of the HTTPSServerTestSuite class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef HTTPSServerTestSuite_INCLUDED | ||||
| #define HTTPSServerTestSuite_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "CppUnit/TestSuite.h" | ||||
|  | ||||
|  | ||||
| class HTTPSServerTestSuite | ||||
| { | ||||
| public: | ||||
| 	static CppUnit::Test* suite(); | ||||
| }; | ||||
|  | ||||
|  | ||||
| #endif // HTTPSServerTestSuite_INCLUDED | ||||
| // | ||||
| // HTTPSServerTestSuite.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/testsuite/src/HTTPSServerTestSuite.h#1 $ | ||||
| // | ||||
| // Definition of the HTTPSServerTestSuite class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef HTTPSServerTestSuite_INCLUDED | ||||
| #define HTTPSServerTestSuite_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "CppUnit/TestSuite.h" | ||||
|  | ||||
|  | ||||
| class HTTPSServerTestSuite | ||||
| { | ||||
| public: | ||||
| 	static CppUnit::Test* suite(); | ||||
| }; | ||||
|  | ||||
|  | ||||
| #endif // HTTPSServerTestSuite_INCLUDED | ||||
|   | ||||
| @@ -1,153 +1,153 @@ | ||||
| // | ||||
| // HTTPSStreamFactoryTest.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/testsuite/src/HTTPSStreamFactoryTest.cpp#1 $ | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "HTTPSStreamFactoryTest.h" | ||||
| #include "CppUnit/TestCaller.h" | ||||
| #include "CppUnit/TestSuite.h" | ||||
| #include "Poco/Net/HTTPSStreamFactory.h" | ||||
| #include "Poco/Net/NetException.h" | ||||
| #include "Poco/URI.h" | ||||
| #include "Poco/Exception.h" | ||||
| #include "Poco/StreamCopier.h" | ||||
| #include "HTTPSTestServer.h" | ||||
| #include <sstream> | ||||
| #include <memory> | ||||
|  | ||||
|  | ||||
| using Poco::Net::HTTPSStreamFactory; | ||||
| using Poco::Net::NetException; | ||||
| using Poco::Net::HTTPException; | ||||
| using Poco::URI; | ||||
| using Poco::StreamCopier; | ||||
|  | ||||
|  | ||||
| HTTPSStreamFactoryTest::HTTPSStreamFactoryTest(const std::string& name): CppUnit::TestCase(name) | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| HTTPSStreamFactoryTest::~HTTPSStreamFactoryTest() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSStreamFactoryTest::testNoRedirect() | ||||
| { | ||||
| 	HTTPSTestServer server; | ||||
| 	HTTPSStreamFactory factory; | ||||
| 	URI uri("https://localhost/large"); | ||||
| 	uri.setPort(server.port()); | ||||
| 	std::auto_ptr<std::istream> pStr(factory.open(uri)); | ||||
| 	std::ostringstream ostr; | ||||
| 	StreamCopier::copyStream(*pStr.get(), ostr); | ||||
| 	assert (ostr.str() == HTTPSTestServer::LARGE_BODY); | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSStreamFactoryTest::testEmptyPath() | ||||
| { | ||||
| 	HTTPSTestServer server; | ||||
| 	HTTPSStreamFactory factory; | ||||
| 	URI uri("https://localhost"); | ||||
| 	uri.setPort(server.port()); | ||||
| 	std::auto_ptr<std::istream> pStr(factory.open(uri)); | ||||
| 	std::ostringstream ostr; | ||||
| 	StreamCopier::copyStream(*pStr.get(), ostr); | ||||
| 	assert (ostr.str() == HTTPSTestServer::SMALL_BODY); | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSStreamFactoryTest::testRedirect() | ||||
| { | ||||
| 	HTTPSTestServer server; | ||||
| 	HTTPSStreamFactory factory; | ||||
| 	URI uri("https://localhost/redirect"); | ||||
| 	uri.setPort(server.port()); | ||||
| 	std::auto_ptr<std::istream> pStr(factory.open(uri)); | ||||
| 	std::ostringstream ostr; | ||||
| 	StreamCopier::copyStream(*pStr.get(), ostr); | ||||
| 	assert (ostr.str() == HTTPSTestServer::LARGE_BODY); | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSStreamFactoryTest::testProxy() | ||||
| { | ||||
| 	HTTPSTestServer server; | ||||
| 	HTTPSStreamFactory factory("proxy.aon.at", 8080); | ||||
| 	URI uri("https://wwws.appinf.com/"); | ||||
| 	std::auto_ptr<std::istream> pStr(factory.open(uri)); | ||||
| 	std::ostringstream ostr; | ||||
| 	StreamCopier::copyStream(*pStr.get(), ostr); | ||||
| 	assert (ostr.str().length() > 0); | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSStreamFactoryTest::testError() | ||||
| { | ||||
| 	HTTPSTestServer server; | ||||
| 	HTTPSStreamFactory factory; | ||||
| 	URI uri("https://localhost/notfound"); | ||||
| 	uri.setPort(server.port()); | ||||
| 	try | ||||
| 	{ | ||||
| 		std::istream* pStr = factory.open(uri); | ||||
| 		fail("not found - must throw"); | ||||
| 	} | ||||
| 	catch (HTTPException& exc) | ||||
| 	{ | ||||
| 		std::string m = exc.displayText(); | ||||
| 	} | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSStreamFactoryTest::setUp() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSStreamFactoryTest::tearDown() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| CppUnit::Test* HTTPSStreamFactoryTest::suite() | ||||
| { | ||||
| 	CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("HTTPSStreamFactoryTest"); | ||||
|  | ||||
| 	CppUnit_addTest(pSuite, HTTPSStreamFactoryTest, testNoRedirect); | ||||
| 	CppUnit_addTest(pSuite, HTTPSStreamFactoryTest, testEmptyPath); | ||||
| 	CppUnit_addTest(pSuite, HTTPSStreamFactoryTest, testRedirect); | ||||
| 	CppUnit_addTest(pSuite, HTTPSStreamFactoryTest, testProxy); | ||||
| 	CppUnit_addTest(pSuite, HTTPSStreamFactoryTest, testError); | ||||
|  | ||||
| 	return pSuite; | ||||
| } | ||||
| // | ||||
| // HTTPSStreamFactoryTest.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/testsuite/src/HTTPSStreamFactoryTest.cpp#1 $ | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "HTTPSStreamFactoryTest.h" | ||||
| #include "CppUnit/TestCaller.h" | ||||
| #include "CppUnit/TestSuite.h" | ||||
| #include "Poco/Net/HTTPSStreamFactory.h" | ||||
| #include "Poco/Net/NetException.h" | ||||
| #include "Poco/URI.h" | ||||
| #include "Poco/Exception.h" | ||||
| #include "Poco/StreamCopier.h" | ||||
| #include "HTTPSTestServer.h" | ||||
| #include <sstream> | ||||
| #include <memory> | ||||
|  | ||||
|  | ||||
| using Poco::Net::HTTPSStreamFactory; | ||||
| using Poco::Net::NetException; | ||||
| using Poco::Net::HTTPException; | ||||
| using Poco::URI; | ||||
| using Poco::StreamCopier; | ||||
|  | ||||
|  | ||||
| HTTPSStreamFactoryTest::HTTPSStreamFactoryTest(const std::string& name): CppUnit::TestCase(name) | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| HTTPSStreamFactoryTest::~HTTPSStreamFactoryTest() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSStreamFactoryTest::testNoRedirect() | ||||
| { | ||||
| 	HTTPSTestServer server; | ||||
| 	HTTPSStreamFactory factory; | ||||
| 	URI uri("https://localhost/large"); | ||||
| 	uri.setPort(server.port()); | ||||
| 	std::auto_ptr<std::istream> pStr(factory.open(uri)); | ||||
| 	std::ostringstream ostr; | ||||
| 	StreamCopier::copyStream(*pStr.get(), ostr); | ||||
| 	assert (ostr.str() == HTTPSTestServer::LARGE_BODY); | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSStreamFactoryTest::testEmptyPath() | ||||
| { | ||||
| 	HTTPSTestServer server; | ||||
| 	HTTPSStreamFactory factory; | ||||
| 	URI uri("https://localhost"); | ||||
| 	uri.setPort(server.port()); | ||||
| 	std::auto_ptr<std::istream> pStr(factory.open(uri)); | ||||
| 	std::ostringstream ostr; | ||||
| 	StreamCopier::copyStream(*pStr.get(), ostr); | ||||
| 	assert (ostr.str() == HTTPSTestServer::SMALL_BODY); | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSStreamFactoryTest::testRedirect() | ||||
| { | ||||
| 	HTTPSTestServer server; | ||||
| 	HTTPSStreamFactory factory; | ||||
| 	URI uri("https://localhost/redirect"); | ||||
| 	uri.setPort(server.port()); | ||||
| 	std::auto_ptr<std::istream> pStr(factory.open(uri)); | ||||
| 	std::ostringstream ostr; | ||||
| 	StreamCopier::copyStream(*pStr.get(), ostr); | ||||
| 	assert (ostr.str() == HTTPSTestServer::LARGE_BODY); | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSStreamFactoryTest::testProxy() | ||||
| { | ||||
| 	HTTPSTestServer server; | ||||
| 	HTTPSStreamFactory factory("proxy.aon.at", 8080); | ||||
| 	URI uri("https://wwws.appinf.com/"); | ||||
| 	std::auto_ptr<std::istream> pStr(factory.open(uri)); | ||||
| 	std::ostringstream ostr; | ||||
| 	StreamCopier::copyStream(*pStr.get(), ostr); | ||||
| 	assert (ostr.str().length() > 0); | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSStreamFactoryTest::testError() | ||||
| { | ||||
| 	HTTPSTestServer server; | ||||
| 	HTTPSStreamFactory factory; | ||||
| 	URI uri("https://localhost/notfound"); | ||||
| 	uri.setPort(server.port()); | ||||
| 	try | ||||
| 	{ | ||||
| 		std::istream* pStr = factory.open(uri); | ||||
| 		fail("not found - must throw"); | ||||
| 	} | ||||
| 	catch (HTTPException& exc) | ||||
| 	{ | ||||
| 		std::string m = exc.displayText(); | ||||
| 	} | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSStreamFactoryTest::setUp() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSStreamFactoryTest::tearDown() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| CppUnit::Test* HTTPSStreamFactoryTest::suite() | ||||
| { | ||||
| 	CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("HTTPSStreamFactoryTest"); | ||||
|  | ||||
| 	CppUnit_addTest(pSuite, HTTPSStreamFactoryTest, testNoRedirect); | ||||
| 	CppUnit_addTest(pSuite, HTTPSStreamFactoryTest, testEmptyPath); | ||||
| 	CppUnit_addTest(pSuite, HTTPSStreamFactoryTest, testRedirect); | ||||
| 	CppUnit_addTest(pSuite, HTTPSStreamFactoryTest, testProxy); | ||||
| 	CppUnit_addTest(pSuite, HTTPSStreamFactoryTest, testError); | ||||
|  | ||||
| 	return pSuite; | ||||
| } | ||||
|   | ||||
| @@ -1,64 +1,64 @@ | ||||
| // | ||||
| // HTTPSStreamFactoryTest.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/testsuite/src/HTTPSStreamFactoryTest.h#1 $ | ||||
| // | ||||
| // Definition of the HTTPSStreamFactoryTest class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef HTTPSStreamFactoryTest_INCLUDED | ||||
| #define HTTPSStreamFactoryTest_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/Net.h" | ||||
| #include "CppUnit/TestCase.h" | ||||
|  | ||||
|  | ||||
| class HTTPSStreamFactoryTest: public CppUnit::TestCase | ||||
| { | ||||
| public: | ||||
| 	HTTPSStreamFactoryTest(const std::string& name); | ||||
| 	~HTTPSStreamFactoryTest(); | ||||
|  | ||||
| 	void testNoRedirect(); | ||||
| 	void testEmptyPath(); | ||||
| 	void testRedirect(); | ||||
| 	void testProxy(); | ||||
| 	void testError(); | ||||
|  | ||||
| 	void setUp(); | ||||
| 	void tearDown(); | ||||
|  | ||||
| 	static CppUnit::Test* suite(); | ||||
|  | ||||
| private: | ||||
| }; | ||||
|  | ||||
|  | ||||
| #endif // HTTPSStreamFactoryTest_INCLUDED | ||||
| // | ||||
| // HTTPSStreamFactoryTest.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/testsuite/src/HTTPSStreamFactoryTest.h#1 $ | ||||
| // | ||||
| // Definition of the HTTPSStreamFactoryTest class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef HTTPSStreamFactoryTest_INCLUDED | ||||
| #define HTTPSStreamFactoryTest_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/Net.h" | ||||
| #include "CppUnit/TestCase.h" | ||||
|  | ||||
|  | ||||
| class HTTPSStreamFactoryTest: public CppUnit::TestCase | ||||
| { | ||||
| public: | ||||
| 	HTTPSStreamFactoryTest(const std::string& name); | ||||
| 	~HTTPSStreamFactoryTest(); | ||||
|  | ||||
| 	void testNoRedirect(); | ||||
| 	void testEmptyPath(); | ||||
| 	void testRedirect(); | ||||
| 	void testProxy(); | ||||
| 	void testError(); | ||||
|  | ||||
| 	void setUp(); | ||||
| 	void tearDown(); | ||||
|  | ||||
| 	static CppUnit::Test* suite(); | ||||
|  | ||||
| private: | ||||
| }; | ||||
|  | ||||
|  | ||||
| #endif // HTTPSStreamFactoryTest_INCLUDED | ||||
|   | ||||
| @@ -1,241 +1,241 @@ | ||||
| // | ||||
| // HTTPSTestServer.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/testsuite/src/HTTPSTestServer.cpp#3 $ | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "HTTPSTestServer.h" | ||||
| #include "Poco/Net/SecureStreamSocket.h" | ||||
| #include "Poco/Net/SocketAddress.h" | ||||
| #include "Poco/Timespan.h" | ||||
| #include "Poco/NumberFormatter.h" | ||||
| #include <iostream> | ||||
|  | ||||
|  | ||||
| using Poco::Net::Socket; | ||||
| using Poco::Net::StreamSocket; | ||||
| using Poco::Net::SecureStreamSocket; | ||||
| using Poco::Net::SecureServerSocket; | ||||
| using Poco::Net::SocketAddress; | ||||
| using Poco::NumberFormatter; | ||||
|  | ||||
|  | ||||
| const std::string HTTPSTestServer::SMALL_BODY("This is some random text data returned by the server"); | ||||
| const std::string HTTPSTestServer::LARGE_BODY(4000, 'x'); | ||||
|  | ||||
|  | ||||
| HTTPSTestServer::HTTPSTestServer(): | ||||
| 	_socket(SocketAddress()), | ||||
| 	_thread("HTTPSTestServer"), | ||||
| 	_stop(false) | ||||
| { | ||||
| 	_thread.start(*this); | ||||
| 	_ready.wait(); | ||||
| 	_lastRequest.reserve(4000); | ||||
| } | ||||
|  | ||||
|  | ||||
| HTTPSTestServer::~HTTPSTestServer() | ||||
| { | ||||
| 	_stop = true; | ||||
| 	_thread.join(); | ||||
| } | ||||
|  | ||||
|  | ||||
| Poco::UInt16 HTTPSTestServer::port() const | ||||
| { | ||||
| 	return _socket.address().port(); | ||||
| } | ||||
|  | ||||
|  | ||||
| const std::string& HTTPSTestServer::lastRequest() const | ||||
| { | ||||
| 	return _lastRequest; | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSTestServer::run() | ||||
| { | ||||
| 	_ready.set(); | ||||
| 	Poco::Timespan span(250000); | ||||
| 	while (!_stop) | ||||
| 	{ | ||||
| 		if (_socket.poll(span, Socket::SELECT_READ)) | ||||
| 		{ | ||||
| 			StreamSocket ss = _socket.acceptConnection(); | ||||
| 			try | ||||
| 			{ | ||||
| 				_lastRequest.clear(); | ||||
| 				char buffer[256]; | ||||
| 				int n = ss.receiveBytes(buffer, sizeof(buffer)); | ||||
| 				while (n > 0 && !_stop) | ||||
| 				{ | ||||
| 					_lastRequest.append(buffer, n); | ||||
| 					if (!requestComplete()) | ||||
| 						n = ss.receiveBytes(buffer, sizeof(buffer)); | ||||
| 					else | ||||
| 						n = 0; | ||||
| 				} | ||||
| 				std::string response = handleRequest(); | ||||
| 				ss.sendBytes(response.data(), (int) response.size()); | ||||
| 				Poco::Thread::sleep(1000); | ||||
| 			} | ||||
| 			catch (Poco::Exception& exc) | ||||
| 			{ | ||||
| 				std::cerr << "HTTPSTestServer: " << exc.displayText() << std::endl; | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|  | ||||
|  | ||||
| bool HTTPSTestServer::requestComplete() const | ||||
| { | ||||
| 	return ((_lastRequest.substr(0, 3) == "GET" || _lastRequest.substr(0, 4) == "HEAD") &&  | ||||
| 	       (_lastRequest.find("\r\n\r\n") != std::string::npos)) || | ||||
| 	       (_lastRequest.find("\r\n0\r\n") != std::string::npos); | ||||
| } | ||||
|  | ||||
|  | ||||
| std::string HTTPSTestServer::handleRequest() const | ||||
| { | ||||
| 	std::string response; | ||||
| 	response.reserve(16000); | ||||
| 	if (_lastRequest.substr(0, 10) == "GET /small" || | ||||
| 	    _lastRequest.substr(0, 11) == "HEAD /small") | ||||
| 	{ | ||||
| 		std::string body(SMALL_BODY); | ||||
| 		response.append("HTTP/1.0 200 OK\r\n"); | ||||
| 		response.append("Content-Type: text/plain\r\n"); | ||||
| 		response.append("Content-Length: ");  | ||||
| 		response.append(NumberFormatter::format((int) body.size())); | ||||
| 		response.append("\r\n"); | ||||
| 		response.append("Connection: Close\r\n"); | ||||
| 		response.append("\r\n"); | ||||
| 		if (_lastRequest.substr(0, 3) == "GET") | ||||
| 			response.append(body); | ||||
| 	} | ||||
| 	else if (_lastRequest.substr(0, 10) == "GET /large" || | ||||
| 	         _lastRequest.substr(0, 11) == "HEAD /large" || | ||||
| 	         _lastRequest.substr(0, 36) == "GET http://www.somehost.com:80/large") | ||||
| 	{ | ||||
| 		std::string body(LARGE_BODY); | ||||
| 		response.append("HTTP/1.0 200 OK\r\n"); | ||||
| 		response.append("Content-Type: text/plain\r\n"); | ||||
| 		response.append("Content-Length: ");  | ||||
| 		response.append(NumberFormatter::format((int) body.size())); | ||||
| 		response.append("\r\n"); | ||||
| 		response.append("Connection: Close\r\n"); | ||||
| 		response.append("\r\n"); | ||||
| 		if (_lastRequest.substr(0, 3) == "GET") | ||||
| 			response.append(body); | ||||
| 	} | ||||
| 	else if (_lastRequest.substr(0, 4) == "POST") | ||||
| 	{ | ||||
| 		std::string::size_type pos = _lastRequest.find("\r\n\r\n"); | ||||
| 		pos += 4; | ||||
| 		std::string body = _lastRequest.substr(pos); | ||||
| 		response.append("HTTP/1.0 200 OK\r\n"); | ||||
| 		response.append("Content-Type: text/plain\r\n"); | ||||
| 		if (_lastRequest.find("Content-Length") != std::string::npos) | ||||
| 		{ | ||||
| 			response.append("Content-Length: ");  | ||||
| 			response.append(NumberFormatter::format((int) body.size())); | ||||
| 			response.append("\r\n"); | ||||
| 		} | ||||
| 		else if (_lastRequest.find("chunked") != std::string::npos) | ||||
| 		{ | ||||
| 			response.append("Transfer-Encoding: chunked\r\n"); | ||||
| 		} | ||||
| 		if (_lastRequest.substr(0,15) == "POST /keepAlive") | ||||
| 			response.append("Connection: keep-alive\r\n"); | ||||
| 		else | ||||
| 			response.append("Connection: Close\r\n"); | ||||
| 		response.append("\r\n"); | ||||
| 		response.append(body); | ||||
| 	} | ||||
| 	else if (_lastRequest.substr(0, 15) == "HEAD /keepAlive") | ||||
| 	{ | ||||
| 		std::string body(SMALL_BODY); | ||||
| 		response.append("HTTP/1.1 200 OK\r\n"); | ||||
| 		response.append("Connection: keep-alive\r\n"); | ||||
| 		response.append("Content-Type: text/plain\r\n"); | ||||
| 		response.append("Content-Length: ");  | ||||
| 		response.append(NumberFormatter::format((int) body.size())); | ||||
| 		response.append("\r\n\r\n"); | ||||
| 		response.append("HTTP/1.1 200 OK\r\n"); | ||||
| 		response.append("Connection: Keep-Alive\r\n"); | ||||
| 		response.append("Content-Type: text/plain\r\n"); | ||||
| 		response.append("Content-Length: ");  | ||||
| 		response.append(NumberFormatter::format((int) body.size())); | ||||
| 		response.append("\r\n\r\n"); | ||||
| 		response.append(body); | ||||
| 		body = LARGE_BODY; | ||||
| 		response.append("HTTP/1.1 200 OK\r\n"); | ||||
| 		response.append("Connection: keep-alive\r\n"); | ||||
| 		response.append("Content-Type: text/plain\r\n"); | ||||
| 		response.append("Transfer-Encoding: chunked\r\n\r\n"); | ||||
| 		response.append(NumberFormatter::formatHex((unsigned) body.length())); | ||||
| 		response.append("\r\n"); | ||||
| 		response.append(body); | ||||
| 		response.append("\r\n0\r\n\r\n"); | ||||
| 		response.append("HTTP/1.1 200 OK\r\n"); | ||||
| 		response.append("Connection: close\r\n"); | ||||
| 		response.append("Content-Type: text/plain\r\n"); | ||||
| 		response.append("Content-Length: ");  | ||||
| 		response.append(NumberFormatter::format((int) body.size())); | ||||
| 		response.append("\r\n\r\n"); | ||||
| 	} | ||||
| 	else if (_lastRequest.substr(0, 13) == "GET /redirect") | ||||
| 	{ | ||||
| 		response.append("HTTP/1.0 302 Found\r\n"); | ||||
| 		response.append("Location: /large\r\n"); | ||||
| 		response.append("\r\n"); | ||||
| 	} | ||||
| 	else if (_lastRequest.substr(0, 13) == "GET /notfound") | ||||
| 	{ | ||||
| 		response.append("HTTP/1.0 404 Not Found\r\n"); | ||||
| 		response.append("\r\n"); | ||||
| 	} | ||||
| 	else if (_lastRequest.substr(0, 5) == "GET /" || | ||||
| 	    _lastRequest.substr(0, 6) == "HEAD /") | ||||
| 	{ | ||||
| 		std::string body(SMALL_BODY); | ||||
| 		response.append("HTTP/1.0 200 OK\r\n"); | ||||
| 		response.append("Content-Type: text/plain\r\n"); | ||||
| 		response.append("Content-Length: ");  | ||||
| 		response.append(NumberFormatter::format((int) body.size())); | ||||
| 		response.append("\r\n"); | ||||
| 		response.append("Connection: Close\r\n"); | ||||
| 		response.append("\r\n"); | ||||
| 		if (_lastRequest.substr(0, 3) == "GET") | ||||
| 			response.append(body); | ||||
| 	} | ||||
| 	return response; | ||||
| } | ||||
| // | ||||
| // HTTPSTestServer.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/testsuite/src/HTTPSTestServer.cpp#3 $ | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "HTTPSTestServer.h" | ||||
| #include "Poco/Net/SecureStreamSocket.h" | ||||
| #include "Poco/Net/SocketAddress.h" | ||||
| #include "Poco/Timespan.h" | ||||
| #include "Poco/NumberFormatter.h" | ||||
| #include <iostream> | ||||
|  | ||||
|  | ||||
| using Poco::Net::Socket; | ||||
| using Poco::Net::StreamSocket; | ||||
| using Poco::Net::SecureStreamSocket; | ||||
| using Poco::Net::SecureServerSocket; | ||||
| using Poco::Net::SocketAddress; | ||||
| using Poco::NumberFormatter; | ||||
|  | ||||
|  | ||||
| const std::string HTTPSTestServer::SMALL_BODY("This is some random text data returned by the server"); | ||||
| const std::string HTTPSTestServer::LARGE_BODY(4000, 'x'); | ||||
|  | ||||
|  | ||||
| HTTPSTestServer::HTTPSTestServer(): | ||||
| 	_socket(SocketAddress()), | ||||
| 	_thread("HTTPSTestServer"), | ||||
| 	_stop(false) | ||||
| { | ||||
| 	_thread.start(*this); | ||||
| 	_ready.wait(); | ||||
| 	_lastRequest.reserve(4000); | ||||
| } | ||||
|  | ||||
|  | ||||
| HTTPSTestServer::~HTTPSTestServer() | ||||
| { | ||||
| 	_stop = true; | ||||
| 	_thread.join(); | ||||
| } | ||||
|  | ||||
|  | ||||
| Poco::UInt16 HTTPSTestServer::port() const | ||||
| { | ||||
| 	return _socket.address().port(); | ||||
| } | ||||
|  | ||||
|  | ||||
| const std::string& HTTPSTestServer::lastRequest() const | ||||
| { | ||||
| 	return _lastRequest; | ||||
| } | ||||
|  | ||||
|  | ||||
| void HTTPSTestServer::run() | ||||
| { | ||||
| 	_ready.set(); | ||||
| 	Poco::Timespan span(250000); | ||||
| 	while (!_stop) | ||||
| 	{ | ||||
| 		if (_socket.poll(span, Socket::SELECT_READ)) | ||||
| 		{ | ||||
| 			StreamSocket ss = _socket.acceptConnection(); | ||||
| 			try | ||||
| 			{ | ||||
| 				_lastRequest.clear(); | ||||
| 				char buffer[256]; | ||||
| 				int n = ss.receiveBytes(buffer, sizeof(buffer)); | ||||
| 				while (n > 0 && !_stop) | ||||
| 				{ | ||||
| 					_lastRequest.append(buffer, n); | ||||
| 					if (!requestComplete()) | ||||
| 						n = ss.receiveBytes(buffer, sizeof(buffer)); | ||||
| 					else | ||||
| 						n = 0; | ||||
| 				} | ||||
| 				std::string response = handleRequest(); | ||||
| 				ss.sendBytes(response.data(), (int) response.size()); | ||||
| 				Poco::Thread::sleep(1000); | ||||
| 			} | ||||
| 			catch (Poco::Exception& exc) | ||||
| 			{ | ||||
| 				std::cerr << "HTTPSTestServer: " << exc.displayText() << std::endl; | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|  | ||||
|  | ||||
| bool HTTPSTestServer::requestComplete() const | ||||
| { | ||||
| 	return ((_lastRequest.substr(0, 3) == "GET" || _lastRequest.substr(0, 4) == "HEAD") &&  | ||||
| 	       (_lastRequest.find("\r\n\r\n") != std::string::npos)) || | ||||
| 	       (_lastRequest.find("\r\n0\r\n") != std::string::npos); | ||||
| } | ||||
|  | ||||
|  | ||||
| std::string HTTPSTestServer::handleRequest() const | ||||
| { | ||||
| 	std::string response; | ||||
| 	response.reserve(16000); | ||||
| 	if (_lastRequest.substr(0, 10) == "GET /small" || | ||||
| 	    _lastRequest.substr(0, 11) == "HEAD /small") | ||||
| 	{ | ||||
| 		std::string body(SMALL_BODY); | ||||
| 		response.append("HTTP/1.0 200 OK\r\n"); | ||||
| 		response.append("Content-Type: text/plain\r\n"); | ||||
| 		response.append("Content-Length: ");  | ||||
| 		response.append(NumberFormatter::format((int) body.size())); | ||||
| 		response.append("\r\n"); | ||||
| 		response.append("Connection: Close\r\n"); | ||||
| 		response.append("\r\n"); | ||||
| 		if (_lastRequest.substr(0, 3) == "GET") | ||||
| 			response.append(body); | ||||
| 	} | ||||
| 	else if (_lastRequest.substr(0, 10) == "GET /large" || | ||||
| 	         _lastRequest.substr(0, 11) == "HEAD /large" || | ||||
| 	         _lastRequest.substr(0, 36) == "GET http://www.somehost.com:80/large") | ||||
| 	{ | ||||
| 		std::string body(LARGE_BODY); | ||||
| 		response.append("HTTP/1.0 200 OK\r\n"); | ||||
| 		response.append("Content-Type: text/plain\r\n"); | ||||
| 		response.append("Content-Length: ");  | ||||
| 		response.append(NumberFormatter::format((int) body.size())); | ||||
| 		response.append("\r\n"); | ||||
| 		response.append("Connection: Close\r\n"); | ||||
| 		response.append("\r\n"); | ||||
| 		if (_lastRequest.substr(0, 3) == "GET") | ||||
| 			response.append(body); | ||||
| 	} | ||||
| 	else if (_lastRequest.substr(0, 4) == "POST") | ||||
| 	{ | ||||
| 		std::string::size_type pos = _lastRequest.find("\r\n\r\n"); | ||||
| 		pos += 4; | ||||
| 		std::string body = _lastRequest.substr(pos); | ||||
| 		response.append("HTTP/1.0 200 OK\r\n"); | ||||
| 		response.append("Content-Type: text/plain\r\n"); | ||||
| 		if (_lastRequest.find("Content-Length") != std::string::npos) | ||||
| 		{ | ||||
| 			response.append("Content-Length: ");  | ||||
| 			response.append(NumberFormatter::format((int) body.size())); | ||||
| 			response.append("\r\n"); | ||||
| 		} | ||||
| 		else if (_lastRequest.find("chunked") != std::string::npos) | ||||
| 		{ | ||||
| 			response.append("Transfer-Encoding: chunked\r\n"); | ||||
| 		} | ||||
| 		if (_lastRequest.substr(0,15) == "POST /keepAlive") | ||||
| 			response.append("Connection: keep-alive\r\n"); | ||||
| 		else | ||||
| 			response.append("Connection: Close\r\n"); | ||||
| 		response.append("\r\n"); | ||||
| 		response.append(body); | ||||
| 	} | ||||
| 	else if (_lastRequest.substr(0, 15) == "HEAD /keepAlive") | ||||
| 	{ | ||||
| 		std::string body(SMALL_BODY); | ||||
| 		response.append("HTTP/1.1 200 OK\r\n"); | ||||
| 		response.append("Connection: keep-alive\r\n"); | ||||
| 		response.append("Content-Type: text/plain\r\n"); | ||||
| 		response.append("Content-Length: ");  | ||||
| 		response.append(NumberFormatter::format((int) body.size())); | ||||
| 		response.append("\r\n\r\n"); | ||||
| 		response.append("HTTP/1.1 200 OK\r\n"); | ||||
| 		response.append("Connection: Keep-Alive\r\n"); | ||||
| 		response.append("Content-Type: text/plain\r\n"); | ||||
| 		response.append("Content-Length: ");  | ||||
| 		response.append(NumberFormatter::format((int) body.size())); | ||||
| 		response.append("\r\n\r\n"); | ||||
| 		response.append(body); | ||||
| 		body = LARGE_BODY; | ||||
| 		response.append("HTTP/1.1 200 OK\r\n"); | ||||
| 		response.append("Connection: keep-alive\r\n"); | ||||
| 		response.append("Content-Type: text/plain\r\n"); | ||||
| 		response.append("Transfer-Encoding: chunked\r\n\r\n"); | ||||
| 		response.append(NumberFormatter::formatHex((unsigned) body.length())); | ||||
| 		response.append("\r\n"); | ||||
| 		response.append(body); | ||||
| 		response.append("\r\n0\r\n\r\n"); | ||||
| 		response.append("HTTP/1.1 200 OK\r\n"); | ||||
| 		response.append("Connection: close\r\n"); | ||||
| 		response.append("Content-Type: text/plain\r\n"); | ||||
| 		response.append("Content-Length: ");  | ||||
| 		response.append(NumberFormatter::format((int) body.size())); | ||||
| 		response.append("\r\n\r\n"); | ||||
| 	} | ||||
| 	else if (_lastRequest.substr(0, 13) == "GET /redirect") | ||||
| 	{ | ||||
| 		response.append("HTTP/1.0 302 Found\r\n"); | ||||
| 		response.append("Location: /large\r\n"); | ||||
| 		response.append("\r\n"); | ||||
| 	} | ||||
| 	else if (_lastRequest.substr(0, 13) == "GET /notfound") | ||||
| 	{ | ||||
| 		response.append("HTTP/1.0 404 Not Found\r\n"); | ||||
| 		response.append("\r\n"); | ||||
| 	} | ||||
| 	else if (_lastRequest.substr(0, 5) == "GET /" || | ||||
| 	    _lastRequest.substr(0, 6) == "HEAD /") | ||||
| 	{ | ||||
| 		std::string body(SMALL_BODY); | ||||
| 		response.append("HTTP/1.0 200 OK\r\n"); | ||||
| 		response.append("Content-Type: text/plain\r\n"); | ||||
| 		response.append("Content-Length: ");  | ||||
| 		response.append(NumberFormatter::format((int) body.size())); | ||||
| 		response.append("\r\n"); | ||||
| 		response.append("Connection: Close\r\n"); | ||||
| 		response.append("\r\n"); | ||||
| 		if (_lastRequest.substr(0, 3) == "GET") | ||||
| 			response.append(body); | ||||
| 	} | ||||
| 	return response; | ||||
| } | ||||
|   | ||||
| @@ -1,81 +1,81 @@ | ||||
| // | ||||
| // HTTPSTestServer.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/testsuite/src/HTTPSTestServer.h#1 $ | ||||
| // | ||||
| // Definition of the HTTPSTestServer class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef HTTPSTestServer_INCLUDED | ||||
| #define HTTPSTestServer_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/Net.h" | ||||
| #include "Poco/Net/SecureServerSocket.h" | ||||
| #include "Poco/Thread.h" | ||||
| #include "Poco/Event.h" | ||||
|  | ||||
|  | ||||
| class HTTPSTestServer: public Poco::Runnable | ||||
| 	/// A simple sequential echo server. | ||||
| { | ||||
| public: | ||||
| 	HTTPSTestServer(); | ||||
| 		/// Creates the HTTPSTestServer. | ||||
|  | ||||
| 	~HTTPSTestServer(); | ||||
| 		/// Destroys the HTTPSTestServer. | ||||
|  | ||||
| 	Poco::UInt16 port() const; | ||||
| 		/// Returns the port the echo server is | ||||
| 		/// listening on. | ||||
| 		 | ||||
| 	void run(); | ||||
| 		/// Does the work. | ||||
| 		 | ||||
| 	const std::string& lastRequest() const; | ||||
| 		/// Returns the last request. | ||||
|  | ||||
| 	static const std::string SMALL_BODY; | ||||
| 	static const std::string LARGE_BODY;	 | ||||
|  | ||||
| protected: | ||||
| 	bool requestComplete() const; | ||||
| 	std::string handleRequest() const; | ||||
|  | ||||
| private: | ||||
| 	Poco::Net::SecureServerSocket _socket; | ||||
| 	Poco::Thread _thread; | ||||
| 	Poco::Event  _ready; | ||||
| 	bool         _stop; | ||||
| 	std::string  _lastRequest; | ||||
| }; | ||||
|  | ||||
|  | ||||
| #endif // HTTPSTestServer_INCLUDED | ||||
| // | ||||
| // HTTPSTestServer.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/testsuite/src/HTTPSTestServer.h#1 $ | ||||
| // | ||||
| // Definition of the HTTPSTestServer class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef HTTPSTestServer_INCLUDED | ||||
| #define HTTPSTestServer_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/Net.h" | ||||
| #include "Poco/Net/SecureServerSocket.h" | ||||
| #include "Poco/Thread.h" | ||||
| #include "Poco/Event.h" | ||||
|  | ||||
|  | ||||
| class HTTPSTestServer: public Poco::Runnable | ||||
| 	/// A simple sequential echo server. | ||||
| { | ||||
| public: | ||||
| 	HTTPSTestServer(); | ||||
| 		/// Creates the HTTPSTestServer. | ||||
|  | ||||
| 	~HTTPSTestServer(); | ||||
| 		/// Destroys the HTTPSTestServer. | ||||
|  | ||||
| 	Poco::UInt16 port() const; | ||||
| 		/// Returns the port the echo server is | ||||
| 		/// listening on. | ||||
| 		 | ||||
| 	void run(); | ||||
| 		/// Does the work. | ||||
| 		 | ||||
| 	const std::string& lastRequest() const; | ||||
| 		/// Returns the last request. | ||||
|  | ||||
| 	static const std::string SMALL_BODY; | ||||
| 	static const std::string LARGE_BODY;	 | ||||
|  | ||||
| protected: | ||||
| 	bool requestComplete() const; | ||||
| 	std::string handleRequest() const; | ||||
|  | ||||
| private: | ||||
| 	Poco::Net::SecureServerSocket _socket; | ||||
| 	Poco::Thread _thread; | ||||
| 	Poco::Event  _ready; | ||||
| 	bool         _stop; | ||||
| 	std::string  _lastRequest; | ||||
| }; | ||||
|  | ||||
|  | ||||
| #endif // HTTPSTestServer_INCLUDED | ||||
|   | ||||
| @@ -1,50 +1,50 @@ | ||||
| // | ||||
| // OpenSSLTestSuite.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/testsuite/src/NetSSLTestSuite.cpp#1 $ | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "NetSSLTestSuite.h" | ||||
|  | ||||
| #include "HTTPSClientTestSuite.h" | ||||
| #include "TCPServerTestSuite.h" | ||||
| #include "HTTPSServerTestSuite.h" | ||||
|  | ||||
|  | ||||
| CppUnit::Test* NetSSLTestSuite::suite() | ||||
| { | ||||
| 	CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("OpenSSLTestSuite"); | ||||
|  | ||||
| 	 | ||||
| 	pSuite->addTest(HTTPSClientTestSuite::suite()); | ||||
| 	pSuite->addTest(TCPServerTestSuite::suite()); | ||||
| 	pSuite->addTest(HTTPSServerTestSuite::suite()); | ||||
|  | ||||
| 	return pSuite; | ||||
| } | ||||
| // | ||||
| // OpenSSLTestSuite.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/testsuite/src/NetSSLTestSuite.cpp#1 $ | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "NetSSLTestSuite.h" | ||||
|  | ||||
| #include "HTTPSClientTestSuite.h" | ||||
| #include "TCPServerTestSuite.h" | ||||
| #include "HTTPSServerTestSuite.h" | ||||
|  | ||||
|  | ||||
| CppUnit::Test* NetSSLTestSuite::suite() | ||||
| { | ||||
| 	CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("OpenSSLTestSuite"); | ||||
|  | ||||
| 	 | ||||
| 	pSuite->addTest(HTTPSClientTestSuite::suite()); | ||||
| 	pSuite->addTest(TCPServerTestSuite::suite()); | ||||
| 	pSuite->addTest(HTTPSServerTestSuite::suite()); | ||||
|  | ||||
| 	return pSuite; | ||||
| } | ||||
|   | ||||
| @@ -1,49 +1,49 @@ | ||||
| // | ||||
| // NetSSLTestSuite.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/testsuite/src/NetSSLTestSuite.h#1 $ | ||||
| // | ||||
| // Definition of the NetSSLTestSuite class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSLTestSuite_INCLUDED | ||||
| #define NetSSLTestSuite_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "CppUnit/TestSuite.h" | ||||
|  | ||||
|  | ||||
| class NetSSLTestSuite | ||||
| { | ||||
| public: | ||||
| 	static CppUnit::Test* suite(); | ||||
| }; | ||||
|  | ||||
|  | ||||
| #endif // NetSSLTestSuite_INCLUDED | ||||
| // | ||||
| // NetSSLTestSuite.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/testsuite/src/NetSSLTestSuite.h#1 $ | ||||
| // | ||||
| // Definition of the NetSSLTestSuite class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef NetSSLTestSuite_INCLUDED | ||||
| #define NetSSLTestSuite_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "CppUnit/TestSuite.h" | ||||
|  | ||||
|  | ||||
| class NetSSLTestSuite | ||||
| { | ||||
| public: | ||||
| 	static CppUnit::Test* suite(); | ||||
| }; | ||||
|  | ||||
|  | ||||
| #endif // NetSSLTestSuite_INCLUDED | ||||
|   | ||||
| @@ -1,277 +1,277 @@ | ||||
| // | ||||
| // TCPServerTest.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/testsuite/src/TCPServerTest.cpp#1 $ | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "TCPServerTest.h" | ||||
| #include "CppUnit/TestCaller.h" | ||||
| #include "CppUnit/TestSuite.h" | ||||
| #include "Poco/Net/TCPServer.h" | ||||
| #include "Poco/Net/TCPServerConnection.h" | ||||
| #include "Poco/Net/TCPServerConnectionFactory.h" | ||||
| #include "Poco/Net/TCPServerParams.h" | ||||
| #include "Poco/Net/SecureStreamSocket.h" | ||||
| #include "Poco/Net/SecureServerSocket.h" | ||||
| #include "Poco/Thread.h" | ||||
| #include <iostream> | ||||
|  | ||||
|  | ||||
| using Poco::Net::TCPServer; | ||||
| using Poco::Net::TCPServerConnection; | ||||
| using Poco::Net::TCPServerConnectionFactory; | ||||
| using Poco::Net::TCPServerConnectionFactoryImpl; | ||||
| using Poco::Net::TCPServerParams; | ||||
| using Poco::Net::StreamSocket; | ||||
| using Poco::Net::SecureStreamSocket; | ||||
| using Poco::Net::SecureServerSocket; | ||||
| using Poco::Net::SocketAddress; | ||||
| using Poco::Thread; | ||||
|  | ||||
|  | ||||
| namespace | ||||
| { | ||||
| 	class EchoConnection: public TCPServerConnection | ||||
| 	{ | ||||
| 	public: | ||||
| 		EchoConnection(const StreamSocket& s): TCPServerConnection(s) | ||||
| 		{ | ||||
| 		} | ||||
| 		 | ||||
| 		void run() | ||||
| 		{ | ||||
| 			StreamSocket& ss = socket(); | ||||
| 			try | ||||
| 			{ | ||||
| 				char buffer[256]; | ||||
| 				int n = ss.receiveBytes(buffer, sizeof(buffer)); | ||||
| 				while (n > 0) | ||||
| 				{ | ||||
| 					ss.sendBytes(buffer, n); | ||||
| 					n = ss.receiveBytes(buffer, sizeof(buffer)); | ||||
| 				} | ||||
| 			} | ||||
| 			catch (Poco::Exception& exc) | ||||
| 			{ | ||||
| 				std::cerr << "EchoConnection: " << exc.displayText() << std::endl; | ||||
| 			} | ||||
| 		} | ||||
| 	}; | ||||
| } | ||||
|  | ||||
|  | ||||
| TCPServerTest::TCPServerTest(const std::string& name): CppUnit::TestCase(name) | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| TCPServerTest::~TCPServerTest() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| void TCPServerTest::testOneConnection() | ||||
| { | ||||
| 	SecureServerSocket svs(0); | ||||
| 	TCPServer srv(new TCPServerConnectionFactoryImpl<EchoConnection>(), svs); | ||||
| 	srv.start(); | ||||
| 	assert (srv.currentConnections() == 0); | ||||
| 	assert (srv.currentThreads() == 0); | ||||
| 	assert (srv.queuedConnections() == 0); | ||||
| 	assert (srv.totalConnections() == 0); | ||||
| 	 | ||||
| 	SocketAddress sa("localhost", svs.address().port()); | ||||
| 	SecureStreamSocket ss1(sa); | ||||
| 	std::string data("hello, world"); | ||||
| 	ss1.sendBytes(data.data(), (int) data.size()); | ||||
| 	char buffer[256]; | ||||
| 	int n = ss1.receiveBytes(buffer, sizeof(buffer)); | ||||
| 	assert (n > 0); | ||||
| 	assert (std::string(buffer, n) == data); | ||||
| 	assert (srv.currentConnections() == 1); | ||||
| 	assert (srv.currentThreads() == 1); | ||||
| 	assert (srv.queuedConnections() == 0); | ||||
| 	assert (srv.totalConnections() == 1); | ||||
| 	ss1.close(); | ||||
| 	Thread::sleep(300); | ||||
| 	assert (srv.currentConnections() == 0); | ||||
| } | ||||
|  | ||||
|  | ||||
| void TCPServerTest::testTwoConnections() | ||||
| { | ||||
| 	SecureServerSocket svs(0); | ||||
| 	TCPServer srv(new TCPServerConnectionFactoryImpl<EchoConnection>(), svs); | ||||
| 	srv.start(); | ||||
| 	assert (srv.currentConnections() == 0); | ||||
| 	assert (srv.currentThreads() == 0); | ||||
| 	assert (srv.queuedConnections() == 0); | ||||
| 	assert (srv.totalConnections() == 0); | ||||
| 	 | ||||
| 	SocketAddress sa("localhost", svs.address().port()); | ||||
| 	SecureStreamSocket ss1(sa); | ||||
| 	SecureStreamSocket ss2(sa); | ||||
| 	std::string data("hello, world"); | ||||
| 	ss1.sendBytes(data.data(), (int) data.size()); | ||||
| 	ss2.sendBytes(data.data(), (int) data.size()); | ||||
|  | ||||
| 	char buffer[256]; | ||||
| 	int n = ss1.receiveBytes(buffer, sizeof(buffer)); | ||||
| 	assert (n > 0); | ||||
| 	assert (std::string(buffer, n) == data); | ||||
|  | ||||
| 	n = ss2.receiveBytes(buffer, sizeof(buffer)); | ||||
| 	assert (n > 0); | ||||
| 	assert (std::string(buffer, n) == data); | ||||
| 	 | ||||
| 	assert (srv.currentConnections() == 2); | ||||
| 	assert (srv.currentThreads() == 2); | ||||
| 	assert (srv.queuedConnections() == 0); | ||||
| 	assert (srv.totalConnections() == 2); | ||||
| 	ss1.close(); | ||||
| 	Thread::sleep(300); | ||||
| 	assert (srv.currentConnections() == 1); | ||||
| 	assert (srv.currentThreads() == 1); | ||||
| 	assert (srv.queuedConnections() == 0); | ||||
| 	assert (srv.totalConnections() == 2); | ||||
| 	ss2.close(); | ||||
|  | ||||
| 	Thread::sleep(300); | ||||
| 	assert (srv.currentConnections() == 0); | ||||
| } | ||||
|  | ||||
|  | ||||
| void TCPServerTest::testMultiConnections() | ||||
| { | ||||
| 	SecureServerSocket svs(0); | ||||
| 	TCPServerParams* pParams = new TCPServerParams; | ||||
| 	pParams->setMaxThreads(4); | ||||
| 	pParams->setMaxQueued(4); | ||||
| 	pParams->setThreadIdleTime(100); | ||||
| 	TCPServer srv(new TCPServerConnectionFactoryImpl<EchoConnection>(), svs, pParams); | ||||
| 	srv.start(); | ||||
| 	assert (srv.currentConnections() == 0); | ||||
| 	assert (srv.currentThreads() == 0); | ||||
| 	assert (srv.queuedConnections() == 0); | ||||
| 	assert (srv.totalConnections() == 0); | ||||
| 	 | ||||
| 	SocketAddress sa("localhost", svs.address().port()); | ||||
| 	SecureStreamSocket ss1(sa); | ||||
| 	SecureStreamSocket ss2(sa); | ||||
| 	SecureStreamSocket ss3(sa); | ||||
| 	SecureStreamSocket ss4(sa); | ||||
| 	std::string data("hello, world"); | ||||
| 	ss1.sendBytes(data.data(), (int) data.size()); | ||||
| 	ss2.sendBytes(data.data(), (int) data.size()); | ||||
| 	ss3.sendBytes(data.data(), (int) data.size()); | ||||
| 	ss4.sendBytes(data.data(), (int) data.size()); | ||||
|  | ||||
| 	char buffer[256]; | ||||
| 	int n = ss1.receiveBytes(buffer, sizeof(buffer)); | ||||
| 	assert (n > 0); | ||||
| 	assert (std::string(buffer, n) == data); | ||||
|  | ||||
| 	n = ss2.receiveBytes(buffer, sizeof(buffer)); | ||||
| 	assert (n > 0); | ||||
| 	assert (std::string(buffer, n) == data); | ||||
|  | ||||
| 	n = ss3.receiveBytes(buffer, sizeof(buffer)); | ||||
| 	assert (n > 0); | ||||
| 	assert (std::string(buffer, n) == data); | ||||
|  | ||||
| 	n = ss4.receiveBytes(buffer, sizeof(buffer)); | ||||
| 	assert (n > 0); | ||||
| 	assert (std::string(buffer, n) == data); | ||||
| 	 | ||||
| 	assert (srv.currentConnections() == 4); | ||||
| 	assert (srv.currentThreads() == 4); | ||||
| 	assert (srv.queuedConnections() == 0); | ||||
| 	assert (srv.totalConnections() == 4); | ||||
| 	 | ||||
| 	SecureStreamSocket ss5(sa); | ||||
| 	Thread::sleep(200); | ||||
| 	assert (srv.queuedConnections() == 1); | ||||
| 	SecureStreamSocket ss6(sa); | ||||
| 	Thread::sleep(200); | ||||
| 	assert (srv.queuedConnections() == 2); | ||||
| 	 | ||||
| 	ss1.close(); | ||||
| 	Thread::sleep(300); | ||||
| 	assert (srv.currentConnections() == 4); | ||||
| 	assert (srv.currentThreads() == 4); | ||||
| 	assert (srv.queuedConnections() == 1); | ||||
| 	assert (srv.totalConnections() == 5); | ||||
|  | ||||
| 	ss2.close(); | ||||
| 	Thread::sleep(300); | ||||
| 	assert (srv.currentConnections() == 4); | ||||
| 	assert (srv.currentThreads() == 4); | ||||
| 	assert (srv.queuedConnections() == 0); | ||||
| 	assert (srv.totalConnections() == 6); | ||||
| 	 | ||||
| 	ss3.close(); | ||||
| 	Thread::sleep(300); | ||||
| 	assert (srv.currentConnections() == 3); | ||||
| 	assert (srv.currentThreads() == 3); | ||||
| 	assert (srv.queuedConnections() == 0); | ||||
| 	assert (srv.totalConnections() == 6); | ||||
|  | ||||
| 	ss4.close(); | ||||
| 	Thread::sleep(300); | ||||
| 	assert (srv.currentConnections() == 2); | ||||
| 	assert (srv.currentThreads() == 2); | ||||
| 	assert (srv.queuedConnections() == 0); | ||||
| 	assert (srv.totalConnections() == 6); | ||||
|  | ||||
| 	ss5.close(); | ||||
| 	ss6.close(); | ||||
| 	Thread::sleep(300); | ||||
| 	assert (srv.currentConnections() == 0);} | ||||
|  | ||||
|  | ||||
| void TCPServerTest::setUp() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| void TCPServerTest::tearDown() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| CppUnit::Test* TCPServerTest::suite() | ||||
| { | ||||
| 	CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("TCPServerTest"); | ||||
|  | ||||
| 	CppUnit_addTest(pSuite, TCPServerTest, testOneConnection); | ||||
| 	CppUnit_addTest(pSuite, TCPServerTest, testTwoConnections); | ||||
| 	CppUnit_addTest(pSuite, TCPServerTest, testMultiConnections); | ||||
|  | ||||
| 	return pSuite; | ||||
| } | ||||
| // | ||||
| // TCPServerTest.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/testsuite/src/TCPServerTest.cpp#1 $ | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "TCPServerTest.h" | ||||
| #include "CppUnit/TestCaller.h" | ||||
| #include "CppUnit/TestSuite.h" | ||||
| #include "Poco/Net/TCPServer.h" | ||||
| #include "Poco/Net/TCPServerConnection.h" | ||||
| #include "Poco/Net/TCPServerConnectionFactory.h" | ||||
| #include "Poco/Net/TCPServerParams.h" | ||||
| #include "Poco/Net/SecureStreamSocket.h" | ||||
| #include "Poco/Net/SecureServerSocket.h" | ||||
| #include "Poco/Thread.h" | ||||
| #include <iostream> | ||||
|  | ||||
|  | ||||
| using Poco::Net::TCPServer; | ||||
| using Poco::Net::TCPServerConnection; | ||||
| using Poco::Net::TCPServerConnectionFactory; | ||||
| using Poco::Net::TCPServerConnectionFactoryImpl; | ||||
| using Poco::Net::TCPServerParams; | ||||
| using Poco::Net::StreamSocket; | ||||
| using Poco::Net::SecureStreamSocket; | ||||
| using Poco::Net::SecureServerSocket; | ||||
| using Poco::Net::SocketAddress; | ||||
| using Poco::Thread; | ||||
|  | ||||
|  | ||||
| namespace | ||||
| { | ||||
| 	class EchoConnection: public TCPServerConnection | ||||
| 	{ | ||||
| 	public: | ||||
| 		EchoConnection(const StreamSocket& s): TCPServerConnection(s) | ||||
| 		{ | ||||
| 		} | ||||
| 		 | ||||
| 		void run() | ||||
| 		{ | ||||
| 			StreamSocket& ss = socket(); | ||||
| 			try | ||||
| 			{ | ||||
| 				char buffer[256]; | ||||
| 				int n = ss.receiveBytes(buffer, sizeof(buffer)); | ||||
| 				while (n > 0) | ||||
| 				{ | ||||
| 					ss.sendBytes(buffer, n); | ||||
| 					n = ss.receiveBytes(buffer, sizeof(buffer)); | ||||
| 				} | ||||
| 			} | ||||
| 			catch (Poco::Exception& exc) | ||||
| 			{ | ||||
| 				std::cerr << "EchoConnection: " << exc.displayText() << std::endl; | ||||
| 			} | ||||
| 		} | ||||
| 	}; | ||||
| } | ||||
|  | ||||
|  | ||||
| TCPServerTest::TCPServerTest(const std::string& name): CppUnit::TestCase(name) | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| TCPServerTest::~TCPServerTest() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| void TCPServerTest::testOneConnection() | ||||
| { | ||||
| 	SecureServerSocket svs(0); | ||||
| 	TCPServer srv(new TCPServerConnectionFactoryImpl<EchoConnection>(), svs); | ||||
| 	srv.start(); | ||||
| 	assert (srv.currentConnections() == 0); | ||||
| 	assert (srv.currentThreads() == 0); | ||||
| 	assert (srv.queuedConnections() == 0); | ||||
| 	assert (srv.totalConnections() == 0); | ||||
| 	 | ||||
| 	SocketAddress sa("localhost", svs.address().port()); | ||||
| 	SecureStreamSocket ss1(sa); | ||||
| 	std::string data("hello, world"); | ||||
| 	ss1.sendBytes(data.data(), (int) data.size()); | ||||
| 	char buffer[256]; | ||||
| 	int n = ss1.receiveBytes(buffer, sizeof(buffer)); | ||||
| 	assert (n > 0); | ||||
| 	assert (std::string(buffer, n) == data); | ||||
| 	assert (srv.currentConnections() == 1); | ||||
| 	assert (srv.currentThreads() == 1); | ||||
| 	assert (srv.queuedConnections() == 0); | ||||
| 	assert (srv.totalConnections() == 1); | ||||
| 	ss1.close(); | ||||
| 	Thread::sleep(300); | ||||
| 	assert (srv.currentConnections() == 0); | ||||
| } | ||||
|  | ||||
|  | ||||
| void TCPServerTest::testTwoConnections() | ||||
| { | ||||
| 	SecureServerSocket svs(0); | ||||
| 	TCPServer srv(new TCPServerConnectionFactoryImpl<EchoConnection>(), svs); | ||||
| 	srv.start(); | ||||
| 	assert (srv.currentConnections() == 0); | ||||
| 	assert (srv.currentThreads() == 0); | ||||
| 	assert (srv.queuedConnections() == 0); | ||||
| 	assert (srv.totalConnections() == 0); | ||||
| 	 | ||||
| 	SocketAddress sa("localhost", svs.address().port()); | ||||
| 	SecureStreamSocket ss1(sa); | ||||
| 	SecureStreamSocket ss2(sa); | ||||
| 	std::string data("hello, world"); | ||||
| 	ss1.sendBytes(data.data(), (int) data.size()); | ||||
| 	ss2.sendBytes(data.data(), (int) data.size()); | ||||
|  | ||||
| 	char buffer[256]; | ||||
| 	int n = ss1.receiveBytes(buffer, sizeof(buffer)); | ||||
| 	assert (n > 0); | ||||
| 	assert (std::string(buffer, n) == data); | ||||
|  | ||||
| 	n = ss2.receiveBytes(buffer, sizeof(buffer)); | ||||
| 	assert (n > 0); | ||||
| 	assert (std::string(buffer, n) == data); | ||||
| 	 | ||||
| 	assert (srv.currentConnections() == 2); | ||||
| 	assert (srv.currentThreads() == 2); | ||||
| 	assert (srv.queuedConnections() == 0); | ||||
| 	assert (srv.totalConnections() == 2); | ||||
| 	ss1.close(); | ||||
| 	Thread::sleep(300); | ||||
| 	assert (srv.currentConnections() == 1); | ||||
| 	assert (srv.currentThreads() == 1); | ||||
| 	assert (srv.queuedConnections() == 0); | ||||
| 	assert (srv.totalConnections() == 2); | ||||
| 	ss2.close(); | ||||
|  | ||||
| 	Thread::sleep(300); | ||||
| 	assert (srv.currentConnections() == 0); | ||||
| } | ||||
|  | ||||
|  | ||||
| void TCPServerTest::testMultiConnections() | ||||
| { | ||||
| 	SecureServerSocket svs(0); | ||||
| 	TCPServerParams* pParams = new TCPServerParams; | ||||
| 	pParams->setMaxThreads(4); | ||||
| 	pParams->setMaxQueued(4); | ||||
| 	pParams->setThreadIdleTime(100); | ||||
| 	TCPServer srv(new TCPServerConnectionFactoryImpl<EchoConnection>(), svs, pParams); | ||||
| 	srv.start(); | ||||
| 	assert (srv.currentConnections() == 0); | ||||
| 	assert (srv.currentThreads() == 0); | ||||
| 	assert (srv.queuedConnections() == 0); | ||||
| 	assert (srv.totalConnections() == 0); | ||||
| 	 | ||||
| 	SocketAddress sa("localhost", svs.address().port()); | ||||
| 	SecureStreamSocket ss1(sa); | ||||
| 	SecureStreamSocket ss2(sa); | ||||
| 	SecureStreamSocket ss3(sa); | ||||
| 	SecureStreamSocket ss4(sa); | ||||
| 	std::string data("hello, world"); | ||||
| 	ss1.sendBytes(data.data(), (int) data.size()); | ||||
| 	ss2.sendBytes(data.data(), (int) data.size()); | ||||
| 	ss3.sendBytes(data.data(), (int) data.size()); | ||||
| 	ss4.sendBytes(data.data(), (int) data.size()); | ||||
|  | ||||
| 	char buffer[256]; | ||||
| 	int n = ss1.receiveBytes(buffer, sizeof(buffer)); | ||||
| 	assert (n > 0); | ||||
| 	assert (std::string(buffer, n) == data); | ||||
|  | ||||
| 	n = ss2.receiveBytes(buffer, sizeof(buffer)); | ||||
| 	assert (n > 0); | ||||
| 	assert (std::string(buffer, n) == data); | ||||
|  | ||||
| 	n = ss3.receiveBytes(buffer, sizeof(buffer)); | ||||
| 	assert (n > 0); | ||||
| 	assert (std::string(buffer, n) == data); | ||||
|  | ||||
| 	n = ss4.receiveBytes(buffer, sizeof(buffer)); | ||||
| 	assert (n > 0); | ||||
| 	assert (std::string(buffer, n) == data); | ||||
| 	 | ||||
| 	assert (srv.currentConnections() == 4); | ||||
| 	assert (srv.currentThreads() == 4); | ||||
| 	assert (srv.queuedConnections() == 0); | ||||
| 	assert (srv.totalConnections() == 4); | ||||
| 	 | ||||
| 	SecureStreamSocket ss5(sa); | ||||
| 	Thread::sleep(200); | ||||
| 	assert (srv.queuedConnections() == 1); | ||||
| 	SecureStreamSocket ss6(sa); | ||||
| 	Thread::sleep(200); | ||||
| 	assert (srv.queuedConnections() == 2); | ||||
| 	 | ||||
| 	ss1.close(); | ||||
| 	Thread::sleep(300); | ||||
| 	assert (srv.currentConnections() == 4); | ||||
| 	assert (srv.currentThreads() == 4); | ||||
| 	assert (srv.queuedConnections() == 1); | ||||
| 	assert (srv.totalConnections() == 5); | ||||
|  | ||||
| 	ss2.close(); | ||||
| 	Thread::sleep(300); | ||||
| 	assert (srv.currentConnections() == 4); | ||||
| 	assert (srv.currentThreads() == 4); | ||||
| 	assert (srv.queuedConnections() == 0); | ||||
| 	assert (srv.totalConnections() == 6); | ||||
| 	 | ||||
| 	ss3.close(); | ||||
| 	Thread::sleep(300); | ||||
| 	assert (srv.currentConnections() == 3); | ||||
| 	assert (srv.currentThreads() == 3); | ||||
| 	assert (srv.queuedConnections() == 0); | ||||
| 	assert (srv.totalConnections() == 6); | ||||
|  | ||||
| 	ss4.close(); | ||||
| 	Thread::sleep(300); | ||||
| 	assert (srv.currentConnections() == 2); | ||||
| 	assert (srv.currentThreads() == 2); | ||||
| 	assert (srv.queuedConnections() == 0); | ||||
| 	assert (srv.totalConnections() == 6); | ||||
|  | ||||
| 	ss5.close(); | ||||
| 	ss6.close(); | ||||
| 	Thread::sleep(300); | ||||
| 	assert (srv.currentConnections() == 0);} | ||||
|  | ||||
|  | ||||
| void TCPServerTest::setUp() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| void TCPServerTest::tearDown() | ||||
| { | ||||
| } | ||||
|  | ||||
|  | ||||
| CppUnit::Test* TCPServerTest::suite() | ||||
| { | ||||
| 	CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("TCPServerTest"); | ||||
|  | ||||
| 	CppUnit_addTest(pSuite, TCPServerTest, testOneConnection); | ||||
| 	CppUnit_addTest(pSuite, TCPServerTest, testTwoConnections); | ||||
| 	CppUnit_addTest(pSuite, TCPServerTest, testMultiConnections); | ||||
|  | ||||
| 	return pSuite; | ||||
| } | ||||
|   | ||||
| @@ -1,62 +1,62 @@ | ||||
| // | ||||
| // TCPServerTest.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/testsuite/src/TCPServerTest.h#1 $ | ||||
| // | ||||
| // Definition of the TCPServerTest class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef TCPServerTest_INCLUDED | ||||
| #define TCPServerTest_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/Net.h" | ||||
| #include "CppUnit/TestCase.h" | ||||
|  | ||||
|  | ||||
| class TCPServerTest: public CppUnit::TestCase | ||||
| { | ||||
| public: | ||||
| 	TCPServerTest(const std::string& name); | ||||
| 	~TCPServerTest(); | ||||
|  | ||||
| 	void testOneConnection(); | ||||
| 	void testTwoConnections(); | ||||
| 	void testMultiConnections(); | ||||
|  | ||||
| 	void setUp(); | ||||
| 	void tearDown(); | ||||
|  | ||||
| 	static CppUnit::Test* suite(); | ||||
|  | ||||
| private: | ||||
| }; | ||||
|  | ||||
|  | ||||
| #endif // TCPServerTest_INCLUDED | ||||
| // | ||||
| // TCPServerTest.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/testsuite/src/TCPServerTest.h#1 $ | ||||
| // | ||||
| // Definition of the TCPServerTest class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef TCPServerTest_INCLUDED | ||||
| #define TCPServerTest_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "Poco/Net/Net.h" | ||||
| #include "CppUnit/TestCase.h" | ||||
|  | ||||
|  | ||||
| class TCPServerTest: public CppUnit::TestCase | ||||
| { | ||||
| public: | ||||
| 	TCPServerTest(const std::string& name); | ||||
| 	~TCPServerTest(); | ||||
|  | ||||
| 	void testOneConnection(); | ||||
| 	void testTwoConnections(); | ||||
| 	void testMultiConnections(); | ||||
|  | ||||
| 	void setUp(); | ||||
| 	void tearDown(); | ||||
|  | ||||
| 	static CppUnit::Test* suite(); | ||||
|  | ||||
| private: | ||||
| }; | ||||
|  | ||||
|  | ||||
| #endif // TCPServerTest_INCLUDED | ||||
|   | ||||
| @@ -1,44 +1,44 @@ | ||||
| // | ||||
| // TCPServerTestSuite.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/testsuite/src/TCPServerTestSuite.cpp#1 $ | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "TCPServerTestSuite.h" | ||||
| #include "TCPServerTest.h" | ||||
|  | ||||
|  | ||||
| CppUnit::Test* TCPServerTestSuite::suite() | ||||
| { | ||||
| 	CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("TCPServerTestSuite"); | ||||
|  | ||||
| 	pSuite->addTest(TCPServerTest::suite()); | ||||
|  | ||||
| 	return pSuite; | ||||
| } | ||||
| // | ||||
| // TCPServerTestSuite.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/testsuite/src/TCPServerTestSuite.cpp#1 $ | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "TCPServerTestSuite.h" | ||||
| #include "TCPServerTest.h" | ||||
|  | ||||
|  | ||||
| CppUnit::Test* TCPServerTestSuite::suite() | ||||
| { | ||||
| 	CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("TCPServerTestSuite"); | ||||
|  | ||||
| 	pSuite->addTest(TCPServerTest::suite()); | ||||
|  | ||||
| 	return pSuite; | ||||
| } | ||||
|   | ||||
| @@ -1,49 +1,49 @@ | ||||
| // | ||||
| // TCPServerTestSuite.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/testsuite/src/TCPServerTestSuite.h#1 $ | ||||
| // | ||||
| // Definition of the TCPServerTestSuite class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef TCPServerTestSuite_INCLUDED | ||||
| #define TCPServerTestSuite_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "CppUnit/TestSuite.h" | ||||
|  | ||||
|  | ||||
| class TCPServerTestSuite | ||||
| { | ||||
| public: | ||||
| 	static CppUnit::Test* suite(); | ||||
| }; | ||||
|  | ||||
|  | ||||
| #endif // TCPServerTestSuite_INCLUDED | ||||
| // | ||||
| // TCPServerTestSuite.h | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/testsuite/src/TCPServerTestSuite.h#1 $ | ||||
| // | ||||
| // Definition of the TCPServerTestSuite class. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #ifndef TCPServerTestSuite_INCLUDED | ||||
| #define TCPServerTestSuite_INCLUDED | ||||
|  | ||||
|  | ||||
| #include "CppUnit/TestSuite.h" | ||||
|  | ||||
|  | ||||
| class TCPServerTestSuite | ||||
| { | ||||
| public: | ||||
| 	static CppUnit::Test* suite(); | ||||
| }; | ||||
|  | ||||
|  | ||||
| #endif // TCPServerTestSuite_INCLUDED | ||||
|   | ||||
| @@ -1,86 +1,86 @@ | ||||
| // | ||||
| // WinDriver.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/testsuite/src/WinDriver.cpp#1 $ | ||||
| // | ||||
| // Windows test driver for Poco OpenSSL. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "WinTestRunner/WinTestRunner.h" | ||||
| #include "NetSSLTestSuite.h" | ||||
| #include "Poco/Util/Application.h" | ||||
| #include "Poco/Net/HTTPStreamFactory.h" | ||||
| #include "Poco/Net/HTTPSStreamFactory.h" | ||||
|  | ||||
|  | ||||
| class NetSSLApp: public Poco::Util::Application | ||||
| { | ||||
| public: | ||||
| 	NetSSLApp() | ||||
| 	{ | ||||
| 	} | ||||
|  | ||||
| 	~NetSSLApp() | ||||
| 	{ | ||||
| 	} | ||||
|  | ||||
| protected:	 | ||||
| 	void initialize(Application& self) | ||||
| 	{ | ||||
| 		loadConfiguration(); // load default configuration files, if present | ||||
| 		Application::initialize(self); | ||||
| 	} | ||||
| }; | ||||
|  | ||||
|  | ||||
| class TestDriver: public CppUnit::WinTestRunnerApp | ||||
| { | ||||
| 	void TestMain() | ||||
| 	{ | ||||
| 		CppUnit::WinTestRunner runner; | ||||
| 		Poco::Net::HTTPStreamFactory::registerFactory(); | ||||
| 		Poco::Net::HTTPSStreamFactory::registerFactory(); | ||||
| 		NetSSLApp app; | ||||
| 		std::string argv("OpenSSLTest"); | ||||
| 		const char* pArgv = argv.c_str(); | ||||
| 		try | ||||
| 		{ | ||||
| 			app.init(1, (char**)&pArgv); | ||||
| 		} | ||||
| 		catch (Poco::Exception& exc) | ||||
| 		{ | ||||
| 			app.logger().log(exc); | ||||
| 		} | ||||
| 		runner.addTest(NetSSLTestSuite::suite()); | ||||
| 		runner.run(); | ||||
| 	} | ||||
| }; | ||||
|  | ||||
|  | ||||
| static TestDriver theDriver; | ||||
| // | ||||
| // WinDriver.cpp | ||||
| // | ||||
| // $Id: //poco/1.3/NetSSL_OpenSSL/testsuite/src/WinDriver.cpp#1 $ | ||||
| // | ||||
| // Windows test driver for Poco OpenSSL. | ||||
| // | ||||
| // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. | ||||
| // and Contributors. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person or organization | ||||
| // obtaining a copy of the software and accompanying documentation covered by | ||||
| // this license (the "Software") to use, reproduce, display, distribute, | ||||
| // execute, and transmit the Software, and to prepare derivative works of the | ||||
| // Software, and to permit third-parties to whom the Software is furnished to | ||||
| // do so, all subject to the following: | ||||
| //  | ||||
| // The copyright notices in the Software and this entire statement, including | ||||
| // the above license grant, this restriction and the following disclaimer, | ||||
| // must be included in all copies of the Software, in whole or in part, and | ||||
| // all derivative works of the Software, unless such copies or derivative | ||||
| // works are solely in the form of machine-executable object code generated by | ||||
| // a source language processor. | ||||
| //  | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
| // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
| // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
| // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
| // DEALINGS IN THE SOFTWARE. | ||||
| // | ||||
|  | ||||
|  | ||||
| #include "WinTestRunner/WinTestRunner.h" | ||||
| #include "NetSSLTestSuite.h" | ||||
| #include "Poco/Util/Application.h" | ||||
| #include "Poco/Net/HTTPStreamFactory.h" | ||||
| #include "Poco/Net/HTTPSStreamFactory.h" | ||||
|  | ||||
|  | ||||
| class NetSSLApp: public Poco::Util::Application | ||||
| { | ||||
| public: | ||||
| 	NetSSLApp() | ||||
| 	{ | ||||
| 	} | ||||
|  | ||||
| 	~NetSSLApp() | ||||
| 	{ | ||||
| 	} | ||||
|  | ||||
| protected:	 | ||||
| 	void initialize(Application& self) | ||||
| 	{ | ||||
| 		loadConfiguration(); // load default configuration files, if present | ||||
| 		Application::initialize(self); | ||||
| 	} | ||||
| }; | ||||
|  | ||||
|  | ||||
| class TestDriver: public CppUnit::WinTestRunnerApp | ||||
| { | ||||
| 	void TestMain() | ||||
| 	{ | ||||
| 		CppUnit::WinTestRunner runner; | ||||
| 		Poco::Net::HTTPStreamFactory::registerFactory(); | ||||
| 		Poco::Net::HTTPSStreamFactory::registerFactory(); | ||||
| 		NetSSLApp app; | ||||
| 		std::string argv("OpenSSLTest"); | ||||
| 		const char* pArgv = argv.c_str(); | ||||
| 		try | ||||
| 		{ | ||||
| 			app.init(1, (char**)&pArgv); | ||||
| 		} | ||||
| 		catch (Poco::Exception& exc) | ||||
| 		{ | ||||
| 			app.logger().log(exc); | ||||
| 		} | ||||
| 		runner.addTest(NetSSLTestSuite::suite()); | ||||
| 		runner.run(); | ||||
| 	} | ||||
| }; | ||||
|  | ||||
|  | ||||
| static TestDriver theDriver; | ||||
|   | ||||
| @@ -1,42 +1,42 @@ | ||||
| <AppConfig> | ||||
| 	<openSSL> | ||||
| 		<server> | ||||
| 			<privateKeyFile>${application.configDir}any.pem</privateKeyFile> | ||||
| 			<caConfig>${application.configDir}rootcert.pem</caConfig> | ||||
| 			<verificationMode>none</verificationMode> | ||||
| 			<verificationDepth>9</verificationDepth> | ||||
| 			<loadDefaultCAFile>true</loadDefaultCAFile> | ||||
| 			<cypherList>ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH</cypherList> | ||||
| 			<privateKeyPassphraseHandler> | ||||
| 				<name>KeyFileHandler</name> | ||||
| 				<options> | ||||
| 					<password>test</password> | ||||
| 				</options> | ||||
| 			</privateKeyPassphraseHandler> | ||||
| 			<invalidCertificateHandler> | ||||
| 				<name>AcceptCertificateHandler</name> | ||||
| 				<options> | ||||
| 				</options> | ||||
| 			</invalidCertificateHandler> | ||||
| 		</server> | ||||
| 		<client> | ||||
| 			<privateKeyFile>${application.configDir}any.pem</privateKeyFile> | ||||
| 			<caConfig>${application.configDir}rootcert.pem</caConfig> | ||||
| 			<verificationMode>relaxed</verificationMode> | ||||
| 			<verificationDepth>9</verificationDepth> | ||||
| 			<loadDefaultCAFile>true</loadDefaultCAFile> | ||||
| 			<cypherList>ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH</cypherList> | ||||
| 			<privateKeyPassphraseHandler> | ||||
| 				<name>KeyFileHandler</name> | ||||
| 				<options> | ||||
| 					<password>test</password> | ||||
| 				</options> | ||||
| 			</privateKeyPassphraseHandler> | ||||
| 			<invalidCertificateHandler> | ||||
| 				<name>AcceptCertificateHandler</name> | ||||
| 				<options> | ||||
| 				</options> | ||||
| 			</invalidCertificateHandler> | ||||
| 		</client> | ||||
| 	</openSSL> | ||||
| </AppConfig> | ||||
| <AppConfig> | ||||
| 	<openSSL> | ||||
| 		<server> | ||||
| 			<privateKeyFile>${application.configDir}any.pem</privateKeyFile> | ||||
| 			<caConfig>${application.configDir}rootcert.pem</caConfig> | ||||
| 			<verificationMode>none</verificationMode> | ||||
| 			<verificationDepth>9</verificationDepth> | ||||
| 			<loadDefaultCAFile>true</loadDefaultCAFile> | ||||
| 			<cypherList>ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH</cypherList> | ||||
| 			<privateKeyPassphraseHandler> | ||||
| 				<name>KeyFileHandler</name> | ||||
| 				<options> | ||||
| 					<password>test</password> | ||||
| 				</options> | ||||
| 			</privateKeyPassphraseHandler> | ||||
| 			<invalidCertificateHandler> | ||||
| 				<name>AcceptCertificateHandler</name> | ||||
| 				<options> | ||||
| 				</options> | ||||
| 			</invalidCertificateHandler> | ||||
| 		</server> | ||||
| 		<client> | ||||
| 			<privateKeyFile>${application.configDir}any.pem</privateKeyFile> | ||||
| 			<caConfig>${application.configDir}rootcert.pem</caConfig> | ||||
| 			<verificationMode>relaxed</verificationMode> | ||||
| 			<verificationDepth>9</verificationDepth> | ||||
| 			<loadDefaultCAFile>true</loadDefaultCAFile> | ||||
| 			<cypherList>ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH</cypherList> | ||||
| 			<privateKeyPassphraseHandler> | ||||
| 				<name>KeyFileHandler</name> | ||||
| 				<options> | ||||
| 					<password>test</password> | ||||
| 				</options> | ||||
| 			</privateKeyPassphraseHandler> | ||||
| 			<invalidCertificateHandler> | ||||
| 				<name>AcceptCertificateHandler</name> | ||||
| 				<options> | ||||
| 				</options> | ||||
| 			</invalidCertificateHandler> | ||||
| 		</client> | ||||
| 	</openSSL> | ||||
| </AppConfig> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Guenter Obiltschnig
					Guenter Obiltschnig