[DBus (name = "org.janet.Moonshot")]
interface Moonshot : Object {
- public abstract string[] get_identity (string identity, string username, string password) throws DBus.Error;
+ public abstract bool get_identity (string nai, string password, string service,
+ out string nai_out, out string password_out, out string certificate_out) throws DBus.Error;
}
void main () {
try {
+ string nai_out, password_out, certificate_out;
+
var conn = DBus.Bus.get (DBus.BusType.SESSION);
var demo = (Moonshot) conn.get_object ("org.janet.Moonshot",
"/org/janet/moonshot");
- var text = demo.get_identity ("username@issuer", "pass", "service");
- stdout.printf ("%s %s %s\n", text[0], text[1], text[2]);
+ if (demo.get_identity ("username@issuer", "pass", "service", out nai_out, out password_out, out certificate_out))
+ {
+ stdout.printf ("%s %s %s\n", nai_out, password_out, certificate_out);
+ }
+ else
+ {
+ stdout.printf ("The nai, password or service doesnt match the selected id_card\n");
+ }
} catch (DBus.Error e) {
stderr.printf ("%s\n", e.message);
this.main_window = (MainWindow) window;
}
- public async string[] get_identity (string nai,
- string password,
- string service)
+ public async bool get_identity (string nai,
+ string password,
+ string service,
+ out string nai_out,
+ out string password_out,
+ out string certificate_out)
{
- string[3] information = {"", "", ""};
-
main_window.set_callback (get_identity.callback);
yield;
if (id_card.nai == nai || id_card.password == password)
{
- information[0] = id_card.nai;
- information[1] = id_card.password;
- information[2] = "certificate";
+ nai_out = id_card.nai;
+ password_out = id_card.password;
+ certificate_out = "certificate";
+
+ return true;
}
- return information;
+ return false;
}
}