[DGD] MODE_NOECHO newline
bart at wotf.org
bart at wotf.org
Sun Jul 31 01:42:02 CEST 2016
What Gurbalib does is a MODE_NOECHO (actually, it does a send_message(0) which
does the same thing) directly after it asks for the password for the first
time. From that point on, it prepends a \n in front of each line, until the
password is accepted, after which it does a MODE_ECHO (actually, a
send_message(1) which does the same thing).
Look at /sys/obj/user.c, at the functions input_name(), input_old_password()
and login_user().
The same approach should be possible with other libs.
Bart.
On Sat, 30 Jul 2016 17:45:17 -0500, Blain wrote
> MODE_ECHO and MODE_NOECHO.
>
> The latter achieved the intended result of hiding the player's input
> while imputting a password.
>
> However, the printed text, such as a paragraph explaining how the password
> should be devised, is being severely indented when it is printed
> while the mode is MODE_NOECHO.
>
> I had fixed it briefly by replacing \n with \r\n, but I think that failed
> to fix it later on after I'd made some other changes while troubleshooting.
>
> My question is: What differences are there between the two modes
> that any sane lib should make adjustment for as a rule? On Jul 30,
> 2016 5:08 PM, "Raymond Jennings" <shentino at gmail.com> wrote:
>
> > You should be aware that telnet mode in DGD does some automatic processing
> > of output, and that includes line endings.
> >
> > I got burned by this once when I tried to use telnet mode to handle HTTP
> > connections.
> >
> > My advice: Use binary connections for everything.
> >
> > Now I am curious what you mean about noecho. Do you mean the telnet option
> > WILL/WONT ECHO?
> >
> > As far as I know, how it works is as follows:
> >
> > Normally, the connection is labelled by DGD as "echo".
> >
> > In the telnet layer, this equates, ironically, to NO ECHO, which means the
> > server is telling the client that it won't do any echoing, which in turn
> > tells the client to do that itself.
> >
> > When DGD sets the connection to "noecho", the server actually sends WILL
> > ECHO and dishonestly tells the client that it will do echoing, but then
> > doesn't actually echo, so the client sends keystrokes without echoing them
> > locally, and they never get echoed by the server either, ergo things like
> > passwords and whatnot never show up on the client's terminal because
> > neither side echoed them.
> >
> > Since a "noecho" connection has the server dishonestly telling the client
> > that it doesn't need to echo locally, this also includes the final newline
> > the client sends when the user hits the Enter key after typing the
> > password.
> >
> > What you have to do is echo the newline manually server-side.
> >
> > The example of the password first has the server send a password prompt:
> >
> > Password:
> >
> > And then the cursor sits after the colon while the user types the password
> > and hits enter. However, since local echoing has been turned off by server
> > request, it never jumps to the next line unless the server spits out a
> > newline of its own.
> >
> > I hope this explains everything, I was mostly rambling for the sake of the
> > list in general.
> >
> > On Sat, Jul 30, 2016 at 1:49 PM, Blain <blain20 at gmail.com> wrote:
> >
> > > When I switch to noecho mode, the lines following a newline are severely
> > > indented. To fix it, I have to replace \n with \r\n before sending it to
> > > the user. This doesn't happen in echo mode. Any ideas on where to start
> > > looking? Kernel code and my code seem fine so far.
> > > ____________________________________________
> > > https://mail.dworkin.nl/mailman/listinfo/dgd
> > ____________________________________________
> > https://mail.dworkin.nl/mailman/listinfo/dgd
> ____________________________________________
> https://mail.dworkin.nl/mailman/listinfo/dgd
--
http://www.flickr.com/photos/mrobjective/
http://www.om-d.org/
More information about the DGD
mailing list