Improve error handling in network_flush when disconnect happens

pull/90/head
Michael Black 2019-02-05 09:40:46 -06:00
rodzic 8f93173462
commit 63570dd791
1 zmienionych plików z 8 dodań i 3 usunięć

Wyświetl plik

@ -277,6 +277,7 @@ int network_open(hamlib_port_t *rp, int default_port)
*/
void network_flush(hamlib_port_t *rp)
{
int ret;
#ifdef __MINGW32__
ULONG len = 0;
#else
@ -289,12 +290,16 @@ void network_flush(hamlib_port_t *rp)
for (;;)
{
len = 0;
#ifdef __MINGW32__
ioctlsocket(rp->fd, FIONREAD, &len);
ret = ioctlsocket(rp->fd, FIONREAD, &len);
#else
ioctl(rp->fd, FIONREAD, &len);
ret = ioctl(rp->fd, FIONREAD, &len);
#endif
if (ret != 0) {
rig_debug(RIG_DEBUG_ERR,"%s: ioctl err '%s'\n",__FUNCTION__,strerror(errno));
break;
}
if (len > 0)
{
len = read(rp->fd, &buffer, len < NET_BUFFER_SIZE ? len : NET_BUFFER_SIZE);