35
35
#include <gtk/gtk.h>
37
void show_advanced_zrtp_options(GHashTable * properties)
37
void show_advanced_zrtp_options (GHashTable * properties)
39
39
GtkDialog * securityDialog;
41
GtkWidget * zrtpFrame;
42
41
GtkWidget * tableZrtp;
43
42
GtkWidget * enableHelloHash;
44
43
GtkWidget * enableSASConfirm;
45
44
GtkWidget * enableZrtpNotSuppOther;
46
45
GtkWidget * displaySasOnce;
48
47
gchar * curSasConfirm = "true";
49
48
gchar * curHelloEnabled = "true";
50
49
gchar * curZrtpNotSuppOther = "true";
51
50
gchar * curDisplaySasOnce = "false";
53
if(properties != NULL) {
54
curHelloEnabled = g_hash_table_lookup(properties, ACCOUNT_ZRTP_HELLO_HASH);
55
curSasConfirm = g_hash_table_lookup(properties, ACCOUNT_ZRTP_DISPLAY_SAS);
56
curZrtpNotSuppOther = g_hash_table_lookup(properties, ACCOUNT_ZRTP_NOT_SUPP_WARNING);
57
curDisplaySasOnce = g_hash_table_lookup(properties, ACCOUNT_DISPLAY_SAS_ONCE);
60
securityDialog = GTK_DIALOG (gtk_dialog_new_with_buttons ( _("ZRTP Options"),
61
GTK_WINDOW (get_main_window()),
62
GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
69
gtk_window_set_policy( GTK_WINDOW(securityDialog), FALSE, FALSE, FALSE );
70
gtk_dialog_set_has_separator(securityDialog, TRUE);
71
gtk_container_set_border_width (GTK_CONTAINER(securityDialog), 0);
74
tableZrtp = gtk_table_new (4, 2 , FALSE/* homogeneous */);
75
gtk_table_set_row_spacings( GTK_TABLE(tableZrtp), 10);
76
gtk_table_set_col_spacings( GTK_TABLE(tableZrtp), 10);
77
gtk_box_pack_start(GTK_BOX(securityDialog->vbox), tableZrtp, FALSE, FALSE, 0);
78
gtk_widget_show(tableZrtp);
80
enableHelloHash = gtk_check_button_new_with_mnemonic(_("Send Hello Hash in S_DP"));
81
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(enableHelloHash),
82
g_strcasecmp(curHelloEnabled,"true") == 0 ? TRUE: FALSE);
83
gtk_table_attach ( GTK_TABLE(tableZrtp), enableHelloHash, 0, 1, 2, 3, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
84
gtk_widget_set_sensitive( GTK_WIDGET( enableHelloHash ) , TRUE );
86
enableSASConfirm = gtk_check_button_new_with_mnemonic(_("Ask User to Confirm SAS"));
87
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(enableSASConfirm),
88
g_strcasecmp(curSasConfirm,"true") == 0 ? TRUE: FALSE);
89
gtk_table_attach ( GTK_TABLE(tableZrtp), enableSASConfirm, 0, 1, 3, 4, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
90
gtk_widget_set_sensitive( GTK_WIDGET( enableSASConfirm ) , TRUE );
92
enableZrtpNotSuppOther = gtk_check_button_new_with_mnemonic(_("_Warn if ZRTP not supported"));
93
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(enableZrtpNotSuppOther),
94
g_strcasecmp(curZrtpNotSuppOther,"true") == 0 ? TRUE: FALSE);
95
gtk_table_attach ( GTK_TABLE(tableZrtp), enableZrtpNotSuppOther, 0, 1, 4, 5, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
96
gtk_widget_set_sensitive( GTK_WIDGET( enableZrtpNotSuppOther ) , TRUE );
98
displaySasOnce = gtk_check_button_new_with_mnemonic(_("Display SAS once for hold events"));
99
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(displaySasOnce),
100
g_strcasecmp(curDisplaySasOnce,"true") == 0 ? TRUE: FALSE);
101
gtk_table_attach ( GTK_TABLE(tableZrtp), displaySasOnce, 0, 1, 5, 6, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
102
gtk_widget_set_sensitive( GTK_WIDGET( displaySasOnce ) , TRUE );
104
gtk_widget_show_all(tableZrtp);
106
gtk_container_set_border_width (GTK_CONTAINER(tableZrtp), 10);
108
if(gtk_dialog_run(GTK_DIALOG(securityDialog)) == GTK_RESPONSE_ACCEPT) {
109
g_hash_table_replace(properties,
110
g_strdup(ACCOUNT_ZRTP_DISPLAY_SAS),
111
g_strdup(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(enableSASConfirm)) ? "true": "false"));
113
g_hash_table_replace(properties,
114
g_strdup(ACCOUNT_DISPLAY_SAS_ONCE),
115
g_strdup(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(displaySasOnce)) ? "true": "false"));
117
g_hash_table_replace(properties,
118
g_strdup(ACCOUNT_ZRTP_HELLO_HASH),
119
g_strdup(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(enableHelloHash)) ? "true": "false"));
121
g_hash_table_replace(properties,
122
g_strdup(ACCOUNT_ZRTP_NOT_SUPP_WARNING),
123
g_strdup(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(enableZrtpNotSuppOther)) ? "true": "false"));
126
gtk_widget_destroy (GTK_WIDGET(securityDialog));
52
if (properties != NULL) {
53
curHelloEnabled = g_hash_table_lookup (properties, ACCOUNT_ZRTP_HELLO_HASH);
54
curSasConfirm = g_hash_table_lookup (properties, ACCOUNT_ZRTP_DISPLAY_SAS);
55
curZrtpNotSuppOther = g_hash_table_lookup (properties, ACCOUNT_ZRTP_NOT_SUPP_WARNING);
56
curDisplaySasOnce = g_hash_table_lookup (properties, ACCOUNT_DISPLAY_SAS_ONCE);
59
securityDialog = GTK_DIALOG (gtk_dialog_new_with_buttons (_ ("ZRTP Options"),
60
GTK_WINDOW (get_main_window()),
61
GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
68
gtk_window_set_policy (GTK_WINDOW (securityDialog), FALSE, FALSE, FALSE);
69
gtk_dialog_set_has_separator (securityDialog, TRUE);
70
gtk_container_set_border_width (GTK_CONTAINER (securityDialog), 0);
73
tableZrtp = gtk_table_new (4, 2 , FALSE/* homogeneous */);
74
gtk_table_set_row_spacings (GTK_TABLE (tableZrtp), 10);
75
gtk_table_set_col_spacings (GTK_TABLE (tableZrtp), 10);
76
gtk_box_pack_start (GTK_BOX (securityDialog->vbox), tableZrtp, FALSE, FALSE, 0);
77
gtk_widget_show (tableZrtp);
79
enableHelloHash = gtk_check_button_new_with_mnemonic (_ ("Send Hello Hash in S_DP"));
80
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (enableHelloHash),
81
g_strcasecmp (curHelloEnabled,"true") == 0 ? TRUE: FALSE);
82
gtk_table_attach (GTK_TABLE (tableZrtp), enableHelloHash, 0, 1, 2, 3, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
83
gtk_widget_set_sensitive (GTK_WIDGET (enableHelloHash) , TRUE);
85
enableSASConfirm = gtk_check_button_new_with_mnemonic (_ ("Ask User to Confirm SAS"));
86
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (enableSASConfirm),
87
g_strcasecmp (curSasConfirm,"true") == 0 ? TRUE: FALSE);
88
gtk_table_attach (GTK_TABLE (tableZrtp), enableSASConfirm, 0, 1, 3, 4, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
89
gtk_widget_set_sensitive (GTK_WIDGET (enableSASConfirm) , TRUE);
91
enableZrtpNotSuppOther = gtk_check_button_new_with_mnemonic (_ ("_Warn if ZRTP not supported"));
92
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (enableZrtpNotSuppOther),
93
g_strcasecmp (curZrtpNotSuppOther,"true") == 0 ? TRUE: FALSE);
94
gtk_table_attach (GTK_TABLE (tableZrtp), enableZrtpNotSuppOther, 0, 1, 4, 5, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
95
gtk_widget_set_sensitive (GTK_WIDGET (enableZrtpNotSuppOther) , TRUE);
97
displaySasOnce = gtk_check_button_new_with_mnemonic (_ ("Display SAS once for hold events"));
98
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (displaySasOnce),
99
g_strcasecmp (curDisplaySasOnce,"true") == 0 ? TRUE: FALSE);
100
gtk_table_attach (GTK_TABLE (tableZrtp), displaySasOnce, 0, 1, 5, 6, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
101
gtk_widget_set_sensitive (GTK_WIDGET (displaySasOnce) , TRUE);
103
gtk_widget_show_all (tableZrtp);
105
gtk_container_set_border_width (GTK_CONTAINER (tableZrtp), 10);
107
if (gtk_dialog_run (GTK_DIALOG (securityDialog)) == GTK_RESPONSE_ACCEPT) {
108
g_hash_table_replace (properties,
109
g_strdup (ACCOUNT_ZRTP_DISPLAY_SAS),
110
g_strdup (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (enableSASConfirm)) ? "true": "false"));
112
g_hash_table_replace (properties,
113
g_strdup (ACCOUNT_DISPLAY_SAS_ONCE),
114
g_strdup (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (displaySasOnce)) ? "true": "false"));
116
g_hash_table_replace (properties,
117
g_strdup (ACCOUNT_ZRTP_HELLO_HASH),
118
g_strdup (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (enableHelloHash)) ? "true": "false"));
120
g_hash_table_replace (properties,
121
g_strdup (ACCOUNT_ZRTP_NOT_SUPP_WARNING),
122
g_strdup (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (enableZrtpNotSuppOther)) ? "true": "false"));
125
gtk_widget_destroy (GTK_WIDGET (securityDialog));
130
void show_advanced_sdes_options(GHashTable * properties) {
129
void show_advanced_sdes_options (GHashTable * properties)
132
132
GtkDialog * securityDialog;
134
134
GtkWidget * sdesTable;
135
135
GtkWidget * enableRtpFallback;
136
136
gchar * rtpFallback = "false";
138
if(properties != NULL) {
139
rtpFallback = g_hash_table_lookup(properties, ACCOUNT_SRTP_RTP_FALLBACK);
142
securityDialog = GTK_DIALOG (gtk_dialog_new_with_buttons ( _("SDES Options"),
144
GTK_WINDOW (get_main_window()),
145
GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
157
gtk_window_set_policy( GTK_WINDOW(securityDialog), FALSE, FALSE, FALSE );
158
gtk_dialog_set_has_separator(securityDialog, TRUE);
159
gtk_container_set_border_width (GTK_CONTAINER(securityDialog), 0);
161
sdesTable = gtk_table_new (1, 2 , FALSE/* homogeneous */);
162
gtk_table_set_row_spacings( GTK_TABLE(sdesTable), 10);
163
gtk_table_set_col_spacings( GTK_TABLE(sdesTable), 10);
164
gtk_box_pack_start(GTK_BOX(securityDialog->vbox), sdesTable, FALSE, FALSE, 0);
165
gtk_widget_show(sdesTable);
167
enableRtpFallback = gtk_check_button_new_with_mnemonic(_("Fallback on RTP on SDES failure"));
168
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(enableRtpFallback),
169
g_strcasecmp(rtpFallback,"true") == 0 ? TRUE: FALSE);
170
gtk_table_attach ( GTK_TABLE(sdesTable), enableRtpFallback, 0, 1, 2, 3, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
171
gtk_widget_set_sensitive( GTK_WIDGET( enableRtpFallback ) , TRUE );
174
gtk_widget_show_all(sdesTable);
176
gtk_container_set_border_width (GTK_CONTAINER(sdesTable), 10);
178
if(gtk_dialog_run(GTK_DIALOG(securityDialog)) == GTK_RESPONSE_ACCEPT) {
179
g_hash_table_replace(properties,
180
g_strdup(ACCOUNT_SRTP_RTP_FALLBACK),
181
g_strdup(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(enableRtpFallback)) ? "true": "false"));
184
gtk_widget_destroy (GTK_WIDGET(securityDialog));
138
if (properties != NULL) {
139
rtpFallback = g_hash_table_lookup (properties, ACCOUNT_SRTP_RTP_FALLBACK);
142
securityDialog = GTK_DIALOG (gtk_dialog_new_with_buttons (_ ("SDES Options"),
144
GTK_WINDOW (get_main_window()),
145
GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
157
gtk_window_set_policy (GTK_WINDOW (securityDialog), FALSE, FALSE, FALSE);
158
gtk_dialog_set_has_separator (securityDialog, TRUE);
159
gtk_container_set_border_width (GTK_CONTAINER (securityDialog), 0);
161
sdesTable = gtk_table_new (1, 2 , FALSE/* homogeneous */);
162
gtk_table_set_row_spacings (GTK_TABLE (sdesTable), 10);
163
gtk_table_set_col_spacings (GTK_TABLE (sdesTable), 10);
164
gtk_box_pack_start (GTK_BOX (securityDialog->vbox), sdesTable, FALSE, FALSE, 0);
165
gtk_widget_show (sdesTable);
167
enableRtpFallback = gtk_check_button_new_with_mnemonic (_ ("Fallback on RTP on SDES failure"));
168
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (enableRtpFallback),
169
g_strcasecmp (rtpFallback,"true") == 0 ? TRUE: FALSE);
170
gtk_table_attach (GTK_TABLE (sdesTable), enableRtpFallback, 0, 1, 2, 3, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
171
gtk_widget_set_sensitive (GTK_WIDGET (enableRtpFallback) , TRUE);
174
gtk_widget_show_all (sdesTable);
176
gtk_container_set_border_width (GTK_CONTAINER (sdesTable), 10);
178
if (gtk_dialog_run (GTK_DIALOG (securityDialog)) == GTK_RESPONSE_ACCEPT) {
179
g_hash_table_replace (properties,
180
g_strdup (ACCOUNT_SRTP_RTP_FALLBACK),
181
g_strdup (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (enableRtpFallback)) ? "true": "false"));
184
gtk_widget_destroy (GTK_WIDGET (securityDialog));