the secret agent object
the connection for which secrets were requested, note that this object will be unrefed after the callback has returned, use g_object_ref()/g_object_unref() if you want to use this object after the callback has returned
the #GHashTable containing the requested secrets in the same format as an #NMConnection hash (as created by nm_connection_to_hash() for example). Each key in secrets
should be the name of a #NMSetting object (like "802-11-wireless-security") and each value should be a #GHashTable. The sub-hashes map string:#GValue where the string is the setting property name (like "psk") and the value is the secret
if the secrets request failed, give a descriptive error here
Called as a result of a request by NM to retrieve secrets. When the #NMSecretAgent subclass has finished retrieving secrets and is ready to return them, or to return an error, this function should be called with those secrets or the error.
To easily create the hash table to return the Wi-Fi PSK, you could do something like this:
Creating a secrets hash
NMConnection *secrets;
NMSettingWirelessSecurity *s_wsec;
GHashTable *secrets_hash;
secrets = nm_connection_new (); s_wsec = (NMSettingWirelessSecurity *) nm_setting_wireless_security_new (); g_object_set (G_OBJECT (s_wsec), NM_SETTING_WIRELESS_SECURITY_PSK, "my really cool PSK", NULL); nm_connection_add_setting (secrets, NM_SETTING (s_wsec)); secrets_hash = nm_connection_to_hash (secrets, NM_SETTING_HASH_FLAG_ALL);
(call the NMSecretAgentGetSecretsFunc with secrets_hash)
g_object_unref (secrets); g_hash_table_unref (secrets_hash);