Changed windows title when connecting to socket.
Fixed some issue with operations interlocking. git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4944 818b1a75-f10b-46b9-bf7c-635c3b92a50f
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
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);
|
||||
|
||||
ui_callback_signal_clear_list (widget, data);
|
||||
|
||||
if (socket_connect_to_remote_host (ip, port, pipe_fd[1]) != 0)
|
||||
if (operation_running == FALSE)
|
||||
{
|
||||
ui_enable_connect_button ();
|
||||
return FALSE;
|
||||
operation_running = TRUE;
|
||||
|
||||
ui_pipe_new (pipe_fd, ui_pipe_callback, NULL);
|
||||
|
||||
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);
|
||||
|
||||
ui_callback_signal_clear_list (widget, data);
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user