Onde a lista de pontos de acesso é armazenada?

3

Onde nmcli e iwlist armazenam os pontos de acesso vistos na lista em cache: em um arquivo comum ou em memória volátil?

    
por Morten 05.09.2017 / 10:16

1 resposta

2

Olhando rapidamente para o código-fonte nmcli ( $ apt-get source network-manager ), parece que a estrutura que contém as informações do AP ( src/devices/wifi/nm-wifi-ap.c ) é armazenada na memória volátil (não tenho certeza se a estrutura está centralizada ou alocada estaticamente, mas iria para o primeiro).

A estrutura é essa (na verdade, existem duas):

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;
};

Eu não gravei o código profundamente, portanto, posso estar errado, mas suponho que essa estrutura seja alocada e atendida quando chamarmos nmcli device wifi list e, em seguida, destruídos quando o comando sair. Talvez existam recursos mais complicados, o que implica um "estado de salvamento" em algum tipo de arquivo ou despejo de memória, mas não posso dizer agora.

Eu não posso dizer para o iwlist (na verdade, não olhei para o código).

Eu teria postado isso como um comentário, pois não é realmente uma resposta, mas é obviamente muito longo.

UPDATE

Olhando para página do nmcli github , ele afirma:

The NetworkManager daemon runs as a privileged service (since it must access and control hardware), but provides a D-Bus interface on the system bus to allow for fine-grained control of networking. NetworkManager does not store connections or settings, it is only the mechanism by which those connections are selected and activated.

To store pre-defined network connections, two separate services, the "system settings service" and the "user settings service" store connection information and provide these to NetworkManager, also via D-Bus. Each settings service can determine how and where it persistently stores the connection information; for example, the GNOME applet stores its configuration in GConf, and the system settings service stores it's config in distro-specific formats, or in a distro- agnostic format, depending on user/administrator preference.

    
por 05.09.2017 / 11:58

Tags