]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-6767 #comment Add initial support for mod_verto on Windows
authorPeter Olsson <peter@olssononline.se>
Sat, 18 Oct 2014 07:53:57 +0000 (09:53 +0200)
committerPeter Olsson <peter@olssononline.se>
Sat, 18 Oct 2014 07:53:57 +0000 (09:53 +0200)
Freeswitch.2012.sln
src/mod/codecs/mod_vp8/mod_vp8.2012.vcxproj [new file with mode: 0644]
src/mod/endpoints/mod_rtc/mod_rtc.2012.vcxproj [new file with mode: 0644]
src/mod/endpoints/mod_verto/mcast/mcast.c
src/mod/endpoints/mod_verto/mcast/mcast.h
src/mod/endpoints/mod_verto/mcast/mcast_cpp.cpp
src/mod/endpoints/mod_verto/mod_verto.2012.vcxproj
src/mod/endpoints/mod_verto/mod_verto.c
src/mod/endpoints/mod_verto/mod_verto.h
src/mod/endpoints/mod_verto/ws.c
src/mod/endpoints/mod_verto/ws.h

index 7d97a01985291eac1149fff8112c5a335a5247ab..ff675f6ab18e9e2004c8e6a9b7507e1f9f227eca 100644 (file)
@@ -603,6 +603,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download LDNS", "libs\win32
 EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download PORTAUDIO", "libs\win32\Download PORTAUDIO.2012.vcxproj", "{C0779BCC-C037-4F58-B890-EF37BA956B3C}"\r
 EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_vp8", "src\mod\codecs\mod_vp8\mod_vp8.2012.vcxproj", "{ABFD88E1-7710-4BCC-AC34-56038DAC9652}"\r
+EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_rtc", "src\mod\endpoints\mod_rtc\mod_rtc.2012.vcxproj", "{3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E}"\r
+EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_verto", "src\mod\endpoints\mod_verto\mod_verto.2012.vcxproj", "{5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}"\r
+EndProject\r
 Global\r
        GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
                All|Win32 = All|Win32\r
@@ -4043,6 +4049,58 @@ Global
                {C0779BCC-C037-4F58-B890-EF37BA956B3C}.Release|x64.Build.0 = Release|Win32\r
                {C0779BCC-C037-4F58-B890-EF37BA956B3C}.Release|x64 Setup.ActiveCfg = Release|Win32\r
                {C0779BCC-C037-4F58-B890-EF37BA956B3C}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+               {ABFD88E1-7710-4BCC-AC34-56038DAC9652}.All|Win32.ActiveCfg = Release|Win32\r
+               {ABFD88E1-7710-4BCC-AC34-56038DAC9652}.All|Win32.Build.0 = Release|Win32\r
+               {ABFD88E1-7710-4BCC-AC34-56038DAC9652}.All|x64.ActiveCfg = Release|x64\r
+               {ABFD88E1-7710-4BCC-AC34-56038DAC9652}.All|x64.Build.0 = Release|x64\r
+               {ABFD88E1-7710-4BCC-AC34-56038DAC9652}.All|x64 Setup.ActiveCfg = Release|Win32\r
+               {ABFD88E1-7710-4BCC-AC34-56038DAC9652}.All|x86 Setup.ActiveCfg = Release|Win32\r
+               {ABFD88E1-7710-4BCC-AC34-56038DAC9652}.Debug|Win32.ActiveCfg = Debug|Win32\r
+               {ABFD88E1-7710-4BCC-AC34-56038DAC9652}.Debug|Win32.Build.0 = Debug|Win32\r
+               {ABFD88E1-7710-4BCC-AC34-56038DAC9652}.Debug|x64.ActiveCfg = Debug|x64\r
+               {ABFD88E1-7710-4BCC-AC34-56038DAC9652}.Debug|x64.Build.0 = Debug|x64\r
+               {ABFD88E1-7710-4BCC-AC34-56038DAC9652}.Debug|x64 Setup.ActiveCfg = Debug|Win32\r
+               {ABFD88E1-7710-4BCC-AC34-56038DAC9652}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+               {ABFD88E1-7710-4BCC-AC34-56038DAC9652}.Release|Win32.ActiveCfg = Release|Win32\r
+               {ABFD88E1-7710-4BCC-AC34-56038DAC9652}.Release|Win32.Build.0 = Release|Win32\r
+               {ABFD88E1-7710-4BCC-AC34-56038DAC9652}.Release|x64.ActiveCfg = Release|x64\r
+               {ABFD88E1-7710-4BCC-AC34-56038DAC9652}.Release|x64.Build.0 = Release|x64\r
+               {ABFD88E1-7710-4BCC-AC34-56038DAC9652}.Release|x64 Setup.ActiveCfg = Release|Win32\r
+               {ABFD88E1-7710-4BCC-AC34-56038DAC9652}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+               {3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E}.All|Win32.ActiveCfg = Release|x64\r
+               {3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E}.All|x64.ActiveCfg = Release|x64\r
+               {3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E}.All|x64.Build.0 = Release|x64\r
+               {3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E}.All|x64 Setup.ActiveCfg = Release|x64\r
+               {3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E}.All|x86 Setup.ActiveCfg = Release|x64\r
+               {3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E}.Debug|Win32.ActiveCfg = Debug|Win32\r
+               {3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E}.Debug|Win32.Build.0 = Debug|Win32\r
+               {3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E}.Debug|x64.ActiveCfg = Debug|x64\r
+               {3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E}.Debug|x64.Build.0 = Debug|x64\r
+               {3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+               {3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E}.Debug|x86 Setup.ActiveCfg = Debug|x64\r
+               {3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E}.Release|Win32.ActiveCfg = Release|Win32\r
+               {3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E}.Release|Win32.Build.0 = Release|Win32\r
+               {3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E}.Release|x64.ActiveCfg = Release|x64\r
+               {3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E}.Release|x64.Build.0 = Release|x64\r
+               {3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E}.Release|x64 Setup.ActiveCfg = Release|x64\r
+               {3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E}.Release|x86 Setup.ActiveCfg = Release|x64\r
+               {5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}.All|Win32.ActiveCfg = Release|x64\r
+               {5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}.All|x64.ActiveCfg = Release|x64\r
+               {5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}.All|x64.Build.0 = Release|x64\r
+               {5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}.All|x64 Setup.ActiveCfg = Release|x64\r
+               {5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}.All|x86 Setup.ActiveCfg = Release|x64\r
+               {5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}.Debug|Win32.ActiveCfg = Debug|Win32\r
+               {5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}.Debug|Win32.Build.0 = Debug|Win32\r
+               {5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}.Debug|x64.ActiveCfg = Debug|x64\r
+               {5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}.Debug|x64.Build.0 = Debug|x64\r
+               {5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+               {5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}.Debug|x86 Setup.ActiveCfg = Debug|x64\r
+               {5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}.Release|Win32.ActiveCfg = Release|Win32\r
+               {5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}.Release|Win32.Build.0 = Release|Win32\r
+               {5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}.Release|x64.ActiveCfg = Release|x64\r
+               {5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}.Release|x64.Build.0 = Release|x64\r
+               {5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}.Release|x64 Setup.ActiveCfg = Release|x64\r
+               {5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}.Release|x86 Setup.ActiveCfg = Release|x64\r
        EndGlobalSection\r
        GlobalSection(SolutionProperties) = preSolution\r
                HideSolutionNode = FALSE\r
@@ -4059,6 +4117,7 @@ Global
                {4D418176-3B33-47E6-A63E-01BA34ADD21C} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}\r
                {AFA983D6-4569-4F88-BA94-555ED00FD9A8} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}\r
                {64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}\r
+               {ABFD88E1-7710-4BCC-AC34-56038DAC9652} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}\r
                {5FD31A25-5D83-4794-8BEE-904DAD84CE71} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}\r
                {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}\r
                {0DF3ABD0-DDC0-4265-B778-07C66780979B} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}\r
@@ -4069,6 +4128,8 @@ Global
                {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}\r
                {05C9FB27-480E-4D53-B3B7-7338E2514666} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}\r
                {74B120FF-6935-4DFE-A142-CDB6BEA99C90} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}\r
+               {3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}\r
+               {5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}\r
                {30A5B29C-983E-4580-9FD0-D647CCDCC7EB} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
                {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
                {C24FB505-05D7-4319-8485-7540B44C8603} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
diff --git a/src/mod/codecs/mod_vp8/mod_vp8.2012.vcxproj b/src/mod/codecs/mod_vp8/mod_vp8.2012.vcxproj
new file mode 100644 (file)
index 0000000..8177bd6
--- /dev/null
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup Label="ProjectConfigurations">\r
+    <ProjectConfiguration Include="Debug|Win32">\r
+      <Configuration>Debug</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Debug|x64">\r
+      <Configuration>Debug</Configuration>\r
+      <Platform>x64</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Release|Win32">\r
+      <Configuration>Release</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Release|x64">\r
+      <Configuration>Release</Configuration>\r
+      <Platform>x64</Platform>\r
+    </ProjectConfiguration>\r
+  </ItemGroup>\r
+  <PropertyGroup Label="Globals">\r
+    <ProjectName>mod_vp8</ProjectName>\r
+    <ProjectGuid>{ABFD88E1-7710-4BCC-AC34-56038DAC9652}</ProjectGuid>\r
+    <RootNamespace>mod_vp8</RootNamespace>\r
+    <Keyword>Win32Proj</Keyword>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
+    <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+    <CharacterSet>MultiByte</CharacterSet>\r
+    <PlatformToolset>v110</PlatformToolset>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+    <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+    <CharacterSet>MultiByte</CharacterSet>\r
+    <PlatformToolset>v110</PlatformToolset>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">\r
+    <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+    <CharacterSet>MultiByte</CharacterSet>\r
+    <PlatformToolset>v110</PlatformToolset>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">\r
+    <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+    <CharacterSet>MultiByte</CharacterSet>\r
+    <PlatformToolset>v110</PlatformToolset>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+  <ImportGroup Label="ExtensionSettings">\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="..\..\..\..\w32\module_release.props" />\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="..\..\..\..\w32\module_debug.props" />\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="..\..\..\..\w32\module_release.props" />\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="..\..\..\..\w32\module_debug.props" />\r
+  </ImportGroup>\r
+  <PropertyGroup Label="UserMacros" />\r
+  <PropertyGroup>\r
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
+  </PropertyGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+    <ClCompile>\r
+      <PrecompiledHeader>\r
+      </PrecompiledHeader>\r
+    </ClCompile>\r
+    <Link>\r
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
+      <DataExecutionPrevention>\r
+      </DataExecutionPrevention>\r
+    </Link>\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
+    <Midl>\r
+      <TargetEnvironment>X64</TargetEnvironment>\r
+    </Midl>\r
+    <ClCompile>\r
+      <PrecompiledHeader>\r
+      </PrecompiledHeader>\r
+    </ClCompile>\r
+    <Link>\r
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
+      <DataExecutionPrevention>\r
+      </DataExecutionPrevention>\r
+      <TargetMachine>MachineX64</TargetMachine>\r
+    </Link>\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+    <ClCompile>\r
+      <PrecompiledHeader>\r
+      </PrecompiledHeader>\r
+    </ClCompile>\r
+    <Link>\r
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
+      <DataExecutionPrevention>\r
+      </DataExecutionPrevention>\r
+    </Link>\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
+    <Midl>\r
+      <TargetEnvironment>X64</TargetEnvironment>\r
+    </Midl>\r
+    <ClCompile>\r
+      <PrecompiledHeader>\r
+      </PrecompiledHeader>\r
+    </ClCompile>\r
+    <Link>\r
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
+      <DataExecutionPrevention>\r
+      </DataExecutionPrevention>\r
+      <TargetMachine>MachineX64</TargetMachine>\r
+    </Link>\r
+  </ItemDefinitionGroup>\r
+  <ItemGroup>\r
+    <ClCompile Include="mod_vp8.c" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ProjectReference Include="..\..\..\..\w32\Library\FreeSwitchCore.2012.vcxproj">\r
+      <Project>{202d7a4e-760d-4d0e-afa1-d7459ced30ff}</Project>\r
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
+    </ProjectReference>\r
+  </ItemGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+  <ImportGroup Label="ExtensionTargets">\r
+  </ImportGroup>\r
+</Project>\r
diff --git a/src/mod/endpoints/mod_rtc/mod_rtc.2012.vcxproj b/src/mod/endpoints/mod_rtc/mod_rtc.2012.vcxproj
new file mode 100644 (file)
index 0000000..3a65e7b
--- /dev/null
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup Label="ProjectConfigurations">\r
+    <ProjectConfiguration Include="Debug|Win32">\r
+      <Configuration>Debug</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Debug|x64">\r
+      <Configuration>Debug</Configuration>\r
+      <Platform>x64</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Release|Win32">\r
+      <Configuration>Release</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Release|x64">\r
+      <Configuration>Release</Configuration>\r
+      <Platform>x64</Platform>\r
+    </ProjectConfiguration>\r
+  </ItemGroup>\r
+  <PropertyGroup Label="Globals">\r
+    <ProjectName>mod_rtc</ProjectName>\r
+    <ProjectGuid>{3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E}</ProjectGuid>\r
+    <RootNamespace>mod_rtc</RootNamespace>\r
+    <Keyword>Win32Proj</Keyword>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
+    <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+    <CharacterSet>MultiByte</CharacterSet>\r
+    <PlatformToolset>v110</PlatformToolset>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+    <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+    <CharacterSet>MultiByte</CharacterSet>\r
+    <PlatformToolset>v110</PlatformToolset>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">\r
+    <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+    <CharacterSet>MultiByte</CharacterSet>\r
+    <PlatformToolset>v110</PlatformToolset>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">\r
+    <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+    <CharacterSet>MultiByte</CharacterSet>\r
+    <PlatformToolset>v110</PlatformToolset>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+  <ImportGroup Label="ExtensionSettings">\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="..\..\..\..\w32\module_release.props" />\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="..\..\..\..\w32\module_debug.props" />\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="..\..\..\..\w32\module_release.props" />\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="..\..\..\..\w32\module_debug.props" />\r
+  </ImportGroup>\r
+  <PropertyGroup Label="UserMacros" />\r
+  <PropertyGroup>\r
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
+  </PropertyGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+    <ClCompile>\r
+      <PrecompiledHeader>\r
+      </PrecompiledHeader>\r
+    </ClCompile>\r
+    <Link>\r
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
+      <DataExecutionPrevention>\r
+      </DataExecutionPrevention>\r
+    </Link>\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
+    <Midl>\r
+      <TargetEnvironment>X64</TargetEnvironment>\r
+    </Midl>\r
+    <ClCompile>\r
+      <PrecompiledHeader>\r
+      </PrecompiledHeader>\r
+    </ClCompile>\r
+    <Link>\r
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
+      <DataExecutionPrevention>\r
+      </DataExecutionPrevention>\r
+      <TargetMachine>MachineX64</TargetMachine>\r
+    </Link>\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+    <ClCompile>\r
+      <PrecompiledHeader>\r
+      </PrecompiledHeader>\r
+    </ClCompile>\r
+    <Link>\r
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
+      <DataExecutionPrevention>\r
+      </DataExecutionPrevention>\r
+    </Link>\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
+    <Midl>\r
+      <TargetEnvironment>X64</TargetEnvironment>\r
+    </Midl>\r
+    <ClCompile>\r
+      <PrecompiledHeader>\r
+      </PrecompiledHeader>\r
+    </ClCompile>\r
+    <Link>\r
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
+      <DataExecutionPrevention>\r
+      </DataExecutionPrevention>\r
+      <TargetMachine>MachineX64</TargetMachine>\r
+    </Link>\r
+  </ItemDefinitionGroup>\r
+  <ItemGroup>\r
+    <ClCompile Include="mod_rtc.c" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ProjectReference Include="..\..\..\..\w32\Library\FreeSwitchCore.2012.vcxproj">\r
+      <Project>{202d7a4e-760d-4d0e-afa1-d7459ced30ff}</Project>\r
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
+    </ProjectReference>\r
+  </ItemGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+  <ImportGroup Label="ExtensionTargets">\r
+  </ImportGroup>\r
+</Project>\r
index 9a2371b8ce19e702aa7c44b9d70b5f26bb31c5c5..978c3dc6a57d3cce37fca018ed92d81493c454e9 100644 (file)
 #include <stdint.h>
 #include <errno.h>
 #include <sys/types.h>
+#ifdef WIN32
+#include <winsock2.h>
+#else
 #include <sys/socket.h>
 #include <netinet/in.h>
 #include <arpa/inet.h>
+#endif
 #include <time.h>
+#ifndef WIN32
 #include <unistd.h>
+#endif
 #include "mcast.h"
+#ifndef WIN32
 #include <poll.h>
+#endif
 #include <switch_utils.h>
 
 int mcast_socket_create(const char *host, int16_t port, mcast_handle_t *handle, mcast_flag_t flags)
index 38afa951e9dae35436641b38469de654043f4063..915f803fe8152c84d5a12436a59dd766e6c2a233 100644 (file)
@@ -42,9 +42,29 @@ extern "C" {
 #endif
 
 #include <sys/types.h>
+#ifdef WIN32
+#include <WinSock2.h>
+#else
 #include <sys/socket.h>
 #include <netinet/in.h>
 #include <arpa/inet.h>
+#endif
+
+#ifdef _MSC_VER
+#include <stdint.h>
+#ifndef strncasecmp
+#define strncasecmp _strnicmp
+#endif
+#define snprintf _snprintf
+#ifdef _WIN64
+#define WS_SSIZE_T __int64
+#elif _MSC_VER >= 1400
+#define WS_SSIZE_T __int32 __w64
+#else
+#define WS_SSIZE_T __int32
+#endif
+typedef WS_SSIZE_T ssize_t;
+#endif
 
 typedef struct {
        int sock;
index 879d6e05503e5e0ef25c9b7c581fbc85a865f923..7bc6fc19f606c0294dee7c826ed13d27dcc8ae6a 100644 (file)
@@ -34,7 +34,9 @@
 #include "mcast.h"
 #include "mcast_cpp.h"
 #include <string.h>
+#ifndef WIN32
 #include <poll.h>
+#endif
 
 McastHandle::McastHandle(const char *host, int port, int flags)
 {
index 8930918614e2245cfe9df22f52ca7ec6f0230be2..9061ae0544f1dd7ab8c7c16324869aa32a3532e7 100644 (file)
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>\r
+<?xml version="1.0" encoding="utf-8"?>\r
 <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
   <ItemGroup Label="ProjectConfigurations">\r
     <ProjectConfiguration Include="Debug|Win32">\r
@@ -20,7 +20,7 @@
   </ItemGroup>\r
   <PropertyGroup Label="Globals">\r
     <ProjectName>mod_verto</ProjectName>\r
-    <ProjectGuid>{11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}</ProjectGuid>\r
+    <ProjectGuid>{5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}</ProjectGuid>\r
     <RootNamespace>mod_verto</RootNamespace>\r
     <Keyword>Win32Proj</Keyword>\r
   </PropertyGroup>\r
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
     <Import Project="..\..\..\..\w32\module_release.props" />\r
+    <Import Project="..\..\..\..\w32\openssl-version.props" />\r
   </ImportGroup>\r
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
     <Import Project="..\..\..\..\w32\module_debug.props" />\r
+    <Import Project="..\..\..\..\w32\openssl-version.props" />\r
   </ImportGroup>\r
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">\r
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
     <Import Project="..\..\..\..\w32\module_release.props" />\r
+    <Import Project="..\..\..\..\w32\openssl-version.props" />\r
   </ImportGroup>\r
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">\r
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
     <Import Project="..\..\..\..\w32\module_debug.props" />\r
+    <Import Project="..\..\..\..\w32\openssl-version.props" />\r
   </ImportGroup>\r
   <PropertyGroup Label="UserMacros" />\r
   <PropertyGroup>\r
@@ -72,6 +76,7 @@
     <ClCompile>\r
       <PrecompiledHeader>\r
       </PrecompiledHeader>\r
+      <AdditionalIncludeDirectories>$(SolutionDir)\src\include;%(AdditionalIncludeDirectories);..\..\..\..\libs\openssl-$(OpenSSLVersion)\include;$(ProjectDir)..\..\..\..\libs\pthreads-w32-2-9-1;.\;.\mcast</AdditionalIncludeDirectories>\r
     </ClCompile>\r
     <Link>\r
       <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
@@ -86,6 +91,7 @@
     <ClCompile>\r
       <PrecompiledHeader>\r
       </PrecompiledHeader>\r
+      <AdditionalIncludeDirectories>$(SolutionDir)\src\include;%(AdditionalIncludeDirectories);..\..\..\..\libs\openssl-$(OpenSSLVersion)\include;$(ProjectDir)..\..\..\..\libs\pthreads-w32-2-9-1;.\;.\mcast</AdditionalIncludeDirectories>\r
     </ClCompile>\r
     <Link>\r
       <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
     <ClCompile>\r
       <PrecompiledHeader>\r
       </PrecompiledHeader>\r
+      <AdditionalIncludeDirectories>$(SolutionDir)\src\include;%(AdditionalIncludeDirectories);..\..\..\..\libs\openssl-$(OpenSSLVersion)\include;$(ProjectDir)..\..\..\..\libs\pthreads-w32-2-9-1;.\;.\mcast</AdditionalIncludeDirectories>\r
     </ClCompile>\r
     <Link>\r
       <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
     <ClCompile>\r
       <PrecompiledHeader>\r
       </PrecompiledHeader>\r
+      <AdditionalIncludeDirectories>$(SolutionDir)\src\include;%(AdditionalIncludeDirectories);..\..\..\..\libs\openssl-$(OpenSSLVersion)\include;$(ProjectDir)..\..\..\..\libs\pthreads-w32-2-9-1;.\;.\mcast</AdditionalIncludeDirectories>\r
     </ClCompile>\r
     <Link>\r
       <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
   </ItemDefinitionGroup>\r
   <ItemGroup>\r
     <ClCompile Include="mod_verto.c" />\r
+    <ClCompile Include="ws.c" />\r
+    <ClCompile Include="mcast\mcast.c" />\r
+    <ClCompile Include="mcast\mcast_cpp.cpp" />\r
   </ItemGroup>\r
   <ItemGroup>\r
     <ProjectReference Include="..\..\..\..\w32\Library\FreeSwitchCore.2012.vcxproj">\r
       <Project>{202d7a4e-760d-4d0e-afa1-d7459ced30ff}</Project>\r
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
     </ProjectReference>\r
+    <ProjectReference Include="..\..\..\..\libs\win32\openssl\libeay32.2012.vcxproj">\r
+      <Project>{d331904d-a00a-4694-a5a3-fcff64ab5dbe}</Project>\r
+    </ProjectReference>\r
+    <ProjectReference Include="..\..\..\..\libs\win32\openssl\ssleay32.2012.vcxproj">\r
+      <Project>{b4b62169-5ad4-4559-8707-3d933ac5db39}</Project>\r
+    </ProjectReference>\r
+    <ProjectReference Include="..\..\..\..\libs\win32\pthread\pthread.2012.vcxproj">\r
+      <Project>{df018947-0fff-4eb3-bdee-441dc81da7a4}</Project>\r
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
+    </ProjectReference>\r
   </ItemGroup>\r
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
   <ImportGroup Label="ExtensionTargets">\r
   </ImportGroup>\r
-</Project>\r
+</Project>
\ No newline at end of file
index 3fa68853ec7df0e56c5b5124a85bec5c3e7391c0..0a77f9869f162ff08ec993ee6f9eb9670dbbfdf3 100644 (file)
@@ -46,10 +46,14 @@ SWITCH_MODULE_DEFINITION(mod_verto, mod_verto_load, mod_verto_shutdown, mod_vert
 
 //////////////////////////
 #include <mod_verto.h>
+#ifndef WIN32
 #include <sys/param.h>
+#endif
 #include <sys/stat.h>
 #include <fcntl.h>
+#ifndef WIN32
 #include <sys/file.h>
+#endif
 #include <ctype.h>
 #include <sys/stat.h>
 
@@ -137,15 +141,19 @@ static void verto_deinit_ssl(verto_profile_t *profile)
        }
 }
 
-static void close_file(int *sock)
+static void close_file(ws_socket_t *sock)
 {
        if (*sock > -1) {
+#ifndef WIN32
                close(*sock);
-               *sock = -1;
+#else
+               closesocket(*sock);
+#endif
+               *sock = ws_sock_invalid;
        }
 }
 
-static void close_socket(int *sock)
+static void close_socket(ws_socket_t *sock)
 {
        if (*sock > -1) {
                shutdown(*sock, 2);
@@ -2161,7 +2169,7 @@ static switch_state_handler_table_t verto_state_handlers = {
 
 static void verto_set_media_options(verto_pvt_t *tech_pvt, verto_profile_t *profile)
 {
-       int i;
+       uint32_t i;
 
        tech_pvt->mparams->rtpip = switch_core_session_strdup(tech_pvt->session, profile->rtpip[profile->rtpip_cur++]);
 
@@ -3622,12 +3630,16 @@ static void jrpc_init(void)
 
 
 
-static int start_jsock(verto_profile_t *profile, int sock)
+static int start_jsock(verto_profile_t *profile, ws_socket_t sock)
 {
        jsock_t *jsock = NULL;
        int flag = 1;
        int i;
-    unsigned int len;            
+#ifndef WIN32
+    unsigned int len;
+#else
+    int len;
+#endif
        jsock_type_t ptype = PTYPE_CLIENT;
        switch_thread_data_t *td;
        switch_memory_pool_t *pool;
@@ -3713,10 +3725,14 @@ static int start_jsock(verto_profile_t *profile, int sock)
        return -1;
 }
 
-static int prepare_socket(int ip, int port) 
+static ws_socket_t prepare_socket(int ip, int port) 
 {
-       int sock = -1;
+       ws_socket_t sock = ws_sock_invalid;
+#ifndef WIN32
        int reuse_addr = 1;
+#else
+       char reuse_addr = 1;
+#endif
        struct sockaddr_in addr;
 
        if ((sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) {
@@ -3734,12 +3750,12 @@ static int prepare_socket(int ip, int port)
        
     if (bind(sock, (struct sockaddr *) &addr, sizeof(addr)) < 0) {
                die("Bind Error!\n");
-               return -1;
+               return ws_sock_invalid;
        }
 
     if (listen(sock, MAXPENDING) < 0) {
                die("Listen error\n");
-               return -1;
+               return ws_sock_invalid;
        }
 
        return sock;
@@ -3748,7 +3764,7 @@ static int prepare_socket(int ip, int port)
 
        close_file(&sock);
 
-       return -1;
+       return ws_sock_invalid;
 }
 
 static void handle_mcast_sub(verto_profile_t *profile)
@@ -3925,7 +3941,7 @@ static void kill_profiles(void)
 
 
        while(--sanity > 0 && globals.profile_threads > 0) {
-               usleep(100000);
+               switch_yield(100000);
        }
 }
 
@@ -4365,13 +4381,14 @@ static switch_status_t cmd_status(char **argv, int argc, switch_stream_handle_t
        int cp = 0;
        int cc = 0;
        const char *line = "=================================================================================================";
+       int i;
 
        stream->write_function(stream, "%25s\t%s\t  %40s\t%s\n", "Name", "   Type", "Data", "State");
        stream->write_function(stream, "%s\n", line);
 
        switch_mutex_lock(globals.mutex);
        for(profile = globals.profile_head; profile; profile = profile->next) {
-               for (int i = 0; i < profile->i; i++) { 
+               for (i = 0; i < profile->i; i++) { 
                        char *tmpurl = switch_mprintf("%s:%s:%d",(profile->ip[i].secure == 1) ? "wss" : "ws", profile->ip[i].local_ip, profile->ip[i].local_port);
                        stream->write_function(stream, "%25s\t%s\t  %40s\t%s\n", profile->name, "profile", tmpurl, (profile->running) ? "RUNNING" : "DOWN");
                        switch_safe_free(tmpurl);
@@ -4408,12 +4425,13 @@ static switch_status_t cmd_xml_status(char **argv, int argc, switch_stream_handl
        int cp = 0;
        int cc = 0;
        const char *header = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>";
+       int i;
 
        stream->write_function(stream, "%s\n", header);
        stream->write_function(stream, "<profiles>\n");
        switch_mutex_lock(globals.mutex);
        for(profile = globals.profile_head; profile; profile = profile->next) {
-               for (int i = 0; i < profile->i; i++) { 
+               for (i = 0; i < profile->i; i++) { 
                        char *tmpurl = switch_mprintf("%s:%s:%d",(profile->ip[i].secure == 1) ? "wss" : "ws", profile->ip[i].local_ip, profile->ip[i].local_port);
                        stream->write_function(stream, "<profile>\n<name>%s</name>\n<type>%s</type>\n<data>%s</data>\n<state>%s</state>\n</profile>\n", profile->name, "profile", tmpurl, (profile->running) ? "RUNNING" : "DOWN");
                        switch_safe_free(tmpurl);
@@ -4506,7 +4524,7 @@ static void *SWITCH_THREAD_FUNC profile_thread(switch_thread_t *thread, void *ob
        switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "profile %s shutdown, Waiting for %d threads\n", profile->name, profile->jsock_count);
        
        while(--sanity > 0 && profile->jsock_count > 0) {
-               usleep(100000);
+               switch_yield(100000);
        }
 
        verto_deinit_ssl(profile);
@@ -5321,7 +5339,9 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_verto_load)
 
        memset(&globals, 0, sizeof(globals));
        globals.pool = pool;
+#ifndef WIN32
        globals.ready = SIGUSR1;
+#endif
        globals.enable_presence = SWITCH_TRUE;
        globals.enable_fs_events = SWITCH_FALSE;
 
index bafc0184c8eddbe9a9fb3a3c7c88d25af2e0764f..e1953f67b7cb97f68bc6976514fd86903e604194 100644 (file)
 #include <stdio.h>
 #include <stdlib.h>
 #include <sys/types.h>
+#ifdef WIN32
+#include <WinSock2.h>
+#else
 #include <sys/socket.h>
 #include <arpa/inet.h>
 #include <sys/wait.h> 
+#endif
 #include <string.h>
+#ifndef WIN32
 #include <unistd.h>
 #include <poll.h>
+#endif
 #include <stdarg.h>
+#ifndef WIN32
 #include <netinet/tcp.h>
 #include <sys/un.h>
+#endif
 #include <assert.h>
 #include <errno.h>
+#ifndef WIN32
 #include <pwd.h>
 #include <netdb.h>
+#endif
 #include <openssl/ssl.h>
 #include "mcast.h"
 
@@ -89,7 +99,7 @@ typedef enum {
 struct verto_profile_s;
 
 struct jsock_s {
-       int client_socket;
+       ws_socket_t client_socket;
        switch_memory_pool_t *pool;
        switch_thread_t *thread;
        wsh_t ws;
@@ -99,10 +109,12 @@ struct jsock_s {
        struct sockaddr_in local_addr;
        struct sockaddr_in remote_addr;
        struct sockaddr_in send_addr;
+#ifndef WIN32
        struct passwd pw;
+#endif
 
        int drop;
-       int local_sock;
+       ws_socket_t local_sock;
        SSL *ssl;
 
        jpflag_t flags;
@@ -198,7 +210,7 @@ struct verto_profile_s {
 
        jsock_t *jsock_head;
        int jsock_count;
-       int server_socket[MAX_BIND];
+       ws_socket_t server_socket[MAX_BIND];
        int running;
 
        int ssl_ready;
index 51ae0f13f7a0dbe524c961017f5c8cd5469bcb61..67646175d697d4c48a89dd180779bc26902916f7 100644 (file)
@@ -656,7 +656,11 @@ ssize_t ws_close(wsh_t *wsh, int16_t reason)
        restore_socket(wsh->sock);
 
        if (wsh->close_sock && wsh->sock != ws_sock_invalid) {
+#ifndef WIN32
                close(wsh->sock);
+#else
+               closesocket(wsh->sock);
+#endif
        }
 
        wsh->sock = ws_sock_invalid;
index 7f5f5c48b4a14875a541493b5d0907e89fd33688..1dd85a5d93c13d6fe0dff533b96feae9092036e8 100644 (file)
 #include <arpa/inet.h>
 #include <sys/wait.h> 
 #include <sys/socket.h>
+#include <unistd.h>
 #else
 #pragma warning(disable:4996)
 #endif
 #include <string.h>
-#include <unistd.h>
 #include <string.h>
 #include <stdint.h>
 #include <stdio.h>
@@ -26,7 +26,9 @@
 #include <openssl/ssl.h>
 
 #ifdef _MSC_VER
+#ifndef strncasecmp
 #define strncasecmp _strnicmp
+#endif
 #define snprintf _snprintf
 #ifdef _WIN64
 #define WS_SSIZE_T __int64
@@ -48,8 +50,12 @@ struct ws_globals_s {
 
 extern struct ws_globals_s ws_globals;
 
+#ifndef WIN32
 typedef int ws_socket_t;
-#define ws_sock_invalid -1
+#else
+typedef SOCKET ws_socket_t;
+#endif
+#define ws_sock_invalid (ws_socket_t)-1
 
 
 typedef enum {