mirror of
https://github.com/lunarmodules/luasocket.git
synced 2024-12-27 04:48:21 +01:00
Merge branch 'pkulchenko' into unstable
This commit is contained in:
commit
3d61b0fe36
15
.gitignore
vendored
15
.gitignore
vendored
@ -1,7 +1,16 @@
|
|||||||
*.o
|
*.o
|
||||||
*.so
|
*.so
|
||||||
*.so.*
|
*.so.*
|
||||||
macosx.cmd
|
*.obj
|
||||||
win32.cmd
|
*.lib
|
||||||
linux.cmd
|
*.dll*
|
||||||
|
*.user
|
||||||
|
*.sdf
|
||||||
|
Lua.props
|
||||||
|
Debug
|
||||||
|
Release
|
||||||
|
*.manifest
|
||||||
|
*.swp
|
||||||
|
*.suo
|
||||||
|
x64
|
||||||
|
|
||||||
|
28
Lua51.props
Normal file
28
Lua51.props
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ImportGroup Label="PropertySheets" />
|
||||||
|
<PropertyGroup Label="UserMacros">
|
||||||
|
<LUABIN_PATH>..\build\vc12\bin\lua\5.1\</LUABIN_PATH>
|
||||||
|
<LUALIB_PATH>..\build\vc12\bin\lua\5.1\</LUALIB_PATH>
|
||||||
|
<LUAINC_PATH>..\build\vc12\include\lua\5.1\</LUAINC_PATH>
|
||||||
|
<LUALIB>lua51.lib</LUALIB>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<_PropertySheetDisplayName>Lua51</_PropertySheetDisplayName>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemDefinitionGroup />
|
||||||
|
<ItemGroup>
|
||||||
|
<BuildMacro Include="LUALIB_PATH">
|
||||||
|
<Value>$(LUALIB_PATH)</Value>
|
||||||
|
</BuildMacro>
|
||||||
|
<BuildMacro Include="LUABIN_PATH">
|
||||||
|
<Value>$(LUABIN_PATH)</Value>
|
||||||
|
</BuildMacro>
|
||||||
|
<BuildMacro Include="LUAINC_PATH">
|
||||||
|
<Value>$(LUAINC_PATH)</Value>
|
||||||
|
</BuildMacro>
|
||||||
|
<BuildMacro Include="LUALIB">
|
||||||
|
<Value>$(LUALIB)</Value>
|
||||||
|
</BuildMacro>
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
28
Lua52.props
Normal file
28
Lua52.props
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ImportGroup Label="PropertySheets" />
|
||||||
|
<PropertyGroup Label="UserMacros">
|
||||||
|
<LUABIN_PATH>..\build\vc12\bin\lua\5.2\</LUABIN_PATH>
|
||||||
|
<LUALIB_PATH>..\build\vc12\bin\lua\5.2\</LUALIB_PATH>
|
||||||
|
<LUAINC_PATH>..\build\vc12\include\lua\5.2\</LUAINC_PATH>
|
||||||
|
<LUALIB>lua52.lib</LUALIB>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<_PropertySheetDisplayName>Lua52</_PropertySheetDisplayName>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemDefinitionGroup />
|
||||||
|
<ItemGroup>
|
||||||
|
<BuildMacro Include="LUALIB_PATH">
|
||||||
|
<Value>$(LUALIB_PATH)</Value>
|
||||||
|
</BuildMacro>
|
||||||
|
<BuildMacro Include="LUABIN_PATH">
|
||||||
|
<Value>$(LUABIN_PATH)</Value>
|
||||||
|
</BuildMacro>
|
||||||
|
<BuildMacro Include="LUAINC_PATH">
|
||||||
|
<Value>$(LUAINC_PATH)</Value>
|
||||||
|
</BuildMacro>
|
||||||
|
<BuildMacro Include="LUALIB">
|
||||||
|
<Value>$(LUALIB)</Value>
|
||||||
|
</BuildMacro>
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
1
linux.cmd
Normal file
1
linux.cmd
Normal file
@ -0,0 +1 @@
|
|||||||
|
make PLAT=linux DEBUG=DEBUG LUAINC_linux_base=/home/diego/build/linux/include LUAPREFIX_linux=/home/diego/build/linux
|
1
macosx.cmd
Normal file
1
macosx.cmd
Normal file
@ -0,0 +1 @@
|
|||||||
|
make DEBUG=DEBUG PLAT=macosx LUAINC_macosx_base=/Users/diego/build/macosx/include LUAPREFIX_macosx=/Users/diego/build/macosx install-both
|
13
makefile
13
makefile
@ -5,11 +5,12 @@
|
|||||||
# Targets:
|
# Targets:
|
||||||
# install install system independent support
|
# install install system independent support
|
||||||
# install-unix also install unix-only support
|
# install-unix also install unix-only support
|
||||||
# install-both install both lua5.1 and lua5.2 socket support
|
# install-both install for both lua5.1 and lua5.2
|
||||||
|
# install-both-unix also install unix-only
|
||||||
# print print the build settings
|
# print print the build settings
|
||||||
|
|
||||||
PLAT?= linux
|
PLAT?= linux
|
||||||
PLATS= macosx linux win32
|
PLATS= macosx linux win32 mingw
|
||||||
|
|
||||||
all: $(PLAT)
|
all: $(PLAT)
|
||||||
|
|
||||||
@ -23,6 +24,14 @@ test:
|
|||||||
lua test/hello.lua
|
lua test/hello.lua
|
||||||
|
|
||||||
install-both:
|
install-both:
|
||||||
|
$(MAKE) clean
|
||||||
|
@cd src; $(MAKE) $(PLAT) LUAV=5.1
|
||||||
|
@cd src; $(MAKE) install LUAV=5.1
|
||||||
|
$(MAKE) clean
|
||||||
|
@cd src; $(MAKE) $(PLAT) LUAV=5.2
|
||||||
|
@cd src; $(MAKE) install LUAV=5.2
|
||||||
|
|
||||||
|
install-both-unix:
|
||||||
$(MAKE) clean
|
$(MAKE) clean
|
||||||
@cd src; $(MAKE) $(PLAT) LUAV=5.1
|
@cd src; $(MAKE) $(PLAT) LUAV=5.1
|
||||||
@cd src; $(MAKE) install-unix LUAV=5.1
|
@cd src; $(MAKE) install-unix LUAV=5.1
|
||||||
|
54
mime.vcxproj
54
mime.vcxproj
@ -21,6 +21,19 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="src\mime.c" />
|
<ClCompile Include="src\mime.c" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<CustomBuild Include="src\mime.lua">
|
||||||
|
<FileType>Document</FileType>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy %(FullPath) $(LUABIN_PATH)$(Configuration)</Command>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(LUABIN_PATH)$(Configuration)\%(Filename)%(Extension)</Outputs>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">copy %(FullPath) $(LUABIN_PATH)$(Configuration)</Command>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(LUABIN_PATH)$(Configuration)\%(Filename)%(Extension)</Outputs>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">copy %(FullPath) $(LUALIB_PATH)$(Platform)\$(Configuration)</Command>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">copy %(FullPath) $(LUALIB_PATH)$(Platform)\$(Configuration)</Command>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(LUABIN_PATH)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(LUABIN_PATH)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
|
||||||
|
</CustomBuild>
|
||||||
|
</ItemGroup>
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
<ProjectGuid>{128E8BD0-174A-48F0-8771-92B1E8D18713}</ProjectGuid>
|
<ProjectGuid>{128E8BD0-174A-48F0-8771-92B1E8D18713}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
@ -52,25 +65,29 @@
|
|||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
<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="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
|
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
|
||||||
|
<Import Project="Lua.props" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
<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="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
|
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
|
||||||
|
<Import Project="Lua.props" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
<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="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
|
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
|
||||||
|
<Import Project="Lua.props" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
<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="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
|
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
|
||||||
|
<Import Project="Lua.props" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<PropertyGroup Label="UserMacros" />
|
<PropertyGroup Label="UserMacros" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<_ProjectFileVersion>11.0.50727.1</_ProjectFileVersion>
|
<_ProjectFileVersion>11.0.50727.1</_ProjectFileVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<OutDir>$(SolutionDir)\$(Configuration)\mime\</OutDir>
|
<OutDir>$(LUABIN_PATH)$(Configuration)\mime\</OutDir>
|
||||||
<IntDir>$(Configuration)\</IntDir>
|
<IntDir>$(Configuration)\</IntDir>
|
||||||
<LinkIncremental>true</LinkIncremental>
|
<LinkIncremental>true</LinkIncremental>
|
||||||
<TargetName>core</TargetName>
|
<TargetName>core</TargetName>
|
||||||
@ -78,23 +95,23 @@
|
|||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
<LinkIncremental>true</LinkIncremental>
|
<LinkIncremental>true</LinkIncremental>
|
||||||
<TargetName>core</TargetName>
|
<TargetName>core</TargetName>
|
||||||
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\mime\</OutDir>
|
<OutDir>$(LUABIN_PATH)$(Platform)\$(Configuration)\mime\</OutDir>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<OutDir>$(SolutionDir)\$(Configuration)\mime\</OutDir>
|
<OutDir>$(LUABIN_PATH)$(Configuration)\mime\</OutDir>
|
||||||
<IntDir>$(Configuration)\</IntDir>
|
<IntDir>$(Configuration)\</IntDir>
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
<TargetName>core</TargetName>
|
<TargetName>core</TargetName>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\mime\</OutDir>
|
<OutDir>$(LUABIN_PATH)$(Platform)\$(Configuration)\mime\</OutDir>
|
||||||
<TargetName>core</TargetName>
|
<TargetName>core</TargetName>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<AdditionalIncludeDirectories>..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(LUAINC_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;MIME_API=__declspec(dllexport);_CRT_SECURE_NO_WARNINGS;LUA_COMPAT_MODULE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;MIME_API=__declspec(dllexport);_CRT_SECURE_NO_WARNINGS;LUA_COMPAT_MODULE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<MinimalRebuild>true</MinimalRebuild>
|
<MinimalRebuild>true</MinimalRebuild>
|
||||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
@ -102,11 +119,12 @@
|
|||||||
<PrecompiledHeader />
|
<PrecompiledHeader />
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||||
|
<ProgramDataBaseFileName>$(IntDir)$(TargetName)$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>lualib.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>$(LUALIB);%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<OutputFile>$(OutDir)$(TargetName).dll</OutputFile>
|
<OutputFile>$(OutDir)$(TargetName).dll</OutputFile>
|
||||||
<AdditionalLibraryDirectories>..\bin\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(LUALIB_PATH)$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<ProgramDatabaseFile>$(OutDir)mime.pdb</ProgramDatabaseFile>
|
<ProgramDatabaseFile>$(OutDir)mime.pdb</ProgramDatabaseFile>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
@ -114,12 +132,13 @@
|
|||||||
<DataExecutionPrevention />
|
<DataExecutionPrevention />
|
||||||
<ImportLibrary>$(OutDir)$(TargetName).lib</ImportLibrary>
|
<ImportLibrary>$(OutDir)$(TargetName).lib</ImportLibrary>
|
||||||
<TargetMachine>MachineX86</TargetMachine>
|
<TargetMachine>MachineX86</TargetMachine>
|
||||||
|
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<AdditionalIncludeDirectories>..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(LUAINC_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;MIME_API=__declspec(dllexport);_CRT_SECURE_NO_WARNINGS;LUA_COMPAT_MODULE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;MIME_API=__declspec(dllexport);_CRT_SECURE_NO_WARNINGS;LUA_COMPAT_MODULE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||||
@ -127,11 +146,12 @@
|
|||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
|
<ProgramDataBaseFileName>$(IntDir)$(TargetName)$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>lualib.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>$(LUALIB);%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<OutputFile>$(OutDir)$(TargetName).dll</OutputFile>
|
<OutputFile>$(OutDir)$(TargetName).dll</OutputFile>
|
||||||
<AdditionalLibraryDirectories>..\bin\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(LUALIB_PATH)$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<ProgramDatabaseFile>$(OutDir)mime.pdb</ProgramDatabaseFile>
|
<ProgramDatabaseFile>$(OutDir)mime.pdb</ProgramDatabaseFile>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
@ -143,17 +163,18 @@
|
|||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<AdditionalIncludeDirectories>..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(LUAINC_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;MIME_API=__declspec(dllexport);_CRT_SECURE_NO_WARNINGS;LUA_COMPAT_MODULE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;MIME_API=__declspec(dllexport);_CRT_SECURE_NO_WARNINGS;LUA_COMPAT_MODULE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||||
<PrecompiledHeader />
|
<PrecompiledHeader />
|
||||||
<WarningLevel>Level4</WarningLevel>
|
<WarningLevel>Level4</WarningLevel>
|
||||||
<DebugInformationFormat />
|
<DebugInformationFormat />
|
||||||
|
<ProgramDataBaseFileName>$(IntDir)$(TargetName)$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>lualib.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>$(LUALIB);%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<OutputFile>$(OutDir)$(TargetName).dll</OutputFile>
|
<OutputFile>$(OutDir)$(TargetName).dll</OutputFile>
|
||||||
<AdditionalLibraryDirectories>..\bin\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(LUALIB_PATH)$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
@ -166,7 +187,7 @@
|
|||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<AdditionalIncludeDirectories>..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(LUAINC_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;MIME_API=__declspec(dllexport);_CRT_SECURE_NO_WARNINGS;LUA_COMPAT_MODULE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;MIME_API=__declspec(dllexport);_CRT_SECURE_NO_WARNINGS;LUA_COMPAT_MODULE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
@ -174,11 +195,12 @@
|
|||||||
<WarningLevel>Level4</WarningLevel>
|
<WarningLevel>Level4</WarningLevel>
|
||||||
<DebugInformationFormat>
|
<DebugInformationFormat>
|
||||||
</DebugInformationFormat>
|
</DebugInformationFormat>
|
||||||
|
<ProgramDataBaseFileName>$(IntDir)$(TargetName)$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>lualib.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>$(LUALIB);%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<OutputFile>$(OutDir)$(TargetName).dll</OutputFile>
|
<OutputFile>$(OutDir)$(TargetName).dll</OutputFile>
|
||||||
<AdditionalLibraryDirectories>..\bin\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(LUALIB_PATH)$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
16
mime.vcxproj.filters
Normal file
16
mime.vcxproj.filters
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="src\mime.c" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Filter Include="cdir">
|
||||||
|
<UniqueIdentifier>{fad87a86-297c-4881-a114-73b967bb3c92}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<CustomBuild Include="src\mime.lua">
|
||||||
|
<Filter>cdir</Filter>
|
||||||
|
</CustomBuild>
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
1
mingw.cmd
Normal file
1
mingw.cmd
Normal file
@ -0,0 +1 @@
|
|||||||
|
make PLAT=mingw LUAINC_mingw_base=/home/diego/build/mingw/include LUALIB_mingw_base=/home/diego/build/mingw/bin LUAPREFIX_mingw=/home/diego/build/mingw/bin DEBUG=DEBUG install-both
|
133
socket.vcxproj
133
socket.vcxproj
@ -32,6 +32,98 @@
|
|||||||
<ClCompile Include="src\udp.c" />
|
<ClCompile Include="src\udp.c" />
|
||||||
<ClCompile Include="src\wsocket.c" />
|
<ClCompile Include="src\wsocket.c" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<CustomBuild Include="src\ltn12.lua">
|
||||||
|
<FileType>Document</FileType>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy %(FullPath) $(LUABIN_PATH)$(Configuration)</Command>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">copy %(FullPath) $(LUABIN_PATH)$(Configuration)</Command>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">copy %(FullPath) $(LUABIN_PATH)$(Platform)\$(Configuration)</Command>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">copy %(FullPath) $(LUABIN_PATH)$(Platform)\$(Configuration)</Command>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(LUABIN_PATH)$(Configuration)\%(Filename)%(Extension)</Outputs>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(LUABIN_PATH)$(Configuration)\%(Filename)%(Extension)</Outputs>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(LUABIN_PATH)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(LUABIN_PATH)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
|
||||||
|
</CustomBuild>
|
||||||
|
<CustomBuild Include="src\socket.lua">
|
||||||
|
<FileType>Document</FileType>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy %(FullPath) $(LUABIN_PATH)$(Configuration)</Command>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">copy %(FullPath) $(LUABIN_PATH)$(Configuration)</Command>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">copy %(FullPath) $(LUABIN_PATH)$(Platform)\$(Configuration)</Command>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">copy %(FullPath) $(LUABIN_PATH)$(Platform)\$(Configuration)</Command>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(LUABIN_PATH)$(Configuration)\%(Filename)%(Extension)</Outputs>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(LUABIN_PATH)$(Configuration)\%(Filename)%(Extension)</Outputs>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(LUABIN_PATH)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(LUABIN_PATH)$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
|
||||||
|
</CustomBuild>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<CustomBuild Include="src\ftp.lua">
|
||||||
|
<FileType>Document</FileType>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(LUABIN_PATH)$(Platform)\$(Configuration)\socket\%(Filename)%(Extension)</Outputs>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(LUABIN_PATH)$(Platform)\$(Configuration)\socket\%(Filename)%(Extension)</Outputs>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(LUABIN_PATH)$(Configuration)\socket\%(Filename)%(Extension)</Outputs>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(LUABIN_PATH)$(Configuration)\socket\%(Filename)%(Extension)</Outputs>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">copy %(FullPath) $(LUABIN_PATH)$(Platform)\$(Configuration)\socket</Command>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">copy %(FullPath) $(LUABIN_PATH)$(Platform)\$(Configuration)\socket</Command>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy %(FullPath) $(LUABIN_PATH)$(Configuration)\socket</Command>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">copy %(FullPath) $(LUABIN_PATH)$(Configuration)\socket</Command>
|
||||||
|
</CustomBuild>
|
||||||
|
<CustomBuild Include="src\headers.lua">
|
||||||
|
<FileType>Document</FileType>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(LUABIN_PATH)$(Platform)\$(Configuration)\socket\%(Filename)%(Extension)</Outputs>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(LUABIN_PATH)$(Platform)\$(Configuration)\socket\%(Filename)%(Extension)</Outputs>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(LUABIN_PATH)$(Configuration)\socket\%(Filename)%(Extension)</Outputs>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(LUABIN_PATH)$(Configuration)\socket\%(Filename)%(Extension)</Outputs>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">copy %(FullPath) $(LUABIN_PATH)$(Platform)\$(Configuration)\socket</Command>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">copy %(FullPath) $(LUABIN_PATH)$(Platform)\$(Configuration)\socket</Command>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy %(FullPath) $(LUABIN_PATH)$(Configuration)\socket</Command>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">copy %(FullPath) $(LUABIN_PATH)$(Configuration)\socket</Command>
|
||||||
|
</CustomBuild>
|
||||||
|
<CustomBuild Include="src\http.lua">
|
||||||
|
<FileType>Document</FileType>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(LUABIN_PATH)$(Platform)\$(Configuration)\socket\%(Filename)%(Extension)</Outputs>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(LUABIN_PATH)$(Platform)\$(Configuration)\socket\%(Filename)%(Extension)</Outputs>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(LUABIN_PATH)$(Configuration)\socket\%(Filename)%(Extension)</Outputs>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(LUABIN_PATH)$(Configuration)\socket\%(Filename)%(Extension)</Outputs>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">copy %(FullPath) $(LUABIN_PATH)$(Platform)\$(Configuration)\socket</Command>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">copy %(FullPath) $(LUABIN_PATH)$(Platform)\$(Configuration)\socket</Command>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy %(FullPath) $(LUABIN_PATH)$(Configuration)\socket</Command>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">copy %(FullPath) $(LUABIN_PATH)$(Configuration)\socket</Command>
|
||||||
|
</CustomBuild>
|
||||||
|
<CustomBuild Include="src\smtp.lua">
|
||||||
|
<FileType>Document</FileType>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(LUABIN_PATH)$(Platform)\$(Configuration)\socket\%(Filename)%(Extension)</Outputs>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(LUABIN_PATH)$(Platform)\$(Configuration)\socket\%(Filename)%(Extension)</Outputs>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(LUABIN_PATH)$(Configuration)\socket\%(Filename)%(Extension)</Outputs>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(LUABIN_PATH)$(Configuration)\socket\%(Filename)%(Extension)</Outputs>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">copy %(FullPath) $(LUABIN_PATH)$(Platform)\$(Configuration)\socket</Command>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">copy %(FullPath) $(LUABIN_PATH)$(Platform)\$(Configuration)\socket</Command>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy %(FullPath) $(LUABIN_PATH)$(Configuration)\socket</Command>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">copy %(FullPath) $(LUABIN_PATH)$(Configuration)\socket</Command>
|
||||||
|
</CustomBuild>
|
||||||
|
<CustomBuild Include="src\tp.lua">
|
||||||
|
<FileType>Document</FileType>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(LUABIN_PATH)$(Platform)\$(Configuration)\socket\%(Filename)%(Extension)</Outputs>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(LUABIN_PATH)$(Platform)\$(Configuration)\socket\%(Filename)%(Extension)</Outputs>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(LUABIN_PATH)$(Configuration)\socket\%(Filename)%(Extension)</Outputs>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(LUABIN_PATH)$(Configuration)\socket\%(Filename)%(Extension)</Outputs>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">copy %(FullPath) $(LUABIN_PATH)$(Platform)\$(Configuration)\socket</Command>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">copy %(FullPath) $(LUABIN_PATH)$(Platform)\$(Configuration)\socket</Command>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy %(FullPath) $(LUABIN_PATH)$(Configuration)\socket</Command>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">copy %(FullPath) $(LUABIN_PATH)$(Configuration)\socket</Command>
|
||||||
|
</CustomBuild>
|
||||||
|
<CustomBuild Include="src\url.lua">
|
||||||
|
<FileType>Document</FileType>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(LUABIN_PATH)$(Platform)\$(Configuration)\socket\%(Filename)%(Extension)</Outputs>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(LUABIN_PATH)$(Platform)\$(Configuration)\socket\%(Filename)%(Extension)</Outputs>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(LUABIN_PATH)$(Configuration)\socket\%(Filename)%(Extension)</Outputs>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(LUABIN_PATH)$(Configuration)\socket\%(Filename)%(Extension)</Outputs>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">copy %(FullPath) $(LUABIN_PATH)$(Platform)\$(Configuration)\socket</Command>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">copy %(FullPath) $(LUABIN_PATH)$(Platform)\$(Configuration)\socket</Command>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy %(FullPath) $(LUABIN_PATH)$(Configuration)\socket</Command>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">copy %(FullPath) $(LUABIN_PATH)$(Configuration)\socket</Command>
|
||||||
|
</CustomBuild>
|
||||||
|
</ItemGroup>
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
<ProjectGuid>{66E3CE14-884D-4AEA-9F20-15A0BEAF8C5A}</ProjectGuid>
|
<ProjectGuid>{66E3CE14-884D-4AEA-9F20-15A0BEAF8C5A}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
@ -63,25 +155,29 @@
|
|||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
<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="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
|
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
|
||||||
|
<Import Project="Lua.props" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
<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="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
|
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
|
||||||
|
<Import Project="Lua.props" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
<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="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
|
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
|
||||||
|
<Import Project="Lua.props" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
<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="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
|
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
|
||||||
|
<Import Project="Lua.props" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<PropertyGroup Label="UserMacros" />
|
<PropertyGroup Label="UserMacros" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<_ProjectFileVersion>11.0.50727.1</_ProjectFileVersion>
|
<_ProjectFileVersion>11.0.50727.1</_ProjectFileVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<OutDir>$(SolutionDir)\$(Configuration)\socket\</OutDir>
|
<OutDir>$(LUALIB_PATH)$(Configuration)\socket\</OutDir>
|
||||||
<IntDir>$(Configuration)\</IntDir>
|
<IntDir>$(Configuration)\</IntDir>
|
||||||
<LinkIncremental>true</LinkIncremental>
|
<LinkIncremental>true</LinkIncremental>
|
||||||
<TargetName>core</TargetName>
|
<TargetName>core</TargetName>
|
||||||
@ -89,23 +185,23 @@
|
|||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
<LinkIncremental>true</LinkIncremental>
|
<LinkIncremental>true</LinkIncremental>
|
||||||
<TargetName>core</TargetName>
|
<TargetName>core</TargetName>
|
||||||
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\socket\</OutDir>
|
<OutDir>$(LUABIN_PATH)$(Platform)\$(Configuration)\socket\</OutDir>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<OutDir>$(SolutionDir)\$(Configuration)\socket\</OutDir>
|
<OutDir>$(LUALIB_PATH)$(Configuration)\socket\</OutDir>
|
||||||
<IntDir>$(Configuration)\</IntDir>
|
<IntDir>$(Configuration)\</IntDir>
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
<TargetName>core</TargetName>
|
<TargetName>core</TargetName>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\socket\</OutDir>
|
<OutDir>$(LUABIN_PATH)$(Platform)\$(Configuration)\socket\</OutDir>
|
||||||
<TargetName>core</TargetName>
|
<TargetName>core</TargetName>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<AdditionalIncludeDirectories>..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(LUAINC_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;LUASOCKET_API=__declspec(dllexport);_CRT_SECURE_NO_WARNINGS;LUA_COMPAT_MODULE;LUASOCKET_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;LUASOCKET_API=__declspec(dllexport);_CRT_SECURE_NO_WARNINGS;LUA_COMPAT_MODULE;LUASOCKET_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<MinimalRebuild>true</MinimalRebuild>
|
<MinimalRebuild>true</MinimalRebuild>
|
||||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
@ -113,11 +209,12 @@
|
|||||||
<PrecompiledHeader />
|
<PrecompiledHeader />
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||||
|
<ProgramDataBaseFileName>$(IntDir)$(TargetName)$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>lualib.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>$(LUALIB);wsock32.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<OutputFile>$(OutDir)$(TargetName).dll</OutputFile>
|
<OutputFile>$(OutDir)$(TargetName).dll</OutputFile>
|
||||||
<AdditionalLibraryDirectories>..\bin\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(LUALIB_PATH)$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<ProgramDatabaseFile>$(OutDir)mime.pdb</ProgramDatabaseFile>
|
<ProgramDatabaseFile>$(OutDir)mime.pdb</ProgramDatabaseFile>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
@ -125,12 +222,13 @@
|
|||||||
<DataExecutionPrevention />
|
<DataExecutionPrevention />
|
||||||
<ImportLibrary>$(OutDir)$(TargetName).lib</ImportLibrary>
|
<ImportLibrary>$(OutDir)$(TargetName).lib</ImportLibrary>
|
||||||
<TargetMachine>MachineX86</TargetMachine>
|
<TargetMachine>MachineX86</TargetMachine>
|
||||||
|
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<AdditionalIncludeDirectories>..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(LUAINC_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;LUASOCKET_API=__declspec(dllexport);_CRT_SECURE_NO_WARNINGS;LUA_COMPAT_MODULE;LUASOCKET_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;LUASOCKET_API=__declspec(dllexport);_CRT_SECURE_NO_WARNINGS;LUA_COMPAT_MODULE;LUASOCKET_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||||
@ -138,11 +236,12 @@
|
|||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
|
<ProgramDataBaseFileName>$(IntDir)$(TargetName)$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>lualib.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>$(LUALIB);wsock32.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<OutputFile>$(OutDir)$(TargetName).dll</OutputFile>
|
<OutputFile>$(OutDir)$(TargetName).dll</OutputFile>
|
||||||
<AdditionalLibraryDirectories>..\bin\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(LUALIB_PATH)$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<ProgramDatabaseFile>$(OutDir)mime.pdb</ProgramDatabaseFile>
|
<ProgramDatabaseFile>$(OutDir)mime.pdb</ProgramDatabaseFile>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
@ -154,17 +253,18 @@
|
|||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<AdditionalIncludeDirectories>..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(LUAINC_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;LUASOCKET_API=__declspec(dllexport);_CRT_SECURE_NO_WARNINGS;LUA_COMPAT_MODULE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;LUASOCKET_API=__declspec(dllexport);_CRT_SECURE_NO_WARNINGS;LUA_COMPAT_MODULE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||||
<PrecompiledHeader />
|
<PrecompiledHeader />
|
||||||
<WarningLevel>Level4</WarningLevel>
|
<WarningLevel>Level4</WarningLevel>
|
||||||
<DebugInformationFormat />
|
<DebugInformationFormat />
|
||||||
|
<ProgramDataBaseFileName>$(IntDir)$(TargetName)$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>lualib.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>$(LUALIB);wsock32.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<OutputFile>$(OutDir)$(TargetName).dll</OutputFile>
|
<OutputFile>$(OutDir)$(TargetName).dll</OutputFile>
|
||||||
<AdditionalLibraryDirectories>..\bin\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(LUALIB_PATH)$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
@ -177,7 +277,7 @@
|
|||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<AdditionalIncludeDirectories>..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(LUAINC_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;LUASOCKET_API=__declspec(dllexport);_CRT_SECURE_NO_WARNINGS;LUA_COMPAT_MODULE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;LUASOCKET_API=__declspec(dllexport);_CRT_SECURE_NO_WARNINGS;LUA_COMPAT_MODULE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
@ -185,11 +285,12 @@
|
|||||||
<WarningLevel>Level4</WarningLevel>
|
<WarningLevel>Level4</WarningLevel>
|
||||||
<DebugInformationFormat>
|
<DebugInformationFormat>
|
||||||
</DebugInformationFormat>
|
</DebugInformationFormat>
|
||||||
|
<ProgramDataBaseFileName>$(IntDir)$(TargetName)$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>lualib.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>$(LUALIB);wsock32.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<OutputFile>$(OutDir)$(TargetName).dll</OutputFile>
|
<OutputFile>$(OutDir)$(TargetName).dll</OutputFile>
|
||||||
<AdditionalLibraryDirectories>..\bin\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(LUALIB_PATH)$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
51
socket.vcxproj.filters
Normal file
51
socket.vcxproj.filters
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="src\auxiliar.c" />
|
||||||
|
<ClCompile Include="src\buffer.c" />
|
||||||
|
<ClCompile Include="src\except.c" />
|
||||||
|
<ClCompile Include="src\inet.c" />
|
||||||
|
<ClCompile Include="src\io.c" />
|
||||||
|
<ClCompile Include="src\luasocket.c" />
|
||||||
|
<ClCompile Include="src\options.c" />
|
||||||
|
<ClCompile Include="src\select.c" />
|
||||||
|
<ClCompile Include="src\tcp.c" />
|
||||||
|
<ClCompile Include="src\timeout.c" />
|
||||||
|
<ClCompile Include="src\udp.c" />
|
||||||
|
<ClCompile Include="src\wsocket.c" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<CustomBuild Include="src\ltn12.lua">
|
||||||
|
<Filter>cdir</Filter>
|
||||||
|
</CustomBuild>
|
||||||
|
<CustomBuild Include="src\socket.lua">
|
||||||
|
<Filter>cdir</Filter>
|
||||||
|
</CustomBuild>
|
||||||
|
<CustomBuild Include="src\ftp.lua">
|
||||||
|
<Filter>ldir</Filter>
|
||||||
|
</CustomBuild>
|
||||||
|
<CustomBuild Include="src\headers.lua">
|
||||||
|
<Filter>ldir</Filter>
|
||||||
|
</CustomBuild>
|
||||||
|
<CustomBuild Include="src\http.lua">
|
||||||
|
<Filter>ldir</Filter>
|
||||||
|
</CustomBuild>
|
||||||
|
<CustomBuild Include="src\smtp.lua">
|
||||||
|
<Filter>ldir</Filter>
|
||||||
|
</CustomBuild>
|
||||||
|
<CustomBuild Include="src\tp.lua">
|
||||||
|
<Filter>ldir</Filter>
|
||||||
|
</CustomBuild>
|
||||||
|
<CustomBuild Include="src\url.lua">
|
||||||
|
<Filter>ldir</Filter>
|
||||||
|
</CustomBuild>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Filter Include="cdir">
|
||||||
|
<UniqueIdentifier>{b053460d-5439-4e3a-a2eb-c31a95b5691f}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="ldir">
|
||||||
|
<UniqueIdentifier>{b301b82c-37cb-4e05-9333-194e92ed7a62}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
116
src/inet.c
116
src/inet.c
@ -79,24 +79,22 @@ static int inet_global_tohostname(lua_State *L) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int inet_global_getnameinfo(lua_State *L) {
|
static int inet_global_getnameinfo(lua_State *L) {
|
||||||
|
char hbuf[NI_MAXHOST];
|
||||||
|
char sbuf[NI_MAXSERV];
|
||||||
int i, ret;
|
int i, ret;
|
||||||
char host[1024];
|
|
||||||
char serv[32];
|
|
||||||
struct addrinfo hints;
|
struct addrinfo hints;
|
||||||
struct addrinfo *resolved, *iter;
|
struct addrinfo *resolved, *iter;
|
||||||
const char *node = luaL_optstring(L, 1, NULL);
|
const char *host = luaL_optstring(L, 1, NULL);
|
||||||
const char *service = luaL_optstring(L, 2, NULL);
|
const char *serv = luaL_optstring(L, 2, NULL);
|
||||||
|
|
||||||
if (!(node || service))
|
if (!(host || serv))
|
||||||
luaL_error(L, "You have to specify a hostname, a service, or both");
|
luaL_error(L, "host and serv cannot be both nil");
|
||||||
|
|
||||||
memset(&hints, 0, sizeof(hints));
|
memset(&hints, 0, sizeof(hints));
|
||||||
hints.ai_socktype = SOCK_STREAM;
|
hints.ai_socktype = SOCK_STREAM;
|
||||||
hints.ai_family = PF_UNSPEC;
|
hints.ai_family = PF_UNSPEC;
|
||||||
|
|
||||||
/* getaddrinfo must get a node and a service argument */
|
ret = getaddrinfo(host, serv, &hints, &resolved);
|
||||||
ret = getaddrinfo(node ? node : "127.0.0.1", service ? service : "7",
|
|
||||||
&hints, &resolved);
|
|
||||||
if (ret != 0) {
|
if (ret != 0) {
|
||||||
lua_pushnil(L);
|
lua_pushnil(L);
|
||||||
lua_pushstring(L, socket_gaistrerror(ret));
|
lua_pushstring(L, socket_gaistrerror(ret));
|
||||||
@ -105,19 +103,19 @@ static int inet_global_getnameinfo(lua_State *L) {
|
|||||||
|
|
||||||
lua_newtable(L);
|
lua_newtable(L);
|
||||||
for (i = 1, iter = resolved; iter; i++, iter = iter->ai_next) {
|
for (i = 1, iter = resolved; iter; i++, iter = iter->ai_next) {
|
||||||
getnameinfo(iter->ai_addr, (socklen_t) iter->ai_addrlen, host,
|
getnameinfo(iter->ai_addr, (socklen_t) iter->ai_addrlen,
|
||||||
node ? (socklen_t) sizeof(host) : 0, serv, service ? (socklen_t) sizeof(serv) : 0, 0);
|
hbuf, host? (socklen_t) sizeof(hbuf): 0,
|
||||||
|
sbuf, serv? (socklen_t) sizeof(sbuf): 0, 0);
|
||||||
if (node) {
|
if (host) {
|
||||||
lua_pushnumber(L, i);
|
lua_pushnumber(L, i);
|
||||||
lua_pushstring(L, host);
|
lua_pushstring(L, hbuf);
|
||||||
lua_settable(L, -3);
|
lua_settable(L, -3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
freeaddrinfo(resolved);
|
freeaddrinfo(resolved);
|
||||||
|
|
||||||
if (service) {
|
if (serv) {
|
||||||
lua_pushstring(L, serv);
|
lua_pushstring(L, sbuf);
|
||||||
return 2;
|
return 2;
|
||||||
} else {
|
} else {
|
||||||
return 1;
|
return 1;
|
||||||
@ -176,9 +174,14 @@ static int inet_global_getaddrinfo(lua_State *L)
|
|||||||
}
|
}
|
||||||
lua_newtable(L);
|
lua_newtable(L);
|
||||||
for (iterator = resolved; iterator; iterator = iterator->ai_next) {
|
for (iterator = resolved; iterator; iterator = iterator->ai_next) {
|
||||||
char hbuf[NI_MAXHOST], sbuf[NI_MAXSERV];
|
char hbuf[NI_MAXHOST];
|
||||||
getnameinfo(iterator->ai_addr, (socklen_t) iterator->ai_addrlen, hbuf,
|
ret = getnameinfo(iterator->ai_addr, (socklen_t) iterator->ai_addrlen,
|
||||||
(socklen_t) sizeof(hbuf), sbuf, 0, NI_NUMERICHOST);
|
hbuf, (socklen_t) sizeof(hbuf), NULL, 0, NI_NUMERICHOST);
|
||||||
|
if (ret){
|
||||||
|
lua_pushnil(L);
|
||||||
|
lua_pushstring(L, socket_gaistrerror(ret));
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
lua_pushnumber(L, i);
|
lua_pushnumber(L, i);
|
||||||
lua_newtable(L);
|
lua_newtable(L);
|
||||||
switch (iterator->ai_family) {
|
switch (iterator->ai_family) {
|
||||||
@ -203,7 +206,6 @@ static int inet_global_getaddrinfo(lua_State *L)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------*\
|
/*-------------------------------------------------------------------------*\
|
||||||
* Gets the host name
|
* Gets the host name
|
||||||
\*-------------------------------------------------------------------------*/
|
\*-------------------------------------------------------------------------*/
|
||||||
@ -222,7 +224,6 @@ static int inet_global_gethostname(lua_State *L)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*=========================================================================*\
|
/*=========================================================================*\
|
||||||
* Lua methods
|
* Lua methods
|
||||||
\*=========================================================================*/
|
\*=========================================================================*/
|
||||||
@ -385,7 +386,6 @@ const char *inet_trydisconnect(p_socket ps, int family, p_timeout tm)
|
|||||||
struct in6_addr addrany = IN6ADDR_ANY_INIT;
|
struct in6_addr addrany = IN6ADDR_ANY_INIT;
|
||||||
memset((char *) &sin6, 0, sizeof(sin6));
|
memset((char *) &sin6, 0, sizeof(sin6));
|
||||||
sin6.sin6_family = AF_UNSPEC;
|
sin6.sin6_family = AF_UNSPEC;
|
||||||
fprintf(stderr, "disconnecting\n");
|
|
||||||
sin6.sin6_addr = addrany;
|
sin6.sin6_addr = addrany;
|
||||||
return socket_strerror(socket_connect(ps, (SA *) &sin6,
|
return socket_strerror(socket_connect(ps, (SA *) &sin6,
|
||||||
sizeof(sin6), tm));
|
sizeof(sin6), tm));
|
||||||
@ -397,7 +397,7 @@ fprintf(stderr, "disconnecting\n");
|
|||||||
/*-------------------------------------------------------------------------*\
|
/*-------------------------------------------------------------------------*\
|
||||||
* Tries to connect to remote address (address, port)
|
* Tries to connect to remote address (address, port)
|
||||||
\*-------------------------------------------------------------------------*/
|
\*-------------------------------------------------------------------------*/
|
||||||
const char *inet_tryconnect(p_socket ps, const char *address,
|
const char *inet_tryconnect(p_socket ps, int *family, const char *address,
|
||||||
const char *serv, p_timeout tm, struct addrinfo *connecthints)
|
const char *serv, p_timeout tm, struct addrinfo *connecthints)
|
||||||
{
|
{
|
||||||
struct addrinfo *iterator = NULL, *resolved = NULL;
|
struct addrinfo *iterator = NULL, *resolved = NULL;
|
||||||
@ -411,6 +411,23 @@ const char *inet_tryconnect(p_socket ps, const char *address,
|
|||||||
}
|
}
|
||||||
for (iterator = resolved; iterator; iterator = iterator->ai_next) {
|
for (iterator = resolved; iterator; iterator = iterator->ai_next) {
|
||||||
timeout_markstart(tm);
|
timeout_markstart(tm);
|
||||||
|
/* create new socket if necessary. if there was no
|
||||||
|
* bind, we need to create one for every new family
|
||||||
|
* that shows up while iterating. if there was a
|
||||||
|
* bind, all families will be the same and we will
|
||||||
|
* not enter this branch. */
|
||||||
|
if (*family != iterator->ai_family) {
|
||||||
|
socket_destroy(ps);
|
||||||
|
err = socket_strerror(socket_create(ps, iterator->ai_family,
|
||||||
|
iterator->ai_socktype, iterator->ai_protocol));
|
||||||
|
if (err != NULL) {
|
||||||
|
freeaddrinfo(resolved);
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
*family = iterator->ai_family;
|
||||||
|
/* all sockets initially non-blocking */
|
||||||
|
socket_setnonblocking(ps);
|
||||||
|
}
|
||||||
/* try connecting to remote address */
|
/* try connecting to remote address */
|
||||||
err = socket_strerror(socket_connect(ps, (SA *) iterator->ai_addr,
|
err = socket_strerror(socket_connect(ps, (SA *) iterator->ai_addr,
|
||||||
(socklen_t) iterator->ai_addrlen, tm));
|
(socklen_t) iterator->ai_addrlen, tm));
|
||||||
@ -425,7 +442,8 @@ const char *inet_tryconnect(p_socket ps, const char *address,
|
|||||||
/*-------------------------------------------------------------------------*\
|
/*-------------------------------------------------------------------------*\
|
||||||
* Tries to accept a socket
|
* Tries to accept a socket
|
||||||
\*-------------------------------------------------------------------------*/
|
\*-------------------------------------------------------------------------*/
|
||||||
const char *inet_tryaccept(p_socket server, int family, p_socket client, p_timeout tm)
|
const char *inet_tryaccept(p_socket server, int family, p_socket client,
|
||||||
|
p_timeout tm)
|
||||||
{
|
{
|
||||||
socklen_t len;
|
socklen_t len;
|
||||||
t_sockaddr_storage addr;
|
t_sockaddr_storage addr;
|
||||||
@ -446,6 +464,9 @@ const char *inet_trybind(p_socket ps, const char *address, const char *serv,
|
|||||||
struct addrinfo *iterator = NULL, *resolved = NULL;
|
struct addrinfo *iterator = NULL, *resolved = NULL;
|
||||||
const char *err = NULL;
|
const char *err = NULL;
|
||||||
t_socket sock = *ps;
|
t_socket sock = *ps;
|
||||||
|
/* translate luasocket special values to C */
|
||||||
|
if (strcmp(address, "*") == 0) address = NULL;
|
||||||
|
if (!serv) serv = "0";
|
||||||
/* try resolving */
|
/* try resolving */
|
||||||
err = socket_gaistrerror(getaddrinfo(address, serv, bindhints, &resolved));
|
err = socket_gaistrerror(getaddrinfo(address, serv, bindhints, &resolved));
|
||||||
if (err) {
|
if (err) {
|
||||||
@ -485,7 +506,7 @@ const char *inet_trybind(p_socket ps, const char *address, const char *serv,
|
|||||||
* Some systems do not provide this so that we provide our own. It's not
|
* Some systems do not provide this so that we provide our own. It's not
|
||||||
* marvelously fast, but it works just fine.
|
* marvelously fast, but it works just fine.
|
||||||
\*-------------------------------------------------------------------------*/
|
\*-------------------------------------------------------------------------*/
|
||||||
#ifdef INET_ATON
|
#ifdef LUASOCKET_INET_ATON
|
||||||
int inet_aton(const char *cp, struct in_addr *inp)
|
int inet_aton(const char *cp, struct in_addr *inp)
|
||||||
{
|
{
|
||||||
unsigned int a = 0, b = 0, c = 0, d = 0;
|
unsigned int a = 0, b = 0, c = 0, d = 0;
|
||||||
@ -507,4 +528,49 @@ int inet_aton(const char *cp, struct in_addr *inp)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*-------------------------------------------------------------------------*\
|
||||||
|
* inet_ntop/inet_pton for MinGW from
|
||||||
|
* http://mingw-users.1079350.n2.nabble.com/IPv6-getaddrinfo-amp-inet-ntop-td5891996.html
|
||||||
|
\*-------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#ifdef LUASOCKET_INET_PTON
|
||||||
|
const char *inet_ntop(int af, const void *src, char *dst, socklen_t cnt)
|
||||||
|
{
|
||||||
|
if (af == AF_INET) {
|
||||||
|
struct sockaddr_in in;
|
||||||
|
memset(&in, 0, sizeof(in));
|
||||||
|
in.sin_family = AF_INET;
|
||||||
|
memcpy(&in.sin_addr, src, sizeof(struct in_addr));
|
||||||
|
getnameinfo((struct sockaddr *)&in, sizeof(struct sockaddr_in),
|
||||||
|
dst, cnt, NULL, 0, NI_NUMERICHOST);
|
||||||
|
return dst;
|
||||||
|
} else if (af == AF_INET6) {
|
||||||
|
struct sockaddr_in6 in;
|
||||||
|
memset(&in, 0, sizeof(in));
|
||||||
|
in.sin6_family = AF_INET6;
|
||||||
|
memcpy(&in.sin6_addr, src, sizeof(struct in_addr6));
|
||||||
|
getnameinfo((struct sockaddr *)&in, sizeof(struct sockaddr_in6),
|
||||||
|
dst, cnt, NULL, 0, NI_NUMERICHOST);
|
||||||
|
return dst;
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
int inet_pton(int af, const char *src, void *dst)
|
||||||
|
{
|
||||||
|
struct addrinfo hints, *res, *ressave;
|
||||||
|
memset(&hints, 0, sizeof(struct addrinfo));
|
||||||
|
hints.ai_family = af;
|
||||||
|
if (getaddrinfo(src, NULL, &hints, &res) != 0) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
ressave = res;
|
||||||
|
while (res) {
|
||||||
|
memcpy(dst, res->ai_addr, res->ai_addrlen);
|
||||||
|
res = res->ai_next;
|
||||||
|
}
|
||||||
|
freeaddrinfo(ressave);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
11
src/inet.h
11
src/inet.h
@ -19,13 +19,13 @@
|
|||||||
#include "timeout.h"
|
#include "timeout.h"
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#define INET_ATON
|
#define LUASOCKET_INET_ATON
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int inet_open(lua_State *L);
|
int inet_open(lua_State *L);
|
||||||
|
|
||||||
const char *inet_trycreate(p_socket ps, int family, int type);
|
const char *inet_trycreate(p_socket ps, int family, int type);
|
||||||
const char *inet_tryconnect(p_socket ps, const char *address,
|
const char *inet_tryconnect(p_socket ps, int *family, const char *address,
|
||||||
const char *serv, p_timeout tm, struct addrinfo *connecthints);
|
const char *serv, p_timeout tm, struct addrinfo *connecthints);
|
||||||
const char *inet_trybind(p_socket ps, const char *address, const char *serv,
|
const char *inet_trybind(p_socket ps, const char *address, const char *serv,
|
||||||
struct addrinfo *bindhints);
|
struct addrinfo *bindhints);
|
||||||
@ -38,8 +38,13 @@ int inet_meth_getsockname(lua_State *L, p_socket ps, int family);
|
|||||||
int inet_optfamily(lua_State* L, int narg, const char* def);
|
int inet_optfamily(lua_State* L, int narg, const char* def);
|
||||||
int inet_optsocktype(lua_State* L, int narg, const char* def);
|
int inet_optsocktype(lua_State* L, int narg, const char* def);
|
||||||
|
|
||||||
#ifdef INET_ATON
|
#ifdef LUASOCKET_INET_ATON
|
||||||
int inet_aton(const char *cp, struct in_addr *inp);
|
int inet_aton(const char *cp, struct in_addr *inp);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef LUASOCKET_INET_PTON
|
||||||
|
const char *inet_ntop(int af, const void *src, char *dst, socklen_t cnt);
|
||||||
|
int inet_pton(int af, const char *src, void *dst);
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* INET_H */
|
#endif /* INET_H */
|
||||||
|
139
src/makefile
139
src/makefile
@ -12,7 +12,7 @@
|
|||||||
#
|
#
|
||||||
# make PLAT=linux DEBUG=DEBUG LUAV=5.2 prefix=/sw
|
# make PLAT=linux DEBUG=DEBUG LUAV=5.2 prefix=/sw
|
||||||
|
|
||||||
# PLAT: linux macosx win32
|
# PLAT: linux macosx win32 mingw
|
||||||
# platform to build for
|
# platform to build for
|
||||||
PLAT?=linux
|
PLAT?=linux
|
||||||
|
|
||||||
@ -33,6 +33,9 @@ LUAINC_macosx?=$(LUAINC_macosx_base)/lua/$(LUAV)
|
|||||||
# FIXME default should this default to fink or to macports?
|
# FIXME default should this default to fink or to macports?
|
||||||
# What happens when more than one Lua version is installed?
|
# What happens when more than one Lua version is installed?
|
||||||
LUAPREFIX_macosx?=/opt/local
|
LUAPREFIX_macosx?=/opt/local
|
||||||
|
CDIR_macosx?=lib/lua/$(LUAV)
|
||||||
|
LDIR_macosx?=share/lua/$(LUAV)
|
||||||
|
|
||||||
|
|
||||||
# LUAINC_linux:
|
# LUAINC_linux:
|
||||||
# /usr/include/lua$(LUAV)
|
# /usr/include/lua$(LUAV)
|
||||||
@ -40,21 +43,41 @@ LUAPREFIX_macosx?=/opt/local
|
|||||||
# /usr/local/include/lua$(LUAV)
|
# /usr/local/include/lua$(LUAV)
|
||||||
# where lua headers are found for linux builds
|
# where lua headers are found for linux builds
|
||||||
LUAINC_linux_base?=/usr/include
|
LUAINC_linux_base?=/usr/include
|
||||||
LUAINC_linux?=$(LUAINC_linux_base)/lua$(LUAV)
|
LUAINC_linux?=$(LUAINC_linux_base)/lua/$(LUAV)
|
||||||
LUAPREFIX_linux?=/usr/local
|
LUAPREFIX_linux?=/usr/local
|
||||||
|
CDIR_linux?=lib/lua/$(LUAV)
|
||||||
|
LDIR_linux?=share/lua/$(LUAV)
|
||||||
|
|
||||||
|
# where lua headers are found for mingw builds
|
||||||
|
# LUAINC_mingw:
|
||||||
|
# /opt/local/include
|
||||||
|
LUAINC_mingw_base?=/usr/include
|
||||||
|
LUAINC_mingw?=$(LUAINC_mingw_base)/lua/$(LUAV)
|
||||||
|
LUALIB_mingw_base?=/usr/bin
|
||||||
|
LUALIB_mingw?=$(LUALIB_mingw_base)/lua/$(LUAV)/lua$(subst .,,$(LUAV)).dll
|
||||||
|
LUAPREFIX_mingw?=/usr
|
||||||
|
CDIR_mingw?=lua/$(LUAV)
|
||||||
|
LDIR_mingw?=lua/$(LUAV)/lua
|
||||||
|
|
||||||
|
|
||||||
# LUAINC_win32:
|
# LUAINC_win32:
|
||||||
# LUALIB_win32:
|
# LUALIB_win32:
|
||||||
# where lua headers and libraries are found for win32 builds
|
# where lua headers and libraries are found for win32 builds
|
||||||
LUAINC_win32?="../../lua-5.1.3/src"
|
LUAINC_win32_base?=
|
||||||
LUALIB_win32?="../../lua-5.1.3"
|
LUAINC_win32?=$(LUAINC_win32_base)/lua/$(LUAV)
|
||||||
|
PLATFORM_win32?=Release
|
||||||
LUAPREFIX_win32?=
|
LUAPREFIX_win32?=
|
||||||
# FIXME default should be where lua-for-windows puts lua
|
CDIR_win32?=lua/$(LUAV)/$(PLATFORM_win32)
|
||||||
|
LDIR_win32?=lua/$(LUAV)/$(PLATFORM_win32)/lua
|
||||||
|
LUALIB_win32?=$(LUAPREFIX_win32)/lua/$(LUAV)/$(PLATFORM_win32)
|
||||||
|
|
||||||
# prefix: /usr/local /usr /opt/local /sw
|
# prefix: /usr/local /usr /opt/local /sw
|
||||||
# the top of the default install tree
|
# the top of the default install tree
|
||||||
prefix?=$(LUAPREFIX_$(PLAT))
|
prefix?=$(LUAPREFIX_$(PLAT))
|
||||||
|
|
||||||
|
CDIR?=$(CDIR_$(PLAT))
|
||||||
|
LDIR?=$(LDIR_$(PLAT))
|
||||||
|
|
||||||
# DESTDIR: (no default)
|
# DESTDIR: (no default)
|
||||||
# used by package managers to install into a temporary destination
|
# used by package managers to install into a temporary destination
|
||||||
DESTDIR=
|
DESTDIR=
|
||||||
@ -63,13 +86,6 @@ DESTDIR=
|
|||||||
# Definitions below can be overridden on the make command line, but
|
# Definitions below can be overridden on the make command line, but
|
||||||
# shouldn't have to be.
|
# shouldn't have to be.
|
||||||
|
|
||||||
print:
|
|
||||||
@echo PLAT=$(PLAT)
|
|
||||||
@echo LUAV=$(LUAV)
|
|
||||||
@echo DEBUG=$(DEBUG)
|
|
||||||
@echo prefix=$(prefix)
|
|
||||||
@echo LUAINC_$(PLAT)=$(LUAINC_$(PLAT))
|
|
||||||
@echo LUALIB_$(PLAT)=$(LUALIB_$(PLAT))
|
|
||||||
|
|
||||||
#------
|
#------
|
||||||
# Install directories
|
# Install directories
|
||||||
@ -80,18 +96,28 @@ INSTALL_DATA=install -m644
|
|||||||
INSTALL_EXEC=install
|
INSTALL_EXEC=install
|
||||||
INSTALL_TOP=$(DESTDIR)$(prefix)
|
INSTALL_TOP=$(DESTDIR)$(prefix)
|
||||||
|
|
||||||
INSTALL_TOP_SHARE=$(INSTALL_TOP)/share/lua/$(LUAV)
|
INSTALL_TOP_LDIR=$(INSTALL_TOP)/$(LDIR)
|
||||||
INSTALL_TOP_LIB=$(INSTALL_TOP)/lib/lua/$(LUAV)
|
INSTALL_TOP_CDIR=$(INSTALL_TOP)/$(CDIR)
|
||||||
|
|
||||||
INSTALL_SOCKET_SHARE=$(INSTALL_TOP_SHARE)/socket
|
INSTALL_SOCKET_LDIR=$(INSTALL_TOP_LDIR)/socket
|
||||||
INSTALL_SOCKET_LIB=$(INSTALL_TOP_LIB)/socket
|
INSTALL_SOCKET_CDIR=$(INSTALL_TOP_CDIR)/socket
|
||||||
INSTALL_MIME_SHARE=$(INSTALL_TOP_SHARE)/mime
|
INSTALL_MIME_LDIR=$(INSTALL_TOP_LDIR)/mime
|
||||||
INSTALL_MIME_LIB=$(INSTALL_TOP_LIB)/mime
|
INSTALL_MIME_CDIR=$(INSTALL_TOP_CDIR)/mime
|
||||||
|
|
||||||
|
print:
|
||||||
|
@echo PLAT=$(PLAT)
|
||||||
|
@echo LUAV=$(LUAV)
|
||||||
|
@echo DEBUG=$(DEBUG)
|
||||||
|
@echo prefix=$(prefix)
|
||||||
|
@echo LUAINC_$(PLAT)=$(LUAINC_$(PLAT))
|
||||||
|
@echo LUALIB_$(PLAT)=$(LUALIB_$(PLAT))
|
||||||
|
@echo INSTALL_TOP_CDIR=$(INSTALL_TOP_CDIR)
|
||||||
|
@echo INSTALL_TOP_LDIR=$(INSTALL_TOP_LDIR)
|
||||||
|
|
||||||
#------
|
#------
|
||||||
# Supported platforms
|
# Supported platforms
|
||||||
#
|
#
|
||||||
PLATS= macosx linux win32
|
PLATS= macosx linux win32 mingw
|
||||||
|
|
||||||
#------
|
#------
|
||||||
# Compiler and linker settings
|
# Compiler and linker settings
|
||||||
@ -117,37 +143,53 @@ CC_linux=gcc
|
|||||||
DEF_linux=-DLUASOCKET_$(DEBUG) -DLUA_COMPAT_MODULE \
|
DEF_linux=-DLUASOCKET_$(DEBUG) -DLUA_COMPAT_MODULE \
|
||||||
-DLUASOCKET_API='__attribute__((visibility("default")))' \
|
-DLUASOCKET_API='__attribute__((visibility("default")))' \
|
||||||
-DMIME_API='__attribute__((visibility("default")))'
|
-DMIME_API='__attribute__((visibility("default")))'
|
||||||
CFLAGS_linux= -I$(LUAINC) $(DEF) -pedantic -Wall -Wshadow -Wextra -Wimplicit -O2 -ggdb3 -fpic \
|
CFLAGS_linux= -I$(LUAINC) $(DEF) -pedantic -Wall -Wshadow -Wextra \
|
||||||
-fvisibility=hidden
|
-Wimplicit -O2 -ggdb3 -fpic -fvisibility=hidden
|
||||||
LDFLAGS_linux=-O -shared -fpic -o
|
LDFLAGS_linux=-O -shared -fpic -o
|
||||||
LD_linux=gcc
|
LD_linux=gcc
|
||||||
SOCKET_linux=usocket.o
|
SOCKET_linux=usocket.o
|
||||||
|
|
||||||
|
#------
|
||||||
|
# Compiler and linker settings
|
||||||
|
# for MingW
|
||||||
|
SO_mingw=dll
|
||||||
|
O_mingw=o
|
||||||
|
CC_mingw=gcc
|
||||||
|
DEF_mingw= -DLUASOCKET_INET_PTON -DLUASOCKET_$(DEBUG) -DLUA_COMPAT_MODULE \
|
||||||
|
-DWINVER=0x0501 -DLUASOCKET_API='__declspec(dllexport)' \
|
||||||
|
-DMIME_API='__declspec(dllexport)'
|
||||||
|
CFLAGS_mingw= -I$(LUAINC) $(DEF) -pedantic -Wall -O2 -fno-common \
|
||||||
|
-fvisibility=hidden
|
||||||
|
LDFLAGS_mingw= $(LUALIB) -shared -Wl,-s -lwsock32 -lws2_32 -o
|
||||||
|
LD_mingw=gcc
|
||||||
|
SOCKET_mingw=wsocket.o
|
||||||
|
|
||||||
|
|
||||||
#------
|
#------
|
||||||
# Compiler and linker settings
|
# Compiler and linker settings
|
||||||
# for Win32
|
# for Win32
|
||||||
SO_win32=dll
|
SO_win32=dll
|
||||||
O_win32=obj
|
O_win32=obj
|
||||||
CC_win32=cl
|
CC_win32=cl
|
||||||
DEF_win32= /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" \
|
DEF_win32= //D "WIN32" //D "NDEBUG" //D "_WINDOWS" //D "_USRDLL" \
|
||||||
/D "LUASOCKET_API=__declspec(dllexport)" /D "_CRT_SECURE_NO_WARNINGS" \
|
//D "LUASOCKET_API=__declspec(dllexport)" //D "_CRT_SECURE_NO_WARNINGS" \
|
||||||
/D "_WINDLL" /D "LUA_COMPAT_MODULE" /D "MIME_API=__declspec(dllexport)" \
|
//D "_WINDLL" //D "LUA_COMPAT_MODULE" \
|
||||||
/D "LUASOCKET_$(DEBUG)"
|
//D "MIME_API=__declspec(dllexport)" \
|
||||||
CFLAGS_win32=/I "$(LUAINC)" $(DEF) /O2 /Ot /MD /W3 /nologo
|
//D "LUASOCKET_$(DEBUG)"
|
||||||
LDFLAGS_win32= /nologo /link /NOLOGO /DLL /INCREMENTAL:NO \
|
CFLAGS_win32=//I "$(LUAINC)" $(DEF) //O2 //Ot //MD //W3 //nologo
|
||||||
/LIBPATH:"$(LUALIB)" \
|
LDFLAGS_win32= //nologo //link //NOLOGO //DLL //INCREMENTAL:NO \
|
||||||
/MANIFEST \
|
//MANIFEST //MANIFESTFILE:"intermediate.manifest" \
|
||||||
/MANIFESTFILE:"intermediate.manifest" \
|
//MANIFESTUAC:"level='asInvoker' uiAccess='false'" \
|
||||||
/MANIFESTUAC:"level='asInvoker' uiAccess='false'" \
|
//SUBSYSTEM:WINDOWS //OPT:REF //OPT:ICF //DYNAMICBASE:NO \
|
||||||
/SUBSYSTEM:WINDOWS /OPT:REF /OPT:ICF /DYNAMICBASE:NO \
|
//MACHINE:X86 /LIBPATH:"$(shell cmd //c echo $(LUALIB))" lua$(subst .,,$(LUAV)).lib \
|
||||||
/MACHINE:X86 ws2_32.lib lua$(LUAV).lib /OUT:
|
wsock32.lib ws2_32.lib //OUT:
|
||||||
LD_win32=cl
|
LD_win32=cl
|
||||||
SOCKET_win32=wsocket.obj
|
SOCKET_win32=wsocket.obj
|
||||||
|
|
||||||
.SUFFIXES: .obj
|
.SUFFIXES: .obj
|
||||||
|
|
||||||
.c.obj:
|
.c.obj:
|
||||||
$(CC) $(CFLAGS) /Fo"$@" /c $<
|
$(CC) $(CFLAGS) //Fo"$@" //c $<
|
||||||
|
|
||||||
#------
|
#------
|
||||||
# Output file names
|
# Output file names
|
||||||
@ -223,7 +265,7 @@ SERIAL_OBJS:=\
|
|||||||
#------
|
#------
|
||||||
# Files to install
|
# Files to install
|
||||||
#
|
#
|
||||||
TO_SOCKET_SHARE= \
|
TO_SOCKET_LDIR= \
|
||||||
http.lua \
|
http.lua \
|
||||||
url.lua \
|
url.lua \
|
||||||
tp.lua \
|
tp.lua \
|
||||||
@ -231,7 +273,7 @@ TO_SOCKET_SHARE= \
|
|||||||
headers.lua \
|
headers.lua \
|
||||||
smtp.lua
|
smtp.lua
|
||||||
|
|
||||||
TO_TOP_SHARE= \
|
TO_TOP_LDIR= \
|
||||||
ltn12.lua \
|
ltn12.lua \
|
||||||
socket.lua \
|
socket.lua \
|
||||||
mime.lua
|
mime.lua
|
||||||
@ -250,6 +292,9 @@ win32:
|
|||||||
linux:
|
linux:
|
||||||
$(MAKE) all-unix PLAT=linux
|
$(MAKE) all-unix PLAT=linux
|
||||||
|
|
||||||
|
mingw:
|
||||||
|
$(MAKE) all PLAT=mingw
|
||||||
|
|
||||||
none:
|
none:
|
||||||
@echo "Please run"
|
@echo "Please run"
|
||||||
@echo " make PLATFORM"
|
@echo " make PLATFORM"
|
||||||
@ -273,21 +318,21 @@ $(SERIAL_SO): $(SERIAL_OBJS)
|
|||||||
$(LD) $(SERIAL_OBJS) $(LDFLAGS)$@
|
$(LD) $(SERIAL_OBJS) $(LDFLAGS)$@
|
||||||
|
|
||||||
install:
|
install:
|
||||||
$(INSTALL_DIR) $(INSTALL_TOP_SHARE)
|
$(INSTALL_DIR) $(INSTALL_TOP_LDIR)
|
||||||
$(INSTALL_DATA) $(TO_TOP_SHARE) $(INSTALL_TOP_SHARE)
|
$(INSTALL_DATA) $(TO_TOP_LDIR) $(INSTALL_TOP_LDIR)
|
||||||
$(INSTALL_DIR) $(INSTALL_SOCKET_SHARE)
|
$(INSTALL_DIR) $(INSTALL_SOCKET_LDIR)
|
||||||
$(INSTALL_DATA) $(TO_SOCKET_SHARE) $(INSTALL_SOCKET_SHARE)
|
$(INSTALL_DATA) $(TO_SOCKET_LDIR) $(INSTALL_SOCKET_LDIR)
|
||||||
$(INSTALL_DIR) $(INSTALL_SOCKET_LIB)
|
$(INSTALL_DIR) $(INSTALL_SOCKET_CDIR)
|
||||||
$(INSTALL_EXEC) $(SOCKET_SO) $(INSTALL_SOCKET_LIB)/core.$(SO)
|
$(INSTALL_EXEC) $(SOCKET_SO) $(INSTALL_SOCKET_CDIR)/core.$(SO)
|
||||||
$(INSTALL_DIR) $(INSTALL_MIME_LIB)
|
$(INSTALL_DIR) $(INSTALL_MIME_CDIR)
|
||||||
$(INSTALL_EXEC) $(MIME_SO) $(INSTALL_MIME_LIB)/core.$(SO)
|
$(INSTALL_EXEC) $(MIME_SO) $(INSTALL_MIME_CDIR)/core.$(SO)
|
||||||
|
|
||||||
install-unix: install
|
install-unix: install
|
||||||
$(INSTALL_EXEC) $(UNIX_SO) $(INSTALL_SOCKET_LIB)/$(UNIX_SO)
|
$(INSTALL_EXEC) $(UNIX_SO) $(INSTALL_SOCKET_CDIR)/$(UNIX_SO)
|
||||||
$(INSTALL_EXEC) $(SERIAL_SO) $(INSTALL_SOCKET_LIB)/$(SERIAL_SO)
|
$(INSTALL_EXEC) $(SERIAL_SO) $(INSTALL_SOCKET_CDIR)/$(SERIAL_SO)
|
||||||
|
|
||||||
local:
|
local:
|
||||||
$(MAKE) install INSTALL_TOP_LIB=.. INSTALL_TOP_SHARE=..
|
$(MAKE) install INSTALL_TOP_CDIR=.. INSTALL_TOP_LDIR=..
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(SOCKET_SO) $(SOCKET_OBJS) $(SERIAL_OBJS)
|
rm -f $(SOCKET_SO) $(SOCKET_OBJS) $(SERIAL_OBJS)
|
||||||
|
19
src/tcp.c
19
src/tcp.c
@ -222,7 +222,6 @@ static int meth_bind(lua_State *L)
|
|||||||
bindhints.ai_socktype = SOCK_STREAM;
|
bindhints.ai_socktype = SOCK_STREAM;
|
||||||
bindhints.ai_family = tcp->family;
|
bindhints.ai_family = tcp->family;
|
||||||
bindhints.ai_flags = AI_PASSIVE;
|
bindhints.ai_flags = AI_PASSIVE;
|
||||||
address = strcmp(address, "*")? address: NULL;
|
|
||||||
err = inet_trybind(&tcp->sock, address, port, &bindhints);
|
err = inet_trybind(&tcp->sock, address, port, &bindhints);
|
||||||
if (err) {
|
if (err) {
|
||||||
lua_pushnil(L);
|
lua_pushnil(L);
|
||||||
@ -248,7 +247,8 @@ static int meth_connect(lua_State *L)
|
|||||||
/* make sure we try to connect only to the same family */
|
/* make sure we try to connect only to the same family */
|
||||||
connecthints.ai_family = tcp->family;
|
connecthints.ai_family = tcp->family;
|
||||||
timeout_markstart(&tcp->tm);
|
timeout_markstart(&tcp->tm);
|
||||||
err = inet_tryconnect(&tcp->sock, address, port, &tcp->tm, &connecthints);
|
err = inet_tryconnect(&tcp->sock, &tcp->family, address, port,
|
||||||
|
&tcp->tm, &connecthints);
|
||||||
/* have to set the class even if it failed due to non-blocking connects */
|
/* have to set the class even if it failed due to non-blocking connects */
|
||||||
auxiliar_setclass(L, "tcp{client}", 1);
|
auxiliar_setclass(L, "tcp{client}", 1);
|
||||||
if (err) {
|
if (err) {
|
||||||
@ -388,6 +388,7 @@ static int global_create6(lua_State *L) {
|
|||||||
return tcp_create(L, AF_INET6);
|
return tcp_create(L, AF_INET6);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
static const char *tryconnect6(const char *remoteaddr, const char *remoteserv,
|
static const char *tryconnect6(const char *remoteaddr, const char *remoteserv,
|
||||||
struct addrinfo *connecthints, p_tcp tcp) {
|
struct addrinfo *connecthints, p_tcp tcp) {
|
||||||
struct addrinfo *iterator = NULL, *resolved = NULL;
|
struct addrinfo *iterator = NULL, *resolved = NULL;
|
||||||
@ -402,8 +403,13 @@ static const char *tryconnect6(const char *remoteaddr, const char *remoteserv,
|
|||||||
/* iterate over all returned addresses trying to connect */
|
/* iterate over all returned addresses trying to connect */
|
||||||
for (iterator = resolved; iterator; iterator = iterator->ai_next) {
|
for (iterator = resolved; iterator; iterator = iterator->ai_next) {
|
||||||
p_timeout tm = timeout_markstart(&tcp->tm);
|
p_timeout tm = timeout_markstart(&tcp->tm);
|
||||||
/* create new socket if one wasn't created by the bind stage */
|
/* create new socket if necessary. if there was no
|
||||||
if (tcp->sock == SOCKET_INVALID) {
|
* bind, we need to create one for every new family
|
||||||
|
* that shows up while iterating. if there was a
|
||||||
|
* bind, all families will be the same and we will
|
||||||
|
* not enter this branch. */
|
||||||
|
if (tcp->family != iterator->ai_family) {
|
||||||
|
socket_destroy(&tcp->sock);
|
||||||
err = socket_strerror(socket_create(&tcp->sock,
|
err = socket_strerror(socket_create(&tcp->sock,
|
||||||
iterator->ai_family, iterator->ai_socktype,
|
iterator->ai_family, iterator->ai_socktype,
|
||||||
iterator->ai_protocol));
|
iterator->ai_protocol));
|
||||||
@ -427,6 +433,7 @@ static const char *tryconnect6(const char *remoteaddr, const char *remoteserv,
|
|||||||
/* here, if err is set, we failed */
|
/* here, if err is set, we failed */
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static int global_connect(lua_State *L) {
|
static int global_connect(lua_State *L) {
|
||||||
const char *remoteaddr = luaL_checkstring(L, 1);
|
const char *remoteaddr = luaL_checkstring(L, 1);
|
||||||
@ -444,6 +451,7 @@ static int global_connect(lua_State *L) {
|
|||||||
timeout_init(&tcp->tm, -1, -1);
|
timeout_init(&tcp->tm, -1, -1);
|
||||||
buffer_init(&tcp->buf, &tcp->io, &tcp->tm);
|
buffer_init(&tcp->buf, &tcp->io, &tcp->tm);
|
||||||
tcp->sock = SOCKET_INVALID;
|
tcp->sock = SOCKET_INVALID;
|
||||||
|
tcp->family = PF_UNSPEC;
|
||||||
/* allow user to pick local address and port */
|
/* allow user to pick local address and port */
|
||||||
memset(&bindhints, 0, sizeof(bindhints));
|
memset(&bindhints, 0, sizeof(bindhints));
|
||||||
bindhints.ai_socktype = SOCK_STREAM;
|
bindhints.ai_socktype = SOCK_STREAM;
|
||||||
@ -463,7 +471,8 @@ static int global_connect(lua_State *L) {
|
|||||||
connecthints.ai_socktype = SOCK_STREAM;
|
connecthints.ai_socktype = SOCK_STREAM;
|
||||||
/* make sure we try to connect only to the same family */
|
/* make sure we try to connect only to the same family */
|
||||||
connecthints.ai_family = bindhints.ai_family;
|
connecthints.ai_family = bindhints.ai_family;
|
||||||
err = tryconnect6(remoteaddr, remoteserv, &connecthints, tcp);
|
err = inet_tryconnect(&tcp->sock, &tcp->family, remoteaddr, remoteserv,
|
||||||
|
&tcp->tm, &connecthints);
|
||||||
if (err) {
|
if (err) {
|
||||||
socket_destroy(&tcp->sock);
|
socket_destroy(&tcp->sock);
|
||||||
lua_pushnil(L);
|
lua_pushnil(L);
|
||||||
|
@ -376,7 +376,8 @@ static int meth_setpeername(lua_State *L) {
|
|||||||
/* make sure we try to connect only to the same family */
|
/* make sure we try to connect only to the same family */
|
||||||
connecthints.ai_family = udp->family;
|
connecthints.ai_family = udp->family;
|
||||||
if (connecting) {
|
if (connecting) {
|
||||||
err = inet_tryconnect(&udp->sock, address, port, tm, &connecthints);
|
err = inet_tryconnect(&udp->sock, &udp->family, address,
|
||||||
|
port, tm, &connecthints);
|
||||||
if (err) {
|
if (err) {
|
||||||
lua_pushnil(L);
|
lua_pushnil(L);
|
||||||
lua_pushstring(L, err);
|
lua_pushstring(L, err);
|
||||||
|
@ -400,13 +400,17 @@ const char *socket_gaistrerror(int err) {
|
|||||||
case EAI_MEMORY: return "memory allocation failure";
|
case EAI_MEMORY: return "memory allocation failure";
|
||||||
case EAI_NONAME:
|
case EAI_NONAME:
|
||||||
return "host or service not provided, or not known";
|
return "host or service not provided, or not known";
|
||||||
// case EAI_OVERFLOW: return "argument buffer overflow";
|
#ifdef EAI_OVERFLOW
|
||||||
|
case EAI_OVERFLOW: return "argument buffer overflow";
|
||||||
|
#endif
|
||||||
#ifdef EAI_PROTOCOL
|
#ifdef EAI_PROTOCOL
|
||||||
case EAI_PROTOCOL: return "resolved protocol is unknown";
|
case EAI_PROTOCOL: return "resolved protocol is unknown";
|
||||||
#endif
|
#endif
|
||||||
case EAI_SERVICE: return "service not supported for socket type";
|
case EAI_SERVICE: return "service not supported for socket type";
|
||||||
case EAI_SOCKTYPE: return "ai_socktype not supported";
|
case EAI_SOCKTYPE: return "ai_socktype not supported";
|
||||||
// case EAI_SYSTEM: return strerror(errno);
|
#ifdef EAI_SYSTEM
|
||||||
|
case EAI_SYSTEM: return strerror(errno);
|
||||||
|
#endif
|
||||||
default: return gai_strerror(err);
|
default: return gai_strerror(err);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -16,6 +16,10 @@ typedef SOCKADDR_STORAGE t_sockaddr_storage;
|
|||||||
typedef SOCKET t_socket;
|
typedef SOCKET t_socket;
|
||||||
typedef t_socket *p_socket;
|
typedef t_socket *p_socket;
|
||||||
|
|
||||||
|
#ifndef IPV6_V6ONLY
|
||||||
|
#define IPV6_V6ONLY 27
|
||||||
|
#endif
|
||||||
|
|
||||||
#define SOCKET_INVALID (INVALID_SOCKET)
|
#define SOCKET_INVALID (INVALID_SOCKET)
|
||||||
|
|
||||||
#ifndef SO_REUSEPORT
|
#ifndef SO_REUSEPORT
|
||||||
|
6
test/test_bind.lua
Normal file
6
test/test_bind.lua
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
local socket = require "socket"
|
||||||
|
local u = socket.udp() assert(u:setsockname("*", 5088)) u:close()
|
||||||
|
local u = socket.udp() assert(u:setsockname("*", 0)) u:close()
|
||||||
|
local t = socket.tcp() assert(t:bind("*", 5088)) t:close()
|
||||||
|
local t = socket.tcp() assert(t:bind("*", 0)) t:close()
|
||||||
|
print("done!")
|
15
test/test_getaddrinfo.lua
Normal file
15
test/test_getaddrinfo.lua
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
local socket = require "socket"
|
||||||
|
local addresses = assert(socket.dns.getaddrinfo("localhost"))
|
||||||
|
assert(type(addresses) == 'table')
|
||||||
|
|
||||||
|
local ipv4mask = "^%d%d?%d?%.%d%d?%d?%.%d%d?%d?%.%d%d?%d?$"
|
||||||
|
|
||||||
|
for i, alt in ipairs(addresses) do
|
||||||
|
if alt.family == 'inet' then
|
||||||
|
assert(type(alt.addr) == 'string')
|
||||||
|
assert(alt.addr:find(ipv4mask))
|
||||||
|
assert(alt.addr == '127.0.0.1')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
print("done!")
|
@ -642,7 +642,10 @@ local tcp_methods = {
|
|||||||
"shutdown",
|
"shutdown",
|
||||||
}
|
}
|
||||||
test_methods(socket.tcp(), tcp_methods)
|
test_methods(socket.tcp(), tcp_methods)
|
||||||
test_methods(socket.tcp6(), tcp_methods)
|
do local sock = socket.tcp6()
|
||||||
|
if sock then test_methods(socket.tcp6(), tcp_methods)
|
||||||
|
else io.stderr:write("Warning! IPv6 does not support!\n") end
|
||||||
|
end
|
||||||
|
|
||||||
local udp_methods = {
|
local udp_methods = {
|
||||||
"close",
|
"close",
|
||||||
@ -666,7 +669,10 @@ local udp_methods = {
|
|||||||
|
|
||||||
------------------------------------------------------------------------
|
------------------------------------------------------------------------
|
||||||
test_methods(socket.udp(), udp_methods)
|
test_methods(socket.udp(), udp_methods)
|
||||||
test_methods(socket.udp6(), udp_methods)
|
do local sock = socket.tcp6()
|
||||||
|
if sock then test_methods(socket.udp6(), udp_methods)
|
||||||
|
else io.stderr:write("Warning! IPv6 does not support!\n") end
|
||||||
|
end
|
||||||
|
|
||||||
test("partial receive")
|
test("partial receive")
|
||||||
test_partialrecv()
|
test_partialrecv()
|
||||||
|
12
win32.cmd
Normal file
12
win32.cmd
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
make PLAT=win32 LUAV=5.2 LUAINC_win32='c:\cygwin\home\diego\build\include' LUALIB_win32='c:\cygwin\home\diego\build\bin\release'
|
||||||
|
|
||||||
|
#!/bin/sh
|
||||||
|
for p in Release Debug x64/Release x64/Debug; do
|
||||||
|
for el in mime socket; do
|
||||||
|
for e in dll lib; do
|
||||||
|
cp $p/$el/core.$e ../bin/$p/$el/
|
||||||
|
done;
|
||||||
|
done;
|
||||||
|
cp src/ltn12.lua src/socket.lua src/mime.lua ../bin/$p/
|
||||||
|
cp src/http.lua src/url.lua src/tp.lua src/ftp.lua src/headers.lua src/smtp.lua ../bin/$p/socket/
|
||||||
|
done;
|
Loading…
Reference in New Issue
Block a user