BUG/MAJOR: lua: send function fails and return bad bytes
In some cases the Lua "send" function fails. This is caused by the
return of "buffer_replace2()" is not tested. I checked avalaible space
in the buffer and I supposed than "buffer_replace2()" took all the
data. In some cases, "buffer_replace2()" cannot take the incoming
data, it returns the amount of data copied.
This patch check the amount of data really copied by "buffer_replace2()"
and advance the buffer with taking this value in account.
diff --git a/src/hlua.c b/src/hlua.c
index 1df18b6..d3f302f 100644
--- a/src/hlua.c
+++ b/src/hlua.c
@@ -2091,7 +2091,7 @@
if (max > len - l)
max = len - l;
- buffer_replace2(chn->chn->buf, chn->chn->buf->p, chn->chn->buf->p, str+l, max);
+ max = buffer_replace2(chn->chn->buf, chn->chn->buf->p, chn->chn->buf->p, str+l, max);
/* buffer replace considers that the input part is filled.
* so, I must forward these new data in the output part.
*/