mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-10 09:16:53 +00:00
Do \r\n in telnet mode
git-svn-id: https://svn.fhem.de/fhem/trunk@1616 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
deba93470a
commit
88b7923f28
15
fhem/fhem.pl
15
fhem/fhem.pl
@ -463,8 +463,7 @@ while (1) {
|
|||||||
$client{$fd}{addr} = "$caddr:$port";
|
$client{$fd}{addr} = "$caddr:$port";
|
||||||
$client{$fd}{buffer} = "";
|
$client{$fd}{buffer} = "";
|
||||||
Log 4, "Connection accepted from $client{$fd}{addr}";
|
Log 4, "Connection accepted from $client{$fd}{addr}";
|
||||||
# Telnet is strange: tell "Will echo" to supress password
|
syswrite($fd, sprintf("%c%c%cPassword: ", 255, 251, 1)) # WILL ECHO
|
||||||
syswrite($fd, sprintf("%c%c%cPassword: ", 255, 251, 1))
|
|
||||||
if($attr{global}{portpassword});
|
if($attr{global}{portpassword});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -643,13 +642,14 @@ AnalyzeInput($)
|
|||||||
{
|
{
|
||||||
my $c = shift;
|
my $c = shift;
|
||||||
my @ret;
|
my @ret;
|
||||||
|
my $gotCmd;
|
||||||
|
|
||||||
while($client{$c}{buffer} =~ m/\n/) {
|
while($client{$c}{buffer} =~ m/\n/) {
|
||||||
my ($cmd, $rest) = split("\n", $client{$c}{buffer}, 2);
|
my ($cmd, $rest) = split("\n", $client{$c}{buffer}, 2);
|
||||||
$client{$c}{buffer} = $rest;
|
$client{$c}{buffer} = $rest;
|
||||||
|
|
||||||
if($attr{global}{portpassword} && !$client{$c}{pwEntered}) {
|
if($attr{global}{portpassword} && !$client{$c}{pwEntered}) {
|
||||||
syswrite($client{$c}{fd}, sprintf("%c%c%c\n", 255, 252, 1)); # Wont echo.
|
syswrite($client{$c}{fd}, sprintf("%c%c%c\r\n", 255, 252, 1)); # WONT ECHO
|
||||||
if($attr{global}{portpassword} eq $cmd) {
|
if($attr{global}{portpassword} eq $cmd) {
|
||||||
$client{$c}{pwEntered} = 1;
|
$client{$c}{pwEntered} = 1;
|
||||||
next;
|
next;
|
||||||
@ -658,7 +658,7 @@ AnalyzeInput($)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
$gotCmd = 1;
|
||||||
if($cmd) {
|
if($cmd) {
|
||||||
if($cmd =~ m/\\ *$/) { # Multi-line
|
if($cmd =~ m/\\ *$/) { # Multi-line
|
||||||
$client{$c}{prevlines} .= $cmd . "\n";
|
$client{$c}{prevlines} .= $cmd . "\n";
|
||||||
@ -678,8 +678,11 @@ AnalyzeInput($)
|
|||||||
my $ret = "";
|
my $ret = "";
|
||||||
$ret .= (join("\n", @ret) . "\n") if(@ret);
|
$ret .= (join("\n", @ret) . "\n") if(@ret);
|
||||||
$ret .= ($client{$c}{prevlines} ? "> " : "fhem> ")
|
$ret .= ($client{$c}{prevlines} ? "> " : "fhem> ")
|
||||||
if($client{$c}{prompt} && !$client{$c}{rcvdQuit});
|
if($gotCmd && $client{$c}{prompt} && !$client{$c}{rcvdQuit});
|
||||||
syswrite($client{$c}{fd}, $ret) if($ret);
|
if($ret) {
|
||||||
|
$ret =~ s/\n/\r\n/g if($attr{global}{portpassword});
|
||||||
|
syswrite($client{$c}{fd}, $ret);
|
||||||
|
}
|
||||||
DoClose($c) if($client{$c}{rcvdQuit});
|
DoClose($c) if($client{$c}{rcvdQuit});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user