Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
F
freeswitch
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
张华
freeswitch
Commits
7faf9f4c
提交
7faf9f4c
authored
10月 18, 2014
作者:
Peter Olsson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
FS-6767 #comment Add initial support for mod_verto on Windows
上级
1ca81aca
隐藏空白字符变更
内嵌
并排
正在显示
11 个修改的文件
包含
447 行增加
和
23 行删除
+447
-23
Freeswitch.2012.sln
Freeswitch.2012.sln
+61
-0
mod_vp8.2012.vcxproj
src/mod/codecs/mod_vp8/mod_vp8.2012.vcxproj
+135
-0
mod_rtc.2012.vcxproj
src/mod/endpoints/mod_rtc/mod_rtc.2012.vcxproj
+135
-0
mcast.c
src/mod/endpoints/mod_verto/mcast/mcast.c
+8
-0
mcast.h
src/mod/endpoints/mod_verto/mcast/mcast.h
+20
-0
mcast_cpp.cpp
src/mod/endpoints/mod_verto/mcast/mcast_cpp.cpp
+2
-0
mod_verto.2012.vcxproj
src/mod/endpoints/mod_verto/mod_verto.2012.vcxproj
+24
-3
mod_verto.c
src/mod/endpoints/mod_verto/mod_verto.c
+35
-15
mod_verto.h
src/mod/endpoints/mod_verto/mod_verto.h
+15
-3
ws.c
src/mod/endpoints/mod_verto/ws.c
+4
-0
ws.h
src/mod/endpoints/mod_verto/ws.h
+8
-2
没有找到文件。
Freeswitch.2012.sln
浏览文件 @
7faf9f4c
...
...
@@ -603,6 +603,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download LDNS", "libs\win32
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download PORTAUDIO", "libs\win32\Download PORTAUDIO.2012.vcxproj", "{C0779BCC-C037-4F58-B890-EF37BA956B3C}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_vp8", "src\mod\codecs\mod_vp8\mod_vp8.2012.vcxproj", "{ABFD88E1-7710-4BCC-AC34-56038DAC9652}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_rtc", "src\mod\endpoints\mod_rtc\mod_rtc.2012.vcxproj", "{3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_verto", "src\mod\endpoints\mod_verto\mod_verto.2012.vcxproj", "{5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
All|Win32 = All|Win32
...
...
@@ -4043,6 +4049,58 @@ Global
{C0779BCC-C037-4F58-B890-EF37BA956B3C}.Release|x64.Build.0 = Release|Win32
{C0779BCC-C037-4F58-B890-EF37BA956B3C}.Release|x64 Setup.ActiveCfg = Release|Win32
{C0779BCC-C037-4F58-B890-EF37BA956B3C}.Release|x86 Setup.ActiveCfg = Release|Win32
{ABFD88E1-7710-4BCC-AC34-56038DAC9652}.All|Win32.ActiveCfg = Release|Win32
{ABFD88E1-7710-4BCC-AC34-56038DAC9652}.All|Win32.Build.0 = Release|Win32
{ABFD88E1-7710-4BCC-AC34-56038DAC9652}.All|x64.ActiveCfg = Release|x64
{ABFD88E1-7710-4BCC-AC34-56038DAC9652}.All|x64.Build.0 = Release|x64
{ABFD88E1-7710-4BCC-AC34-56038DAC9652}.All|x64 Setup.ActiveCfg = Release|Win32
{ABFD88E1-7710-4BCC-AC34-56038DAC9652}.All|x86 Setup.ActiveCfg = Release|Win32
{ABFD88E1-7710-4BCC-AC34-56038DAC9652}.Debug|Win32.ActiveCfg = Debug|Win32
{ABFD88E1-7710-4BCC-AC34-56038DAC9652}.Debug|Win32.Build.0 = Debug|Win32
{ABFD88E1-7710-4BCC-AC34-56038DAC9652}.Debug|x64.ActiveCfg = Debug|x64
{ABFD88E1-7710-4BCC-AC34-56038DAC9652}.Debug|x64.Build.0 = Debug|x64
{ABFD88E1-7710-4BCC-AC34-56038DAC9652}.Debug|x64 Setup.ActiveCfg = Debug|Win32
{ABFD88E1-7710-4BCC-AC34-56038DAC9652}.Debug|x86 Setup.ActiveCfg = Debug|Win32
{ABFD88E1-7710-4BCC-AC34-56038DAC9652}.Release|Win32.ActiveCfg = Release|Win32
{ABFD88E1-7710-4BCC-AC34-56038DAC9652}.Release|Win32.Build.0 = Release|Win32
{ABFD88E1-7710-4BCC-AC34-56038DAC9652}.Release|x64.ActiveCfg = Release|x64
{ABFD88E1-7710-4BCC-AC34-56038DAC9652}.Release|x64.Build.0 = Release|x64
{ABFD88E1-7710-4BCC-AC34-56038DAC9652}.Release|x64 Setup.ActiveCfg = Release|Win32
{ABFD88E1-7710-4BCC-AC34-56038DAC9652}.Release|x86 Setup.ActiveCfg = Release|Win32
{3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E}.All|Win32.ActiveCfg = Release|x64
{3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E}.All|x64.ActiveCfg = Release|x64
{3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E}.All|x64.Build.0 = Release|x64
{3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E}.All|x64 Setup.ActiveCfg = Release|x64
{3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E}.All|x86 Setup.ActiveCfg = Release|x64
{3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E}.Debug|Win32.ActiveCfg = Debug|Win32
{3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E}.Debug|Win32.Build.0 = Debug|Win32
{3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E}.Debug|x64.ActiveCfg = Debug|x64
{3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E}.Debug|x64.Build.0 = Debug|x64
{3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E}.Debug|x64 Setup.ActiveCfg = Debug|x64
{3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E}.Debug|x86 Setup.ActiveCfg = Debug|x64
{3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E}.Release|Win32.ActiveCfg = Release|Win32
{3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E}.Release|Win32.Build.0 = Release|Win32
{3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E}.Release|x64.ActiveCfg = Release|x64
{3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E}.Release|x64.Build.0 = Release|x64
{3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E}.Release|x64 Setup.ActiveCfg = Release|x64
{3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E}.Release|x86 Setup.ActiveCfg = Release|x64
{5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}.All|Win32.ActiveCfg = Release|x64
{5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}.All|x64.ActiveCfg = Release|x64
{5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}.All|x64.Build.0 = Release|x64
{5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}.All|x64 Setup.ActiveCfg = Release|x64
{5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}.All|x86 Setup.ActiveCfg = Release|x64
{5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}.Debug|Win32.ActiveCfg = Debug|Win32
{5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}.Debug|Win32.Build.0 = Debug|Win32
{5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}.Debug|x64.ActiveCfg = Debug|x64
{5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}.Debug|x64.Build.0 = Debug|x64
{5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}.Debug|x64 Setup.ActiveCfg = Debug|x64
{5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}.Debug|x86 Setup.ActiveCfg = Debug|x64
{5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}.Release|Win32.ActiveCfg = Release|Win32
{5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}.Release|Win32.Build.0 = Release|Win32
{5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}.Release|x64.ActiveCfg = Release|x64
{5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}.Release|x64.Build.0 = Release|x64
{5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}.Release|x64 Setup.ActiveCfg = Release|x64
{5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}.Release|x86 Setup.ActiveCfg = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
...
...
@@ -4059,6 +4117,7 @@ Global
{4D418176-3B33-47E6-A63E-01BA34ADD21C} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
{AFA983D6-4569-4F88-BA94-555ED00FD9A8} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
{ABFD88E1-7710-4BCC-AC34-56038DAC9652} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
{5FD31A25-5D83-4794-8BEE-904DAD84CE71} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
{FFAA4C52-3A53-4F99-90C1-D59D1F0427F3} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
{0DF3ABD0-DDC0-4265-B778-07C66780979B} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
...
...
@@ -4069,6 +4128,8 @@ Global
{C6E78A4C-DB1E-47F4-9B63-4DC27D86343F} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
{05C9FB27-480E-4D53-B3B7-7338E2514666} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
{74B120FF-6935-4DFE-A142-CDB6BEA99C90} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
{3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
{5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
{30A5B29C-983E-4580-9FD0-D647CCDCC7EB} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
{B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
{C24FB505-05D7-4319-8485-7540B44C8603} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
...
...
src/mod/codecs/mod_vp8/mod_vp8.2012.vcxproj
0 → 100644
浏览文件 @
7faf9f4c
<?xml version="1.0" encoding="utf-8"?>
<Project
DefaultTargets=
"Build"
ToolsVersion=
"4.0"
xmlns=
"http://schemas.microsoft.com/developer/msbuild/2003"
>
<ItemGroup
Label=
"ProjectConfigurations"
>
<ProjectConfiguration
Include=
"Debug|Win32"
>
<Configuration>
Debug
</Configuration>
<Platform>
Win32
</Platform>
</ProjectConfiguration>
<ProjectConfiguration
Include=
"Debug|x64"
>
<Configuration>
Debug
</Configuration>
<Platform>
x64
</Platform>
</ProjectConfiguration>
<ProjectConfiguration
Include=
"Release|Win32"
>
<Configuration>
Release
</Configuration>
<Platform>
Win32
</Platform>
</ProjectConfiguration>
<ProjectConfiguration
Include=
"Release|x64"
>
<Configuration>
Release
</Configuration>
<Platform>
x64
</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup
Label=
"Globals"
>
<ProjectName>
mod_vp8
</ProjectName>
<ProjectGuid>
{ABFD88E1-7710-4BCC-AC34-56038DAC9652}
</ProjectGuid>
<RootNamespace>
mod_vp8
</RootNamespace>
<Keyword>
Win32Proj
</Keyword>
</PropertyGroup>
<Import
Project=
"$(VCTargetsPath)\Microsoft.Cpp.Default.props"
/>
<PropertyGroup
Condition=
"'$(Configuration)|$(Platform)'=='Release|Win32'"
Label=
"Configuration"
>
<ConfigurationType>
DynamicLibrary
</ConfigurationType>
<CharacterSet>
MultiByte
</CharacterSet>
<PlatformToolset>
v110
</PlatformToolset>
</PropertyGroup>
<PropertyGroup
Condition=
"'$(Configuration)|$(Platform)'=='Debug|Win32'"
Label=
"Configuration"
>
<ConfigurationType>
DynamicLibrary
</ConfigurationType>
<CharacterSet>
MultiByte
</CharacterSet>
<PlatformToolset>
v110
</PlatformToolset>
</PropertyGroup>
<PropertyGroup
Condition=
"'$(Configuration)|$(Platform)'=='Release|x64'"
Label=
"Configuration"
>
<ConfigurationType>
DynamicLibrary
</ConfigurationType>
<CharacterSet>
MultiByte
</CharacterSet>
<PlatformToolset>
v110
</PlatformToolset>
</PropertyGroup>
<PropertyGroup
Condition=
"'$(Configuration)|$(Platform)'=='Debug|x64'"
Label=
"Configuration"
>
<ConfigurationType>
DynamicLibrary
</ConfigurationType>
<CharacterSet>
MultiByte
</CharacterSet>
<PlatformToolset>
v110
</PlatformToolset>
</PropertyGroup>
<Import
Project=
"$(VCTargetsPath)\Microsoft.Cpp.props"
/>
<ImportGroup
Label=
"ExtensionSettings"
>
</ImportGroup>
<ImportGroup
Condition=
"'$(Configuration)|$(Platform)'=='Release|Win32'"
Label=
"PropertySheets"
>
<Import
Project=
"$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition=
"exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label=
"LocalAppDataPlatform"
/>
<Import
Project=
"..\..\..\..\w32\module_release.props"
/>
</ImportGroup>
<ImportGroup
Condition=
"'$(Configuration)|$(Platform)'=='Debug|Win32'"
Label=
"PropertySheets"
>
<Import
Project=
"$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition=
"exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label=
"LocalAppDataPlatform"
/>
<Import
Project=
"..\..\..\..\w32\module_debug.props"
/>
</ImportGroup>
<ImportGroup
Condition=
"'$(Configuration)|$(Platform)'=='Release|x64'"
Label=
"PropertySheets"
>
<Import
Project=
"$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition=
"exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label=
"LocalAppDataPlatform"
/>
<Import
Project=
"..\..\..\..\w32\module_release.props"
/>
</ImportGroup>
<ImportGroup
Condition=
"'$(Configuration)|$(Platform)'=='Debug|x64'"
Label=
"PropertySheets"
>
<Import
Project=
"$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition=
"exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label=
"LocalAppDataPlatform"
/>
<Import
Project=
"..\..\..\..\w32\module_debug.props"
/>
</ImportGroup>
<PropertyGroup
Label=
"UserMacros"
/>
<PropertyGroup>
<_ProjectFileVersion>
10.0.30319.1
</_ProjectFileVersion>
</PropertyGroup>
<ItemDefinitionGroup
Condition=
"'$(Configuration)|$(Platform)'=='Debug|Win32'"
>
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
</ClCompile>
<Link>
<RandomizedBaseAddress>
false
</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup
Condition=
"'$(Configuration)|$(Platform)'=='Debug|x64'"
>
<Midl>
<TargetEnvironment>
X64
</TargetEnvironment>
</Midl>
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
</ClCompile>
<Link>
<RandomizedBaseAddress>
false
</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>
MachineX64
</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup
Condition=
"'$(Configuration)|$(Platform)'=='Release|Win32'"
>
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
</ClCompile>
<Link>
<RandomizedBaseAddress>
false
</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup
Condition=
"'$(Configuration)|$(Platform)'=='Release|x64'"
>
<Midl>
<TargetEnvironment>
X64
</TargetEnvironment>
</Midl>
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
</ClCompile>
<Link>
<RandomizedBaseAddress>
false
</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>
MachineX64
</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile
Include=
"mod_vp8.c"
/>
</ItemGroup>
<ItemGroup>
<ProjectReference
Include=
"..\..\..\..\w32\Library\FreeSwitchCore.2012.vcxproj"
>
<Project>
{202d7a4e-760d-4d0e-afa1-d7459ced30ff}
</Project>
<ReferenceOutputAssembly>
false
</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup>
<Import
Project=
"$(VCTargetsPath)\Microsoft.Cpp.targets"
/>
<ImportGroup
Label=
"ExtensionTargets"
>
</ImportGroup>
</Project>
src/mod/endpoints/mod_rtc/mod_rtc.2012.vcxproj
0 → 100644
浏览文件 @
7faf9f4c
<?xml version="1.0" encoding="utf-8"?>
<Project
DefaultTargets=
"Build"
ToolsVersion=
"4.0"
xmlns=
"http://schemas.microsoft.com/developer/msbuild/2003"
>
<ItemGroup
Label=
"ProjectConfigurations"
>
<ProjectConfiguration
Include=
"Debug|Win32"
>
<Configuration>
Debug
</Configuration>
<Platform>
Win32
</Platform>
</ProjectConfiguration>
<ProjectConfiguration
Include=
"Debug|x64"
>
<Configuration>
Debug
</Configuration>
<Platform>
x64
</Platform>
</ProjectConfiguration>
<ProjectConfiguration
Include=
"Release|Win32"
>
<Configuration>
Release
</Configuration>
<Platform>
Win32
</Platform>
</ProjectConfiguration>
<ProjectConfiguration
Include=
"Release|x64"
>
<Configuration>
Release
</Configuration>
<Platform>
x64
</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup
Label=
"Globals"
>
<ProjectName>
mod_rtc
</ProjectName>
<ProjectGuid>
{3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E}
</ProjectGuid>
<RootNamespace>
mod_rtc
</RootNamespace>
<Keyword>
Win32Proj
</Keyword>
</PropertyGroup>
<Import
Project=
"$(VCTargetsPath)\Microsoft.Cpp.Default.props"
/>
<PropertyGroup
Condition=
"'$(Configuration)|$(Platform)'=='Release|Win32'"
Label=
"Configuration"
>
<ConfigurationType>
DynamicLibrary
</ConfigurationType>
<CharacterSet>
MultiByte
</CharacterSet>
<PlatformToolset>
v110
</PlatformToolset>
</PropertyGroup>
<PropertyGroup
Condition=
"'$(Configuration)|$(Platform)'=='Debug|Win32'"
Label=
"Configuration"
>
<ConfigurationType>
DynamicLibrary
</ConfigurationType>
<CharacterSet>
MultiByte
</CharacterSet>
<PlatformToolset>
v110
</PlatformToolset>
</PropertyGroup>
<PropertyGroup
Condition=
"'$(Configuration)|$(Platform)'=='Release|x64'"
Label=
"Configuration"
>
<ConfigurationType>
DynamicLibrary
</ConfigurationType>
<CharacterSet>
MultiByte
</CharacterSet>
<PlatformToolset>
v110
</PlatformToolset>
</PropertyGroup>
<PropertyGroup
Condition=
"'$(Configuration)|$(Platform)'=='Debug|x64'"
Label=
"Configuration"
>
<ConfigurationType>
DynamicLibrary
</ConfigurationType>
<CharacterSet>
MultiByte
</CharacterSet>
<PlatformToolset>
v110
</PlatformToolset>
</PropertyGroup>
<Import
Project=
"$(VCTargetsPath)\Microsoft.Cpp.props"
/>
<ImportGroup
Label=
"ExtensionSettings"
>
</ImportGroup>
<ImportGroup
Condition=
"'$(Configuration)|$(Platform)'=='Release|Win32'"
Label=
"PropertySheets"
>
<Import
Project=
"$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition=
"exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label=
"LocalAppDataPlatform"
/>
<Import
Project=
"..\..\..\..\w32\module_release.props"
/>
</ImportGroup>
<ImportGroup
Condition=
"'$(Configuration)|$(Platform)'=='Debug|Win32'"
Label=
"PropertySheets"
>
<Import
Project=
"$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition=
"exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label=
"LocalAppDataPlatform"
/>
<Import
Project=
"..\..\..\..\w32\module_debug.props"
/>
</ImportGroup>
<ImportGroup
Condition=
"'$(Configuration)|$(Platform)'=='Release|x64'"
Label=
"PropertySheets"
>
<Import
Project=
"$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition=
"exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label=
"LocalAppDataPlatform"
/>
<Import
Project=
"..\..\..\..\w32\module_release.props"
/>
</ImportGroup>
<ImportGroup
Condition=
"'$(Configuration)|$(Platform)'=='Debug|x64'"
Label=
"PropertySheets"
>
<Import
Project=
"$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition=
"exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label=
"LocalAppDataPlatform"
/>
<Import
Project=
"..\..\..\..\w32\module_debug.props"
/>
</ImportGroup>
<PropertyGroup
Label=
"UserMacros"
/>
<PropertyGroup>
<_ProjectFileVersion>
10.0.30319.1
</_ProjectFileVersion>
</PropertyGroup>
<ItemDefinitionGroup
Condition=
"'$(Configuration)|$(Platform)'=='Debug|Win32'"
>
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
</ClCompile>
<Link>
<RandomizedBaseAddress>
false
</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup
Condition=
"'$(Configuration)|$(Platform)'=='Debug|x64'"
>
<Midl>
<TargetEnvironment>
X64
</TargetEnvironment>
</Midl>
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
</ClCompile>
<Link>
<RandomizedBaseAddress>
false
</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>
MachineX64
</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup
Condition=
"'$(Configuration)|$(Platform)'=='Release|Win32'"
>
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
</ClCompile>
<Link>
<RandomizedBaseAddress>
false
</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup
Condition=
"'$(Configuration)|$(Platform)'=='Release|x64'"
>
<Midl>
<TargetEnvironment>
X64
</TargetEnvironment>
</Midl>
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
</ClCompile>
<Link>
<RandomizedBaseAddress>
false
</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>
MachineX64
</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile
Include=
"mod_rtc.c"
/>
</ItemGroup>
<ItemGroup>
<ProjectReference
Include=
"..\..\..\..\w32\Library\FreeSwitchCore.2012.vcxproj"
>
<Project>
{202d7a4e-760d-4d0e-afa1-d7459ced30ff}
</Project>
<ReferenceOutputAssembly>
false
</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup>
<Import
Project=
"$(VCTargetsPath)\Microsoft.Cpp.targets"
/>
<ImportGroup
Label=
"ExtensionTargets"
>
</ImportGroup>
</Project>
src/mod/endpoints/mod_verto/mcast/mcast.c
浏览文件 @
7faf9f4c
...
...
@@ -37,13 +37,21 @@
#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
)
...
...
src/mod/endpoints/mod_verto/mcast/mcast.h
浏览文件 @
7faf9f4c
...
...
@@ -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
;
...
...
src/mod/endpoints/mod_verto/mcast/mcast_cpp.cpp
浏览文件 @
7faf9f4c
...
...
@@ -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
)
{
...
...
src/mod/endpoints/mod_verto/mod_verto.2012.vcxproj
浏览文件 @
7faf9f4c
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<Project
DefaultTargets=
"Build"
ToolsVersion=
"4.0"
xmlns=
"http://schemas.microsoft.com/developer/msbuild/2003"
>
<ItemGroup
Label=
"ProjectConfigurations"
>
<ProjectConfiguration
Include=
"Debug|Win32"
>
...
...
@@ -20,7 +20,7 @@
</ItemGroup>
<PropertyGroup
Label=
"Globals"
>
<ProjectName>
mod_verto
</ProjectName>
<ProjectGuid>
{
11C9BC3D-45E9-46E3-BE84-B8CEE4685E39
}
</ProjectGuid>
<ProjectGuid>
{
5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6
}
</ProjectGuid>
<RootNamespace>
mod_verto
</RootNamespace>
<Keyword>
Win32Proj
</Keyword>
</PropertyGroup>
...
...
@@ -51,18 +51,22 @@
<ImportGroup
Condition=
"'$(Configuration)|$(Platform)'=='Release|Win32'"
Label=
"PropertySheets"
>
<Import
Project=
"$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition=
"exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label=
"LocalAppDataPlatform"
/>
<Import
Project=
"..\..\..\..\w32\module_release.props"
/>
<Import
Project=
"..\..\..\..\w32\openssl-version.props"
/>
</ImportGroup>
<ImportGroup
Condition=
"'$(Configuration)|$(Platform)'=='Debug|Win32'"
Label=
"PropertySheets"
>
<Import
Project=
"$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition=
"exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label=
"LocalAppDataPlatform"
/>
<Import
Project=
"..\..\..\..\w32\module_debug.props"
/>
<Import
Project=
"..\..\..\..\w32\openssl-version.props"
/>
</ImportGroup>
<ImportGroup
Condition=
"'$(Configuration)|$(Platform)'=='Release|x64'"
Label=
"PropertySheets"
>
<Import
Project=
"$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition=
"exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label=
"LocalAppDataPlatform"
/>
<Import
Project=
"..\..\..\..\w32\module_release.props"
/>
<Import
Project=
"..\..\..\..\w32\openssl-version.props"
/>
</ImportGroup>
<ImportGroup
Condition=
"'$(Configuration)|$(Platform)'=='Debug|x64'"
Label=
"PropertySheets"
>
<Import
Project=
"$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition=
"exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label=
"LocalAppDataPlatform"
/>
<Import
Project=
"..\..\..\..\w32\module_debug.props"
/>
<Import
Project=
"..\..\..\..\w32\openssl-version.props"
/>
</ImportGroup>
<PropertyGroup
Label=
"UserMacros"
/>
<PropertyGroup>
...
...
@@ -72,6 +76,7 @@
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<AdditionalIncludeDirectories>
$(SolutionDir)\src\include;%(AdditionalIncludeDirectories);..\..\..\..\libs\openssl-$(OpenSSLVersion)\include;$(ProjectDir)..\..\..\..\libs\pthreads-w32-2-9-1;.\;.\mcast
</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<RandomizedBaseAddress>
false
</RandomizedBaseAddress>
...
...
@@ -86,6 +91,7 @@
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<AdditionalIncludeDirectories>
$(SolutionDir)\src\include;%(AdditionalIncludeDirectories);..\..\..\..\libs\openssl-$(OpenSSLVersion)\include;$(ProjectDir)..\..\..\..\libs\pthreads-w32-2-9-1;.\;.\mcast
</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<RandomizedBaseAddress>
false
</RandomizedBaseAddress>
...
...
@@ -98,6 +104,7 @@
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<AdditionalIncludeDirectories>
$(SolutionDir)\src\include;%(AdditionalIncludeDirectories);..\..\..\..\libs\openssl-$(OpenSSLVersion)\include;$(ProjectDir)..\..\..\..\libs\pthreads-w32-2-9-1;.\;.\mcast
</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<RandomizedBaseAddress>
false
</RandomizedBaseAddress>
...
...
@@ -112,6 +119,7 @@
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<AdditionalIncludeDirectories>
$(SolutionDir)\src\include;%(AdditionalIncludeDirectories);..\..\..\..\libs\openssl-$(OpenSSLVersion)\include;$(ProjectDir)..\..\..\..\libs\pthreads-w32-2-9-1;.\;.\mcast
</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<RandomizedBaseAddress>
false
</RandomizedBaseAddress>
...
...
@@ -122,14 +130,27 @@
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile
Include=
"mod_verto.c"
/>
<ClCompile
Include=
"ws.c"
/>
<ClCompile
Include=
"mcast\mcast.c"
/>
<ClCompile
Include=
"mcast\mcast_cpp.cpp"
/>
</ItemGroup>
<ItemGroup>
<ProjectReference
Include=
"..\..\..\..\w32\Library\FreeSwitchCore.2012.vcxproj"
>
<Project>
{202d7a4e-760d-4d0e-afa1-d7459ced30ff}
</Project>
<ReferenceOutputAssembly>
false
</ReferenceOutputAssembly>
</ProjectReference>
<ProjectReference
Include=
"..\..\..\..\libs\win32\openssl\libeay32.2012.vcxproj"
>
<Project>
{d331904d-a00a-4694-a5a3-fcff64ab5dbe}
</Project>
</ProjectReference>
<ProjectReference
Include=
"..\..\..\..\libs\win32\openssl\ssleay32.2012.vcxproj"
>
<Project>
{b4b62169-5ad4-4559-8707-3d933ac5db39}
</Project>
</ProjectReference>
<ProjectReference
Include=
"..\..\..\..\libs\win32\pthread\pthread.2012.vcxproj"
>
<Project>
{df018947-0fff-4eb3-bdee-441dc81da7a4}
</Project>
<ReferenceOutputAssembly>
false
</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup>
<Import
Project=
"$(VCTargetsPath)\Microsoft.Cpp.targets"
/>
<ImportGroup
Label=
"ExtensionTargets"
>
</ImportGroup>
</Project>
</Project>
\ No newline at end of file
src/mod/endpoints/mod_verto/mod_verto.c
浏览文件 @
7faf9f4c
...
...
@@ -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
(
in
t
*
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
(
in
t
*
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
)
{
in
t
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
,
in
t
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
in
t
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
(
i
nt
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
(
i
nt
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
;
...
...
src/mod/endpoints/mod_verto/mod_verto.h
浏览文件 @
7faf9f4c
...
...
@@ -36,19 +36,29 @@
#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
{
in
t
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
;
in
t
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
;
in
t
server_socket
[
MAX_BIND
];
ws_socket_
t
server_socket
[
MAX_BIND
];
int
running
;
int
ssl_ready
;
...
...
src/mod/endpoints/mod_verto/ws.c
浏览文件 @
7faf9f4c
...
...
@@ -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
;
...
...
src/mod/endpoints/mod_verto/ws.h
浏览文件 @
7faf9f4c
...
...
@@ -11,11 +11,11 @@
#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
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论