This commit is contained in:
2025-11-24 14:19:51 +05:30
commit f5c1412b28
6734 changed files with 1527575 additions and 0 deletions

View File

@ -0,0 +1,36 @@
1. Download the native client SDK and Python if you need it.
https://developers.google.com/native-client/sdk/download
Get pepper_canary, not the recommended versions.
D:\nacl_sdk>naclsdk update pepper_canary
2. Download chromium
2A. First, get the source tarball as described in "Bootstrap using the tarball"
http://dev.chromium.org/developers/how-tos/get-the-code
2B. Download the depot_tools
http://dev.chromium.org/developers/how-tos/install-depot-tools
2C. After downloading the gclient / depot tools, be sure to start a new command prompt so the addition to your PATH takes effect.
Exectute the section on "Check out the sources"
3. Copy the private headers from the chromium repo into the SDK repo
mkdir D:\nacl_sdk\pepper_canary\include\ppapi\c\private
mkdir D:\nacl_sdk\pepper_canary\include\ppapi\cpp\private
copy D:\chromiumtrunk\src\ppapi\c\private\*.h D:\nacl_sdk\pepper_canary\include\ppapi\c\private
copy D:\chromiumtrunk\src\ppapi\cpp\private\*.h D:\nacl_sdk\pepper_canary\include\ppapi\cpp\private
4) Enable the experimental UDP apis in Chrome
go to about:flags and enable "NaCl Socket API"
5. Install the visual studio update
http://mainroach.blogspot.com/2012/10/official-nacl-vs2010-add-in-available.html
D:\nacl_sdk>naclsdk install vs_addin
D:\nacl_sdk>cd vs_addin
D:\nacl_sdk\vs_addin>install.bat
Set the enviroment variable NACL_SDK_ROOT to D:\nacl_sdk\pepper_canary
Then see https://developers.google.com/native-client/dev/devguide/devcycle/vs-addin#add-platforms
6. Build as in make.bat
7. Run httpd.py
8. Press F5 to debug. There are these instructions, but I don't believe they are relevant:http://www.chromium.org/nativeclient/how-tos/debugging-documentation/debugging-with-debug-stub-recommended/debugging-nacl-apps-in-visual-studio-with-wingdb-using-debug-stub-experimental

View File

@ -0,0 +1,358 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|NaCl64">
<Configuration>Debug</Configuration>
<Platform>NaCl64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|NaCl64">
<Configuration>Release</Configuration>
<Platform>NaCl64</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\Source\src\Base64Encoder.cpp" />
<ClCompile Include="..\..\..\Source\src\BitStream.cpp" />
<ClCompile Include="..\..\..\Source\src\CCRakNetSlidingWindow.cpp" />
<ClCompile Include="..\..\..\Source\src\CCRakNetUDT.cpp" />
<ClCompile Include="..\..\..\Source\src\CheckSum.cpp" />
<ClCompile Include="..\..\..\Source\src\CloudClient.cpp" />
<ClCompile Include="..\..\..\Source\src\CloudCommon.cpp" />
<ClCompile Include="..\..\..\Source\src\CloudServer.cpp" />
<ClCompile Include="..\..\..\Source\src\CommandParserInterface.cpp" />
<ClCompile Include="..\..\..\Source\src\ConnectionGraph2.cpp" />
<ClCompile Include="..\..\..\Source\src\ConsoleServer.cpp" />
<ClCompile Include="..\..\..\Source\src\DataCompressor.cpp" />
<ClCompile Include="..\..\..\Source\src\DirectoryDeltaTransfer.cpp" />
<ClCompile Include="..\..\..\Source\src\DS_BytePool.cpp" />
<ClCompile Include="..\..\..\Source\src\DS_ByteQueue.cpp" />
<ClCompile Include="..\..\..\Source\src\DS_HuffmanEncodingTree.cpp" />
<ClCompile Include="..\..\..\Source\src\DS_Table.cpp" />
<ClCompile Include="..\..\..\Source\src\DynDNS.cpp" />
<ClCompile Include="..\..\..\Source\src\EmailSender.cpp" />
<ClCompile Include="..\..\..\Source\src\EncodeClassName.cpp" />
<ClCompile Include="..\..\..\Source\src\EpochTimeToString.cpp" />
<ClCompile Include="..\..\..\Source\src\FileList.cpp" />
<ClCompile Include="..\..\..\Source\src\FileListTransfer.cpp" />
<ClCompile Include="..\..\..\Source\src\FileOperations.cpp" />
<ClCompile Include="..\..\..\Source\src\FormatString.cpp" />
<ClCompile Include="..\..\..\Source\src\FullyConnectedMesh2.cpp" />
<ClCompile Include="..\..\..\Source\src\Getche.cpp" />
<ClCompile Include="..\..\..\Source\src\Gets.cpp" />
<ClCompile Include="..\..\..\Source\src\GetTime.cpp" />
<ClCompile Include="..\..\..\Source\src\gettimeofday.cpp" />
<ClCompile Include="..\..\..\Source\src\GridSectorizer.cpp" />
<ClCompile Include="..\..\..\Source\src\HTTPConnection.cpp" />
<ClCompile Include="..\..\..\Source\src\HTTPConnection2.cpp" />
<ClCompile Include="..\..\..\Source\src\IncrementalReadInterface.cpp" />
<ClCompile Include="..\..\..\Source\src\Itoa.cpp" />
<ClCompile Include="..\..\..\Source\src\LinuxStrings.cpp" />
<ClCompile Include="..\..\..\Source\src\LocklessTypes.cpp" />
<ClCompile Include="..\..\..\Source\src\LogCommandParser.cpp" />
<ClCompile Include="..\..\..\Source\src\MessageFilter.cpp" />
<ClCompile Include="..\..\..\Source\src\NatPunchthroughClient.cpp" />
<ClCompile Include="..\..\..\Source\src\NatPunchthroughServer.cpp" />
<ClCompile Include="..\..\..\Source\src\NatTypeDetectionClient.cpp" />
<ClCompile Include="..\..\..\Source\src\NatTypeDetectionCommon.cpp" />
<ClCompile Include="..\..\..\Source\src\NatTypeDetectionServer.cpp" />
<ClCompile Include="..\..\..\Source\src\NetworkIDManager.cpp" />
<ClCompile Include="..\..\..\Source\src\NetworkIDObject.cpp" />
<ClCompile Include="..\..\..\Source\src\PacketConsoleLogger.cpp" />
<ClCompile Include="..\..\..\Source\src\PacketFileLogger.cpp" />
<ClCompile Include="..\..\..\Source\src\PacketizedTCP.cpp" />
<ClCompile Include="..\..\..\Source\src\PacketLogger.cpp" />
<ClCompile Include="..\..\..\Source\src\PacketOutputWindowLogger.cpp" />
<ClCompile Include="..\..\..\Source\src\PluginInterface2.cpp" />
<ClCompile Include="..\..\..\Source\src\Rackspace.cpp" />
<ClCompile Include="..\..\..\Source\src\RakMemoryOverride.cpp" />
<ClCompile Include="..\..\..\Source\src\RakNetCommandParser.cpp" />
<ClCompile Include="..\..\..\Source\src\RakNetSocket.cpp" />
<ClCompile Include="..\..\..\Source\src\RakNetSocket2.cpp" />
<ClCompile Include="..\..\..\Source\src\RakNetSocket2_360_720.cpp" />
<ClCompile Include="..\..\..\Source\src\RakNetSocket2_Berkley.cpp" />
<ClCompile Include="..\..\..\Source\src\RakNetSocket2_NativeClient.cpp" />
<ClCompile Include="..\..\..\Source\src\RakNetSocket2_PS3_PS4.cpp" />
<ClCompile Include="..\..\..\Source\src\RakNetSocket2_Vita.cpp" />
<ClCompile Include="..\..\..\Source\src\RakNetSocket2_Windows_Linux.cpp" />
<ClCompile Include="..\..\..\Source\src\RakNetSocket2_Windows_Linux_360.cpp" />
<ClCompile Include="..\..\..\Source\src\RakNetStatistics.cpp" />
<ClCompile Include="..\..\..\Source\src\RakNetTransport2.cpp" />
<ClCompile Include="..\..\..\Source\src\RakNetTypes.cpp" />
<ClCompile Include="..\..\..\Source\src\RakPeer.cpp" />
<ClCompile Include="..\..\..\Source\src\RakSleep.cpp" />
<ClCompile Include="..\..\..\Source\src\RakString.cpp" />
<ClCompile Include="..\..\..\Source\src\RakThread.cpp" />
<ClCompile Include="..\..\..\Source\src\RakWString.cpp" />
<ClCompile Include="..\..\..\Source\src\Rand.cpp" />
<ClCompile Include="..\..\..\Source\src\ReadyEvent.cpp" />
<ClCompile Include="..\..\..\Source\src\ReliabilityLayer.cpp" />
<ClCompile Include="..\..\..\Source\src\ReplicaManager3.cpp" />
<ClCompile Include="..\..\..\Source\src\Router2.cpp" />
<ClCompile Include="..\..\..\Source\src\RPC4Plugin.cpp" />
<ClCompile Include="..\..\..\Source\src\SecureHandshake.cpp" />
<ClCompile Include="..\..\..\Source\src\SendToThread.cpp" />
<ClCompile Include="..\..\..\Source\src\DR_SHA1.cpp" />
<ClCompile Include="..\..\..\Source\src\SignaledEvent.cpp" />
<ClCompile Include="..\..\..\Source\src\SimpleMutex.cpp" />
<ClCompile Include="..\..\..\Source\src\SocketLayer.cpp" />
<ClCompile Include="..\..\..\Source\src\StatisticsHistory.cpp" />
<ClCompile Include="..\..\..\Source\src\StringCompressor.cpp" />
<ClCompile Include="..\..\..\Source\src\StringTable.cpp" />
<ClCompile Include="..\..\..\Source\src\SuperFastHash.cpp" />
<ClCompile Include="..\..\..\Source\src\TableSerializer.cpp" />
<ClCompile Include="..\..\..\Source\src\TCPInterface.cpp" />
<ClCompile Include="..\..\..\Source\src\TeamBalancer.cpp" />
<ClCompile Include="..\..\..\Source\src\TeamManager.cpp" />
<ClCompile Include="..\..\..\Source\src\TelnetTransport.cpp" />
<ClCompile Include="..\..\..\Source\src\ThreadsafePacketLogger.cpp" />
<ClCompile Include="..\..\..\Source\src\TwoWayAuthentication.cpp" />
<ClCompile Include="..\..\..\Source\src\UDPForwarder.cpp" />
<ClCompile Include="..\..\..\Source\src\UDPProxyClient.cpp" />
<ClCompile Include="..\..\..\Source\src\UDPProxyCoordinator.cpp" />
<ClCompile Include="..\..\..\Source\src\UDPProxyServer.cpp" />
<ClCompile Include="..\..\..\Source\src\VariableDeltaSerializer.cpp" />
<ClCompile Include="..\..\..\Source\src\VariableListDeltaTracker.cpp" />
<ClCompile Include="..\..\..\Source\src\VariadicSQLParser.cpp" />
<ClCompile Include="..\..\..\Source\src\VitaIncludes.cpp" />
<ClCompile Include="..\..\..\Source\src\WSAStartupSingleton.cpp" />
<ClCompile Include="..\..\..\Source\src\_FindFirst.cpp" />
<ClCompile Include="main_ppapi.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\Source\include\slikenet\AutopatcherPatchContext.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\AutopatcherRepositoryInterface.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\Base64Encoder.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\BitStream.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\CCRakNetSlidingWindow.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\CCRakNetUDT.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\CheckSum.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\CloudClient.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\CloudCommon.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\CloudServer.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\CommandParserInterface.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\ConnectionGraph2.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\ConsoleServer.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\DataCompressor.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\DirectoryDeltaTransfer.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\DS_BinarySearchTree.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\DS_BPlusTree.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\DS_BytePool.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\DS_ByteQueue.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\DS_Hash.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\DS_Heap.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\DS_HuffmanEncodingTree.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\DS_HuffmanEncodingTreeFactory.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\DS_HuffmanEncodingTreeNode.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\DS_LinkedList.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\DS_List.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\DS_Map.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\DS_MemoryPool.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\DS_Multilist.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\DS_OrderedChannelHeap.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\DS_OrderedList.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\DS_Queue.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\DS_QueueLinkedList.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\DS_RangeList.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\DS_Table.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\DS_ThreadsafeAllocatingQueue.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\DS_Tree.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\DS_WeightedGraph.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\DynDNS.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\EmailSender.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\EpochTimeToString.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\Export.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\FileList.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\FileListNodeContext.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\FileListTransfer.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\FileListTransferCBInterface.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\FileOperations.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\FormatString.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\FullyConnectedMesh2.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\Getche.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\Gets.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\GetTime.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\gettimeofday.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\GridSectorizer.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\HTTPConnection.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\HTTPConnection2.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\IncrementalReadInterface.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\InternalPacket.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\Itoa.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\Kbhit.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\LinuxStrings.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\LocklessTypes.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\LogCommandParser.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\MessageFilter.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\MessageIdentifiers.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\MTUSize.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\NativeFeatureIncludes.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\NativeFeatureIncludesOverrides.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\NativeTypes.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\NatPunchthroughClient.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\NatPunchthroughServer.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\NatTypeDetectionClient.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\NatTypeDetectionCommon.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\NatTypeDetectionServer.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\NetworkIDManager.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\NetworkIDObject.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\PacketConsoleLogger.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\PacketFileLogger.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\PacketizedTCP.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\PacketLogger.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\PacketOutputWindowLogger.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\PacketPool.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\PacketPriority.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\PluginInterface2.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\PS3Includes.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\Rackspace.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\alloca.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\assert.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\memoryoverride.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\commandparser.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\defines.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\definesoverrides.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\smartptr.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\socket.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\socket2.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\statistics.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\time.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\transport2.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\types.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\version.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\peer.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\peerinterface.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\sleep.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\string.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\thread.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\wstring.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\Rand.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\ReadyEvent.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\RefCountedObj.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\ReliabilityLayer.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\ReplicaEnums.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\ReplicaManager3.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\Router2.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\RPC4Plugin.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\SecureHandshake.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\SendToThread.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\DR_SHA1.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\SignaledEvent.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\SimpleMutex.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\SimpleTCPServer.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\SingleProducerConsumer.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\SocketDefines.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\SocketIncludes.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\SocketLayer.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\StatisticsHistory.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\StringCompressor.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\StringTable.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\SuperFastHash.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\TableSerializer.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\TCPInterface.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\TeamBalancer.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\TeamManager.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\TelnetTransport.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\ThreadPool.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\ThreadsafePacketLogger.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\TransportInterface.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\TwoWayAuthentication.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\UDPForwarder.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\UDPProxyClient.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\UDPProxyCommon.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\UDPProxyCoordinator.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\UDPProxyServer.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\VariableDeltaSerializer.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\VariableListDeltaTracker.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\VariadicSQLParser.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\VitaIncludes.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\WindowsIncludes.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\WSAStartupSingleton.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\XBox360Includes.h" />
<ClInclude Include="..\..\..\Source\include\slikenet\_FindFirst.h" />
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{D04E2D45-D8AF-417B-9CD3-1D74E5C89CAC}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>RakNet_NativeClient</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|NaCl64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<ToolchainName>glibc</ToolchainName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|NaCl64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<ToolchainName>glibc</ToolchainName>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|NaCl64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|NaCl64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|NaCl64'">
<LinkIncremental>true</LinkIncremental>
<NaClAddInVersion>1</NaClAddInVersion>
<VSNaClSDKRoot>$(NACL_SDK_ROOT)</VSNaClSDKRoot>
<IncludePath>$(VSNaClSDKRoot)include;</IncludePath>
<LibraryPath>$(VSNaClSDKRoot)lib;</LibraryPath>
<OutDir>$(ProjectDir)$(Platform)\$(ToolchainName)\$(Configuration)\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|NaCl64'">
<LinkIncremental>false</LinkIncremental>
<NaClAddInVersion>1</NaClAddInVersion>
<VSNaClSDKRoot>$(NACL_SDK_ROOT)</VSNaClSDKRoot>
<IncludePath>$(VSNaClSDKRoot)include;</IncludePath>
<LibraryPath>$(VSNaClSDKRoot)lib;</LibraryPath>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|NaCl64'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_RAKNET_SUPPORT_TCPInterface=0;_RAKNET_SUPPORT_PacketizedTCP=0;_RAKNET_SUPPORT_EmailSender=0;_RAKNET_SUPPORT_HTTPConnection=0;_RAKNET_SUPPORT_TelnetTransport=0;_RAKNET_SUPPORT_UDPForwarder=0;_RAKNET_SUPPORT_NatPunchthroughServer=0;_RAKNET_SUPPORT_NatTypeDetectionServer=0;_RAKNET_SUPPORT_NatTypeDetectionClient=0;__native_client__;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(NACL_SDK_ROOT)toolchain\win_x86_glibc\x86_64-nacl\include;$(SolutionDir)Source;$(NACL_SDK_ROOT)include</AdditionalIncludeDirectories>
<OutputCommandLine>true</OutputCommandLine>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>ppapi_cpp;ppapi;pthread</AdditionalDependencies>
<AdditionalLibraryDirectories></AdditionalLibraryDirectories>
<OutputFile>$(TargetDir)$(TargetName)$(TargetExt)</OutputFile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|NaCl64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>_RAKNET_SUPPORT_TCPInterface=0;_RAKNET_SUPPORT_PacketizedTCP=0;_RAKNET_SUPPORT_EmailSender=0;_RAKNET_SUPPORT_HTTPConnection=0;_RAKNET_SUPPORT_TelnetTransport=0;_RAKNET_SUPPORT_UDPForwarder=0;_RAKNET_SUPPORT_NatPunchthroughServer=0;_RAKNET_SUPPORT_NatTypeDetectionServer=0;_RAKNET_SUPPORT_NatTypeDetectionClient=0;__native_client__;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(NACL_SDK_ROOT)toolchain\win_x86_glibc\x86_64-nacl\include;$(SolutionDir)Source;$(NACL_SDK_ROOT)include</AdditionalIncludeDirectories>
<OutputCommandLine>true</OutputCommandLine>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>ppapi_cpp;ppapi;pthread</AdditionalDependencies>
<AdditionalLibraryDirectories>$(NACL_SDK_ROOT)lib\win_x86_32_host\Release</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -0,0 +1,784 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="RakNet">
<UniqueIdentifier>{9a435642-ba0c-472a-bd5c-076fada1da0a}</UniqueIdentifier>
</Filter>
<Filter Include="main">
<UniqueIdentifier>{0715efe4-ff6c-491d-a06a-6b2e414b9ddf}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\Source\src\RakNetSocket2_NativeClient.cpp" />
<ClCompile Include="..\..\..\Source\src\_FindFirst.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\Base64Encoder.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\BitStream.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\CCRakNetSlidingWindow.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\CCRakNetUDT.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\CheckSum.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\CloudClient.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\CloudCommon.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\CloudServer.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\CommandParserInterface.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\ConnectionGraph2.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\ConsoleServer.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\DataCompressor.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\DirectoryDeltaTransfer.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\DS_BytePool.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\DS_ByteQueue.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\DS_HuffmanEncodingTree.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\DS_Table.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\DynDNS.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\EmailSender.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\EncodeClassName.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\EpochTimeToString.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\FileList.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\FileListTransfer.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\FileOperations.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\FormatString.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\FullyConnectedMesh2.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\Getche.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\Gets.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\GetTime.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\gettimeofday.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\GridSectorizer.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\HTTPConnection.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\HTTPConnection2.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\IncrementalReadInterface.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\Itoa.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\LinuxStrings.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\LocklessTypes.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\LogCommandParser.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\MessageFilter.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\NatPunchthroughClient.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\NatPunchthroughServer.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\NatTypeDetectionClient.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\NatTypeDetectionCommon.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\NatTypeDetectionServer.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\NetworkIDManager.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\NetworkIDObject.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\PacketConsoleLogger.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\PacketFileLogger.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\PacketizedTCP.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\PacketLogger.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\PacketOutputWindowLogger.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\PluginInterface2.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\Rackspace.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\RakMemoryOverride.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\RakNetCommandParser.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\RakNetSocket.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\RakNetSocket2.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\RakNetSocket2_360_720.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\RakNetSocket2_Berkley.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\RakNetSocket2_NativeClient.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\RakNetSocket2_PS3_PS4.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\RakNetSocket2_Vita.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\RakNetSocket2_Windows_Linux.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\RakNetSocket2_Windows_Linux_360.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\RakNetStatistics.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\RakNetTransport2.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\RakNetTypes.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\RakPeer.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\RakSleep.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\RakString.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\RakThread.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\RakWString.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\Rand.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\ReadyEvent.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\ReliabilityLayer.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\ReplicaManager3.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\Router2.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\RPC4Plugin.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\SecureHandshake.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\SendToThread.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\SHA1.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\SignaledEvent.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\SimpleMutex.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\SocketLayer.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\StatisticsHistory.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\StringCompressor.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\StringTable.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\SuperFastHash.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\TableSerializer.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\TCPInterface.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\TeamBalancer.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\TeamManager.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\TelnetTransport.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\ThreadsafePacketLogger.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\TwoWayAuthentication.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\UDPForwarder.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\UDPProxyClient.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\UDPProxyCoordinator.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\UDPProxyServer.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\VariableDeltaSerializer.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\VariableListDeltaTracker.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\VariadicSQLParser.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\VitaIncludes.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Source\src\WSAStartupSingleton.cpp">
<Filter>RakNet</Filter>
</ClCompile>
<ClCompile Include="main_ppapi.cpp">
<Filter>main</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\Source\include\slikenet\_FindFirst.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\AutopatcherPatchContext.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\AutopatcherRepositoryInterface.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\Base64Encoder.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\BitStream.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\CCRakNetSlidingWindow.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\CCRakNetUDT.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\CheckSum.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\CloudClient.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\CloudCommon.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\CloudServer.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\CommandParserInterface.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\ConnectionGraph2.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\ConsoleServer.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\DataCompressor.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\DirectoryDeltaTransfer.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\DS_BinarySearchTree.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\DS_BPlusTree.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\DS_BytePool.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\DS_ByteQueue.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\DS_Hash.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\DS_Heap.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\DS_HuffmanEncodingTree.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\DS_HuffmanEncodingTreeFactory.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\DS_HuffmanEncodingTreeNode.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\DS_LinkedList.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\DS_List.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\DS_Map.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\DS_MemoryPool.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\DS_Multilist.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\DS_OrderedChannelHeap.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\DS_OrderedList.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\DS_Queue.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\DS_QueueLinkedList.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\DS_RangeList.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\DS_Table.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\DS_ThreadsafeAllocatingQueue.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\DS_Tree.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\DS_WeightedGraph.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\DynDNS.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\EmailSender.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\EpochTimeToString.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\Export.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\FileList.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\FileListNodeContext.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\FileListTransfer.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\FileListTransferCBInterface.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\FileOperations.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\FormatString.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\FullyConnectedMesh2.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\Getche.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\Gets.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\GetTime.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\gettimeofday.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\GridSectorizer.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\HTTPConnection.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\HTTPConnection2.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\IncrementalReadInterface.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\InternalPacket.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\Itoa.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\Kbhit.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\LinuxStrings.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\LocklessTypes.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\LogCommandParser.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\MessageFilter.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\MessageIdentifiers.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\MTUSize.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\NativeFeatureIncludes.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\NativeFeatureIncludesOverrides.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\NativeTypes.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\NatPunchthroughClient.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\NatPunchthroughServer.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\NatTypeDetectionClient.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\NatTypeDetectionCommon.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\NatTypeDetectionServer.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\NetworkIDManager.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\NetworkIDObject.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\PacketConsoleLogger.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\PacketFileLogger.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\PacketizedTCP.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\PacketLogger.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\PacketOutputWindowLogger.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\PacketPool.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\PacketPriority.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\PluginInterface2.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\PS3Includes.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\Rackspace.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\alloca.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\assert.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\memoryoverride.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\commandparser.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\defines.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\definesoverrides.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\smartptr.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\socket.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\socket2.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\statistics.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\time.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\transport2.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\types.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\version.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\peer.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\peerinterface.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\sleep.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\string.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\thread.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\wstring.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\Rand.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\ReadyEvent.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\RefCountedObj.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\ReliabilityLayer.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\ReplicaEnums.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\ReplicaManager3.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\Router2.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\RPC4Plugin.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\SecureHandshake.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\SendToThread.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\SHA1.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\SignaledEvent.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\SimpleMutex.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\SimpleTCPServer.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\SingleProducerConsumer.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\SocketDefines.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\SocketIncludes.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\SocketLayer.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\StatisticsHistory.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\StringCompressor.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\StringTable.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\SuperFastHash.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\TableSerializer.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\TCPInterface.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\TeamBalancer.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\TeamManager.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\TelnetTransport.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\ThreadPool.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\ThreadsafePacketLogger.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\TransportInterface.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\TwoWayAuthentication.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\UDPForwarder.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\UDPProxyClient.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\UDPProxyCommon.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\UDPProxyCoordinator.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\UDPProxyServer.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\VariableDeltaSerializer.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\VariableListDeltaTracker.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\VariadicSQLParser.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\VitaIncludes.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\WindowsIncludes.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\WSAStartupSingleton.h">
<Filter>RakNet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\include\slikenet\XBox360Includes.h">
<Filter>RakNet</Filter>
</ClInclude>
</ItemGroup>
</Project>

View File

@ -0,0 +1,32 @@
{
"program": {
"x86-64": {"url": "lib64/runnable-ld.so"},
"x86-32": {"url": "lib32/runnable-ld.so"}
},
"files": {
"libc.so.a9de5678" : {
"x86-64": {"url": "lib64/libc.so.a9de5678"},
"x86-32": {"url": "lib32/libc.so.a9de5678"}
},
"libgcc_s.so.1" : {
"x86-64": {"url": "lib64/libgcc_s.so.1"},
"x86-32": {"url": "lib32/libgcc_s.so.1"}
},
"libm.so.a9de5678" : {
"x86-64": {"url": "lib64/libm.so.a9de5678"},
"x86-32": {"url": "lib32/libm.so.a9de5678"}
},
"libpthread.so.a9de5678" : {
"x86-64": {"url": "lib64/libpthread.so.a9de5678"},
"x86-32": {"url": "lib32/libpthread.so.a9de5678"}
},
"libstdc++.so.6" : {
"x86-64": {"url": "lib64/libstdc++.so.6"},
"x86-32": {"url": "lib32/libstdc++.so.6"}
},
"main.nexe" : {
"x86-64": {"url": "chatexampleclient_x86_64_Debug.nexe"},
"x86-32": {"url": "chatexampleclient_x86_32_Debug.nexe"}
}
}
}

View File

@ -0,0 +1,305 @@
#!/usr/bin/env python
# Copyright (c) 2012 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import BaseHTTPServer
import imp
import logging
import multiprocessing
import optparse
import os
import SimpleHTTPServer # pylint: disable=W0611
import socket
import sys
import time
import urlparse
SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
NACL_SDK_ROOT = os.path.dirname(SCRIPT_DIR)
# We only run from the examples directory so that not too much is exposed
# via this HTTP server. Everything in the directory is served, so there should
# never be anything potentially sensitive in the serving directory, especially
# if the machine might be a multi-user machine and not all users are trusted.
# We only serve via the loopback interface.
def SanityCheckDirectory(dirname):
abs_serve_dir = os.path.abspath(dirname)
# Verify we don't serve anywhere above NACL_SDK_ROOT.
if abs_serve_dir[:len(NACL_SDK_ROOT)] == NACL_SDK_ROOT:
return
logging.error('For security, httpd.py should only be run from within the')
logging.error('example directory tree.')
logging.error('Attempting to serve from %s.' % abs_serve_dir)
logging.error('Run with --no_dir_check to bypass this check.')
sys.exit(1)
class PluggableHTTPServer(BaseHTTPServer.HTTPServer):
def __init__(self, *args, **kwargs):
BaseHTTPServer.HTTPServer.__init__(self, *args)
self.serve_dir = kwargs.get('serve_dir', '.')
self.test_mode = kwargs.get('test_mode', False)
self.delegate_map = {}
self.running = True
self.result = 0
def Shutdown(self, result=0):
self.running = False
self.result = result
class PluggableHTTPRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
def _FindDelegateAtPath(self, dirname):
# First check the cache...
logging.debug('Looking for cached delegate in %s...' % dirname)
handler_script = os.path.join(dirname, 'handler.py')
if dirname in self.server.delegate_map:
result = self.server.delegate_map[dirname]
if result is None:
logging.debug('Found None.')
else:
logging.debug('Found delegate.')
return result
# Don't have one yet, look for one.
delegate = None
logging.debug('Testing file %s for existence...' % handler_script)
if os.path.exists(handler_script):
logging.debug(
'File %s exists, looking for HTTPRequestHandlerDelegate.' %
handler_script)
module = imp.load_source('handler', handler_script)
delegate_class = getattr(module, 'HTTPRequestHandlerDelegate', None)
delegate = delegate_class()
if not delegate:
logging.warn(
'Unable to find symbol HTTPRequestHandlerDelegate in module %s.' %
handler_script)
return delegate
def _FindDelegateForURLRecurse(self, cur_dir, abs_root):
delegate = self._FindDelegateAtPath(cur_dir)
if not delegate:
# Didn't find it, try the parent directory, but stop if this is the server
# root.
if cur_dir != abs_root:
parent_dir = os.path.dirname(cur_dir)
delegate = self._FindDelegateForURLRecurse(parent_dir, abs_root)
logging.debug('Adding delegate to cache for %s.' % cur_dir)
self.server.delegate_map[cur_dir] = delegate
return delegate
def _FindDelegateForURL(self, url_path):
path = self.translate_path(url_path)
if os.path.isdir(path):
dirname = path
else:
dirname = os.path.dirname(path)
abs_serve_dir = os.path.abspath(self.server.serve_dir)
delegate = self._FindDelegateForURLRecurse(dirname, abs_serve_dir)
if not delegate:
logging.info('No handler found for path %s. Using default.' % url_path)
return delegate
def _SendNothingAndDie(self, result=0):
self.send_response(200, 'OK')
self.send_header('Content-type', 'text/html')
self.send_header('Content-length', '0')
self.end_headers()
self.server.Shutdown(result)
def send_head(self):
delegate = self._FindDelegateForURL(self.path)
if delegate:
return delegate.send_head(self)
return self.base_send_head()
def base_send_head(self):
return SimpleHTTPServer.SimpleHTTPRequestHandler.send_head(self)
def do_GET(self):
# TODO(binji): pyauto tests use the ?quit=1 method to kill the server.
# Remove this when we kill the pyauto tests.
_, _, _, query, _ = urlparse.urlsplit(self.path)
if query:
params = urlparse.parse_qs(query)
if '1' in params.get('quit', None):
self._SendNothingAndDie()
return
delegate = self._FindDelegateForURL(self.path)
if delegate:
return delegate.do_GET(self)
return self.base_do_GET()
def base_do_GET(self):
return SimpleHTTPServer.SimpleHTTPRequestHandler.do_GET(self)
def do_POST(self):
delegate = self._FindDelegateForURL(self.path)
if delegate:
return delegate.do_POST(self)
return self.base_do_POST()
def base_do_POST(self):
if self.server.test_mode:
if self.path == '/ok':
self._SendNothingAndDie(0)
elif self.path == '/fail':
self._SendNothingAndDie(1)
class LocalHTTPServer(object):
"""Class to start a local HTTP server as a child process."""
def __init__(self, dirname, port, test_mode):
parent_conn, child_conn = multiprocessing.Pipe()
self.process = multiprocessing.Process(
target=_HTTPServerProcess,
args=(child_conn, dirname, port, {
'serve_dir': dirname,
'test_mode': test_mode,
}))
self.process.start()
if parent_conn.poll(10): # wait 10 seconds
self.port = parent_conn.recv()
else:
raise Exception('Unable to launch HTTP server.')
self.conn = parent_conn
def ServeForever(self):
"""Serve until the child HTTP process tells us to stop.
Returns:
The result from the child (as an errorcode), or 0 if the server was
killed not by the child (by KeyboardInterrupt for example).
"""
child_result = 0
try:
# Block on this pipe, waiting for a response from the child process.
child_result = self.conn.recv()
except KeyboardInterrupt:
pass
finally:
self.Shutdown()
return child_result
def ServeUntilSubprocessDies(self, process):
"""Serve until the child HTTP process tells us to stop or |subprocess| dies.
Returns:
The result from the child (as an errorcode), or 0 if |subprocess| died,
or the server was killed some other way (by KeyboardInterrupt for
example).
"""
child_result = 0
try:
while True:
if process.poll() is not None:
child_result = 0
break
if self.conn.poll():
child_result = self.conn.recv()
break
time.sleep(0)
except KeyboardInterrupt:
pass
finally:
self.Shutdown()
return child_result
def Shutdown(self):
"""Send a message to the child HTTP server process and wait for it to
finish."""
self.conn.send(False)
self.process.join()
def GetURL(self, rel_url):
"""Get the full url for a file on the local HTTP server.
Args:
rel_url: A URL fragment to convert to a full URL. For example,
GetURL('foobar.baz') -> 'http://localhost:1234/foobar.baz'
"""
return 'http://localhost:%d/%s' % (self.port, rel_url)
def _HTTPServerProcess(conn, dirname, port, server_kwargs):
"""Run a local httpserver with the given port or an ephemeral port.
This function assumes it is run as a child process using multiprocessing.
Args:
conn: A connection to the parent process. The child process sends
the local port, and waits for a message from the parent to
stop serving. It also sends a "result" back to the parent -- this can
be used to allow a client-side test to notify the server of results.
dirname: The directory to serve. All files are accessible through
http://localhost:<port>/path/to/filename.
port: The port to serve on. If 0, an ephemeral port will be chosen.
server_kwargs: A dict that will be passed as kwargs to the server.
"""
try:
os.chdir(dirname)
httpd = PluggableHTTPServer(('', port), PluggableHTTPRequestHandler,
**server_kwargs)
except socket.error as e:
sys.stderr.write('Error creating HTTPServer: %s\n' % e)
sys.exit(1)
try:
conn.send(httpd.server_address[1]) # the chosen port number
httpd.timeout = 0.5 # seconds
while httpd.running:
# Flush output for MSVS Add-In.
sys.stdout.flush()
sys.stderr.flush()
httpd.handle_request()
if conn.poll():
httpd.running = conn.recv()
except KeyboardInterrupt:
pass
finally:
conn.send(httpd.result)
conn.close()
def main(args):
parser = optparse.OptionParser()
parser.add_option('-C', '--serve-dir',
help='Serve files out of this directory.',
dest='serve_dir', default=os.path.abspath('.'))
parser.add_option('-p', '--port',
help='Run server on this port.',
dest='port', default=5103)
parser.add_option('--no_dir_check',
help='No check to ensure serving from safe directory.',
dest='do_safe_check', action='store_false', default=True)
parser.add_option('--test-mode',
help='Listen for posts to /ok or /fail and shut down the server with '
' errorcodes 0 and 1 respectively.',
dest='test_mode', action='store_true')
options, args = parser.parse_args(args)
if options.do_safe_check:
SanityCheckDirectory(options.serve_dir)
server = LocalHTTPServer(options.serve_dir, int(options.port),
options.test_mode)
# Serve until the client tells us to stop. When it does, it will give us an
# errorcode.
print 'Serving %s on %s...' % (options.serve_dir, server.GetURL(''))
return server.ServeForever()
if __name__ == '__main__':
sys.exit(main(sys.argv[1:]))

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 682 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1,33 @@
<!DOCTYPE html>
<html>
<head>
<title>Hello, World!</title>
<script type="text/javascript" src="js1.js"></script>
</head>
<body>
<h1>Native Client UDP Example</h1>
<FORM id="form1">
<button type="button" id="connectButton">Connect</button>
</FORM>
<div id="listener">
<embed name="nacl_module"
id="udp_example"
width=200 height=200
src="blob.nmf"
type="application/x-nacl" />
<script type="text/javascript" src="js2.js"></script>
</div>
<h2>Status</h2>
<div id="statusField">NO-STATUS</div>
</body>
</html>

View File

@ -0,0 +1,65 @@
// Check for the various File API support.
if (window.File && window.FileReader && window.FileList && window.Blob) {
// Great success! All the File APIs are supported.
} else {
alert('The File APIs are not fully supported in this browser.');
}
helloWorldModule = null; // Global application object.
statusText = 'NO-STATUS';
// Indicate success when the NaCl module has loaded.
function moduleDidLoad() {
helloWorldModule = document.getElementById('udp_example');
updateStatus('moduleDidLoad SUCCESS');
}
// Handle a message coming from the NaCl module.
function handleMessage(message_event)
{
console.log("Got handleMessage");
console.log(message_event.data);
}
// If the page loads before the Native Client module loads, then set the
// status message indicating that the module is still loading. Otherwise,
// do not change the status message.
function pageDidLoad() {
if (helloWorldModule == null) {
updateStatus('LOADING...');
} else {
// It's possible that the Native Client module onload event fired
// before the page's onload event. In this case, the status message
// will reflect 'SUCCESS', but won't be displayed. This call will
// display the current message.
updateStatus();
}
}
// Set the global status message. If the element with id 'statusField'
// exists, then set its HTML to the status message as well.
// opt_message The message test. If this is null or undefined, then
// attempt to set the element with id 'statusField' to the value of
// |statusText|.
function updateStatus(opt_message) {
if (opt_message)
statusText = opt_message;
var statusField = document.getElementById('statusField');
if (statusField) {
statusField.innerHTML = statusText;
}
}
// Indicate success when the NaCl module has loaded.
function clikedConnect() {
helloWorldModule = document.getElementById('udp_example');
if (helloWorldModule == null) {
updateStatus('helloWorldModule == null');
}
else
{
updateStatus('Calling postMessage');
helloWorldModule.postMessage('connect');
}
}

View File

@ -0,0 +1,12 @@
var listener = document.getElementById('listener');
listener.addEventListener('load', moduleDidLoad, true);
listener.addEventListener('message', handleMessage, true);
var connectButton = document.getElementById('connectButton');
connectButton.addEventListener('click', clikedConnect, true);
// Add event listeners once the DOM has fully loaded by listening for the
// `DOMContentLoaded` event on the document, and adding your listeners to
// specific elements when it triggers.
document.body.addEventListener('load', pageDidLoad );

View File

@ -0,0 +1,131 @@
/*
* Copyright (c) 2014, Oculus VR, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* RakNet License.txt file in the licenses directory of this source tree. An additional grant
* of patent rights can be found in the RakNet Patents.txt file in the same directory.
*
*
* Modified work: Copyright (c) 2017, SLikeSoft UG (haftungsbeschränkt)
*
* This source code was modified by SLikeSoft. Modifications are licensed under the MIT-style
* license found in the license.txt file in the root directory of this source tree.
*/
#include <cstdio>
#include <string>
#include "ppapi/cpp/instance.h"
#include "ppapi/cpp/module.h"
#include "ppapi/cpp/var.h"
// KMJ
#include "ppapi/c/private/ppb_udp_socket_private.h"
#include "slikenet/peerinterface.h"
#include "slikenet/types.h"
#include "slikenet/sleep.h"
using namespace SLNet;
/// The Instance class. One of these exists for each instance of your NaCl
/// module on the web page. The browser will ask the Module object to create
/// a new Instance for each occurence of the <embed> tag that has these
/// attributes:
/// type="application/x-nacl"
/// src="hello_tutorial.nmf"
/// To communicate with the browser, you must override HandleMessage() for
/// receiving messages from the browser, and use PostMessage() to send messages
/// back to the browser. Note that this interface is asynchronous.
class ConnectivityTestInstance : public pp::Instance {
RakPeerInterface *rakPeer;
public:
/// The constructor creates the plugin-side instance.
/// @param[in] instance the handle to the browser-side plugin instance.
explicit ConnectivityTestInstance(PP_Instance instance) : pp::Instance(instance)
{
// PostMessage(pp::Var("ConnectivityTestInstance constructor"));
/*
RakNet::ConnectionAttemptResult car = rakPeer->Connect("127.0.0.1", 1234, "Rumpelstiltskin", (int) strlen("Rumpelstiltskin"));
RakAssert(car==RakNet::CONNECTION_ATTEMPT_STARTED);
RakSleep(100);
RakNet::Packet* p;
for (p=rakPeer->Receive(); p; rakPeer->DeallocatePacket(p), p=rakPeer->Receive())
{}
*/
}
virtual ~ConnectivityTestInstance() {}
/// Handler for messages coming in from the browser via postMessage(). The
/// @a var_message can contain anything: a JSON string; a string that encodes
/// method names and arguments; etc. For example, you could use
/// JSON.stringify in the browser to create a message that contains a method
/// name and some parameters, something like this:
/// var json_message = JSON.stringify({ "myMethod" : "3.14159" });
/// nacl_module.postMessage(json_message);
/// On receipt of this message in @a var_message, you could parse the JSON to
/// retrieve the method name, match it to a function call, and then call it
/// with the parameter.
/// @param[in] var_message The message posted by the browser.
virtual void HandleMessage(const pp::Var& var_message) {
/*
if (!var_message.is_string())
return;
std::string message = var_message.AsString();
pp::Var var_reply;
if (message == kHelloString) {
var_reply = pp::Var(kReplyString);
PostMessage(var_reply);
}
*/
// Just some do nothing code so I can set a breakpoint;
rakPeer=0;
/*
rakPeer=RakNet::RakPeerInterface::GetInstance();
RakNet::SocketDescriptor socketDescriptor(0,0);
socketDescriptor.socketFamily=AF_INET;
StartupResult sr = rakPeer->Startup(8,&socketDescriptor, 1);
if (sr==RakNet::RAKNET_STARTED)
{
PostMessage(pp::Var("RAKNET_STARTED"));
}
else
{
PostMessage(pp::Var("RakNet did not start"));
}
RakNet::ConnectionAttemptResult car = rakPeer->Connect("127.0.0.1", 1234, "Rumpelstiltskin", (int) strlen("Rumpelstiltskin"));
RakAssert(car==RakNet::CONNECTION_ATTEMPT_STARTED);
RakSleep(0);
RakNet::Packet* p;
for (p=rakPeer->Receive(); p; rakPeer->DeallocatePacket(p), p=rakPeer->Receive())
{}
*/
}
};
/// The Module class. The browser calls the CreateInstance() method to create
/// an instance of your NaCl module on the web page. The browser creates a new
/// instance for each <embed> tag with type="application/x-nacl".
class ConnectivityTestModule : public pp::Module {
public:
ConnectivityTestModule() : pp::Module() {}
virtual ~ConnectivityTestModule() {}
/// Create and return a ConnectivityTestInstance object.
/// @param[in] instance The browser-side instance.
/// @return the plugin-side instance.
virtual pp::Instance* CreateInstance(PP_Instance instance) {
return new ConnectivityTestInstance(instance);
}
};
namespace pp {
/// Factory function called by the browser when the module is first loaded.
/// The browser keeps a singleton of this module. It calls the
/// CreateInstance() method on the object you return to make instances. There
/// is one instance per <embed> tag on the page. This is the main binding
/// point for your NaCl module with the browser.
Module* CreateModule() {
return new ConnectivityTestModule();
}
} // namespace pp

View File

@ -0,0 +1,19 @@
{
"name": "NaCl Chat Example Client",
"version": "0.5",
"manifest_version" : 2,
"description": "NaCl Chat Example Client",
"icons": {
"16": "icon_16.png",
"32": "icon_32.png",
"128": "icon_128.png"
},
"app": {
"launch": {
"local_path": "index.htm"
}
}
}