;/********************************************************************** ; * ; * aIRC ; * Telnet Client ; * ; **********************************************************************/ ; ; alias _telnet.addonver { return 1.0 } alias telnet { var %i = 1,%sock,%win,%port,%parms = $_parameter($1-,1,Telnet Client [/telnet],normal,$null,Server [port]),%server = $gettok($gettok(%parms,1,32),1,58),%service = 0 if ($gettok(%parms,2,32) != $null) { %port = $ifmatch } elseif ($gettok(%parms,2,58) != $null) { %port = $ifmatch } else { %port = 23 } if (%port == 23) { info.a Connecting to %server ( $+ %port $+ ) run telnet.exe %server %port return } while ($sock($_nospaces(Telnet,%i))) { inc %i } %sock = Telnet $+ %i %win = @ $+ %sock if ($window(%win) == $null) { window -aek %win $_window.conf(@Telnet) _window.font.reset %win @Telnet } if ($gettok($_idenport(%port,t),1,32) != $null) { %service = $ifmatch } echo $colour(info) -it %win $^*** Connecting to %server ( $+ %port $+ ) sockopen %sock %server %port sockmark %sock %server $+ $chr(9) $+ 0 $+ $chr(9) $+ %service _recent.add telnet 10 %server %port } alias _telnet.unload { _closematchingwindows @Telnet* sockclose telnet* } alias _telnet.telnetnum { if ($sockname) && ($2 == $null) { return $remove($sockname,telnet) } if (@Telnet* iswm $1) { return $remove($1,@Telnet) } if (@Telnet* iswm $active) { return $remove($active,@Telnet) } } alias _telnet.telnetnums { if ($1) { return Telnet $+ $_telnet.telnetnum($1) } return Telnet $+ $_telnet.telnetnum } alias _telnet.sw { var %s = telnet $+ $_telnet.telnetnum if ($_sockmark(%s,2)) { echo -it $target $1- } sockwrite -n %s $1- } alias _telnet.host { return $_sockmark($_telnet.telnetnums($1),1) } alias _telnet.port { return $sock($_telnet.telnetnums($1)).port } alias _telnet.service { return $_sockmark($_telnet.telnetnums($1),3) } alias _telnet.setservice { var %win = $active if (@telnet* !iswm $active) { return } var %sock = $_telnet.telnetnums,%services = eggdrop irc pop3,%tmp,%host = $_telnet.host,%port = $_telnet.port if ($sock(%sock)) { %tmp = $_selectedit($null,0,Telnet Client [/telnet],1,$_telnet.service,32,%services,Select service for current session:[Blank or escape for none]) } if ($sock(%sock)) { sockmark %sock $puttok($sock(%sock).mark,$iif(%tmp != $null,%tmp,$null),3,9) var %tmps if (%tmp != $null) { %tmps = ( $+ %tmp $+ ) } titlebar %win - %host [[ $+ %port $+ ]] %service %tmps } else { error.w %win You are not connected. } } alias `telnet.pre { set -u %`sock $_telnet.telnetnums set -u %`echo $iif($_sockmark(%`sock,2),1,0) set -u %`thost $gettok($window($active).title,2,32) set -u %`tport $remove($gettok($window($active).title,3,32),[,]) if ($_telnet.host != $null) { set -u %`host $ifmatch set -u %`port $_telnet.port set -u %`service $_telnet.service } } menu @Telnet { $`telnet.pre:{ } - $iif(%`service == pop3,pop3) .&login...:{ _telnet.sw user $_param(1,$null,User:) _telnet.sw pass $_parampass(1,$null,Pass:) } .&retr...:{ _telnet.sw retr $_param(isint,1,Message number:) } .&dele...:{ _telnet.sw dele $_param(isint,1,Message number:) } - $iif(%`thost,&service):{ _telnet.setservice } $iif(%`thost,&ident):{ ident $_telnet.host } $iif(%`thost && $_portscan.addonver,port&scan):{ portscan $_telnet.host } $iif(%`thost && $_portscan.addonver,&port ?...):{ portscan $_telnet.host ? } $iif(%`thost,$iif(%`host,&other conn,&reconnect)):{ telnet $gettok($window($active).title,2,32) $remove($gettok($window($active).title,3,32),[,]) } $iif(%`host,&terminate):{ sockclose $_telnet.telnetnums echo $colour(info) -t $active $^*** End of Session } - $`ifmm(%`echo) &echo:{ var %s = $_telnet.telnetnums sockmark %s $puttok($sock(%s).mark,$iif($_sockmark(%s,2),0,1),2,9) } } ON *:INPUT:@Telnet*:{ if (/* iswm $1-) { $1- } else { var %s = $_telnet.telnetnums if ($sock(%s).status != active) { beep } else { _telnet.sw $1- } } halt } ON *:SOCKOPEN:telnet*:{ if ($sockerr) { error.w @ $+ $sockname Telnet Session with $_telnet.host $+ : $_sockerr return } if ($window(@ [ $+ [ $sockname ] ] ) == $null) { window -aek @ $+ $sockname $_window.conf(@Telnet) _window.font.reset @ $+ $sockname @Telnet } var %service if ($_telnet.service != $null) { %service = ( $+ $ifmatch $+ ) } titlebar @ $+ $sockname - $_telnet.host [[ $+ $_telnet.port $+ ]] %service echo $colour(info) -it @ $+ $sockname $^*** Connection established: $_telnet.host $^bp($_telnet.port) } ON *:SOCKWRITE:telnet*:{ if ($sockerr) { error.w @ $+ $sockname Telnet Session with $_telnet.host $+ : $_sockerr } } ON *:SOCKREAD:telnet*:{ if ($sockerr) { error.w @ $+ $sockname Telnet Session with $_telnet.host $+ : $_sockerr return } var %sr sockread %sr while ($sockbr) { if ($right(%sr,1) == $cr) { %sr = $left(%sr,-1) } if (%sr == $chr(32)) || ($remove(%sr,$cr) == $null) { echo -it @ $+ $sockname  } elseif (%sr != $null) { echo -it @ $+ $sockname $ansi2mirc($replace(%sr,$chr(32), )) } if ($sockname == $null) { break } sockread %sr } } ON *:SOCKCLOSE:telnet*:{ echo $colour(info) -it @ $+ $sockname $^*** End of Session } alias _onclosewin.telnet { if ($sock($remove($2,@))) { info.a Closing Telnet Session $remove($2,@Telnet) } sockclose $remove($2,@) } alias _windowsize.Telnet { return X Y 400 241 } alias _windowopts.Telnet { return 1 1 1 }