mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 00:27:43 +00:00
TelnetServer: Implement basic telnet server
Fixes #407 Depends on #530 to run reliably.
This commit is contained in:
parent
423807d772
commit
040947ee47
9 changed files with 521 additions and 0 deletions
56
Servers/TelnetServer/Command.h
Normal file
56
Servers/TelnetServer/Command.h
Normal file
|
@ -0,0 +1,56 @@
|
|||
#pragma once
|
||||
|
||||
#include <AK/String.h>
|
||||
#include <AK/StringBuilder.h>
|
||||
#include <AK/Types.h>
|
||||
|
||||
#define CMD_WILL 0xfb
|
||||
#define CMD_WONT 0xfc
|
||||
#define CMD_DO 0xfd
|
||||
#define CMD_DONT 0xfe
|
||||
#define SUB_ECHO 0x01
|
||||
#define SUB_SUPPRESS_GO_AHEAD 0x03
|
||||
|
||||
struct Command {
|
||||
u8 command;
|
||||
u8 subcommand;
|
||||
|
||||
String to_string() const
|
||||
{
|
||||
StringBuilder builder;
|
||||
|
||||
switch (command) {
|
||||
case CMD_WILL:
|
||||
builder.append("WILL");
|
||||
break;
|
||||
case CMD_WONT:
|
||||
builder.append("WONT");
|
||||
break;
|
||||
case CMD_DO:
|
||||
builder.append("DO");
|
||||
break;
|
||||
case CMD_DONT:
|
||||
builder.append("DONT");
|
||||
break;
|
||||
default:
|
||||
builder.append(String::format("UNKNOWN<%02x>", command));
|
||||
break;
|
||||
}
|
||||
|
||||
builder.append(" ");
|
||||
|
||||
switch (subcommand) {
|
||||
case SUB_ECHO:
|
||||
builder.append("ECHO");
|
||||
break;
|
||||
case SUB_SUPPRESS_GO_AHEAD:
|
||||
builder.append("SUPPRESS_GO_AHEAD");
|
||||
break;
|
||||
default:
|
||||
builder.append(String::format("UNKNOWN<%02x>"));
|
||||
break;
|
||||
}
|
||||
|
||||
return builder.to_string();
|
||||
};
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue