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

Function socket_recvfrom

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

-------------------------------------------------------------------------*\ * Recvfrom with timeout \*-------------------------------------------------------------------------*/

Source from the content-addressed store, hash-verified

278* Recvfrom with timeout
279\*-------------------------------------------------------------------------*/
280int socket_recvfrom(p_socket ps, char *data, size_t count, size_t *got,
281 SA *addr, socklen_t *len, p_timeout tm) {
282 int err;
283 *got = 0;
284 if (*ps == SOCKET_INVALID) return IO_CLOSED;
285 for ( ;; ) {
286 long taken = (long) recvfrom(*ps, data, count, 0, addr, len);
287 if (taken > 0) {
288 *got = taken;
289 return IO_DONE;
290 }
291 err = errno;
292 if (taken == 0) return IO_CLOSED;
293 if (err == EINTR) continue;
294 if (err != EAGAIN) return err;
295 if ((err = socket_waitfd(ps, WAITFD_R, tm)) != IO_DONE) return err;
296 }
297 return IO_UNKNOWN;
298}
299
300
301/*-------------------------------------------------------------------------*\

Callers 2

meth_receivefromFunction · 0.70
meth_receivefromFunction · 0.70

Calls 1

socket_waitfdFunction · 0.70

Tested by

no test coverage detected