3 Commits

Author SHA1 Message Date
d835c86a82 Merge 20920473dd into 9100f7e3ab 2023-10-21 21:58:11 -07:00
20920473dd Update compiler flags options 2021-11-03 09:08:49 +08:00
be6399cb9d Update cmake build tools 2021-11-03 08:57:41 +08:00
7 changed files with 77 additions and 47 deletions

View File

@ -8,32 +8,27 @@ on:
jobs:
build:
name: Test ${{ matrix.luaVersion }} on ${{ matrix.platform }}
name: Test build on ${{ matrix.platform }}
strategy:
fail-fast: false
matrix:
luaVersion: [ "5.4", "5.3", "5.2", "5.1", "luajit", "luajit-openresty" ]
platform: [ "ubuntu-22.04", "macos-11", "windows-2022" ]
platform: [ "ubuntu-20.04", "macos-11" ] # "windows-2022" not supported by gh-actions-lua
runs-on: ${{ matrix.platform }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup msvc
if: ${{ startsWith(matrix.platform, 'windows') && !startsWith(matrix.luaVersion, 'luajit') }}
uses: ilammy/msvc-dev-cmd@v1
uses: actions/checkout@v3
- name: Setup lua
uses: leso-kn/gh-actions-lua@v11-staging
uses: leafo/gh-actions-lua@v9
with:
luaVersion: ${{ matrix.luaVersion }}
- name: Setup luarocks
uses: hishamhm/gh-actions-luarocks@master
uses: leafo/gh-actions-luarocks@v4
- name: Make and install
run: |
export DEBUG=DEBUG
luarocks make -- luasocket-scm-3.rockspec
env:
DEBUG: DEBUG
- name: Run regression tests
shell: bash
run: |
cd test
lua hello.lua

View File

@ -5,9 +5,9 @@ on: [push, pull_request]
jobs:
luacheck:
runs-on: ubuntu-22.04
runs-on: ubuntu-20.04
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v3
- name: Luacheck
uses: lunarmodules/luacheck@v1
uses: lunarmodules/luacheck@v0

67
CMakeLists.txt Normal file
View File

@ -0,0 +1,67 @@
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")

View File

@ -54,33 +54,6 @@ int opt_meth_getoption(lua_State *L, p_opt opt, p_socket ps)
return opt->func(L, ps);
}
/*------------------------------------------------------*/
/* binds socket to network interface */
int opt_set_bindtodevice(lua_State *L, p_socket ps)
{
#ifndef SO_BINDTODEVICE
return luaL_error(L, "SO_BINDTODEVICE is not supported on this operating system");
#else
const char *dev = luaL_checkstring(L, 3);
return opt_set(L, ps, SOL_SOCKET, SO_BINDTODEVICE, (char*)dev, strlen(dev)+1);
#endif
}
int opt_get_bindtodevice(lua_State *L, p_socket ps)
{
#ifndef SO_BINDTODEVICE
return luaL_error(L, "SO_BINDTODEVICE is not supported on this operating system");
#else
char dev[IFNAMSIZ];
int len = sizeof(dev);
int err = opt_get(L, ps, SOL_SOCKET, SO_BINDTODEVICE, &dev, &len);
if (err)
return err;
lua_pushstring(L, dev);
return 1;
#endif
}
/*------------------------------------------------------*/
/* enables reuse of local address */
int opt_set_reuseaddr(lua_State *L, p_socket ps)

View File

@ -53,9 +53,6 @@ int opt_get_tcp_keepintvl(lua_State *L, p_socket ps);
int opt_set_tcp_defer_accept(lua_State *L, p_socket ps);
#endif
int opt_set_bindtodevice(lua_State *L, p_socket ps);
int opt_get_bindtodevice(lua_State *L, p_socket ps);
int opt_set_keepalive(lua_State *L, p_socket ps);
int opt_get_keepalive(lua_State *L, p_socket ps);

View File

@ -12,7 +12,7 @@
#define PIE_CONNREFUSED "connection refused"
#define PIE_CONNABORTED "closed"
#define PIE_CONNRESET "closed"
#define PIE_TIMEDOUT "connection timeout"
#define PIE_TIMEDOUT "timeout"
#define PIE_AGAIN "temporary failure in name resolution"
#define PIE_BADFLAGS "invalid value for ai_flags"
#define PIE_BADHINTS "invalid value for hints"

View File

@ -71,7 +71,6 @@ static luaL_Reg tcp_methods[] = {
/* socket option handlers */
static t_opt optget[] = {
{"bindtodevice", opt_get_bindtodevice},
{"keepalive", opt_get_keepalive},
{"reuseaddr", opt_get_reuseaddr},
{"reuseport", opt_get_reuseport},
@ -93,7 +92,6 @@ static t_opt optget[] = {
};
static t_opt optset[] = {
{"bindtodevice", opt_set_bindtodevice},
{"keepalive", opt_set_keepalive},
{"reuseaddr", opt_set_reuseaddr},
{"reuseport", opt_set_reuseport},