diff --git a/src/lib3270/host.c b/src/lib3270/host.c
index 41cad48..bfc4cf7 100644
--- a/src/lib3270/host.c
+++ b/src/lib3270/host.c
@@ -135,12 +135,19 @@ void lib3270_set_disconnected(H3270 *hSession)
hSession->cstate = LIB3270_NOT_CONNECTED;
hSession->starting = 0;
+ hSession->secure = LIB3270_SSL_UNDEFINED;
set_status(hSession,OIA_FLAG_UNDERA,False);
+
lib3270_st_changed(hSession,LIB3270_STATE_CONNECT, False);
+
status_changed(hSession,LIB3270_MESSAGE_DISCONNECTED);
+
if(hSession->update_connect)
hSession->update_connect(hSession,0);
+
+ hSession->update_ssl(hSession,hSession->secure);
+
}
/* Register a function interested in a state change. */
diff --git a/src/lib3270/ssl.c b/src/lib3270/ssl.c
index e5b335e..fea99b0 100644
--- a/src/lib3270/ssl.c
+++ b/src/lib3270/ssl.c
@@ -418,16 +418,6 @@ void ssl_info_callback(INFO_CONST SSL *s, int where, int ret)
#endif /*]*/
-LIB3270_EXPORT LIB3270_SSL_STATE lib3270_get_secure(H3270 *session)
-{
- CHECK_SESSION_HANDLE(session);
-
- if(!lib3270_is_connected(session))
- return LIB3270_SSL_UNDEFINED;
-
- return session->secure;
-}
-
LIB3270_EXPORT int lib3270_is_secure(H3270 *hSession)
{
return lib3270_get_secure(hSession) == LIB3270_SSL_SECURE;
@@ -443,12 +433,22 @@ LIB3270_EXPORT long lib3270_get_SSL_verify_result(H3270 *hSession)
return -1;
}
+LIB3270_EXPORT LIB3270_SSL_STATE lib3270_get_secure(H3270 *session)
+{
+ CHECK_SESSION_HANDLE(session);
+
+ return session->secure;
+}
+
void set_ssl_state(H3270 *session, LIB3270_SSL_STATE state)
{
+ CHECK_SESSION_HANDLE(session);
+
if(state == session->secure)
return;
+ session->secure = state;
trace_dsn(session,"SSL state changes to %d\n",(int) state);
- session->update_ssl(session,session->secure = state);
+ session->update_ssl(session,session->secure);
}
diff --git a/src/pw3270/v3270/oia.c b/src/pw3270/v3270/oia.c
index bba95be..213e80f 100644
--- a/src/pw3270/v3270/oia.c
+++ b/src/pw3270/v3270/oia.c
@@ -1081,6 +1081,8 @@ void v3270_stop_timer(GtkWidget *widget)
void v3270_update_ssl(H3270 *session, LIB3270_SSL_STATE state)
{
+ debug("%s **************************************** %d",__FUNCTION__,(int) state);
+
v3270 * terminal = GTK_V3270(session->user_data);
cairo_t * cr;
GdkRectangle * r;
diff --git a/src/pw3270/v3270/widget.c b/src/pw3270/v3270/widget.c
index 584c2a7..c288e23 100644
--- a/src/pw3270/v3270/widget.c
+++ b/src/pw3270/v3270/widget.c
@@ -226,28 +226,22 @@ gboolean v3270_query_tooltip(GtkWidget *widget, gint x, gint y, gboolean keyboa
{
if(!lib3270_connected(GTK_V3270(widget)->host))
{
-#if GTK_CHECK_VERSION(2,14,0)
+#ifndef _WIN32
gtk_tooltip_set_icon_from_icon_name(tooltip,"gtk-disconnect",GTK_ICON_SIZE_MENU);
-#else
- gtk_tooltip_set_icon_from_stock(tooltip,GTK_STOCK_DISCONNECT,GTK_ICON_SIZE_MENU);
#endif // GTK_CHECK_VERSION
gtk_tooltip_set_markup(tooltip,_( "Identity not verified\nDisconnected from host" ) );
}
else if(lib3270_get_secure(GTK_V3270(widget)->host) == LIB3270_SSL_UNSECURE)
{
-#if GTK_CHECK_VERSION(2,14,0)
+#ifndef _WIN32
gtk_tooltip_set_icon_from_icon_name(tooltip,"dialog-information",GTK_ICON_SIZE_MENU);
-#else
- gtk_tooltip_set_icon_from_stock(tooltip,GTK_STOCK_INFO,GTK_ICON_SIZE_MENU);
#endif
gtk_tooltip_set_markup(tooltip,_( "Identity not verified\nThe connection is insecure" ) );
}
else if(!lib3270_get_SSL_verify_result(GTK_V3270(widget)->host))
{
-#if GTK_CHECK_VERSION(2,14,0)
+#ifndef _WIN32
gtk_tooltip_set_icon_from_icon_name(tooltip,"gtk-dialog-authentication",GTK_ICON_SIZE_MENU);
-#else
- gtk_tooltip_set_icon_from_stock(tooltip,GTK_STOCK_DIALOG_AUTHENTICATION,GTK_ICON_SIZE_MENU);
#endif
gtk_tooltip_set_markup(tooltip,_( "Identity verified\nThe connection is secure" ) );
}
@@ -258,10 +252,8 @@ gboolean v3270_query_tooltip(GtkWidget *widget, gint x, gint y, gboolean keyboa
if(msg)
{
gchar *text = g_strdup_printf("%s\n%s",_("Identity not verified"),gettext(msg->text));
-#if GTK_CHECK_VERSION(2,14,0)
+#ifndef _WIN32
gtk_tooltip_set_icon_from_icon_name(tooltip,msg->icon,GTK_ICON_SIZE_MENU);
-#else
- gtk_tooltip_set_icon_from_stock(tooltip,msg->icon,GTK_ICON_SIZE_MENU);
#endif
gtk_tooltip_set_markup(tooltip,text);
g_free(text);
@@ -269,10 +261,8 @@ gboolean v3270_query_tooltip(GtkWidget *widget, gint x, gint y, gboolean keyboa
else
{
gchar *text = g_strdup_printf(_("SSL state is undefinedUnexpected SSL status %ld"),lib3270_get_SSL_verify_result(GTK_V3270(widget)->host));
-#if GTK_CHECK_VERSION(2,14,0)
+#ifndef _WIN32
gtk_tooltip_set_icon_from_icon_name(tooltip,"dialog-error",GTK_ICON_SIZE_MENU);
-#else
- gtk_tooltip_set_icon_from_stock(tooltip,GTK_STOCK_DIALOG_ERROR,GTK_ICON_SIZE_MENU);
#endif // GTK_CHECK_VERSION
gtk_tooltip_set_markup(tooltip,text);
g_free(text);
--
libgit2 0.21.2