summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMattes D <github@xoft.cz>2015-10-11 21:23:06 +0200
committerMattes D <github@xoft.cz>2015-10-11 21:23:06 +0200
commit4a1cec01e8c819d110e93591762198a8095caec5 (patch)
treee64c9bc875a7109586e03126c2cc622410b63a2e
parentMerge pull request #2535 from cuberite/FixGitQueries (diff)
parentAdded 'net sclient' command to NetworkTest plugin. (diff)
downloadcuberite-4a1cec01e8c819d110e93591762198a8095caec5.tar
cuberite-4a1cec01e8c819d110e93591762198a8095caec5.tar.gz
cuberite-4a1cec01e8c819d110e93591762198a8095caec5.tar.bz2
cuberite-4a1cec01e8c819d110e93591762198a8095caec5.tar.lz
cuberite-4a1cec01e8c819d110e93591762198a8095caec5.tar.xz
cuberite-4a1cec01e8c819d110e93591762198a8095caec5.tar.zst
cuberite-4a1cec01e8c819d110e93591762198a8095caec5.zip
-rw-r--r--Server/Plugins/NetworkTest/Info.lua17
-rw-r--r--Server/Plugins/NetworkTest/NetworkTest.lua43
2 files changed, 60 insertions, 0 deletions
diff --git a/Server/Plugins/NetworkTest/Info.lua b/Server/Plugins/NetworkTest/Info.lua
index d8c3095fe..2788d3674 100644
--- a/Server/Plugins/NetworkTest/Info.lua
+++ b/Server/Plugins/NetworkTest/Info.lua
@@ -90,6 +90,23 @@ g_PluginInfo =
},
}, -- lookup
+ sclient =
+ {
+ HelpString = "Connects, as an SSL client, to a specified webpage (github.com by default) and downloads its front page using HTTPS",
+ Handler = HandleConsoleNetSClient,
+ ParameterCombinations =
+ {
+ {
+ Params = "",
+ Help = "Connects, as an SSL client, to github.com and downloads its front page using HTTPS",
+ },
+ {
+ Params = "host [port]",
+ Help = "Connects, as an SSL client, to the specified host and downloads its front page using HTTPS",
+ },
+ }, -- ParameterCombinations
+ }, -- sclient
+
udp =
{
Subcommands =
diff --git a/Server/Plugins/NetworkTest/NetworkTest.lua b/Server/Plugins/NetworkTest/NetworkTest.lua
index 22056d4e9..d6849ead6 100644
--- a/Server/Plugins/NetworkTest/NetworkTest.lua
+++ b/Server/Plugins/NetworkTest/NetworkTest.lua
@@ -371,6 +371,49 @@ end
+function HandleConsoleNetSClient(a_Split)
+ -- Get the address to connect to:
+ local Host = a_Split[3] or "github.com"
+ local Port = a_Split[4] or 443
+
+ -- Create the callbacks "personalised" for the address:
+ local Callbacks =
+ {
+ OnConnected = function (a_Link)
+ LOG("Connected to " .. Host .. ":" .. Port .. ".")
+ LOG("Connection stats: Remote address: " .. a_Link:GetRemoteIP() .. ":" .. a_Link:GetRemotePort() .. ", Local address: " .. a_Link:GetLocalIP() .. ":" .. a_Link:GetLocalPort())
+ LOG("Sending HTTP request for front page.")
+ a_Link:StartTLSClient()
+ a_Link:Send("GET / HTTP/1.0\r\nHost: " .. Host .. "\r\n\r\n")
+ end,
+
+ OnError = function (a_Link, a_ErrorCode, a_ErrorMsg)
+ LOG("Connection to " .. Host .. ":" .. Port .. " failed: " .. a_ErrorCode .. " (" .. a_ErrorMsg .. ")")
+ end,
+
+ OnReceivedData = function (a_Link, a_Data)
+ LOG("Received data from " .. Host .. ":" .. Port .. ":\r\n" .. a_Data)
+ end,
+
+ OnRemoteClosed = function (a_Link)
+ LOG("Connection to " .. Host .. ":" .. Port .. " was closed by the remote peer.")
+ end
+ }
+
+ -- Queue a connect request:
+ local res = cNetwork:Connect(Host, Port, Callbacks)
+ if not(res) then
+ LOGWARNING("cNetwork:Connect call failed immediately")
+ return true
+ end
+
+ return true, "SSL Client connection request queued."
+end
+
+
+
+
+
function HandleConsoleNetUdpClose(a_Split)
-- Get the port to close:
local Port = tonumber(a_Split[4] or 1024)