summaryrefslogtreecommitdiffstats
path: root/c/src/libnetworking/rtems_telnetd/telnetd.c
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/libnetworking/rtems_telnetd/telnetd.c')
-rw-r--r--c/src/libnetworking/rtems_telnetd/telnetd.c133
1 files changed, 0 insertions, 133 deletions
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;
-}
-/***********************************************************/