Almost ready to release beta3

This commit is contained in:
Diego Nehab 2005-01-02 22:44:00 +00:00
parent a8254e94f8
commit 97b26e0b66
23 changed files with 53 additions and 59 deletions

View File

@ -1,11 +1,6 @@
This directory contains code that is more useful than the examples. This code This directory contains code that is more useful than the examples. This code
*is* supported. *is* supported.
lua.lua -- new require and requirelib implementations
This is to support dynamic loading of LuaSocket. Check the INSTALL
file for more information.
tftp.lua -- Trivial FTP client tftp.lua -- Trivial FTP client
This module implements file retrieval by the TFTP protocol. Its main use This module implements file retrieval by the TFTP protocol. Its main use

View File

@ -151,4 +151,4 @@ get = socket.protect(function(gett)
else return tget(gett) end else return tget(gett) end
end) end)
getmetatable(_M).__index = nil --getmetatable(_M).__index = nil

View File

@ -318,4 +318,4 @@ query = socket.protect(function(p)
return data return data
end) end)
getmetatable(_M).__index = nil --getmetatable(_M).__index = nil

View File

@ -153,4 +153,4 @@ get = socket.protect(function(gett)
else return tget(gett) end else return tget(gett) end
end) end)
getmetatable(_M).__index = nil --getmetatable(_M).__index = nil

View File

@ -19,7 +19,7 @@
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="0" Optimization="0"
AdditionalIncludeDirectories="h:\include" AdditionalIncludeDirectories="..\..\include, compat-5.1r2"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LUASOCKET_EXPORTS;LUASOCKET_API=__declspec(dllexport)" PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LUASOCKET_EXPORTS;LUASOCKET_API=__declspec(dllexport)"
MinimalRebuild="TRUE" MinimalRebuild="TRUE"
BasicRuntimeChecks="3" BasicRuntimeChecks="3"
@ -69,7 +69,7 @@
CharacterSet="2"> CharacterSet="2">
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
AdditionalIncludeDirectories="../../include" AdditionalIncludeDirectories="../../include, compat-5.1r2"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LUASOCKET_EXPORTS;LUASOCKET_API=__declspec(dllexport); LUASOCKET_DEBUG" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LUASOCKET_EXPORTS;LUASOCKET_API=__declspec(dllexport); LUASOCKET_DEBUG"
RuntimeLibrary="4" RuntimeLibrary="4"
UsePrecompiledHeader="0" UsePrecompiledHeader="0"
@ -125,7 +125,7 @@
RelativePath=".\buffer.c"> RelativePath=".\buffer.c">
</File> </File>
<File <File
RelativePath=".\compat-5.1.c"> RelativePath=".\compat-5.1r2\compat-5.1.c">
</File> </File>
<File <File
RelativePath=".\except.c"> RelativePath=".\except.c">

View File

@ -4,6 +4,8 @@
DIST = luasocket-2.0-beta3 DIST = luasocket-2.0-beta3
COMPAT = compat-5.1r2
LUA = \ LUA = \
ftp.lua \ ftp.lua \
http.lua \ http.lua \
@ -11,7 +13,6 @@ LUA = \
mime.lua \ mime.lua \
smtp.lua \ smtp.lua \
socket.lua \ socket.lua \
compat-5.1.lua \
tp.lua \ tp.lua \
url.lua url.lua
@ -72,9 +73,7 @@ CORE = \
usocket.c \ usocket.c \
usocket.h \ usocket.h \
wsocket.c \ wsocket.c \
wsocket.h \ wsocket.h
compat-5.1.c \
compat-5.1.h
MAKE = \ MAKE = \
makefile.Darwin \ makefile.Darwin \
@ -92,7 +91,7 @@ MANUAL = \
manual/ltn12.html \ manual/ltn12.html \
manual/luasocket.png \ manual/luasocket.png \
manual/mime.html \ manual/mime.html \
manual/instalation.html \ manual/installation.html \
manual/reference.css \ manual/reference.css \
manual/reference.html \ manual/reference.html \
manual/smtp.html \ manual/smtp.html \
@ -107,6 +106,7 @@ dist:
mkdir -p $(DIST)/etc mkdir -p $(DIST)/etc
mkdir -p $(DIST)/lua mkdir -p $(DIST)/lua
mkdir -p $(DIST)/manual mkdir -p $(DIST)/manual
cp -vfr $(COMPAT) $(DIST)
cp -vf TODO $(DIST) cp -vf TODO $(DIST)
cp -vf $(CORE) $(DIST) cp -vf $(CORE) $(DIST)
cp -vf README $(DIST) cp -vf README $(DIST)

View File

@ -19,7 +19,7 @@
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="0" Optimization="0"
AdditionalIncludeDirectories="h:\include" AdditionalIncludeDirectories="..\..\include, compat-5.1r2"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;MIME_EXPORTS;MIME_API=__declspec(dllexport)" PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;MIME_EXPORTS;MIME_API=__declspec(dllexport)"
MinimalRebuild="TRUE" MinimalRebuild="TRUE"
BasicRuntimeChecks="3" BasicRuntimeChecks="3"
@ -68,7 +68,7 @@
CharacterSet="2"> CharacterSet="2">
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
AdditionalIncludeDirectories="../../include" AdditionalIncludeDirectories="../../include, compat-5.1r2"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;MIME_EXPORTS; MIME_API=__declspec(dllexport)" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;MIME_EXPORTS; MIME_API=__declspec(dllexport)"
RuntimeLibrary="4" RuntimeLibrary="4"
UsePrecompiledHeader="0" UsePrecompiledHeader="0"
@ -117,7 +117,7 @@
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx" Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"> UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
<File <File
RelativePath=".\compat-5.1.c"> RelativePath=".\compat-5.1r2\compat-5.1.c">
</File> </File>
<File <File
RelativePath=".\mime.c"> RelativePath=".\mime.c">

View File

@ -7,7 +7,7 @@ is not supported.
listener.lua and talker.lua are about the simplest applications you can listener.lua and talker.lua are about the simplest applications you can
write using LuaSocket. Run write using LuaSocket. Run
'lua listen.lua' and 'lua talk.lua' 'lua listener.lua' and 'lua talker.lua'
on different terminals. Whatever you type on talk.lua will be on different terminals. Whatever you type on talk.lua will be
printed by listen.lua. printed by listen.lua.

View File

@ -12,13 +12,13 @@ if arg then
port = arg[2] or port port = arg[2] or port
end end
host = socket.dns.toip(host) host = socket.dns.toip(host)
udp = socket.try(socket.udp()) udp = assert(socket.udp())
socket.try(udp:setpeername(host, port)) assert(udp:setpeername(host, port))
print("Using remote host '" ..host.. "' and port " .. port .. "...") print("Using remote host '" ..host.. "' and port " .. port .. "...")
while 1 do while 1 do
line = io.read() line = io.read()
if not line then os.exit() end if not line or line == "" then os.exit() end
socket.try(udp:send(line)) assert(udp:send(line))
dgram = socket.try(udp:receive()) dgram = assert(udp:receive())
print(dgram) print(dgram)
end end

View File

@ -12,10 +12,11 @@ if arg then
port = arg[2] or port port = arg[2] or port
end end
print("Binding to host '" ..host.. "' and port " ..port.. "...") print("Binding to host '" ..host.. "' and port " ..port.. "...")
udp = socket.try(socket.udp()) udp = assert(socket.udp())
socket.try(udp:setsockname(host, port)) assert(udp:setsockname(host, port))
socket.try(udp:settimeout(5)) assert(udp:settimeout(5))
ip, port = socket.try(udp:getsockname()) ip, port = udp:getsockname()
assert(ip, port)
print("Waiting packets on " .. ip .. ":" .. port .. "...") print("Waiting packets on " .. ip .. ":" .. port .. "...")
while 1 do while 1 do
dgram, ip, port = udp:receivefrom() dgram, ip, port = udp:receivefrom()

View File

@ -12,10 +12,11 @@ if arg then
port = arg[2] or port port = arg[2] or port
end end
print("Binding to host '" ..host.. "' and port " ..port.. "...") print("Binding to host '" ..host.. "' and port " ..port.. "...")
s = socket.try(socket.bind(host, port)) s = assert(socket.bind(host, port))
i, p = socket.try(s:getsockname()) i, p = s:getsockname()
assert(i, p)
print("Waiting connection from talker on " .. i .. ":" .. p .. "...") print("Waiting connection from talker on " .. i .. ":" .. p .. "...")
c = socket.try(s:accept()) c = assert(s:accept())
print("Connected. Here is the stuff:") print("Connected. Here is the stuff:")
l, e = c:receive() l, e = c:receive()
while not e do while not e do

View File

@ -12,10 +12,10 @@ if arg then
port = arg[2] or port port = arg[2] or port
end end
print("Attempting connection to host '" ..host.. "' and port " ..port.. "...") print("Attempting connection to host '" ..host.. "' and port " ..port.. "...")
c = socket.try(socket.connect(host, port)) c = assert(socket.connect(host, port))
print("Connected! Please type stuff (empty line to stop):") print("Connected! Please type stuff (empty line to stop):")
l = io.read() l = io.read()
while l and l ~= "" and not e do while l and l ~= "" and not e do
socket.try(c:send(l, "\n")) assert(c:send(l .. "\n"))
l = io.read() l = io.read()
end end

View File

@ -14,8 +14,8 @@ if arg then
port2 = arg[3] or port2 port2 = arg[3] or port2
end end
server1 = socket.try(socket.bind(host, port1)) server1 = assert(socket.bind(host, port1))
server2 = socket.try(socket.bind(host, port2)) server2 = assert(socket.bind(host, port2))
server1:settimeout(1) -- make sure we don't block in accept server1:settimeout(1) -- make sure we don't block in accept
server2:settimeout(1) server2:settimeout(1)

View File

@ -278,4 +278,4 @@ get = socket.protect(function(gett)
else return tget(gett) end else return tget(gett) end
end) end)
getmetatable(_M).__index = nil --getmetatable(_M).__index = nil

View File

@ -259,4 +259,4 @@ request = socket.protect(function(reqt, body)
else return trequest(reqt) end else return trequest(reqt) end
end) end)
getmetatable(_M).__index = nil --getmetatable(_M).__index = nil

View File

@ -170,20 +170,16 @@ end
-- creates a source that produces contents of several sources, one after the -- creates a source that produces contents of several sources, one after the
-- other, as if they were concatenated -- other, as if they were concatenated
-- (thanks to Wim Couwenberg)
function source.cat(...) function source.cat(...)
local co = coroutine.create(function() local src = table.remove(arg, 1)
local i = 1
while i <= table.getn(arg) do
local chunk, err = arg[i]()
if chunk then coroutine.yield(chunk)
elseif err then return nil, err
else i = i + 1 end
end
end)
return function() return function()
local ret, a, b = coroutine.resume(co) while src do
if ret then return a, b local chunk, err = src()
else return nil, a end if chunk then return chunk end
if err then return nil, err end
src = table.remove(arg, 1)
end
end end
end end
@ -276,4 +272,4 @@ function pump.all(src, snk, step)
end end
end end
getmetatable(_M).__index = nil --getmetatable(_M).__index = nil

View File

@ -14,6 +14,8 @@
* Current luasocket version * Current luasocket version
\*-------------------------------------------------------------------------*/ \*-------------------------------------------------------------------------*/
#define LUASOCKET_VERSION "LuaSocket 2.0 (beta3)" #define LUASOCKET_VERSION "LuaSocket 2.0 (beta3)"
#define LUASOCKET_COPYRIGHT "Copyright (C) 2004-2005 Diego Nehab"
#define LUASOCKET_AUTHORS "Diego Nehab"
/*-------------------------------------------------------------------------*\ /*-------------------------------------------------------------------------*\
* This macro prefixes all exported API functions * This macro prefixes all exported API functions

View File

@ -85,4 +85,4 @@ function mime.stuff()
return ltn12.filter.cycle(dot, 2) return ltn12.filter.cycle(dot, 2)
end end
getmetatable(_M).__index = nil --getmetatable(_M).__index = nil

View File

@ -245,4 +245,4 @@ send = socket.protect(function(mailt)
return s:close() return s:close()
end) end)
getmetatable(_M).__index = nil --getmetatable(_M).__index = nil

View File

@ -172,4 +172,4 @@ socket.sourcet["default"] = socket.sourcet["until-closed"]
socket.source = socket.choose(socket.sourcet) socket.source = socket.choose(socket.sourcet)
getmetatable(_M).__index = nil --getmetatable(_M).__index = nil

View File

@ -120,4 +120,4 @@ function connect(host, port, timeout)
return base.setmetatable({c = c}, metat) return base.setmetatable({c = c}, metat)
end end
getmetatable(_M).__index = nil --getmetatable(_M).__index = nil

View File

@ -273,4 +273,4 @@ function build_path(parsed, unsafe)
return path return path
end end
getmetatable(_M).__index = nil --getmetatable(_M).__index = nil

View File

@ -23,7 +23,7 @@ http.TIMEOUT = 10
local t = socket.gettime() local t = socket.gettime()
host = host or "diego.student.princeton.edu" host = host or "diego.student.princeton.edu"
proxy = proxy or "http://localhost:3128" proxy = proxy or "http://dell-diego:3128"
prefix = prefix or "/luasocket-test" prefix = prefix or "/luasocket-test"
cgiprefix = cgiprefix or "/luasocket-test-cgi" cgiprefix = cgiprefix or "/luasocket-test-cgi"
index_file = "test/index.html" index_file = "test/index.html"
@ -399,7 +399,6 @@ print("ok")
------------------------------------------------------------------------ ------------------------------------------------------------------------
io.write("testing HEAD method: ") io.write("testing HEAD method: ")
http.TIMEOUT = 1
local r, c, h = http.request { local r, c, h = http.request {
method = "HEAD", method = "HEAD",
url = "http://www.cs.princeton.edu/~diego/" url = "http://www.cs.princeton.edu/~diego/"