MCPcopy Create free account
hub / github.com/Hamlib/Hamlib / network_flush

Function network_flush

src/network.c:424–479  ·  view source on GitHub ↗

* \brief Clears any data in the read buffer of the socket * * \param rp Port data structure */

Source from the content-addressed store, hash-verified

422 * \param rp Port data structure
423 */
424void network_flush(hamlib_port_t *rp)
425{
426#ifdef __MINGW32__
427 ULONG len;
428#else
429 uint len;
430#endif
431
432 char buffer[NET_BUFFER_SIZE] = { 0 };
433
434 rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
435
436 for (;;)
437 {
438 int ret;
439 len = 0;
440#ifdef __MINGW32__
441 ret = ioctlsocket(rp->fd, FIONREAD, &len);
442#else
443 ret = ioctl(rp->fd, FIONREAD, &len);
444#endif
445
446 if (ret != 0)
447 {
448 rig_debug(RIG_DEBUG_ERR, "%s: ioctl err '%s'\n", __func__, strerror(errno));
449 break;
450 }
451
452 if (len > 0)
453 {
454 int len_read = 0;
455 rig_debug(RIG_DEBUG_WARN,
456 "%s: network data clear d: ret=%d, len=%d, '%s'\n",
457 __func__,
458 ret, (int)len, buffer);
459 len_read = recv(rp->fd, buffer, len < NET_BUFFER_SIZE ? len : NET_BUFFER_SIZE,
460 0);
461
462 if (len_read < 0) // -1 indicates error occurred
463 {
464 rig_debug(RIG_DEBUG_ERR, "%s: read error '%s'\n", __func__, strerror(errno));
465 break;
466 }
467
468 rig_debug(RIG_DEBUG_WARN,
469 "%s: network data cleared: ret=%d, len_read=%d/0x%x\n",
470 __func__,
471 ret, len_read, len_read);
472 dump_hex((unsigned char *)buffer, len_read);
473 }
474 else
475 {
476 break;
477 }
478 }
479}
480
481

Callers 1

rig_flush_forceFunction · 0.85

Calls 2

rig_debugFunction · 0.85
dump_hexFunction · 0.85

Tested by

no test coverage detected