VOGONS


First post, by superfury

User metadata
Rank l33t++
Rank
l33t++

When connecting with Dosbox, I can connect multiple times without issue. But, strangely, when connecting using UniPCemu, then disconnecting, then reconnecting(thus every second time it connects), the SLIP server doesn't seem to respond?

UniPCemu and SLIP server code:
https://bitbucket.org/superfury/unipcemu/src/ … ardware/modem.c

Look for the updateModem(timepassedinnanoseconds) for the exact function that updates the modem and SLIP server state.

It looks like the SLIP server isn't sending data over the connected TCP port when connecting every even time using UniPCemu(it doesn't seem to do that with Dosbox)?

Edit: It only seems to apply when connecting fully over the WAN, not when connecting over the LAN? Perhaps something to do with my virusscanner?
Edit: Just confirmed. Said problem only happen when accessing the server through the WAN. When using a local connection(though the local modem/network IP addresses) the issue doesn't seem to happen? Perhaps something caused by the real ISP?

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

Reply 1 of 8, by superfury

User metadata
Rank l33t++
Rank
l33t++

Hmmm... Now trying with the Arachne web browsers' miniterm.exe goes strange. It will somehow execute most of the startup(Initialization from the MS-DOS prompt works fine), but once it connects to the server, it stops sending/receiving halfway through the input received from the server?

Edit: I already verified the server to be working properly with Dosbox (also Arachne in it) and Windows 95 under Dosbox. So there must be a CPU or perhaps UART emulation problem with UniPCemu's case?

UniPCemu's modem emulation(also the SLIP server used to connect to): https://bitbucket.org/superfury/unipcemu/src/ … ardware/modem.c
UniPCemu's UART emulation: https://bitbucket.org/superfury/unipcemu/src/ … hardware/uart.c

Can anyone see a problem with the UART emulation or the serial modem interface(the modem is at COM2 with an IRQ of 3)? See modem.c's initModem for the registration with the UART module and updateModem for the timings and send/receive from the buffers(line 2564 to 2622).
The modem_getstatus(status read), modem_hasData(data ready to read), modem_readData(read data from the modem when it's ready) and modem_writeData(write data to the modem) are the interface used by the serial UART interface(which is running at cycle-accurate timing). See the UART's updateUART/UART_handleInputs for the transfers. PORT_writeUART/PORT_readUART is the interface to the CPU emulation(the I/O ports of the UART).

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

Reply 2 of 8, by superfury

User metadata
Rank l33t++
Rank
l33t++

After messing around with the code a bit mode, I've managed to get more than one session connected to UniPCemu's SLIP server 😁

Now it's theoretically possible to actually, with multiple users, browse the internet using the SLIP server at the same time(up to a theoretical maximum of 256 users).

But for some reason, internet becomes VERY slow when multiple users are requesting multiple pages at the same time? Perhaps an issue with the libpcap sending and receiving two different things at the same time?

I do notice that while my server was running I suddently couldn't access my own router from the normal Windows 10 webbrowser? Perhaps that has something to do with the SLIP server writing it's raw packets to that device directly(by MAC address)?

Is there a way to check if my SLIP server is somehow messing up network traffic on the network it's running on?

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

Reply 3 of 8, by superfury

User metadata
Rank l33t++
Rank
l33t++

It seems that the two clients that are connected at the same time(one being Dosbox 0.73 running Arachne, the other being SVN Daum running Internet Explorer on Windows 95) somehow causes the whole connection to slow down(and become laggish or fail retrieving pages)?

Arachne keeps saying it can't open the connection?

Anyone knows of these kinds of issues when operating a 'shared' SLIP-server(two clients sending TCP/IP packets in parallel over the network(from the same server and IP) and receiving the same packets(by packet sniffing using WinPCap))?

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

Reply 4 of 8, by superfury

User metadata
Rank l33t++
Rank
l33t++

After some more bugfixing and improvements to the server, it now supports multiple account logins from any connected client(thus parallel account logins are now possible). Each account can(when specified) have it's own IP-address(but the default(the first account without a number (1 and up) suffix in the settings) account's IP-address settings still applies if the numbered account(1 and up) has an empty IP-address field.

So, as far as I've tested, you can now(with the current commit) login to the server with multiple TCP connections at the same time, each having it's own account(username, password and IP-address).

The only thing that still isn't working is setting an account to an IP-address that's not the host IP-address. You can still send packets, but nothing can be received? Is the reason perhaps because the gateway has no knowledge of the IP-address being connected(requiring some DHCP first) on the (non-)host's IP?

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

Reply 5 of 8, by superfury

User metadata
Rank l33t++
Rank
l33t++

After messing a bit more with the TCP handling of UniPCemu, it's now properly connecting and disconnecting as it needs.

I do notice one strange little thing with Dosbox SVN Daum: When Windows 95 connects to a client on the serial modem (softmodem.c) connection, when the other side hangs up I do correctly see the status window reporting "NO CARRIER", so it's indeed disconnected. But Windows 95 doesn't seem to notice the fact, thinking that it's still verifying user credentials(or continuing to do so at least)?

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

Reply 6 of 8, by superfury

User metadata
Rank l33t++
Rank
l33t++

Well, the connection issues are solved for now. The server will now automatically shut down or start back up when connections are unavailable(shutdown) or are available(start back up).

And of course restarting the application will cause it to shut down the server and disconnect all clients as well(since it's a total shutdown of the server).

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

Reply 7 of 8, by superfury

User metadata
Rank l33t++
Rank
l33t++

The latest version of the SLIP server can now be found on the project's download page! 😁

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

Reply 8 of 8, by superfury

User metadata
Rank l33t++
Rank
l33t++

I'm just thinking... Will a TCP connection automatically disconnect when nothing is sent/received for a long amount of time? Or will my software have to do that itself(while waiting for input for the username/password/protocol)?

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