KermitProject / ckermit

C-Kermit: Portable OPEN SOURCE Scriptable Network and Serial Communication Software for Unix and VMS
Other
19 stars 10 forks source link

C-Kermit 10.0 Beta.05, 26 September 2022 #7

Closed dcantrell closed 1 year ago

dcantrell commented 1 year ago
  1. ckcdeb.h: Removed the arrow-key feature from all platforms. Support for the API that detected arrow-key strokes is disappearing from one libc after another, so I might as well do it now for everybody. This was done near the top of ckcdeb.h, which (despite its name) is C-Kermit primary header file. I removed -DNOARROWKEYS from all the makefile targets that include it because it happens automatically now. If your platform (e.g. perhaps NetBSD or VMS) supports the API and you want the feature back, build C-Kermit with KFLAGS=-DDOARROWKEYS.
  2. ckcmai.c: Straightened out some confusion with the program herald. There are two routines: makever() in ckcmai.c, and herald() in ckuus5.c. makever() creates PART of the version string but doesn't print anything. herald() creates another part of the version string and then prints both parts and some other stuff, and it also defines the builtin (herald) variable. For a hard-to-explain reason, we needed to have the herald text defined BEFORE the initialization file was executed, but then not printed until AFTER the command-line arguments were processed so "kermit -H" (skip printing the herald) still worked. This required moving chunks of code from herald() to makever(). Modules changed: ckcmai.c, ckuus5.c, and ckuusy.c.
  3. ckcnet.c: "make xxx -DNORLOGIN" generated tons of errors. All the rlogin-related functions needed to protected by #ifndef NORLOGIN..#endif. Lines 7180-7567: rlog_ini(), rlog_ctrl(), rlog_oob(), rlogoobh().
  4. ckuusx.c line 96: added prototypes for ck_tn_encrypting() and ck_tn_decrypting().
  5. ck_ssl.c: add "return(0);" outside the #ifdefs to squelch "non-void function does not return a value" Clang warning.
  6. ckcnet.c: in http_security(), cipher = SSL_get_current_cipher(tls_http_con); needed to be: cipher = (SSL_CIPHER *)SSL_get_current_cipher(tls_http_con);
  7. ckuath.c: Added prototypes for encrypt_is_decrypting(), encrypt_request_end(), and get_crypt_table().
  8. ck_crp.c: about line 3876: removed "extern int encrypt_debug_mode;". It is not extern and it was already declared above.

With changes 4-8 listed above, SSL builds generate no errors or warnings in OpenSSL 1.1.1d-fips 11 Feb 2013 (Red Hat 6.1) nor in OpenSSL 1.1.1f 11 Feb 2020 (Ubuntu 20.4.1). A few warnings are generated in OpenSSL 1.1.f 31 Mar 2020 on NetBSD 9.2. In all three cases compilation and linking succeed and a C-Kermit executable is produced.

25 September 2022:

24 September 2022:

19 September 2022:

17 September 2022:

ckcfns.c sdata():

  1. Even after the previous change, C-Kermit could send a long-format packet that was one byte too long; fixed in the obvious way.
  2. In tracking down this problem I also noticed that if I gave a SET RECEIVE PACKET-LENGTH or SET SEND PACKET-LENGTH command, this too could result in overlong packets in some cases. Fixed now.

14 September 2022:

ckcfns.c sdata():

  1. Reduced maximum send-packet data size (spsiz) for short packets from 94 to 90 to avoid edge cases which could cause the encoded packet length to be out of range, i.e. not a printable 7-bit US-ASCII character.

ckcfn2.c spack():

  1. Added code to check whether Long Packet capability had been negotiated before deciding to build a long packet.

  2. Corrected an off-by-two error in calculating whether the packet would be have to be in long format.

    Before the previous two changes, file transfers from C-Kermit 10.0 (and some of the earlier 9.0.305 developement versions) to E-Kermit would fail. With the changes, they succeed. Also:

ckcdeb.h:

  1. Disabled TYPE /INTERPRET on Windows until we can figure out how to make it work.

ckcmai.c:

  1. Changed the numeric version number from 1000000 to 1000400, where the last three digits reflect the monotonically increasing edit number.

23 August 2022:

Welcome to (herald): pathname(\%0) This message is coming to you from your C-Kermit initialization file: pathname(~/.kermrc)

You can tell C-Kermit to "type /interpret hello.txt" and the
result will be something like:

Welcome to C-Kermit 10.0 OPEN SOURCE: Beta.05, 23 Aug 2022: /net/u/1/f/fdc/beta05/wermit This message is coming to you from your C-Kermit initialization file: /net/u/1/f/fdc/.kermrc

(~/beta05/) C-Kermit>show variable fullversion (fullversion) = 10.0.400 Beta.05 (~/beta05/) C-Kermit>echo (fullversion) (fullversion) = 10.0.400 Beta.05 (~/beta05/) C-Kermit>

Furthermore, the filenames of the tar and zip archives will be cku400.*, not cku10.0.* as they have been since 10.0 Beta.01, for conformity with all previous releases when they were cku300, cku301, cku302, etc). Of course "400" could be "401" or any higher number as development progresses. Also the tar and zip archive filenames will include the edit number, as they did before the first C-Kermit 10.0 Beta test.

19 August 2022:

I removed all the code that supported special version numbers for (in chronological order) Mac Kermit (circa 1985), Kermit/2 (for OS/2), and Kermit 95 (for MS Windows). From now all C-Kermits will identify themselves in the same way, for example:

C-Kermit 10.0 OPEN SOURCE: Beta.05, 19 Aug 2022, for NetBSD 9.2 (64-bit)

17 August 2022:

The second Beta test of C-Kermit for Windows (formerly known as Kermit 95) was released. This work was done by David Goodwin in New Zealand, and any changes he had to make to the non-Windows-specific modules will be incorporated into Beta.05.

Meanwhile more Beta.04 builds on platforms where it was tested previously would be most welcome: macOS (including old versions), HP-UX, MINIX, Solaris versions before 11, etc, not to mention platforms where it has not yet been tested at all: FreeBSD, OpenBSD, AIX, plus any discontinued OS's that are still running somewhere: IRIX, Tru64/Digital Unix, 4.xBSD, NeXTSTEP, System V, DG/UX, SCO, QNX, SINIX, SunOS, Xenix, etc).

jaltman commented 1 year ago

Overall this looks good but I would prefer if the whitespace errors were corrected before submission.

git rebase --whitespace=fix

For authorship please use

git commit --author="Kermit Project kermit@kermitproject.org"

At least for Frank's code drops.

Thank you for setting the author date (git commit --date) to the timestamp of the tarball.

Frank often fails to clean out his work files before he creates a tarball. In beta.05 for example there are

I remove these work files from the tree before I create the commit. Since we have a git repository prior versions can be extracted from that.

I have merged the commit with the above changes as 0c0c21f5bd29605a256360c749d699e11f105c18

dcantrell commented 1 year ago

Overall this looks good but I would prefer if the whitespace errors were corrected before submission.

git rebase --whitespace=fix

Noted.

For authorship please use

git commit --author="Kermit Project kermit@kermitproject.org"

I was pretty sure I changed that as well, but if I didn't then I forgot while also fixing the timestamp.

At least for Frank's code drops.

Thank you for setting the author date (git commit --date) to the timestamp of the tarball.

That just felt correct to do.

Frank often fails to clean out his work files before he creates a tarball. In beta.05 for example there are

* ckcnet-BEFORE-NONET-FIX.c

* ckuus7-beta02.c

* ckuus7-save.c

I remove these work files from the tree before I create the commit. Since we have a git repository prior versions can be extracted from that.

Noted, I will make sure to clean those up.

I have merged the commit with the above changes as 0c0c21f

Sounds good. I will prepare a PR for the next release after this one and continue forward.

Frank was also asking about my membership in both the organization and the project, he may reach out to you for some help.