Skip to content

Commit

Permalink
Merge pull request #213 from davidrg/ck-update
Browse files Browse the repository at this point in the history
Upgrade to C-Kermit 10 Beta.10
  • Loading branch information
davidrg authored Jul 3, 2023
2 parents 5231bc4 + fa25339 commit dff26f0
Show file tree
Hide file tree
Showing 25 changed files with 201 additions and 78 deletions.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@ Major features include:

To get the latest most stable release as well as other news and information,
visit the [C-Kermit for Windows Beta website](https://www.kermitproject.org/ckw10beta.html).
This software is currently based on C-Kermit version 10.0 Beta.09 of
9-MAY-2023 and is available under the 3-clause BSD license.
This software is currently based on C-Kermit version 10.0 Beta.10 of
3-JUL-2023 and is available under the 3-clause BSD license.

![Screenshot](doc/screenshot-w10.png)
![Screenshot](doc/screenshot-w11.png)

Requirements
------------
Expand Down
2 changes: 1 addition & 1 deletion doc/changes.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ containing the correct values.
* Kerberos V support has returned (Kerberos IV support can be built from source)
* GSSAPI authentication in the SSH client (requires MIT Kerberos for Windows,
see ssh-readme for more information)
* Updated to C-Kermit 10 Beta.09
* Updated to C-Kermit 10 Beta.10
* Updated to libssh 0.10.5
* Updated to OpenSSL 1.1.1u

Expand Down
Binary file added doc/screenshot-w11.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 3 additions & 6 deletions kermit/k95/README.TXT
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
C-KERMIT 10.0 DEVELOPMENT

C-Kermit 10.0 Beta.07 07 December 2022
C-Kermit 10.0 pre-Beta.10 25 June 2023

See this page for a brief summary of Beta.07:

https://www.kermitproject.org/ck10beta07.html

and the C-Kermit Change Log:
Various fixes and a great deal of "compliance" issues
addressed. For details see:

https://www.kermitproject.org/ckupdates.html

Expand Down
2 changes: 1 addition & 1 deletion kermit/k95/ck_des.c
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/*
C K _ D E S . C - libDES interface for Kermit 95"
Copyright (C) 1998, 2001, Trustees of Columbia University in the City of New
Copyright (C) 1998, 2023, Trustees of Columbia University in the City of New
York. The C-Kermit software may not be, in whole or in part, licensed or
sold for profit as a software product itself, nor may it be included in or
distributed with commercial products or otherwise distributed by commercial
Expand Down
23 changes: 21 additions & 2 deletions kermit/k95/ckcdeb.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

/*
For recent additions search below for "2021" and "2022" and "2023".
Most recent update: Fri May 5 15:32:58 2023
Most recent updates: Sat Jul 1 10:27:16 2023 (David Goodwin, fdc)
NOTE TO CONTRIBUTORS: This file, and all the other C-Kermit files, must be
compatible with C preprocessors that support only #ifdef, #else, #endif,
Expand Down Expand Up @@ -717,6 +717,9 @@
#ifndef NOFORWARDX
#define NOFORWARDX
#endif /* NOFORWARDX */
#ifndef NOURL /* 1 July 2023 for -DV7MIN, -DNOTCP, -DNONET, etc */
#define NOURL
#endif /* NOURL */
#endif /* NONET */

#ifdef IKSDONLY
Expand Down Expand Up @@ -1303,7 +1306,7 @@ extern int errno; /* fdc 1 November 2022 */
#endif /* OS2ORUNIX */
#endif /* UNIX */

#ifdef UNIX /* For items common to Win32 and UNIX */
#ifdef UNIX /* For items common to Win32 and UNIX */
#ifndef WIN32ORUNIX
#define WIN32ORUNIX
#endif /* WIN32ORUNIX */
Expand Down Expand Up @@ -5187,6 +5190,22 @@ struct zfnfp {
#endif /* OS2 */
#endif /* VMS */

/* Systems that support builtin variable "exedir", use getexedir() function */

#ifdef OS2
#define HAVE_VN_EXEDIR
#else /* def OS2 */
#ifdef UNIX
#define GETEXEDIR
#define HAVE_VN_EXEDIR
#else /* def UNIX */
#ifdef VMS
#define GETEXEDIR
#define HAVE_VN_EXEDIR
#endif /* def VMS */
#endif /* def UNIX [else] */
#endif /* def OS2 [else] */

/* LABELED FILE options bitmask */

#ifdef VMS /* For VMS */
Expand Down
12 changes: 9 additions & 3 deletions kermit/k95/ckcfnp.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
ckcfnp.h, new to C-Kermit 10.0 as of 23 March 2023.
Frank da Cruz
Most recent update: 3 May 2023
Most recent update: 27 June 2023 (locate_srv_dns())
Prototypes for functions that previously were not prototyped.
Used only for ANSI-C builds in which __STDC__ is defined.
Expand Down Expand Up @@ -30,14 +30,16 @@
#include ckcker.h was added 27 April 2023 because certain builds (like
"linux+ssl") were failing. ckcker.h defines data types and other symbols
referenced in this file. It should be included by every module before
including this one. But just in case there's an omission, including it
here too does no harm because ckcker.h protects itself against multiple
including this one. But just in case there's an omission, including it here
too does no harm because the ck*.h files protect themselves against multiple
inclusion. ckcdeb.h added 3 may 2023, because the mainname definition was
moved from here (where non-ansi builds would never see it) to ckcdeb.h.
ckuusr.h added 12 May 2023 for MINIX / ckucon.c / struct m[x,xx]tab.
*/
#include "ckcdeb.h"
#include "ckcker.h"
#include "ckucmd.h"
#include "ckuusr.h"

/* Prototype for main()/Main() */
MAINTYPE MAINNAME( int argc, char ** argv );
Expand Down Expand Up @@ -323,7 +325,9 @@ int keepalive( int, int );
int litcmd( char **, char **dest, int );
int lkup( char * );
#ifndef NOLOCAL
#ifndef NOTCPIP
int locate_srv_dns( char *, char *, char *, struct sockaddr **, int * );
#endif /* NOTCPIP */
#endif /* NOLOCAL */
int locate_txt_rr( char *, char *, char ** );
int lookup( struct keytab [], char *, int, int * );
Expand Down Expand Up @@ -413,7 +417,9 @@ int ttwait( int, int );
int ttxin( int, CHAR * );
int untabify( char *, char *, int );
int updslot( int );
#ifndef NOURL
int urlparse( char *, struct urldata * );
#endif /* NOURL */
int varval( char *, CK_OFF_T * );
int window( int );
int xarray( char * );
Expand Down
67 changes: 56 additions & 11 deletions kermit/k95/ckcftp.c
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

/* C K C F T P -- FTP Client for C-Kermit */

char *ckftpv = "FTP Client, 10.0.279, 16 Apr 2023";
char *ckftpv = "FTP Client, 10.0.280, 21 Jun 2023";

/*
Authors:
Expand Down Expand Up @@ -329,7 +329,7 @@ struct timezone {

#ifdef NT
#include "ckoreg.h"
#endif
#endif /* NT */

#ifndef INADDR_NONE /* 2010-03-29 */
#define INADDR_NONE -1
Expand Down Expand Up @@ -955,9 +955,62 @@ char * ftp_apw = NULL; /* Anonymous password */

/* Definitions and typedefs needed for prototypes */

#define sig_t my_sig_t
/*
#define sig_t my_sig_t

I don't understand the statement above, which has been in this code going
back to at least C-Kermit 8.0, because my_sig_t is not defined anywhere.
And yet sig_t is used below with no complaint, no matter whether the the
above #define is commented out or not. However, if I #define sig_t SIGTYP
(which is what it should be according to ckcdeb.h), all hell breaks loose.
Same if I replace all references to sig_t by SIGTYPE. On the other hand, if
I remove the sig_t definition, there is no complaint, so where is the sig_t
definition coming from? I find this in Ubuntu signal.h:

<comment> 4.4 BSD uses the name 'sig_t' for this. </comment>
typedef __sighandler_t sig_t;

In NetBSD I find this in sys/signal.h:

typedef void (*sig_t)(int);

Can we really count on sig_t being defined in some nook or cranny
on every single Unix, VMS, and Windows system?

Jeff Altman says to use sighandler_t, which is ok on Ubuntu but
not on (say) NetBSD. So I can't do this:

#ifndef sig_t
#define sig_t sighandler_t
#endif

I think the only alternative is to leave my_sig_t undefined and then
see who squawks. Since the previous 'my_sig_t' definition apparently
had no effect, I'm hoping there will be no change in behavior after
commenting it out. -fdc Fri Jun 23 06:53:23 2023

P.S. All this is aside from the fact that signal() has long since been
"deprecated" in favor of sigaction(), defined in POSIX.1-1988; see:

https://man7.org/linux/man-pages/man2/signal.2.html
https://pubs.opengroup.org/onlinepubs/9699919799/functions/sigaction.html

but C-Kermit can't be switched over because it has to build and run on
pre-POSIX operating systems that don't have sigaction(0) (despite the fact
that C-Kermit's ckupty.c function ptyint_vhangup() calls it... how did
*that* happen?).
*/
#define sigtype SIGTYP

#ifdef CK_ANSIC
typedef sigtype (*sig_t)(int);
#else
typedef sigtype (*sig_t)();
#endif /* CK_ANSIC */

/* Made this global static -fdc 21 June 2023 */
/* It's used in many ckcftp.c routines but wasn't declared in all of them */
static sig_t oldintr;

/* Prototypes for static functions defined in ckcftp.c */
#ifdef CK_ANSIC
Expand Down Expand Up @@ -9977,7 +10030,6 @@ ftpcmd(cmd,arg,lcs,rcs,vbm) char * cmd, * arg; int lcs, rcs, vbm;
{
char * s = NULL;
int r = 0, x = 0, fc = 0, len = 0, cmdlen = 0, q = -1;
sig_t oldintr;

if (ftp_deb) /* DEBUG */
vbm = 1;
Expand Down Expand Up @@ -11169,7 +11221,6 @@ getreply(expecteof,lcs,rcs,vbm,fc) int expecteof, lcs, rcs, vbm, fc;
int count = 0;
int auth = 0;
int originalcode = 0, continuation = 0;
sig_t oldintr;
int pflag = 0;
char *pt = pasv;
char ibuf[FTP_BUFSIZ], obuf[FTP_BUFSIZ]; /* (these are pretty big...) */
Expand Down Expand Up @@ -13845,7 +13896,6 @@ pscancel(sig) int sig; {
static VOID
pswitch(flag) int flag; {
extern int proxy;
sig_t oldintr;
static struct comvars {
int connect;
char name[MAXHOSTNAMELEN];
Expand Down Expand Up @@ -13984,7 +14034,6 @@ cancelpt(sig) int sig;

void
proxtrans(cmd, local, remote, unique) char *cmd, *local, *remote; int unique; {
sig_t oldintr;
int secndflag = 0, prox_type, nfnd;
char *cmd2;
#ifdef BSDSELECT
Expand Down Expand Up @@ -17734,7 +17783,6 @@ srp_decode (private, in, out, len)
static int
ftp_mput(argc, argv) int argc; char **argv; {
register int i;
sig_t oldintr;
int ointer;
char *tp;
sigtype mcancel();
Expand Down Expand Up @@ -17854,7 +17902,6 @@ ftp_mput(argc, argv) int argc; char **argv; {
static int
ftp_mget(argc, argv) int argc; char **argv; {
int rc = -1;
sig_t oldintr;
int ointer;
char *cp, *tp, *tp2, tmpbuf[CKMAXPATH];
sigtype mcancel();
Expand Down Expand Up @@ -17914,7 +17961,6 @@ ftp_mget(argc, argv) int argc; char **argv; {

static int
mdelete(argc, argv) int argc; char **argv; {
sig_t oldintr;
int ointer;
char *cp;
sigtype mcancel();
Expand Down Expand Up @@ -17955,7 +18001,6 @@ mdelete(argc, argv) int argc; char **argv; {

static int
mls(argc, argv) int argc; char **argv; {
sig_t oldintr;
int ointer, i;
char *cmd, mode[1], *dest;
sigtype mcancel();
Expand Down
26 changes: 10 additions & 16 deletions kermit/k95/ckcmai.c
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
/* ckcmai.c - Main program for C-Kermit plus some miscellaneous functions */

#define EDITDATE "09 May 2023" /* Last edit date dd mmm yyyy */
#define EDITNDATE "20230509" /* Keep them in sync */
/* Tue May 9 14:03:56 2023 */
#define EDITDATE "03 Jul 2023" /* Last edit date dd mmm yyyy */
#define EDITNDATE "20230703" /* Keep them in sync */
/* Mon Jul 3 07:11:13 2023 */
/*
As of 27 September 2022 BETATEST is defined in ckcdeb.h, not here,
because it's also used in other modules.
Expand Down Expand Up @@ -54,15 +54,15 @@ char * ck_cryear = "2023"; /* C-Kermit copyright year */
/*
Temporary from July 2022...
the Windows version is currently seeing monthly beta releases.
As 27 September 2022 the Windows Beta is based on C-Kermit 10.0 Beta.05.
As 24 June 2023 the Windows Beta is based on C-Kermit 10.0 Beta.10.
The Windows and non-Windows Betas happen at different times.
*/
char *ck_s_test = "Beta";
char *ck_s_tver = "09/Windows-05";
char *ck_s_tver = "10/Windows-05";
#else
/* Can also use "Pre-Beta" here for in between "daily" uploads */
char *ck_s_test = "Beta"; /* "Dev","Alpha","Beta","RC", or "" */
char *ck_s_tver = "09"; /* Test version number */
char *ck_s_test = "Beta"; /* "Dev","Alpha","pre-Beta", "Beta","RC", or "" */
char *ck_s_tver = "10"; /* Test version number */
#endif /* OS2 */
#else /* BETATEST */
char *ck_s_test = ""; /* Not development */
Expand Down Expand Up @@ -209,6 +209,7 @@ char *copyright[] = {
#endif /* OS2 */

#ifdef CK_AUTHENTICATION
" ",
"Portions Copyright (C) 1990, Massachusetts Institute of Technology.",
#ifdef CK_ENCRYPTION
"Portions Copyright (C) 1991, 1993 Regents of the University of California.",
Expand Down Expand Up @@ -1630,16 +1631,9 @@ cc_clean(); /* This can't be right? */
#endif /* NOCCTRAP */

#ifdef TIMEH
#ifdef MULTINET /*AGN 27-Oct-2021 time.h and Multinet clash*/
/* Under Multinet, the 5th parameter to select() */
/* is a "void" and not a "struct timeval", so */
/* use the Multinet include file instead */
#include "multinet_root:[multinet.include.sys]time.h"
#else
/* This had to be added for NetBSD 6.1 - it might have "effects" elsewhere */
/* Tue Sep 3 17:03:42 2013 */
#include <time.h>
#endif /* MULTINET */
#endif /* TIMEH */

#include "ckcfnp.h" /* Prototypes (must be last) */
Expand Down Expand Up @@ -3154,9 +3148,9 @@ MAINNAME( argc, argv ) int argc; char **argv;
h = homepath();
if (h) ckstrncpy(homedirpath,h,CKMAXPATH);
}
#ifdef UNIX
#ifdef GETEXEDIR
getexedir(); /* Compute exedir variable */
#endif /* UNIX */
#endif /* def GETEXEDIR */

#ifdef CKSYSLOG
#ifdef SYSLOGLEVEL
Expand Down
4 changes: 4 additions & 0 deletions kermit/k95/ckcnet.c
Original file line number Diff line number Diff line change
Expand Up @@ -409,6 +409,10 @@ extern char ttname[];
#ifdef NT
extern int winsock_version;
char * GetLocalUser(); /* defined in ckotio.c */
/* The NT 3.50 SDK defines try as __try */
#ifdef try
#undef try
#endif
#endif /* NT */

#ifdef CK_AUTHENTICATION
Expand Down
6 changes: 5 additions & 1 deletion kermit/k95/ckcnet.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
Author: Frank da Cruz <fdc@columbia.edu>
Columbia University Academic Information Systems, New York City.
Copyright (C) 1985, 2022,
Copyright (C) 1985, 2023,
Trustees of Columbia University in the City of New York.
All rights reserved. See the C-Kermit COPYING.TXT file or the
copyright text in the ckcmai.c module for disclaimer and permissions.
Expand Down Expand Up @@ -926,6 +926,10 @@ unsigned long inet_network();
#include "multinet_root:[multinet.include.netinet]in.h"
#include "multinet_root:[multinet.include.arpa]inet.h"
#include "multinet_root:[multinet.include.sys]ioctl.h"
#include "multinet_root:[multinet.include.vms]ucx$inetdef.h"
#include "multinet_root:[multinet.include.sys]time.h"
/*AGN 08-Jun-2023 Multinet supplies inet_aton()*/
#define NO_DCL_INET_ATON

#ifdef COMMENT
/*
Expand Down
Loading

0 comments on commit dff26f0

Please sign in to comment.