web-dev-qa-db-ja.com

アクセスポイントのリストはどこに保存されていますか?

nmcliおよびiwlistは、キャッシュされたリストに表示されるアクセスポイントをどこに保存しますか:共通ファイルまたは揮発性メモリに保存しますか?

2
Morten

nmcliソースコード($ apt-get source network-manager)をすばやく見ると、AP情報(src/devices/wifi/nm-wifi-ap.c)を含む構造が揮発性メモリに保存されているようです(構造がマロックされているかどうかはわかりません)静的に割り当てられますが、前者を選択します)。

構造はこれです(実際には2つあります):

typedef struct {
char *supplicant_path;   /* D-Bus object path of this AP from wpa_supplicant */

/* Scanned or cached values */
GByteArray *       ssid;
char *             address;
NM80211Mode        mode;
guint8             strength;
guint32            freq;        /* Frequency in MHz; ie 2412 (== 2.412 GHz) */
guint32            max_bitrate; /* Maximum bitrate of the AP in Kbit/s (ie 54000 Kb/s == 54Mbit/s) */

NM80211ApFlags         flags;      /* General flags */
NM80211ApSecurityFlags wpa_flags;  /* WPA-related flags */
NM80211ApSecurityFlags rsn_flags;  /* RSN (WPA2) -related flags */

/* Non-scanned attributes */
bool                fake:1;       /* Whether or not the AP is from a scan */
bool                hotspot:1;    /* Whether the AP is a local device's hotspot network */
gint32              last_seen;  /* Timestamp when the AP was seen lastly (obtained via nm_utils_get_monotonic_timestamp_s()) */
} NMWifiAPPrivate;

struct _NMWifiAP {
    NMExportedObject parent;
    NMWifiAPPrivate _priv;
};

私はコードを深く掘り下げていないので間違っているかもしれませんが、この構造はnmcli device wifi listを呼び出すときに割り当てられて実行され、コマンドが終了すると破棄されると思います。ある種のファイルまたはメモリダンプに「保存状態」を意味するより複雑な機能があるかもしれませんが、現時点では言えません。

Iwlistについては言えません(実際にはコードを見ていません)。

これは実際には答えではないのでコメントとして投稿したと思いますが、明らかに長すぎます。

[〜#〜]更新[〜#〜]

nmcli github page を見ると、次のように記載されています。

NetworkManagerデーモンは特権サービスとして実行されますが(ハードウェアにアクセスして制御する必要があるため)、ネットワークのきめ細かい制御を可能にするためにシステムバス上にD-Busインターフェイスを提供します。 NetworkManagerは接続や設定を保存せず、それらの接続を選択してアクティブ化するメカニズムのみです。

事前定義されたネットワーク接続を保存するために、「システム設定サービス」と「ユーザー設定サービス」の2つの別個のサービスが接続情報を保存し、これもD-Bus経由でNetworkManagerに提供します。各設定サービスは、接続情報を永続的に保存する方法と場所を決定できます。たとえば、GNOMEアプレットはその構成をGConfに保存し、システム設定サービスはその構成をユーザー/管理者の設定に応じてディストリビューション固有の形式またはディストリビューションに依存しない形式で保存します。

2
LotoLo