MCPcopy Create free account
hub / github.com/Tencent/UnLua / socket_recv

Function socket_recv

Plugins/UnLuaExtensions/LuaSocket/Source/src/usocket.cpp:258–275  ·  view source on GitHub ↗

-------------------------------------------------------------------------*\ * Receive with timeout \*-------------------------------------------------------------------------*/

Source from the content-addressed store, hash-verified

256* Receive with timeout
257\*-------------------------------------------------------------------------*/
258int socket_recv(p_socket ps, char *data, size_t count, size_t *got, p_timeout tm) {
259 int err;
260 *got = 0;
261 if (*ps == SOCKET_INVALID) return IO_CLOSED;
262 for ( ;; ) {
263 long taken = (long) recv(*ps, data, count, 0);
264 if (taken > 0) {
265 *got = taken;
266 return IO_DONE;
267 }
268 err = errno;
269 if (taken == 0) return IO_CLOSED;
270 if (err == EINTR) continue;
271 if (err != EAGAIN) return err;
272 if ((err = socket_waitfd(ps, WAITFD_R, tm)) != IO_DONE) return err;
273 }
274 return IO_UNKNOWN;
275}
276
277/*-------------------------------------------------------------------------*\
278* Recvfrom with timeout

Callers 2

meth_receiveFunction · 0.70
meth_receiveFunction · 0.70

Calls 1

socket_waitfdFunction · 0.70

Tested by

no test coverage detected