diff --git a/lib3270.cbp b/lib3270.cbp
index 67cb45d..e459065 100644
--- a/lib3270.cbp
+++ b/lib3270.cbp
@@ -92,6 +92,9 @@
+
+
+
@@ -265,6 +268,9 @@
+
+
+
diff --git a/src/core/keyboard/kybd.c b/src/core/keyboard/kybd.c
index a3c7dfd..44fd840 100644
--- a/src/core/keyboard/kybd.c
+++ b/src/core/keyboard/kybd.c
@@ -2230,14 +2230,6 @@ int kybd_prime(H3270 *hSession)
}
#endif /*]*/
-LIB3270_EXPORT LIB3270_KEYBOARD_LOCK_STATE lib3270_get_keyboard_lock_state(H3270 *hSession)
-{
- if(check_online_session(hSession))
- return LIB3270_KL_NOT_CONNECTED;
-
- return (LIB3270_KEYBOARD_LOCK_STATE) hSession->kybdlock;
-}
-
LIB3270_EXPORT LIB3270_KEYBOARD_LOCK_STATE lib3270_wait_for_keyboard_unlock(H3270 *hSession, int seconds)
{
time_t end = time(0)+seconds;
@@ -2260,7 +2252,3 @@ LIB3270_EXPORT LIB3270_KEYBOARD_LOCK_STATE lib3270_wait_for_keyboard_unlock(H327
return (LIB3270_KEYBOARD_LOCK_STATE) hSession->kybdlock;
}
-LIB3270_EXPORT void lib3270_set_lock_on_operator_error(H3270 *hSession, int enable)
-{
- hSession->oerr_lock = (enable ? 1 : 0);
-}
diff --git a/src/core/keyboard/properties.c b/src/core/keyboard/properties.c
new file mode 100644
index 0000000..1e79740
--- /dev/null
+++ b/src/core/keyboard/properties.c
@@ -0,0 +1,64 @@
+/*
+ * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270
+ * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a
+ * aplicativos mainframe. Registro no INPI sob o nome G3270. Registro no INPI sob o nome G3270.
+ *
+ * Copyright (C) <2008>
+ *
+ * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob
+ * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela
+ * Free Software Foundation.
+ *
+ * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER
+ * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO
+ * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para
+ * obter mais detalhes.
+ *
+ * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este
+ * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin
+ * St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Este programa está nomeado como - e possui - linhas de código.
+ *
+ * Contatos:
+ *
+ * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
+ * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
+ *
+ */
+
+#include
+#include
+#include
+
+LIB3270_EXPORT LIB3270_KEYBOARD_LOCK_STATE lib3270_get_keyboard_lock_state(H3270 *hSession)
+{
+ if(check_online_session(hSession))
+ return LIB3270_KL_NOT_CONNECTED;
+
+ return (LIB3270_KEYBOARD_LOCK_STATE) hSession->kybdlock;
+}
+
+LIB3270_EXPORT int lib3270_set_lock_on_operator_error(H3270 *hSession, int enable)
+{
+ hSession->oerr_lock = (enable ? 1 : 0);
+ return 0;
+}
+
+int lib3270_get_lock_on_operator_error(H3270 *hSession)
+{
+ return (int) hSession->oerr_lock;
+}
+
+LIB3270_EXPORT int lib3270_set_unlock_delay(H3270 *hSession, unsigned int delay)
+{
+ hSession->unlock_delay = (delay == 0 ? 0 : 1);
+ hSession->unlock_delay_ms = (unsigned short) delay;
+ return 0;
+}
+
+LIB3270_EXPORT unsigned int lib3270_get_unlock_delay(H3270 *hSession)
+{
+ return (unsigned int) hSession->unlock_delay_ms;
+}
+
diff --git a/src/core/properties.c b/src/core/properties.c
index 651c8ed..b81c91a 100644
--- a/src/core/properties.c
+++ b/src/core/properties.c
@@ -38,10 +38,6 @@
#include
#include
-#if defined(HAVE_LIBSSL)
- #include
-#endif
-
static int lib3270_get_connection_state_as_int(H3270 *hSession)
{
return (int) lib3270_get_connection_state(hSession);
@@ -178,6 +174,13 @@
NULL // Set value.
},
+ {
+ "oerrlock", // Property name.
+ N_( "Lock keyboard on operator error" ), // Property description.
+ lib3270_get_lock_on_operator_error, // Get value.
+ lib3270_set_lock_on_operator_error // Set value.
+ },
+
/*
{
"", // Property name.
@@ -342,64 +345,6 @@
return lib3270_get_revision();
}
- #pragma GCC diagnostic push
- #pragma GCC diagnostic ignored "-Wunused-parameter"
- const char * lib3270_get_crl_url(H3270 *hSession)
- {
-#ifdef SSL_ENABLE_CRL_CHECK
- if(hSession->ssl.crl.url)
- return hSession->ssl.crl.url;
-
-#ifdef SSL_DEFAULT_CRL_URL
- return SSL_DEFAULT_CRL_URL;
-#else
- return getenv("LIB3270_DEFAULT_CRL");
-#endif // SSL_DEFAULT_CRL_URL
-
-#else
- errno = ENOTSUP;
- return "";
-#endif
- }
- #pragma GCC diagnostic pop
-
- #pragma GCC diagnostic push
- #pragma GCC diagnostic ignored "-Wunused-parameter"
- int lib3270_set_crl_url(H3270 *hSession, const char *crl)
- {
-
- FAIL_IF_ONLINE(hSession);
-
-#ifdef SSL_ENABLE_CRL_CHECK
-
- if(hSession->ssl.crl.url)
- {
- free(hSession->ssl.crl.url);
- hSession->ssl.crl.url = NULL;
- }
-
- if(hSession->ssl.crl.cert)
- {
- X509_CRL_free(hSession->ssl.crl.cert);
- hSession->ssl.crl.cert = NULL;
- }
-
- if(crl)
- {
- hSession->ssl.crl.url = strdup(crl);
- }
-
- return 0;
-
-#else
-
- return errno = ENOTSUP;
-
-#endif // SSL_ENABLE_CRL_CHECK
-
- }
- #pragma GCC diagnostic pop
-
LIB3270_EXPORT const LIB3270_STRING_PROPERTY * lib3270_get_string_properties_list(void)
{
static const LIB3270_STRING_PROPERTY properties[] = {
@@ -649,104 +594,3 @@ int lib3270_set_string_property(H3270 *hSession, const char *name, const char *
}
-/**
- * @brief Get SSL host option.
- *
- * @return Non zero if the host URL has SSL scheme.
- *
- */
-LIB3270_EXPORT int lib3270_get_secure_host(H3270 *hSession)
-{
- CHECK_SESSION_HANDLE(hSession);
-
- // TODO: Find a better way!
- if(!hSession->host.current)
- lib3270_set_url(hSession,NULL);
-
-#ifdef HAVE_LIBSSL
- return hSession->ssl.enabled ? 1 : 0;
-#else
- return 0;
-#endif // HAVE_LIBSSL
-
-}
-
-#ifdef SSL_ENABLE_CRL_CHECK
-LIB3270_EXPORT char * lib3270_get_ssl_crl_text(H3270 *hSession)
-{
-
- if(hSession->ssl.crl.cert)
- {
-
- BIO * out = BIO_new(BIO_s_mem());
- unsigned char * data;
- unsigned char * text;
- int n;
-
- X509_CRL_print(out,hSession->ssl.crl.cert);
-
- n = BIO_get_mem_data(out, &data);
- text = (unsigned char *) lib3270_malloc(n+1);
- text[n] ='\0';
-
- memcpy(text,data,n);
- BIO_free(out);
-
- return (char *) text;
-
- }
-
- return NULL;
-
-}
-#else
-LIB3270_EXPORT char * lib3270_get_ssl_crl_text(H3270 GNUC_UNUSED(*hSession))
-{
- return NULL;
-}
-#endif // SSL_ENABLE_CRL_CHECK
-
-
-LIB3270_EXPORT char * lib3270_get_ssl_peer_certificate_text(H3270 *hSession)
-{
-#ifdef HAVE_LIBSSL
- if(hSession->ssl.con)
- {
- X509 * peer = SSL_get_peer_certificate(hSession->ssl.con);
- if(peer)
- {
- BIO * out = BIO_new(BIO_s_mem());
- unsigned char * data;
- unsigned char * text;
- int n;
-
- X509_print(out,peer);
-
- n = BIO_get_mem_data(out, &data);
- text = (unsigned char *) lib3270_malloc(n+1);
- text[n] ='\0';
- memcpy(text,data,n);
- BIO_free(out);
-
- return (char *) text;
- }
- }
-#endif // HAVE_LIBSSL
-
- return NULL;
-}
-
-LIB3270_EXPORT int lib3270_set_unlock_delay(H3270 *hSession, unsigned int delay)
-{
- CHECK_SESSION_HANDLE(hSession);
- hSession->unlock_delay = (delay == 0 ? 0 : 1);
- hSession->unlock_delay_ms = (unsigned short) delay;
- return 0;
-}
-
-LIB3270_EXPORT unsigned int lib3270_get_unlock_delay(H3270 *hSession)
-{
- CHECK_SESSION_HANDLE(hSession);
- return (unsigned int) hSession->unlock_delay_ms;
-}
-
diff --git a/src/include/lib3270/keyboard.h b/src/include/lib3270/keyboard.h
index 57f1fc2..059a9f8 100644
--- a/src/include/lib3270/keyboard.h
+++ b/src/include/lib3270/keyboard.h
@@ -82,7 +82,8 @@
* @param enable Non zero to enable operator lock, zero to disable.
*
*/
- LIB3270_EXPORT void lib3270_set_lock_on_operator_error(H3270 *hSession, int enable);
+ LIB3270_EXPORT int lib3270_set_lock_on_operator_error(H3270 *hSession, int enable);
+ LIB3270_EXPORT int lib3270_get_lock_on_operator_error(H3270 *hSession);
#ifdef __cplusplus
}
diff --git a/src/ssl/properties.c b/src/ssl/properties.c
new file mode 100644
index 0000000..6ffe7b8
--- /dev/null
+++ b/src/ssl/properties.c
@@ -0,0 +1,182 @@
+/*
+ * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270
+ * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a
+ * aplicativos mainframe. Registro no INPI sob o nome G3270. Registro no INPI sob o nome G3270.
+ *
+ * Copyright (C) <2008>
+ *
+ * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob
+ * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela
+ * Free Software Foundation.
+ *
+ * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER
+ * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO
+ * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para
+ * obter mais detalhes.
+ *
+ * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este
+ * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin
+ * St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Este programa está nomeado como - e possui - linhas de código.
+ *
+ * Contatos:
+ *
+ * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
+ * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
+ *
+ */
+
+#include
+#include
+
+#if defined(HAVE_LIBSSL)
+ #include
+#endif
+
+
+/**
+ * @brief Get SSL host option.
+ *
+ * @return Non zero if the host URL has SSL scheme.
+ *
+ */
+LIB3270_EXPORT int lib3270_get_secure_host(H3270 *hSession)
+{
+ CHECK_SESSION_HANDLE(hSession);
+
+ // TODO: Find a better way!
+ if(!hSession->host.current)
+ lib3270_set_url(hSession,NULL);
+
+#ifdef HAVE_LIBSSL
+ return hSession->ssl.enabled ? 1 : 0;
+#else
+ return 0;
+#endif // HAVE_LIBSSL
+
+}
+
+#ifdef SSL_ENABLE_CRL_CHECK
+LIB3270_EXPORT char * lib3270_get_ssl_crl_text(H3270 *hSession)
+{
+
+ if(hSession->ssl.crl.cert)
+ {
+
+ BIO * out = BIO_new(BIO_s_mem());
+ unsigned char * data;
+ unsigned char * text;
+ int n;
+
+ X509_CRL_print(out,hSession->ssl.crl.cert);
+
+ n = BIO_get_mem_data(out, &data);
+ text = (unsigned char *) lib3270_malloc(n+1);
+ text[n] ='\0';
+
+ memcpy(text,data,n);
+ BIO_free(out);
+
+ return (char *) text;
+
+ }
+
+ return NULL;
+
+}
+#else
+LIB3270_EXPORT char * lib3270_get_ssl_crl_text(H3270 GNUC_UNUSED(*hSession))
+{
+ return NULL;
+}
+#endif // SSL_ENABLE_CRL_CHECK
+
+
+LIB3270_EXPORT char * lib3270_get_ssl_peer_certificate_text(H3270 *hSession)
+{
+#ifdef HAVE_LIBSSL
+ if(hSession->ssl.con)
+ {
+ X509 * peer = SSL_get_peer_certificate(hSession->ssl.con);
+ if(peer)
+ {
+ BIO * out = BIO_new(BIO_s_mem());
+ unsigned char * data;
+ unsigned char * text;
+ int n;
+
+ X509_print(out,peer);
+
+ n = BIO_get_mem_data(out, &data);
+ text = (unsigned char *) lib3270_malloc(n+1);
+ text[n] ='\0';
+ memcpy(text,data,n);
+ BIO_free(out);
+
+ return (char *) text;
+ }
+ }
+#endif // HAVE_LIBSSL
+
+ return NULL;
+}
+
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wunused-parameter"
+ const char * lib3270_get_crl_url(H3270 *hSession)
+ {
+#ifdef SSL_ENABLE_CRL_CHECK
+ if(hSession->ssl.crl.url)
+ return hSession->ssl.crl.url;
+
+#ifdef SSL_DEFAULT_CRL_URL
+ return SSL_DEFAULT_CRL_URL;
+#else
+ return getenv("LIB3270_DEFAULT_CRL");
+#endif // SSL_DEFAULT_CRL_URL
+
+#else
+ errno = ENOTSUP;
+ return "";
+#endif
+ }
+ #pragma GCC diagnostic pop
+
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wunused-parameter"
+ int lib3270_set_crl_url(H3270 *hSession, const char *crl)
+ {
+
+ FAIL_IF_ONLINE(hSession);
+
+#ifdef SSL_ENABLE_CRL_CHECK
+
+ if(hSession->ssl.crl.url)
+ {
+ free(hSession->ssl.crl.url);
+ hSession->ssl.crl.url = NULL;
+ }
+
+ if(hSession->ssl.crl.cert)
+ {
+ X509_CRL_free(hSession->ssl.crl.cert);
+ hSession->ssl.crl.cert = NULL;
+ }
+
+ if(crl)
+ {
+ hSession->ssl.crl.url = strdup(crl);
+ }
+
+ return 0;
+
+#else
+
+ return errno = ENOTSUP;
+
+#endif // SSL_ENABLE_CRL_CHECK
+
+ }
+ #pragma GCC diagnostic pop
+
--
libgit2 0.21.2