SCOUG Logo


Next Meeting: Sat, TBD
Meeting Directions


Be a Member
Join SCOUG

Navigation:


Help with Searching

20 Most Recent Documents
Search Archives
Index by date, title, author, category.


Features:

Mr. Know-It-All
Ink
Download!










SCOUG:

Home

Email Lists

SIGs (Internet, General Interest, Programming, Network, more..)

Online Chats

Business

Past Presentations

Credits

Submissions

Contact SCOUG

Copyright SCOUG



warp expowest
Pictures from Sept. 1999

The views expressed in articles on this site are those of their authors.

warptech
SCOUG was there!


Copyright 1998-2024, Southern California OS/2 User Group. ALL RIGHTS RESERVED.

SCOUG, Warp Expo West, and Warpfest are trademarks of the Southern California OS/2 User Group. OS/2, Workplace Shell, and IBM are registered trademarks of International Business Machines Corporation. All other trademarks remain the property of their respective owners.

The Southern California OS/2 User Group
USA

SCOUG-Programming Mailing List Archives

Return to [ 12 | June | 1998 ]


Date: Fri, 12 Jun 1998 23:36:02 PST8PDT
From: Peter Skye <pskye@peterskye.com >
Reply-To: scoug-programming@scoug.com
To: scoug-programming@scoug.com
Subject: SCOUG-Programming: GetLine()

Content Type: text/plain

I have reviewed RFC 959, "FILE TRANSFER PROTOCOL (FTP)". Of note:

- The Telnet end-of-line code of CR LF is the default value, unless
another value is negotiated (section 4.1.3).

- The BS character is specifically allowed in FTP commands (section
5.3.2), except within the command word ("command code") itself (section
5.3). In fact, all ASCII characters except for CR and LF are allowed;
this includes not only BS but VT, BEL, FF, RUBOUT etc.

Therefore,

> And all of the funky variations on the end of line
> character have been negotiated before GetLine() is called.

Correct, although RFC 959 does not state what recv() sees if another
value is negotiated (a point not worth pursuing for this project). And,
as previously discussed, multiple command lines could still be returned
with one GetLine() call unless GetLine() scans the newly received
characters.

> In a nutshell, GetLine() doesn't have
> to edit the input string as it comes in. If the data read by recv() has
> a backspace, then that character really is a part of the data that the
> PI has to parse.

We agree that BS, and by extension any control character (other than CR
or LF), should be handled. Handling them immediately in GetLine() seems
more natural, but then they are not available as argument characters in
username, password, account-information or pathname (the four arguments
where they would be allowed as per RFC 959 section 5.3.2).

In particular, I am aware of passwords with embedded BEL characters;
thus, a robust implementation mandates these control characters being
passed transparently through GetLine().

To properly implement RFC 959 section 5.3.2, any BS or other control
character should be incorporated into the argument string and handled by
the appropriate routine called for by the initial command word ("command
code").

The special meaning associated with BS ("delete me and the character
just before me") is an implementation issue, since the BS character
could conceivably be a part of, for example, a password. This issue is
not addressed by RFC 959. If BS were not allowed in command arguments,
it could (and arguably should) be processed in GetLine().

- Peter Skye

=====================================================

To unsubscribe from this list, send an email message
to "steward@scoug.com". In the body of the message,
put the command "unsubscribe scoug-programming".

For problems, contact the list owner at
"rollin@scoug.com".

=====================================================


Return to [ 12 | June | 1998 ]



The Southern California OS/2 User Group
P.O. Box 26904
Santa Ana, CA 92799-6904, USA

Copyright 2001 the Southern California OS/2 User Group. ALL RIGHTS RESERVED.

SCOUG, Warp Expo West, and Warpfest are trademarks of the Southern California OS/2 User Group. OS/2, Workplace Shell, and IBM are registered trademarks of International Business Machines Corporation. All other trademarks remain the property of their respective owners.