VOGONS


First post, by superfury

User metadata
Rank l33t++
Rank
l33t++

I've been improving the packet server (in git only atm, not released yet) a bit(DHCP still a WIP).

It now has response to ARP packets when it receives ARP requests for the configured IP address of a logged in user(as in it's (default) IPaddress setting).

Could this cause issues with Windows 10 somehow? After testing it(Windows 10 being configured with a static IP in the network card settings), I see the original IP in "arp -a". But after I issue a ping command to the IP that's different in UniPCemu's settings(a logged in user with a different IP), the IP reported by arp changes to the new setting and "arp -a" doesn't change back to the old setting, even when performing a ping to the old IP address?

I also ran into issues with the network card when I tried to disable and then re-enable it in the settings of the card, with Windows being unable to start it back up again(device manager gave some kind of error code), even after a full reboot (needed to run Windows system restore to an earlier restore point to fix this)?

Does the server also need to respond to ARP packets to the original IP address(before being changed by UniPCemu's reply ARP packet)? Or does Windows do that itself already?

Last edited by superfury on 2021-05-28, 09:07. Edited 1 time in total.

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 1 of 3, by superfury

User metadata
Rank l33t++
Rank
l33t++

I've just added the server's IP address (which also is Windows 10, which is running it in my testcase) for a target together with the logged in users.
So if an ARP arrives which targets the server or the Windows 10 host, UniPCemu will send a ARP reply for that with the configured default IP address and MAC address.

Although I don't know if Windows 10 already does that (resulting in a duplicate being sent by UniPCemu that Windows already sends)?

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 2 of 3, by superfury

User metadata
Rank l33t++
Rank
l33t++

OK. I've managed to actually dial out to the internet on Dosbox to the packet server in slip mode.

Then from there I connected to bbs.starbase21.net using the Telnet client of Windows 95, logged in there, tried to connect to a IRC client on there (which failed).

Then I used the telent connection to connect to the server version of UniPCemu. It ran properly, but once disconnected because of invalid credentials (just enter junk login information), the packet server itself crashed on that.
So it's actually working to some extent (DNS is working fine, internet is working properly including one ARP-supplied IP address that's not the host as long as what looks like the server supporting the IPv4 connection)?

Although thinking logically, the disconnect is indeed correct, but somehow crashing on cleaning up the client when it's disconnected?

Yay! Found the bug! It was releasing the connected client twice (once during a forced disconnect, then once again when trying to check for received data, which it shouldn't).

Edit: Having fixed said bug, the dial-up server no longer seems to crash! 😁
So it's providing stable internet with 2 IP addresses so far: 1 IP that's used by the host and 1 IP that's used by the client (using ARP).

Now to test with multiple clients at the same time... Can they talk to each other (2 Windows 95 instances, duplicates of each other)?

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 3 of 3, by superfury

User metadata
Rank l33t++
Rank
l33t++

The talking with each other seems to fail? Also, ping from Windows 10 finds the IP, but probably fails on it's second stage(ICMP packets afaik, which should be below the IP layer(protocol 01h))? Or does Windows 10 use something different?

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io