SLiRP: Force resetting of the range number
This commit is contained in:
@@ -105,6 +105,7 @@ typedef struct netcard_conf_t {
|
||||
|
||||
extern netcard_conf_t net_cards_conf[NET_CARD_MAX];
|
||||
extern uint16_t net_card_current;
|
||||
extern int slirp_card_num;
|
||||
|
||||
typedef int (*NETRXCB)(void *, uint8_t *, int);
|
||||
typedef int (*NETSETLINKSTATE)(void *, uint32_t link_state);
|
||||
|
||||
@@ -470,13 +470,13 @@ net_slirp_thread(void *priv)
|
||||
}
|
||||
#endif
|
||||
|
||||
static int slirp_card_num = 2;
|
||||
int slirp_card_num = 2;
|
||||
|
||||
/* Initialize SLiRP for use. */
|
||||
void *
|
||||
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));
|
||||
memcpy(slirp->mac_addr, mac_addr, sizeof(slirp->mac_addr));
|
||||
slirp->card = (netcard_t *) card;
|
||||
@@ -639,7 +639,6 @@ net_slirp_close(void *priv)
|
||||
}
|
||||
free(slirp->pkt.data);
|
||||
free(slirp);
|
||||
slirp_card_num--;
|
||||
}
|
||||
|
||||
const netdrv_t net_slirp_drv = {
|
||||
|
||||
@@ -608,6 +608,7 @@ network_reset(void)
|
||||
ui_sb_update_icon(SB_NETWORK, 0);
|
||||
ui_sb_update_icon_write(SB_NETWORK, 0);
|
||||
|
||||
slirp_card_num = 2;
|
||||
#ifdef ENABLE_NETWORK_LOG
|
||||
network_dump_mutex = thread_create_mutex();
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user