Commit 40ee5f3f4065bc4fdb16fc48c74a1ffdea64f982

Authored by Perry Werneck
1 parent 38620986

Adding host & crl default settings.

@@ -344,6 +344,8 @@ if test "$app_cv_self_signed_certs" == "yes"; then @@ -344,6 +344,8 @@ if test "$app_cv_self_signed_certs" == "yes"; then
344 AC_DEFINE(SSL_ENABLE_CRL_CHECK) 344 AC_DEFINE(SSL_ENABLE_CRL_CHECK)
345 fi 345 fi
346 346
  347 +AC_ARG_WITH([default-crl], [AS_HELP_STRING([--with-default-crl], [Set lib3270 default crl url])], [ AC_DEFINE_UNQUOTED(LIB3270_DEFAULT_CRL,"$withval") ],[ AC_MSG_NOTICE(No default crl)])
  348 +
347 dnl --------------------------------------------------------------------------- 349 dnl ---------------------------------------------------------------------------
348 dnl Check for pic 350 dnl Check for pic
349 dnl --------------------------------------------------------------------------- 351 dnl ---------------------------------------------------------------------------
@@ -387,6 +389,8 @@ AC_ARG_WITH([sdk-version], [AS_HELP_STRING([--with-sdk-version], [Setup library @@ -387,6 +389,8 @@ AC_ARG_WITH([sdk-version], [AS_HELP_STRING([--with-sdk-version], [Setup library
387 AC_DEFINE(LIB3270_SDK_VERSION,$app_cv_sdkversion) 389 AC_DEFINE(LIB3270_SDK_VERSION,$app_cv_sdkversion)
388 AC_SUBST(LIB3270_SDK_VERSION,$app_cv_sdkversion) 390 AC_SUBST(LIB3270_SDK_VERSION,$app_cv_sdkversion)
389 391
  392 +AC_ARG_WITH([default-host], [AS_HELP_STRING([--with-default-host], [Set lib3270 default host url])], [ AC_DEFINE_UNQUOTED(LIB3270_DEFAULT_HOST,"$withval") ],[ AC_MSG_NOTICE(No default host)])
  393 +
390 dnl --------------------------------------------------------------------------- 394 dnl ---------------------------------------------------------------------------
391 dnl Check for headers 395 dnl Check for headers
392 dnl --------------------------------------------------------------------------- 396 dnl ---------------------------------------------------------------------------
src/include/config.h.in
@@ -31,10 +31,15 @@ @@ -31,10 +31,15 @@
31 31
32 #define LIB3270_CONFIG_INCLUDED 1 32 #define LIB3270_CONFIG_INCLUDED 1
33 33
  34 + /* Version info */
34 #undef PACKAGE_NAME 35 #undef PACKAGE_NAME
35 #undef PACKAGE_VERSION 36 #undef PACKAGE_VERSION
36 #undef PACKAGE_RELEASE 37 #undef PACKAGE_RELEASE
37 38
  39 + /* Defaults */
  40 + #undef LIB3270_DEFAULT_HOST
  41 +
  42 + /* Libraries */
38 #undef HAVE_GNUC_VISIBILITY 43 #undef HAVE_GNUC_VISIBILITY
39 #undef HAVE_LIBINTL 44 #undef HAVE_LIBINTL
40 #undef HAVE_GETADDRINFO 45 #undef HAVE_GETADDRINFO
@@ -50,6 +55,7 @@ @@ -50,6 +55,7 @@
50 #undef HAVE_LIBSSL 55 #undef HAVE_LIBSSL
51 #undef SSL_ALLOW_SELF_SIGNED_CERT 56 #undef SSL_ALLOW_SELF_SIGNED_CERT
52 #undef SSL_ENABLE_CRL_CHECK 57 #undef SSL_ENABLE_CRL_CHECK
  58 + #undef LIB3270_DEFAULT_CRL
53 59
54 /* Windows Options */ 60 /* Windows Options */
55 #ifdef WIN32 61 #ifdef WIN32
src/lib3270/host.c
@@ -232,12 +232,6 @@ static void update_host(H3270 *h) @@ -232,12 +232,6 @@ static void update_host(H3270 *h)
232 232
233 } 233 }
234 234
235 -LIB3270_EXPORT const char * lib3270_get_url(H3270 *hSession)  
236 -{  
237 - CHECK_SESSION_HANDLE(hSession);  
238 - return hSession->host.full;  
239 -}  
240 -  
241 LIB3270_EXPORT int lib3270_set_luname(H3270 *hSession, const char *luname) 235 LIB3270_EXPORT int lib3270_set_luname(H3270 *hSession, const char *luname)
242 { 236 {
243 FAIL_IF_ONLINE(hSession); 237 FAIL_IF_ONLINE(hSession);
@@ -245,11 +239,37 @@ LIB3270_EXPORT int lib3270_set_luname(H3270 *hSession, const char *luname) @@ -245,11 +239,37 @@ LIB3270_EXPORT int lib3270_set_luname(H3270 *hSession, const char *luname)
245 return 0; 239 return 0;
246 } 240 }
247 241
  242 +LIB3270_EXPORT const char * lib3270_get_url(H3270 *hSession)
  243 +{
  244 + CHECK_SESSION_HANDLE(hSession);
  245 +
  246 + if(hSession->host.full)
  247 + return hSession->host.full;
  248 +
  249 +#ifdef LIB3270_DEFAULT_HOST
  250 + return LIB3270_DEFAULT_HOST;
  251 +#else
  252 + return getenv("LIB3270_DEFAULT_HOST");
  253 +#endif // LIB3270_DEFAULT_HOST
  254 +
  255 +}
  256 +
248 LIB3270_EXPORT int lib3270_set_url(H3270 *h, const char *n) 257 LIB3270_EXPORT int lib3270_set_url(H3270 *h, const char *n)
249 { 258 {
250 FAIL_IF_ONLINE(h); 259 FAIL_IF_ONLINE(h);
251 260
252 - if(n && n != h->host.full) 261 + if(!n)
  262 + {
  263 +#ifdef LIB3270_DEFAULT_HOST
  264 + n = LIB3270_DEFAULT_HOST;
  265 +#else
  266 + n = getenv("LIB3270_DEFAULT_HOST");
  267 + if(!n)
  268 + return errno = EINVAL;
  269 +#endif // LIB3270_DEFAULT_HOST
  270 + }
  271 +
  272 + if(!h->host.full || strcmp(n,h->host.full))
253 { 273 {
254 static const struct _sch 274 static const struct _sch
255 { 275 {
src/lib3270/session.c
@@ -320,14 +320,6 @@ static void lib3270_session_init(H3270 *hSession, const char *model, const char @@ -320,14 +320,6 @@ static void lib3270_session_init(H3270 *hSession, const char *model, const char
320 hSession->unlock_delay_ms = 350; // 0.35s after last unlock 320 hSession->unlock_delay_ms = 350; // 0.35s after last unlock
321 hSession->pointer = (unsigned short) LIB3270_POINTER_LOCKED; 321 hSession->pointer = (unsigned short) LIB3270_POINTER_LOCKED;
322 322
323 -#ifdef SSL_ENABLE_CRL_CHECK  
324 - char *env = getenv("LIB3270_DEFAULT_CRL");  
325 - if(env)  
326 - {  
327 - hSession->ssl.crl = strdup(env);  
328 - }  
329 -#endif // SSL_ENABLE_CRL_CHECK  
330 -  
331 // CSD 323 // CSD
332 for(f=0;f<4;f++) 324 for(f=0;f<4;f++)
333 hSession->csd[f] = hSession->saved_csd[f] = LIB3270_ANSI_CSD_US; 325 hSession->csd[f] = hSession->saved_csd[f] = LIB3270_ANSI_CSD_US;
src/lib3270/ssl/linux/getcrl.c
@@ -47,6 +47,7 @@ @@ -47,6 +47,7 @@
47 #endif // HAVE_LDAP 47 #endif // HAVE_LDAP
48 48
49 #include "../../private.h" 49 #include "../../private.h"
  50 +#include <trace_dsc.h>
50 #include <errno.h> 51 #include <errno.h>
51 #include <lib3270.h> 52 #include <lib3270.h>
52 53
@@ -97,6 +98,24 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) @@ -97,6 +98,24 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message)
97 { 98 {
98 X509_CRL * crl = NULL; 99 X509_CRL * crl = NULL;
99 100
  101 + if(!hSession->ssl.crl)
  102 + {
  103 +#ifdef LIB3270_DEFAULT_CRL
  104 + hSession->ssl.crl = strdup(LIB3270_DEFAULT_CRL);
  105 +#else
  106 + char *env = getenv("LIB3270_DEFAULT_CRL");
  107 + if(env)
  108 + hSession->ssl.crl = strdup(env);
  109 +#endif // LIB3270_DEFAULT_CRL
  110 + }
  111 +
  112 + if(!hSession->ssl.crl)
  113 + {
  114 + return NULL;
  115 + }
  116 +
  117 + trace_ssl(hSession, "crl=%s",hSession->ssl.crl);
  118 +
100 if(strncasecmp(hSession->ssl.crl,"file://",7) == 0) 119 if(strncasecmp(hSession->ssl.crl,"file://",7) == 0)
101 { 120 {
102 lib3270_autoptr(FILE) hCRL = fopen(hSession->ssl.crl+7,"r"); 121 lib3270_autoptr(FILE) hCRL = fopen(hSession->ssl.crl+7,"r");
src/lib3270/testprogram/testprogram.c
@@ -11,16 +11,18 @@ int main(int numpar, char *param[]) @@ -11,16 +11,18 @@ int main(int numpar, char *param[])
11 { 11 {
12 H3270 * h; 12 H3270 * h;
13 int rc = 0; 13 int rc = 0;
14 - const char * url = getenv("LIB3270_DEFAULT_HOST");  
15 -  
16 14
17 h = lib3270_session_new(""); 15 h = lib3270_session_new("");
18 printf("3270 session %p created\n]",h); 16 printf("3270 session %p created\n]",h);
19 17
  18 + // lib3270_set_url(h,url ? url : "tn3270://fandezhi.efglobe.com");
  19 +
  20 + if(lib3270_set_url(h,NULL))
  21 + lib3270_set_url(h,"tn3270://fandezhi.efglobe.com");
  22 +
20 // lib3270_set_toggle(h,LIB3270_TOGGLE_DS_TRACE,1); 23 // lib3270_set_toggle(h,LIB3270_TOGGLE_DS_TRACE,1);
21 lib3270_set_toggle(h,LIB3270_TOGGLE_SSL_TRACE,1); 24 lib3270_set_toggle(h,LIB3270_TOGGLE_SSL_TRACE,1);
22 25
23 - lib3270_set_url(h,url ? url : "tn3270://fandezhi.efglobe.com");  
24 rc = lib3270_connect(h,120); 26 rc = lib3270_connect(h,120);
25 27
26 printf("\nConnect %s exits with rc=%d\n",lib3270_get_url(h),rc); 28 printf("\nConnect %s exits with rc=%d\n",lib3270_get_url(h),rc);