📄 config_grammar.y
字号:
} tmp_network = NULL; } | TK_QUOTED_STR '{' network_statements '}' { set_current_config(); tmp_network->name = $1; // check if there is a networks field and that // the current tmp is not already listed if ((!tmp_config->networks || !config_network_contains_net(tmp_config->networks, tmp_network->name)) && config_allows_network(tmp_config, tmp_network->name)) { config_network_add_net(&(tmp_config->networks), tmp_network); } // if we don't need it, delete it else { delete_config_network(&tmp_network); } tmp_network = NULL; } | TK_UNQUOTED_STR '{' '}' { set_current_config(); set_current_network(); tmp_network->name = $1; // check if there is a networks field and that // the current tmp is not already listed if ((!tmp_config->networks || !config_network_contains_net(tmp_config->networks, tmp_network->name)) && config_allows_network(tmp_config, tmp_network->name)) { config_network_add_net(&(tmp_config->networks), tmp_network); } // if we don't need it, delete it else { delete_config_network(&tmp_network); } tmp_network = NULL; } | TK_QUOTED_STR '{' '}' { set_current_config(); set_current_network(); tmp_network->name = $1; // check if there is a networks field and that // the current tmp is not already listed if ((!tmp_config->networks || !config_network_contains_net(tmp_config->networks, tmp_network->name)) && config_allows_network(tmp_config, tmp_network->name)) { config_network_add_net(&(tmp_config->networks), tmp_network); } // if we don't need it, delete it else { delete_config_network(&tmp_network); } tmp_network = NULL; } | TK_NUMBER '{' '}' { set_current_config(); set_current_network(); tmp_network->name = (char *)malloc(100); sprintf(tmp_network->name, "%d", $1); // check if there is a networks field and that // the current tmp is not already listed if ((!tmp_config->networks || !config_network_contains_net(tmp_config->networks, tmp_network->name)) && config_allows_network(tmp_config, tmp_network->name)) { config_network_add_net(&(tmp_config->networks), tmp_network); } // if we don't need it, delete it else { delete_config_network(&tmp_network); } tmp_network = NULL; } ;network_statements : network_statements network_parameter | network_statements eap_type_statement | network_parameter | eap_type_statement ;network_parameter : network_type_parameter | network_priority | network_use_tnc | network_wpa_group_enc_type | network_wpa_pairwise_enc_type | network_force_eapol_ver | network_identity_parameter | network_dest_mac_parameter | network_allow_parameter | network_control_wireless ;network_priority : TK_PRIORITY '=' TK_NUMBER { parameter_debug("Priority : %d\n", $3); set_current_network(); tmp_network->priority = $3; } ;network_type_parameter : TK_TYPE '=' TK_WIRELESS { parameter_debug("Type: Wireless\n"); set_current_network(); if (tmp_network->type == UNSET) tmp_network->type = WIRELESS; } | TK_TYPE '=' TK_WIRED { parameter_debug("Type: Wired\n"); set_current_network(); if (tmp_network->type == UNSET) tmp_network->type = WIRED; } | TK_TYPE '=' TK_UNQUOTED_STR { set_current_network(); tmp_network->type = UNSET; printf("Unknown interface type = \"%s\"! Defaulting to UNSET! (Line : %d)\n", $3, config_linenum); } ;network_wpa_group_enc_type : TK_WPA_GROUP_CRYPT '=' TK_WEP40 { parameter_debug("WPA Group Crypt : WEP40\n"); set_current_network(); tmp_network->wpa_group_crypt = CRYPT_WEP40; } | TK_WPA_GROUP_CRYPT '=' TK_TKIP { parameter_debug("WPA Group Crypt : TKIP\n"); set_current_network(); tmp_network->wpa_group_crypt = CRYPT_TKIP; } | TK_WPA_GROUP_CRYPT '=' TK_WRAP { parameter_debug("WPA Group Crypt : WRAP\n"); set_current_network(); tmp_network->wpa_group_crypt = CRYPT_WRAP; } | TK_WPA_GROUP_CRYPT '=' TK_CCMP { parameter_debug("WPA Group Crypt : CCMP\n"); set_current_network(); tmp_network->wpa_group_crypt = CRYPT_CCMP; } | TK_WPA_GROUP_CRYPT '=' TK_WEP104 { parameter_debug("WPA Group Crypt : WEP104\n"); set_current_network(); tmp_network->wpa_group_crypt = CRYPT_WEP104; } ; network_wpa_pairwise_enc_type : TK_WPA_PAIRWISE_CRYPT '=' TK_WEP40 { parameter_debug("WPA Pairwise Crypt : WEP40\n"); set_current_network(); tmp_network->wpa_pairwise_crypt = CRYPT_WEP40; } | TK_WPA_PAIRWISE_CRYPT '=' TK_TKIP { parameter_debug("WPA Pairwise Crypt : TKIP\n"); set_current_network(); tmp_network->wpa_pairwise_crypt = CRYPT_TKIP; } | TK_WPA_PAIRWISE_CRYPT '=' TK_WRAP { parameter_debug("WPA Pairwise Crypt : WRAP\n"); set_current_network(); tmp_network->wpa_pairwise_crypt = CRYPT_WRAP; } | TK_WPA_PAIRWISE_CRYPT '=' TK_CCMP { parameter_debug("WPA Pairwise Crypt : CCMP\n"); set_current_network(); tmp_network->wpa_pairwise_crypt = CRYPT_CCMP; } | TK_WPA_PAIRWISE_CRYPT '=' TK_WEP104 { parameter_debug("WPA Pairwise Crypt : WEP104\n"); set_current_network(); tmp_network->wpa_pairwise_crypt = CRYPT_WEP104; } ; network_force_eapol_ver : TK_FORCE_EAPOL_VER '=' TK_NUMBER { parameter_debug("Force EAPOL Version : %d\n", $3); set_current_network(); tmp_network->force_eapol_ver = $3; } ;network_control_wireless : TK_CONTROL_WIRELESS '=' TK_YES { parameter_debug("Control Wireless = YES\n"); set_current_network(); if (tmp_network->wireless_ctrl == CTL_UNSET) tmp_network->wireless_ctrl = CTL_YES; } | TK_CONTROL_WIRELESS '=' TK_NO { parameter_debug("Control Wireless = NO\n"); set_current_network(); if (tmp_network->wireless_ctrl == CTL_UNSET) tmp_network->wireless_ctrl = CTL_NO; } | TK_CONTROL_WIRELESS '=' TK_UNQUOTED_STR { set_current_network(); tmp_network->wireless_ctrl = CTL_UNSET; printf("Unknown option for Control Wireless = \"%s\"! Defaulting to UNSET! (Line : %d)\n", $3, config_linenum); } ;network_identity_parameter : TK_IDENTITY '=' TK_IDENTITY_VAL { parameter_debug("ID: \"%s\"\n", $3); set_current_network(); if (!tmp_network->identity) tmp_network->identity = $3; else free($3); } | TK_IDENTITY '=' TK_QUOTED_STR { parameter_debug("ID: \"%s\"\n", $3); set_current_network(); if (!tmp_network->identity) tmp_network->identity = $3; else free($3); } | TK_IDENTITY '=' TK_UNQUOTED_STR { parameter_debug("ID: \"%s\"\n", $3); set_current_network(); if (!tmp_network->identity) tmp_network->identity = $3; else free($3); } ;network_use_tnc: TK_USE_TNC '=' TK_YES { parameter_debug("Use TNC : Yes"); set_current_network(); SET_FLAG(tmp_network->flags, CONFIG_NET_USE_TNC); } | TK_USE_TNC '=' TK_NO { parameter_debug("Use TNC : No"); set_current_network(); UNSET_FLAG(tmp_network->flags, CONFIG_NET_USE_TNC); } ;network_dest_mac_parameter: TK_DEST_MAC '=' TK_MACADDRESS { parameter_debug("Dest Mac: %s\n", $3); set_current_network(); if (TEST_FLAG(tmp_network->flags, CONFIG_NET_DEST_MAC)) { free($3); } else { int tmp_dst_mac[CONFIG_MAC_LEN]; int retval; SET_FLAG(tmp_network->flags, CONFIG_NET_DEST_MAC); retval = sscanf($3, "%2x:%2x:%2x:%2x:%2x:%2x", &tmp_dst_mac[0], &tmp_dst_mac[1], &tmp_dst_mac[2], &tmp_dst_mac[3], &tmp_dst_mac[4], &tmp_dst_mac[5]); tmp_network->dest_mac[0] = tmp_dst_mac[0]; tmp_network->dest_mac[1] = tmp_dst_mac[1]; tmp_network->dest_mac[2] = tmp_dst_mac[2]; tmp_network->dest_mac[3] = tmp_dst_mac[3]; tmp_network->dest_mac[4] = tmp_dst_mac[4]; tmp_network->dest_mac[5] = tmp_dst_mac[5]; } } ;network_allow_parameter: TK_ALLOW_TYPES '=' TK_ALL { parameter_debug("Allow Types: ALL\n"); set_current_network(); SET_FLAG(tmp_network->flags, CONFIG_NET_ALLOW_ALL); } | TK_ALLOW_TYPES '=' eap_type_list ;eap_type_statement : eap_tls_statement { set_current_network(); if (!config_eap_method_contains_method(tmp_network->methods, EAP_TYPE_TLS)) { add_config_eap_method(&(tmp_network->methods), EAP_TYPE_TLS, tmp_tls); } else delete_config_eap_tls(&tmp_tls); tmp_tls = NULL; } | eap_md5_statement { set_current_network(); if (!config_eap_method_contains_method(tmp_network->methods, EAP_TYPE_MD5)) add_config_eap_method(&(tmp_network->methods), EAP_TYPE_MD5, tmp_md5); else delete_config_eap_md5(&tmp_md5); tmp_md5 = NULL; } | eap_ttls_statement { set_current_network(); if (!config_eap_method_contains_method(tmp_network->methods, EAP_TYPE_TTLS)) add_config_eap_method(&(tmp_network->methods), EAP_TYPE_TTLS, tmp_ttls); else delete_config_eap_ttls(&tmp_ttls); tmp_ttls = NULL; } | static_wep_statement { set_current_network(); if (!config_eap_method_contains_method(tmp_network->methods, STATIC_WEP_METHOD)) add_config_eap_method(&(tmp_network->methods), STATIC_WEP_METHOD, tmp_static_wep); } | initial_wep_statement { set_current_network(); tmp_network->initial_wep = tmp_initial_wep; } | eap_leap_statement { set_current_network(); if (!config_eap_method_contains_method(tmp_network->methods, EAP_TYPE_LEAP)) add_config_eap_method(&(tmp_network->methods), EAP_TYPE_LEAP, tmp_leap); else delete_config_eap_leap(&tmp_leap); tmp_leap = NULL; } | eap_mschapv2_statement { set_current_network(); if (!config_eap_method_contains_method(tmp_network->methods, EAP_TYPE_MSCHAPV2)) add_config_eap_method(&(tmp_network->methods), EAP_TYPE_MSCHAPV2, tmp_mschapv2); else delete_config_eap_mschapv2(&tmp_mschapv2); tmp_mschapv2 = NULL; } | eap_peap_statement { set_current_network(); if (!config_eap_method_contains_method(tmp_network->methods, EAP_TYPE_PEAP)) add_config_eap_method(&(tmp_network->methods), EAP_TYPE_PEAP, tmp_peap); else delete_config_eap_peap(&tmp_peap); tmp_peap = NULL; } | eap_sim_statement { set_current_network(); if (!config_eap_method_contains_method(tmp_network->methods, EAP_TYPE_SIM)) add_config_eap_method(&(tmp_network->methods), EAP_TYPE_SIM,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -