From b7135a318aee5ae41e7f17ab2b8e23e60be4be2e Mon Sep 17 00:00:00 2001 From: deuce <> Date: Sat, 5 Apr 2008 07:46:47 +0000 Subject: [PATCH] Make requirement for Cryptlib optional. Does not disable SSH options in menus, just makes the binary NEVER work with Cryptlib. --- src/syncterm/GNUmakefile | 6 ++++++ src/syncterm/conn.c | 9 +++++++++ src/syncterm/objects.mk | 1 - src/syncterm/st_crypt.c | 18 +++++++++++++++++- src/syncterm/st_crypt.h | 2 ++ 5 files changed, 34 insertions(+), 2 deletions(-) diff --git a/src/syncterm/GNUmakefile b/src/syncterm/GNUmakefile index e3bf791de2..8cfa01b3a5 100644 --- a/src/syncterm/GNUmakefile +++ b/src/syncterm/GNUmakefile @@ -50,6 +50,12 @@ ifeq ($(os),sunos) # Solaris CFLAGS += -DNEED_CFMAKERAW endif +ifdef WITHOUT_CRYPTLIB + CFLAGS += -DWITHOUT_CRYPTLIB +else + OBJS += $(MTOBJODIR)$(DIRSEP)ssh$(OFILE) +endif + ifdef STATIC_CRYPTLIB CFLAGS += -DSTATIC_CRYPTLIB LDFLAGS += -lz diff --git a/src/syncterm/conn.c b/src/syncterm/conn.c index 3f14b195f0..7bdd2fcede 100644 --- a/src/syncterm/conn.c +++ b/src/syncterm/conn.c @@ -300,9 +300,18 @@ int conn_connect(struct bbslist *bbs) conn_api.close=raw_close; break; case CONN_TYPE_SSH: +#ifdef WITHOUT_CRYPTLIB + init_uifc(TRUE, TRUE); + uifcmsg("SSH inoperative", "`Compiled without cryptlib`\n\n" + "This binary was compiled without Cryptlib,\n" + "which is required for SSH support." + ); + return(-1); +#else conn_api.connect=ssh_connect; conn_api.close=ssh_close; break; +#endif case CONN_TYPE_SERIAL: conn_api.connect=modem_connect; conn_api.close=serial_close; diff --git a/src/syncterm/objects.mk b/src/syncterm/objects.mk index e0324c267e..57e24d106a 100644 --- a/src/syncterm/objects.mk +++ b/src/syncterm/objects.mk @@ -4,7 +4,6 @@ OBJS = \ $(MTOBJODIR)$(DIRSEP)filepick$(OFILE) \ $(MTOBJODIR)$(DIRSEP)fonts$(OFILE) \ $(MTOBJODIR)$(DIRSEP)rlogin$(OFILE) \ - $(MTOBJODIR)$(DIRSEP)ssh$(OFILE) \ $(MTOBJODIR)$(DIRSEP)telnet_io$(OFILE) \ $(MTOBJODIR)$(DIRSEP)modem$(OFILE) \ $(MTOBJODIR)$(DIRSEP)conn_telnet$(OFILE) \ diff --git a/src/syncterm/st_crypt.c b/src/syncterm/st_crypt.c index a81c107faf..105935b773 100644 --- a/src/syncterm/st_crypt.c +++ b/src/syncterm/st_crypt.c @@ -7,9 +7,23 @@ #include "st_crypt.h" -struct crypt_funcs cl; int crypt_loaded=0; +#ifdef WITHOUT_CRYPTLIB + +int init_crypt() +{ + return(-1); +} + +void exit_crypt() +{ +} + +#else + +struct crypt_funcs cl; + int init_crypt(void) { #ifdef STATIC_CRYPTLIB @@ -159,3 +173,5 @@ void exit_crypt(void) if(crypt_loaded) cl.End(); } + +#endif diff --git a/src/syncterm/st_crypt.h b/src/syncterm/st_crypt.h index 70b856c9bb..23c6eca65b 100644 --- a/src/syncterm/st_crypt.h +++ b/src/syncterm/st_crypt.h @@ -3,6 +3,7 @@ #ifndef _ST_CRYPT_H_ #define _ST_CRYPT_H_ +#ifndef WITHOUT_CRYPTLIB #include"cryptlib.h" #if defined(_MSC_VER) @@ -45,6 +46,7 @@ struct crypt_funcs { }; #undef HACK_HACK_HACK +#endif extern struct crypt_funcs cl; extern int crypt_loaded; -- GitLab