Merge branch 'master' of github.com:NuSkooler/enigma-bbs into 0.0.7-alpha
This commit is contained in:
commit
9720258303
|
@ -1,6 +1,6 @@
|
||||||
# ENiGMA½ BBS Software
|
# ENiGMA½ BBS Software
|
||||||
|
|
||||||
![alt text](http://i325.photobucket.com/albums/k361/request4spam/enigma.ans_zps05w2ey4s.png "ENiGMA½ BBS")
|
![alt text](docs/images/enigma-bbs.png "ENiGMA½ BBS")
|
||||||
|
|
||||||
ENiGMA½ is a modern BBS software with a nostalgic flair!
|
ENiGMA½ is a modern BBS software with a nostalgic flair!
|
||||||
|
|
||||||
|
@ -9,15 +9,15 @@ ENiGMA½ is a modern BBS software with a nostalgic flair!
|
||||||
* Multi platform: Anywhere [Node.js](https://nodejs.org/) runs likely works (known to work under Linux, FreeBSD, OpenBSD, OS X and Windows)
|
* Multi platform: Anywhere [Node.js](https://nodejs.org/) runs likely works (known to work under Linux, FreeBSD, OpenBSD, OS X and Windows)
|
||||||
* Unlimited multi node support (for all those BBS "callers"!)
|
* Unlimited multi node support (for all those BBS "callers"!)
|
||||||
* **Highly** customizable via [HJSON](http://hjson.org/) based configuration, menus, and themes in addition to JavaScript based mods
|
* **Highly** customizable via [HJSON](http://hjson.org/) based configuration, menus, and themes in addition to JavaScript based mods
|
||||||
* MCI support for lightbars, toggles, input areas, and so on plus many other other bells and whistles
|
* [MCI support](docs/mci.md) for lightbars, toggles, input areas, and so on plus many other other bells and whistles
|
||||||
* Telnet, **SSH**, and both secure and non-secure WebSocket access built in! Additional servers are easy to implement
|
* Telnet, **SSH**, and both secure and non-secure WebSocket access built in! Additional servers are easy to implement
|
||||||
* [CP437](http://www.ascii-codes.com/) and UTF-8 output
|
* [CP437](http://www.ascii-codes.com/) and UTF-8 output
|
||||||
* [SyncTerm](http://syncterm.bbsdev.net/) style font and baud emulation support. Display PC/DOS and Amiga style artwork as it's intended! In general, ANSI-BBS / [cterm.txt](http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/src/conio/cterm.txt?content-type=text%2Fplain&revision=HEAD) / [bansi.txt](http://www.bbsdocumentary.com/library/PROGRAMS/GRAPHICS/ANSI/bansi.txt) are followed for expected BBS behavior
|
* [SyncTerm](http://syncterm.bbsdev.net/) style font and baud emulation support. Display PC/DOS and Amiga style artwork as it's intended! In general, ANSI-BBS / [cterm.txt](http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/src/conio/cterm.txt?content-type=text%2Fplain&revision=HEAD) / [bansi.txt](http://www.bbsdocumentary.com/library/PROGRAMS/GRAPHICS/ANSI/bansi.txt) are followed for expected BBS behavior
|
||||||
* [SAUCE](http://www.acid.org/info/sauce/sauce.htm) support
|
* [SAUCE](http://www.acid.org/info/sauce/sauce.htm) support
|
||||||
* Renegade style pipe color codes
|
* Renegade style pipe color codes
|
||||||
* [SQLite](http://sqlite.org/) storage of users, message areas, and so on
|
* [SQLite](http://sqlite.org/) storage of users, message areas, and so on
|
||||||
* Strong [PBKDF2](https://en.wikipedia.org/wiki/PBKDF2) backed password encryption
|
* Strong [PBKDF2](https://en.wikipedia.org/wiki/PBKDF2) backed password encryption
|
||||||
* [Door support](docs/doors.md) including common dropfile formats for legacy DOS doors. Built in [BBSLink](http://bbslink.net/), and [DoorParty](http://forums.throwbackbbs.com/) support!
|
* [Door support](docs/doors.md) including common dropfile formats for legacy DOS doors. Built in [BBSLink](http://bbslink.net/), [DoorParty](http://forums.throwbackbbs.com/), and [Exodus](https://oddnetwork.org/exodus/) support!
|
||||||
* [Bunyan](https://github.com/trentm/node-bunyan) logging
|
* [Bunyan](https://github.com/trentm/node-bunyan) logging
|
||||||
* [Message networks](docs/msg_networks.md) with FidoNet Type Network (FTN) + BinkleyTerm Style Outbound (BSO) message import/export
|
* [Message networks](docs/msg_networks.md) with FidoNet Type Network (FTN) + BinkleyTerm Style Outbound (BSO) message import/export
|
||||||
* [Gazelle](https://github.com/WhatCD/Gazelle) inspirted File Bases including fast fully indexed full text search (FTS), #tags, and HTTP(S) temporary download URLs using a built in [web server](docs/web_server.md). Legacy X/Y/Z modem also supported!
|
* [Gazelle](https://github.com/WhatCD/Gazelle) inspirted File Bases including fast fully indexed full text search (FTS), #tags, and HTTP(S) temporary download URLs using a built in [web server](docs/web_server.md). Legacy X/Y/Z modem also supported!
|
||||||
|
|
|
@ -13,7 +13,7 @@ const WebSocketServer = require('ws').Server;
|
||||||
const http = require('http');
|
const http = require('http');
|
||||||
const https = require('https');
|
const https = require('https');
|
||||||
const fs = require('graceful-fs');
|
const fs = require('graceful-fs');
|
||||||
const EventEmitter = require('events');
|
const Writable = require('stream');
|
||||||
|
|
||||||
const ModuleInfo = exports.moduleInfo = {
|
const ModuleInfo = exports.moduleInfo = {
|
||||||
name : 'WebSocket',
|
name : 'WebSocket',
|
||||||
|
@ -34,7 +34,7 @@ function WebSocketClient(ws, req, serverType) {
|
||||||
// This bridge makes accessible various calls that client sub classes
|
// This bridge makes accessible various calls that client sub classes
|
||||||
// want to access on I/O socket
|
// want to access on I/O socket
|
||||||
//
|
//
|
||||||
this.socketBridge = new class SocketBridge extends EventEmitter {
|
this.socketBridge = new class SocketBridge extends Writable {
|
||||||
constructor(ws) {
|
constructor(ws) {
|
||||||
super();
|
super();
|
||||||
this.ws = ws;
|
this.ws = ws;
|
||||||
|
@ -48,6 +48,15 @@ function WebSocketClient(ws, req, serverType) {
|
||||||
return this.ws.send(data, { binary : true }, cb);
|
return this.ws.send(data, { binary : true }, cb);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// we need to fake some streaming work
|
||||||
|
unpipe() {
|
||||||
|
Log.trace('WebSocket SocketBridge unpipe()');
|
||||||
|
}
|
||||||
|
|
||||||
|
resume() {
|
||||||
|
Log.trace('WebSocket SocketBridge resume()');
|
||||||
|
}
|
||||||
|
|
||||||
get remoteAddress() {
|
get remoteAddress() {
|
||||||
// Support X-Forwarded-For and X-Real-IP headers for proxied connections
|
// Support X-Forwarded-For and X-Real-IP headers for proxied connections
|
||||||
return (self.proxied && (req.headers['x-forwarded-for'] || req.headers['x-real-ip'])) || req.connection.remoteAddress;
|
return (self.proxied && (req.headers['x-forwarded-for'] || req.headers['x-real-ip'])) || req.connection.remoteAddress;
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 6.7 KiB |
Loading…
Reference in New Issue