gisi: store object handle for associated server
authorMika Liljeberg <mika.liljeberg@nokia.com>
Tue, 5 Oct 2010 07:20:53 +0000 (10:20 +0300)
committerAki Niemi <aki.niemi@nokia.com>
Thu, 21 Oct 2010 18:39:41 +0000 (21:39 +0300)
gisi/client.c
gisi/client.h
gisi/verify.c

index 1407dff..464ed3a 100644 (file)
@@ -65,6 +65,7 @@ typedef struct _GIsiIndication GIsiIndication;
 
 struct _GIsiClient {
        uint8_t resource;
+       uint16_t server_obj;
        struct {
                int major;
                int minor;
@@ -203,6 +204,31 @@ int g_isi_version_minor(GIsiClient *client)
 }
 
 /**
+ * Set the server object for the resource associated with @a
+ * client.
+ * @param client client for the resource
+ * @param server object
+ */
+void g_isi_server_object_set(GIsiClient *client, uint16_t obj)
+{
+       if (!client)
+               return;
+
+       client->server_obj = obj;
+}
+
+/**
+ * Returns the server object for the the resource associated with @a
+ * client.
+ * @param client client for the resource
+ * @return server object
+ */
+uint8_t g_isi_server_object(GIsiClient *client)
+{
+       return client ? client->server_obj : 0;
+}
+
+/**
  * Returns the resource associated with @a client
  * @param client client for the resource
  * @return PhoNet resource ID for the client
index a6d0900..c189e8a 100644 (file)
@@ -59,6 +59,9 @@ void g_isi_version_set(GIsiClient *client, int major, int minor);
 int g_isi_version_major(GIsiClient *client);
 int g_isi_version_minor(GIsiClient *client);
 
+void g_isi_server_object_set(GIsiClient *client, uint16_t obj);
+uint8_t g_isi_server_object(GIsiClient *client);
+
 void g_isi_client_set_debug(GIsiClient *client, GIsiDebugFunc func,
                                void *opaque);
 
index b70b89e..02d310b 100644 (file)
@@ -84,6 +84,7 @@ static gboolean verify_cb(GIsiClient *client, const void *restrict data,
 
        if (msg[1] == COMM_ISI_VERSION_GET_RESP && len >= 4) {
                g_isi_version_set(client, msg[2], msg[3]);
+               g_isi_server_object_set(client, object);
                alive = TRUE;
                goto out;
        }