void nm_ap_print_self (NMAccessPoint *ap, const char * prefix) { NMAccessPointPrivate *priv; g_return_if_fail (NM_IS_AP (ap)); priv = NM_AP_GET_PRIVATE (ap); nm_info ("%s'%s' (%p) stamp=%ld flags=0x%X wpa-flags=0x%X rsn-flags=0x%x " "bssid=" MAC_FMT " strength=%d freq=%d rate=%d mode=%d seen=%ld", prefix, priv->ssid ? nm_utils_escape_ssid (priv->ssid->data, priv->ssid->len) : "(none)", ap, priv->timestamp.tv_sec, priv->flags, priv->wpa_flags, priv->rsn_flags, MAC_ARG (priv->address.ether_addr_octet), priv->strength, priv->freq, priv->max_bitrate, priv->mode, priv->last_seen); }
const char * nm_ap_get_dbus_path (NMAccessPoint *ap) { g_return_val_if_fail (NM_IS_AP (ap), NULL); return NM_AP_GET_PRIVATE (ap)->dbus_path; }
void nm_ap_dump (NMAccessPoint *self, const char *prefix, const char *ifname) { NMAccessPointPrivate *priv; const char *supplicant_id = "-"; guint32 chan; g_return_if_fail (NM_IS_AP (self)); priv = NM_AP_GET_PRIVATE (self); chan = nm_utils_wifi_freq_to_channel (priv->freq); if (priv->supplicant_path) supplicant_id = strrchr (priv->supplicant_path, '/'); nm_log_dbg (LOGD_WIFI_SCAN, "%s[%s%c] %-32s[%s%u %s%u%% %c W:%04X R:%04X] [%3u] %s%s", prefix, str_if_set (priv->address, "(none)"), mode_to_char (self), priv->ssid ? nm_utils_escape_ssid (priv->ssid->data, priv->ssid->len) : "(none)", chan > 99 ? "" : (chan > 9 ? " " : " "), chan, priv->strength < 100 ? " " : "", priv->strength, priv->flags & NM_802_11_AP_FLAGS_PRIVACY ? 'P' : ' ', priv->wpa_flags & 0xFFFF, priv->rsn_flags & 0xFFFF, priv->last_seen > 0 ? (nm_utils_get_monotonic_timestamp_s () - priv->last_seen) : -1, ifname, supplicant_id); }
gboolean nm_ap_get_fake (const NMAccessPoint *ap) { g_return_val_if_fail (NM_IS_AP (ap), FALSE); return NM_AP_GET_PRIVATE (ap)->fake; }
void nm_ap_set_fake (NMAccessPoint *ap, gboolean fake) { g_return_if_fail (NM_IS_AP (ap)); NM_AP_GET_PRIVATE (ap)->fake = fake; }
guint32 nm_ap_get_freq (NMAccessPoint *ap) { g_return_val_if_fail (NM_IS_AP (ap), 0); return NM_AP_GET_PRIVATE (ap)->freq; }
guint32 nm_ap_get_max_bitrate (NMAccessPoint *ap) { g_return_val_if_fail (NM_IS_AP (ap), 0); return NM_AP_GET_PRIVATE (ap)->max_bitrate; }
gboolean nm_ap_is_hotspot (NMAccessPoint *ap) { g_return_val_if_fail (NM_IS_AP (ap), FALSE); return NM_AP_GET_PRIVATE (ap)->hotspot; }
gint8 nm_ap_get_strength (NMAccessPoint *ap) { g_return_val_if_fail (NM_IS_AP (ap), 0); return NM_AP_GET_PRIVATE (ap)->strength; }
const char * nm_ap_get_address (const NMAccessPoint *ap) { g_return_val_if_fail (NM_IS_AP (ap), NULL); return NM_AP_GET_PRIVATE (ap)->address; }
NM80211Mode nm_ap_get_mode (NMAccessPoint *ap) { g_return_val_if_fail (NM_IS_AP (ap), NM_802_11_MODE_UNKNOWN); return NM_AP_GET_PRIVATE (ap)->mode; }
void nm_ap_set_ssid (NMAccessPoint *ap, const GByteArray * ssid) { NMAccessPointPrivate *priv; g_return_if_fail (NM_IS_AP (ap)); priv = NM_AP_GET_PRIVATE (ap); if ((ssid == priv->ssid) && ssid == NULL) return; /* same SSID */ if ((ssid && priv->ssid) && (ssid->len == priv->ssid->len)) { if (!memcmp (ssid->data, priv->ssid->data, ssid->len)) return; } if (priv->ssid) { g_byte_array_free (priv->ssid, TRUE); priv->ssid = NULL; } if (ssid) { priv->ssid = g_byte_array_sized_new (ssid->len); priv->ssid->len = ssid->len; memcpy (priv->ssid->data, ssid->data, ssid->len); } g_object_notify (G_OBJECT (ap), NM_AP_SSID); }
void nm_ap_set_ssid (NMAccessPoint *ap, const guint8 *ssid, gsize len) { NMAccessPointPrivate *priv; g_return_if_fail (NM_IS_AP (ap)); g_return_if_fail (ssid == NULL || len > 0); priv = NM_AP_GET_PRIVATE (ap); /* same SSID */ if ((ssid && priv->ssid) && (len == priv->ssid->len)) { if (!memcmp (ssid, priv->ssid->data, len)) return; } if (priv->ssid) { g_byte_array_free (priv->ssid, TRUE); priv->ssid = NULL; } if (ssid) { priv->ssid = g_byte_array_new (); g_byte_array_append (priv->ssid, ssid, len); } g_object_notify (G_OBJECT (ap), NM_AP_SSID); }
NM80211ApSecurityFlags nm_ap_get_rsn_flags (NMAccessPoint *ap) { g_return_val_if_fail (NM_IS_AP (ap), NM_802_11_AP_SEC_NONE); return NM_AP_GET_PRIVATE (ap)->rsn_flags; }
void nm_ap_export_to_dbus (NMAccessPoint *ap) { NMAccessPointPrivate *priv; NMDBusManager *mgr; DBusGConnection *g_connection; static guint32 counter = 0; g_return_if_fail (NM_IS_AP (ap)); priv = NM_AP_GET_PRIVATE (ap); if (priv->dbus_path) { nm_warning ("Tried to export AP %s twice.", priv->dbus_path); return; } mgr = nm_dbus_manager_get (); g_assert (mgr); g_connection = nm_dbus_manager_get_connection (mgr); g_assert (g_connection); priv->dbus_path = g_strdup_printf (NM_DBUS_PATH_ACCESS_POINT "/%d", counter++); dbus_g_connection_register_g_object (g_connection, priv->dbus_path, G_OBJECT (ap)); g_object_unref (mgr); }
void nm_ap_set_supplicant_path (NMAccessPoint *ap, const char *path) { g_return_if_fail (NM_IS_AP (ap)); g_return_if_fail (path != NULL); g_free (NM_AP_GET_PRIVATE (ap)->supplicant_path); NM_AP_GET_PRIVATE (ap)->supplicant_path = g_strdup (path); }
/* * Get/set functions for max bitrate * */ guint32 nm_ap_get_max_bitrate (NMAccessPoint *ap) { guint32 rate; g_return_val_if_fail (NM_IS_AP (ap), 0); g_object_get (ap, NM_AP_MAX_BITRATE, &rate, NULL); return rate; }
/* * Get/set functions for strength * */ gint8 nm_ap_get_strength (NMAccessPoint *ap) { gint8 strength; g_return_val_if_fail (NM_IS_AP (ap), 0); g_object_get (ap, NM_AP_STRENGTH, &strength, NULL); return strength; }
/* * Get/set functions for mode (ie Ad-Hoc, Infrastructure, etc) * */ NM80211Mode nm_ap_get_mode (NMAccessPoint *ap) { NM80211Mode mode; g_return_val_if_fail (NM_IS_AP (ap), -1); g_object_get (ap, NM_AP_MODE, &mode, NULL); return mode; }
/* * Get/set functions for frequency * */ guint32 nm_ap_get_freq (NMAccessPoint *ap) { guint32 freq; g_return_val_if_fail (NM_IS_AP (ap), 0); g_object_get (ap, NM_AP_FREQUENCY, &freq, NULL); return freq; }
void nm_ap_set_timestamp (NMAccessPoint *ap, glong sec, glong usec) { NMAccessPointPrivate *priv; g_return_if_fail (NM_IS_AP (ap)); priv = NM_AP_GET_PRIVATE (ap); priv->timestamp.tv_sec = sec; priv->timestamp.tv_usec = usec; }
guint32 nm_ap_get_rsn_flags (NMAccessPoint *ap) { guint32 flags; g_return_val_if_fail (NM_IS_AP (ap), NM_802_11_AP_SEC_NONE); g_object_get (ap, NM_AP_RSN_FLAGS, &flags, NULL); return flags; }
void nm_ap_set_strength (NMAccessPoint *ap, const gint8 strength) { NMAccessPointPrivate *priv; g_return_if_fail (NM_IS_AP (ap)); priv = NM_AP_GET_PRIVATE (ap); if (priv->strength != strength) { priv->strength = strength; g_object_notify (G_OBJECT (ap), NM_AP_STRENGTH); } }
static void nm_ap_set_rsn_flags (NMAccessPoint *ap, NM80211ApSecurityFlags flags) { NMAccessPointPrivate *priv; g_return_if_fail (NM_IS_AP (ap)); priv = NM_AP_GET_PRIVATE (ap); if (priv->rsn_flags != flags) { priv->rsn_flags = flags; g_object_notify (G_OBJECT (ap), NM_AP_RSN_FLAGS); } }
void nm_ap_set_address (NMAccessPoint *ap, const struct ether_addr * addr) { NMAccessPointPrivate *priv; g_return_if_fail (NM_IS_AP (ap)); g_return_if_fail (addr != NULL); priv = NM_AP_GET_PRIVATE (ap); if (memcmp (addr, &priv->address, sizeof (priv->address))) { memcpy (&NM_AP_GET_PRIVATE (ap)->address, addr, sizeof (struct ether_addr)); g_object_notify (G_OBJECT (ap), NM_AP_HW_ADDRESS); } }
void nm_ap_set_wpa_flags (NMAccessPoint *ap, guint32 flags) { NMAccessPointPrivate *priv; g_return_if_fail (NM_IS_AP (ap)); priv = NM_AP_GET_PRIVATE (ap); if (priv->wpa_flags != flags) { priv->wpa_flags = flags; g_object_notify (G_OBJECT (ap), NM_AP_WPA_FLAGS); } }
static void nm_ap_set_last_seen (NMAccessPoint *ap, gint32 last_seen) { NMAccessPointPrivate *priv; g_return_if_fail (NM_IS_AP (ap)); priv = NM_AP_GET_PRIVATE (ap); if (priv->last_seen != last_seen) { priv->last_seen = last_seen; g_object_notify (G_OBJECT (ap), NM_AP_LAST_SEEN); } }
void nm_ap_set_max_bitrate (NMAccessPoint *ap, guint32 bitrate) { NMAccessPointPrivate *priv; g_return_if_fail (NM_IS_AP (ap)); priv = NM_AP_GET_PRIVATE (ap); if (priv->max_bitrate != bitrate) { priv->max_bitrate = bitrate; g_object_notify (G_OBJECT (ap), NM_AP_MAX_BITRATE); } }
void nm_ap_set_freq (NMAccessPoint *ap, const guint32 freq) { NMAccessPointPrivate *priv; g_return_if_fail (NM_IS_AP (ap)); priv = NM_AP_GET_PRIVATE (ap); if (priv->freq != freq) { priv->freq = freq; g_object_notify (G_OBJECT (ap), NM_AP_FREQUENCY); } }
void nm_ap_set_mode (NMAccessPoint *ap, const NM80211Mode mode) { NMAccessPointPrivate *priv; g_return_if_fail (NM_IS_AP (ap)); g_return_if_fail ( mode == NM_802_11_MODE_ADHOC || mode == NM_802_11_MODE_INFRA); priv = NM_AP_GET_PRIVATE (ap); if (priv->mode != mode) { priv->mode = mode; g_object_notify (G_OBJECT (ap), NM_AP_MODE); } }