[Oberon] Revisions in Unix.Oberon.NetSystem.Mod
peter at easthope.ca
peter at easthope.ca
Mon Oct 9 19:21:28 CEST 2023
Hi,
A link to the module currently in the archive is in the left column here.
https://en.wikibooks.org/wiki/Oberon/A2#Oberon.NetSystem
My revision of the module is here.
https://en.wikibooks.org/wiki/Oberon/A2/Unix.Oberon.NetSystem.Mod
(1) Setuser in ETH Oberon assumed that the user or user ID did not
contain the "@" character. No problem until the user was identified by
email address. Consequently
NetSystem.SetUser pop:jdoe at something.tld:password at mailhost.com ~
failed by taking everything after the first @ as the host. The
limitation was removed by parsing correctly. The improvement was put
in the git archive months ago. =8~)
(2) From joerg.straube at iaeth.ch Sat Aug 26 18:46:04 2023
> Personally, I would only call the set (âuserâ, âpasswordâ)
> âCredentialâ. As you store the host and the service as well, I would
> call the bundle of these 4 strings âServiceLoginâ or â
> ServiceAccessâ or something along these lines. But feel free to call
> it âCredentialâ, if you like.
Sound observation. Thanks.
After dithering and thought I constrained your suggestion. =8~)
Access = POINTER TO AccessDesc;
AccessDesc = RECORD
service, user, host, passwd: ARRAY 64 OF CHAR;
next: Access
END;
Further debate welcome. =8~)
(3) From andreas_pirklbauer at yahoo.com Thu Sep 28 20:26:53 2017
> Local procedures are in fact almost identical to global procedures ...
For me, SetUser was one of the more difficult procedures. Four local
procedures contributed to the difficulty. So I globalized those
procedures. A few additional parameters were needed but the net effect
was more evident allocation of responsibility.
(4) PROCEDURE State* violated the RETURN-at-the-end rule. Fixed.
(5) SetUser involved local variable ok in terminating a WHILE loop. ok
occurred in several places in the loop, therefore obfuscating as
successfully as multiple RETURNs. =8~/ So I made Next return a
success flag, added a loop for Next and removed ok. Again I believe
the result is more comprehensible. Debate welcome. =8~)
(6) From paulreed at paddedcell.com Sun Aug 12 14:57:20 2018
> But to take Andreas' example of using module Out for this, just replace
> the (dynamically-loaded) Out module with a stub version in production.
>
> I know the *system* is not the same, but at least your compiled code is.
> The overhead of the empty call and return is pretty low, at least in a
> non-cached system. :)
SetUser had a debugging facility before I began tampering. =8~)
Specfically, it recognizes "\v" among the access parameters. After
finding \v SetUser delivers debug output to System.Log. The switch is
used at run time. No risk from changing the executable.
(7) I've revised comments and added comments. In some cases changed
or deleted only a word. Complaints welcome.
(8) SMTP and NNTP connections can be authenticated now. I run the
connections through Linux Stunnel. Is a similar tunnel available in
A2? Probably I should apologize to Guenter for lack of familiarity
with his work.
Thanks, ... P.L.
.
-
VoIP: +1 604 670 0140
work: https://en.wikibooks.org/wiki/User:PeterEasthope
More information about the Oberon
mailing list