mirror of
https://github.com/lunarmodules/luasocket.git
synced 2025-07-21 16:29:46 +02:00
Compare commits
2 Commits
6a8a3cce39
...
hjelmeland
Author | SHA1 | Date | |
---|---|---|---|
5c4fc93d5f | |||
ccef3bc4e2 |
@ -1,67 +0,0 @@
|
|||||||
project(luasocket)
|
|
||||||
cmake_minimum_required(VERSION 2.8...3.20)
|
|
||||||
include(CheckIncludeFile)
|
|
||||||
check_include_file("lua.h" HAVE_LUA)
|
|
||||||
set(socket_VERSION "3.0-rc1")
|
|
||||||
set(MIME_VERSION "1.0.3")
|
|
||||||
|
|
||||||
include_directories(BEFORE "${PROJECT_SOURCE_DIR}/src/")
|
|
||||||
|
|
||||||
# add header files directory
|
|
||||||
# include_directories()
|
|
||||||
|
|
||||||
if(MSVC)
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /O2 /Ot /MD /W3 /nologo")
|
|
||||||
else()
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wshadow -Wextra -Wimplicit -O2 -ggdb3 -fpic")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
if(${HAVE_LUA})
|
|
||||||
set(
|
|
||||||
SOURCE
|
|
||||||
"src/auxiliar.c"
|
|
||||||
"src/buffer.c"
|
|
||||||
"src/except.c"
|
|
||||||
"src/inet.c"
|
|
||||||
"src/io.c"
|
|
||||||
"src/options.c"
|
|
||||||
"src/select.c"
|
|
||||||
"src/tcp.c"
|
|
||||||
"src/udp.c"
|
|
||||||
"src/wsocket.c"
|
|
||||||
)
|
|
||||||
else()
|
|
||||||
message(FATAL_ERROR "can not found lua.h or lualib.h \n Maybe you can set \"include_directories(xxx/include)\"to solve this problem")
|
|
||||||
endif()
|
|
||||||
add_library(socket SHARED "${SOURCE}")
|
|
||||||
add_library(mime SHARED "src/mime.c" "src/compat.c")
|
|
||||||
set_target_properties(socket PROPERTIES OUTPUT_NAME "socket")
|
|
||||||
set_target_properties(mime PROPERTIES OUTPUT_NAME "mime")
|
|
||||||
elseif(APPLE)
|
|
||||||
# MACOS build
|
|
||||||
elseif(UNIX)
|
|
||||||
# Linux or Unix build
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(
|
|
||||||
TO_SOCKET_LDIR
|
|
||||||
"src/http.lua"
|
|
||||||
"src/url.lua"
|
|
||||||
"src/tp.lua"
|
|
||||||
"src/ftp.lua"
|
|
||||||
"src/headers.lua"
|
|
||||||
"src/smtp.lua"
|
|
||||||
)
|
|
||||||
|
|
||||||
set(
|
|
||||||
TO_TOP_LDIR
|
|
||||||
"src/ltn12.lua"
|
|
||||||
"src/socket.lua"
|
|
||||||
"src/mime.lua"
|
|
||||||
)
|
|
||||||
|
|
||||||
install(TARGETS socket LIBRARY DESTINATION "${CMAKE_INSTALL_PREFIX}/luasocket/socket")
|
|
||||||
install(FILES ${TO_SOCKET_LDIR} DESTINATION "${CMAKE_INSTALL_PREFIX}/luasocket/socket")
|
|
||||||
install(FILES ${TO_TOP_LDIR} DESTINATION "${CMAKE_INSTALL_PREFIX}/luasocket")
|
|
@ -89,7 +89,7 @@ it should be easy to use LuaSocket. Just fire the interpreter and use the
|
|||||||
Lua 5.2.2 Copyright (C) 1994-2013 Lua.org, PUC-Rio
|
Lua 5.2.2 Copyright (C) 1994-2013 Lua.org, PUC-Rio
|
||||||
> socket = require("socket")
|
> socket = require("socket")
|
||||||
> print(socket._VERSION)
|
> print(socket._VERSION)
|
||||||
--> LuaSocket 3.1.0
|
--> LuaSocket 3.0.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
|
||||||
|
@ -69,7 +69,6 @@ local function make_plat(plat)
|
|||||||
["socket.smtp"] = "src/smtp.lua",
|
["socket.smtp"] = "src/smtp.lua",
|
||||||
ltn12 = "src/ltn12.lua",
|
ltn12 = "src/ltn12.lua",
|
||||||
socket = "src/socket.lua",
|
socket = "src/socket.lua",
|
||||||
mbox = "src/mbox.lua",
|
|
||||||
mime = "src/mime.lua"
|
mime = "src/mime.lua"
|
||||||
}
|
}
|
||||||
if plat == "unix"
|
if plat == "unix"
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#--------------------------------------------------------------------------
|
#--------------------------------------------------------------------------
|
||||||
# Distribution makefile
|
# Distribution makefile
|
||||||
#--------------------------------------------------------------------------
|
#--------------------------------------------------------------------------
|
||||||
DIST = luasocket-3.1.0
|
DIST = luasocket-3.0.0
|
||||||
|
|
||||||
TEST = \
|
TEST = \
|
||||||
test/README \
|
test/README \
|
||||||
|
19
src/http.lua
19
src/http.lua
@ -54,7 +54,7 @@ local function receiveheaders(sock, headers)
|
|||||||
while line ~= "" do
|
while line ~= "" do
|
||||||
-- get field-name and value
|
-- get field-name and value
|
||||||
name, value = socket.skip(2, string.find(line, "^(.-):%s*(.*)"))
|
name, value = socket.skip(2, string.find(line, "^(.-):%s*(.*)"))
|
||||||
if not (name and value) then return nil, "malformed response headers" end
|
if not (name and value) then return nil, "malformed reponse 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, err = sock:receive()
|
line = 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 extension
|
-- get chunk size, skip extention
|
||||||
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,11 +219,9 @@ 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)
|
||||||
proxy.port = proxy.port or 3128
|
return proxy.host, 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, reqt.create
|
return reqt.host, reqt.port
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -281,7 +279,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 overridden
|
-- compute uri if user hasn't overriden
|
||||||
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)
|
||||||
@ -293,10 +291,7 @@ local function adjustrequest(reqt)
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- ajust host and port if there is a proxy
|
-- ajust host and port if there is a proxy
|
||||||
local proxy_create
|
nreqt.host, nreqt.port = adjustproxy(nreqt)
|
||||||
nreqt.host, nreqt.port, proxy_create = adjustproxy(nreqt)
|
|
||||||
if not reqt.create then nreqt.create = proxy_create end
|
|
||||||
|
|
||||||
return nreqt
|
return nreqt
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -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_pushinteger(L, (int) strtol(port, (char **) NULL, 10));
|
lua_pushstring(L, port);
|
||||||
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;
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
/*-------------------------------------------------------------------------* \
|
/*-------------------------------------------------------------------------* \
|
||||||
* Current socket library version
|
* Current socket library version
|
||||||
\*-------------------------------------------------------------------------*/
|
\*-------------------------------------------------------------------------*/
|
||||||
#define LUASOCKET_VERSION "LuaSocket 3.1.0"
|
#define LUASOCKET_VERSION "LuaSocket 3.0.0"
|
||||||
#define LUASOCKET_COPYRIGHT "Copyright (C) 1999-2013 Diego Nehab"
|
#define LUASOCKET_COPYRIGHT "Copyright (C) 1999-2013 Diego Nehab"
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------*\
|
/*-------------------------------------------------------------------------*\
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# luasocket src/makefile
|
# luasocket src/makefile
|
||||||
#
|
#
|
||||||
# Definitions in this section can be overridden on the command line or in the
|
# Definitions in this section can be overriden 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.1.0
|
SOCKET_V=3.0.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)
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
#define PIE_CONNREFUSED "connection refused"
|
#define PIE_CONNREFUSED "connection refused"
|
||||||
#define PIE_CONNABORTED "closed"
|
#define PIE_CONNABORTED "closed"
|
||||||
#define PIE_CONNRESET "closed"
|
#define PIE_CONNRESET "closed"
|
||||||
#define PIE_TIMEDOUT "timeout"
|
#define PIE_TIMEDOUT "connection timeout"
|
||||||
#define PIE_AGAIN "temporary failure in name resolution"
|
#define PIE_AGAIN "temporary failure in name resolution"
|
||||||
#define PIE_BADFLAGS "invalid value for ai_flags"
|
#define PIE_BADFLAGS "invalid value for ai_flags"
|
||||||
#define PIE_BADHINTS "invalid value for hints"
|
#define PIE_BADHINTS "invalid value for hints"
|
||||||
|
@ -225,7 +225,7 @@ local function adjust_headers(mesgt)
|
|||||||
lower["date"] = lower["date"] or
|
lower["date"] = lower["date"] or
|
||||||
os.date("!%a, %d %b %Y %H:%M:%S ") .. (mesgt.zone or _M.ZONE)
|
os.date("!%a, %d %b %Y %H:%M:%S ") .. (mesgt.zone or _M.ZONE)
|
||||||
lower["x-mailer"] = lower["x-mailer"] or socket._VERSION
|
lower["x-mailer"] = lower["x-mailer"] or socket._VERSION
|
||||||
-- this can't be overridden
|
-- this can't be overriden
|
||||||
lower["mime-version"] = "1.0"
|
lower["mime-version"] = "1.0"
|
||||||
return lower
|
return lower
|
||||||
end
|
end
|
||||||
|
@ -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)
|
||||||
|
@ -262,7 +262,6 @@ 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;
|
||||||
}
|
}
|
||||||
@ -292,7 +291,6 @@ 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;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user