mirror of
https://github.com/lunarmodules/luasocket.git
synced 2025-05-01 12:46:45 +02:00
Compare commits
1 Commits
527b6cc87f
...
98bdcd3e9a
Author | SHA1 | Date | |
---|---|---|---|
|
98bdcd3e9a |
17
.github/workflows/build.yml
vendored
17
.github/workflows/build.yml
vendored
@ -8,32 +8,27 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
name: Test ${{ matrix.luaVersion }} on ${{ matrix.platform }}
|
name: Test build on ${{ matrix.platform }}
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
luaVersion: [ "5.4", "5.3", "5.2", "5.1", "luajit", "luajit-openresty" ]
|
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 }}
|
runs-on: ${{ matrix.platform }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v3
|
||||||
- name: Setup ’msvc’
|
|
||||||
if: ${{ startsWith(matrix.platform, 'windows') && !startsWith(matrix.luaVersion, 'luajit') }}
|
|
||||||
uses: ilammy/msvc-dev-cmd@v1
|
|
||||||
- name: Setup ‘lua’
|
- name: Setup ‘lua’
|
||||||
uses: leso-kn/gh-actions-lua@v11-staging
|
uses: leafo/gh-actions-lua@v9
|
||||||
with:
|
with:
|
||||||
luaVersion: ${{ matrix.luaVersion }}
|
luaVersion: ${{ matrix.luaVersion }}
|
||||||
- name: Setup ‘luarocks’
|
- name: Setup ‘luarocks’
|
||||||
uses: hishamhm/gh-actions-luarocks@master
|
uses: leafo/gh-actions-luarocks@v4
|
||||||
- name: Make and install
|
- name: Make and install
|
||||||
run: |
|
run: |
|
||||||
|
export DEBUG=DEBUG
|
||||||
luarocks make -- luasocket-scm-3.rockspec
|
luarocks make -- luasocket-scm-3.rockspec
|
||||||
env:
|
|
||||||
DEBUG: DEBUG
|
|
||||||
- name: Run regression tests
|
- name: Run regression tests
|
||||||
shell: bash
|
|
||||||
run: |
|
run: |
|
||||||
cd test
|
cd test
|
||||||
lua hello.lua
|
lua hello.lua
|
||||||
|
6
.github/workflows/luacheck.yml
vendored
6
.github/workflows/luacheck.yml
vendored
@ -5,9 +5,9 @@ on: [push, pull_request]
|
|||||||
jobs:
|
jobs:
|
||||||
|
|
||||||
luacheck:
|
luacheck:
|
||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-20.04
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v3
|
||||||
- name: Luacheck
|
- name: Luacheck
|
||||||
uses: lunarmodules/luacheck@v1
|
uses: lunarmodules/luacheck@v0
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
# LuaSocket
|
# LuaSocket
|
||||||
|
|
||||||
|
|
||||||
[](https://github.com/lunarmodules/luasocket/actions?workflow=Build)
|
[](https://github.com/lunarmodules/luasocket/actions?workflow=Build)
|
||||||
[](https://github.com/lunarmodules/luasocket/actions?workflow=Luacheck)
|
[](https://github.com/lunarmodules/luasocket/actions?workflow=Luacheck)
|
||||||
[](https://github.com/lunarmodules/luasocket/releases)
|
[](https://github.com/lunarmodules/luasocket/releases)
|
||||||
[](https://luarocks.org/modules/lunarmodules/luasocket)
|
[](https://luarocks.org/modules/lunarmodules/luasocket)
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
@ -54,33 +54,6 @@ int opt_meth_getoption(lua_State *L, p_opt opt, p_socket ps)
|
|||||||
return opt->func(L, 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 */
|
/* enables reuse of local address */
|
||||||
int opt_set_reuseaddr(lua_State *L, p_socket ps)
|
int opt_set_reuseaddr(lua_State *L, p_socket ps)
|
||||||
|
@ -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);
|
int opt_set_tcp_defer_accept(lua_State *L, p_socket ps);
|
||||||
#endif
|
#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_set_keepalive(lua_State *L, p_socket ps);
|
||||||
int opt_get_keepalive(lua_State *L, p_socket ps);
|
int opt_get_keepalive(lua_State *L, p_socket ps);
|
||||||
|
|
||||||
|
@ -71,7 +71,6 @@ static luaL_Reg tcp_methods[] = {
|
|||||||
|
|
||||||
/* socket option handlers */
|
/* socket option handlers */
|
||||||
static t_opt optget[] = {
|
static t_opt optget[] = {
|
||||||
{"bindtodevice", opt_get_bindtodevice},
|
|
||||||
{"keepalive", opt_get_keepalive},
|
{"keepalive", opt_get_keepalive},
|
||||||
{"reuseaddr", opt_get_reuseaddr},
|
{"reuseaddr", opt_get_reuseaddr},
|
||||||
{"reuseport", opt_get_reuseport},
|
{"reuseport", opt_get_reuseport},
|
||||||
@ -93,7 +92,6 @@ static t_opt optget[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static t_opt optset[] = {
|
static t_opt optset[] = {
|
||||||
{"bindtodevice", opt_set_bindtodevice},
|
|
||||||
{"keepalive", opt_set_keepalive},
|
{"keepalive", opt_set_keepalive},
|
||||||
{"reuseaddr", opt_set_reuseaddr},
|
{"reuseaddr", opt_set_reuseaddr},
|
||||||
{"reuseport", opt_set_reuseport},
|
{"reuseport", opt_set_reuseport},
|
||||||
|
@ -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)
|
||||||
|
@ -274,7 +274,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;
|
||||||
}
|
}
|
||||||
@ -304,7 +303,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;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user