[DGD] MODE_NOECHO newline

Blain blain20 at gmail.com
Sun Jul 31 13:58:03 CEST 2016


If true, that'd be very odd that my replacement fixes it for the Cygwun
telnet...
On Jul 31, 2016 6:53 AM, "Raymond Jennings" <shentino at gmail.com> wrote:

> There's some code in comm.c that automatically converts outbound newlines
> to CRLF pairs for telnet connections.
>
> Does anyone know if it always does this?
>
> On Sun, Jul 31, 2016 at 4:35 AM, Blain <blain20 at gmail.com> wrote:
>
> > Okay, now that I had some time to troubleshoot...
> >
> > (OS: Windows 10)
> > [Term 1 (Cygwin telnet)]
> >
> > Scenario 1:
> >  - Print formatted paragraph with \n
> >  - Set mode to MODE_ECHO
> >  - Print prompt
> >  = Paragraph and prompt are indented severely and input is gagged
> >
> > Scenario 2:
> >  - Print formatted paragraph with \n
> >  - Don't change mode
> >  - Print prompt
> >  = No issues and input is echoed
> >
> > Scenario 3:
> >  - Print formatted paragraph with \r\n
> >  - Set mode to MODE_ECHO
> >  - Print prompt
> >  = No issues and input is gagged
> >
> > [Term 2 (CMUD)]
> >
> > Same as above except no issues with Scenario 2.
> >
> > ---
> >
> > So, it would seem that the Cygwin telnet wants \r\n for printed text for
> > noecho mode.  CMUD handles it fine either way.  Overall, I'm wondering
> if I
> > should force \r\n all the time or at least during noecho mode across the
> > board?  I've never had this problem while playing another MUD, though.  I
> > just logged onto my usual MUD with Cygwin telnet and the password is
> > gagged,
> > but with no other effect.
> >
> > The funky part of all this is that the paragraph that's printed is done
> so
> > before the mode is changed.  Although, the paragraph is being sent during
> > the same execution round as the mode change.
> >
> >
> > On Sat, Jul 30, 2016 at 8:10 PM, Blain <blain20 at gmail.com> wrote:
> >
> > > I'll try controlling the mode more finely, but I don't think regular
> > > printing should have such problems.  Still, I'm mostly trying to figure
> > out
> > > if the problem is with my code or if DGD had had any issues with this
> > > before.
> > > It would seem to me that only having noecho mode set while the user is
> > > actually inputing the password (and hence *after* any information you
> > want
> > > to
> > > present about the password, and the prompt itself), and having echo
> mode
> > > set
> > > in all other cases would solve that quite well. This is in fact what
> > > gurbalib
> > > does as well, with the slight modification of redisplaying the password
> > > prompt
> > > during noecho mode (but initially, it displays it with echo mode set).
> > >
> > > Bart.
> > >
> > > On Sat, 30 Jul 2016 18:45:03 -0500, Blain wrote
> > > > That's not the issue here.  In noecho mode, all text is being
> > > > indented by having space prepended to each line. On Jul 30, 2016
> > > > 6:42 PM, <bart at wotf.org> wrote:
> > > >
> > > > > 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/
> > > > >
> > > > > ____________________________________________
> > > > > 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/
> > >
> > > ____________________________________________
> > > https://mail.dworkin.nl/mailman/listinfo/dgd
> > >
> > ____________________________________________
> > https://mail.dworkin.nl/mailman/listinfo/dgd
> >
> ____________________________________________
> https://mail.dworkin.nl/mailman/listinfo/dgd



More information about the DGD mailing list