diff --git a/frontend/ui/message/simpletcpserver.lua b/frontend/ui/message/simpletcpserver.lua index 0e63d1540..f37e82b44 100644 --- a/frontend/ui/message/simpletcpserver.lua +++ b/frontend/ui/message/simpletcpserver.lua @@ -1,5 +1,7 @@ local socket = require("socket") local logger = require("logger") +local _ = require("gettext") +local T = require("ffi/util").template -- Reference: -- https://lunarmodules.github.io/luasocket/tcp.html @@ -23,7 +25,11 @@ function SimpleTCPServer:new(o) end function SimpleTCPServer:start() - self.server = socket.bind(self.host, self.port) + local server, err = socket.bind(self.host, self.port) + if not server then + return false, (err and T(_("Failed to bind socket: %1"), err) or _("Failed to bind socket")) + end + self.server = server self.server:settimeout(0.01) -- set timeout (10ms) logger.dbg("SimpleTCPServer: Server listening on port " .. self.port) end diff --git a/plugins/httpinspector.koplugin/main.lua b/plugins/httpinspector.koplugin/main.lua index 7a2d90476..d8418fe68 100644 --- a/plugins/httpinspector.koplugin/main.lua +++ b/plugins/httpinspector.koplugin/main.lua @@ -100,10 +100,18 @@ function HttpInspector:start() port = self.port, receiveCallback = function(data, id) return self:onRequest(data, id) end, } - self.http_socket:start() - self.http_messagequeue = UIManager:insertZMQ(self.http_socket) - - logger.dbg("HttpInspector: Server listening on port " .. self.port) + local ok, err = self.http_socket:start() + if ok then + self.http_messagequeue = UIManager:insertZMQ(self.http_socket) + logger.dbg("HttpInspector: Server listening on port " .. self.port) + else + logger.err("HttpInspector: Failed to start server:", err) + self.http_socket = nil + local InfoMessage = require("ui/widget/infomessage") + UIManager:show(InfoMessage:new{ + text = T(_("Failed to start HTTP inspector on port %1."), self.port) .. "\n\n" .. err, + }) + end end function HttpInspector:stop()