#endif
#include "telnet_server.h"
-#include "target_request.h"
+#include <target/target_request.h>
static unsigned short telnet_port = 4444;
int telnet_input(struct connection *connection)
{
int bytes_read;
- char buffer[TELNET_BUFFER_SIZE];
- char *buf_p;
+ unsigned char buffer[TELNET_BUFFER_SIZE];
+ unsigned char *buf_p;
struct telnet_connection *t_con = connection->priv;
struct command_context *command_context = connection->cmd_ctx;
switch (t_con->state)
{
case TELNET_STATE_DATA:
- if (*buf_p == '\xff')
+ if (*buf_p == 0xff)
{
t_con->state = TELNET_STATE_IAC;
}
case TELNET_STATE_IAC:
switch (*buf_p)
{
- case '\xfe':
+ case 0xfe:
t_con->state = TELNET_STATE_DONT;
break;
- case '\xfd':
+ case 0xfd:
t_con->state = TELNET_STATE_DO;
break;
- case '\xfc':
+ case 0xfc:
t_con->state = TELNET_STATE_WONT;
break;
- case '\xfb':
+ case 0xfb:
t_con->state = TELNET_STATE_WILL;
break;
}
return ERROR_COMMAND_CLOSE_CONNECTION;
}
-int telnet_register_commands(struct command_context *command_context)
+static const struct command_registration telnet_command_handlers[] = {
+ {
+ .name = "exit",
+ .handler = &handle_exit_command,
+ .mode = COMMAND_EXEC,
+ .help = "exit telnet session",
+ },
+ {
+ .name = "telnet_port",
+ .handler = &handle_telnet_port_command,
+ .mode = COMMAND_ANY,
+ .help = "port on which to listen "
+ "for incoming telnet connections",
+ .usage = "<port>",
+ },
+ COMMAND_REGISTRATION_DONE
+};
+
+int telnet_register_commands(struct command_context *cmd_ctx)
{
- register_command(command_context, NULL, "exit",
- &handle_exit_command, COMMAND_EXEC,
- "exit telnet session");
-
- register_command(command_context, NULL, "telnet_port",
- &handle_telnet_port_command, COMMAND_ANY,
- "port on which to listen for incoming telnet connections");
-
- return ERROR_OK;
+ return register_commands(cmd_ctx, NULL, telnet_command_handlers);
}
-
-