Code:
#include <glib/gstdio.h>
#include <gtk/gtk.h>
#include <glib.h>
#include <unistd.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <stdlib.h>
static void destroy_event(GtkWidget *widget, gpointer data) {
gtk_main_quit();
}
static gboolean delete_event(GtkWidget *widget, GdkEvent *event, gpointer data) {
gtk_main_quit();
return FALSE;
}
static void callback( GtkWidget *widget, gpointer data ) {
gtk_main_quit();
}
static void killed( GtkWidget *widget, GdkEvent *event, gpointer data ) {
execl("/usr/bin/killall", "killall", "watch", (char *)NULL);
gtk_main_quit();
}
//To compile append `pkg-config --cflags --libs gtk+-2.0`
int main(int argc, char *argv[]) {
GtkWidget *window;
GtkWidget *table;
GtkWidget *button;
GtkWidget *button2;
GtkWidget *frame;
GtkWidget *view;
GtkTooltips *tooltips;
GtkTextBuffer *buffer;
GtkTextIter iter;
//FILE *file;
GArray *array;
//char array[4096];
gchar *ch;
gchar *UTF;
gsize *length;
GError *err = NULL;
gsize *bytes_read = NULL;
gsize *bytes_written = NULL;
gtk_init(&argc, &argv);
array = g_array_new(FALSE, FALSE, sizeof(gint));
FILE *file = g_fopen("/home/amboxer21/Documents/netstat.txt", "r+");
if(file == NULL) {
printf("FOPEN(NULL) error --> %s.\n", strerror(errno));
exit(EXIT_FAILURE);
}
fread(array, sizeof(array), 2, file);
if(fread < 0) {
printf("FREAD(-1) error --> %s", strerror(errno));
exit(EXIT_FAILURE);
}
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), "SECURITY WARNING");
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_default_size(GTK_WINDOW(window), 500, 400);
gtk_widget_show(window);
table = gtk_table_new(10, 10, TRUE);
gtk_container_add(GTK_CONTAINER(window), table);
gtk_widget_show(table);
view = gtk_text_view_new();
gtk_table_attach_defaults(GTK_TABLE(table), view, 1, 9, 1, 5);
buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(view));
//ch = g_strdup((gchar *)array);
UTF = g_convert((gchar *)array, strlen((gchar *)array), "UTF-8", "us-ascii", bytes_read, bytes_written, &err);
if (err != NULL) {
printf("%s --> \n", strerror(errno));
g_error_free (err);
}
gtk_text_buffer_get_iter_at_offset(buffer, &iter, 0);
gtk_text_buffer_set_text(buffer, UTF, strlen(UTF));
//gtk_text_buffer_insert(buffer, &iter, UTF, -1);
//gtk_text_buffer_insert(buffer, &iter, "GtkTextView Widget\n", -1);
gtk_widget_show(view);
frame = gtk_frame_new("SUSPICIOUS PORT IS OPEN");
gtk_table_attach_defaults(GTK_TABLE(table), frame, 1, 9, 1, 9);
gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN);
gtk_widget_show(frame);
button = gtk_button_new_with_label("CONFIRM");
gtk_table_attach_defaults(GTK_TABLE(table), button, 2, 5, 6, 8);
gtk_widget_show(button);
tooltips = gtk_tooltips_new();
gtk_tooltips_set_tip (tooltips, button, "Click to confirm that you understand that there are suspicious ports open on your computer.", NULL);
button2 = gtk_button_new_with_label("KILL");
gtk_table_attach_defaults(GTK_TABLE(table), button2, 5, 8, 6, 8);
gtk_widget_show(button2);
tooltips = gtk_tooltips_new();
gtk_tooltips_set_tip(tooltips, button2, "Click to stop this program entirely.", NULL);
g_signal_connect_swapped(G_OBJECT(window), "destroy-event",
G_CALLBACK(destroy_event), NULL);
g_signal_connect_swapped(G_OBJECT(window), "delete-event",
G_CALLBACK(delete_event), NULL);
g_signal_connect(button, "clicked",
G_CALLBACK (callback), (gpointer) "cool button");
g_signal_connect_swapped(button2, "clicked",
G_CALLBACK(killed), (gpointer) "killed");
gtk_main_iteration();
gtk_main();
return 0;
}
Only problem is Now I need to print all elements of the file not just 2. So..??