summaryrefslogtreecommitdiff
path: root/xmake
diff options
context:
space:
mode:
Diffstat (limited to 'xmake')
-rw-r--r--xmake/core/base/socket.lua26
-rw-r--r--xmake/core/sandbox/modules/import/core/base/socket.lua24
2 files changed, 25 insertions, 25 deletions
diff --git a/xmake/core/base/socket.lua b/xmake/core/base/socket.lua
index 97a04bb8b..0ff3ab8b0 100644
--- a/xmake/core/base/socket.lua
+++ b/xmake/core/base/socket.lua
@@ -19,22 +19,31 @@
--
-- define module
-local io = io or {}
local socket = socket or {}
local _instance = _instance or {}
-- load modules
+local io = require("base/io")
local table = require("base/table")
local string = require("base/string")
+-- the socket types
+socket.TCP = 1
+socket.UDP = 2
+socket.ICMP = 3
+
+-- the socket families
+socket.IPV4 = 1
+socket.IPV6 = 2
+
-- new a socket
function _instance.new(socktype, family, sock)
- local socket = table.inherit(_instance)
- socket._SOCK = sock
- socket._TYPE = socktype or "tcp"
- socket._FAMILY = family or "ipv4"
- setmetatable(socket, _instance)
- return socket
+ local instance = table.inherit(_instance)
+ instance._SOCK = sock
+ instance._TYPE = socktype or socket.TCP
+ instance._FAMILY = family or socket.IPV4
+ setmetatable(instance, _instance)
+ return instance
end
-- get socket type
@@ -109,7 +118,8 @@ end
-- tostring(socket)
function _instance:__tostring()
local rawfd = self:rawfd() or "closed"
- return string.format("<socket: %s%s/%s>", self:type(), self:family() == "ipv6" and "6" or "4", rawfd)
+ local types = {"tcp", "udp", "icmp"}
+ return string.format("<socket: %s%s/%s>", types[self:type()], self:family() == socket.IPV6 and "6" or "4", rawfd)
end
-- gc(socket)
diff --git a/xmake/core/sandbox/modules/import/core/base/socket.lua b/xmake/core/sandbox/modules/import/core/base/socket.lua
index e13d55fca..fa9114699 100644
--- a/xmake/core/sandbox/modules/import/core/base/socket.lua
+++ b/xmake/core/sandbox/modules/import/core/base/socket.lua
@@ -77,29 +77,19 @@ function sandbox_core_base_socket.open(socktype, family)
return sock
end
--- open tcp/ipv4 socket
-function sandbox_core_base_socket.open_tcp4()
- return sandbox_core_base_socket.open("tcp", "ipv4")
-end
-
--- open tcp/ipv6 socket
-function sandbox_core_base_socket.open_tcp6()
- return sandbox_core_base_socket.open("tcp", "ipv6")
-end
-
-- open udp/ipv4 socket
-function sandbox_core_base_socket.open_udp4()
- return sandbox_core_base_socket.open("udp", "ipv4")
+function sandbox_core_base_socket.udp4()
+ return sandbox_core_base_socket.open(socket.UDP, socket.IPV4)
end
-- open udp/ipv6 socket
-function sandbox_core_base_socket.open_udp6()
- return sandbox_core_base_socket.open("udp", "ipv6")
+function sandbox_core_base_socket.udp6()
+ return sandbox_core_base_socket.open(socket.UDP, socket.IPV6)
end
-- open and connect tcp/ipv4 socket
function sandbox_core_base_socket.connect4(addr, port, timeout)
- local sock = sandbox_core_base_socket.open_tcp4()
+ local sock = sandbox_core_base_socket.open(socket.TCP, socket.IPV4)
local ok = 0
repeat
ok = sock:connect(addr, port)
@@ -114,8 +104,8 @@ function sandbox_core_base_socket.connect4(addr, port, timeout)
end
-- open and connect tcp/ipv6 socket
-function sandbox_core_base_socket.connect6(addr, port)
- local sock = sandbox_core_base_socket.open_tcp6()
+function sandbox_core_base_socket.connect6(addr, port, timeout)
+ local sock = sandbox_core_base_socket.open(socket.TCP, socket.IPV6)
local ok = 0
repeat
ok = sock:connect(addr, port)