MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / ok

Method ok

src/remote/inet.cpp:337–376  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

335 }
336
337 HandleState ok(const rem_port* port)
338 {
339#ifdef WIRE_COMPRESS_SUPPORT
340 if (port->port_z_data)
341 return SEL_READY;
342#endif
343 SOCKET n = port->port_handle;
344#if defined(WIN_NT)
345 if (FD_ISSET(n, &slct_fdset))
346 {
347 unset(n);
348 return SEL_READY;
349 }
350 return SEL_NO_DATA;
351#elif defined(HAVE_POLL)
352 pollfd* pf = nullptr;
353 FB_SIZE_T pos;
354 if (slct_ready.find(n, pos))
355 pf = slct_ready[pos];
356
357 if (pf)
358 {
359 HandleState ret = pf->events & SEL_CHECK_MASK ? SEL_READY : SEL_NO_DATA;
360 pf->events = 0; // unset
361 return ret;
362 }
363 return n < 0 ? (port->port_flags & PORT_disconnect ? SEL_DISCONNECTED : SEL_BAD) : SEL_NO_DATA;
364#else
365 if (n < 0 || n >= FD_SETSIZE)
366 return port->port_flags & PORT_disconnect ? SEL_DISCONNECTED : SEL_BAD;
367
368 if (n < slct_width && FD_ISSET(n, &slct_fdset))
369 {
370 unset(n);
371 return SEL_READY;
372 }
373
374 return SEL_NO_DATA;
375#endif
376 }
377
378 void unset(SOCKET handle)
379 {

Callers

nothing calls this directly

Calls 1

findMethod · 0.45

Tested by

no test coverage detected