From 2a6d9983113de055617151b690630a80adb33978 Mon Sep 17 00:00:00 2001 From: Rob Swindell <rob@synchro.net> Date: Mon, 26 Dec 2022 16:22:20 -0800 Subject: [PATCH] Add more debug log output around the select() for recv call ... in hopes of debugging issue #468 Also clean up drop files unless -d option is passed. Incremented version to 0.3. --- src/vdmodem/vdmodem.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/vdmodem/vdmodem.c b/src/vdmodem/vdmodem.c index 7a93dbf0f3..03858285ca 100644 --- a/src/vdmodem/vdmodem.c +++ b/src/vdmodem/vdmodem.c @@ -41,7 +41,7 @@ #include "git_hash.h" #define TITLE "Synchronet Virtual DOS Modem for Windows" -#define VERSION "0.2" +#define VERSION "0.3" bool external_socket; union xp_sockaddr addr; @@ -1387,8 +1387,14 @@ int main(int argc, char** argv) fd_set fds = {0}; FD_SET(sock, &fds); struct timeval tv = { 0, 0 }; - if(now - lastrx >= rx_delay && select(/* ignored: */0, &fds, NULL, NULL, &tv) == 1) { - dprintf("select returned 1 at %llu", now); + result = select(/* ignored: */0, &fds, NULL, NULL, &tv); + if(result != 0) { + if(result == SOCKET_ERROR) + dprintf("select returned SOCKET_ERROR (%d) at %llu", WSAGetLastError(), now); + else + dprintf("select returned %d at %llu", result, now); + } + if(now - lastrx >= rx_delay && result == 1) { int rd = recv(sock, buf, rx_buflen, /* flags: */0); dprintf("recv returned %d", rd); if(rd <= 0) { @@ -1556,6 +1562,12 @@ int main(int argc, char** argv) printf("lastrx: %llu\n", lastrx); printf("lastring: %llu\n", lastring); printf("timer: %llu\n", xp_timer64()); + } else { + if(cfg.client_file[0]) + remove(cfg.client_file); + remove("DOSXTRN.ENV"); + remove("DOSXTRN.RET"); + remove("DOSXTRN.ERR"); } return retval; } -- GitLab