summaryrefslogtreecommitdiffstats
path: root/c/src/libnetworking
diff options
context:
space:
mode:
authorRalf Corsepius <ralf.corsepius@rtems.org>2005-10-26 01:18:44 +0000
committerRalf Corsepius <ralf.corsepius@rtems.org>2005-10-26 01:18:44 +0000
commit0335d03947f371c7b403426b1d945e51444c34e6 (patch)
tree454f24e51f653b27c5e25adc9e505bd6ea45d0e8 /c/src/libnetworking
parent2005-10-25 Ralf Corsepius <ralf.corsepius@rtems.org> (diff)
downloadrtems-0335d03947f371c7b403426b1d945e51444c34e6.tar.bz2
Remove
Diffstat (limited to 'c/src/libnetworking')
-rw-r--r--c/src/libnetworking/rtems_telnetd/.cvsignore2
-rw-r--r--c/src/libnetworking/rtems_telnetd/Makefile.am26
-rw-r--r--c/src/libnetworking/rtems_telnetd/README28
-rw-r--r--c/src/libnetworking/rtems_telnetd/icmds.c47
-rw-r--r--c/src/libnetworking/rtems_telnetd/preinstall.am27
-rw-r--r--c/src/libnetworking/rtems_telnetd/pty.c407
-rw-r--r--c/src/libnetworking/rtems_telnetd/pty.h63
-rw-r--r--c/src/libnetworking/rtems_telnetd/telnetd.c133
-rw-r--r--c/src/libnetworking/rtems_telnetd/telnetd.h34
9 files changed, 0 insertions, 767 deletions
diff --git a/c/src/libnetworking/rtems_telnetd/.cvsignore b/c/src/libnetworking/rtems_telnetd/.cvsignore
deleted file mode 100644
index 282522db03..0000000000
--- a/c/src/libnetworking/rtems_telnetd/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-Makefile
-Makefile.in
diff --git a/c/src/libnetworking/rtems_telnetd/Makefile.am b/c/src/libnetworking/rtems_telnetd/Makefile.am
deleted file mode 100644
index 95c4e442fb..0000000000
--- a/c/src/libnetworking/rtems_telnetd/Makefile.am
+++ /dev/null
@@ -1,26 +0,0 @@
-##
-## $Id$
-##
-
-include $(top_srcdir)/automake/compile.am
-
-noinst_LIBRARIES =
-CLEANFILES =
-DISTCLEANFILES =
-
-if HAS_NETWORKING
-include_rtemsdir = $(includedir)/rtems
-include_rtems_HEADERS = pty.h telnetd.h
-
-noinst_LIBRARIES += libtelnetd.a
-libtelnetd_a_SOURCES = pty.c pty.h telnetd.c telnetd.h icmds.c
-libtelnetd_a_CPPFLAGS = $(AM_CPPFLAGS)
-endif
-
-EXTRA_DIST = README
-
-all-local: $(PREINSTALL_FILES)
-
-include $(srcdir)/preinstall.am
-
-include $(top_srcdir)/automake/local.am
diff --git a/c/src/libnetworking/rtems_telnetd/README b/c/src/libnetworking/rtems_telnetd/README
deleted file mode 100644
index 0c964c412d..0000000000
--- a/c/src/libnetworking/rtems_telnetd/README
+++ /dev/null
@@ -1,28 +0,0 @@
-#
-# $Id$
-#
-
-Author: fernando.ruiz@ctv.es (correo@fernando-ruiz.com)
-
-This directory contains a telnetd server
-primary features:
-
- + create a user shell pseudo-terminal task.
-
-This code has not been extensively tested. It is provided as a tool
-for RTEMS users to open more shell tcp/ip pseudo-terminal.
-Suggestions and comments are appreciated.
-
-Read libmisc/shell for more information.
-
-NOTES:
-
-1. OOB not yet implemented. Only a reduced negotiation is implemented.
-
-2. If you have tcp/ip inited you can start telnetd daemon.
- You need register pseudo-terminals driver into device drivers table.
- 16 ptyX termios device terminales are created into /dev/.
- Calling rtems_initialize_telnetd() starts the daemon.
- Enjoy it.
-
-FUTURE:
diff --git a/c/src/libnetworking/rtems_telnetd/icmds.c b/c/src/libnetworking/rtems_telnetd/icmds.c
deleted file mode 100644
index b416692ec5..0000000000
--- a/c/src/libnetworking/rtems_telnetd/icmds.c
+++ /dev/null
@@ -1,47 +0,0 @@
-#include <rtems/shell.h>
-#include <rtems/rtems_bsdnet.h>
-/*+++++++++++++++++++++++++++++++++++++++++++++*/
-int main_inet(int argc,char * argv[]) {
- rtems_bsdnet_show_inet_routes ();
- return 0;
-}
-/*+++++++++++++++++++++++++++++++++++++++++++++*/
-int main_mbuf(int argc,char * argv[]) {
- rtems_bsdnet_show_mbuf_stats ();
- return 0;
-}
-/*+++++++++++++++++++++++++++++++++++++++++++++*/
-int main_if(int argc,char * argv[]) {
- rtems_bsdnet_show_if_stats ();
- return 0;
-}
-/*+++++++++++++++++++++++++++++++++++++++++++++*/
-int main_ip(int argc,char * argv[]) {
- rtems_bsdnet_show_ip_stats ();
- return 0;
-}
-/*+++++++++++++++++++++++++++++++++++++++++++++*/
-int main_icmp(int argc,char * argv[]) {
- rtems_bsdnet_show_icmp_stats ();
- return 0;
-}
-/*+++++++++++++++++++++++++++++++++++++++++++++*/
-int main_tcp(int argc,char * argv[]) {
- rtems_bsdnet_show_tcp_stats ();
- return 0;
-}
-/*+++++++++++++++++++++++++++++++++++++++++++++*/
-int main_udp(int argc,char * argv[]) {
- rtems_bsdnet_show_udp_stats ();
- return 0;
-}
-/*+++++++++++++++++++++++++++++++++++++++++++++*/
-void register_icmds(void) {
- shell_add_cmd("inet" ,"net","inet routes" ,main_inet);
- shell_add_cmd("mbuf" ,"net","mbuf stats" ,main_mbuf);
- shell_add_cmd("if" ,"net","if stats" ,main_if );
- shell_add_cmd("ip" ,"net","ip stats" ,main_ip );
- shell_add_cmd("icmp" ,"net","icmp stats" ,main_icmp);
- shell_add_cmd("tcp" ,"net","tcp stats" ,main_tcp );
- shell_add_cmd("udp" ,"net","udp stats" ,main_udp );
-}
diff --git a/c/src/libnetworking/rtems_telnetd/preinstall.am b/c/src/libnetworking/rtems_telnetd/preinstall.am
deleted file mode 100644
index f8470b4620..0000000000
--- a/c/src/libnetworking/rtems_telnetd/preinstall.am
+++ /dev/null
@@ -1,27 +0,0 @@
-## Automatically generated by ampolish3 - Do not edit
-
-if AMPOLISH3
-$(srcdir)/preinstall.am: Makefile.am
- $(AMPOLISH3) $(srcdir)/Makefile.am > $(srcdir)/preinstall.am
-endif
-
-PREINSTALL_DIRS =
-DISTCLEANFILES += $(PREINSTALL_DIRS)
-
-PREINSTALL_FILES =
-CLEANFILES += $(PREINSTALL_FILES)
-
-if HAS_NETWORKING
-$(PROJECT_INCLUDE)/rtems/$(dirstamp):
- @$(mkdir_p) $(PROJECT_INCLUDE)/rtems
- @: > $(PROJECT_INCLUDE)/rtems/$(dirstamp)
-PREINSTALL_DIRS += $(PROJECT_INCLUDE)/rtems/$(dirstamp)
-
-$(PROJECT_INCLUDE)/rtems/pty.h: pty.h $(PROJECT_INCLUDE)/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/pty.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/pty.h
-
-$(PROJECT_INCLUDE)/rtems/telnetd.h: telnetd.h $(PROJECT_INCLUDE)/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/telnetd.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/telnetd.h
-endif
diff --git a/c/src/libnetworking/rtems_telnetd/pty.c b/c/src/libnetworking/rtems_telnetd/pty.c
deleted file mode 100644
index c19d05db37..0000000000
--- a/c/src/libnetworking/rtems_telnetd/pty.c
+++ /dev/null
@@ -1,407 +0,0 @@
-/*
- * /dev/ptyXX (A first version for pseudo-terminals)
- *
- * Author: Fernando RUIZ CASAS (fernando.ruiz@ctv.es)
- * May 2001
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Id$
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-/*-----------------------------------------*/
-#include <termios.h>
-#include <rtems.h>
-#include <rtems/libio.h>
-#include <rtems/pty.h>
-#include <rtems/bspIo.h>
-/*-----------------------------------------*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-/*-----------------------------------------*/
-#define IAC_ESC 255
-#define IAC_DONT 254
-#define IAC_DO 253
-#define IAC_WONT 252
-#define IAC_WILL 251
-#define IAC_SB 250
-#define IAC_GA 249
-#define IAC_EL 248
-#define IAC_EC 247
-#define IAC_AYT 246
-#define IAC_AO 245
-#define IAC_IP 244
-#define IAC_BRK 243
-#define IAC_DMARK 242
-#define IAC_NOP 241
-#define IAC_SE 240
-#define IAC_EOR 239
-
-struct pty_tt;
-typedef struct pty_tt pty_t;
-
-struct pty_tt {
- char *devname;
- struct rtems_termios_tty *ttyp;
- tcflag_t c_cflag;
- int opened;
- int socket;
-
- int last_cr;
- int iac_mode;
-};
-
-
-int ptys_initted=FALSE;
-pty_t ptys[MAX_PTYS];
-
-/* This procedure returns the devname for a pty slot free.
- * If not slot availiable (field socket>=0)
- * then the socket argument is closed
- */
-
-char * get_pty(int socket) {
- int ndx;
- if (!ptys_initted) return NULL;
- for (ndx=0;ndx<MAX_PTYS;ndx++) {
- if (ptys[ndx].socket<0) {
- ptys[ndx].socket=socket;
- return ptys[ndx].devname;
- };
- };
- close(socket);
- return NULL;
-}
-
-
-/*-----------------------------------------------------------*/
-/*
- * The NVT terminal is negociated in PollRead and PollWrite
- * with every BYTE sendded or received.
- * A litle status machine in the pty_read_byte(int minor)
- *
- */
-const char IAC_AYT_RSP[]="\r\nAYT? Yes, RTEMS-SHELL is here\r\n";
-const char IAC_BRK_RSP[]="<*Break*>";
-const char IAC_IP_RSP []="<*Interrupt*>";
-
-
-static
-int send_iac(int minor,unsigned char mode,unsigned char option) {
- unsigned char buf[3];
- buf[0]=IAC_ESC;
- buf[1]=mode;
- buf[2]=option;
- return write(ptys[minor].socket,buf,sizeof(buf));
-}
-
-int read_pty(int minor) { /* Characters writed in the client side*/
- unsigned char value;
- int count;
- int result;
- count=read(ptys[minor].socket,&value,sizeof(value));
- if (count<1) {
- fclose(stdin);
- fclose(stdout);
- fclose(stderr);
- /* If you don't read from the socket the system ends the task */
- rtems_task_delete(RTEMS_SELF);
- };
- switch(ptys[minor].iac_mode) {
- case IAC_ESC:
- ptys[minor].iac_mode=0;
- switch(value) {
- case IAC_ESC :
- return IAC_ESC;
- case IAC_DONT:
- case IAC_DO :
- case IAC_WONT:
- case IAC_WILL:
- ptys[minor].iac_mode=value;
- return -1;
- case IAC_SB :
- return -100;
- case IAC_GA :
- return -1;
- case IAC_EL :
- return 0x03; /* Ctrl-C*/
- case IAC_EC :
- return '\b';
- case IAC_AYT :
- write(ptys[minor].socket,IAC_AYT_RSP,strlen(IAC_AYT_RSP));
- return -1;
- case IAC_AO :
- return -1;
- case IAC_IP :
- write(ptys[minor].socket,IAC_IP_RSP,strlen(IAC_IP_RSP));
- return -1;
- case IAC_BRK :
- write(ptys[minor].socket,IAC_BRK_RSP,strlen(IAC_BRK_RSP));
- return -1;
- case IAC_DMARK:
- return -2;
- case IAC_NOP :
- return -1;
- case IAC_SE :
- return -101;
- case IAC_EOR :
- return -102;
- default :
- return -1;
- };
- break;
- case IAC_WILL:
- ptys[minor].iac_mode=0;
- if (value==34){send_iac(minor,IAC_DONT, 34); /*LINEMODE*/
- send_iac(minor,IAC_DO , 1);} else /*ECHO */
- {send_iac(minor,IAC_DONT,value);};
- return -1;
- case IAC_DONT:
- ptys[minor].iac_mode=0;
- return -1;
- case IAC_DO :
- ptys[minor].iac_mode=0;
- if (value==3) {send_iac(minor,IAC_WILL, 3);} else /* GO AHEAD*/
- if (value==1) { } else /* ECHO */
- {send_iac(minor,IAC_WONT,value);};
- return -1;
- case IAC_WONT:
- ptys[minor].iac_mode=0;
- if (value==1) {send_iac(minor,IAC_WILL, 1);} else /* ECHO */
- {send_iac(minor,IAC_WONT,value);};
- return -1;
- default:
- ptys[minor].iac_mode=0;
- if (value==IAC_ESC) {
- ptys[minor].iac_mode=value;
- return -1;
- } else {
- result=value;
- if ((value=='\n') && (ptys[minor].last_cr)) result=-1;
- ptys[minor].last_cr=(value=='\r');
- return result;
- };
- };
-
-}
-
-/*-----------------------------------------------------------*/
-static int ptySetAttributes(int minor,const struct termios *t);
-static int ptyPollInitialize(int major,int minor,void * arg) ;
-static int ptyShutdown(int major,int minor,void * arg) ;
-static int ptyPollWrite(int minor, const char * buf,int len) ;
-static int ptyPollRead(int minor) ;
-const rtems_termios_callbacks * pty_get_termios_handlers(int polled) ;
-/*-----------------------------------------------------------*/
-/* Set the 'Hardware' */
-/*-----------------------------------------------------------*/
-static int
-ptySetAttributes(int minor,const struct termios *t) {
- if (minor<MAX_PTYS) {
- ptys[minor].c_cflag=t->c_cflag;
- } else {
- return -1;
- };
- return 0;
-}
-/*-----------------------------------------------------------*/
-static int
-ptyPollInitialize(int major,int minor,void * arg) {
- rtems_libio_open_close_args_t * args = arg;
- struct termios t;
- if (minor<MAX_PTYS) {
- if (ptys[minor].socket<0) return -1;
- ptys[minor].opened=TRUE;
- ptys[minor].ttyp=args->iop->data1;
- t.c_cflag=B9600|CS8;/* termios default */
- return ptySetAttributes(minor,&t);
- } else {
- return -1;
- };
-}
-/*-----------------------------------------------------------*/
-static int
-ptyShutdown(int major,int minor,void * arg) {
- if (minor<MAX_PTYS) {
- ptys[minor].opened=FALSE;
- if (ptys[minor].socket>=0) close(ptys[minor].socket);
- ptys[minor].socket=-1;
- chown(ptys[minor].devname,2,0);
- } else {
- return -1;
- };
- return 0;
-}
-/*-----------------------------------------------------------*/
-/* Write Characters into pty device */
-/*-----------------------------------------------------------*/
-static int
-ptyPollWrite(int minor, const char * buf,int len) {
- int count;
- if (minor<MAX_PTYS) {
- if (ptys[minor].socket<0) return -1;
- count=write(ptys[minor].socket,buf,len);
- } else {
- count=-1;
- };
- return count;
-}
-/*-----------------------------------------------------------*/
-static int
-ptyPollRead(int minor) {
- int result;
- if (minor<MAX_PTYS) {
- if (ptys[minor].socket<0) return -1;
- result=read_pty(minor);
- return result;
- };
- return -1;
-}
-/*-----------------------------------------------------------*/
-static const rtems_termios_callbacks pty_poll_callbacks = {
- ptyPollInitialize, /* FirstOpen*/
- ptyShutdown, /* LastClose*/
- ptyPollRead, /* PollRead */
- ptyPollWrite, /* Write */
- ptySetAttributes, /* setAttributes */
- NULL, /* stopRemoteTX */
- NULL, /* StartRemoteTX */
- 0 /* outputUsesInterrupts */
-};
-/*-----------------------------------------------------------*/
-const rtems_termios_callbacks * pty_get_termios_handlers(int polled) {
- return &pty_poll_callbacks;
-}
-/*-----------------------------------------------------------*/
-void init_ptys(void) {
- int ndx;
- for (ndx=0;ndx<MAX_PTYS;ndx++) {
- ptys[ndx].devname=malloc(strlen("/dev/ptyXX")+1);
- sprintf(ptys[ndx].devname,"/dev/pty%X",ndx);
- ptys[ndx].ttyp=NULL;
- ptys[ndx].c_cflag=CS8|B9600;
- ptys[ndx].socket=-1;
- ptys[ndx].opened=FALSE;
-
- };
- ptys_initted=TRUE;
-}
-
-
-/*-----------------------------------------------------------*/
-/* pty_initialize
- *
- * This routine initializes the pty IO driver.
- *
- * Input parameters: NONE
- *
- * Output parameters: NONE
- *
- * Return values:
- */
-/*-----------------------------------------------------------*/
-rtems_device_driver pty_initialize(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void *arg
-)
-{
- int ndx;
- rtems_status_code status ;
-
- /*
- * Set up ptys
- */
-
- init_ptys();
-
- /*
- * Register the devices
- */
- for (ndx=0;ndx<MAX_PTYS;ndx++) {
- status = rtems_io_register_name(ptys[ndx].devname, major, ndx);
- if (status != RTEMS_SUCCESSFUL)
- rtems_fatal_error_occurred(status);
- chmod(ptys[ndx].devname,0660);
- chown(ptys[ndx].devname,2,0); /* tty,root*/
- };
- printk("Device: /dev/pty%X../dev/pty%X (%d)pseudo-terminals registered.\n",0,MAX_PTYS-1,MAX_PTYS);
-
- return RTEMS_SUCCESSFUL;
-}
-
-
-/*
- * Open entry point
- */
-
-rtems_device_driver pty_open(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void * arg
-)
-{
- rtems_status_code sc ;
- sc = rtems_termios_open(major,minor,arg,pty_get_termios_handlers(FALSE));
- return sc;
-}
-
-/*
- * Close entry point
- */
-
-rtems_device_driver pty_close(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void * arg
-)
-{
- return rtems_termios_close(arg);
-}
-
-/*
- * read bytes from the pty
- */
-
-rtems_device_driver pty_read(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void * arg
-)
-{
- return rtems_termios_read(arg);
-}
-
-/*
- * write bytes to the pty
- */
-
-rtems_device_driver pty_write(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void * arg
-)
-{
- return rtems_termios_write(arg);
-}
-
-/*
- * IO Control entry point
- */
-
-rtems_device_driver pty_control(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void * arg
-)
-{
- return rtems_termios_ioctl(arg);
-}
diff --git a/c/src/libnetworking/rtems_telnetd/pty.h b/c/src/libnetworking/rtems_telnetd/pty.h
deleted file mode 100644
index 9d3d6295ce..0000000000
--- a/c/src/libnetworking/rtems_telnetd/pty.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * /dev/ptyXX (A first version for pseudo-terminals)
- *
- * Author: Fernando RUIZ CASAS (fernando.ruiz@ctv.es)
- * May 2001
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Id$
- */
-
-#ifndef __PTY_H
-#define __PTY_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <rtems.h>
-
-#ifndef MAX_PTYS
-#define MAX_PTYS 16
-#endif
-
-char * get_pty(int socket);
-
-rtems_device_driver pty_initialize(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void *arg);
-rtems_device_driver pty_open(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void * arg);
-rtems_device_driver pty_close(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void * arg);
-rtems_device_driver pty_read(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void * arg);
-rtems_device_driver pty_write(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void * arg);
-rtems_device_driver pty_control(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void * arg);
-
-
-#define PTY_DRIVER_TABLE_ENTRY \
- { pty_initialize , pty_open , pty_close , \
- pty_read , pty_write , pty_control }
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/c/src/libnetworking/rtems_telnetd/telnetd.c b/c/src/libnetworking/rtems_telnetd/telnetd.c
deleted file mode 100644
index 5016d16036..0000000000
--- a/c/src/libnetworking/rtems_telnetd/telnetd.c
+++ /dev/null
@@ -1,133 +0,0 @@
-/***********************************************************/
-/*
- *
- * The telnet DAEMON
- *
- * Author: 17,may 2001
- *
- * WORK: fernando.ruiz@ctv.es
- * HOME: correo@fernando-ruiz.com
- *
- * After start the net you can start this daemon.
- * It uses the previously inited pseudo-terminales (pty.c)
- * getting a new terminal with getpty(). This function
- * gives a terminal name passing a opened socket like parameter.
- *
- * With register_telnetd() you add a new command in the shell to start
- * this daemon interactively. (Login in /dev/console of course)
- *
- * Sorry but OOB is not still implemented. (This is the first version)
- */
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <rtems.h>
-#include <rtems/error.h>
-#include <rtems/pty.h>
-#include <rtems/shell.h>
-#include <rtems/telnetd.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <string.h> /* memset */
-#include <stdio.h>
-/***********************************************************/
-rtems_id telnetd_task_id =0;
-uint32_t telnetd_stack_size =16384;
-rtems_task_priority telnetd_task_priority=100;
-/***********************************************************/
-rtems_task rtems_task_telnetd(rtems_task_argument task_argument) {
- int des_socket,
- acp_socket;
- struct sockaddr_in srv;
- char * devname;
- int i=1;
- socklen_t size_adr;
- if ((des_socket=socket(PF_INET,SOCK_STREAM,0))<0) {
- perror("telnetd:socket");
- rtems_task_delete(RTEMS_SELF);
- };
- setsockopt(des_socket,SOL_SOCKET,0,&i,sizeof(i));
- memset(&srv,0,sizeof(srv));
- srv.sin_family=AF_INET;
- srv.sin_port=htons(23);
- size_adr=sizeof(srv);
- if ((bind(des_socket,(struct sockaddr *)&srv,size_adr))<0) {
- perror("telnetd:bind");
- close(des_socket);
- rtems_task_delete(RTEMS_SELF);
- };
- if ((listen(des_socket,5))<0) {
- perror("telnetd:listen");
- close(des_socket);
- rtems_task_delete(RTEMS_SELF);
- };
- do {
- acp_socket=accept(des_socket,(struct sockaddr*)&srv,&size_adr);
- if (acp_socket<0) {
- perror("telnetd:accept");
- break;
- };
- if ((devname = get_pty(acp_socket)) ) {
- shell_init(&devname[5],
- telnetd_stack_size,
- telnetd_task_priority,
- devname,B9600|CS8,FALSE);
- } else {
- close(acp_socket);
- };
- } while(1);
- close(des_socket);
- rtems_task_delete(RTEMS_SELF);
-}
-/***********************************************************/
-int rtems_initialize_telnetd(void) {
- void register_icmds(void);
- rtems_status_code sc;
-
- register_icmds(); /* stats for tcp/ip */
-
- if (telnetd_task_id ) return RTEMS_RESOURCE_IN_USE;
- if (telnetd_stack_size<=0 ) telnetd_stack_size =16384;
- if (telnetd_task_priority<=2) telnetd_task_priority=100;
- sc=rtems_task_create(new_rtems_name("tlnd"),
- 100,RTEMS_MINIMUM_STACK_SIZE,
- RTEMS_DEFAULT_MODES,
- RTEMS_DEFAULT_ATTRIBUTES,
- &telnetd_task_id);
- if (sc!=RTEMS_SUCCESSFUL) {
- rtems_error(sc,"creating task telnetd");
- return (int)sc;
- };
- sc=rtems_task_start(telnetd_task_id,
- rtems_task_telnetd,
- (rtems_task_argument)NULL);
- if (sc!=RTEMS_SUCCESSFUL) {
- rtems_error(sc,"starting task telnetd");
- };
- return (int)sc;
-}
-/***********************************************************/
-int main_telnetd(int argc,char * argv[]) {
- rtems_status_code sc;
- if (telnetd_task_id) {
- printf("ERROR:telnetd already started\n");
- return 1;
- };
- if (argc>1) telnetd_stack_size =str2int(argv[1]);
- if (argc>2) telnetd_task_priority=str2int(argv[2]);
- sc=rtems_initialize_telnetd();
- if (sc!=RTEMS_SUCCESSFUL) return sc;
- printf("rtems_telnetd() started with stacksize=%u,priority=%d\n",
- telnetd_stack_size,telnetd_task_priority);
- return 0;
-}
-/***********************************************************/
-int register_telnetd(void) {
- shell_add_cmd("telnetd","telnet","telnetd [stacksize [tsk_priority]]",main_telnetd);
- return 0;
-}
-/***********************************************************/
diff --git a/c/src/libnetworking/rtems_telnetd/telnetd.h b/c/src/libnetworking/rtems_telnetd/telnetd.h
deleted file mode 100644
index 01c7e58409..0000000000
--- a/c/src/libnetworking/rtems_telnetd/telnetd.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * (A first version for telnetd)
- *
- * Author: Fernando RUIZ CASAS (fernando.ruiz@ctv.es)
- * May 2001
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * rtems_initialize_telnetd() starts the daemon.
- * main_telnetd() is the main_proc for the command telnetd in the shell
- * register_telnetd() add a new command in the shell to start
- * interactively the telnetd daemon.
- *
- * $Id$
- */
-
-#ifndef __TELNETD_H
-#define __TELNETD_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-int rtems_initialize_telnetd(void);
-int main_telnetd(int argc,char * argv[]);
-int register_telnetd(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif