diff options
| author | ruki <[email protected]> | 2019-10-29 22:42:19 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2019-10-29 10:13:54 +0800 |
| commit | 0ad553e46eb001448cf5acac7ba6d26a11e39eff (patch) | |
| tree | b1c8bf9fe95ec38ac7048d74970f90380b7b66d8 /xmake/core/base/socket.lua | |
| parent | b2a507bc82fefb561c386f4910ba223abed20e1e (diff) | |
fix socket_recv
Diffstat (limited to 'xmake/core/base/socket.lua')
| -rw-r--r-- | xmake/core/base/socket.lua | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/xmake/core/base/socket.lua b/xmake/core/base/socket.lua index 47c358599..e3cd1fa69 100644 --- a/xmake/core/base/socket.lua +++ b/xmake/core/base/socket.lua @@ -223,12 +223,18 @@ end -- send file to socket function _instance:sendfile(file, opt) - -- ensure opened + -- ensure the socket opened local ok, errors = self:_ensure_opened() if not ok then return -1, errors end + -- ensure the file opened + local ok, errors = file:_ensure_opened() + if not ok then + return -1, errors + end + -- init start and last opt = opt or {} local start = opt.start or 1 @@ -246,8 +252,7 @@ function _instance:sendfile(file, opt) local errors = nil if opt.block then while start < last do - -- TODO pass file/handle, improve block send - real, errors = io.socket_sendfile(self._SOCK, file, start, last) + real, errors = io.socket_sendfile(self._SOCK, file._FILE, start, last) if real > 0 then send = send + real start = start + real @@ -265,7 +270,7 @@ function _instance:sendfile(file, opt) end end else - send, errors = io.socket_sendfile(self._SOCK, file, start, last) + send, errors = io.socket_sendfile(self._SOCK, file._FILE, start, last) if send < 0 and errors then errors = string.format("%s: %s", self, errors) end @@ -314,7 +319,7 @@ function _instance:recv(size, opt) end end else - recv, data_or_errors = io.socket_recv(self._SOCK, size) + recv, data_or_errors = io.socket_recv(self._SOCK, size, data_or_errors) if recv < 0 and data_or_errors then data_or_errors = string.format("%s: %s", self, data_or_errors) end |
