Commit 492f22abc1c8f0f708f177ec6bfe0bcb7447449f

Authored by Perry Werneck
1 parent 2d72ed5d

Adding option to disable automatic download of the CRL.

src/core/properties/boolean.c
... ... @@ -45,6 +45,13 @@
45 45 return hSession->starting != 0;
46 46 }
47 47  
  48 + void lib3270_disable_crl_download(H3270 *hSession)
  49 + {
  50 +#ifdef SSL_ENABLE_CRL_CHECK
  51 + hSession->ssl.crl.download = 0;
  52 +#endif // SSL_ENABLE_CRL_CHECK
  53 + }
  54 +
48 55 const LIB3270_INT_PROPERTY * lib3270_get_boolean_properties_list(void)
49 56 {
50 57  
... ...
src/core/session.c
... ... @@ -410,6 +410,10 @@ H3270 * lib3270_session_new(const char *model)
410 410 hSession = lib3270_malloc(sizeof(H3270));
411 411 hSession->id = 0;
412 412  
  413 +#ifdef SSL_ENABLE_CRL_CHECK
  414 + hSession->ssl.crl.download = 1;
  415 +#endif // SSL_ENABLE_CRL_CHECK
  416 +
413 417 if(!default_session)
414 418 default_session = hSession;
415 419  
... ...
src/include/internals.h
... ... @@ -147,15 +147,6 @@ LIB3270_INTERNAL const char * build_rpq_revision;
147 147 LIB3270_INTERNAL Boolean dbcs;
148 148 #endif /*]*/
149 149  
150   -
151   -/**
152   - * @brief toggle names
153   - */ /*
154   -struct toggle_name {
155   - const char *name;
156   - int index;
157   -}; */
158   -
159 150 /// @brief State macros
160 151 #define PCONNECTED lib3270_pconnected(hSession)
161 152 #define HALF_CONNECTED lib3270_half_connected(hSession)
... ... @@ -188,14 +179,6 @@ struct toggle_name {
188 179 #define PN ((XtPointer) NULL)
189 180 #define Replace(var, value) { lib3270_free(var); var = (value); };
190 181  
191   -/// @brief Configuration change masks.
192   -//#define NO_CHANGE 0x0000 /// @brief no change
193   -// #define MODEL_CHANGE 0x0001 /// @brief screen dimensions changed
194   -//#define FONT_CHANGE 0x0002 /// @brief emulator font changed
195   -//#define COLOR_CHANGE 0x0004 /// @brief color scheme or 3278/9 mode changed
196   -//#define SCROLL_CHANGE 0x0008 /// @brief scrollbar snapped on or off
197   -//#define CHARSET_CHANGE 0x0010 /// @brief character set changed
198   -// #define ALL_CHANGE 0xffff /// @brief everything changed
199 182  
200 183 /* Portability macros */
201 184  
... ... @@ -218,14 +201,6 @@ struct toggle_name {
218 201 #define DFT_BUF (4 * 1024)
219 202 #endif /*]*/
220 203  
221   -/* DBCS Preedit Types */ /*
222   -#if defined(X3270_DBCS)
223   - #define PT_ROOT "Root"
224   - #define PT_OVER_THE_SPOT "OverTheSpot"
225   - #define PT_OFF_THE_SPOT "OffTheSpot"
226   - #define PT_ON_THE_SPOT "OnTheSpot"
227   -#endif */
228   -
229 204 /**
230 205 * @brief input key type
231 206 */
... ... @@ -690,6 +665,7 @@ struct _h3270
690 665 #ifdef SSL_ENABLE_CRL_CHECK
691 666 struct
692 667 {
  668 + char download; ///< @brief Non zero to download CRL.
693 669 char * prefer; ///< @brief Prefered protocol for CRL.
694 670 char * url; ///< @brief URL for CRL download.
695 671 X509_CRL * cert; ///< @brief Loaded CRL (can be null).
... ...
src/include/lib3270/properties.h
... ... @@ -212,6 +212,14 @@
212 212 */
213 213 LIB3270_EXPORT const LIB3270_UINT_PROPERTY * lib3270_unsigned_property_get_by_name(const char *name);
214 214  
  215 + /**
  216 + * @brief Disable automatic download of the CRL.
  217 + *
  218 + * @param hSession Session handle.
  219 + *
  220 + */
  221 + LIB3270_EXPORT void lib3270_disable_crl_download(H3270 *hSession);
  222 +
215 223 #ifdef __cplusplus
216 224 }
217 225 #endif
... ...
src/ssl/crl.c
... ... @@ -247,32 +247,40 @@ int lib3270_crl_new_from_dist_points(H3270 *hSession, void *ssl_error, CRL_DIST_
247 247 hSession->ssl.crl.url = NULL;
248 248 }
249 249  
250   - if(hSession->ssl.crl.prefer && *hSession->ssl.crl.prefer)
  250 + //
  251 + // Downloading CRLs
  252 + //
  253 + if(hSession->ssl.crl.download)
251 254 {
252   - size_t length = strlen(hSession->ssl.crl.prefer);
253   -
254   - for(ix = 0; ix < uris->length; ix++)
  255 + if(hSession->ssl.crl.prefer && *hSession->ssl.crl.prefer)
255 256 {
256   - if(!strncmp(uris->str[ix],hSession->ssl.crl.prefer,length))
  257 + size_t length = strlen(hSession->ssl.crl.prefer);
  258 +
  259 + for(ix = 0; ix < uris->length; ix++)
257 260 {
258   - trace_ssl(hSession,"Trying preferred URL %s\n",uris->str[ix]);
259   - if(lib3270_crl_new_from_url(hSession, ssl_error, uris->str[ix]) == 0)
260   - return 0;
  261 + if(!strncmp(uris->str[ix],hSession->ssl.crl.prefer,length))
  262 + {
  263 + trace_ssl(hSession,"Trying preferred URL %s\n",uris->str[ix]);
  264 + if(lib3270_crl_new_from_url(hSession, ssl_error, uris->str[ix]) == 0)
  265 + return 0;
  266 + }
  267 +
261 268 }
262 269  
263 270 }
264 271  
265   - }
  272 + // Can't load, try all of them.
  273 + for(ix = 0; ix < uris->length; ix++)
  274 + {
  275 + trace_ssl(hSession,"Trying CRL from %s\n",uris->str[ix]);
  276 + if(lib3270_crl_new_from_url(hSession, ssl_error, uris->str[ix]) == 0)
  277 + return 0;
  278 + }
266 279  
267   - // Can't load, try all of them.
268   - for(ix = 0; ix < uris->length; ix++)
269   - {
270   - trace_ssl(hSession,"Trying CRL from %s\n",uris->str[ix]);
271   - if(lib3270_crl_new_from_url(hSession, ssl_error, uris->str[ix]) == 0)
272   - return 0;
  280 + return -1;
273 281 }
274 282  
275   - return -1;
  283 + return 0;
276 284  
277 285 }
278 286  
... ...