From 7f68245eae59fdd26ddd94d26287354a88ac8511 Mon Sep 17 00:00:00 2001 From: Cacodemon345 Date: Wed, 13 Mar 2024 17:46:36 +0600 Subject: [PATCH 1/3] unix_netsocket.c: Fix comparison value --- src/unix/unix_netsocket.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/unix_netsocket.c b/src/unix/unix_netsocket.c index 9e9ac2f49..e6ec6285f 100644 --- a/src/unix/unix_netsocket.c +++ b/src/unix/unix_netsocket.c @@ -144,7 +144,7 @@ int plat_netsocket_connect(SOCKET socket, const char* hostname, unsigned short p sock_addr.sin_addr.s_addr = inet_addr(hostname); sock_addr.sin_port = htons(port); - if (sock_addr.sin_addr.s_addr == INADDR_ANY || sock_addr.sin_addr.s_addr == 0) { + if (sock_addr.sin_addr.s_addr == ((in_addr_t)-1) || sock_addr.sin_addr.s_addr == 0) { struct hostent *hp; hp = gethostbyname(hostname); From 607f66a1f83925c0f7824022392482f8a3ac9a7f Mon Sep 17 00:00:00 2001 From: Cacodemon345 Date: Wed, 13 Mar 2024 19:14:00 +0600 Subject: [PATCH 2/3] net_modem: Implement answer command --- src/network/net_modem.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/network/net_modem.c b/src/network/net_modem.c index fe8ebfc57..372b39123 100644 --- a/src/network/net_modem.c +++ b/src/network/net_modem.c @@ -153,6 +153,7 @@ static modem_t *instance; #define MREG_DTR_DELAY 25 static void modem_do_command(modem_t* modem); +static void modem_answer_incoming_call(modem_t* modem); extern ssize_t local_getline(char **buf, size_t *bufsiz, FILE *fp); @@ -822,8 +823,12 @@ modem_do_command(modem_t* modem) break; case 'A': // Answer call { - modem_send_res(modem, ResERROR); - return; + if (modem->waitingclientsocket == -1) { + modem_send_res(modem, ResERROR); + return; + } + modem_answer_incoming_call(modem); + break; } return; case 'Z': { // Reset and load profiles From 53baaeece7679572df8cfa99f7d240f74e7433c3 Mon Sep 17 00:00:00 2001 From: Cacodemon345 Date: Wed, 13 Mar 2024 19:21:16 +0600 Subject: [PATCH 3/3] Comments cleanup and function name fixes --- src/network/net_modem.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/network/net_modem.c b/src/network/net_modem.c index 372b39123..c7d0aea2c 100644 --- a/src/network/net_modem.c +++ b/src/network/net_modem.c @@ -153,7 +153,7 @@ static modem_t *instance; #define MREG_DTR_DELAY 25 static void modem_do_command(modem_t* modem); -static void modem_answer_incoming_call(modem_t* modem); +static void modem_accept_incoming_call(modem_t* modem); extern ssize_t local_getline(char **buf, size_t *bufsiz, FILE *fp); @@ -559,7 +559,6 @@ modem_reset(modem_t* modem) void modem_dial(modem_t* modem, const char* str) { - /* TODO: Port TCP/IP support from DOSBox. */ modem->tcpIpConnCounter = 0; modem->tcpIpMode = false; if (!strncmp(str, "0.0.0.0", sizeof("0.0.0.0") - 1)) @@ -827,7 +826,7 @@ modem_do_command(modem_t* modem) modem_send_res(modem, ResERROR); return; } - modem_answer_incoming_call(modem); + modem_accept_incoming_call(modem); break; } return;