diff --git a/common/utils/itti_analyzer/libbuffers/socket.c b/common/utils/itti_analyzer/libbuffers/socket.c index 356c55d45f2a908a3332677f308d4d2605d77e53..5c62bdc46f3ae6a390057105fc88e639f74318d2 100644 --- a/common/utils/itti_analyzer/libbuffers/socket.c +++ b/common/utils/itti_analyzer/libbuffers/socket.c @@ -319,25 +319,29 @@ void *socket_thread_fct(void *arg) tv.tv_sec = 0; tv.tv_usec = 1000 * SOCKET_MS_BEFORE_SIGNALLING; + ui_set_title ("connecting to %s:%d ...", socket_data->ip_address, socket_data->port); + do { /* Connecting to remote peer */ - ret = connect(socket_data->sd, (struct sockaddr *)&si_me, sizeof(struct sockaddr_in)); - if ((ret < 0) && ((socket_abort_connection) || (retry < 0))) { - if (retry < 0) { - g_warning("Failed to connect to peer %s:%d", - socket_data->ip_address, socket_data->port); - ui_pipe_write_message(socket_data->pipe_fd, - UI_PIPE_CONNECTION_FAILED, NULL, 0); + ret = connect(socket_data->sd, (struct sockaddr *) &si_me, sizeof(struct sockaddr_in)); + if (ret < 0) { + if ((socket_abort_connection) || (retry < 0)) { + if (retry < 0) { + g_warning("Failed to connect to peer %s:%d", socket_data->ip_address, socket_data->port); + ui_pipe_write_message(socket_data->pipe_fd, UI_PIPE_CONNECTION_FAILED, NULL, 0); + } + free(socket_data->ip_address); + free(socket_data); + /* Quit the thread */ + pthread_exit(NULL); } - free(socket_data->ip_address); - free(socket_data); - /* Quit the thread */ - pthread_exit(NULL); + usleep(SOCKET_US_BEFORE_CONNECT_RETRY); + retry--; } - usleep(SOCKET_US_BEFORE_CONNECT_RETRY); - retry --; } while (ret < 0); + ui_set_title ("%s:%d", socket_data->ip_address, socket_data->port); + /* Set the socket as non-blocking */ fcntl(socket_data->sd, F_SETFL, O_NONBLOCK); diff --git a/common/utils/itti_analyzer/libui/ui_callbacks.c b/common/utils/itti_analyzer/libui/ui_callbacks.c index 486e0e4dfcc83673ebcb65606888b6a69700bb02..d4228f36695ebd75c70e95a86188893470cc04c6 100644 --- a/common/utils/itti_analyzer/libui/ui_callbacks.c +++ b/common/utils/itti_analyzer/libui/ui_callbacks.c @@ -44,11 +44,11 @@ gboolean ui_callback_on_open_messages(GtkWidget *widget, gpointer data) operation_running = TRUE; if (refresh && (ui_main_data.messages_file_name != NULL)) { - CHECK_FCT(ui_messages_read (ui_main_data.messages_file_name)); + ui_messages_read (ui_main_data.messages_file_name); } else { - CHECK_FCT(ui_messages_open_file_chooser()); + ui_messages_open_file_chooser (); } operation_running = FALSE; } @@ -65,7 +65,7 @@ gboolean ui_callback_on_save_messages(GtkWidget *widget, gpointer data) if (operation_running == FALSE) { operation_running = TRUE; - CHECK_FCT(ui_messages_save_file_chooser(filtered)); + ui_messages_save_file_chooser(filtered); operation_running = FALSE; } @@ -111,12 +111,11 @@ gboolean ui_callback_on_open_filters(GtkWidget *widget, gpointer data) operation_running = TRUE; if (refresh && (ui_main_data.filters_file_name != NULL)) { - - CHECK_FCT(ui_filters_read (ui_main_data.filters_file_name)); + ui_filters_read (ui_main_data.filters_file_name); } else { - CHECK_FCT(ui_filters_open_file_chooser()); + ui_filters_open_file_chooser (); } operation_running = FALSE; } @@ -130,7 +129,7 @@ gboolean ui_callback_on_save_filters(GtkWidget *widget, gpointer data) { operation_running = TRUE; g_message("Save filters event occurred"); - CHECK_FCT(ui_filters_save_file_chooser()); + ui_filters_save_file_chooser(); operation_running = FALSE; } @@ -484,34 +483,22 @@ static gboolean ui_handle_update_signal_list(gint fd, void *data, size_t data_le static gboolean ui_handle_socket_connection_failed(gint fd) { - GtkWidget *dialogbox; - - dialogbox = gtk_message_dialog_new (GTK_WINDOW(ui_main_data.window), GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, - "Failed to connect to provided host/ip address"); - - gtk_dialog_run (GTK_DIALOG(dialogbox)); - gtk_widget_destroy (dialogbox); + ui_notification_dialog (GTK_MESSAGE_WARNING, FALSE, "connect", "Failed to connect to provided host/ip address"); /* Re-enable connect button */ ui_enable_connect_button (); + operation_running = FALSE; return TRUE; } static gboolean ui_handle_socket_connection_lost(gint fd) { - GtkWidget *dialogbox; - - dialogbox = gtk_message_dialog_new (GTK_WINDOW(ui_main_data.window), GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, - "Connection with remote host has been lost"); - - gtk_dialog_run (GTK_DIALOG(dialogbox)); - gtk_widget_destroy (dialogbox); + ui_notification_dialog (GTK_MESSAGE_WARNING, FALSE, "Connect", "Connection with remote host has been lost"); /* Re-enable connect button */ ui_enable_connect_button (); - ui_set_sensitive_save_message_buttons (TRUE); + operation_running = FALSE; + return TRUE; } @@ -590,32 +577,37 @@ gboolean ui_callback_on_connect(GtkWidget *widget, gpointer data) if (strlen (ip) == 0) { - ui_notification_dialog (GTK_MESSAGE_WARNING, FALSE, "Connect", "Empty host ip address"); + ui_notification_dialog (GTK_MESSAGE_ERROR, FALSE, "Connect", "Empty host ip address"); return FALSE; } if (port == 0) { - ui_notification_dialog (GTK_MESSAGE_WARNING, FALSE, "Connect", "Invalid host port value"); + ui_notification_dialog (GTK_MESSAGE_ERROR, FALSE, "Connect", "Invalid host port value"); return FALSE; } - ui_pipe_new (pipe_fd, ui_pipe_callback, NULL); + if (operation_running == FALSE) + { + operation_running = TRUE; + + ui_pipe_new (pipe_fd, ui_pipe_callback, NULL); - memcpy (ui_main_data.pipe_fd, pipe_fd, sizeof(int) * 2); + memcpy (ui_main_data.pipe_fd, pipe_fd, sizeof(int) * 2); - /* Disable the connect button */ - ui_disable_connect_button (); - ui_set_sensitive_save_message_buttons (FALSE); + /* Disable the connect button */ + ui_disable_connect_button (); + ui_set_sensitive_save_message_buttons (FALSE); - ui_callback_signal_clear_list (widget, data); + ui_callback_signal_clear_list (widget, data); - if (socket_connect_to_remote_host (ip, port, pipe_fd[1]) != 0) - { - ui_enable_connect_button (); - return FALSE; + if (socket_connect_to_remote_host (ip, port, pipe_fd[1]) != 0) + { + ui_enable_connect_button (); + operation_running = FALSE; + return FALSE; + } } - ui_set_title ("%s:%d", ip, port); return TRUE; } @@ -627,7 +619,8 @@ gboolean ui_callback_on_disconnect(GtkWidget *widget, gpointer data) ui_pipe_write_message (ui_main_data.pipe_fd[0], UI_PIPE_DISCONNECT_EVT, NULL, 0); ui_enable_connect_button (); - ui_set_sensitive_save_message_buttons (TRUE); + operation_running = FALSE; + return TRUE; } diff --git a/common/utils/itti_analyzer/libui/ui_main_screen.c b/common/utils/itti_analyzer/libui/ui_main_screen.c index 31752157e67620868fbc72ccd2f02bd84d63ba4c..f53ed094d6d8c7a7d5bb62ec027c614f64ff241d 100644 --- a/common/utils/itti_analyzer/libui/ui_main_screen.c +++ b/common/utils/itti_analyzer/libui/ui_main_screen.c @@ -160,6 +160,7 @@ void ui_set_title(const char *fmt, ...) vsnprintf (buffer, sizeof(buffer), fmt, args); snprintf (title, sizeof(title), "%s %s", name, buffer); + va_end (args); gtk_window_set_title (GTK_WINDOW(ui_main_data.window), title); } @@ -190,7 +191,6 @@ int ui_gtk_initialize(int argc, char *argv[]) CHECK_FCT(ui_menu_bar_create(vbox)); CHECK_FCT(ui_toolbar_create(vbox)); -// CHECK_FCT(ui_tree_view_create(ui_main_data.window, vbox)); CHECK_FCT(ui_notebook_create(vbox)); gtk_container_add (GTK_CONTAINER(ui_main_data.window), vbox); diff --git a/common/utils/itti_analyzer/libui/ui_notifications.c b/common/utils/itti_analyzer/libui/ui_notifications.c index 31bf7668c0f94b322aa3d160dd4828d6160d8970..5b5902c64a8b6094348da2eee654457be0e8f62d 100644 --- a/common/utils/itti_analyzer/libui/ui_notifications.c +++ b/common/utils/itti_analyzer/libui/ui_notifications.c @@ -49,6 +49,7 @@ int ui_enable_connect_button(void) gtk_widget_set_sensitive (GTK_WIDGET (ui_main_data.connect), TRUE); gtk_widget_set_sensitive (GTK_WIDGET (ui_main_data.disconnect), FALSE); socket_abort_connection = TRUE; + ui_set_sensitive_save_message_buttons (TRUE); ui_set_title (""); return RC_OK; @@ -365,7 +366,7 @@ int ui_messages_open_file_chooser(void) int result = RC_OK; GtkWidget *filechooser; - gboolean accept; + gboolean response_accept; char *filename; filechooser = gtk_file_chooser_dialog_new ("Select file", GTK_WINDOW (ui_main_data.window), @@ -375,14 +376,14 @@ int ui_messages_open_file_chooser(void) gtk_filter_add (filechooser, "All files", "*"); /* Process the response */ - accept = gtk_dialog_run (GTK_DIALOG (filechooser)) == GTK_RESPONSE_ACCEPT; + response_accept = gtk_dialog_run (GTK_DIALOG (filechooser)) == GTK_RESPONSE_ACCEPT; - if (accept) + if (response_accept) { filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (filechooser)); } gtk_widget_destroy (filechooser); - if (accept) + if (response_accept) { ui_set_sensitive_save_message_buttons (FALSE); @@ -468,7 +469,7 @@ int ui_filters_open_file_chooser(void) { int result = RC_OK; GtkWidget *filechooser; - gboolean accept; + gboolean response_accept; char *filename; filechooser = gtk_file_chooser_dialog_new ("Select file", GTK_WINDOW (ui_main_data.window), @@ -478,14 +479,14 @@ int ui_filters_open_file_chooser(void) gtk_filter_add (filechooser, "All files", "*"); /* Process the response */ - accept = gtk_dialog_run (GTK_DIALOG (filechooser)) == GTK_RESPONSE_ACCEPT; + response_accept = gtk_dialog_run (GTK_DIALOG (filechooser)) == GTK_RESPONSE_ACCEPT; - if (accept) + if (response_accept) { filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (filechooser)); } gtk_widget_destroy (filechooser); - if (accept) + if (response_accept) { result = ui_filters_read (filename); if (result == RC_OK)