Commit 40ee5f3f4065bc4fdb16fc48c74a1ffdea64f982
1 parent
38620986
Exists in
master
and in
3 other branches
Adding host & crl default settings.
Showing
6 changed files
with
61 additions
and
18 deletions
Show diff stats
configure.ac
@@ -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); |