diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2001-08-09 22:06:51 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2001-08-09 22:06:51 +0000 |
commit | bd520203a03ca023dcbc0c77a6af59c4dc4c3b9a (patch) | |
tree | 2b8ea98bc80ca168c3776ed17a49a061560db8b8 /c/src/libnetworking/rtems_servers | |
parent | 2001-08-09 Fernando-Ruiz Casas <correo@fernando-ruiz.com> (diff) | |
download | rtems-bd520203a03ca023dcbc0c77a6af59c4dc4c3b9a.tar.bz2 |
2001-08-09 Fernando-Ruiz Casas <correo@fernando-ruiz.com>
* Makefile.am, configure.in, rtems_servers/Makefile.am,
rtems_servers/telnetd.c, rtems_servers/telnetd.h,
rtems_telnetd/Makefile.am, rtems_telnetd/README, rtems_telnetd/icmds.c,
rtems_telnetd/pty.c, rtems_telnetd/pty.h, rtems_telnetd/telnetd.c,
rtems_telnetd/telnetd.h, wrapup/Makefile.am:
- pty and telnetd have a new subdir rtems_telnetd to avoid
the side effect when ftpd change.
- the tcp/ip stats have been implemented into icmds.c and
started when telnetd daemon is started.
* rtems_servers/telnetd.c, rtems_servers/telnetd.h: Removed.
* rtems_telnetd: New directory.
* rtems_telnetd/Makefile.am, rtems_telnetd/README,
rtems_telnetd/icmds.c, rtems_telnetd/pty.c, rtems_telnetd/pty.h,
rtems_telnetd/telnetd.c, rtems_telnetd/telnetd.h: New files.
Diffstat (limited to 'c/src/libnetworking/rtems_servers')
-rw-r--r-- | c/src/libnetworking/rtems_servers/Makefile.am | 2 | ||||
-rw-r--r-- | c/src/libnetworking/rtems_servers/telnetd.c | 107 | ||||
-rw-r--r-- | c/src/libnetworking/rtems_servers/telnetd.h | 20 |
3 files changed, 1 insertions, 128 deletions
diff --git a/c/src/libnetworking/rtems_servers/Makefile.am b/c/src/libnetworking/rtems_servers/Makefile.am index 56d4f2118f..17ad1c5fcb 100644 --- a/c/src/libnetworking/rtems_servers/Makefile.am +++ b/c/src/libnetworking/rtems_servers/Makefile.am @@ -33,7 +33,7 @@ EXTRA_DIST = ftpd.c ftpd.h include_HEADERS = ftpd.h -include_rtems_HEADERS = telnetd.h +include_rtems_HEADERS = PREINSTALL_FILES += $(PROJECT_INCLUDE) \ $(include_HEADERS:%=$(PROJECT_INCLUDE)/%) \ diff --git a/c/src/libnetworking/rtems_servers/telnetd.c b/c/src/libnetworking/rtems_servers/telnetd.c deleted file mode 100644 index 6a643f7d25..0000000000 --- a/c/src/libnetworking/rtems_servers/telnetd.c +++ /dev/null @@ -1,107 +0,0 @@ -/* - * $Id$ - */ - -#include <rtems.h> -#include <rtems/error.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 <stdio.h> -/***********************************************************/ -rtems_id telnetd_task_id =0; -rtems_unsigned32 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; - int size_adr; - if ((des_socket=socket(PF_INET,SOCK_STREAM,0))<0) { - perror("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("bind"); - close(des_socket); - rtems_task_delete(RTEMS_SELF); - }; - if ((listen(des_socket,5))<0) { - perror("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("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) { - rtems_status_code sc; - 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_servers/telnetd.h b/c/src/libnetworking/rtems_servers/telnetd.h deleted file mode 100644 index fa710151bf..0000000000 --- a/c/src/libnetworking/rtems_servers/telnetd.h +++ /dev/null @@ -1,20 +0,0 @@ -/* - * $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 |