From f0920480f03cd60681061a6bbb19fc70beb235dd Mon Sep 17 00:00:00 2001 From: An-Cheng Huang Date: Wed, 31 Oct 2007 14:51:16 -0700 Subject: import telnetd init from old eureka/rl-system --- scripts/telnetd.init | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100755 scripts/telnetd.init diff --git a/scripts/telnetd.init b/scripts/telnetd.init new file mode 100755 index 00000000..7afefb3d --- /dev/null +++ b/scripts/telnetd.init @@ -0,0 +1,74 @@ +#! /bin/bash + +declare progname=${0##*/} +declare action=$1; shift + +if [ x$BOOTFILE != x ] && [ -r $BOOTFILE ]; then + may_start=false + eval $(sed -n ' +/^service {$/,/^}$/ { + / *telnet {$/,/ *}$/ { + s/ *telnet {/may_start=true/p + s/ *port: /port=/p +}}' $BOOTFILE) +else + may_start=true +fi + +if [ $# -ne 0 ] ; then + port=$1; shift +fi + +: ${port:=23} +: ${bb:=/bin/busybox} + +test -x $bb || exit 0 + +running_pid () +{ + pidof $bb | while read pid ; do + f=$(tr '\000' '\t' < /proc/$pid/cmdline 2>/dev/null | cut -f2) + if [ "$f" == telnetd ] ; then + echo $pid + return + fi + done + false +} + +start () +{ + local -i pid=$( running_pid ) + + [ $pid -ne 0 ] && return + $may_start || return 0 + $bb telnetd -p $port +} + +stop () +{ + local -i pid=$( running_pid ) + [ $pid -ne 0 ] && kill $pid +} + +status () +{ + pidof $bb | while read pid ; do + f=$(tr '\000' '\t' < /proc/$pid/cmdline | cut -f2) + if [ $f == telnetd ] ; then + echo running + return + fi + done + echo not running + false +} + +case "$action" in + start) start;; + stop) stop;; + restart) stop; sleep 1; start;; + status) status;; + *) echo "Usage: $progname {start|stop|restart|status}" + exit 1 +esac -- cgit v1.2.3 From 61f301fce041eb658d62579879ae6fb355b0cde7 Mon Sep 17 00:00:00 2001 From: An-Cheng Huang Date: Wed, 31 Oct 2007 15:22:02 -0700 Subject: add telnet service --- Makefile.am | 1 + scripts/telnetd.init | 17 +---------------- templates/service/telnet/node.def | 4 ++++ templates/service/telnet/port/node.def | 3 +++ 4 files changed, 9 insertions(+), 16 deletions(-) create mode 100644 templates/service/telnet/node.def create mode 100644 templates/service/telnet/port/node.def diff --git a/Makefile.am b/Makefile.am index 2cbb92d1..9f461cbf 100644 --- a/Makefile.am +++ b/Makefile.am @@ -16,6 +16,7 @@ sbin_SCRIPTS += scripts/system/vyatta_update_logrotate.pl sbin_SCRIPTS += scripts/system/vyatta_update_syslog.pl sbin_SCRIPTS += scripts/vyatta-snmp.pl sbin_SCRIPTS += scripts/snmpd.init +sbin_SCRIPTS += scripts/telnetd.init sysconf_DATA += sysconf/hosts sysconf_DATA += sysconf/logrotate_messages diff --git a/scripts/telnetd.init b/scripts/telnetd.init index 7afefb3d..b8368f03 100755 --- a/scripts/telnetd.init +++ b/scripts/telnetd.init @@ -3,21 +3,7 @@ declare progname=${0##*/} declare action=$1; shift -if [ x$BOOTFILE != x ] && [ -r $BOOTFILE ]; then - may_start=false - eval $(sed -n ' -/^service {$/,/^}$/ { - / *telnet {$/,/ *}$/ { - s/ *telnet {/may_start=true/p - s/ *port: /port=/p -}}' $BOOTFILE) -else - may_start=true -fi - -if [ $# -ne 0 ] ; then - port=$1; shift -fi +port=$1; shift : ${port:=23} : ${bb:=/bin/busybox} @@ -41,7 +27,6 @@ start () local -i pid=$( running_pid ) [ $pid -ne 0 ] && return - $may_start || return 0 $bb telnetd -p $port } diff --git a/templates/service/telnet/node.def b/templates/service/telnet/node.def new file mode 100644 index 00000000..5f4c1c7c --- /dev/null +++ b/templates/service/telnet/node.def @@ -0,0 +1,4 @@ +help: "Enable/disable telnet protocol" +delete: "sudo /opt/vyatta/sbin/telnetd.init stop" +end: "if [ -z \"$(port/@)\" ]; then exit 0; fi; \ + sudo /opt/vyatta/sbin/telnetd.init restart $(port/@)" diff --git a/templates/service/telnet/port/node.def b/templates/service/telnet/port/node.def new file mode 100644 index 00000000..0232af83 --- /dev/null +++ b/templates/service/telnet/port/node.def @@ -0,0 +1,3 @@ +type: u32 +default: 23 +help: "Port for telnet service" -- cgit v1.2.3