2005-01-30 15:57:25 -05:00
|
|
|
! Copyright (C) 2003, 2005 Slava Pestov.
|
|
|
|
! See http://factor.sf.net/license.txt for BSD license.
|
2004-07-16 02:26:21 -04:00
|
|
|
IN: telnetd
|
2005-04-22 20:09:46 -04:00
|
|
|
USING: errors listener kernel namespaces stdio streams
|
2005-01-30 15:57:25 -05:00
|
|
|
threads parser ;
|
2004-07-16 02:26:21 -04:00
|
|
|
|
|
|
|
: telnet-client ( socket -- )
|
2005-01-30 15:57:25 -05:00
|
|
|
dup [ log-client listener ] with-stream ;
|
2004-07-16 02:26:21 -04:00
|
|
|
|
2004-09-02 16:40:34 -04:00
|
|
|
: telnet-connection ( socket -- )
|
2004-11-20 16:57:01 -05:00
|
|
|
[ telnet-client ] in-thread drop ;
|
2004-09-02 16:40:34 -04:00
|
|
|
|
2004-07-16 02:26:21 -04:00
|
|
|
: telnetd-loop ( server -- server )
|
2005-03-21 15:13:40 -05:00
|
|
|
[ accept telnet-connection ] keep telnetd-loop ;
|
2004-07-16 02:26:21 -04:00
|
|
|
|
|
|
|
: telnetd ( port -- )
|
2005-04-27 01:40:09 -04:00
|
|
|
[
|
|
|
|
<server> [
|
|
|
|
telnetd-loop
|
|
|
|
] [
|
|
|
|
swap stream-close rethrow
|
|
|
|
] catch
|
|
|
|
] with-logging ;
|
2004-12-29 03:35:46 -05:00
|
|
|
|
|
|
|
IN: shells
|
|
|
|
|
|
|
|
: telnet
|
|
|
|
"telnetd-port" get str>number telnetd ;
|
|
|
|
|
2005-02-20 19:03:37 -05:00
|
|
|
! This is a string since we str>number it above.
|
|
|
|
global [ "9999" "telnetd-port" set ] bind
|