moonshot-dbus-server: Change dbus interface
authorJavier Jardón <javier.jardon@codethink.co.uk>
Fri, 20 May 2011 13:43:43 +0000 (14:43 +0100)
committerJavier Jardón <javier.jardon@codethink.co.uk>
Fri, 20 May 2011 13:47:34 +0000 (14:47 +0100)
We now have 6 parameters in the "get_identity" function
We send 3 optional strings (nai, password, service) and return 3
strings (nai, password, certificate).
Also, It returns a boolean that is true is all is correct

src/dbus-client.vala
src/moonshot-dbus-server.vala

index 05c30b4..ed34f8b 100644 (file)
@@ -1,16 +1,25 @@
 [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);
index 6308762..7eb1b4b 100644 (file)
@@ -8,12 +8,13 @@ public class MoonshotServer : Object {
         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;
 
@@ -21,11 +22,13 @@ public class MoonshotServer : Object {
 
         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;
     }
 }