b0fd271dc37587e3e2f111d99062837ed3035d87
- major update: app.js: rewrite socket handling to stream data (fix issues POSTing with shoddy dialup, namely fix wtv-update:/sync issues)
- update: wtv-home:/home: remove broken irc test, add links to DiskHax and VFatHax, remove URL Accessor form from MiniBrowser because it doesn't work
- update: wtv-update:/sync: skip file if the Content-length matches the client and the client file is equal or newer, since client is not storing wtv-checksum for some reason. Client file time is set to when the client received the file last, and not actually when the file was modified on our end
- update: wtv-head-waiter:/login-stage-two: offer prompt to minibrowser to go to home or willie
- fix: clean up socket session data on socket error
- code fixup: use `${}` instead of escaping string
- app.js: better minibrowser session cleanup
- update: http(s) proxy: do not send internal 'wtv-connection-close' header to client
- fix: http(s) proxy: handle socks HostUnreachable error
- fix: wtv-head-waiter:/login-stage-two: usernames longerfix: build 3833 crashes when `wtv-user-name` is too long
- fix: wtv-log:/log
- add: wtv-chat
- add: wtv-setup
wtv minisrv node.js
The wtv minisrv, or "zefie_wtvp_minisrv" project is a node.js project that provides a mini WebTV Server, aiming for full WTVP (WebTV Protocol) support. This open source server is in alpha status. Use at your own risk.
Current status:
- Supports most known WebTV service encryption scenarios, for full trusted box access
- Can handle client "relogin" and "reconnect" events
- Suports
.jsservice files with synchronous or asynchronous requests - Supports multiple simultaneous users
- WebTV-compatible HTTP(S) Proxy (via minisrv, or using an external proxy for enhanced features (such as WebOne)
- wtv-flashrom for LC2 and newer boxes (bf0app unsupported, need test unit)
- Can flash anything on Ultra Willies with optional
use_zefie_serverflag set onwtv-flashromservice. - wtv-update:/sync for Download-o-Rama style file downloading
Current issues:
Occasionally, in certain circumstances, a specific SSID may be unable to reconnect to the server until the server is restartedHopefully fixed in v0.9.3- Mis-configuring wtv-update:/sync DiskMaps may cause units to delete contents of partitions (need more info)
Won't fix:
- wtv-encryption stream breaks when two different sessions have the same SSID (eg spoofing, won't fix (production did it too))
- No intentions to support user accounts, registration, or any form of database system
Feature Todo:
Implement HTTP proxy (needs to be able to defluff most of the web, think retro WAP converter)Done v0.7.1Flashrom flashing functionality (at least for LC2 and higher)Done v0.8.0SSID/IP black/whitelisting (including tying SSID to an IP or multiple IPs)Done v0.9.4- Flashrom flashing for bf0app old classic (need donor unit)
- wtv-lzpf support
- (maybe) wtvchat stuff
How To Use:
- Install node.js. Be sure to say
Yeswhen asked aboutChocolatey. - Download a snapshot (either of master, or of any commit/branch/relase/tag etc)
- Extract zip somewhere and enter that directory with a command prompt
- Enter
zefie_wtvp_minisrvsubdirectory - Verify you are in the same directory as
app.js, then runnpm install - Check any configuration. Create your override
user_config.json. Especallyservice_ip. See user_config_README.md and user_config.example.json for more information.- Note: The intended use is for all custom config to be in
user_config.jsonand any custom service files to go inUserServiceVault. If you do not care about potential issues with futuregit pull, and will manually add new upstreamconfig.jsonentries, you could use the standardServiceVaultandconfig.json
- Note: The intended use is for all custom config to be in
- Run
node app.js - If you have trouble running it on Windows, try a Linux machine, Windows may need a full development enviroment or extra steps.
- Test with a WebTV Viewer or connect with a real box
- To connect with a real box, you will need to open ports in your firewall and have a way to connect your WebTV (and preferably reroute 10.0.0.1 to the server)
- See ServiceVault.md for a brief introduction to how the service files work
Languages
Logos
75.8%
JavaScript
19.8%
HTML
3.1%
C
0.5%
C++
0.4%
Other
0.2%