40static struct tcp_pcb *tel_pcb;
42extern void (*
stdout_hook)(
const char *buf,
int len);
48static void telnet_send(
struct tcp_pcb *pcb,
TEL_TXST *st);
49static err_t telnet_accept(
void *arg,
struct tcp_pcb *pcb,
err_t err);
50static void telnet_close(
struct tcp_pcb *pcb);
63 if (tel_pcb !=
NULL) {
67 tel_pcb = tcp_listen(tel_pcb);
68 tcp_accept(tel_pcb, telnet_accept);
81 telnet_close(tel_pcb);
93 if (buf ==
NULL || !bc ) {
98 memcpy(st->
buf , buf, bc);
101 telnet_send(tel_pcb, st);
107static void telnet_close(
struct tcp_pcb *pcb) {
119static void telnet_send(
struct tcp_pcb *pcb,
TEL_TXST *st) {
124 if (tcp_sndbuf(pcb) < st->
len) {
125 len = tcp_sndbuf(pcb);
131 err = tcp_write(pcb, st->
buf, len, 1);
135 }
while (err ==
ERR_MEM && len > 1);
147static err_t telnet_recv(
void *arg,
struct tcp_pcb *pcb,
struct pbuf *p,
err_t err) {
151 unsigned char * payload = (
unsigned char*) p->
payload;
187static void telnet_err(
void *arg,
err_t err) {
188 printf(
"telnet_err : %08x\r\n",err);
192static err_t telnet_accept(
void *arg,
struct tcp_pcb *pcb,
err_t err) {
198 tcp_arg(pcb, &tel_st);
199 tcp_err(pcb, telnet_err);
200 tcp_recv(pcb, telnet_recv);
u8_t pbuf_free(struct pbuf *p)
void telnet_console_tx_print(const char *buf, int bc)
unsigned char recv_buf[512]
void(* stdout_hook)(const char *buf, int len)
void telnet_process(void)
void telnet_console_close(void)
void telnet_console_init(void)