Skip to content
Snippets Groups Projects
Commit 00c7b112 authored by deuce's avatar deuce
Browse files

Revert changes I made... hopefully.

parent 3ef055c4
No related branches found
No related tags found
No related merge requests found
...@@ -111,6 +111,13 @@ ...@@ -111,6 +111,13 @@
// console.write(stamp + " "); // console.write(stamp + " ");
// } // }
if(!msg.nick) {
console.attributes = chat_settings.NOTICE_COLOR;
console.writeln(msg.str);
return;
}
console.attributes = chat_settings.CHANNEL_COLOR; console.attributes = chat_settings.CHANNEL_COLOR;
console.write("[" + chan.name + "] "); console.write("[" + chan.name + "] ");
...@@ -149,7 +156,7 @@ ...@@ -149,7 +156,7 @@
case '/': case '/':
console.attributes = chat_settings.COMMAND_COLOR; console.attributes = chat_settings.COMMAND_COLOR;
console.write(k); console.write(k);
chat.handle_command(channels[channel_index],console.getstr(500)); chat.getcmd(channels[channel_index],console.getstr(500));
break; break;
/* process a sysop command */ /* process a sysop command */
case ';': case ';':
......
...@@ -190,7 +190,7 @@ function init_users() { ...@@ -190,7 +190,7 @@ function init_users() {
while (uid_str[0] == "0") { while (uid_str[0] == "0") {
uid_str = uid_str.slice(1); uid_str = uid_str.slice(1);
} }
printf("***Reading: " + us_file.name + "\r\n"); log("***Reading: " + us_file.name + "\r\n");
var read_Masks = us_file.iniGetValue(null, "masks"); var read_Masks = us_file.iniGetValue(null, "masks");
if (read_Masks) if (read_Masks)
Masks[parseInt(uid_str)] = read_Masks.split(","); Masks[parseInt(uid_str)] = read_Masks.split(",");
...@@ -341,8 +341,8 @@ function main() { ...@@ -341,8 +341,8 @@ function main() {
continue; continue;
var usr = new User(system.matchuser(DCC_Chats[c].id)); var usr = new User(system.matchuser(DCC_Chats[c].id));
var cmd = line.split(" "); var cmd = line.split(" ");
try {
cmd[0] = cmd[0].toUpperCase(); cmd[0] = cmd[0].toUpperCase();
try {
DCC_Chats[c].bot_command(cmd); DCC_Chats[c].bot_command(cmd);
} catch (err) { } catch (err) {
DCC_Chats[c].o(null,err); DCC_Chats[c].o(null,err);
......
if(bbs.mods.CTerm_Version === undefined) { // $Id$
// Disable parsed input... we need to do ESC processing ourselves here.
var oldctrl=console.ctrlkey_passthru;
console.ctrlkey_passthru=-1;
write("\x1b[c"); load('cterm_lib.js');
var response='';
while(1) { if(console.cterm_version >= 1189) {
var ch=console.inkey(0, 2000);
if(ch=="")
break;
response += ch;
if (/\x1b\[[=\?<>:]?[0-9;]+c/)
break;
}
var m=response.match(/\x1b\[=67;84;101;114;109;([0-9]+;[0-9]+)[0-9;]*c/);
if (m == null) {
bbs.mods.CTerm_Version='0';
}
else {
bbs.mods.CTerm_Version = m[1];
}
console.ctrlkey_passthru=oldctrl;
}
if (bbs.mods.CTerm_Version !== undefined) {
var ctv = bbs.mods.CTerm_Version.split(/;/);
if (ctv[0] >= 1 && ctv[1] >= 189) {
var image=new File(argv[0]); var image=new File(argv[0]);
if (image.exists) { if (image.exists) {
if (image.open("rb", true)) { if (image.open("rb", true)) {
...@@ -45,4 +19,3 @@ if (bbs.mods.CTerm_Version !== undefined) { ...@@ -45,4 +19,3 @@ if (bbs.mods.CTerm_Version !== undefined) {
} }
} }
} }
}
...@@ -51,7 +51,7 @@ var FWebSocketState = WEBSOCKET_NEED_PACKET_START; ...@@ -51,7 +51,7 @@ var FWebSocketState = WEBSOCKET_NEED_PACKET_START;
try { try {
// Parse and respond to the WebSocket handshake request // Parse and respond to the WebSocket handshake request
if (ShakeHands()) { if (ShakeHands()) {
SendToWebSocketClient("Re-directing to telnet server...".split("")); SendToWebSocketClient(StringToBytes("Re-directing to telnet server...\r\n"));
// Connect to the local synchronet server // Connect to the local synchronet server
FServerSocket = new Socket(); FServerSocket = new Socket();
...@@ -91,7 +91,7 @@ try { ...@@ -91,7 +91,7 @@ try {
} else { } else {
// FServerSocket.connect() failed // FServerSocket.connect() failed
log(LOG_ERR, "Unable to connect to telnet server"); log(LOG_ERR, "Unable to connect to telnet server");
SendToWebSocketClient("Unable to connect to telnet server".split("")); SendToWebSocketClient(StringToBytes("ERROR: Unable to connect to telnet server\r\n"));
mswait(2500); mswait(2500);
} }
} else { } else {
...@@ -125,7 +125,7 @@ function GetFromTelnetServer() { ...@@ -125,7 +125,7 @@ function GetFromTelnetServer() {
var Result = []; var Result = [];
var InByte = 0; var InByte = 0;
while (FServerSocket.data_waiting) { while (FServerSocket.data_waiting && (Result.length <= 4096)) {
InByte = FServerSocket.recvBin(1); InByte = FServerSocket.recvBin(1);
switch (FTelnetState) { switch (FTelnetState) {
...@@ -203,6 +203,7 @@ function GetFromWebSocketClient() { ...@@ -203,6 +203,7 @@ function GetFromWebSocketClient() {
case 0: return GetFromWebSocketClientDraft0(); case 0: return GetFromWebSocketClientDraft0();
case 7: case 7:
case 8: case 8:
case 13:
return GetFromWebSocketClientVersion7(); return GetFromWebSocketClientVersion7();
} }
} }
...@@ -288,17 +289,14 @@ function GetFromWebSocketClientVersion7() { ...@@ -288,17 +289,14 @@ function GetFromWebSocketClientVersion7() {
InByte = (client.socket.recvBin(1) ^ FFrameMask[FFramePayloadReceived++ % 4]); InByte = (client.socket.recvBin(1) ^ FFrameMask[FFramePayloadReceived++ % 4]);
// Check if the byte needs to be UTF-8 decoded // Check if the byte needs to be UTF-8 decoded
if (InByte < 128) { if ((InByte & 0x80) === 0) {
Result.push(InByte); Result.push(InByte);
} else if ((InByte > 191) && (InByte < 224)) { } else if ((InByte & 0xE0) === 0xC0) {
// Handle UTF-8 decode // Handle UTF-8 decode
InByte2 = (client.socket.recvBin(1) ^ FFrameMask[FFramePayloadReceived++ % 4]); InByte2 = (client.socket.recvBin(1) ^ FFrameMask[FFramePayloadReceived++ % 4]);
Result.push(((InByte & 31) << 6) | (InByte2 & 63)); Result.push(((InByte & 31) << 6) | (InByte2 & 63));
} else { } else {
// Handle UTF-8 decode (should never need this, but included anyway) log(LOG_ERR, "Byte out of range: " + InByte);
InByte2 = (client.socket.recvBin(1) ^ FFrameMask[FFramePayloadReceived++ % 4]);
InByte3 = (client.socket.recvBin(1) ^ FFrameMask[FFramePayloadReceived++ % 4]);
Result.push(((InByte & 15) << 12) | ((InByte2 & 63) << 6) | (InByte3 & 63));
} }
// Check if we've received the full payload // Check if we've received the full payload
...@@ -328,6 +326,7 @@ function SendToWebSocketClient(AData) { ...@@ -328,6 +326,7 @@ function SendToWebSocketClient(AData) {
break; break;
case 7: case 7:
case 8: case 8:
case 13:
SendToWebSocketClientVersion7(AData); SendToWebSocketClientVersion7(AData);
break; break;
} }
...@@ -339,12 +338,14 @@ function SendToWebSocketClientDraft0(AData) { ...@@ -339,12 +338,14 @@ function SendToWebSocketClientDraft0(AData) {
for (var i = 0; i < AData.length; i++) { for (var i = 0; i < AData.length; i++) {
// Check if the byte needs to be UTF-8 encoded // Check if the byte needs to be UTF-8 encoded
if (AData[i] < 128) { if ((AData[i] & 0xFF) <= 127) {
client.socket.sendBin(AData[i], 1); client.socket.sendBin(AData[i], 1);
} else { } else if ((AData[i] & 0xFF) <= 2047) {
// Handle UTF-8 encode // Handle UTF-8 encode
client.socket.sendBin((AData[i] >> 6) | 192, 1); client.socket.sendBin((AData[i] >> 6) | 192, 1);
client.socket.sendBin((AData[i] & 63) | 128, 1); client.socket.sendBin((AData[i] & 63) | 128, 1);
} else {
log(LOG_ERR, "Byte out of range: " + AData[i]);
} }
} }
...@@ -376,9 +377,14 @@ function SendToWebSocketClientVersion7(AData) { ...@@ -376,9 +377,14 @@ function SendToWebSocketClientVersion7(AData) {
client.socket.sendBin(126, 1); client.socket.sendBin(126, 1);
client.socket.sendBin(ToSend.length, 2); client.socket.sendBin(ToSend.length, 2);
} else { } else {
// NOTE: client.socket.sendBin(ToSend.length, 8); didn't work, so this
// modification limits the send to 2^32 bytes (probably not an issue)
// Probably should look into a proper fix at some point though
client.socket.sendBin(127, 1); client.socket.sendBin(127, 1);
client.socket.sendBin(ToSend.length, 8); client.socket.sendBin(0, 4);
client.socket.sendBin(ToSend.length, 4);
} }
for (var i = 0; i < ToSend.length; i++) { for (var i = 0; i < ToSend.length; i++) {
client.socket.sendBin(ToSend[i] & 0xFF, 1); client.socket.sendBin(ToSend[i] & 0xFF, 1);
} }
...@@ -407,6 +413,7 @@ function ShakeHands() { ...@@ -407,6 +413,7 @@ function ShakeHands() {
return ShakeHandsDraft0(); return ShakeHandsDraft0();
case 7: case 7:
case 8: case 8:
case 13:
return ShakeHandsVersion7(); return ShakeHandsVersion7();
default: default:
// TODO If this version does not // TODO If this version does not
...@@ -543,7 +550,7 @@ function ShakeHandsVersion7() { ...@@ -543,7 +550,7 @@ function ShakeHandsVersion7() {
"Upgrade: websocket\r\n" + "Upgrade: websocket\r\n" +
"Connection: Upgrade\r\n" + "Connection: Upgrade\r\n" +
"Sec-WebSocket-Accept: " + Encoded + "\r\n"; "Sec-WebSocket-Accept: " + Encoded + "\r\n";
if ('SubProtocol' in FWebSocketHeader) Response += "Sec-WebSocket-Protocol: " + FWebSocketHeader['SubProtocol'] + "\r\n"; if ('SubProtocol' in FWebSocketHeader) Response += "Sec-WebSocket-Protocol: plain\r\n"; // Only sub-protocol we support
Response += "\r\n"; Response += "\r\n";
// Send the response and return // Send the response and return
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment