VOGONS


Reply 60 of 218, 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 218, 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 218, 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)?

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

Reply 63 of 218, 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 218, 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) 😖 )

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

Reply 65 of 218, 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 218, 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.

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

Reply 67 of 218, by keenmaster486

User metadata
Rank l33t
Rank
l33t

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"

World's foremost 486 enjoyer.

Reply 68 of 218, by keenmaster486

User metadata
Rank l33t
Rank
l33t

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"

World's foremost 486 enjoyer.

Reply 69 of 218, 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)

"Design isn't just what it looks like and feels like. Design is how it works."
JOBS, Steve.
READ: Right to Repair sucks and is illegal!

Reply 70 of 218, by keenmaster486

User metadata
Rank l33t
Rank
l33t

Hi ATauenis,

I've been playing with WebOne again and I notice that certain websites will throw an "error 1010" code when attempting to access them. Try, for example, http://www.drudgereport.com or http://www.enneagraminstitute.com

I think this may have to do with HTTP headers.

World's foremost 486 enjoyer.

Reply 71 of 218, by ATauenis

User metadata
Rank Member
Rank
Member

Yes, Error 1010 is meaning "headers are looking like from a bot".

Which browser(s) you are using? Does the error disappear if change

UserAgent=%Original% WebOne/%WOVer%

to

UserAgent=%Original%

in webone.conf?

I know similar problem on Yandex.com services, they sometimes showing a captcha when using via proxy. Probably, need to add some new headers to make requests more like latest Chromium. Now, I have less tasks due to "panic flu" common self-isolation, and planning to investigate this, and then move project from .NET 4.6 to 4.8 or .NET Core 3.1 (whatever will work better, probably .NET Core).

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 72 of 218, by keenmaster486

User metadata
Rank l33t
Rank
l33t
ATauenis wrote on 2020-04-03, 20:48:

Which browser(s) you are using?

Netscape Navigator 3 and Internet Explorer 3. I actually just tried with Netscape Navigator 4, and it works with that version.

ATauenis wrote on 2020-04-03, 20:48:
Does the error disappear if change UserAgent=%Original% WebOne/%WOVer% to UserAgent=%Original% in webone.conf? […]
Show full quote

Does the error disappear if change
UserAgent=%Original% WebOne/%WOVer%
to
UserAgent=%Original%
in webone.conf?

Nope, that produces no change whatsoever. Navigator 3 and IE 3 still fail, and Navigator 4 still works.

World's foremost 486 enjoyer.

Reply 74 of 218, by ATauenis

User metadata
Rank Member
Rank
Member

keenmaster486, thanks for info!

luckenbachjustin@gma, you need to launch webone.exe with administrator rights. Then you need to allow any traffic on port 80 in Windows Firewall settings.

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 75 of 218, by ATauenis

User metadata
Rank Member
Rank
Member

Checked, for http://www.drudgereport.com and http://www.enneagraminstitute.com use Netscape 4 user-agent string:

UserAgent=Mozilla/4.75 [en] (Windows NT 5.0; U)

Both sites are working correctly. DrudgeReport is even very usable in Netscape 3. 😀

---

Hmm, code of unreleased v0.9.4 have been required only 1 patch to recompile to .NET Core 3.1. So changing framework version should be easy. On first look. 😀

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 76 of 218, by fotios

User metadata
Rank Newbie
Rank
Newbie

Hi, many thanks for this project!

I'm testing version 0.10.0.0
When I set the output encoding to 1200
;OutputEncoding=AsIs
OutputEncoding=1200

The following error is reported:

Using configuration file webone.conf.
Warning: Unknown codepage 1200, using AsIs. See MSDN 'Encoding.GetEncodings Me
thod' article for list of valid encodings.
webone.conf load complete.
Starting server...
Listening for HTTP 1.x on port 80.

Reply 77 of 218, by ATauenis

User metadata
Rank Member
Rank
Member

Hi! This is not a real 0.10.0.0, this is a 0.10.0 Alpha 1. Released only for small piece of testers.) It's just a quick recompile of 0.9.3 to .NET Core plus some edits initially planned to 0.9.4 which I've canceled in favor of 0.10.

Currently I'm making 0.10.0 Alpha 2 which will contain fixes of bugs caused by differences between NET 4.8 and NET Core. That build will be published here for public test.

UTF-16 is not supported in this build. Probably UTF-16-encoded pages will be transferred with original encoding if set OutputEncoding=AsIs. But I haven't tested this because don't know any websites with UTF-16.

WebOne 0.9.3 (last stable release) is working correctly with OutputEncoding=utf-16 (not 1200). At least on pages that initially was in 1251 encoding. It's possible to return this support in 0.10a2.

---

Update: fixed the bug in master tree, now version from Git source can accept all utf-7...utf-32le in OutputEncoding. Only UTF-32 Big Endian currently still remains unsupported.

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.