Modem: Increase buffer sizes to 256k and make sure to never transfer more packets than there are available FIFO slots, and removed excess logging, fixes #4793.

This commit is contained in:
OBattler
2024-09-19 08:08:21 +02:00
parent 5234446194
commit 61ac77affe

View File

@@ -264,7 +264,7 @@ modem_read_phonebook_file(modem_t *modem, const char *path)
if (strspn(entry.phone, "01234567890*=,;#+>") != strlen(entry.phone)) {
/* Invalid characters. */
pclog("Modem: Invalid character in phone number %s\n", entry.phone);
modem_log("Modem: Invalid character in phone number %s\n", entry.phone);
continue;
}
@@ -617,7 +617,7 @@ modem_enter_idle_state(modem_t *modem)
if (modem->listen_port) {
modem->serversocket = plat_netsocket_create_server(NET_SOCKET_TCP, modem->listen_port);
if (modem->serversocket == (SOCKET) -1) {
pclog("Failed to set up server on port %d\n", modem->listen_port);
modem_log("Failed to set up server on port %d\n", modem->listen_port);
}
}
@@ -703,14 +703,14 @@ modem_dial(modem_t *modem, const char *str)
modem->numberinprogress[0] = 0;
modem->clientsocket = plat_netsocket_create(NET_SOCKET_TCP);
if (modem->clientsocket == -1) {
pclog("Failed to create client socket\n");
modem_log("Failed to create client socket\n");
modem_send_res(modem, ResNOCARRIER);
modem_enter_idle_state(modem);
return;
}
if (-1 == plat_netsocket_connect(modem->clientsocket, buf, port)) {
pclog("Failed to connect to %s\n", buf);
modem_log("Failed to connect to %s\n", buf);
modem_send_res(modem, ResNOCARRIER);
modem_enter_idle_state(modem);
return;
@@ -1147,7 +1147,7 @@ fifo8_resize_2x(Fifo8 *fifo)
if (!used)
return;
uint8_t *temp_buf = calloc(fifo->capacity * 2, 1);
uint8_t *temp_buf = calloc(size, 1);
if (!temp_buf) {
fatal("net_modem: Out Of Memory!\n");
}
@@ -1440,7 +1440,8 @@ modem_cmdpause_timer_callback(void *priv)
if (modem->connected) {
uint8_t buffer[16];
int wouldblock = 0;
int res = plat_netsocket_receive(modem->clientsocket, buffer, sizeof(buffer), &wouldblock);
int recv = MIN(modem->rx_data.capacity - modem->rx_data.num, sizeof(buffer));
int res = plat_netsocket_receive(modem->clientsocket, buffer, recv, &wouldblock);
if (res > 0) {
if (modem->telnet_mode)
@@ -1488,8 +1489,8 @@ modem_init(const device_t *info)
modem->clientsocket = modem->serversocket = modem->waitingclientsocket = -1;
fifo8_create(&modem->data_pending, 0x20000);
fifo8_create(&modem->rx_data, 0x20000);
fifo8_create(&modem->data_pending, 0x40000);
fifo8_create(&modem->rx_data, 0x40000);
timer_add(&modem->dtr_timer, modem_dtr_callback_timer, modem, 0);
timer_add(&modem->host_to_serial_timer, host_to_modem_cb, modem, 0);