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_sec = 0;
|
||||||
tv.tv_usec = 1000 * SOCKET_MS_BEFORE_SIGNALLING;
|
tv.tv_usec = 1000 * SOCKET_MS_BEFORE_SIGNALLING;
|
||||||
|
|
||||||
|
ui_set_title ("connecting to %s:%d ...", socket_data->ip_address, socket_data->port);
|
||||||
|
|
||||||
do {
|
do {
|
||||||
/* Connecting to remote peer */
|
/* Connecting to remote peer */
|
||||||
ret = connect(socket_data->sd, (struct sockaddr *)&si_me, sizeof(struct sockaddr_in));
|
ret = connect(socket_data->sd, (struct sockaddr *) &si_me, sizeof(struct sockaddr_in));
|
||||||
if ((ret < 0) && ((socket_abort_connection) || (retry < 0))) {
|
if (ret < 0) {
|
||||||
if (retry < 0) {
|
if ((socket_abort_connection) || (retry < 0)) {
|
||||||
g_warning("Failed to connect to peer %s:%d",
|
if (retry < 0) {
|
||||||
socket_data->ip_address, socket_data->port);
|
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_write_message(socket_data->pipe_fd, UI_PIPE_CONNECTION_FAILED, NULL, 0);
|
||||||
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);
|
usleep(SOCKET_US_BEFORE_CONNECT_RETRY);
|
||||||
free(socket_data);
|
retry--;
|
||||||
/* Quit the thread */
|
|
||||||
pthread_exit(NULL);
|
|
||||||
}
|
}
|
||||||
usleep(SOCKET_US_BEFORE_CONNECT_RETRY);
|
|
||||||
retry --;
|
|
||||||
} while (ret < 0);
|
} while (ret < 0);
|
||||||
|
|
||||||
|
ui_set_title ("%s:%d", socket_data->ip_address, socket_data->port);
|
||||||
|
|
||||||
/* Set the socket as non-blocking */
|
/* Set the socket as non-blocking */
|
||||||
fcntl(socket_data->sd, F_SETFL, O_NONBLOCK);
|
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;
|
operation_running = TRUE;
|
||||||
if (refresh && (ui_main_data.messages_file_name != NULL))
|
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
|
else
|
||||||
{
|
{
|
||||||
CHECK_FCT(ui_messages_open_file_chooser());
|
ui_messages_open_file_chooser ();
|
||||||
}
|
}
|
||||||
operation_running = FALSE;
|
operation_running = FALSE;
|
||||||
}
|
}
|
||||||
@@ -65,7 +65,7 @@ gboolean ui_callback_on_save_messages(GtkWidget *widget, gpointer data)
|
|||||||
if (operation_running == FALSE)
|
if (operation_running == FALSE)
|
||||||
{
|
{
|
||||||
operation_running = TRUE;
|
operation_running = TRUE;
|
||||||
CHECK_FCT(ui_messages_save_file_chooser(filtered));
|
ui_messages_save_file_chooser(filtered);
|
||||||
operation_running = FALSE;
|
operation_running = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -111,12 +111,11 @@ gboolean ui_callback_on_open_filters(GtkWidget *widget, gpointer data)
|
|||||||
operation_running = TRUE;
|
operation_running = TRUE;
|
||||||
if (refresh && (ui_main_data.filters_file_name != NULL))
|
if (refresh && (ui_main_data.filters_file_name != NULL))
|
||||||
{
|
{
|
||||||
|
ui_filters_read (ui_main_data.filters_file_name);
|
||||||
CHECK_FCT(ui_filters_read (ui_main_data.filters_file_name));
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
CHECK_FCT(ui_filters_open_file_chooser());
|
ui_filters_open_file_chooser ();
|
||||||
}
|
}
|
||||||
operation_running = FALSE;
|
operation_running = FALSE;
|
||||||
}
|
}
|
||||||
@@ -130,7 +129,7 @@ gboolean ui_callback_on_save_filters(GtkWidget *widget, gpointer data)
|
|||||||
{
|
{
|
||||||
operation_running = TRUE;
|
operation_running = TRUE;
|
||||||
g_message("Save filters event occurred");
|
g_message("Save filters event occurred");
|
||||||
CHECK_FCT(ui_filters_save_file_chooser());
|
ui_filters_save_file_chooser();
|
||||||
operation_running = FALSE;
|
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)
|
static gboolean ui_handle_socket_connection_failed(gint fd)
|
||||||
{
|
{
|
||||||
GtkWidget *dialogbox;
|
ui_notification_dialog (GTK_MESSAGE_WARNING, FALSE, "connect", "Failed to connect to provided host/ip address");
|
||||||
|
|
||||||
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);
|
|
||||||
|
|
||||||
/* Re-enable connect button */
|
/* Re-enable connect button */
|
||||||
ui_enable_connect_button ();
|
ui_enable_connect_button ();
|
||||||
|
operation_running = FALSE;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean ui_handle_socket_connection_lost(gint fd)
|
static gboolean ui_handle_socket_connection_lost(gint fd)
|
||||||
{
|
{
|
||||||
GtkWidget *dialogbox;
|
ui_notification_dialog (GTK_MESSAGE_WARNING, FALSE, "Connect", "Connection with remote host has been lost");
|
||||||
|
|
||||||
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);
|
|
||||||
|
|
||||||
/* Re-enable connect button */
|
/* Re-enable connect button */
|
||||||
ui_enable_connect_button ();
|
ui_enable_connect_button ();
|
||||||
ui_set_sensitive_save_message_buttons (TRUE);
|
operation_running = FALSE;
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -590,32 +577,37 @@ gboolean ui_callback_on_connect(GtkWidget *widget, gpointer data)
|
|||||||
|
|
||||||
if (strlen (ip) == 0)
|
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;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (port == 0)
|
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;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
ui_pipe_new (pipe_fd, ui_pipe_callback, NULL);
|
if (operation_running == FALSE)
|
||||||
|
|
||||||
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 = TRUE;
|
||||||
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)
|
||||||
|
{
|
||||||
|
ui_enable_connect_button ();
|
||||||
|
operation_running = FALSE;
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ui_set_title ("%s:%d", ip, port);
|
|
||||||
|
|
||||||
return TRUE;
|
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_pipe_write_message (ui_main_data.pipe_fd[0], UI_PIPE_DISCONNECT_EVT, NULL, 0);
|
||||||
|
|
||||||
ui_enable_connect_button ();
|
ui_enable_connect_button ();
|
||||||
ui_set_sensitive_save_message_buttons (TRUE);
|
operation_running = FALSE;
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -160,6 +160,7 @@ void ui_set_title(const char *fmt, ...)
|
|||||||
|
|
||||||
vsnprintf (buffer, sizeof(buffer), fmt, args);
|
vsnprintf (buffer, sizeof(buffer), fmt, args);
|
||||||
snprintf (title, sizeof(title), "%s %s", name, buffer);
|
snprintf (title, sizeof(title), "%s %s", name, buffer);
|
||||||
|
va_end (args);
|
||||||
|
|
||||||
gtk_window_set_title (GTK_WINDOW(ui_main_data.window), title);
|
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_menu_bar_create(vbox));
|
||||||
CHECK_FCT(ui_toolbar_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));
|
CHECK_FCT(ui_notebook_create(vbox));
|
||||||
|
|
||||||
gtk_container_add (GTK_CONTAINER(ui_main_data.window), 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.connect), TRUE);
|
||||||
gtk_widget_set_sensitive (GTK_WIDGET (ui_main_data.disconnect), FALSE);
|
gtk_widget_set_sensitive (GTK_WIDGET (ui_main_data.disconnect), FALSE);
|
||||||
socket_abort_connection = TRUE;
|
socket_abort_connection = TRUE;
|
||||||
|
ui_set_sensitive_save_message_buttons (TRUE);
|
||||||
ui_set_title ("");
|
ui_set_title ("");
|
||||||
|
|
||||||
return RC_OK;
|
return RC_OK;
|
||||||
@@ -365,7 +366,7 @@ int ui_messages_open_file_chooser(void)
|
|||||||
int result = RC_OK;
|
int result = RC_OK;
|
||||||
|
|
||||||
GtkWidget *filechooser;
|
GtkWidget *filechooser;
|
||||||
gboolean accept;
|
gboolean response_accept;
|
||||||
char *filename;
|
char *filename;
|
||||||
|
|
||||||
filechooser = gtk_file_chooser_dialog_new ("Select file", GTK_WINDOW (ui_main_data.window),
|
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", "*");
|
gtk_filter_add (filechooser, "All files", "*");
|
||||||
|
|
||||||
/* Process the response */
|
/* 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));
|
filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (filechooser));
|
||||||
}
|
}
|
||||||
gtk_widget_destroy (filechooser);
|
gtk_widget_destroy (filechooser);
|
||||||
if (accept)
|
if (response_accept)
|
||||||
{
|
{
|
||||||
ui_set_sensitive_save_message_buttons (FALSE);
|
ui_set_sensitive_save_message_buttons (FALSE);
|
||||||
|
|
||||||
@@ -468,7 +469,7 @@ int ui_filters_open_file_chooser(void)
|
|||||||
{
|
{
|
||||||
int result = RC_OK;
|
int result = RC_OK;
|
||||||
GtkWidget *filechooser;
|
GtkWidget *filechooser;
|
||||||
gboolean accept;
|
gboolean response_accept;
|
||||||
char *filename;
|
char *filename;
|
||||||
|
|
||||||
filechooser = gtk_file_chooser_dialog_new ("Select file", GTK_WINDOW (ui_main_data.window),
|
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", "*");
|
gtk_filter_add (filechooser, "All files", "*");
|
||||||
|
|
||||||
/* Process the response */
|
/* 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));
|
filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (filechooser));
|
||||||
}
|
}
|
||||||
gtk_widget_destroy (filechooser);
|
gtk_widget_destroy (filechooser);
|
||||||
if (accept)
|
if (response_accept)
|
||||||
{
|
{
|
||||||
result = ui_filters_read (filename);
|
result = ui_filters_read (filename);
|
||||||
if (result == RC_OK)
|
if (result == RC_OK)
|
||||||
|
|||||||
Reference in New Issue
Block a user