⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 config_grammar.y

📁 Linux上的802.1x 的supplicant的实现。很多supplicant程序都是基于它开发的
💻 Y
📖 第 1 页 / 共 5 页
字号:
		      }		      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 + -