SLiRP: Force resetting of the range number

This commit is contained in:
RichardG867
2025-09-05 17:21:19 -03:00
parent 15231c19aa
commit f4f39f2858
3 changed files with 4 additions and 3 deletions

View File

@@ -105,6 +105,7 @@ typedef struct netcard_conf_t {
extern netcard_conf_t net_cards_conf[NET_CARD_MAX]; extern netcard_conf_t net_cards_conf[NET_CARD_MAX];
extern uint16_t net_card_current; extern uint16_t net_card_current;
extern int slirp_card_num;
typedef int (*NETRXCB)(void *, uint8_t *, int); typedef int (*NETRXCB)(void *, uint8_t *, int);
typedef int (*NETSETLINKSTATE)(void *, uint32_t link_state); typedef int (*NETSETLINKSTATE)(void *, uint32_t link_state);

View File

@@ -470,13 +470,13 @@ net_slirp_thread(void *priv)
} }
#endif #endif
static int slirp_card_num = 2; int slirp_card_num = 2;
/* Initialize SLiRP for use. */ /* Initialize SLiRP for use. */
void * void *
net_slirp_init(const netcard_t *card, const uint8_t *mac_addr, UNUSED(void *priv), char *netdrv_errbuf) net_slirp_init(const netcard_t *card, const uint8_t *mac_addr, UNUSED(void *priv), char *netdrv_errbuf)
{ {
slirp_log("SLiRP: initializing...\n"); pclog("SLiRP: initializing with range %d...\n", slirp_card_num);
net_slirp_t *slirp = calloc(1, sizeof(net_slirp_t)); net_slirp_t *slirp = calloc(1, sizeof(net_slirp_t));
memcpy(slirp->mac_addr, mac_addr, sizeof(slirp->mac_addr)); memcpy(slirp->mac_addr, mac_addr, sizeof(slirp->mac_addr));
slirp->card = (netcard_t *) card; slirp->card = (netcard_t *) card;
@@ -639,7 +639,6 @@ net_slirp_close(void *priv)
} }
free(slirp->pkt.data); free(slirp->pkt.data);
free(slirp); free(slirp);
slirp_card_num--;
} }
const netdrv_t net_slirp_drv = { const netdrv_t net_slirp_drv = {

View File

@@ -608,6 +608,7 @@ network_reset(void)
ui_sb_update_icon(SB_NETWORK, 0); ui_sb_update_icon(SB_NETWORK, 0);
ui_sb_update_icon_write(SB_NETWORK, 0); ui_sb_update_icon_write(SB_NETWORK, 0);
slirp_card_num = 2;
#ifdef ENABLE_NETWORK_LOG #ifdef ENABLE_NETWORK_LOG
network_dump_mutex = thread_create_mutex(); network_dump_mutex = thread_create_mutex();
#endif #endif