mirror of
https://github.com/lunarmodules/luasocket.git
synced 2024-12-25 20:18:21 +01:00
More adjustments/bugfixes.
This commit is contained in:
parent
f7579db9e8
commit
bce1cb30d8
@ -3,7 +3,9 @@
|
|||||||
<html>
|
<html>
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<title>LuaSocket: Network support for the Lua language</title>
|
<meta name="description" content="LuaSocket: DNS support">
|
||||||
|
<meta name="keywords" content="Lua, Library, DNS, Network, Support">
|
||||||
|
<title>LuaSocket: DNS support</title>
|
||||||
<link rel="stylesheet" href="reference.css" type="text/css">
|
<link rel="stylesheet" href="reference.css" type="text/css">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@ -16,7 +18,7 @@
|
|||||||
<center>
|
<center>
|
||||||
<table summary="LuaSocket logo">
|
<table summary="LuaSocket logo">
|
||||||
<tr><td align=center><a href="http://www.lua.org">
|
<tr><td align=center><a href="http://www.lua.org">
|
||||||
<img width=128 border=0 alt="LuaSocket" src="luasocket.png">
|
<img width=128 height=128 border=0 alt="LuaSocket" src="luasocket.png">
|
||||||
</a></td></tr>
|
</a></td></tr>
|
||||||
<tr><td align=center valign=top>Network support for the Lua language
|
<tr><td align=center valign=top>Network support for the Lua language
|
||||||
</td></tr>
|
</td></tr>
|
||||||
|
10
doc/ftp.html
10
doc/ftp.html
@ -1,7 +1,11 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html>
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
|
||||||
|
"http://www.w3.org/TR/html4/strict.dtd">
|
||||||
|
<html>
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<title>LuaSocket: Network support for the Lua language</title>
|
<meta name="description" content="LuaSocket: FTP support">
|
||||||
|
<meta name="keywords" content="Lua, Library, FTP, Network, Support">
|
||||||
|
<title>LuaSocket: FTP support</title>
|
||||||
<link rel="stylesheet" href="reference.css" type="text/css">
|
<link rel="stylesheet" href="reference.css" type="text/css">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@ -14,7 +18,7 @@
|
|||||||
<center>
|
<center>
|
||||||
<table summary="LuaSocket logo">
|
<table summary="LuaSocket logo">
|
||||||
<tr><td align=center><a href="http://www.lua.org">
|
<tr><td align=center><a href="http://www.lua.org">
|
||||||
<img width=128 border=0 alt="LuaSocket" src="luasocket.png">
|
<img width=128 height=128 border=0 alt="LuaSocket" src="luasocket.png">
|
||||||
</a></td></tr>
|
</a></td></tr>
|
||||||
<tr><td align=center valign=top>Network support for the Lua language
|
<tr><td align=center valign=top>Network support for the Lua language
|
||||||
</td></tr>
|
</td></tr>
|
||||||
|
@ -3,7 +3,9 @@
|
|||||||
<html>
|
<html>
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<title>LuaSocket: Network support for the Lua language</title>
|
<meta name="description" content="LuaSocket: HTTP support">
|
||||||
|
<meta name="keywords" content="Lua, Library, HTTP, WWW, browser, Network, Support">
|
||||||
|
<title>LuaSocket: HTTP support</title>
|
||||||
<link rel="stylesheet" href="reference.css" type="text/css">
|
<link rel="stylesheet" href="reference.css" type="text/css">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@ -16,7 +18,7 @@
|
|||||||
<center>
|
<center>
|
||||||
<table summary="LuaSocket logo">
|
<table summary="LuaSocket logo">
|
||||||
<tr><td align=center><a href="http://www.lua.org">
|
<tr><td align=center><a href="http://www.lua.org">
|
||||||
<img width=128 border=0 alt="LuaSocket" src="luasocket.png">
|
<img width=128 height=128 border=0 alt="LuaSocket" src="luasocket.png">
|
||||||
</a></td></tr>
|
</a></td></tr>
|
||||||
<tr><td align=center valign=top>Network support for the Lua language
|
<tr><td align=center valign=top>Network support for the Lua language
|
||||||
</td></tr>
|
</td></tr>
|
||||||
|
@ -3,6 +3,8 @@
|
|||||||
<html>
|
<html>
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
|
<meta name="description" content="The LuaSocket Homepage">
|
||||||
|
<meta name="keywords" content="Lua, Library, Network, Support, Internet">
|
||||||
<title>LuaSocket: Network support for the Lua language </title>
|
<title>LuaSocket: Network support for the Lua language </title>
|
||||||
<link rel="stylesheet" href="reference.css" type="text/css">
|
<link rel="stylesheet" href="reference.css" type="text/css">
|
||||||
</head>
|
</head>
|
||||||
@ -16,7 +18,7 @@
|
|||||||
<center>
|
<center>
|
||||||
<table summary="LuaSocket logo">
|
<table summary="LuaSocket logo">
|
||||||
<tr><td align=center><a href="http://www.lua.org">
|
<tr><td align=center><a href="http://www.lua.org">
|
||||||
<img width=128 border=0 alt="LuaSocket" src="luasocket.png">
|
<img width=128 height=128 border=0 alt="LuaSocket" src="luasocket.png">
|
||||||
</a></td></tr>
|
</a></td></tr>
|
||||||
<tr><td align=center valign=top>Network support for the Lua language
|
<tr><td align=center valign=top>Network support for the Lua language
|
||||||
</td></tr>
|
</td></tr>
|
||||||
@ -276,7 +278,7 @@ return convention WILL break old code;
|
|||||||
does not call <tt>listen</tt> anymore. It is the new <tt>listen</tt>
|
does not call <tt>listen</tt> anymore. It is the new <tt>listen</tt>
|
||||||
method that turns a TCP object into a server object;
|
method that turns a TCP object into a server object;
|
||||||
|
|
||||||
<li> <tt>socket.time</tt> became <tt>socket.gettime</tt> for uniformity;
|
<li> <tt>socket.time</tt> changed to <tt>socket.gettime</tt> for uniformity;
|
||||||
|
|
||||||
<li> Interface to options has changed.
|
<li> Interface to options has changed.
|
||||||
|
|
||||||
|
@ -3,7 +3,9 @@
|
|||||||
<html>
|
<html>
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<title>LuaSocket: Network support for the Lua language</title>
|
<meta name="description" content="LuaSocket: Introduction to the core">
|
||||||
|
<meta name="keywords" content="Lua, Library, TCP, UDP, Network, Support">
|
||||||
|
<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>
|
||||||
|
|
||||||
@ -16,7 +18,7 @@
|
|||||||
<center>
|
<center>
|
||||||
<table summary="LuaSocket logo">
|
<table summary="LuaSocket logo">
|
||||||
<tr><td align=center><a href="http://www.lua.org">
|
<tr><td align=center><a href="http://www.lua.org">
|
||||||
<img width=128 border=0 alt="LuaSocket" src="luasocket.png">
|
<img width=128 height=128 border=0 alt="LuaSocket" src="luasocket.png">
|
||||||
</a></td></tr>
|
</a></td></tr>
|
||||||
<tr><td align=center valign=top>Network support for the Lua language
|
<tr><td align=center valign=top>Network support for the Lua language
|
||||||
</td></tr>
|
</td></tr>
|
||||||
@ -209,7 +211,7 @@ print("Please telnet to localhost on port " .. port)
|
|||||||
print("After connecting, you have 10s to enter a line to be echoed")
|
print("After connecting, you have 10s to enter a line to be echoed")
|
||||||
-- loop forever waiting for clients
|
-- loop forever waiting for clients
|
||||||
while 1 do
|
while 1 do
|
||||||
-- wait for a conection from any client
|
-- wait for a connection from any client
|
||||||
local client = server:accept()
|
local client = server:accept()
|
||||||
-- make sure we don't block waiting for this client's line
|
-- make sure we don't block waiting for this client's line
|
||||||
client:settimeout(10)
|
client:settimeout(10)
|
||||||
|
@ -3,7 +3,10 @@
|
|||||||
<html>
|
<html>
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<title>LuaSocket: Network support for the Lua language</title>
|
<meta name="description" content="LuaSocket: LTN12 support">
|
||||||
|
<meta name="keywords" content="Lua, Library, Filters, Source, Sink,
|
||||||
|
Pump, Support">
|
||||||
|
<title>LuaSocket: LTN12 module</title>
|
||||||
<link rel="stylesheet" href="reference.css" type="text/css">
|
<link rel="stylesheet" href="reference.css" type="text/css">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@ -16,7 +19,7 @@
|
|||||||
<center>
|
<center>
|
||||||
<table summary="LuaSocket logo">
|
<table summary="LuaSocket logo">
|
||||||
<tr><td align=center><a href="http://www.lua.org">
|
<tr><td align=center><a href="http://www.lua.org">
|
||||||
<img width=128 border=0 alt="LuaSocket" src="luasocket.png">
|
<img width=128 height=128 border=0 alt="LuaSocket" src="luasocket.png">
|
||||||
</a></td></tr>
|
</a></td></tr>
|
||||||
<tr><td align=center valign=top>Network support for the Lua language
|
<tr><td align=center valign=top>Network support for the Lua language
|
||||||
</td></tr>
|
</td></tr>
|
||||||
|
@ -3,7 +3,9 @@
|
|||||||
<html>
|
<html>
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<title>LuaSocket: Network support for the Lua language</title>
|
<meta name="description" content="LuaSocket: MIME support">
|
||||||
|
<meta name="keywords" content="Lua, Library, MIME, Support">
|
||||||
|
<title>LuaSocket: MIME module</title>
|
||||||
<link rel="stylesheet" href="reference.css" type="text/css">
|
<link rel="stylesheet" href="reference.css" type="text/css">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@ -16,7 +18,7 @@
|
|||||||
<center>
|
<center>
|
||||||
<table summary="LuaSocket logo">
|
<table summary="LuaSocket logo">
|
||||||
<tr><td align=center><a href="http://www.lua.org">
|
<tr><td align=center><a href="http://www.lua.org">
|
||||||
<img width=128 border=0 alt="LuaSocket" src="luasocket.png">
|
<img width=128 height=128 border=0 alt="LuaSocket" src="luasocket.png">
|
||||||
</a></td></tr>
|
</a></td></tr>
|
||||||
<tr><td align=center valign=top>Network support for the Lua language
|
<tr><td align=center valign=top>Network support for the Lua language
|
||||||
</td></tr>
|
</td></tr>
|
||||||
|
@ -3,7 +3,9 @@
|
|||||||
<html>
|
<html>
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<title>LuaSocket: Network support for the Lua language </title>
|
<meta name="description" content="LuaSocket: Index to reference manual">
|
||||||
|
<meta name="keywords" content="Lua, Library, Index, Manual, Network, Support">
|
||||||
|
<title>LuaSocket: Index to reference manual</title>
|
||||||
<link rel="stylesheet" href="reference.css" type="text/css">
|
<link rel="stylesheet" href="reference.css" type="text/css">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@ -16,7 +18,7 @@
|
|||||||
<center>
|
<center>
|
||||||
<table summary="LuaSocket logo">
|
<table summary="LuaSocket logo">
|
||||||
<tr><td align=center><a href="http://www.lua.org">
|
<tr><td align=center><a href="http://www.lua.org">
|
||||||
<img width=128 border=0 alt="LuaSocket" src="luasocket.png">
|
<img width=128 height=128 border=0 alt="LuaSocket" src="luasocket.png">
|
||||||
</a></td></tr>
|
</a></td></tr>
|
||||||
<tr><td align=center valign=top>Network support for the Lua language
|
<tr><td align=center valign=top>Network support for the Lua language
|
||||||
</td></tr>
|
</td></tr>
|
||||||
|
@ -3,7 +3,9 @@
|
|||||||
<html>
|
<html>
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<title>LuaSocket: Network support for the Lua language</title>
|
<meta name="description" content="LuaSocket: SMTP support">
|
||||||
|
<meta name="keywords" content="Lua, Library, SMTP, e-mail, MIME, Multipart, Support">
|
||||||
|
<title>LuaSocket: SMTP support</title>
|
||||||
<link rel="stylesheet" href="reference.css" type="text/css">
|
<link rel="stylesheet" href="reference.css" type="text/css">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@ -16,7 +18,7 @@
|
|||||||
<center>
|
<center>
|
||||||
<table summary="LuaSocket logo">
|
<table summary="LuaSocket logo">
|
||||||
<tr><td align=center><a href="http://www.lua.org">
|
<tr><td align=center><a href="http://www.lua.org">
|
||||||
<img width=128 border=0 alt="LuaSocket" src="luasocket.png">
|
<img width=128 height=128 border=0 alt="LuaSocket" src="luasocket.png">
|
||||||
</a></td></tr>
|
</a></td></tr>
|
||||||
<tr><td align=center valign=top>Network support for the Lua language
|
<tr><td align=center valign=top>Network support for the Lua language
|
||||||
</td></tr>
|
</td></tr>
|
||||||
@ -48,7 +50,7 @@ control (if you bother to read the code).
|
|||||||
Another RFC of interest is <a
|
Another RFC of interest is <a
|
||||||
href="http://www.cs.princeton.edu/~diego/rfc/rfc2822.txt">RFC 2822</a>,
|
href="http://www.cs.princeton.edu/~diego/rfc/rfc2822.txt">RFC 2822</a>,
|
||||||
which governs the Internet Message Format.
|
which governs the Internet Message Format.
|
||||||
Multipart messages (those that contain attatchments) are part
|
Multipart messages (those that contain attachments) are part
|
||||||
of the MIME standard, but described mainly
|
of the MIME standard, but described mainly
|
||||||
in <a href="http://www.cs.princeton.edu/~diego/rfc/rfc2046.txt">RFC
|
in <a href="http://www.cs.princeton.edu/~diego/rfc/rfc2046.txt">RFC
|
||||||
2046</a>
|
2046</a>
|
||||||
@ -98,7 +100,7 @@ in representing them in a Lua table.
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
The following constants can be set to control the default behaviour of
|
The following constants can be set to control the default behavior of
|
||||||
the SMTP module:
|
the SMTP module:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@ -256,7 +258,7 @@ mesgt = {
|
|||||||
to = "Fulano da Silva <fulano@example.com>",
|
to = "Fulano da Silva <fulano@example.com>",
|
||||||
cc = '"Beltrano F. Nunes" <beltrano@example.com>',
|
cc = '"Beltrano F. Nunes" <beltrano@example.com>',
|
||||||
subject = "My first message"
|
subject = "My first message"
|
||||||
}
|
},
|
||||||
body = "I hope this works. If it does, I can send you another 1000 copies."
|
body = "I hope this works. If it does, I can send you another 1000 copies."
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,7 +3,9 @@
|
|||||||
<html>
|
<html>
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<title>LuaSocket: Network support for the Lua language</title>
|
<meta name="description" content="LuaSocket: The core namespace">
|
||||||
|
<meta name="keywords" content="Lua, Library, socket, Network, Support">
|
||||||
|
<title>LuaSocket: The socket namespace</title>
|
||||||
<link rel="stylesheet" href="reference.css" type="text/css">
|
<link rel="stylesheet" href="reference.css" type="text/css">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@ -16,7 +18,7 @@
|
|||||||
<center>
|
<center>
|
||||||
<table summary="LuaSocket logo">
|
<table summary="LuaSocket logo">
|
||||||
<tr><td align=center><a href="http://www.lua.org">
|
<tr><td align=center><a href="http://www.lua.org">
|
||||||
<img width=128 border=0 alt="LuaSocket" src="luasocket.png">
|
<img width=128 height=128 border=0 alt="LuaSocket" src="luasocket.png">
|
||||||
</a></td></tr>
|
</a></td></tr>
|
||||||
<tr><td align=center valign=top>Network support for the Lua language
|
<tr><td align=center valign=top>Network support for the Lua language
|
||||||
</td></tr>
|
</td></tr>
|
||||||
@ -55,6 +57,16 @@ socket.<b>bind(</b>address, port [, backlog]<b>)</b>
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class=description>
|
<p class=description>
|
||||||
|
This function is a shortcut that creates and returns a TCP server object
|
||||||
|
bound to a local <tt>address</tt> and <tt>port</tt>, ready to
|
||||||
|
accept client connections. Optionally,
|
||||||
|
user can also specify the <tt>backlog</tt> argument to the
|
||||||
|
<a href=tcp.html#listen><tt>listen</tt></a> method (defaults to 32).
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p class=note>
|
||||||
|
Note: The server object returned will have the option "<tt>reuseaddr</tt>"
|
||||||
|
set to <tt><b>true</b></tt>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<!-- connect ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
<!-- connect ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||||
@ -64,9 +76,9 @@ socket.<b>connect(</b>address, port [, locaddr, locport]<b>)</b>
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class=description>
|
<p class=description>
|
||||||
This function is a shortcut that creates and returns a TCP socket object
|
This function is a shortcut that creates and returns a TCP client object
|
||||||
connected to a remote <tt>host</tt> at a given <tt>port</tt>. Optionally,
|
connected to a remote <tt>host</tt> at a given <tt>port</tt>. Optionally,
|
||||||
the use can also specify the local address and port to bind
|
the user can also specify the local address and port to bind
|
||||||
(<tt>locaddr</tt> and </tt>locport</tt>).
|
(<tt>locaddr</tt> and </tt>locport</tt>).
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
17
doc/tcp.html
17
doc/tcp.html
@ -3,7 +3,9 @@
|
|||||||
<html>
|
<html>
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<title>LuaSocket: Network support for the Lua language</title>
|
<meta name="description" content="LuaSocket: The TCP/IP support">
|
||||||
|
<meta name="keywords" content="Lua, Library, socket, TCP, Network, Support">
|
||||||
|
<title>LuaSocket: TCP/IP support</title>
|
||||||
<link rel="stylesheet" href="reference.css" type="text/css">
|
<link rel="stylesheet" href="reference.css" type="text/css">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@ -16,7 +18,7 @@
|
|||||||
<center>
|
<center>
|
||||||
<table summary="LuaSocket logo">
|
<table summary="LuaSocket logo">
|
||||||
<tr><td align=center><a href="http://www.lua.org">
|
<tr><td align=center><a href="http://www.lua.org">
|
||||||
<img width=128 border=0 alt="LuaSocket" src="luasocket.png">
|
<img width=128 height=128 border=0 alt="LuaSocket" src="luasocket.png">
|
||||||
</a></td></tr>
|
</a></td></tr>
|
||||||
<tr><td align=center valign=top>Network support for the Lua language
|
<tr><td align=center valign=top>Network support for the Lua language
|
||||||
</td></tr>
|
</td></tr>
|
||||||
@ -74,7 +76,7 @@ reported by <b><tt>nil</tt></b> followed by a message describing the error.
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class=note>
|
<p class=note>
|
||||||
Note: calling <a href=sockett.html#select><tt>socket.select</tt></a>
|
Note: calling <a href=socket.html#select><tt>socket.select</tt></a>
|
||||||
with a server object in
|
with a server object in
|
||||||
the <tt>receive</tt> parameter before a call to <tt>accept</tt> does
|
the <tt>receive</tt> parameter before a call to <tt>accept</tt> does
|
||||||
<em>not</em> guarantee <tt>accept</tt> will return immediately. Use the <a
|
<em>not</em> guarantee <tt>accept</tt> will return immediately. Use the <a
|
||||||
@ -107,7 +109,7 @@ method returns <b><tt>nil</tt></b> followed by an error message.
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class=note>
|
<p class=note>
|
||||||
Note: The function <a href=#socket.bind><tt>socket.bind</tt></a>
|
Note: The function <a href=socket.html#bind><tt>socket.bind</tt></a>
|
||||||
is available and is a shortcut for the creation server sockets.
|
is available and is a shortcut for the creation server sockets.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@ -163,15 +165,15 @@ describing the error. In case of success, the method returns 1.
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class=note>
|
<p class=note>
|
||||||
Note: The function <a href=#socket.connect><tt>socket.connect</tt></a>
|
Note: The function <a href=socket.html#connect><tt>socket.connect</tt></a>
|
||||||
is available and is a shortcut for the creation of client sockets.
|
is available and is a shortcut for the creation of client sockets.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class=note>
|
<p class=note>
|
||||||
Note: Starting with LuaSocket 2.0,
|
Note: Starting with LuaSocket 2.0,
|
||||||
the <a href=#settimeout><tt>settimeout</tt></a>
|
the <a href=#settimeout><tt>settimeout</tt></a>
|
||||||
function affects the behavior of connect, causing it to return in case of
|
method affects the behavior of connect, causing it to return in case of
|
||||||
a timeout error.
|
a timeout.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<!-- getpeername ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
<!-- getpeername ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||||
@ -197,6 +199,7 @@ Note: It makes no sense to call this method on server objects.
|
|||||||
<!-- getpeername ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
<!-- getpeername ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||||
|
|
||||||
<p class=name id=getsockname>
|
<p class=name id=getsockname>
|
||||||
|
master:<b>getsockname()</b><br>
|
||||||
client:<b>getsockname()</b><br>
|
client:<b>getsockname()</b><br>
|
||||||
server:<b>getsockname()</b>
|
server:<b>getsockname()</b>
|
||||||
</p>
|
</p>
|
||||||
|
10
doc/udp.html
10
doc/udp.html
@ -1,10 +1,14 @@
|
|||||||
<!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>
|
||||||
<title>LuaSocket: Network support for the Lua language</title>
|
<meta name="description" content="LuaSocket: The UDP support">
|
||||||
|
<meta name="keywords" content="Lua, Library, socket, UDP, Network, Support">
|
||||||
|
<title>LuaSocket: UDP support</title>
|
||||||
<link rel="stylesheet" href="reference.css" type="text/css">
|
<link rel="stylesheet" href="reference.css" type="text/css">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
<!-- header ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
<!-- header ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||||
@ -14,7 +18,7 @@
|
|||||||
<center>
|
<center>
|
||||||
<table summary="LuaSocket logo">
|
<table summary="LuaSocket logo">
|
||||||
<tr><td align=center><a href="http://www.lua.org">
|
<tr><td align=center><a href="http://www.lua.org">
|
||||||
<img width=128 border=0 alt="LuaSocket" src="luasocket.png">
|
<img width=128 height=128 border=0 alt="LuaSocket" src="luasocket.png">
|
||||||
</a></td></tr>
|
</a></td></tr>
|
||||||
<tr><td align=center valign=top>Network support for the Lua language
|
<tr><td align=center valign=top>Network support for the Lua language
|
||||||
</td></tr>
|
</td></tr>
|
||||||
@ -240,7 +244,7 @@ unconnected:<b>setpeername(</b>address, port<b>)</b>
|
|||||||
<p class="description">
|
<p class="description">
|
||||||
Changes the peer of a UDP object. This
|
Changes the peer of a UDP object. This
|
||||||
method turns an unconnected UDP object into a connected UDP
|
method turns an unconnected UDP object into a connected UDP
|
||||||
object or vice-versa.
|
object or vice versa.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="description">
|
<p class="description">
|
||||||
|
12
doc/url.html
12
doc/url.html
@ -3,7 +3,9 @@
|
|||||||
<html>
|
<html>
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<title>LuaSocket: Network support for the Lua language</title>
|
<meta name="description" content="LuaSocket: URL manipulation">
|
||||||
|
<meta name="keywords" content="Lua, Library, URL, link, Network, Support">
|
||||||
|
<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>
|
||||||
|
|
||||||
@ -16,7 +18,7 @@
|
|||||||
<center>
|
<center>
|
||||||
<table summary="LuaSocket logo">
|
<table summary="LuaSocket logo">
|
||||||
<tr><td align=center><a href="http://www.lua.org">
|
<tr><td align=center><a href="http://www.lua.org">
|
||||||
<img width=128 border=0 alt="LuaSocket" src="luasocket.png">
|
<img width=128 height=128 border=0 alt="LuaSocket" src="luasocket.png">
|
||||||
</a></td></tr>
|
</a></td></tr>
|
||||||
<tr><td align=center valign=top>Network support for the Lua language
|
<tr><td align=center valign=top>Network support for the Lua language
|
||||||
</td></tr>
|
</td></tr>
|
||||||
@ -135,7 +137,7 @@ Rebuilds an URL from its parts.
|
|||||||
<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 hight level components of the URL grammar.
|
take precedence over high level components of the URL grammar.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class=return>
|
<p class=return>
|
||||||
@ -279,8 +281,8 @@ Breaks a <tt><path></tt> URL component into all its
|
|||||||
<p class=return>
|
<p class=return>
|
||||||
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 unescapes all
|
returning a list with all the parsed segments, the function removes
|
||||||
of them.
|
escaping from all of them.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<!-- unescape +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
<!-- unescape +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
socket = require("socket")
|
local socket = require("socket")
|
||||||
http = require("http")
|
local http = require("http")
|
||||||
|
|
||||||
if not arg or not arg[1] or not arg[2] then
|
if not arg or not arg[1] or not arg[2] then
|
||||||
print("luasocket cddb.lua <category> <disc-id> [<server>]")
|
print("luasocket cddb.lua <category> <disc-id> [<server>]")
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
-- Author: Diego Nehab
|
-- Author: Diego Nehab
|
||||||
-- RCS ID: $Id$
|
-- RCS ID: $Id$
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
require"socket"
|
local socket = require"socket"
|
||||||
host = host or "127.0.0.1"
|
host = host or "127.0.0.1"
|
||||||
port = port or 13
|
port = port or 13
|
||||||
if arg then
|
if arg then
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
-- Author: Diego Nehab
|
-- Author: Diego Nehab
|
||||||
-- RCS ID: $Id$
|
-- RCS ID: $Id$
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
socket = require("socket")
|
local socket = require("socket")
|
||||||
host = host or "127.0.0.1"
|
host = host or "127.0.0.1"
|
||||||
port = port or 7
|
port = port or 7
|
||||||
if arg then
|
if arg then
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
-- Author: Diego Nehab
|
-- Author: Diego Nehab
|
||||||
-- RCS ID: $Id$
|
-- RCS ID: $Id$
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
socket = require("socket")
|
local socket = require("socket")
|
||||||
host = host or "localhost"
|
host = host or "localhost"
|
||||||
port = port or 8080
|
port = port or 8080
|
||||||
if arg then
|
if arg then
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
-- Author: Diego Nehab
|
-- Author: Diego Nehab
|
||||||
-- RCS ID: $Id$
|
-- RCS ID: $Id$
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
socket = require("socket")
|
local socket = require("socket")
|
||||||
host = host or "*"
|
host = host or "*"
|
||||||
port1 = port1 or 8080
|
port1 = port1 or 8080
|
||||||
port2 = port2 or 8181
|
port2 = port2 or 8181
|
||||||
|
@ -22,8 +22,6 @@ TIMEOUT = 60
|
|||||||
PORT = 80
|
PORT = 80
|
||||||
-- user agent field sent in request
|
-- user agent field sent in request
|
||||||
USERAGENT = socket.VERSION
|
USERAGENT = socket.VERSION
|
||||||
-- block size used in transfers
|
|
||||||
BLOCKSIZE = 2048
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
-- Low level HTTP API
|
-- Low level HTTP API
|
||||||
|
@ -25,7 +25,10 @@
|
|||||||
/*-------------------------------------------------------------------------*\
|
/*-------------------------------------------------------------------------*\
|
||||||
* Initializes the library.
|
* Initializes the library.
|
||||||
\*-------------------------------------------------------------------------*/
|
\*-------------------------------------------------------------------------*/
|
||||||
|
#ifndef LUASOCKET_LIBNAME
|
||||||
#define LUASOCKET_LIBNAME "socket"
|
#define LUASOCKET_LIBNAME "socket"
|
||||||
|
#endif
|
||||||
|
|
||||||
LUASOCKET_API int luaopen_socket(lua_State *L);
|
LUASOCKET_API int luaopen_socket(lua_State *L);
|
||||||
|
|
||||||
#endif /* LUASOCKET_H */
|
#endif /* LUASOCKET_H */
|
||||||
|
@ -19,7 +19,10 @@
|
|||||||
#define MIME_API extern
|
#define MIME_API extern
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef MIME_LIBNAME
|
||||||
#define MIME_LIBNAME "mime"
|
#define MIME_LIBNAME "mime"
|
||||||
|
#endif
|
||||||
|
|
||||||
MIME_API int luaopen_mime(lua_State *L);
|
MIME_API int luaopen_mime(lua_State *L);
|
||||||
|
|
||||||
#endif /* MIME_H */
|
#endif /* MIME_H */
|
||||||
|
32
src/mime.lua
32
src/mime.lua
@ -12,9 +12,9 @@ local mime = requirelib("mime", "luaopen_mime", getfenv(1))
|
|||||||
local ltn12 = require("ltn12")
|
local ltn12 = require("ltn12")
|
||||||
|
|
||||||
-- encode, decode and wrap algorithm tables
|
-- encode, decode and wrap algorithm tables
|
||||||
encodet = {}
|
mime.encodet = {}
|
||||||
decodet = {}
|
mime.decodet = {}
|
||||||
wrapt = {}
|
mime.wrapt = {}
|
||||||
|
|
||||||
-- creates a function that chooses a filter by name from a given table
|
-- creates a function that chooses a filter by name from a given table
|
||||||
local function choose(table)
|
local function choose(table)
|
||||||
@ -29,47 +29,47 @@ local function choose(table)
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- define the encoding filters
|
-- define the encoding filters
|
||||||
encodet['base64'] = function()
|
mime.encodet['base64'] = function()
|
||||||
return ltn12.filter.cycle(b64, "")
|
return ltn12.filter.cycle(b64, "")
|
||||||
end
|
end
|
||||||
|
|
||||||
encodet['quoted-printable'] = function(mode)
|
mime.encodet['quoted-printable'] = function(mode)
|
||||||
return ltn12.filter.cycle(qp, "",
|
return ltn12.filter.cycle(qp, "",
|
||||||
(mode == "binary") and "=0D=0A" or "\r\n")
|
(mode == "binary") and "=0D=0A" or "\r\n")
|
||||||
end
|
end
|
||||||
|
|
||||||
-- define the decoding filters
|
-- define the decoding filters
|
||||||
decodet['base64'] = function()
|
mime.decodet['base64'] = function()
|
||||||
return ltn12.filter.cycle(unb64, "")
|
return ltn12.filter.cycle(unb64, "")
|
||||||
end
|
end
|
||||||
|
|
||||||
decodet['quoted-printable'] = function()
|
mime.decodet['quoted-printable'] = function()
|
||||||
return ltn12.filter.cycle(unqp, "")
|
return ltn12.filter.cycle(unqp, "")
|
||||||
end
|
end
|
||||||
|
|
||||||
-- define the line-wrap filters
|
-- define the line-wrap filters
|
||||||
wrapt['text'] = function(length)
|
mime.wrapt['text'] = function(length)
|
||||||
length = length or 76
|
length = length or 76
|
||||||
return ltn12.filter.cycle(wrp, length, length)
|
return ltn12.filter.cycle(wrp, length, length)
|
||||||
end
|
end
|
||||||
wrapt['base64'] = wrapt['text']
|
mime.wrapt['base64'] = wrapt['text']
|
||||||
wrapt['default'] = wrapt['text']
|
mime.wrapt['default'] = wrapt['text']
|
||||||
|
|
||||||
wrapt['quoted-printable'] = function()
|
mime.wrapt['quoted-printable'] = function()
|
||||||
return ltn12.filter.cycle(qpwrp, 76, 76)
|
return ltn12.filter.cycle(qpwrp, 76, 76)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- function that choose the encoding, decoding or wrap algorithm
|
-- function that choose the encoding, decoding or wrap algorithm
|
||||||
encode = choose(encodet)
|
mime.encode = choose(encodet)
|
||||||
decode = choose(decodet)
|
mime.decode = choose(decodet)
|
||||||
wrap = choose(wrapt)
|
mime.wrap = choose(wrapt)
|
||||||
|
|
||||||
-- define the end-of-line normalization filter
|
-- define the end-of-line normalization filter
|
||||||
function normalize(marker)
|
function mime.normalize(marker)
|
||||||
return ltn12.filter.cycle(eol, 0, marker)
|
return ltn12.filter.cycle(eol, 0, marker)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- high level stuffing filter
|
-- high level stuffing filter
|
||||||
function stuff()
|
function mime.stuff()
|
||||||
return ltn12.filter.cycle(dot, 2)
|
return ltn12.filter.cycle(dot, 2)
|
||||||
end
|
end
|
||||||
|
@ -8,7 +8,6 @@
|
|||||||
-- Load LuaSocket from dynamic library
|
-- Load LuaSocket from dynamic library
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
local socket = requirelib("luasocket", "luaopen_socket", getfenv(1))
|
local socket = requirelib("luasocket", "luaopen_socket", getfenv(1))
|
||||||
_LOADED["socket"] = socket
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
-- Auxiliar functions
|
-- Auxiliar functions
|
||||||
@ -31,7 +30,7 @@ function socket.bind(host, port, backlog)
|
|||||||
sock:setoption("reuseaddr", true)
|
sock:setoption("reuseaddr", true)
|
||||||
local res, err = sock:bind(host, port)
|
local res, err = sock:bind(host, port)
|
||||||
if not res then return nil, err end
|
if not res then return nil, err end
|
||||||
backlog = backlog or 1
|
backlog = backlog or 32
|
||||||
res, err = sock:listen(backlog)
|
res, err = sock:listen(backlog)
|
||||||
if not res then return nil, err end
|
if not res then return nil, err end
|
||||||
return sock
|
return sock
|
||||||
|
@ -130,7 +130,7 @@ static int meth_setoption(lua_State *L)
|
|||||||
static int meth_getfd(lua_State *L)
|
static int meth_getfd(lua_State *L)
|
||||||
{
|
{
|
||||||
p_tcp tcp = (p_tcp) aux_checkgroup(L, "tcp{any}", 1);
|
p_tcp tcp = (p_tcp) aux_checkgroup(L, "tcp{any}", 1);
|
||||||
lua_pushnumber(L, tcp->sock);
|
lua_pushnumber(L, (int) tcp->sock);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -164,6 +164,7 @@ static int meth_accept(lua_State *L)
|
|||||||
p_tcp clnt = lua_newuserdata(L, sizeof(t_tcp));
|
p_tcp clnt = lua_newuserdata(L, sizeof(t_tcp));
|
||||||
aux_setclass(L, "tcp{client}", -1);
|
aux_setclass(L, "tcp{client}", -1);
|
||||||
/* initialize structure fields */
|
/* initialize structure fields */
|
||||||
|
sock_setnonblocking(&sock);
|
||||||
clnt->sock = sock;
|
clnt->sock = sock;
|
||||||
io_init(&clnt->io, (p_send)sock_send, (p_recv)sock_recv, &clnt->sock);
|
io_init(&clnt->io, (p_send)sock_send, (p_recv)sock_recv, &clnt->sock);
|
||||||
tm_init(&clnt->tm, -1, -1);
|
tm_init(&clnt->tm, -1, -1);
|
||||||
@ -310,10 +311,11 @@ static int global_create(lua_State *L)
|
|||||||
if (!err) {
|
if (!err) {
|
||||||
/* allocate tcp object */
|
/* allocate tcp object */
|
||||||
p_tcp tcp = (p_tcp) lua_newuserdata(L, sizeof(t_tcp));
|
p_tcp tcp = (p_tcp) lua_newuserdata(L, sizeof(t_tcp));
|
||||||
tcp->sock = sock;
|
|
||||||
/* set its type as master object */
|
/* set its type as master object */
|
||||||
aux_setclass(L, "tcp{master}", -1);
|
aux_setclass(L, "tcp{master}", -1);
|
||||||
/* initialize remaining structure fields */
|
/* initialize remaining structure fields */
|
||||||
|
sock_setnonblocking(&sock);
|
||||||
|
tcp->sock = sock;
|
||||||
io_init(&tcp->io, (p_send) sock_send, (p_recv) sock_recv, &tcp->sock);
|
io_init(&tcp->io, (p_send) sock_send, (p_recv) sock_recv, &tcp->sock);
|
||||||
tm_init(&tcp->tm, -1, -1);
|
tm_init(&tcp->tm, -1, -1);
|
||||||
buf_init(&tcp->buf, &tcp->io, &tcp->tm);
|
buf_init(&tcp->buf, &tcp->io, &tcp->tm);
|
||||||
|
@ -208,7 +208,7 @@ static int meth_receivefrom(lua_State *L)
|
|||||||
static int meth_getfd(lua_State *L)
|
static int meth_getfd(lua_State *L)
|
||||||
{
|
{
|
||||||
p_udp udp = (p_udp) aux_checkgroup(L, "udp{any}", 1);
|
p_udp udp = (p_udp) aux_checkgroup(L, "udp{any}", 1);
|
||||||
lua_pushnumber(L, udp->sock);
|
lua_pushnumber(L, (int) udp->sock);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -328,10 +328,10 @@ static int global_create(lua_State *L)
|
|||||||
if (!err) {
|
if (!err) {
|
||||||
/* allocate tcp object */
|
/* allocate tcp object */
|
||||||
p_udp udp = (p_udp) lua_newuserdata(L, sizeof(t_udp));
|
p_udp udp = (p_udp) lua_newuserdata(L, sizeof(t_udp));
|
||||||
udp->sock = sock;
|
|
||||||
/* set its type as master object */
|
|
||||||
aux_setclass(L, "udp{unconnected}", -1);
|
aux_setclass(L, "udp{unconnected}", -1);
|
||||||
/* initialize remaining structure fields */
|
/* initialize remaining structure fields */
|
||||||
|
sock_setnonblocking(&sock);
|
||||||
|
udp->sock = sock;
|
||||||
tm_init(&udp->tm, -1, -1);
|
tm_init(&udp->tm, -1, -1);
|
||||||
return 1;
|
return 1;
|
||||||
} else {
|
} else {
|
||||||
|
@ -81,7 +81,6 @@ const char *sock_create(p_sock ps, int domain, int type, int protocol)
|
|||||||
t_sock sock = socket(domain, type, protocol);
|
t_sock sock = socket(domain, type, protocol);
|
||||||
if (sock == SOCK_INVALID) return sock_createstrerror(errno);
|
if (sock == SOCK_INVALID) return sock_createstrerror(errno);
|
||||||
*ps = sock;
|
*ps = sock;
|
||||||
sock_setnonblocking(ps);
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -178,10 +177,7 @@ const char *sock_accept(p_sock ps, p_sock pa, SA *addr,
|
|||||||
do *pa = accept(sock, addr, addr_len);
|
do *pa = accept(sock, addr, addr_len);
|
||||||
while (*pa < 0 && errno == EINTR);
|
while (*pa < 0 && errno == EINTR);
|
||||||
/* if result is valid, we are done */
|
/* if result is valid, we are done */
|
||||||
if (*pa != SOCK_INVALID) {
|
if (*pa != SOCK_INVALID) return NULL;
|
||||||
sock_setnonblocking(pa);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
/* find out if we failed for a fatal reason */
|
/* find out if we failed for a fatal reason */
|
||||||
if (errno != EWOULDBLOCK && errno != ECONNABORTED)
|
if (errno != EWOULDBLOCK && errno != ECONNABORTED)
|
||||||
return sock_acceptstrerror(errno);
|
return sock_acceptstrerror(errno);
|
||||||
|
@ -88,7 +88,6 @@ const char *sock_create(p_sock ps, int domain, int type, int protocol)
|
|||||||
if (sock == SOCK_INVALID)
|
if (sock == SOCK_INVALID)
|
||||||
return sock_createstrerror(WSAGetLastError());
|
return sock_createstrerror(WSAGetLastError());
|
||||||
*ps = sock;
|
*ps = sock;
|
||||||
sock_setnonblocking(ps);
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -177,10 +176,7 @@ const char *sock_accept(p_sock ps, p_sock pa, SA *addr,
|
|||||||
/* try to get client socket */
|
/* try to get client socket */
|
||||||
*pa = accept(sock, addr, addr_len);
|
*pa = accept(sock, addr, addr_len);
|
||||||
/* if return is valid, we are done */
|
/* if return is valid, we are done */
|
||||||
if (*pa != SOCK_INVALID) {
|
if (*pa != SOCK_INVALID) return NULL;
|
||||||
sock_setnonblocking(pa);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
/* optimization */
|
/* optimization */
|
||||||
if (timeout == 0) return io_strerror(IO_TIMEOUT);
|
if (timeout == 0) return io_strerror(IO_TIMEOUT);
|
||||||
/* otherwise find out why we failed */
|
/* otherwise find out why we failed */
|
||||||
|
@ -4,11 +4,11 @@
|
|||||||
-- to "/luasocket-test-cgi" and "/luasocket-test-cgi/"
|
-- to "/luasocket-test-cgi" and "/luasocket-test-cgi/"
|
||||||
-- needs "AllowOverride AuthConfig" on /home/c/diego/tec/luasocket/test/auth
|
-- needs "AllowOverride AuthConfig" on /home/c/diego/tec/luasocket/test/auth
|
||||||
|
|
||||||
socket = require("socket")
|
local socket = require("socket")
|
||||||
http = require("http")
|
local http = require("http")
|
||||||
mime = require("mime")
|
local mime = require("mime")
|
||||||
url = require("url")
|
local url = require("url")
|
||||||
ltn12 = require("ltn12")
|
local ltn12 = require("ltn12")
|
||||||
|
|
||||||
dofile("testsupport.lua")
|
dofile("testsupport.lua")
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ local qptest = "qptest.bin"
|
|||||||
local eqptest = "qptest.bin2"
|
local eqptest = "qptest.bin2"
|
||||||
local dqptest = "qptest.bin3"
|
local dqptest = "qptest.bin3"
|
||||||
|
|
||||||
local b64test = "luasocket.dll"
|
local b64test = "luasocket.dylib"
|
||||||
local eb64test = "b64test.bin"
|
local eb64test = "b64test.bin"
|
||||||
local db64test = "b64test.bin2"
|
local db64test = "b64test.bin2"
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
mime = require("mime")
|
local mime = require("mime")
|
||||||
|
|
||||||
function test_dot(original, right)
|
function test_dot(original, right)
|
||||||
local result, n = mime.dot(2, original)
|
local result, n = mime.dot(2, original)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
socket = require"socket"
|
local socket = require"socket"
|
||||||
|
|
||||||
host = host or "localhost"
|
host = host or "localhost"
|
||||||
port = port or "8080"
|
port = port or "8080"
|
||||||
@ -418,7 +418,7 @@ function connect_errors()
|
|||||||
assert(not c and e == "connection refused", e)
|
assert(not c and e == "connection refused", e)
|
||||||
print("ok")
|
print("ok")
|
||||||
io.stderr:write("host not found: ")
|
io.stderr:write("host not found: ")
|
||||||
local c, e = socket.connect("not.exist.com", 1);
|
local c, e = socket.connect("host.is.invalid", 1);
|
||||||
assert(not c and e == "host not found", e)
|
assert(not c and e == "host not found", e)
|
||||||
print("ok")
|
print("ok")
|
||||||
end
|
end
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
socket = require"socket"
|
local socket = require"socket"
|
||||||
|
|
||||||
host = host or "localhost"
|
host = host or "localhost"
|
||||||
port = port or "8080"
|
port = port or "8080"
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
socket = require("socket")
|
local socket = require("socket")
|
||||||
socket.url = require("url")
|
socket.url = require("url")
|
||||||
dofile("testsupport.lua")
|
dofile("testsupport.lua")
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user