From afe94d79252fce32caade9e02962970e3404527e Mon Sep 17 00:00:00 2001 From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)> Date: Fri, 5 Feb 2010 15:07:38 -0500 Subject: [PATCH] [#1744] Add Sdes configuration dialog --- .../src/config/zrtpadvanceddialog.c | 58 +++++++++++++++++++ .../src/config/zrtpadvanceddialog.h | 2 + sflphone-client-gnome/src/sflphone_const.h | 1 + 3 files changed, 61 insertions(+) diff --git a/sflphone-client-gnome/src/config/zrtpadvanceddialog.c b/sflphone-client-gnome/src/config/zrtpadvanceddialog.c index 02b634d559..3689dc16d0 100644 --- a/sflphone-client-gnome/src/config/zrtpadvanceddialog.c +++ b/sflphone-client-gnome/src/config/zrtpadvanceddialog.c @@ -114,3 +114,61 @@ void show_advanced_zrtp_options(GHashTable * properties) gtk_widget_destroy (GTK_WIDGET(securityDialog)); } + + +void show_advanced_sdes_options(GHashTable * properties) { + + GtkDialog * securityDialog; + + GtkWidget * sdesTable; + GtkWidget * enableRtpFallback; + gchar * rtpFallback = "false"; + + if(properties != NULL) { + rtpFallback = g_hash_table_lookup(properties, ACCOUNT_SRTP_RTP_FALLBACK); + } + + securityDialog = GTK_DIALOG (gtk_dialog_new_with_buttons ( _("SDES Options"), + + GTK_WINDOW (get_main_window()), + GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, + + GTK_STOCK_CANCEL, + + GTK_RESPONSE_CANCEL, + + GTK_STOCK_SAVE, + + GTK_RESPONSE_ACCEPT, + + NULL)); + + gtk_window_set_policy( GTK_WINDOW(securityDialog), FALSE, FALSE, FALSE ); + gtk_dialog_set_has_separator(securityDialog, TRUE); + gtk_container_set_border_width (GTK_CONTAINER(securityDialog), 0); + + sdesTable = gtk_table_new (1, 2 , FALSE/* homogeneous */); + gtk_table_set_row_spacings( GTK_TABLE(sdesTable), 10); + gtk_table_set_col_spacings( GTK_TABLE(sdesTable), 10); + gtk_box_pack_start(GTK_BOX(securityDialog->vbox), sdesTable, FALSE, FALSE, 0); + gtk_widget_show(sdesTable); + + enableRtpFallback = gtk_check_button_new_with_mnemonic(_("Fallback on RTP on SDES failure")); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(enableRtpFallback), + g_strcasecmp(rtpFallback,"true") == 0 ? TRUE: FALSE); + gtk_table_attach ( GTK_TABLE(sdesTable), enableRtpFallback, 0, 1, 2, 3, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); + gtk_widget_set_sensitive( GTK_WIDGET( enableRtpFallback ) , TRUE ); + + + gtk_widget_show_all(sdesTable); + + gtk_container_set_border_width (GTK_CONTAINER(sdesTable), 10); + + if(gtk_dialog_run(GTK_DIALOG(securityDialog)) == GTK_RESPONSE_ACCEPT) { + g_hash_table_replace(properties, + g_strdup(ACCOUNT_SRTP_RTP_FALLBACK), + g_strdup(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(enableRtpFallback)) ? "true": "false")); + } + + gtk_widget_destroy (GTK_WIDGET(securityDialog)); +} diff --git a/sflphone-client-gnome/src/config/zrtpadvanceddialog.h b/sflphone-client-gnome/src/config/zrtpadvanceddialog.h index df92bfb09b..23bfdbb8bc 100644 --- a/sflphone-client-gnome/src/config/zrtpadvanceddialog.h +++ b/sflphone-client-gnome/src/config/zrtpadvanceddialog.h @@ -31,4 +31,6 @@ void show_advanced_zrtp_options(GHashTable * properties); +void show_advanced_sdes_options(GHashTable * properties); + #endif diff --git a/sflphone-client-gnome/src/sflphone_const.h b/sflphone-client-gnome/src/sflphone_const.h index 2627179489..2617047fab 100644 --- a/sflphone-client-gnome/src/sflphone_const.h +++ b/sflphone-client-gnome/src/sflphone_const.h @@ -68,6 +68,7 @@ #define ACCOUNT_REALM "realm" #define ACCOUNT_KEY_EXCHANGE "SRTP.keyExchange" #define ACCOUNT_SRTP_ENABLED "SRTP.enable" +#define ACCOUNT_SRTP_RTP_FALLBACK "SRTP.rtpFallback" #define ACCOUNT_ZRTP_DISPLAY_SAS "ZRTP.displaySAS" #define ACCOUNT_ZRTP_NOT_SUPP_WARNING "ZRTP.notSuppWarning" #define ACCOUNT_ZRTP_HELLO_HASH "ZRTP.helloHashEnable" -- GitLab