summaryrefslogtreecommitdiff
path: root/gisi
diff options
context:
space:
mode:
authorMika Liljeberg <mika.liljeberg@nokia.com>2010-10-05 10:20:53 +0300
committerAki Niemi <aki.niemi@nokia.com>2010-10-21 21:39:41 +0300
commita4117e5411cecb1d96b4aabaf6c32978755bc7ac (patch)
tree295622478db1a851fac85dc772f60586dbe4a35c /gisi
parent0e95bfd856ecb5b12aa9943ef2adf40e0137ec6f (diff)
downloadofono-a4117e5411cecb1d96b4aabaf6c32978755bc7ac.tar.gz
gisi: store object handle for associated server
Diffstat (limited to 'gisi')
-rw-r--r--gisi/client.c26
-rw-r--r--gisi/client.h3
-rw-r--r--gisi/verify.c1
3 files changed, 30 insertions, 0 deletions
diff --git a/gisi/client.c b/gisi/client.c
index 1407dff4..464ed3a2 100644
--- a/gisi/client.c
+++ b/gisi/client.c
@@ -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
diff --git a/gisi/client.h b/gisi/client.h
index a6d09006..c189e8a6 100644
--- a/gisi/client.h
+++ b/gisi/client.h
@@ -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);
diff --git a/gisi/verify.c b/gisi/verify.c
index b70b89e0..02d310b5 100644
--- a/gisi/verify.c
+++ b/gisi/verify.c
@@ -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;
}