Client library: make MT-safe; add get_default_identity()
[moonshot-ui.git] / src / dbus-client.vala
1 [DBus (name = "org.janet.Moonshot")]
2 interface Moonshot : Object {
3     public abstract bool get_identity (string nai, string password, string service,
4                                        out string nai_out, out string password_out,
5                                        out string server_certificate_hash, out string ca_certificate, out string subject_name_constraint, out string subject_alt_name_constraint) throws DBus.Error;
6     public abstract bool get_default_identity (out string nai_out, out string password_out,
7                                                out string server_certificate_hash, out string ca_certificate, out string subject_name_constraint, out string subject_alt_name_constraint) throws DBus.Error;
8 }
9
10 void main () {
11     try {
12         string nai_out, password_out, certificate_out;
13         string a, b, c;
14
15         var conn = DBus.Bus.get (DBus.BusType.SESSION);
16         var demo = (Moonshot) conn.get_object ("org.janet.Moonshot",
17                                                "/org/janet/moonshot");
18
19
20         if (demo.get_default_identity (out nai_out,
21                                        out password_out,
22                                        out certificate_out,
23                                        out a,
24                                        out b,
25                                        out c))
26         {
27             stdout.printf ("default identity: %s %s\n", nai_out, password_out);
28         }
29         else
30         {
31             stdout.printf ("Unable to get default identity.\n");
32         }
33
34
35         if (demo.get_identity ("username@issuer",
36                                "pass",
37                                "",
38                                out nai_out,
39                                out password_out,
40                                out certificate_out,
41                                out a,
42                                out b,
43                                out c))
44         {
45             stdout.printf ("%s %s %s\n", nai_out, password_out, certificate_out);
46         }
47         else
48         {
49             stdout.printf ("The nai, password or service doesnt match the selected id_card\n");
50         }
51
52     } catch (DBus.Error e) {
53         stderr.printf ("%s\n", e.message);
54     }
55 }