static void Cyg_DOT1X(cyg_addrword_t param) #endif //__ECOS// { int ret = 1, i; pid_t auth_pid=1; char prefix_name[IFNAMSIZ+1]; strcpy(prefix_name, "ra"); DBGPRINT(RT_DEBUG_ERROR,"Start DOT1X Thread....\n"); // set number of configuration file 1 interfaces.count = 1; interfaces.rtapd = malloc(sizeof(rtapd *)); if (interfaces.rtapd == NULL) { DBGPRINT(RT_DEBUG_ERROR,"malloc failed\n"); exit(1); } eloop_init(&interfaces); interfaces.rtapd[0] = Apd_init(prefix_name); if (!interfaces.rtapd[0]) goto out; if (Apd_setup_interface(interfaces.rtapd[0])) goto out; eloop_run(); Apd_free_stas(interfaces.rtapd[0]); ret=0; out: for (i = 0; i < interfaces.count; i++) { if (!interfaces.rtapd[i]) continue; Apd_cleanup(interfaces.rtapd[i]); free(interfaces.rtapd[i]); } free(interfaces.rtapd); interfaces.rtapd = NULL; eloop_destroy(); DBGPRINT(RT_DEBUG_ERROR,"DOT1X_exit\n"); cyg_thread_exit(); return 0; }
int main(int argc, char *argv[]) { struct hapd_interfaces interfaces; pid_t child_pid; int ret = 1, i; int c; pid_t auth_pid; char prefix_name[IFNAMSIZ+1]; printf("program name = '%s'\n", argv[0]); if (strstr(argv[0], "8021xdi")) { printf("1program name = '%s'\n", argv[0]); strcpy(prefix_name, "rai"); } else { printf("2program name = '%s'\n", argv[0]); strcpy(prefix_name, "ra"); } for (;;) { c = getopt(argc, argv, "d:i:h"); if (c < 0) break; switch (c) { case 'd': /* set Debug level - RT_DEBUG_OFF 0 RT_DEBUG_ERROR 1 RT_DEBUG_WARN 2 RT_DEBUG_TRACE 3 RT_DEBUG_INFO 4 */ printf("Set debug level as %s\n", optarg); RTDebugLevel = (int)strtol(optarg, 0, 10); break; #if 1 /* FIXME: original prefix name seems wrong. */ case 'i': // Assign the wireless interface when support multiple cards sprintf(prefix_name, "%s", optarg); break; #else case 'i': // Assign the wireless interface when support multiple cards sprintf(prefix_name, "%s%02d_", prefix_name, ((int)strtol(optarg, 0, 10) - 1)); break; #endif case 'h': default: usage(); break; } } printf("Ralink DOT1X daemon, version = '%s' \n", dot1x_version); DBGPRINT(RT_DEBUG_TRACE, "prefix_name = '%s'\n", prefix_name); child_pid = fork(); if (child_pid == 0) { auth_pid = getpid(); DBGPRINT(RT_DEBUG_TRACE, "Porcess ID = %d\n",auth_pid); openlog("rtdot1xd",0,LOG_DAEMON); // set number of configuration file 1 interfaces.count = 1; interfaces.rtapd = malloc(sizeof(rtapd *)); if (interfaces.rtapd == NULL) { DBGPRINT(RT_DEBUG_ERROR,"malloc failed\n"); exit(1); } eloop_init(&interfaces); eloop_register_signal(SIGINT, Handle_term, NULL); eloop_register_signal(SIGTERM, Handle_term, NULL); eloop_register_signal(SIGUSR1, Handle_usr1, NULL); eloop_register_signal(SIGHUP, Handle_usr1, NULL); interfaces.rtapd[0] = Apd_init(prefix_name); if (!interfaces.rtapd[0]) goto out; if (Apd_setup_interface(interfaces.rtapd[0])) goto out; // Notify driver about PID RT_ioctl(interfaces.rtapd[0]->ioctl_sock, RT_PRIV_IOCTL, (char *)&auth_pid, sizeof(int), prefix_name, 0, RT_SET_APD_PID | OID_GET_SET_TOGGLE); eloop_run(); Apd_free_stas(interfaces.rtapd[0]); ret = 0; out: for (i = 0; i < interfaces.count; i++) { if (!interfaces.rtapd[i]) continue; Apd_cleanup(interfaces.rtapd[i]); free(interfaces.rtapd[i]); } free(interfaces.rtapd); eloop_destroy(); closelog(); return ret; } else return 0; }
int main(int argc, char *argv[]) { struct hapd_interfaces interfaces; pid_t child_pid; int ret = 1, i; int c; pid_t auth_pid; for (;;) { c = getopt(argc, argv, "h"); if (c < 0) break; switch (c) { case 'h': usage(); break; default: break; } } child_pid = fork(); if (child_pid == 0) { auth_pid = getpid(); DBGPRINT(RT_DEBUG_TRACE, "Porcess ID = %d\n",auth_pid); openlog("rt61apd",0,LOG_DAEMON); // set number of configuration file 1 interfaces.count = 1; interfaces.rtapd = malloc(sizeof(rtapd *)); if (interfaces.rtapd == NULL) { DBGPRINT(RT_DEBUG_ERROR,"malloc failed\n"); exit(1); } eloop_init(&interfaces); eloop_register_signal(SIGINT, Handle_term, NULL); eloop_register_signal(SIGTERM, Handle_term, NULL); eloop_register_signal(SIGUSR1, Handle_usr1, NULL); eloop_register_signal(SIGHUP, Handle_usr1, NULL); DBGPRINT(RT_DEBUG_ERROR,"\n Configuration file: %s\n", RT61AP_SYSTEM_PATH); interfaces.rtapd[0] = Apd_init(strdup(RT61AP_SYSTEM_PATH),(int)getpid()); if (!interfaces.rtapd[0]) goto out; if (Apd_setup_interface(interfaces.rtapd[0])) goto out; // Notify driver about PID RT_ioctl(interfaces.rtapd[0], RT_PRIV_IOCTL, (u8*)&auth_pid, sizeof(int), 0, RT_SET_APD_PID | OID_GET_SET_TOGGLE); eloop_run(); Apd_free_stas(interfaces.rtapd[0]); ret = 0; out: for (i = 0; i < interfaces.count; i++) { if (!interfaces.rtapd[i]) continue; Apd_cleanup(interfaces.rtapd[i]); free(interfaces.rtapd[i]); } free(interfaces.rtapd); eloop_destroy(); closelog(); return ret; } else return 0; }
int main(int argc, char *argv[]) { struct hapd_interfaces interfaces; pid_t child_pid; int ret = 1, i; int c; for (;;) { c = getopt(argc, argv, "h"); if (c < 0) break; switch (c) { case 'h': usage(); break; default: break; } } child_pid = 0; if (child_pid == 0) { openlog("rt2500apd",0,LOG_DAEMON); // set number of configuration file 1 interfaces.count = 1; interfaces.rtapd = malloc(sizeof(rtapd *)); if (interfaces.rtapd == NULL) { DBGPRINT(RT_DEBUG_ERROR,"malloc failed\n"); exit(1); } eloop_init(&interfaces); eloop_register_signal(SIGINT, Handle_term, NULL); eloop_register_signal(SIGTERM, Handle_term, NULL); eloop_register_signal(SIGUSR1, Handle_usr1, NULL); eloop_register_signal(SIGHUP, Handle_usr1, NULL); DBGPRINT(RT_DEBUG_ERROR,"\n Configuration file: %s\n", RT2500AP_SYSTEM_PATH); interfaces.rtapd[0] = Apd_init(strdup(RT2500AP_SYSTEM_PATH),(int)getpid()); if (!interfaces.rtapd[0]) goto out; if (Apd_setup_interface(interfaces.rtapd[0])) goto out; eloop_run(); Apd_free_stas(interfaces.rtapd[0]); ret = 0; out: for (i = 0; i < interfaces.count; i++) { if (!interfaces.rtapd[i]) continue; Apd_cleanup(interfaces.rtapd[i]); free(interfaces.rtapd[i]); } free(interfaces.rtapd); eloop_destroy(); closelog(); return ret; } else return 0; }