From 73e61a9cc6c3d745f9960a1b32d83e872ae60b0e Mon Sep 17 00:00:00 2001 From: silveratom Date: Fri, 28 Apr 2017 15:17:12 +0800 Subject: [PATCH] Update socketchannel.lua --- lualib/socketchannel.lua | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/lualib/socketchannel.lua b/lualib/socketchannel.lua index 4a0929b3..fc3c246e 100644 --- a/lualib/socketchannel.lua +++ b/lualib/socketchannel.lua @@ -376,6 +376,12 @@ end local socket_write = socket.write local socket_lwrite = socket.lwrite +local function sock_err(self) + close_channel_socket(self) + wakeup_all(self) + error(socket_error) +end + function channel:request(request, response, padding) assert(block_connect(self, true)) -- connect once local fd = self.__sock[1] @@ -384,22 +390,17 @@ function channel:request(request, response, padding) -- padding may be a table, to support multi part request -- multi part request use low priority socket write -- now socket_lwrite returns as socket_write - local function sock_err() - close_channel_socket(self) - wakeup_all(self) - error(socket_error) - end if not socket_lwrite(fd , request) then - sock_err() + sock_err(self) end for _,v in ipairs(padding) do if not socket_lwrite(fd, v) then - sock_err() + sock_err(self) end end else if not socket_write(fd , request) then - sock_err() + sock_err(self) end end