Compare commits
16 commits
hjelmeland
...
master
Author | SHA1 | Date | |
---|---|---|---|
8b3585b6e8 | |||
|
1fad162690 | ||
|
e3ca4a767a | ||
|
93eef5015e | ||
|
23241717bf | ||
|
98be8d9fc1 | ||
|
fa69770e52 | ||
|
13f2b3c663 | ||
|
453a5207ed | ||
|
de359ea408 | ||
|
c93f9154e1 | ||
|
8a5368b659 | ||
|
22b8202d70 | ||
|
3a817a56eb | ||
|
7eaf648056 | ||
|
bef62aeb50 |
42 changed files with 693 additions and 677 deletions
28
.gitignore
vendored
28
.gitignore
vendored
|
@ -13,3 +13,31 @@ Release
|
||||||
*.suo
|
*.suo
|
||||||
x64
|
x64
|
||||||
|
|
||||||
|
## Personal
|
||||||
|
|
||||||
|
# A listing of all the files included in the project
|
||||||
|
*.files
|
||||||
|
|
||||||
|
# Include directories
|
||||||
|
*.includes
|
||||||
|
|
||||||
|
# Project configuration settings like predefined Macros
|
||||||
|
*.config
|
||||||
|
|
||||||
|
# Qt Creator settings
|
||||||
|
*.creator
|
||||||
|
|
||||||
|
# User project settings
|
||||||
|
*.creator.user*
|
||||||
|
|
||||||
|
# Qt Creator backups
|
||||||
|
*.autosave
|
||||||
|
|
||||||
|
# Flags for Clang Code Model
|
||||||
|
*.cxxflags
|
||||||
|
*.cflags
|
||||||
|
|
||||||
|
|
||||||
|
.cache/
|
||||||
|
.vscode/
|
||||||
|
.qtc_clangd/
|
||||||
|
|
49
Lua.props
49
Lua.props
|
@ -1,49 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ImportGroup Label="PropertySheets" />
|
|
||||||
<PropertyGroup Condition="'$(Platform)'=='x64'" Label="LuaPlat">
|
|
||||||
<LUAPLAT>$(Platform)/$(Configuration)</LUAPLAT>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Platform)'=='Win32'" Label="LuaPlat">
|
|
||||||
<LUAPLAT>$(Configuration)</LUAPLAT>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Label="UserMacros">
|
|
||||||
<LUAV>5.3</LUAV>
|
|
||||||
<LUAPREFIX>z:\data\build\vc14\</LUAPREFIX>
|
|
||||||
<LUALIB>$(LUAPREFIX)\lib\lua\$(LUAV)\$(LUAPLAT)</LUALIB>
|
|
||||||
<LUACDIR>$(LUAPREFIX)\bin\lua\$(LUAV)\$(LUAPLAT)</LUACDIR>
|
|
||||||
<LUALDIR>$(LUAPREFIX)\bin\lua\$(LUAV)\$(LUAPLAT)\lua</LUALDIR>
|
|
||||||
<LUAINC>$(LUAPREFIX)\include\lua\$(LUAV);$(LUAPREFIX)\include\lua$(LUAV)</LUAINC>
|
|
||||||
<LUALIBNAME>lua$(LUAV.Replace('.', '')).lib</LUALIBNAME>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<_PropertySheetDisplayName>Lua</_PropertySheetDisplayName>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup />
|
|
||||||
<ItemGroup>
|
|
||||||
<BuildMacro Include="LUAPLAT">
|
|
||||||
<Value>$(LUAPLAT)</Value>
|
|
||||||
</BuildMacro>
|
|
||||||
<BuildMacro Include="LUAPREFIX">
|
|
||||||
<Value>$(LUAPREFIX)</Value>
|
|
||||||
</BuildMacro>
|
|
||||||
<BuildMacro Include="LUAV">
|
|
||||||
<Value>$(LUAV)</Value>
|
|
||||||
</BuildMacro>
|
|
||||||
<BuildMacro Include="LUALIB">
|
|
||||||
<Value>$(LUALIB)</Value>
|
|
||||||
</BuildMacro>
|
|
||||||
<BuildMacro Include="LUAINC">
|
|
||||||
<Value>$(LUAINC)</Value>
|
|
||||||
</BuildMacro>
|
|
||||||
<BuildMacro Include="LUACDIR">
|
|
||||||
<Value>$(LUACDIR)</Value>
|
|
||||||
</BuildMacro>
|
|
||||||
<BuildMacro Include="LUALDIR">
|
|
||||||
<Value>$(LUALDIR)</Value>
|
|
||||||
</BuildMacro>
|
|
||||||
<BuildMacro Include="LUALIBNAME">
|
|
||||||
<Value>$(LUALIBNAME)</Value>
|
|
||||||
</BuildMacro>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
398
compile_commands.json
Normal file
398
compile_commands.json
Normal file
|
@ -0,0 +1,398 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
"/usr/bin/gcc",
|
||||||
|
"-I/usr/include/lua/5.4",
|
||||||
|
"-I/usr/include/lua5.4",
|
||||||
|
"-DLUASOCKET_NODEBUG",
|
||||||
|
"-Wall",
|
||||||
|
"-Wshadow",
|
||||||
|
"-Wextra",
|
||||||
|
"-Wimplicit",
|
||||||
|
"-O2",
|
||||||
|
"-ggdb3",
|
||||||
|
"-fpic",
|
||||||
|
"-c",
|
||||||
|
"-o",
|
||||||
|
"io.o",
|
||||||
|
"io.c"
|
||||||
|
],
|
||||||
|
"directory": "/home/benjamin/Project/luasocket/src",
|
||||||
|
"file": "/home/benjamin/Project/luasocket/src/io.c",
|
||||||
|
"output": "/home/benjamin/Project/luasocket/src/io.o"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
"/usr/bin/gcc",
|
||||||
|
"-I/usr/include/lua/5.4",
|
||||||
|
"-I/usr/include/lua5.4",
|
||||||
|
"-DLUASOCKET_NODEBUG",
|
||||||
|
"-Wall",
|
||||||
|
"-Wshadow",
|
||||||
|
"-Wextra",
|
||||||
|
"-Wimplicit",
|
||||||
|
"-O2",
|
||||||
|
"-ggdb3",
|
||||||
|
"-fpic",
|
||||||
|
"-c",
|
||||||
|
"-o",
|
||||||
|
"luasocket.o",
|
||||||
|
"luasocket.c"
|
||||||
|
],
|
||||||
|
"directory": "/home/benjamin/Project/luasocket/src",
|
||||||
|
"file": "/home/benjamin/Project/luasocket/src/luasocket.c",
|
||||||
|
"output": "/home/benjamin/Project/luasocket/src/luasocket.o"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
"/usr/bin/gcc",
|
||||||
|
"-I/usr/include/lua/5.4",
|
||||||
|
"-I/usr/include/lua5.4",
|
||||||
|
"-DLUASOCKET_NODEBUG",
|
||||||
|
"-Wall",
|
||||||
|
"-Wshadow",
|
||||||
|
"-Wextra",
|
||||||
|
"-Wimplicit",
|
||||||
|
"-O2",
|
||||||
|
"-ggdb3",
|
||||||
|
"-fpic",
|
||||||
|
"-c",
|
||||||
|
"-o",
|
||||||
|
"timeout.o",
|
||||||
|
"timeout.c"
|
||||||
|
],
|
||||||
|
"directory": "/home/benjamin/Project/luasocket/src",
|
||||||
|
"file": "/home/benjamin/Project/luasocket/src/timeout.c",
|
||||||
|
"output": "/home/benjamin/Project/luasocket/src/timeout.o"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
"/usr/bin/gcc",
|
||||||
|
"-I/usr/include/lua/5.4",
|
||||||
|
"-I/usr/include/lua5.4",
|
||||||
|
"-DLUASOCKET_NODEBUG",
|
||||||
|
"-Wall",
|
||||||
|
"-Wshadow",
|
||||||
|
"-Wextra",
|
||||||
|
"-Wimplicit",
|
||||||
|
"-O2",
|
||||||
|
"-ggdb3",
|
||||||
|
"-fpic",
|
||||||
|
"-c",
|
||||||
|
"-o",
|
||||||
|
"buffer.o",
|
||||||
|
"buffer.c"
|
||||||
|
],
|
||||||
|
"directory": "/home/benjamin/Project/luasocket/src",
|
||||||
|
"file": "/home/benjamin/Project/luasocket/src/buffer.c",
|
||||||
|
"output": "/home/benjamin/Project/luasocket/src/buffer.o"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
"/usr/bin/gcc",
|
||||||
|
"-I/usr/include/lua/5.4",
|
||||||
|
"-I/usr/include/lua5.4",
|
||||||
|
"-DLUASOCKET_NODEBUG",
|
||||||
|
"-Wall",
|
||||||
|
"-Wshadow",
|
||||||
|
"-Wextra",
|
||||||
|
"-Wimplicit",
|
||||||
|
"-O2",
|
||||||
|
"-ggdb3",
|
||||||
|
"-fpic",
|
||||||
|
"-c",
|
||||||
|
"-o",
|
||||||
|
"options.o",
|
||||||
|
"options.c"
|
||||||
|
],
|
||||||
|
"directory": "/home/benjamin/Project/luasocket/src",
|
||||||
|
"file": "/home/benjamin/Project/luasocket/src/options.c",
|
||||||
|
"output": "/home/benjamin/Project/luasocket/src/options.o"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
"/usr/bin/gcc",
|
||||||
|
"-I/usr/include/lua/5.4",
|
||||||
|
"-I/usr/include/lua5.4",
|
||||||
|
"-DLUASOCKET_NODEBUG",
|
||||||
|
"-Wall",
|
||||||
|
"-Wshadow",
|
||||||
|
"-Wextra",
|
||||||
|
"-Wimplicit",
|
||||||
|
"-O2",
|
||||||
|
"-ggdb3",
|
||||||
|
"-fpic",
|
||||||
|
"-c",
|
||||||
|
"-o",
|
||||||
|
"inet.o",
|
||||||
|
"inet.c"
|
||||||
|
],
|
||||||
|
"directory": "/home/benjamin/Project/luasocket/src",
|
||||||
|
"file": "/home/benjamin/Project/luasocket/src/inet.c",
|
||||||
|
"output": "/home/benjamin/Project/luasocket/src/inet.o"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
"/usr/bin/gcc",
|
||||||
|
"-I/usr/include/lua/5.4",
|
||||||
|
"-I/usr/include/lua5.4",
|
||||||
|
"-DLUASOCKET_NODEBUG",
|
||||||
|
"-Wall",
|
||||||
|
"-Wshadow",
|
||||||
|
"-Wextra",
|
||||||
|
"-Wimplicit",
|
||||||
|
"-O2",
|
||||||
|
"-ggdb3",
|
||||||
|
"-fpic",
|
||||||
|
"-c",
|
||||||
|
"-o",
|
||||||
|
"auxiliar.o",
|
||||||
|
"auxiliar.c"
|
||||||
|
],
|
||||||
|
"directory": "/home/benjamin/Project/luasocket/src",
|
||||||
|
"file": "/home/benjamin/Project/luasocket/src/auxiliar.c",
|
||||||
|
"output": "/home/benjamin/Project/luasocket/src/auxiliar.o"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
"/usr/bin/gcc",
|
||||||
|
"-I/usr/include/lua/5.4",
|
||||||
|
"-I/usr/include/lua5.4",
|
||||||
|
"-DLUASOCKET_NODEBUG",
|
||||||
|
"-Wall",
|
||||||
|
"-Wshadow",
|
||||||
|
"-Wextra",
|
||||||
|
"-Wimplicit",
|
||||||
|
"-O2",
|
||||||
|
"-ggdb3",
|
||||||
|
"-fpic",
|
||||||
|
"-c",
|
||||||
|
"-o",
|
||||||
|
"compat.o",
|
||||||
|
"compat.c"
|
||||||
|
],
|
||||||
|
"directory": "/home/benjamin/Project/luasocket/src",
|
||||||
|
"file": "/home/benjamin/Project/luasocket/src/compat.c",
|
||||||
|
"output": "/home/benjamin/Project/luasocket/src/compat.o"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
"/usr/bin/gcc",
|
||||||
|
"-I/usr/include/lua/5.4",
|
||||||
|
"-I/usr/include/lua5.4",
|
||||||
|
"-DLUASOCKET_NODEBUG",
|
||||||
|
"-Wall",
|
||||||
|
"-Wshadow",
|
||||||
|
"-Wextra",
|
||||||
|
"-Wimplicit",
|
||||||
|
"-O2",
|
||||||
|
"-ggdb3",
|
||||||
|
"-fpic",
|
||||||
|
"-c",
|
||||||
|
"-o",
|
||||||
|
"usocket.o",
|
||||||
|
"usocket.c"
|
||||||
|
],
|
||||||
|
"directory": "/home/benjamin/Project/luasocket/src",
|
||||||
|
"file": "/home/benjamin/Project/luasocket/src/usocket.c",
|
||||||
|
"output": "/home/benjamin/Project/luasocket/src/usocket.o"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
"/usr/bin/gcc",
|
||||||
|
"-I/usr/include/lua/5.4",
|
||||||
|
"-I/usr/include/lua5.4",
|
||||||
|
"-DLUASOCKET_NODEBUG",
|
||||||
|
"-Wall",
|
||||||
|
"-Wshadow",
|
||||||
|
"-Wextra",
|
||||||
|
"-Wimplicit",
|
||||||
|
"-O2",
|
||||||
|
"-ggdb3",
|
||||||
|
"-fpic",
|
||||||
|
"-c",
|
||||||
|
"-o",
|
||||||
|
"except.o",
|
||||||
|
"except.c"
|
||||||
|
],
|
||||||
|
"directory": "/home/benjamin/Project/luasocket/src",
|
||||||
|
"file": "/home/benjamin/Project/luasocket/src/except.c",
|
||||||
|
"output": "/home/benjamin/Project/luasocket/src/except.o"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
"/usr/bin/gcc",
|
||||||
|
"-I/usr/include/lua/5.4",
|
||||||
|
"-I/usr/include/lua5.4",
|
||||||
|
"-DLUASOCKET_NODEBUG",
|
||||||
|
"-Wall",
|
||||||
|
"-Wshadow",
|
||||||
|
"-Wextra",
|
||||||
|
"-Wimplicit",
|
||||||
|
"-O2",
|
||||||
|
"-ggdb3",
|
||||||
|
"-fpic",
|
||||||
|
"-c",
|
||||||
|
"-o",
|
||||||
|
"select.o",
|
||||||
|
"select.c"
|
||||||
|
],
|
||||||
|
"directory": "/home/benjamin/Project/luasocket/src",
|
||||||
|
"file": "/home/benjamin/Project/luasocket/src/select.c",
|
||||||
|
"output": "/home/benjamin/Project/luasocket/src/select.o"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
"/usr/bin/gcc",
|
||||||
|
"-I/usr/include/lua/5.4",
|
||||||
|
"-I/usr/include/lua5.4",
|
||||||
|
"-DLUASOCKET_NODEBUG",
|
||||||
|
"-Wall",
|
||||||
|
"-Wshadow",
|
||||||
|
"-Wextra",
|
||||||
|
"-Wimplicit",
|
||||||
|
"-O2",
|
||||||
|
"-ggdb3",
|
||||||
|
"-fpic",
|
||||||
|
"-c",
|
||||||
|
"-o",
|
||||||
|
"tcp.o",
|
||||||
|
"tcp.c"
|
||||||
|
],
|
||||||
|
"directory": "/home/benjamin/Project/luasocket/src",
|
||||||
|
"file": "/home/benjamin/Project/luasocket/src/tcp.c",
|
||||||
|
"output": "/home/benjamin/Project/luasocket/src/tcp.o"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
"/usr/bin/gcc",
|
||||||
|
"-I/usr/include/lua/5.4",
|
||||||
|
"-I/usr/include/lua5.4",
|
||||||
|
"-DLUASOCKET_NODEBUG",
|
||||||
|
"-Wall",
|
||||||
|
"-Wshadow",
|
||||||
|
"-Wextra",
|
||||||
|
"-Wimplicit",
|
||||||
|
"-O2",
|
||||||
|
"-ggdb3",
|
||||||
|
"-fpic",
|
||||||
|
"-c",
|
||||||
|
"-o",
|
||||||
|
"udp.o",
|
||||||
|
"udp.c"
|
||||||
|
],
|
||||||
|
"directory": "/home/benjamin/Project/luasocket/src",
|
||||||
|
"file": "/home/benjamin/Project/luasocket/src/udp.c",
|
||||||
|
"output": "/home/benjamin/Project/luasocket/src/udp.o"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
"/usr/bin/gcc",
|
||||||
|
"-I/usr/include/lua/5.4",
|
||||||
|
"-I/usr/include/lua5.4",
|
||||||
|
"-DLUASOCKET_NODEBUG",
|
||||||
|
"-Wall",
|
||||||
|
"-Wshadow",
|
||||||
|
"-Wextra",
|
||||||
|
"-Wimplicit",
|
||||||
|
"-O2",
|
||||||
|
"-ggdb3",
|
||||||
|
"-fpic",
|
||||||
|
"-c",
|
||||||
|
"-o",
|
||||||
|
"mime.o",
|
||||||
|
"mime.c"
|
||||||
|
],
|
||||||
|
"directory": "/home/benjamin/Project/luasocket/src",
|
||||||
|
"file": "/home/benjamin/Project/luasocket/src/mime.c",
|
||||||
|
"output": "/home/benjamin/Project/luasocket/src/mime.o"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
"/usr/bin/gcc",
|
||||||
|
"-I/usr/include/lua/5.4",
|
||||||
|
"-I/usr/include/lua5.4",
|
||||||
|
"-DLUASOCKET_NODEBUG",
|
||||||
|
"-Wall",
|
||||||
|
"-Wshadow",
|
||||||
|
"-Wextra",
|
||||||
|
"-Wimplicit",
|
||||||
|
"-O2",
|
||||||
|
"-ggdb3",
|
||||||
|
"-fpic",
|
||||||
|
"-c",
|
||||||
|
"-o",
|
||||||
|
"unixstream.o",
|
||||||
|
"unixstream.c"
|
||||||
|
],
|
||||||
|
"directory": "/home/benjamin/Project/luasocket/src",
|
||||||
|
"file": "/home/benjamin/Project/luasocket/src/unixstream.c",
|
||||||
|
"output": "/home/benjamin/Project/luasocket/src/unixstream.o"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
"/usr/bin/gcc",
|
||||||
|
"-I/usr/include/lua/5.4",
|
||||||
|
"-I/usr/include/lua5.4",
|
||||||
|
"-DLUASOCKET_NODEBUG",
|
||||||
|
"-Wall",
|
||||||
|
"-Wshadow",
|
||||||
|
"-Wextra",
|
||||||
|
"-Wimplicit",
|
||||||
|
"-O2",
|
||||||
|
"-ggdb3",
|
||||||
|
"-fpic",
|
||||||
|
"-c",
|
||||||
|
"-o",
|
||||||
|
"unixdgram.o",
|
||||||
|
"unixdgram.c"
|
||||||
|
],
|
||||||
|
"directory": "/home/benjamin/Project/luasocket/src",
|
||||||
|
"file": "/home/benjamin/Project/luasocket/src/unixdgram.c",
|
||||||
|
"output": "/home/benjamin/Project/luasocket/src/unixdgram.o"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
"/usr/bin/gcc",
|
||||||
|
"-I/usr/include/lua/5.4",
|
||||||
|
"-I/usr/include/lua5.4",
|
||||||
|
"-DLUASOCKET_NODEBUG",
|
||||||
|
"-Wall",
|
||||||
|
"-Wshadow",
|
||||||
|
"-Wextra",
|
||||||
|
"-Wimplicit",
|
||||||
|
"-O2",
|
||||||
|
"-ggdb3",
|
||||||
|
"-fpic",
|
||||||
|
"-c",
|
||||||
|
"-o",
|
||||||
|
"unix.o",
|
||||||
|
"unix.c"
|
||||||
|
],
|
||||||
|
"directory": "/home/benjamin/Project/luasocket/src",
|
||||||
|
"file": "/home/benjamin/Project/luasocket/src/unix.c",
|
||||||
|
"output": "/home/benjamin/Project/luasocket/src/unix.o"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
"/usr/bin/gcc",
|
||||||
|
"-I/usr/include/lua/5.4",
|
||||||
|
"-I/usr/include/lua5.4",
|
||||||
|
"-DLUASOCKET_NODEBUG",
|
||||||
|
"-Wall",
|
||||||
|
"-Wshadow",
|
||||||
|
"-Wextra",
|
||||||
|
"-Wimplicit",
|
||||||
|
"-O2",
|
||||||
|
"-ggdb3",
|
||||||
|
"-fpic",
|
||||||
|
"-c",
|
||||||
|
"-o",
|
||||||
|
"serial.o",
|
||||||
|
"serial.c"
|
||||||
|
],
|
||||||
|
"directory": "/home/benjamin/Project/luasocket/src",
|
||||||
|
"file": "/home/benjamin/Project/luasocket/src/serial.c",
|
||||||
|
"output": "/home/benjamin/Project/luasocket/src/serial.o"
|
||||||
|
}
|
||||||
|
]
|
1
compile_flags.txt
Normal file
1
compile_flags.txt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
-I/usr/include/lua5.4
|
|
@ -55,7 +55,7 @@ protocol. For that, check the implementation.
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
To really benefit from this module, a good understanding of
|
To really benefit from this module, a good understanding of
|
||||||
<a href="http://lua-users.org/wiki/FiltersSourcesAndSinks">
|
<a href="https://github.com/lunarmodules/luasocket/blob/master/ltn012.md">
|
||||||
LTN012, Filters sources and sinks</a> is necessary.
|
LTN012, Filters sources and sinks</a> is necessary.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
@ -122,7 +122,7 @@ expects at least the fields <tt>host</tt>, <tt>sink</tt>, and one of
|
||||||
<tt>argument</tt> or <tt>path</tt> (<tt>argument</tt> takes
|
<tt>argument</tt> or <tt>path</tt> (<tt>argument</tt> takes
|
||||||
precedence). <tt>Host</tt> is the server to connect to. <tt>Sink</tt> is
|
precedence). <tt>Host</tt> is the server to connect to. <tt>Sink</tt> is
|
||||||
the <em>simple</em>
|
the <em>simple</em>
|
||||||
<a href="http://lua-users.org/wiki/FiltersSourcesAndSinks">LTN12</a>
|
<a href="https://github.com/lunarmodules/luasocket/blob/master/ltn012.md">LTN12</a>
|
||||||
sink that will receive the downloaded data. <tt>Argument</tt> or
|
sink that will receive the downloaded data. <tt>Argument</tt> or
|
||||||
<tt>path</tt> give the target path to the resource in the server. The
|
<tt>path</tt> give the target path to the resource in the server. The
|
||||||
optional arguments are the following:
|
optional arguments are the following:
|
||||||
|
@ -136,7 +136,7 @@ authentication. Defaults to "<tt>ftp:anonymous@anonymous.org</tt>";</li>
|
||||||
<li><tt>type</tt>: The transfer mode. Can take values "<tt>i</tt>" or
|
<li><tt>type</tt>: The transfer mode. Can take values "<tt>i</tt>" or
|
||||||
"<tt>a</tt>". Defaults to whatever is the server default;</li>
|
"<tt>a</tt>". Defaults to whatever is the server default;</li>
|
||||||
<li><tt>step</tt>:
|
<li><tt>step</tt>:
|
||||||
<a href="http://lua-users.org/wiki/FiltersSourcesAndSinks">LTN12</a>
|
<a href="https://github.com/lunarmodules/luasocket/blob/master/ltn012.md">LTN12</a>
|
||||||
pump step function used to pass data from the
|
pump step function used to pass data from the
|
||||||
server to the sink. Defaults to the LTN12 <tt>pump.step</tt> function;</li>
|
server to the sink. Defaults to the LTN12 <tt>pump.step</tt> function;</li>
|
||||||
<li><tt>create</tt>: An optional function to be used instead of
|
<li><tt>create</tt>: An optional function to be used instead of
|
||||||
|
@ -206,7 +206,7 @@ expects at least the fields <tt>host</tt>, <tt>source</tt>, and one of
|
||||||
<tt>argument</tt> or <tt>path</tt> (<tt>argument</tt> takes
|
<tt>argument</tt> or <tt>path</tt> (<tt>argument</tt> takes
|
||||||
precedence). <tt>Host</tt> is the server to connect to. <tt>Source</tt> is
|
precedence). <tt>Host</tt> is the server to connect to. <tt>Source</tt> is
|
||||||
the <em>simple</em>
|
the <em>simple</em>
|
||||||
<a href="http://lua-users.org/wiki/FiltersSourcesAndSinks">LTN12</a>
|
<a href="https://github.com/lunarmodules/luasocket/blob/master/ltn012.md">LTN12</a>
|
||||||
source that will provide the contents to be uploaded.
|
source that will provide the contents to be uploaded.
|
||||||
<tt>Argument</tt> or
|
<tt>Argument</tt> or
|
||||||
<tt>path</tt> give the target path to the resource in the server. The
|
<tt>path</tt> give the target path to the resource in the server. The
|
||||||
|
@ -221,7 +221,7 @@ authentication. Defaults to "<tt>ftp:anonymous@anonymous.org</tt>";</li>
|
||||||
<li><tt>type</tt>: The transfer mode. Can take values "<tt>i</tt>" or
|
<li><tt>type</tt>: The transfer mode. Can take values "<tt>i</tt>" or
|
||||||
"<tt>a</tt>". Defaults to whatever is the server default;</li>
|
"<tt>a</tt>". Defaults to whatever is the server default;</li>
|
||||||
<li><tt>step</tt>:
|
<li><tt>step</tt>:
|
||||||
<a href="http://lua-users.org/wiki/FiltersSourcesAndSinks">LTN12</a>
|
<a href="https://github.com/lunarmodules/luasocket/blob/master/ltn012.md">LTN12</a>
|
||||||
pump step function used to pass data from the
|
pump step function used to pass data from the
|
||||||
server to the sink. Defaults to the LTN12 <tt>pump.step</tt> function;</li>
|
server to the sink. Defaults to the LTN12 <tt>pump.step</tt> function;</li>
|
||||||
<li><tt>create</tt>: An optional function to be used instead of
|
<li><tt>create</tt>: An optional function to be used instead of
|
||||||
|
|
|
@ -52,7 +52,7 @@ implementation conforms to the HTTP/1.1 standard,
|
||||||
The module exports functions that provide HTTP functionality in different
|
The module exports functions that provide HTTP functionality in different
|
||||||
levels of abstraction. From the simple
|
levels of abstraction. From the simple
|
||||||
string oriented requests, through generic
|
string oriented requests, through generic
|
||||||
<a href="http://lua-users.org/wiki/FiltersSourcesAndSinks">LTN12</a> based, down to even lower-level if you bother to look through the source code.
|
<a href="https://github.com/lunarmodules/luasocket/blob/master/ltn012.md">LTN12</a> based, down to even lower-level if you bother to look through the source code.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
@ -144,7 +144,7 @@ http.<b>request{</b><br>
|
||||||
The request function has two forms. The simple form downloads
|
The request function has two forms. The simple form downloads
|
||||||
a URL using the <tt>GET</tt> or <tt>POST</tt> method and is based
|
a URL using the <tt>GET</tt> or <tt>POST</tt> method and is based
|
||||||
on strings. The generic form performs any HTTP method and is
|
on strings. The generic form performs any HTTP method and is
|
||||||
<a href="http://lua-users.org/wiki/FiltersSourcesAndSinks">LTN12</a> based.
|
<a href="https://github.com/lunarmodules/luasocket/blob/master/ltn012.md">LTN12</a> based.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="parameters">
|
<p class="parameters">
|
||||||
|
@ -158,7 +158,7 @@ in the <tt>url</tt>. Otherwise, it performs a <tt>GET</tt> in the
|
||||||
<p class="parameters">
|
<p class="parameters">
|
||||||
If the first argument is instead a table, the most important fields are
|
If the first argument is instead a table, the most important fields are
|
||||||
the <tt>url</tt> and the <em>simple</em>
|
the <tt>url</tt> and the <em>simple</em>
|
||||||
<a href="http://lua-users.org/wiki/FiltersSourcesAndSinks">LTN12</a>
|
<a href="https://github.com/lunarmodules/luasocket/blob/master/ltn012.md">LTN12</a>
|
||||||
<tt>sink</tt> that will receive the downloaded content.
|
<tt>sink</tt> that will receive the downloaded content.
|
||||||
Any part of the <tt>url</tt> can be overridden by including
|
Any part of the <tt>url</tt> can be overridden by including
|
||||||
the appropriate field in the request table.
|
the appropriate field in the request table.
|
||||||
|
@ -172,13 +172,13 @@ following:
|
||||||
<li><tt>method</tt>: The HTTP request method. Defaults to "GET";</li>
|
<li><tt>method</tt>: The HTTP request method. Defaults to "GET";</li>
|
||||||
<li><tt>headers</tt>: Any additional HTTP headers to send with the request;</li>
|
<li><tt>headers</tt>: Any additional HTTP headers to send with the request;</li>
|
||||||
<li><tt>source</tt>: <em>simple</em>
|
<li><tt>source</tt>: <em>simple</em>
|
||||||
<a href="http://lua-users.org/wiki/FiltersSourcesAndSinks">LTN12</a>
|
<a href="https://github.com/lunarmodules/luasocket/blob/master/ltn012.md">LTN12</a>
|
||||||
source to provide the request body. If there
|
source to provide the request body. If there
|
||||||
is a body, you need to provide an appropriate "<tt>content-length</tt>"
|
is a body, you need to provide an appropriate "<tt>content-length</tt>"
|
||||||
request header field, or the function will attempt to send the body as
|
request header field, or the function will attempt to send the body as
|
||||||
"<tt>chunked</tt>" (something few servers support). Defaults to the empty source;</li>
|
"<tt>chunked</tt>" (something few servers support). Defaults to the empty source;</li>
|
||||||
<li><tt>step</tt>:
|
<li><tt>step</tt>:
|
||||||
<a href="http://lua-users.org/wiki/FiltersSourcesAndSinks">LTN12</a>
|
<a href="https://github.com/lunarmodules/luasocket/blob/master/ltn012.md">LTN12</a>
|
||||||
pump step function used to move data.
|
pump step function used to move data.
|
||||||
Defaults to the LTN12 <tt>pump.step</tt> function.</li>
|
Defaults to the LTN12 <tt>pump.step</tt> function.</li>
|
||||||
<li><tt>proxy</tt>: The URL of a proxy server to use. Defaults to no proxy;</li>
|
<li><tt>proxy</tt>: The URL of a proxy server to use. Defaults to no proxy;</li>
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
|
||||||
"http://www.w3.org/TR/html4/strict.dtd">
|
"http://www.w3.org/TR/html4/strict.dtd">
|
||||||
<html>
|
<html>
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<meta name="description" content="LuaSocket: Introduction to the core">
|
<meta name="description" content="LuaSocket: Introduction to the core">
|
||||||
<meta name="keywords" content="Lua, LuaSocket, TCP, UDP, Network, Support,
|
<meta name="keywords" content="Lua, LuaSocket, TCP, UDP, Network, Support,
|
||||||
Installation">
|
Installation">
|
||||||
<title>LuaSocket: Installation</title>
|
<title>LuaSocket: Installation</title>
|
||||||
<link rel="stylesheet" href="reference.css" type="text/css">
|
<link rel="stylesheet" href="reference.css" type="text/css">
|
||||||
</head>
|
</head>
|
||||||
|
@ -29,7 +29,7 @@ Installation">
|
||||||
<a href="index.html#download">download</a> ·
|
<a href="index.html#download">download</a> ·
|
||||||
<a href="installation.html">installation</a> ·
|
<a href="installation.html">installation</a> ·
|
||||||
<a href="introduction.html">introduction</a> ·
|
<a href="introduction.html">introduction</a> ·
|
||||||
<a href="reference.html">reference</a>
|
<a href="reference.html">reference</a>
|
||||||
</p>
|
</p>
|
||||||
</center>
|
</center>
|
||||||
<hr>
|
<hr>
|
||||||
|
@ -48,8 +48,8 @@ will likely already have been answered. </p>
|
||||||
|
|
||||||
<p> On Unix systems, the standard distribution uses two base
|
<p> On Unix systems, the standard distribution uses two base
|
||||||
directories, one for system dependent files, and another for system
|
directories, one for system dependent files, and another for system
|
||||||
independent files. Let's call these directories <tt><CDIR></tt>
|
independent files. Let's call these directories <tt><CDIR></tt>
|
||||||
and <tt><LDIR></tt>, respectively.
|
and <tt><LDIR></tt>, respectively.
|
||||||
For example, in my laptp, Lua 5.1 is configured to
|
For example, in my laptp, Lua 5.1 is configured to
|
||||||
use '<tt>/usr/local/lib/lua/5.1</tt>' for
|
use '<tt>/usr/local/lib/lua/5.1</tt>' for
|
||||||
<tt><CDIR></tt> and '<tt>/usr/local/share/lua/5.1</tt>' for
|
<tt><CDIR></tt> and '<tt>/usr/local/share/lua/5.1</tt>' for
|
||||||
|
@ -57,9 +57,9 @@ use '<tt>/usr/local/lib/lua/5.1</tt>' for
|
||||||
usually points to the directory where the Lua executable is
|
usually points to the directory where the Lua executable is
|
||||||
found, and <tt><LDIR></tt> points to a
|
found, and <tt><LDIR></tt> points to a
|
||||||
<tt>lua/</tt> directory inside <tt><CDIR></tt>. (These
|
<tt>lua/</tt> directory inside <tt><CDIR></tt>. (These
|
||||||
settings can be overridden by environment variables
|
settings can be overridden by environment variables
|
||||||
<tt>LUA_PATH</tt> and <tt>LUA_CPATH</tt>. See the Lua
|
<tt>LUA_PATH</tt> and <tt>LUA_CPATH</tt>. See the Lua
|
||||||
documentation for details.) Here is the standard LuaSocket
|
documentation for details.) Here is the standard LuaSocket
|
||||||
distribution directory structure:</p>
|
distribution directory structure:</p>
|
||||||
|
|
||||||
<pre class=example>
|
<pre class=example>
|
||||||
|
@ -76,7 +76,7 @@ distribution directory structure:</p>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p> Naturally, on Unix systems, <tt>core.dll</tt>
|
<p> Naturally, on Unix systems, <tt>core.dll</tt>
|
||||||
would be replaced by <tt>core.so</tt>.
|
would be replaced by <tt>core.so</tt>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3>Using LuaSocket</h3>
|
<h3>Using LuaSocket</h3>
|
||||||
|
@ -89,7 +89,7 @@ it should be easy to use LuaSocket. Just fire the interpreter and use the
|
||||||
Lua 5.2.2 Copyright (C) 1994-2013 Lua.org, PUC-Rio
|
Lua 5.2.2 Copyright (C) 1994-2013 Lua.org, PUC-Rio
|
||||||
> socket = require("socket")
|
> socket = require("socket")
|
||||||
> print(socket._VERSION)
|
> print(socket._VERSION)
|
||||||
--> LuaSocket 3.0.0
|
--> LuaSocket 3.1.0
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p> Each module loads their dependencies automatically, so you only need to
|
<p> Each module loads their dependencies automatically, so you only need to
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
|
||||||
"http://www.w3.org/TR/html4/strict.dtd">
|
"http://www.w3.org/TR/html4/strict.dtd">
|
||||||
<html>
|
<html>
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<meta name="description" content="LuaSocket: Introduction to the core">
|
<meta name="description" content="LuaSocket: Introduction to the core">
|
||||||
<meta name="keywords" content="Lua, LuaSocket, TCP, UDP, Network,
|
<meta name="keywords" content="Lua, LuaSocket, TCP, UDP, Network,
|
||||||
Library, Support">
|
Library, Support">
|
||||||
<title>LuaSocket: Introduction to the core</title>
|
<title>LuaSocket: Introduction to the core</title>
|
||||||
<link rel="stylesheet" href="reference.css" type="text/css">
|
<link rel="stylesheet" href="reference.css" type="text/css">
|
||||||
</head>
|
</head>
|
||||||
|
@ -29,7 +29,7 @@ Library, Support">
|
||||||
<a href="index.html#download">download</a> ·
|
<a href="index.html#download">download</a> ·
|
||||||
<a href="installation.html">installation</a> ·
|
<a href="installation.html">installation</a> ·
|
||||||
<a href="introduction.html">introduction</a> ·
|
<a href="introduction.html">introduction</a> ·
|
||||||
<a href="reference.html">reference</a>
|
<a href="reference.html">reference</a>
|
||||||
</p>
|
</p>
|
||||||
</center>
|
</center>
|
||||||
<hr>
|
<hr>
|
||||||
|
@ -61,23 +61,23 @@ interface to I/O across different domains and operating systems.
|
||||||
The API design had two goals in mind. First, users
|
The API design had two goals in mind. First, users
|
||||||
experienced with the C API to sockets should feel comfortable using LuaSocket.
|
experienced with the C API to sockets should feel comfortable using LuaSocket.
|
||||||
Second, the simplicity and the feel of the Lua language should be
|
Second, the simplicity and the feel of the Lua language should be
|
||||||
preserved. To achieve these goals, the LuaSocket API keeps the function names and semantics the C API whenever possible, but their usage in Lua has been greatly simplified.
|
preserved. To achieve these goals, the LuaSocket API keeps the function names and semantics the C API whenever possible, but their usage in Lua has been greatly simplified.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
One of the simplifications is the receive pattern capability.
|
One of the simplifications is the receive pattern capability.
|
||||||
Applications can read data from stream domains (such as TCP)
|
Applications can read data from stream domains (such as TCP)
|
||||||
line by line, block by block, or until the connection is closed.
|
line by line, block by block, or until the connection is closed.
|
||||||
All I/O reads are buffered and the performance differences between
|
All I/O reads are buffered and the performance differences between
|
||||||
different receive patterns are negligible.
|
different receive patterns are negligible.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Another advantage is the flexible timeout control
|
Another advantage is the flexible timeout control
|
||||||
mechanism. As in C, all I/O operations are blocking by default. For
|
mechanism. As in C, all I/O operations are blocking by default. For
|
||||||
example, the <a href=tcp.html#send><tt>send</tt></a>,
|
example, the <a href=tcp.html#send><tt>send</tt></a>,
|
||||||
<a href=tcp.html#receive><tt>receive</tt></a> and
|
<a href=tcp.html#receive><tt>receive</tt></a> and
|
||||||
<a href=tcp.html#accept><tt>accept</tt></a> methods
|
<a href=tcp.html#accept><tt>accept</tt></a> methods
|
||||||
of the TCP domain will block the caller application until
|
of the TCP domain will block the caller application until
|
||||||
the operation is completed (if ever!). However, with a call to the
|
the operation is completed (if ever!). However, with a call to the
|
||||||
|
@ -87,7 +87,7 @@ the time it can be blocked by LuaSocket (the "<tt>total</tt>" timeout), on
|
||||||
the time LuaSocket can internally be blocked by any OS call (the
|
the time LuaSocket can internally be blocked by any OS call (the
|
||||||
"<tt>block</tt>" timeout) or a combination of the two. Each LuaSocket
|
"<tt>block</tt>" timeout) or a combination of the two. Each LuaSocket
|
||||||
call might perform several OS calls, so that the two timeout values are
|
call might perform several OS calls, so that the two timeout values are
|
||||||
<em>not</em> equivalent.
|
<em>not</em> equivalent.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
@ -95,10 +95,10 @@ Finally, the host name resolution is transparent, meaning that most
|
||||||
functions and methods accept both IP addresses and host names. In case a
|
functions and methods accept both IP addresses and host names. In case a
|
||||||
host name is given, the library queries the system's resolver and
|
host name is given, the library queries the system's resolver and
|
||||||
tries the main IP address returned. Note that direct use of IP addresses
|
tries the main IP address returned. Note that direct use of IP addresses
|
||||||
is more efficient, of course. The
|
is more efficient, of course. The
|
||||||
<a href=dns.html#toip><tt>toip</tt></a>
|
<a href=dns.html#toip><tt>toip</tt></a>
|
||||||
and <a href=dns.html#tohostname><tt>tohostname</tt></a>
|
and <a href=dns.html#tohostname><tt>tohostname</tt></a>
|
||||||
functions from the DNS module are provided to convert between host names and IP addresses.
|
functions from the DNS module are provided to convert between host names and IP addresses.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
@ -118,47 +118,47 @@ reassembled transparently on the other end. There are no boundaries in
|
||||||
the data transfers. The library allows users to read data from the
|
the data transfers. The library allows users to read data from the
|
||||||
sockets in several different granularities: patterns are available for
|
sockets in several different granularities: patterns are available for
|
||||||
lines, arbitrary sized blocks or "read up to connection closed", all with
|
lines, arbitrary sized blocks or "read up to connection closed", all with
|
||||||
good performance.
|
good performance.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
The library distinguishes three types of TCP sockets: <em>master</em>,
|
The library distinguishes three types of TCP sockets: <em>master</em>,
|
||||||
<em>client</em> and <em>server</em> sockets.
|
<em>client</em> and <em>server</em> sockets.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Master sockets are newly created TCP sockets returned by the function
|
Master sockets are newly created TCP sockets returned by the function
|
||||||
<a href=tcp.html#tcp><tt>socket.tcp</tt></a>. A master socket is
|
<a href=tcp.html#tcp><tt>socket.tcp</tt></a>. A master socket is
|
||||||
transformed into a server socket
|
transformed into a server socket
|
||||||
after it is associated with a <em>local</em> address by a call to the
|
after it is associated with a <em>local</em> address by a call to the
|
||||||
<a href=tcp.html#bind><tt>bind</tt></a> method followed by a call to the
|
<a href=tcp.html#bind><tt>bind</tt></a> method followed by a call to the
|
||||||
<a href=tcp.html#listen><tt>listen</tt></a>. Conversely, a master socket
|
<a href=tcp.html#listen><tt>listen</tt></a>. Conversely, a master socket
|
||||||
can be changed into a client socket with the method
|
can be changed into a client socket with the method
|
||||||
<a href=tcp.html#connect><tt>connect</tt></a>,
|
<a href=tcp.html#connect><tt>connect</tt></a>,
|
||||||
which associates it with a <em>remote</em> address.
|
which associates it with a <em>remote</em> address.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
On server sockets, applications can use the
|
On server sockets, applications can use the
|
||||||
<a href=tcp.html#accept><tt>accept</tt></a> method
|
<a href=tcp.html#accept><tt>accept</tt></a> method
|
||||||
to wait for a client connection. Once a connection is established, a
|
to wait for a client connection. Once a connection is established, a
|
||||||
client socket object is returned representing this connection. The
|
client socket object is returned representing this connection. The
|
||||||
other methods available for server socket objects are
|
other methods available for server socket objects are
|
||||||
<a href=tcp.html#getsockname><tt>getsockname</tt></a>,
|
<a href=tcp.html#getsockname><tt>getsockname</tt></a>,
|
||||||
<a href=tcp.html#setoption><tt>setoption</tt></a>,
|
<a href=tcp.html#setoption><tt>setoption</tt></a>,
|
||||||
<a href=tcp.html#settimeout><tt>settimeout</tt></a>, and
|
<a href=tcp.html#settimeout><tt>settimeout</tt></a>, and
|
||||||
<a href=tcp.html#close><tt>close</tt></a>.
|
<a href=tcp.html#close><tt>close</tt></a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Client sockets are used to exchange data between two applications over
|
Client sockets are used to exchange data between two applications over
|
||||||
the Internet. Applications can call the methods
|
the Internet. Applications can call the methods
|
||||||
<a href=tcp.html#send><tt>send</tt></a> and
|
<a href=tcp.html#send><tt>send</tt></a> and
|
||||||
<a href=tcp.html#receive><tt>receive</tt></a>
|
<a href=tcp.html#receive><tt>receive</tt></a>
|
||||||
to send and receive data. The other methods
|
to send and receive data. The other methods
|
||||||
available for client socket objects are
|
available for client socket objects are
|
||||||
<a href=tcp.html#getsockname><tt>getsockname</tt></a>,
|
<a href=tcp.html#getsockname><tt>getsockname</tt></a>,
|
||||||
<a href=tcp.html#getpeername><tt>getpeername</tt></a>,
|
<a href=tcp.html#getpeername><tt>getpeername</tt></a>,
|
||||||
<a href=tcp.html#setoption><tt>setoption</tt></a>,
|
<a href=tcp.html#setoption><tt>setoption</tt></a>,
|
||||||
<a href=tcp.html#settimeout><tt>settimeout</tt></a>,
|
<a href=tcp.html#settimeout><tt>settimeout</tt></a>,
|
||||||
<a href=tcp.html#shutdown><tt>shutdown</tt></a>, and
|
<a href=tcp.html#shutdown><tt>shutdown</tt></a>, and
|
||||||
|
@ -175,7 +175,7 @@ port (one that is chosen by the operating system) on the local host and
|
||||||
awaits client connections on that port. When a connection is established,
|
awaits client connections on that port. When a connection is established,
|
||||||
the program reads a line from the remote end and sends it back, closing
|
the program reads a line from the remote end and sends it back, closing
|
||||||
the connection immediately. You can test it using the telnet
|
the connection immediately. You can test it using the telnet
|
||||||
program.
|
program.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class=example>
|
<pre class=example>
|
||||||
|
@ -217,68 +217,68 @@ error free. Data transfers are atomic, one datagram at a time. Reading
|
||||||
only part of a datagram discards the rest, so that the following read
|
only part of a datagram discards the rest, so that the following read
|
||||||
operation will act on the next datagram. The advantages are in
|
operation will act on the next datagram. The advantages are in
|
||||||
simplicity (no connection setup) and performance (no error checking or
|
simplicity (no connection setup) and performance (no error checking or
|
||||||
error correction).
|
error correction).
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Note that although no guarantees are made, these days
|
Note that although no guarantees are made, these days
|
||||||
networks are so good that, under normal circumstances, few errors
|
networks are so good that, under normal circumstances, few errors
|
||||||
happen in practice.
|
happen in practice.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
An UDP socket object is created by the
|
An UDP socket object is created by the
|
||||||
<a href=udp.html#udp><tt>socket.udp</tt></a> function. UDP
|
<a href=udp.html#udp><tt>socket.udp</tt></a> function. UDP
|
||||||
sockets do not need to be connected before use. The method
|
sockets do not need to be connected before use. The method
|
||||||
<a href=udp.html#sendto><tt>sendto</tt></a>
|
<a href=udp.html#sendto><tt>sendto</tt></a>
|
||||||
can be used immediately after creation to
|
can be used immediately after creation to
|
||||||
send a datagram to IP address and port. Host names are not allowed
|
send a datagram to IP address and port. Host names are not allowed
|
||||||
because performing name resolution for each packet would be forbiddingly
|
because performing name resolution for each packet would be forbiddingly
|
||||||
slow. Methods
|
slow. Methods
|
||||||
<a href=udp.html#receive><tt>receive</tt></a> and
|
<a href=udp.html#receive><tt>receive</tt></a> and
|
||||||
<a href=udp.html#receivefrom><tt>receivefrom</tt></a>
|
<a href=udp.html#receivefrom><tt>receivefrom</tt></a>
|
||||||
can be used to retrieve datagrams, the latter returning the IP and port of
|
can be used to retrieve datagrams, the latter returning the IP and port of
|
||||||
the sender as extra return values (thus being slightly less
|
the sender as extra return values (thus being slightly less
|
||||||
efficient).
|
efficient).
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
When communication is performed repeatedly with a single peer, an
|
When communication is performed repeatedly with a single peer, an
|
||||||
application should call the
|
application should call the
|
||||||
<a href=udp.html#setpeername><tt>setpeername</tt></a> method to specify a
|
<a href=udp.html#setpeername><tt>setpeername</tt></a> method to specify a
|
||||||
permanent partner. Methods
|
permanent partner. Methods
|
||||||
<a href=udp.html#sendto><tt>sendto</tt></a> and
|
<a href=udp.html#sendto><tt>sendto</tt></a> and
|
||||||
<a href=udp.html#receivefrom><tt>receivefrom</tt></a>
|
<a href=udp.html#receivefrom><tt>receivefrom</tt></a>
|
||||||
can no longer be used, but the method
|
can no longer be used, but the method
|
||||||
<a href=udp.html#send><tt>send</tt></a> can be used to send data
|
<a href=udp.html#send><tt>send</tt></a> can be used to send data
|
||||||
directly to the peer, and the method
|
directly to the peer, and the method
|
||||||
<a href=udp.html#receive><tt>receive</tt></a>
|
<a href=udp.html#receive><tt>receive</tt></a>
|
||||||
will only return datagrams originating
|
will only return datagrams originating
|
||||||
from that peer. There is about 30% performance gain due to this practice.
|
from that peer. There is about 30% performance gain due to this practice.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
To associate an UDP socket with a local address, an application calls the
|
To associate an UDP socket with a local address, an application calls the
|
||||||
<a href=udp.html#setsockname><tt>setsockname</tt></a>
|
<a href=udp.html#setsockname><tt>setsockname</tt></a>
|
||||||
method <em>before</em> sending any datagrams. Otherwise, the socket is
|
method <em>before</em> sending any datagrams. Otherwise, the socket is
|
||||||
automatically bound to an ephemeral address before the first data
|
automatically bound to an ephemeral address before the first data
|
||||||
transmission and once bound the local address cannot be changed.
|
transmission and once bound the local address cannot be changed.
|
||||||
The other methods available for UDP sockets are
|
The other methods available for UDP sockets are
|
||||||
<a href=udp.html#getpeername><tt>getpeername</tt></a>,
|
<a href=udp.html#getpeername><tt>getpeername</tt></a>,
|
||||||
<a href=udp.html#getsockname><tt>getsockname</tt></a>,
|
<a href=udp.html#getsockname><tt>getsockname</tt></a>,
|
||||||
<a href=udp.html#settimeout><tt>settimeout</tt></a>,
|
<a href=udp.html#settimeout><tt>settimeout</tt></a>,
|
||||||
<a href=udp.html#setoption><tt>setoption</tt></a> and
|
<a href=udp.html#setoption><tt>setoption</tt></a> and
|
||||||
<a href=udp.html#close><tt>close</tt></a>.
|
<a href=udp.html#close><tt>close</tt></a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Example:
|
Example:
|
||||||
</p>
|
</p>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<p>
|
<p>
|
||||||
A simple daytime client, using LuaSocket. The program connects to a remote
|
A simple daytime client, using LuaSocket. The program connects to a remote
|
||||||
server and tries to retrieve the daytime, printing the answer it got or an
|
server and tries to retrieve the daytime, printing the answer it got or an
|
||||||
error message.
|
error message.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class=example>
|
<pre class=example>
|
||||||
|
@ -301,11 +301,11 @@ io.write(assert(udp:receive()))
|
||||||
|
|
||||||
<h3 id=more>Support modules</h3>
|
<h3 id=more>Support modules</h3>
|
||||||
|
|
||||||
<p> Although not covered in the introduction, LuaSocket offers
|
<p> Although not covered in the introduction, LuaSocket offers
|
||||||
much more than TCP and UDP functionality. As the library
|
much more than TCP and UDP functionality. As the library
|
||||||
evolved, support for <a href=http.html>HTTP</a>, <a href=ftp.html>FTP</a>,
|
evolved, support for <a href=http.html>HTTP</a>, <a href=ftp.html>FTP</a>,
|
||||||
and <a href=smtp.html>SMTP</a> were built on top of these. These modules
|
and <a href=smtp.html>SMTP</a> were built on top of these. These modules
|
||||||
and many others are covered by the <a href=reference.html>reference manual</a>.
|
and many others are covered by the <a href=reference.html>reference manual</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<!-- footer +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
<!-- footer +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||||
|
|
|
@ -40,7 +40,7 @@ Pump, Support, Library">
|
||||||
<h2 id="ltn12">LTN12</h2>
|
<h2 id="ltn12">LTN12</h2>
|
||||||
|
|
||||||
<p> The <tt>ltn12</tt> namespace implements the ideas described in
|
<p> The <tt>ltn12</tt> namespace implements the ideas described in
|
||||||
<a href="http://lua-users.org/wiki/FiltersSourcesAndSinks">
|
<a href="https://github.com/lunarmodules/luasocket/blob/master/ltn012.md">
|
||||||
LTN012, Filters sources and sinks</a>. This manual simply describes the
|
LTN012, Filters sources and sinks</a>. This manual simply describes the
|
||||||
functions. Please refer to the LTN for a deeper explanation of the
|
functions. Please refer to the LTN for a deeper explanation of the
|
||||||
functionality provided by this module.
|
functionality provided by this module.
|
||||||
|
|
|
@ -54,7 +54,7 @@ MIME is described mainly in
|
||||||
<p>
|
<p>
|
||||||
All functionality provided by the MIME module
|
All functionality provided by the MIME module
|
||||||
follows the ideas presented in
|
follows the ideas presented in
|
||||||
<a href="http://lua-users.org/wiki/FiltersSourcesAndSinks">
|
<a href="https://github.com/lunarmodules/luasocket/blob/master/ltn012.md">
|
||||||
LTN012, Filters sources and sinks</a>.
|
LTN012, Filters sources and sinks</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
|
@ -57,7 +57,7 @@ of the MIME standard, but described mainly
|
||||||
in <a href="http://www.ietf.org/rfc/rfc2046.txt">RFC 2046</a>.</p>
|
in <a href="http://www.ietf.org/rfc/rfc2046.txt">RFC 2046</a>.</p>
|
||||||
|
|
||||||
<p> In the description below, good understanding of <a
|
<p> In the description below, good understanding of <a
|
||||||
href="http://lua-users.org/wiki/FiltersSourcesAndSinks"> LTN012, Filters
|
href="https://github.com/lunarmodules/luasocket/blob/master/ltn012.md"> LTN012, Filters
|
||||||
sources and sinks</a> and the <a href="mime.html">MIME</a> module is
|
sources and sinks</a> and the <a href="mime.html">MIME</a> module is
|
||||||
assumed. In fact, the SMTP module was the main reason for their
|
assumed. In fact, the SMTP module was the main reason for their
|
||||||
creation. </p>
|
creation. </p>
|
||||||
|
@ -122,7 +122,7 @@ smtp.<b>message(</b>mesgt<b>)</b>
|
||||||
|
|
||||||
<p class="description">
|
<p class="description">
|
||||||
Returns a <em>simple</em>
|
Returns a <em>simple</em>
|
||||||
<a href="http://lua-users.org/wiki/FiltersSourcesAndSinks">LTN12</a> source that sends an SMTP message body, possibly multipart (arbitrarily deep).
|
<a href="https://github.com/lunarmodules/luasocket/blob/master/ltn012.md">LTN12</a> source that sends an SMTP message body, possibly multipart (arbitrarily deep).
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="parameters">
|
<p class="parameters">
|
||||||
|
@ -155,7 +155,7 @@ multipart-mesgt = {<br>
|
||||||
For a simple message, all that is needed is a set of <tt>headers</tt>
|
For a simple message, all that is needed is a set of <tt>headers</tt>
|
||||||
and the <tt>body</tt>. The message <tt>body</tt> can be given as a string
|
and the <tt>body</tt>. The message <tt>body</tt> can be given as a string
|
||||||
or as a <em>simple</em>
|
or as a <em>simple</em>
|
||||||
<a href="http://lua-users.org/wiki/FiltersSourcesAndSinks">LTN12</a>
|
<a href="https://github.com/lunarmodules/luasocket/blob/master/ltn012.md">LTN12</a>
|
||||||
source. For multipart messages, the body is a table that
|
source. For multipart messages, the body is a table that
|
||||||
recursively defines each part as an independent message, plus an optional
|
recursively defines each part as an independent message, plus an optional
|
||||||
<tt>preamble</tt> and <tt>epilogue</tt>.
|
<tt>preamble</tt> and <tt>epilogue</tt>.
|
||||||
|
@ -163,7 +163,7 @@ recursively defines each part as an independent message, plus an optional
|
||||||
|
|
||||||
<p class="return">
|
<p class="return">
|
||||||
The function returns a <em>simple</em>
|
The function returns a <em>simple</em>
|
||||||
<a href="http://lua-users.org/wiki/FiltersSourcesAndSinks">LTN12</a>
|
<a href="https://github.com/lunarmodules/luasocket/blob/master/ltn012.md">LTN12</a>
|
||||||
source that produces the
|
source that produces the
|
||||||
message contents as defined by <tt>mesgt</tt>, chunk by chunk.
|
message contents as defined by <tt>mesgt</tt>, chunk by chunk.
|
||||||
Hopefully, the following
|
Hopefully, the following
|
||||||
|
@ -264,7 +264,7 @@ The sender is given by the e-mail address in the <tt>from</tt> field.
|
||||||
address, or a string
|
address, or a string
|
||||||
in case there is just one recipient.
|
in case there is just one recipient.
|
||||||
The contents of the message are given by a <em>simple</em>
|
The contents of the message are given by a <em>simple</em>
|
||||||
<a href="http://lua-users.org/wiki/FiltersSourcesAndSinks">LTN12</a>
|
<a href="https://github.com/lunarmodules/luasocket/blob/master/ltn012.md">LTN12</a>
|
||||||
<tt>source</tt>. Several arguments are optional:
|
<tt>source</tt>. Several arguments are optional:
|
||||||
</p>
|
</p>
|
||||||
<ul>
|
<ul>
|
||||||
|
@ -276,7 +276,7 @@ methods if supported by the server (both are unsafe);</li>
|
||||||
<li> <tt>domain</tt>: Domain name used to greet the server; Defaults to the
|
<li> <tt>domain</tt>: Domain name used to greet the server; Defaults to the
|
||||||
local machine host name;</li>
|
local machine host name;</li>
|
||||||
<li> <tt>step</tt>:
|
<li> <tt>step</tt>:
|
||||||
<a href="http://lua-users.org/wiki/FiltersSourcesAndSinks">LTN12</a>
|
<a href="https://github.com/lunarmodules/luasocket/blob/master/ltn012.md">LTN12</a>
|
||||||
pump step function used to pass data from the
|
pump step function used to pass data from the
|
||||||
source to the server. Defaults to the LTN12 <tt>pump.step</tt> function;</li>
|
source to the server. Defaults to the LTN12 <tt>pump.step</tt> function;</li>
|
||||||
<li><tt>create</tt>: An optional function to be used instead of
|
<li><tt>create</tt>: An optional function to be used instead of
|
||||||
|
@ -308,7 +308,7 @@ Only recipients specified in the <tt>rcpt</tt> list will receive a copy of the
|
||||||
message. Each recipient of an SMTP mail message receives a copy of the
|
message. Each recipient of an SMTP mail message receives a copy of the
|
||||||
message body along with the headers, and nothing more. The headers
|
message body along with the headers, and nothing more. The headers
|
||||||
<em>are</em> part of the message and should be produced by the
|
<em>are</em> part of the message and should be produced by the
|
||||||
<a href="http://lua-users.org/wiki/FiltersSourcesAndSinks">LTN12</a>
|
<a href="https://github.com/lunarmodules/luasocket/blob/master/ltn012.md">LTN12</a>
|
||||||
<tt>source</tt> function. The <tt>rcpt</tt> list is <em>not</em>
|
<tt>source</tt> function. The <tt>rcpt</tt> list is <em>not</em>
|
||||||
part of the message and will not be sent to anyone.
|
part of the message and will not be sent to anyone.
|
||||||
</p>
|
</p>
|
||||||
|
|
|
@ -164,6 +164,9 @@ Creates and returns a <em>clean</em>
|
||||||
<a href="#try"><tt>try</tt></a>
|
<a href="#try"><tt>try</tt></a>
|
||||||
function that allows for cleanup before the exception
|
function that allows for cleanup before the exception
|
||||||
is raised.
|
is raised.
|
||||||
|
This implements the ideas described in
|
||||||
|
<a href="https://github.com/lunarmodules/luasocket/blob/master/ltn013.md">
|
||||||
|
LTN012, Using finalized exceptions</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="parameters">
|
<p class="parameters">
|
||||||
|
@ -207,6 +210,9 @@ Converts a function that throws exceptions into a safe function. This
|
||||||
function only catches exceptions thrown by the <a href="#try"><tt>try</tt></a>
|
function only catches exceptions thrown by the <a href="#try"><tt>try</tt></a>
|
||||||
and <a href="#newtry"><tt>newtry</tt></a> functions. It does not catch normal
|
and <a href="#newtry"><tt>newtry</tt></a> functions. It does not catch normal
|
||||||
Lua errors.
|
Lua errors.
|
||||||
|
This implements the ideas described in
|
||||||
|
<a href="https://github.com/lunarmodules/luasocket/blob/master/ltn013.md">
|
||||||
|
LTN012, Using finalized exceptions</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="parameters">
|
<p class="parameters">
|
||||||
|
@ -305,7 +311,7 @@ socket.<b>sink(</b>mode, socket<b>)</b>
|
||||||
|
|
||||||
<p class="description">
|
<p class="description">
|
||||||
Creates an
|
Creates an
|
||||||
<a href="http://lua-users.org/wiki/FiltersSourcesAndSinks">LTN12</a>
|
<a href="https://github.com/lunarmodules/luasocket/blob/master/ltn012.md">LTN12</a>
|
||||||
sink from a stream socket object.
|
sink from a stream socket object.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
@ -380,7 +386,7 @@ socket.<b>source(</b>mode, socket [, length]<b>)</b>
|
||||||
|
|
||||||
<p class="description">
|
<p class="description">
|
||||||
Creates an
|
Creates an
|
||||||
<a href="http://lua-users.org/wiki/FiltersSourcesAndSinks">LTN12</a>
|
<a href="https://github.com/lunarmodules/luasocket/blob/master/ltn012.md">LTN12</a>
|
||||||
source from a stream socket object.
|
source from a stream socket object.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
@ -425,6 +431,9 @@ socket.<b>try(</b>ret<sub>1</sub> [, ret<sub>2</sub> ... ret<sub>N</sub>]<b>)</b
|
||||||
Throws an exception in case <tt>ret<sub>1</sub></tt> is falsy, using
|
Throws an exception in case <tt>ret<sub>1</sub></tt> is falsy, using
|
||||||
<tt>ret<sub>2</sub></tt> as the error message. The exception is supposed to be caught
|
<tt>ret<sub>2</sub></tt> as the error message. The exception is supposed to be caught
|
||||||
by a <a href="#protect"><tt>protect</tt></a>ed function only.
|
by a <a href="#protect"><tt>protect</tt></a>ed function only.
|
||||||
|
This implements the ideas described in
|
||||||
|
<a href="https://github.com/lunarmodules/luasocket/blob/master/ltn013.md">
|
||||||
|
LTN012, Using finalized exceptions</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="parameters">
|
<p class="parameters">
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
|
||||||
"http://www.w3.org/TR/html4/strict.dtd">
|
"http://www.w3.org/TR/html4/strict.dtd">
|
||||||
<html>
|
<html>
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<meta name="description" content="LuaSocket: URL manipulation">
|
<meta name="description" content="LuaSocket: URL manipulation">
|
||||||
<meta name="keywords" content="Lua, LuaSocket, URL, Library, Link, Network, Support">
|
<meta name="keywords" content="Lua, LuaSocket, URL, Library, Link, Network, Support">
|
||||||
<title>LuaSocket: URL support</title>
|
<title>LuaSocket: URL support</title>
|
||||||
<link rel="stylesheet" href="reference.css" type="text/css">
|
<link rel="stylesheet" href="reference.css" type="text/css">
|
||||||
</head>
|
</head>
|
||||||
|
@ -28,7 +28,7 @@
|
||||||
<a href="index.html#download">download</a> ·
|
<a href="index.html#download">download</a> ·
|
||||||
<a href="installation.html">installation</a> ·
|
<a href="installation.html">installation</a> ·
|
||||||
<a href="introduction.html">introduction</a> ·
|
<a href="introduction.html">introduction</a> ·
|
||||||
<a href="reference.html">reference</a>
|
<a href="reference.html">reference</a>
|
||||||
</p>
|
</p>
|
||||||
</center>
|
</center>
|
||||||
<hr>
|
<hr>
|
||||||
|
@ -36,21 +36,21 @@
|
||||||
|
|
||||||
<!-- url ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
<!-- url ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||||
|
|
||||||
<h2 id="url">URL</h2>
|
<h2 id="url">URL</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
The <tt>url</tt> namespace provides functions to parse, protect,
|
The <tt>url</tt> namespace provides functions to parse, protect,
|
||||||
and build URLs, as well as functions to compose absolute URLs
|
and build URLs, as well as functions to compose absolute URLs
|
||||||
from base and relative URLs, according to
|
from base and relative URLs, according to
|
||||||
<a href="http://www.ietf.org/rfc/rfc2396.txt">RFC 2396</a>.
|
<a href="http://www.ietf.org/rfc/rfc2396.txt">RFC 2396</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
To obtain the <tt>url</tt> namespace, run:
|
To obtain the <tt>url</tt> namespace, run:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre class=example>
|
<pre class=example>
|
||||||
-- loads the URL module
|
-- loads the URL module
|
||||||
local url = require("socket.url")
|
local url = require("socket.url")
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
|
@ -74,7 +74,7 @@ url.<b>absolute(</b>base, relative<b>)</b>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class=description>
|
<p class=description>
|
||||||
Builds an absolute URL from a base URL and a relative URL.
|
Builds an absolute URL from a base URL and a relative URL.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class=parameters>
|
<p class=parameters>
|
||||||
|
@ -130,14 +130,14 @@ url.<b>build(</b>parsed_url<b>)</b>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class=description>
|
<p class=description>
|
||||||
Rebuilds an URL from its parts.
|
Rebuilds an URL from its parts.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class=parameters>
|
<p class=parameters>
|
||||||
<tt>Parsed_url</tt> is a table with same components returned by
|
<tt>Parsed_url</tt> is a table with same components returned by
|
||||||
<a href="#parse"><tt>parse</tt></a>.
|
<a href="#parse"><tt>parse</tt></a>.
|
||||||
Lower level components, if specified,
|
Lower level components, if specified,
|
||||||
take precedence over high level components of the URL grammar.
|
take precedence over high level components of the URL grammar.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class=return>
|
<p class=return>
|
||||||
|
@ -152,10 +152,10 @@ url.<b>build_path(</b>segments, unsafe<b>)</b>
|
||||||
|
|
||||||
<p class=description>
|
<p class=description>
|
||||||
Builds a <tt><path></tt> component from a list of
|
Builds a <tt><path></tt> component from a list of
|
||||||
<tt><segment></tt> parts.
|
<tt><segment></tt> parts.
|
||||||
Before composition, any reserved characters found in a segment are escaped into
|
Before composition, any reserved characters found in a segment are escaped into
|
||||||
their protected form, so that the resulting path is a valid URL path
|
their protected form, so that the resulting path is a valid URL path
|
||||||
component.
|
component.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class=parameters>
|
<p class=parameters>
|
||||||
|
@ -165,8 +165,8 @@ characters are left untouched.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class=return>
|
<p class=return>
|
||||||
The function returns a string with the
|
The function returns a string with the
|
||||||
built <tt><path></tt> component.
|
built <tt><path></tt> component.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<!-- escape +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
<!-- escape +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||||
|
@ -178,7 +178,7 @@ url.<b>escape(</b>content<b>)</b>
|
||||||
<p class=description>
|
<p class=description>
|
||||||
Applies the URL escaping content coding to a string
|
Applies the URL escaping content coding to a string
|
||||||
Each byte is encoded as a percent character followed
|
Each byte is encoded as a percent character followed
|
||||||
by the two byte hexadecimal representation of its integer
|
by the two byte hexadecimal representation of its integer
|
||||||
value.
|
value.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
@ -270,8 +270,8 @@ url.<b>parse_path(</b>path<b>)</b>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class=description>
|
<p class=description>
|
||||||
Breaks a <tt><path></tt> URL component into all its
|
Breaks a <tt><path></tt> URL component into all its
|
||||||
<tt><segment></tt> parts.
|
<tt><segment></tt> parts.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class=description>
|
<p class=description>
|
||||||
|
@ -282,7 +282,7 @@ Breaks a <tt><path></tt> URL component into all its
|
||||||
Since some characters are reserved in URLs, they must be escaped
|
Since some characters are reserved in URLs, they must be escaped
|
||||||
whenever present in a <tt><path></tt> component. Therefore, before
|
whenever present in a <tt><path></tt> component. Therefore, before
|
||||||
returning a list with all the parsed segments, the function removes
|
returning a list with all the parsed segments, the function removes
|
||||||
escaping from all of them.
|
escaping from all of them.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<!-- unescape +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
<!-- unescape +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||||
|
@ -300,7 +300,7 @@ Removes the URL escaping content coding from a string.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class=return>
|
<p class=return>
|
||||||
The function returns the decoded string.
|
The function returns the decoded string.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<!-- footer +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
<!-- footer +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
make PLAT=linux DEBUG=DEBUG LUAINC_linux_base=/home/diego/build/ubuntu/include LUAPREFIX_linux=/home/diego/build/ubuntu
|
|
|
@ -69,6 +69,7 @@ local function make_plat(plat)
|
||||||
["socket.smtp"] = "src/smtp.lua",
|
["socket.smtp"] = "src/smtp.lua",
|
||||||
ltn12 = "src/ltn12.lua",
|
ltn12 = "src/ltn12.lua",
|
||||||
socket = "src/socket.lua",
|
socket = "src/socket.lua",
|
||||||
|
mbox = "src/mbox.lua",
|
||||||
mime = "src/mime.lua"
|
mime = "src/mime.lua"
|
||||||
}
|
}
|
||||||
if plat == "unix"
|
if plat == "unix"
|
||||||
|
|
|
@ -1,35 +0,0 @@
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
|
||||||
# Visual Studio 2012
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "socket", "socket.vcxproj", "{66E3CE14-884D-4AEA-9F20-15A0BEAF8C5A}"
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mime", "mime.vcxproj", "{128E8BD0-174A-48F0-8771-92B1E8D18713}"
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
Debug|Win32 = Debug|Win32
|
|
||||||
Debug|x64 = Debug|x64
|
|
||||||
Release|Win32 = Release|Win32
|
|
||||||
Release|x64 = Release|x64
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
||||||
{66E3CE14-884D-4AEA-9F20-15A0BEAF8C5A}.Debug|Win32.ActiveCfg = Debug|Win32
|
|
||||||
{66E3CE14-884D-4AEA-9F20-15A0BEAF8C5A}.Debug|Win32.Build.0 = Debug|Win32
|
|
||||||
{66E3CE14-884D-4AEA-9F20-15A0BEAF8C5A}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{66E3CE14-884D-4AEA-9F20-15A0BEAF8C5A}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{66E3CE14-884D-4AEA-9F20-15A0BEAF8C5A}.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
{66E3CE14-884D-4AEA-9F20-15A0BEAF8C5A}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
{66E3CE14-884D-4AEA-9F20-15A0BEAF8C5A}.Release|x64.ActiveCfg = Release|x64
|
|
||||||
{66E3CE14-884D-4AEA-9F20-15A0BEAF8C5A}.Release|x64.Build.0 = Release|x64
|
|
||||||
{128E8BD0-174A-48F0-8771-92B1E8D18713}.Debug|Win32.ActiveCfg = Debug|Win32
|
|
||||||
{128E8BD0-174A-48F0-8771-92B1E8D18713}.Debug|Win32.Build.0 = Debug|Win32
|
|
||||||
{128E8BD0-174A-48F0-8771-92B1E8D18713}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{128E8BD0-174A-48F0-8771-92B1E8D18713}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{128E8BD0-174A-48F0-8771-92B1E8D18713}.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
{128E8BD0-174A-48F0-8771-92B1E8D18713}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
{128E8BD0-174A-48F0-8771-92B1E8D18713}.Release|x64.ActiveCfg = Release|x64
|
|
||||||
{128E8BD0-174A-48F0-8771-92B1E8D18713}.Release|x64.Build.0 = Release|x64
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
|
||||||
HideSolutionNode = FALSE
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
|
@ -1 +0,0 @@
|
||||||
make DEBUG=DEBUG PLAT=macosx LUAINC_macosx_base=/Users/$USER/build/macosx/include LUAPREFIX_macosx=/Users/$USER/build/macosx install-both
|
|
0
makefile
Executable file → Normal file
0
makefile
Executable file → Normal file
|
@ -1,7 +1,7 @@
|
||||||
#--------------------------------------------------------------------------
|
#--------------------------------------------------------------------------
|
||||||
# Distribution makefile
|
# Distribution makefile
|
||||||
#--------------------------------------------------------------------------
|
#--------------------------------------------------------------------------
|
||||||
DIST = luasocket-3.0.0
|
DIST = luasocket-3.1.0
|
||||||
|
|
||||||
TEST = \
|
TEST = \
|
||||||
test/README \
|
test/README \
|
||||||
|
|
76
meson.build
Normal file
76
meson.build
Normal file
|
@ -0,0 +1,76 @@
|
||||||
|
project('luasocket', ['c'], meson_version: '>=0.56')
|
||||||
|
cc=meson.get_compiler('c')
|
||||||
|
|
||||||
|
deps_path = get_option('deps_dir')
|
||||||
|
deps_libs = [
|
||||||
|
join_paths(meson.project_source_root(), deps_path),
|
||||||
|
join_paths(meson.project_build_root(), deps_path)
|
||||||
|
]
|
||||||
|
extra_inc = []
|
||||||
|
|
||||||
|
luaver = get_option('lua_version')
|
||||||
|
|
||||||
|
if luaver == 'luajit'
|
||||||
|
lua_dep = dependency('luajit')
|
||||||
|
elif luaver != 'auto' and luaver != 'custom' and luaver != 'vendor'
|
||||||
|
lua_dep = dependency('lua' + luaver, required: false)
|
||||||
|
if not lua_dep.found()
|
||||||
|
lua_dep = dependency('lua-' + luaver, required: false)
|
||||||
|
endif
|
||||||
|
if not lua_dep.found()
|
||||||
|
lua_dep = dependency('lua' + ''.join(luaver.split('.')), required: false)
|
||||||
|
endif
|
||||||
|
if not lua_dep.found()
|
||||||
|
lua_dep = dependency('lua')
|
||||||
|
endif
|
||||||
|
if not lua_dep.version().startswith(luaver)
|
||||||
|
error('required lua version not found (got @0@)'
|
||||||
|
.format(lua_dep.version()))
|
||||||
|
endif
|
||||||
|
elif luaver == 'custom'
|
||||||
|
lua_dep = dependency('', required: false)
|
||||||
|
elif luaver == 'vendor'
|
||||||
|
lua_dep = dependency('', required: false)
|
||||||
|
extra_inc += include_directories(join_paths(deps_path, 'include'))
|
||||||
|
else
|
||||||
|
lua_dep = dependency('lua')
|
||||||
|
endif
|
||||||
|
|
||||||
|
luaver_maj = '5'
|
||||||
|
luaver_num = cc.compute_int(
|
||||||
|
'LUA_VERSION_NUM',
|
||||||
|
dependencies: lua_dep, include_directories: extra_inc
|
||||||
|
)
|
||||||
|
luaver_min = luaver_num - 500
|
||||||
|
luaver_str = '@0@.@1@'.format(luaver_maj, luaver_min)
|
||||||
|
|
||||||
|
if luaver_min < 1
|
||||||
|
error('Lua 5.1 or newer is required')
|
||||||
|
endif
|
||||||
|
|
||||||
|
# follow what lua does, i.e. .so everywhere except windows
|
||||||
|
plugin_suffix = 'so'
|
||||||
|
|
||||||
|
if host_machine.system() == 'windows'
|
||||||
|
plugin_suffix = 'dll'
|
||||||
|
endif
|
||||||
|
|
||||||
|
if host_machine.system() == 'windows'
|
||||||
|
# msys2, etc
|
||||||
|
lua_adep = cc.find_library('lua', dirs: deps_libs, required: false)
|
||||||
|
if not lua_adep.found()
|
||||||
|
# lua 5.1 uses lua5.1.dll/lib
|
||||||
|
lua_adep = cc.find_library(
|
||||||
|
'lua@0@.@1@'.format(luaver_maj, luaver_min),
|
||||||
|
dirs: deps_libs, required: false
|
||||||
|
)
|
||||||
|
endif
|
||||||
|
if not lua_adep.found()
|
||||||
|
# lua 5.2 onwards uses lua5.2.dll/lib
|
||||||
|
lua_adep = cc.find_library(
|
||||||
|
'lua@0@@1@'.format(luaver_maj, luaver_min), dirs: deps_libs
|
||||||
|
)
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
lua_adep = lua_dep.partial_dependency(compile_args: true, includes: true)
|
||||||
|
endif
|
11
meson_options.txt
Normal file
11
meson_options.txt
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
option('lua_version',
|
||||||
|
type: 'combo',
|
||||||
|
choices: ['auto', 'luajit', 'custom', 'vendor', '5.1', '5.2', '5.3', '5.4'],
|
||||||
|
description: 'The Lua version to use'
|
||||||
|
)
|
||||||
|
|
||||||
|
option('deps_dir',
|
||||||
|
type: 'string',
|
||||||
|
value: 'deps',
|
||||||
|
description: 'The name of vendored dependencies directory'
|
||||||
|
)
|
205
mime.vcxproj
205
mime.vcxproj
|
@ -1,205 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" ToolsVersion="15.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>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="src\mime.c" />
|
|
||||||
<ClCompile Include="src\compat.c" />
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup Label="Globals">
|
|
||||||
<ProjectGuid>{128E8BD0-174A-48F0-8771-92B1E8D18713}</ProjectGuid>
|
|
||||||
<Keyword>Win32Proj</Keyword>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
|
||||||
</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="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
|
|
||||||
<Import Project="Lua.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="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
|
|
||||||
<Import Project="Lua.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="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
|
|
||||||
<Import Project="Lua.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="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
|
|
||||||
<Import Project="Lua.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<_ProjectFileVersion>11.0.50727.1</_ProjectFileVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<OutDir>$(Configuration)\mime\</OutDir>
|
|
||||||
<IntDir>$(Configuration)\</IntDir>
|
|
||||||
<LinkIncremental>true</LinkIncremental>
|
|
||||||
<TargetName>core</TargetName>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<LinkIncremental>true</LinkIncremental>
|
|
||||||
<TargetName>core</TargetName>
|
|
||||||
<OutDir>$(Platform)\$(Configuration)\mime\</OutDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<OutDir>$(Configuration)\mime\</OutDir>
|
|
||||||
<IntDir>$(Configuration)\</IntDir>
|
|
||||||
<LinkIncremental>false</LinkIncremental>
|
|
||||||
<TargetName>core</TargetName>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<LinkIncremental>false</LinkIncremental>
|
|
||||||
<OutDir>$(Platform)\$(Configuration)\mime\</OutDir>
|
|
||||||
<TargetName>core</TargetName>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<Optimization>Disabled</Optimization>
|
|
||||||
<AdditionalIncludeDirectories>$(LUAINC);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;MIME_API=__declspec(dllexport);_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<MinimalRebuild>true</MinimalRebuild>
|
|
||||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
|
||||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
|
||||||
<PrecompiledHeader />
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
|
||||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName)$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<AdditionalDependencies>$(LUALIBNAME);%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<OutputFile>$(OutDir)$(TargetName).dll</OutputFile>
|
|
||||||
<AdditionalLibraryDirectories>$(LUALIB);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<ProgramDatabaseFile>$(OutDir)mime.pdb</ProgramDatabaseFile>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
|
||||||
<DataExecutionPrevention />
|
|
||||||
<ImportLibrary>$(OutDir)$(TargetName).lib</ImportLibrary>
|
|
||||||
<TargetMachine>MachineX86</TargetMachine>
|
|
||||||
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<ClCompile>
|
|
||||||
<Optimization>Disabled</Optimization>
|
|
||||||
<AdditionalIncludeDirectories>$(LUAINC);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;MIME_API=__declspec(dllexport);_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
|
||||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
|
||||||
<PrecompiledHeader>
|
|
||||||
</PrecompiledHeader>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
|
||||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName)$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<AdditionalDependencies>$(LUALIBNAME);%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<OutputFile>$(OutDir)$(TargetName).dll</OutputFile>
|
|
||||||
<AdditionalLibraryDirectories>$(LUALIB);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<ProgramDatabaseFile>$(OutDir)mime.pdb</ProgramDatabaseFile>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
|
||||||
<DataExecutionPrevention>
|
|
||||||
</DataExecutionPrevention>
|
|
||||||
<ImportLibrary>$(OutDir)$(TargetName).lib</ImportLibrary>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<AdditionalIncludeDirectories>$(LUAINC);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;MIME_API=__declspec(dllexport);_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
|
||||||
<PrecompiledHeader />
|
|
||||||
<WarningLevel>Level4</WarningLevel>
|
|
||||||
<DebugInformationFormat />
|
|
||||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName)$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<AdditionalDependencies>$(LUALIBNAME);%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<OutputFile>$(OutDir)$(TargetName).dll</OutputFile>
|
|
||||||
<AdditionalLibraryDirectories>$(LUALIB);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
||||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
|
||||||
<DataExecutionPrevention />
|
|
||||||
<ImportLibrary>$(OutDir)$(TargetName).lib</ImportLibrary>
|
|
||||||
<TargetMachine>MachineX86</TargetMachine>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<ClCompile>
|
|
||||||
<AdditionalIncludeDirectories>$(LUAINC);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;MIME_API=__declspec(dllexport);_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
|
||||||
<PrecompiledHeader>
|
|
||||||
</PrecompiledHeader>
|
|
||||||
<WarningLevel>Level4</WarningLevel>
|
|
||||||
<DebugInformationFormat>
|
|
||||||
</DebugInformationFormat>
|
|
||||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName)$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<AdditionalDependencies>$(LUALIBNAME);%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<OutputFile>$(OutDir)$(TargetName).dll</OutputFile>
|
|
||||||
<AdditionalLibraryDirectories>$(LUALIB);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
||||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
|
||||||
<DataExecutionPrevention>
|
|
||||||
</DataExecutionPrevention>
|
|
||||||
<ImportLibrary>$(OutDir)$(TargetName).lib</ImportLibrary>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
||||||
<ImportGroup Label="ExtensionTargets">
|
|
||||||
</ImportGroup>
|
|
||||||
</Project>
|
|
|
@ -1 +0,0 @@
|
||||||
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
|
|
216
socket.vcxproj
216
socket.vcxproj
|
@ -1,216 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" ToolsVersion="15.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>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="src\auxiliar.c" />
|
|
||||||
<ClCompile Include="src\buffer.c" />
|
|
||||||
<ClCompile Include="src\compat.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>
|
|
||||||
<PropertyGroup Label="Globals">
|
|
||||||
<ProjectGuid>{66E3CE14-884D-4AEA-9F20-15A0BEAF8C5A}</ProjectGuid>
|
|
||||||
<Keyword>Win32Proj</Keyword>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
|
||||||
</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="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
|
|
||||||
<Import Project="Lua.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="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
|
|
||||||
<Import Project="Lua.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="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
|
|
||||||
<Import Project="Lua.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="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
|
|
||||||
<Import Project="Lua.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<_ProjectFileVersion>11.0.50727.1</_ProjectFileVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<OutDir>$(Configuration)\socket\</OutDir>
|
|
||||||
<IntDir>$(Configuration)\</IntDir>
|
|
||||||
<LinkIncremental>true</LinkIncremental>
|
|
||||||
<TargetName>core</TargetName>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<LinkIncremental>true</LinkIncremental>
|
|
||||||
<TargetName>core</TargetName>
|
|
||||||
<OutDir>$(Platform)\$(Configuration)\socket\</OutDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<OutDir>$(Configuration)\socket\</OutDir>
|
|
||||||
<IntDir>$(Configuration)\</IntDir>
|
|
||||||
<LinkIncremental>false</LinkIncremental>
|
|
||||||
<TargetName>core</TargetName>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<LinkIncremental>false</LinkIncremental>
|
|
||||||
<OutDir>$(Platform)\$(Configuration)\socket\</OutDir>
|
|
||||||
<TargetName>core</TargetName>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<Optimization>Disabled</Optimization>
|
|
||||||
<AdditionalIncludeDirectories>$(LUAINC);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;LUASOCKET_API=__declspec(dllexport);_CRT_SECURE_NO_WARNINGS;LUASOCKET_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<MinimalRebuild>true</MinimalRebuild>
|
|
||||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
|
||||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
|
||||||
<PrecompiledHeader />
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
|
||||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName)$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<AdditionalDependencies>$(LUALIBNAME);ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<OutputFile>$(OutDir)$(TargetName).dll</OutputFile>
|
|
||||||
<AdditionalLibraryDirectories>$(LUALIB);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<ProgramDatabaseFile>$(OutDir)mime.pdb</ProgramDatabaseFile>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
|
||||||
<DataExecutionPrevention />
|
|
||||||
<ImportLibrary>$(OutDir)$(TargetName).lib</ImportLibrary>
|
|
||||||
<TargetMachine>MachineX86</TargetMachine>
|
|
||||||
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<ClCompile>
|
|
||||||
<Optimization>Disabled</Optimization>
|
|
||||||
<AdditionalIncludeDirectories>$(LUAINC);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;LUASOCKET_API=__declspec(dllexport);_CRT_SECURE_NO_WARNINGS;LUASOCKET_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
|
||||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
|
||||||
<PrecompiledHeader>
|
|
||||||
</PrecompiledHeader>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
|
||||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName)$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<AdditionalDependencies>$(LUALIBNAME);ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<OutputFile>$(OutDir)$(TargetName).dll</OutputFile>
|
|
||||||
<AdditionalLibraryDirectories>$(LUALIB);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<ProgramDatabaseFile>$(OutDir)mime.pdb</ProgramDatabaseFile>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
|
||||||
<DataExecutionPrevention>
|
|
||||||
</DataExecutionPrevention>
|
|
||||||
<ImportLibrary>$(OutDir)$(TargetName).lib</ImportLibrary>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<AdditionalIncludeDirectories>$(LUAINC);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;LUASOCKET_API=__declspec(dllexport);_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
|
||||||
<PrecompiledHeader />
|
|
||||||
<WarningLevel>Level4</WarningLevel>
|
|
||||||
<DebugInformationFormat />
|
|
||||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName)$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<AdditionalDependencies>$(LUALIBNAME);ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<OutputFile>$(OutDir)$(TargetName).dll</OutputFile>
|
|
||||||
<AdditionalLibraryDirectories>$(LUALIB);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
||||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
|
||||||
<DataExecutionPrevention />
|
|
||||||
<ImportLibrary>$(OutDir)$(TargetName).lib</ImportLibrary>
|
|
||||||
<TargetMachine>MachineX86</TargetMachine>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<ClCompile>
|
|
||||||
<AdditionalIncludeDirectories>$(LUAINC);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;LUASOCKET_API=__declspec(dllexport);_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
|
||||||
<PrecompiledHeader>
|
|
||||||
</PrecompiledHeader>
|
|
||||||
<WarningLevel>Level4</WarningLevel>
|
|
||||||
<DebugInformationFormat>
|
|
||||||
</DebugInformationFormat>
|
|
||||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName)$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<AdditionalDependencies>$(LUALIBNAME);ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<OutputFile>$(OutDir)$(TargetName).dll</OutputFile>
|
|
||||||
<AdditionalLibraryDirectories>$(LUALIB);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
||||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
|
||||||
<DataExecutionPrevention>
|
|
||||||
</DataExecutionPrevention>
|
|
||||||
<ImportLibrary>$(OutDir)$(TargetName).lib</ImportLibrary>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
||||||
<ImportGroup Label="ExtensionTargets">
|
|
||||||
</ImportGroup>
|
|
||||||
</Project>
|
|
19
src/http.lua
19
src/http.lua
|
@ -54,7 +54,7 @@ local function receiveheaders(sock, headers)
|
||||||
while line ~= "" do
|
while line ~= "" do
|
||||||
-- get field-name and value
|
-- get field-name and value
|
||||||
name, value = socket.skip(2, string.find(line, "^(.-):%s*(.*)"))
|
name, value = socket.skip(2, string.find(line, "^(.-):%s*(.*)"))
|
||||||
if not (name and value) then return nil, "malformed reponse headers" end
|
if not (name and value) then return nil, "malformed response headers" end
|
||||||
name = string.lower(name)
|
name = string.lower(name)
|
||||||
-- get next line (value might be folded)
|
-- get next line (value might be folded)
|
||||||
line, err = sock:receive()
|
line, err = sock:receive()
|
||||||
|
@ -62,7 +62,7 @@ local function receiveheaders(sock, headers)
|
||||||
-- unfold any folded values
|
-- unfold any folded values
|
||||||
while string.find(line, "^%s") do
|
while string.find(line, "^%s") do
|
||||||
value = value .. line
|
value = value .. line
|
||||||
line = sock:receive()
|
line, err = sock:receive()
|
||||||
if err then return nil, err end
|
if err then return nil, err end
|
||||||
end
|
end
|
||||||
-- save pair in table
|
-- save pair in table
|
||||||
|
@ -81,7 +81,7 @@ socket.sourcet["http-chunked"] = function(sock, headers)
|
||||||
dirty = function() return sock:dirty() end
|
dirty = function() return sock:dirty() end
|
||||||
}, {
|
}, {
|
||||||
__call = function()
|
__call = function()
|
||||||
-- get chunk size, skip extention
|
-- get chunk size, skip extension
|
||||||
local line, err = sock:receive()
|
local line, err = sock:receive()
|
||||||
if err then return nil, err end
|
if err then return nil, err end
|
||||||
local size = base.tonumber(string.gsub(line, ";.*", ""), 16)
|
local size = base.tonumber(string.gsub(line, ";.*", ""), 16)
|
||||||
|
@ -219,9 +219,11 @@ local function adjustproxy(reqt)
|
||||||
local proxy = reqt.proxy or _M.PROXY
|
local proxy = reqt.proxy or _M.PROXY
|
||||||
if proxy then
|
if proxy then
|
||||||
proxy = url.parse(proxy)
|
proxy = url.parse(proxy)
|
||||||
return proxy.host, proxy.port or 3128
|
proxy.port = proxy.port or 3128
|
||||||
|
proxy.create = SCHEMES[proxy.scheme].create(reqt)
|
||||||
|
return proxy.host, proxy.port, proxy.create
|
||||||
else
|
else
|
||||||
return reqt.host, reqt.port
|
return reqt.host, reqt.port, reqt.create
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -279,7 +281,7 @@ local function adjustrequest(reqt)
|
||||||
if not (host and host ~= "") then
|
if not (host and host ~= "") then
|
||||||
socket.try(nil, "invalid host '" .. base.tostring(nreqt.host) .. "'")
|
socket.try(nil, "invalid host '" .. base.tostring(nreqt.host) .. "'")
|
||||||
end
|
end
|
||||||
-- compute uri if user hasn't overriden
|
-- compute uri if user hasn't overridden
|
||||||
nreqt.uri = reqt.uri or adjusturi(nreqt)
|
nreqt.uri = reqt.uri or adjusturi(nreqt)
|
||||||
-- adjust headers in request
|
-- adjust headers in request
|
||||||
nreqt.headers = adjustheaders(nreqt)
|
nreqt.headers = adjustheaders(nreqt)
|
||||||
|
@ -291,7 +293,10 @@ local function adjustrequest(reqt)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- ajust host and port if there is a proxy
|
-- ajust host and port if there is a proxy
|
||||||
nreqt.host, nreqt.port = adjustproxy(nreqt)
|
local proxy_create
|
||||||
|
nreqt.host, nreqt.port, proxy_create = adjustproxy(nreqt)
|
||||||
|
if not reqt.create then nreqt.create = proxy_create end
|
||||||
|
|
||||||
return nreqt
|
return nreqt
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
2
src/inet.c
Executable file → Normal file
2
src/inet.c
Executable file → Normal file
|
@ -290,7 +290,7 @@ int inet_meth_getsockname(lua_State *L, p_socket ps, int family)
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
lua_pushstring(L, name);
|
lua_pushstring(L, name);
|
||||||
lua_pushstring(L, port);
|
lua_pushinteger(L, (int) strtol(port, (char **) NULL, 10));
|
||||||
switch (family) {
|
switch (family) {
|
||||||
case AF_INET: lua_pushliteral(L, "inet"); break;
|
case AF_INET: lua_pushliteral(L, "inet"); break;
|
||||||
case AF_INET6: lua_pushliteral(L, "inet6"); break;
|
case AF_INET6: lua_pushliteral(L, "inet6"); break;
|
||||||
|
|
0
src/luasocket.c
Executable file → Normal file
0
src/luasocket.c
Executable file → Normal file
|
@ -10,7 +10,7 @@
|
||||||
/*-------------------------------------------------------------------------* \
|
/*-------------------------------------------------------------------------* \
|
||||||
* Current socket library version
|
* Current socket library version
|
||||||
\*-------------------------------------------------------------------------*/
|
\*-------------------------------------------------------------------------*/
|
||||||
#define LUASOCKET_VERSION "LuaSocket 3.0.0"
|
#define LUASOCKET_VERSION "LuaSocket 3.1.0"
|
||||||
#define LUASOCKET_COPYRIGHT "Copyright (C) 1999-2013 Diego Nehab"
|
#define LUASOCKET_COPYRIGHT "Copyright (C) 1999-2013 Diego Nehab"
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------*\
|
/*-------------------------------------------------------------------------*\
|
||||||
|
|
4
src/makefile
Executable file → Normal file
4
src/makefile
Executable file → Normal file
|
@ -1,6 +1,6 @@
|
||||||
# luasocket src/makefile
|
# luasocket src/makefile
|
||||||
#
|
#
|
||||||
# Definitions in this section can be overriden on the command line or in the
|
# Definitions in this section can be overridden on the command line or in the
|
||||||
# environment.
|
# environment.
|
||||||
#
|
#
|
||||||
# These are equivalent:
|
# These are equivalent:
|
||||||
|
@ -272,7 +272,7 @@ SOCKET_win64=wsocket.obj
|
||||||
#
|
#
|
||||||
SO=$(SO_$(PLAT))
|
SO=$(SO_$(PLAT))
|
||||||
O=$(O_$(PLAT))
|
O=$(O_$(PLAT))
|
||||||
SOCKET_V=3.0.0
|
SOCKET_V=3.1.0
|
||||||
MIME_V=1.0.3
|
MIME_V=1.0.3
|
||||||
SOCKET_SO=socket-$(SOCKET_V).$(SO)
|
SOCKET_SO=socket-$(SOCKET_V).$(SO)
|
||||||
MIME_SO=mime-$(MIME_V).$(SO)
|
MIME_SO=mime-$(MIME_V).$(SO)
|
||||||
|
|
0
src/mime.c
Executable file → Normal file
0
src/mime.c
Executable file → Normal file
|
@ -12,7 +12,7 @@
|
||||||
#define PIE_CONNREFUSED "connection refused"
|
#define PIE_CONNREFUSED "connection refused"
|
||||||
#define PIE_CONNABORTED "closed"
|
#define PIE_CONNABORTED "closed"
|
||||||
#define PIE_CONNRESET "closed"
|
#define PIE_CONNRESET "closed"
|
||||||
#define PIE_TIMEDOUT "connection timeout"
|
#define PIE_TIMEDOUT "timeout"
|
||||||
#define PIE_AGAIN "temporary failure in name resolution"
|
#define PIE_AGAIN "temporary failure in name resolution"
|
||||||
#define PIE_BADFLAGS "invalid value for ai_flags"
|
#define PIE_BADFLAGS "invalid value for ai_flags"
|
||||||
#define PIE_BADHINTS "invalid value for hints"
|
#define PIE_BADHINTS "invalid value for hints"
|
||||||
|
|
|
@ -225,7 +225,7 @@ local function adjust_headers(mesgt)
|
||||||
lower["date"] = lower["date"] or
|
lower["date"] = lower["date"] or
|
||||||
os.date("!%a, %d %b %Y %H:%M:%S ") .. (mesgt.zone or _M.ZONE)
|
os.date("!%a, %d %b %Y %H:%M:%S ") .. (mesgt.zone or _M.ZONE)
|
||||||
lower["x-mailer"] = lower["x-mailer"] or socket._VERSION
|
lower["x-mailer"] = lower["x-mailer"] or socket._VERSION
|
||||||
-- this can't be overriden
|
-- this can't be overridden
|
||||||
lower["mime-version"] = "1.0"
|
lower["mime-version"] = "1.0"
|
||||||
return lower
|
return lower
|
||||||
end
|
end
|
||||||
|
@ -253,4 +253,4 @@ _M.send = socket.protect(function(mailt)
|
||||||
return s:close()
|
return s:close()
|
||||||
end)
|
end)
|
||||||
|
|
||||||
return _M
|
return _M
|
||||||
|
|
0
src/socket.h
Executable file → Normal file
0
src/socket.h
Executable file → Normal file
0
src/udp.c
Executable file → Normal file
0
src/udp.c
Executable file → Normal file
|
@ -16,13 +16,6 @@
|
||||||
|
|
||||||
#define UNIXDGRAM_DATAGRAMSIZE 8192
|
#define UNIXDGRAM_DATAGRAMSIZE 8192
|
||||||
|
|
||||||
/* provide a SUN_LEN macro if sys/un.h doesn't (e.g. Android) */
|
|
||||||
#ifndef SUN_LEN
|
|
||||||
#define SUN_LEN(ptr) \
|
|
||||||
((size_t) (((struct sockaddr_un *) 0)->sun_path) \
|
|
||||||
+ strlen ((ptr)->sun_path))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*=========================================================================*\
|
/*=========================================================================*\
|
||||||
* Internal function prototypes
|
* Internal function prototypes
|
||||||
\*=========================================================================*/
|
\*=========================================================================*/
|
||||||
|
@ -42,8 +35,8 @@ static int meth_receivefrom(lua_State *L);
|
||||||
static int meth_sendto(lua_State *L);
|
static int meth_sendto(lua_State *L);
|
||||||
static int meth_getsockname(lua_State *L);
|
static int meth_getsockname(lua_State *L);
|
||||||
|
|
||||||
static const char *unixdgram_tryconnect(p_unix un, const char *path);
|
static const char *unixdgram_tryconnect(p_unix un, const char *path, size_t len);
|
||||||
static const char *unixdgram_trybind(p_unix un, const char *path);
|
static const char *unixdgram_trybind(p_unix un, const char *path, size_t len);
|
||||||
|
|
||||||
/* unixdgram object methods */
|
/* unixdgram object methods */
|
||||||
static luaL_Reg unixdgram_methods[] = {
|
static luaL_Reg unixdgram_methods[] = {
|
||||||
|
@ -133,13 +126,12 @@ static int meth_send(lua_State *L)
|
||||||
static int meth_sendto(lua_State *L)
|
static int meth_sendto(lua_State *L)
|
||||||
{
|
{
|
||||||
p_unix un = (p_unix) auxiliar_checkclass(L, "unixdgram{unconnected}", 1);
|
p_unix un = (p_unix) auxiliar_checkclass(L, "unixdgram{unconnected}", 1);
|
||||||
size_t count, sent = 0;
|
size_t count, sent, len = 0;
|
||||||
const char *data = luaL_checklstring(L, 2, &count);
|
const char *data = luaL_checklstring(L, 2, &count);
|
||||||
const char *path = luaL_checkstring(L, 3);
|
const char *path = luaL_checklstring(L, 3, &len);
|
||||||
p_timeout tm = &un->tm;
|
p_timeout tm = &un->tm;
|
||||||
int err;
|
int err;
|
||||||
struct sockaddr_un remote;
|
struct sockaddr_un remote;
|
||||||
size_t len = strlen(path);
|
|
||||||
|
|
||||||
if (len >= sizeof(remote.sun_path)) {
|
if (len >= sizeof(remote.sun_path)) {
|
||||||
lua_pushnil(L);
|
lua_pushnil(L);
|
||||||
|
@ -148,7 +140,7 @@ static int meth_sendto(lua_State *L)
|
||||||
}
|
}
|
||||||
|
|
||||||
memset(&remote, 0, sizeof(remote));
|
memset(&remote, 0, sizeof(remote));
|
||||||
strcpy(remote.sun_path, path);
|
memcpy(remote.sun_path, path, len);
|
||||||
remote.sun_family = AF_UNIX;
|
remote.sun_family = AF_UNIX;
|
||||||
timeout_markstart(tm);
|
timeout_markstart(tm);
|
||||||
#ifdef UNIX_HAS_SUN_LEN
|
#ifdef UNIX_HAS_SUN_LEN
|
||||||
|
@ -264,18 +256,22 @@ static int meth_dirty(lua_State *L) {
|
||||||
/*-------------------------------------------------------------------------*\
|
/*-------------------------------------------------------------------------*\
|
||||||
* Binds an object to an address
|
* Binds an object to an address
|
||||||
\*-------------------------------------------------------------------------*/
|
\*-------------------------------------------------------------------------*/
|
||||||
static const char *unixdgram_trybind(p_unix un, const char *path) {
|
static const char *unixdgram_trybind(p_unix un, const char *path, size_t len) {
|
||||||
struct sockaddr_un local;
|
struct sockaddr_un local;
|
||||||
size_t len = strlen(path);
|
int err;
|
||||||
if (len >= sizeof(local.sun_path)) return "path too long";
|
if (len >= sizeof(local.sun_path)) return "path too long";
|
||||||
memset(&local, 0, sizeof(local));
|
memset(&local, 0, sizeof(local));
|
||||||
strcpy(local.sun_path, path);
|
memcpy(local.sun_path, path, len);
|
||||||
local.sun_family = AF_UNIX;
|
local.sun_family = AF_UNIX;
|
||||||
size_t addrlen = SUN_LEN(&local);
|
|
||||||
#ifdef UNIX_HAS_SUN_LEN
|
#ifdef UNIX_HAS_SUN_LEN
|
||||||
local.sun_len = addrlen + 1;
|
local.sun_len = sizeof(local.sun_family) + sizeof(local.sun_len)
|
||||||
|
+ len + 1;
|
||||||
|
err = socket_bind(&un->sock, (SA *) &local, local.sun_len);
|
||||||
|
|
||||||
|
#else
|
||||||
|
err = socket_bind(&un->sock, (SA *) &local,
|
||||||
|
sizeof(local.sun_family) + len);
|
||||||
#endif
|
#endif
|
||||||
int err = socket_bind(&un->sock, (SA *) &local, addrlen);
|
|
||||||
if (err != IO_DONE) socket_destroy(&un->sock);
|
if (err != IO_DONE) socket_destroy(&un->sock);
|
||||||
return socket_strerror(err);
|
return socket_strerror(err);
|
||||||
}
|
}
|
||||||
|
@ -283,8 +279,9 @@ static const char *unixdgram_trybind(p_unix un, const char *path) {
|
||||||
static int meth_bind(lua_State *L)
|
static int meth_bind(lua_State *L)
|
||||||
{
|
{
|
||||||
p_unix un = (p_unix) auxiliar_checkclass(L, "unixdgram{unconnected}", 1);
|
p_unix un = (p_unix) auxiliar_checkclass(L, "unixdgram{unconnected}", 1);
|
||||||
const char *path = luaL_checkstring(L, 2);
|
size_t len;
|
||||||
const char *err = unixdgram_trybind(un, path);
|
const char *path = luaL_checklstring(L, 2, &len);
|
||||||
|
const char *err = unixdgram_trybind(un, path, len);
|
||||||
if (err) {
|
if (err) {
|
||||||
lua_pushnil(L);
|
lua_pushnil(L);
|
||||||
lua_pushstring(L, err);
|
lua_pushstring(L, err);
|
||||||
|
@ -313,20 +310,23 @@ static int meth_getsockname(lua_State *L)
|
||||||
/*-------------------------------------------------------------------------*\
|
/*-------------------------------------------------------------------------*\
|
||||||
* Turns a master unixdgram object into a client object.
|
* Turns a master unixdgram object into a client object.
|
||||||
\*-------------------------------------------------------------------------*/
|
\*-------------------------------------------------------------------------*/
|
||||||
static const char *unixdgram_tryconnect(p_unix un, const char *path)
|
static const char *unixdgram_tryconnect(p_unix un, const char *path, size_t len)
|
||||||
{
|
{
|
||||||
struct sockaddr_un remote;
|
struct sockaddr_un remote;
|
||||||
size_t len = strlen(path);
|
int err;
|
||||||
if (len >= sizeof(remote.sun_path)) return "path too long";
|
if (len >= sizeof(remote.sun_path)) return "path too long";
|
||||||
memset(&remote, 0, sizeof(remote));
|
memset(&remote, 0, sizeof(remote));
|
||||||
strcpy(remote.sun_path, path);
|
memcpy(remote.sun_path, path, len);
|
||||||
remote.sun_family = AF_UNIX;
|
remote.sun_family = AF_UNIX;
|
||||||
timeout_markstart(&un->tm);
|
timeout_markstart(&un->tm);
|
||||||
size_t addrlen = SUN_LEN(&remote);
|
|
||||||
#ifdef UNIX_HAS_SUN_LEN
|
#ifdef UNIX_HAS_SUN_LEN
|
||||||
remote.sun_len = addrlen + 1;
|
remote.sun_len = sizeof(remote.sun_family) + sizeof(remote.sun_len)
|
||||||
|
+ len + 1;
|
||||||
|
err = socket_connect(&un->sock, (SA *) &remote, remote.sun_len, &un->tm);
|
||||||
|
#else
|
||||||
|
err = socket_connect(&un->sock, (SA *) &remote,
|
||||||
|
sizeof(remote.sun_family) + len, &un->tm);
|
||||||
#endif
|
#endif
|
||||||
int err = socket_connect(&un->sock, (SA *) &remote, addrlen, &un->tm);
|
|
||||||
if (err != IO_DONE) socket_destroy(&un->sock);
|
if (err != IO_DONE) socket_destroy(&un->sock);
|
||||||
return socket_strerror(err);
|
return socket_strerror(err);
|
||||||
}
|
}
|
||||||
|
@ -334,8 +334,9 @@ static const char *unixdgram_tryconnect(p_unix un, const char *path)
|
||||||
static int meth_connect(lua_State *L)
|
static int meth_connect(lua_State *L)
|
||||||
{
|
{
|
||||||
p_unix un = (p_unix) auxiliar_checkgroup(L, "unixdgram{any}", 1);
|
p_unix un = (p_unix) auxiliar_checkgroup(L, "unixdgram{any}", 1);
|
||||||
const char *path = luaL_checkstring(L, 2);
|
size_t len;
|
||||||
const char *err = unixdgram_tryconnect(un, path);
|
const char *path = luaL_checklstring(L, 2, &len);
|
||||||
|
const char *err = unixdgram_tryconnect(un, path, len);
|
||||||
if (err) {
|
if (err) {
|
||||||
lua_pushnil(L);
|
lua_pushnil(L);
|
||||||
lua_pushstring(L, err);
|
lua_pushstring(L, err);
|
||||||
|
|
|
@ -33,8 +33,8 @@ static int meth_getstats(lua_State *L);
|
||||||
static int meth_setstats(lua_State *L);
|
static int meth_setstats(lua_State *L);
|
||||||
static int meth_getsockname(lua_State *L);
|
static int meth_getsockname(lua_State *L);
|
||||||
|
|
||||||
static const char *unixstream_tryconnect(p_unix un, const char *path);
|
static const char *unixstream_tryconnect(p_unix un, const char *path, size_t len);
|
||||||
static const char *unixstream_trybind(p_unix un, const char *path);
|
static const char *unixstream_trybind(p_unix un, const char *path, size_t len);
|
||||||
|
|
||||||
/* unixstream object methods */
|
/* unixstream object methods */
|
||||||
static luaL_Reg unixstream_methods[] = {
|
static luaL_Reg unixstream_methods[] = {
|
||||||
|
@ -181,13 +181,12 @@ static int meth_accept(lua_State *L) {
|
||||||
/*-------------------------------------------------------------------------*\
|
/*-------------------------------------------------------------------------*\
|
||||||
* Binds an object to an address
|
* Binds an object to an address
|
||||||
\*-------------------------------------------------------------------------*/
|
\*-------------------------------------------------------------------------*/
|
||||||
static const char *unixstream_trybind(p_unix un, const char *path) {
|
static const char *unixstream_trybind(p_unix un, const char *path, size_t len) {
|
||||||
struct sockaddr_un local;
|
struct sockaddr_un local;
|
||||||
size_t len = strlen(path);
|
|
||||||
int err;
|
int err;
|
||||||
if (len >= sizeof(local.sun_path)) return "path too long";
|
if (len >= sizeof(local.sun_path)) return "path too long";
|
||||||
memset(&local, 0, sizeof(local));
|
memset(&local, 0, sizeof(local));
|
||||||
strcpy(local.sun_path, path);
|
memcpy(local.sun_path, path, len);
|
||||||
local.sun_family = AF_UNIX;
|
local.sun_family = AF_UNIX;
|
||||||
#ifdef UNIX_HAS_SUN_LEN
|
#ifdef UNIX_HAS_SUN_LEN
|
||||||
local.sun_len = sizeof(local.sun_family) + sizeof(local.sun_len)
|
local.sun_len = sizeof(local.sun_family) + sizeof(local.sun_len)
|
||||||
|
@ -204,8 +203,9 @@ static const char *unixstream_trybind(p_unix un, const char *path) {
|
||||||
|
|
||||||
static int meth_bind(lua_State *L) {
|
static int meth_bind(lua_State *L) {
|
||||||
p_unix un = (p_unix) auxiliar_checkclass(L, "unixstream{master}", 1);
|
p_unix un = (p_unix) auxiliar_checkclass(L, "unixstream{master}", 1);
|
||||||
const char *path = luaL_checkstring(L, 2);
|
size_t len;
|
||||||
const char *err = unixstream_trybind(un, path);
|
const char *path = luaL_checklstring(L, 2, &len);
|
||||||
|
const char *err = unixstream_trybind(un, path, len);
|
||||||
if (err) {
|
if (err) {
|
||||||
lua_pushnil(L);
|
lua_pushnil(L);
|
||||||
lua_pushstring(L, err);
|
lua_pushstring(L, err);
|
||||||
|
@ -234,14 +234,13 @@ static int meth_getsockname(lua_State *L)
|
||||||
/*-------------------------------------------------------------------------*\
|
/*-------------------------------------------------------------------------*\
|
||||||
* Turns a master unixstream object into a client object.
|
* Turns a master unixstream object into a client object.
|
||||||
\*-------------------------------------------------------------------------*/
|
\*-------------------------------------------------------------------------*/
|
||||||
static const char *unixstream_tryconnect(p_unix un, const char *path)
|
static const char *unixstream_tryconnect(p_unix un, const char *path, size_t len)
|
||||||
{
|
{
|
||||||
struct sockaddr_un remote;
|
struct sockaddr_un remote;
|
||||||
int err;
|
int err;
|
||||||
size_t len = strlen(path);
|
|
||||||
if (len >= sizeof(remote.sun_path)) return "path too long";
|
if (len >= sizeof(remote.sun_path)) return "path too long";
|
||||||
memset(&remote, 0, sizeof(remote));
|
memset(&remote, 0, sizeof(remote));
|
||||||
strcpy(remote.sun_path, path);
|
memcpy(remote.sun_path, path, len);
|
||||||
remote.sun_family = AF_UNIX;
|
remote.sun_family = AF_UNIX;
|
||||||
timeout_markstart(&un->tm);
|
timeout_markstart(&un->tm);
|
||||||
#ifdef UNIX_HAS_SUN_LEN
|
#ifdef UNIX_HAS_SUN_LEN
|
||||||
|
@ -259,8 +258,9 @@ static const char *unixstream_tryconnect(p_unix un, const char *path)
|
||||||
static int meth_connect(lua_State *L)
|
static int meth_connect(lua_State *L)
|
||||||
{
|
{
|
||||||
p_unix un = (p_unix) auxiliar_checkclass(L, "unixstream{master}", 1);
|
p_unix un = (p_unix) auxiliar_checkclass(L, "unixstream{master}", 1);
|
||||||
const char *path = luaL_checkstring(L, 2);
|
size_t len;
|
||||||
const char *err = unixstream_tryconnect(un, path);
|
const char *path = luaL_checklstring(L, 2, &len);
|
||||||
|
const char *err = unixstream_tryconnect(un, path, len);
|
||||||
if (err) {
|
if (err) {
|
||||||
lua_pushnil(L);
|
lua_pushnil(L);
|
||||||
lua_pushstring(L, err);
|
lua_pushstring(L, err);
|
||||||
|
|
|
@ -152,7 +152,7 @@ function _M.parse(url, default)
|
||||||
url = string.gsub(url, "^([%w][%w%+%-%.]*)%:",
|
url = string.gsub(url, "^([%w][%w%+%-%.]*)%:",
|
||||||
function(s) parsed.scheme = s; return "" end)
|
function(s) parsed.scheme = s; return "" end)
|
||||||
-- get authority
|
-- get authority
|
||||||
url = string.gsub(url, "^//([^/]*)", function(n)
|
url = string.gsub(url, "^//([^/%?#]*)", function(n)
|
||||||
parsed.authority = n
|
parsed.authority = n
|
||||||
return ""
|
return ""
|
||||||
end)
|
end)
|
||||||
|
|
2
src/wsocket.c
Executable file → Normal file
2
src/wsocket.c
Executable file → Normal file
|
@ -262,6 +262,7 @@ int socket_recv(p_socket ps, char *data, size_t count, size_t *got,
|
||||||
if (err != WSAEWOULDBLOCK) {
|
if (err != WSAEWOULDBLOCK) {
|
||||||
if (err != WSAECONNRESET || prev == WSAECONNRESET) return err;
|
if (err != WSAECONNRESET || prev == WSAECONNRESET) return err;
|
||||||
prev = err;
|
prev = err;
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
if ((err = socket_waitfd(ps, WAITFD_R, tm)) != IO_DONE) return err;
|
if ((err = socket_waitfd(ps, WAITFD_R, tm)) != IO_DONE) return err;
|
||||||
}
|
}
|
||||||
|
@ -291,6 +292,7 @@ int socket_recvfrom(p_socket ps, char *data, size_t count, size_t *got,
|
||||||
if (err != WSAEWOULDBLOCK) {
|
if (err != WSAEWOULDBLOCK) {
|
||||||
if (err != WSAECONNRESET || prev == WSAECONNRESET) return err;
|
if (err != WSAECONNRESET || prev == WSAECONNRESET) return err;
|
||||||
prev = err;
|
prev = err;
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
if ((err = socket_waitfd(ps, WAITFD_R, tm)) != IO_DONE) return err;
|
if ((err = socket_waitfd(ps, WAITFD_R, tm)) != IO_DONE) return err;
|
||||||
}
|
}
|
||||||
|
|
3
vc32.bat
3
vc32.bat
|
@ -1,3 +0,0 @@
|
||||||
call "c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvars32.bat"
|
|
||||||
cls
|
|
||||||
"c:\Program Files\Git\git-bash.exe" --cd-to-home
|
|
3
vc64.bat
3
vc64.bat
|
@ -1,3 +0,0 @@
|
||||||
call "c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\vcvars64.bat"
|
|
||||||
cls
|
|
||||||
"c:\Program Files\Git\git-bash.exe" --cd-to-home
|
|
|
@ -1 +0,0 @@
|
||||||
LUAV=5.3 PLAT=win32 LUAPREFIX_win32=/z/data/build/vc14 make
|
|
|
@ -1 +0,0 @@
|
||||||
LUAV=5.3 PLAT=win64 LUAPREFIX_win64=/z/data/build/vc14 make
|
|
Loading…
Add table
Reference in a new issue