Compare commits

...
Sign in to create a new pull request.

16 commits

Author SHA1 Message Date
8b3585b6e8 New test change.
Some checks failed
Build / Test ${{ matrix.luaVersion }} on ${{ matrix.platform }} (5.1, macos-11) (push) Has been cancelled
Build / Test ${{ matrix.luaVersion }} on ${{ matrix.platform }} (5.1, ubuntu-22.04) (push) Has been cancelled
Build / Test ${{ matrix.luaVersion }} on ${{ matrix.platform }} (5.1, windows-2022) (push) Has been cancelled
Build / Test ${{ matrix.luaVersion }} on ${{ matrix.platform }} (5.2, macos-11) (push) Has been cancelled
Build / Test ${{ matrix.luaVersion }} on ${{ matrix.platform }} (5.2, ubuntu-22.04) (push) Has been cancelled
Build / Test ${{ matrix.luaVersion }} on ${{ matrix.platform }} (5.2, windows-2022) (push) Has been cancelled
Build / Test ${{ matrix.luaVersion }} on ${{ matrix.platform }} (5.3, macos-11) (push) Has been cancelled
Build / Test ${{ matrix.luaVersion }} on ${{ matrix.platform }} (5.3, ubuntu-22.04) (push) Has been cancelled
Build / Test ${{ matrix.luaVersion }} on ${{ matrix.platform }} (5.3, windows-2022) (push) Has been cancelled
Build / Test ${{ matrix.luaVersion }} on ${{ matrix.platform }} (5.4, macos-11) (push) Has been cancelled
Build / Test ${{ matrix.luaVersion }} on ${{ matrix.platform }} (5.4, ubuntu-22.04) (push) Has been cancelled
Build / Test ${{ matrix.luaVersion }} on ${{ matrix.platform }} (5.4, windows-2022) (push) Has been cancelled
Build / Test ${{ matrix.luaVersion }} on ${{ matrix.platform }} (luajit, macos-11) (push) Has been cancelled
Build / Test ${{ matrix.luaVersion }} on ${{ matrix.platform }} (luajit, ubuntu-22.04) (push) Has been cancelled
Build / Test ${{ matrix.luaVersion }} on ${{ matrix.platform }} (luajit, windows-2022) (push) Has been cancelled
Build / Test ${{ matrix.luaVersion }} on ${{ matrix.platform }} (luajit-openresty, macos-11) (push) Has been cancelled
Build / Test ${{ matrix.luaVersion }} on ${{ matrix.platform }} (luajit-openresty, ubuntu-22.04) (push) Has been cancelled
Build / Test ${{ matrix.luaVersion }} on ${{ matrix.platform }} (luajit-openresty, windows-2022) (push) Has been cancelled
Deploy / affected (push) Has been cancelled
Deploy / build (push) Has been cancelled
Deploy / upload (push) Has been cancelled
Luacheck / luacheck (push) Has been cancelled
2024-07-31 19:45:33 +08:00
Tianjia Zhang
1fad162690
chore: Remove the executable permission bit from some source files (#434) 2024-06-29 14:33:47 +03:00
Kim Alvefur
e3ca4a767a
fix(unix): Pass correct path length for abstract sockets (#430) 2024-05-24 13:28:51 +03:00
Thijs Schreijer
93eef5015e
chore(docs): update LTN12 links (#428) 2024-03-15 12:55:02 +01:00
Thijs Schreijer
23241717bf
fix(docs): link to included LTN documents (#426) 2024-03-05 23:18:24 +03:00
Alexandre Detiste
98be8d9fc1
chore(http): Correct typos in error message and code comments (#423) 2024-02-12 11:28:01 +03:00
Max1Truc
fa69770e52
fix(http): Use the right protocol for proxies (#386) 2023-11-23 08:01:29 +03:00
_AMD_
13f2b3c663
fix(http): Correct receiveheaders() handling of folded values (#420) 2023-11-13 23:33:26 +03:00
Caleb Maclennan
453a5207ed
style(docs): Trim trailing whitespace in HTML docs
Many editors remove these automatically anyway which makes opening and
editng the docs cause a bunch of noise. This is just to get the noise
out of the way in a style commit so it doesn't leak into other PRs
2023-11-11 08:07:38 +03:00
Caleb Maclennan
de359ea408
chore(core): Update version markers to last released version
Closes #401
2023-11-11 00:48:02 +03:00
Caleb Maclennan
c93f9154e1
feat(rockspec): Ship mbox parser with LuaRocks, already packaged in some distros
Closes #324
2023-11-11 00:44:22 +03:00
Caleb Maclennan
8a5368b659
Merge pull request #418 from alerque/url-empty-path 2023-11-09 14:11:33 +03:00
Paul Kulchenko
22b8202d70
fix(wsocket): Properly report CONNRESET (#81) 2023-11-09 14:00:09 +03:00
Caleb Maclennan
3a817a56eb
fix(url): Avoid fragment being part of authority, allows parsing empty paths 2023-11-08 23:27:58 +03:00
Caleb Maclennan
7eaf648056
fix(url): Avoid query string being part of authority, allows parsing empty paths 2023-11-08 14:50:43 +03:00
georgeto
bef62aeb50
fix(inet): Return port as number in getsockname (#392) 2023-11-08 14:29:06 +03:00
41 changed files with 692 additions and 676 deletions

28
.gitignore vendored
View file

@ -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/

View file

@ -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
View 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
View file

@ -0,0 +1 @@
-I/usr/include/lua5.4

View file

@ -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

View file

@ -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>

View file

@ -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
&gt; socket = require("socket") &gt; socket = require("socket")
&gt; print(socket._VERSION) &gt; print(socket._VERSION)
--&gt; LuaSocket 3.0.0 --&gt; 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

View file

@ -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.

View file

@ -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>

View file

@ -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>

View file

@ -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">

View file

@ -1 +0,0 @@
make PLAT=linux DEBUG=DEBUG LUAINC_linux_base=/home/diego/build/ubuntu/include LUAPREFIX_linux=/home/diego/build/ubuntu

View file

@ -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"

View file

@ -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

View file

@ -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
View file

View 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
View 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
View 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'
)

View file

@ -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>

View file

@ -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

View file

@ -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>

View file

@ -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
View 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
View file

View 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
View 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
View file

View file

@ -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

0
src/socket.h Executable file → Normal file
View file

0
src/udp.c Executable file → Normal file
View file

View 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);

View file

@ -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);

View file

@ -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
View 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;
} }

View file

@ -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

View file

@ -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

View file

@ -1 +0,0 @@
LUAV=5.3 PLAT=win32 LUAPREFIX_win32=/z/data/build/vc14 make

View file

@ -1 +0,0 @@
LUAV=5.3 PLAT=win64 LUAPREFIX_win64=/z/data/build/vc14 make