From 9fd6b8960a32eba78e5092b945b57c57cc184897 Mon Sep 17 00:00:00 2001
From: Roman Tsisyk <roman@tsisyk.com>
Date: Mon, 15 Dec 2014 18:01:53 +0300
Subject: [PATCH] Follow up #658 fixes

---
 src/lua/bsdsocket.lua     | 2 +-
 test/box/bsdsocket.result | 6 +++---
 test/box/bsdsocket.test   | 6 +++---
 3 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/lua/bsdsocket.lua b/src/lua/bsdsocket.lua
index 266e2aad60..0b705fee46 100644
--- a/src/lua/bsdsocket.lua
+++ b/src/lua/bsdsocket.lua
@@ -584,7 +584,7 @@ local function readline_check(self, eols, limit)
         end
     end
     if shortest == nil and #rbuf >= limit then
-        return string.sub(rbuf, limit)
+        return string.sub(rbuf, 1, limit)
     end
     return shortest
 end
diff --git a/test/box/bsdsocket.result b/test/box/bsdsocket.result
index 1b58940408..b9c1304207 100644
--- a/test/box/bsdsocket.result
+++ b/test/box/bsdsocket.result
@@ -1120,13 +1120,13 @@ lua server:close()
 ---
  - true
 ...
-lua body = "a 10\nb 15\nx"
+lua body = "a 10\nb 15\nabc"
 ---
 ...
 lua remaining = #body
 ---
 ...
-lua server = box.socket.tcp_server("unix/", "%s", function(s) s:write(body) s:read() end)
+lua server = box.socket.tcp_server("unix/", "%s", function(s) s:write(body) s:read(100500) end)
 ---
 ...
 lua client = box.socket.tcp_connect("unix/", "%s")
@@ -1155,7 +1155,7 @@ lua remaining = remaining - #buf
 lua buf = client:read({ size = remaining, delimiter = "[\r\n]+"})
 ---
 ...
-lua buf == "x"
+lua buf == "abc"
 ---
  - true
 ...
diff --git a/test/box/bsdsocket.test b/test/box/bsdsocket.test
index 706061dd31..9e3c7454ef 100644
--- a/test/box/bsdsocket.test
+++ b/test/box/bsdsocket.test
@@ -361,9 +361,9 @@ exec admin "lua client:close()"
 exec admin "lua server:close()"
 
 ## gh-658: socket:read() incorrectly handles size and delimiter together
-exec admin 'lua body = "a 10\\nb 15\\nx"'
+exec admin 'lua body = "a 10\\nb 15\\nabc"'
 exec admin 'lua remaining = #body'
-exec admin 'lua server = box.socket.tcp_server("unix/", "%s", function(s) s:write(body) s:read() end)'.format(path)
+exec admin 'lua server = box.socket.tcp_server("unix/", "%s", function(s) s:write(body) s:read(100500) end)'.format(path)
 exec admin 'lua client = box.socket.tcp_connect("unix/", "%s")'.format(path)
 exec admin 'lua buf = client:read({ size = remaining, delimiter = "[\\r\\n]+"})'
 exec admin 'lua buf == "a 10\\n"'
@@ -372,7 +372,7 @@ exec admin 'lua buf = client:read({ size = remaining, delimiter = "[\\r\\n]+"})'
 exec admin 'lua buf == "b 15\\n"'
 exec admin 'lua remaining = remaining - #buf'
 exec admin 'lua buf = client:read({ size = remaining, delimiter = "[\\r\\n]+"})'
-exec admin 'lua buf == "x"'
+exec admin 'lua buf == "abc"'
 exec admin 'lua remaining = remaining - #buf'
 exec admin 'lua remaining == 0'
 exec admin 'lua buf = client:read({ size = remaining, delimiter = "[\\r\\n]+"})'
-- 
GitLab