/** * The function that initialize the module. */ static int __init start_module(void) { printk(KERN_INFO "Amir's firewall is being loaded!\n"); if (register_hooks() < 0) { printk(KERN_INFO "ERROR: Failed to register hooks\n"); return -1; } if (register_drivers() < 0) { dismiss_hooks(); printk(KERN_INFO "ERROR: Failed to register drivers\n"); return -1; } return 0; // if non-0 return, then init_module have failed. }
/** \ingroup core * Initialise libfprint. This function must be called before you attempt to * use the library in any way. * \return 0 on success, non-zero on error. */ API_EXPORTED int fp_init(void) { char *dbg = getenv("LIBFPRINT_DEBUG"); int r; fp_dbg(""); r = libusb_init(&fpi_usb_ctx); if (r < 0) return r; if (dbg) { log_level = atoi(dbg); if (log_level) { log_level_fixed = 1; libusb_set_debug(fpi_usb_ctx, log_level); } } register_drivers(); fpi_poll_init(); return 0; }
int main(int argc, char *argv[]) { struct hapd_interfaces interfaces; int ret = 1, i, j; int c, debug = 0, daemonize = 0; for (;;) { c = getopt(argc, argv, "BdhKtv"); if (c < 0) break; switch (c) { case 'h': usage(); break; case 'd': debug++; break; case 'B': daemonize++; break; case 'K': wpa_debug_show_keys++; break; case 't': wpa_debug_timestamp++; break; case 'v': show_version(); exit(1); break; default: usage(); break; } } if (optind == argc) usage(); register_drivers(); /* NB: generated by Makefile */ interfaces.count = argc - optind; interfaces.hapd = malloc(interfaces.count * sizeof(hostapd *)); if (interfaces.hapd == NULL) { printf("malloc failed\n"); exit(1); } eloop_init(&interfaces); eloop_register_signal(SIGHUP, handle_reload, NULL); eloop_register_signal(SIGINT, handle_term, NULL); eloop_register_signal(SIGTERM, handle_term, NULL); eloop_register_signal(SIGUSR1, handle_dump_state, NULL); for (i = 0; i < interfaces.count; i++) { printf("Configuration file: %s\n", argv[optind + i]); interfaces.hapd[i] = hostapd_init(argv[optind + i]); if (!interfaces.hapd[i]) goto out; for (j = 0; j < debug; j++) { if (interfaces.hapd[i]->conf->logger_stdout_level > 0) interfaces.hapd[i]->conf-> logger_stdout_level--; interfaces.hapd[i]->conf->debug++; } if (hostapd_setup_interface(interfaces.hapd[i])) goto out; wpa_debug_level -= interfaces.hapd[0]->conf->debug; } //if (daemonize && daemon(0, 0)) { if (daemonize && daemon(1, 1)) { perror("daemon"); goto out; } openlog("hostapd", 0, LOG_DAEMON); eloop_run(); printf("Interface count:%d\n",interfaces.count); for (i = 0; i < interfaces.count; i++) { hostapd_free_stas(interfaces.hapd[i]); hostapd_flush_old_stations(interfaces.hapd[i]); } ret = 0; out: for (i = 0; i < interfaces.count; i++) { if (!interfaces.hapd[i]) continue; hostapd_cleanup(interfaces.hapd[i]); free(interfaces.hapd[i]); } free(interfaces.hapd); eloop_destroy(); closelog(); driver_unregister_all(); return ret; }