gisi: store object handle for associated server

This commit is contained in:
Mika Liljeberg 2010-10-05 10:20:53 +03:00 committed by Aki Niemi
parent 0e95bfd856
commit a4117e5411
3 changed files with 30 additions and 0 deletions

View File

@ -65,6 +65,7 @@ typedef struct _GIsiIndication GIsiIndication;
struct _GIsiClient {
uint8_t resource;
uint16_t server_obj;
struct {
int major;
int minor;
@ -202,6 +203,31 @@ int g_isi_version_minor(GIsiClient *client)
return client ? client->version.minor : -1;
}
/**
* 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

View 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);

View 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;
}