android wpa_supplicant.c源碼解析

來源:互聯網
上載者:User

標籤:

  要看明白wpa_supplicant.c的代碼,首先需要搞清楚三個很重要的結構體: struct wpa_supplicant,struct wpa_config和wpa_ssid。下面對struct wpa_supplicant的各個成員代表的含義進行說明。

  struct wpa_supplicant {

      u8 bssid[ETH_ALEN];//串連到的bssid對應的mac地址,只有在認證時才會設定此值

      u8 pending_bssid[ETH_ALEN];//認證時將要進行串連的bssid

      struct wpa_bss *current_bss;//當前串連的ssid

      unsigned char own_addr[ETH_ALEN];//本機對應的mac地址

      int reassociate;//認證失敗後置為1

      int new_connection;//連上時值為0,沒連上值為1

      int disconnected;//指示當前supplicant是否處於disconnected狀態

      int *next_scan_freqs;//掃描特定bss時用特定的freq

      enum scan_req_type scan_req;//scan類型,有串連掃描,自動掃描,手動掃描

      int normal_scans;//串連掃描優先自動掃描

      int prev_scan_wildcard;//分為全掃描還是針對特定ssid的掃描

      struct wpa_radio_work *connect_work;//注意struct wpa_radio_work和struct wpa_supplicant相互之間的關係

      int group_cipher;//多播密碼

      int pairwise_cipher;//單播密碼

      int key_mgmt;//單播密鑰管理類型

      int mgmt_group_cipher;//多播密鑰管理類型

      int wpa_proto;//支援的安全方式,如WPA/WPA2(RSN)

      struct l2_packet_data *l2;//資料連結層EAPOL資料包

      int eapol_received;//接收到的EAPOL資料包的個數,總共為4個

      unsigned int drv_flags;//driver的目前狀態及能承擔的角色

      struct eapol_sm *eapol;//對應的struct eapol_sm狀態機器

      struct wpa_sm *wpa;//對應的struct wpa_sm狀態機器

      struct wpa_config *conf;//struct wpa_supplicant對應wpa_supplicant結構體

      char *confname;//對應wpa_supplicant.conf檔案

      char *confanother;//對應p2p_supplicant.conf檔案

      enum wpa_states wpa_state;//對應WPA_DISCONNECTED等def.h中定義的狀態

      struct wpa_supplicant *next;//說明struct wpa_supplicant形成了一個鏈表

      struct wpa_supplicant *parent;//對應struct wpa_supplicant鏈表的前端節點

      struct wpa_global *global;//全域管理struct wpa_supplicant,包含struct wpa_supplicant前端節點

      char ifname[100];//ctrl iface介面的名字,比較ifname和ctrl_iface

      struct ctrl_iface_priv *ctrl_iface;

  }

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

android wpa_supplicant.c源碼解析

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.