VOGONS


Reply 60 of 69, by ATauenis

User metadata
Rank Member
Rank
Member

I seen this problem few times, and before thought that it is related to internet connection problem... That is, this is really a bug. 🙁
In all cases restarting WebOne solves the problem for some next minutes. Or if do not make any requests via proxy for approx. 5 mins the problem also temporarly rids off.

keenmaster486 wrote:

the proxy server hangs at "downloading content" and the temporary files are all 0 bytes

This is not exactly a hang or freeze, the operation will break due to timeout. It's similar to network troubles, but not caused by real network.

Created a GitHub issue to discuss it: https://github.com/atauenis/webone/issues/2 .

2×Soviet ZX-Speccy, 1×MacIIsi, 1×086, 1×286, 2×386DX, 1×386SX, 2×486, 1×P54C, 7×P55C, 6×Slot1, 4×S370, 1×SlotA, 2×S462, ∞×Modern.

Reply 61 of 69, by ATauenis

User metadata
Rank Member
Rank
Member

Version 0.9.3 is ready
It's focused on fixes for bugs found in previous releases.

  • Fixed Guru Meditation on replies with HTTP 406 (Not Acceptable) status code.
  • Fixed hangs and Timeout errors on network operations.
  • Fixed 100% CPU load after using of video converters.
  • Fixed endless downloading of videos via browsers when converter is too lazy to say "that's all".
  • Fixed bug that prevents sending requests with Range, Expect and some other headers.
  • Fixed rare crashes on If-Modified-Since header.
  • Error messages on processing of internal URLs are now displaying more accurately.
  • Full version is now provided with FFmpeg instead of AVconv, because it is containing more codecs and have less problems on Windows.
  • ViewTube-related stuff has been detached from main code base to separate ViewTube with WebOne support project.

Download page: https://github.com/atauenis/webone/releases/tag/v0.9.3

2×Soviet ZX-Speccy, 1×MacIIsi, 1×086, 1×286, 2×386DX, 1×386SX, 2×486, 1×P54C, 7×P55C, 6×Slot1, 4×S370, 1×SlotA, 2×S462, ∞×Modern.

Reply 62 of 69, by superfury

User metadata
Rank l33t
Rank
l33t

Just saw this project. Now it made me think: would this be able to convert the modern Web to make it compatible with e.g. Windows 95(under Dosbox/UniPCemu or other dial-up modem connection able emulator) connected through TCP to UniPCemu's server build(emulating an ISP), then using this software to convert the Web 2.0(HTTPS not being supported by Windows 95) for the Windows 95 client connected to UniPCemu? UniPCemu itself doesn nothing more than being connected to under a TCP connection, translating the I/O over the TCP connection(encoded in SLIP format) to raw IPv4 packets and sending/receiving them over the network(to be exact, sending them to the router, but it might still work?).

So would this be able to connect e.g. Windows 9x/3.x running under Dosbox being connected to UniPCemu for SLIP-to-ethernet(through the emulated Hayes-compatible modem) conversion, with Windows 95 talking in the old Web standard and this converting that standard to Web 2.0(thus providing HTTPS support to the Windows 95 browser)?

UniPCemu Git repository
UniPCemu for Android, Windows and PSP on itch.io
Older UniPCemu PC/Android/PSP releases

Reply 63 of 69, by ATauenis

User metadata
Rank Member
Rank
Member

superfury, it should work with modem emulation, but I haven't tested currently. In LANs setting IP address of proxy server PC in DOS/Win95 browser settings is enough. If host PC's IP is accessible via modem emulator, no problems should be with using WebOne here. If pages will open, but picture format converters won't run, you may set DefaultHostName option in webone.conf to IP address of host PC.

All HTTPS traffic is decoded by proxy, browsers don't get any encrypted traffic and some other Web 2.0 things (PNG graphics, WebM video, UTF8, etc).

Note that image format and code-page converting is disabled by default, they're need to be enabled by hand in webone.conf.

2×Soviet ZX-Speccy, 1×MacIIsi, 1×086, 1×286, 2×386DX, 1×386SX, 2×486, 1×P54C, 7×P55C, 6×Slot1, 4×S370, 1×SlotA, 2×S462, ∞×Modern.

Reply 64 of 69, by superfury

User metadata
Rank l33t
Rank
l33t

Just looked up what a proxy server does: https://www.varonis.com/blog/what-is-a-proxy-server/

Thinking about it, UniPCemu's server build essentially does the same in a way. It doesn't process the raw packets(at the TCP side) much, just a little filter on the IP address when receiving and adding data when sending(ethernet headers to be exact).

Actually, the UniPCemu server build itself isn't quite a modem(although the Dosbox/UniPCemu modem can connect to it through a TCP port). It's actually a TCP port that can be connected to and after successful authentication(ASCII text mode) starts acting as a proxy for SLIP-encoded packets instead. So it's actually more of a TCP-connection(instead of normal dial-up) ISP provider. Although there's a slight delay(for manual input during authentication) of a fraction of seconds (0.3 seconds) before it will switch to SLIP mode after saying "CONNECTED".

UniPCemu communicates on it's connected TCP port with a bit of text at the beginning(when authenticating the client), but when authentication is complete and verified, it changes mode to SLIP protocol.

When in SLIP protocol, it receives packets from the connected client, decodes it to a raw IPv4 packet, adds some static Ethernet header to redirect it to the router(as specified in it's settings)'s MAC and sends it away using Pcap.
The other way around is a bit more complicated. It receives all packets the computer receives(using Pcap packet sniffing), filters out only the set IP address and MAC and broadcast IP/MAC IPv4 packets(based on the settings), strips the ethernet header for it's raw IPv4 packet, then sending said packet(if not filtered away) to all connected and authenticated clients using the SLIP encoding.

So in a way, it's a SLIP-based kind of proxy.
I know that Linux can do this by itself, but since Windows stuff is either payed or difficult to set up for a TCP connection, I built that functionality into my emulator itself.
Running Dosbox Windows 95 IE and Arachne under MS-DOS runs like a charm with it! 😁 The only main downside is lack of HTTPS stuff and most websites infinitely redirecting to it because of that, but combined with Webone it should theoretically solve that problem and make it fully modern web compatible?

Thrre's still one strange thing I notice, though: when multiple users request a page at the same time, the browsers seem to wait for each other and only one of them succeeds retrieving the page(the others kind of hang)? That's also the case for a web browser on the host PC while a client is requesting a page? Anyone knows anything about that?
Edit: Just found a little bug in the server: when a packet was received, only the first client accepted it, all other clients didn't see the packet because the first client discards the received packet(and thus the other clients see no packet anymore). Said discarding is now done in the main polling instead(just before receiving a new packet through pcap).
Edit: It still doesn't fix the weird issue of other clients connected failing receiving their pages(and in the case of the other failing Dosbox session even corrupt the Arachne browser's URL field(hanging the whole thing completelty inside the Dosbox emulator) 😖 )

UniPCemu Git repository
UniPCemu for Android, Windows and PSP on itch.io
Older UniPCemu PC/Android/PSP releases

Reply 65 of 69, by ATauenis

User metadata
Rank Member
Rank
Member

By description it's seems that the modem emulator is not allowing local traffic. This may be solved by using two routers, emulating a ISP subnet. The WebOne server should be in "ISP subnet" and modem emulation server should be in "client network" (on same machine with UniPCemu). Both networks should use diferent IP ranges (e.g. 192.168.0.1-254 for local client network, and 50.50.50.1-254 for "ISP" subnet). Then probably WebOne should be accessible via SLIP.

When I will have time I will try to experiment with latest DOSbox/UniPCemu and find correct way of setting up HTTP proxies. When I runned DOSbox last time, it wasn't have any networking features, and then I switched to other VMs. 😀

but combined with Webone it should theoretically solve that problem and make it fully modern web compatible?

All right.

Just found a little bug in the server: when a packet was received, only the first client accepted it, all other clients didn't see the packet because the first client discards the received packet(and thus the other clients see no packet anymore). Said discarding is now done in the main polling instead(just before receiving a new packet through pcap).

In which server? UniPCemu or WebOne? I've tried to open pages from two physical machines via single instance of WebOne, both got the content w/o problems...

2×Soviet ZX-Speccy, 1×MacIIsi, 1×086, 1×286, 2×386DX, 1×386SX, 2×486, 1×P54C, 7×P55C, 6×Slot1, 4×S370, 1×SlotA, 2×S462, ∞×Modern.

Reply 66 of 69, by superfury

User metadata
Rank l33t
Rank
l33t
ATauenis wrote on 2019-12-28, 14:23:
By description it's seems that the modem emulator is not allowing local traffic. This may be solved by using two routers, emulat […]
Show full quote

By description it's seems that the modem emulator is not allowing local traffic. This may be solved by using two routers, emulating a ISP subnet. The WebOne server should be in "ISP subnet" and modem emulation server should be in "client network" (on same machine with UniPCemu). Both networks should use diferent IP ranges (e.g. 192.168.0.1-254 for local client network, and 50.50.50.1-254 for "ISP" subnet). Then probably WebOne should be accessible via SLIP.

When I will have time I will try to experiment with latest DOSbox/UniPCemu and find correct way of setting up HTTP proxies. When I runned DOSbox last time, it wasn't have any networking features, and then I switched to other VMs. 😀

but combined with Webone it should theoretically solve that problem and make it fully modern web compatible?

All right.

Just found a little bug in the server: when a packet was received, only the first client accepted it, all other clients didn't see the packet because the first client discards the received packet(and thus the other clients see no packet anymore). Said discarding is now done in the main polling instead(just before receiving a new packet through pcap).

In which server? UniPCemu or WebOne? I've tried to open pages from two physical machines via single instance of WebOne, both got the content w/o problems...

Said bug was in the UniPCemu server part itself, not having direct relation to Webone's server(which is the step that follows when used in this configuration). It's still in the git repository, not released as an official update yet(I should probably create another release soon, seeing as it has been a while(with lots of small and large bugfixes to the CPU and various hardware)).

You can clone the repository yourself and then use the instructions on the main page of the repository(the README.md) to compile the server with the latest bugfixes(of course needing the correct tools, in the case of Windows the Msys(2)/mingw compiler toolkit and SDL/SDL2 libraries. The mentioned MSYS2.txt can be found in the UniPCemu folder inside the repository with more information relating to the MSys2 configuration I use (although it's better to use the more recent version of SDL2(I haven't updated that documentation for a while). Simply get the SDL2 development libraries from libsdl.org). Atm it's SDL 2.0.10).

I still notice that having fixed said bug still doesn't fix the multiuser issue(when multiple users are fetching the same website, one of the two Dosbox instances(arachne) seems to hang or go weird(data corruption)). That's on Dosbox 0.74.

UniPCemu Git repository
UniPCemu for Android, Windows and PSP on itch.io
Older UniPCemu PC/Android/PSP releases

Reply 67 of 69, by keenmaster486

User metadata
Rank Oldbie
Rank
Oldbie

Hi Autenis,

Thanks for the new version!

Unfortunately the image conversion still does not work; now it fails with a different error: "operation failed due to unknown packet format"

I flermmed the plootash just like you asked.

Reply 68 of 69, by keenmaster486

User metadata
Rank Oldbie
Rank
Oldbie

OK, it turns out to work with some PNG/webp images, but not others. Only sometimes does it give me the "unknown packet format" error. For example, with the Google logo.

Also, I have noticed that sometimes it fails to load an image with the message "cannot load <temp file name>, it is in use by another process"

I flermmed the plootash just like you asked.

Reply 69 of 69, by Bruninho

User metadata
Rank Oldbie
Rank
Oldbie

If only I could run WebOne on macOS, then it'd be interesting for my VMs (Win 3.x, Win 2k and I am planning a Win 9x VM)

I was bfcastello, now I am Bruninho! =]
"Design isn't just what it looks like and feels like. Design is how it works."
JOBS, Steve.