/* * menu item */ void on_imagemenuitem_interface_activate(GtkMenuItem * menuitem, GtkWindow * if_window) { int ret; int if_num; // char if_list[10][10]; ret = find_interfaces(&if_num); if (ret == 0) { GtkWidget *if_treeview = GTK_WIDGET(gtk_builder_get_object (builder, "treeview_interface")); edit_interface_list_view(if_treeview, if_num); gtk_widget_show(if_window); } else { GtkWidget *fail_dialog = gtk_message_dialog_new(NULL, GTK_RESPONSE_OK, GTK_MESSAGE_OTHER, GTK_BUTTONS_OK, NULL); gtk_message_dialog_set_markup((GtkMessageDialog *) fail_dialog, "<span foreground=\"red\" size=\"x-large\">:) find interfaces fail!</span>"); gtk_window_set_title(GTK_WINDOW(fail_dialog), "interface info"); gtk_dialog_run((GtkDialog *) fail_dialog); // show the dialog gtk_widget_destroy(fail_dialog); } }
int rarpd(int argc, char *argv[]) { struct rarpd rarpd; rarpd_init(&rarpd); if (parse_options(&rarpd, argc, argv) != 0) { return EXIT_FAILURE; } if (parse_args(&rarpd, argv) != 0) { return EXIT_FAILURE; } if (!(rarpd.opts & FOREGROUND) && daemonize() != 0) { return EXIT_FAILURE; } init_syslog(&rarpd); if (rarpd_init_signals(&rarpd) != 0) { return EXIT_FAILURE; } if (find_interfaces(&rarpd) != 0) { return EXIT_FAILURE; } link_array_filter(&rarpd.links, has_addr, NULL); if (rarpd.links.count == 0) { XLOG_ERR("no usable links found"); return EXIT_FAILURE; } if (!link_array_foreach(&rarpd.links, setup_link, &rarpd.dispatcher)) { cleanup_rarpd(&rarpd); return EXIT_FAILURE; } dispatcher_run(&rarpd.dispatcher); cleanup_rarpd(&rarpd); return EXIT_SUCCESS; }