aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJanos Kovacs <janos.f.kovacs@nokia.com>2010-11-21 04:16:57 +0200
committerJanos Kovacs <janos.f.kovacs@nokia.com>2010-11-21 04:16:57 +0200
commita589dbe9c4f002e5aa07dac70f8b42aa00d261dc (patch)
treeab22c5199817e51b5bd9e3c0beb56803d88aaf70
parent400729533ff2fc7c20f39e441638d234f76c6fe2 (diff)
support for manager forced release
-rw-r--r--client/client.c9
-rw-r--r--src/res-conn.c2
2 files changed, 10 insertions, 1 deletions
diff --git a/client/client.c b/client/client.c
index 5cc9cfe..edcbac8 100644
--- a/client/client.c
+++ b/client/client.c
@@ -541,6 +541,7 @@ static void create_manager(void)
resproto_set_handler(rconn, RESMSG_UNREGISTER, manager_receive_message);
resproto_set_handler(rconn, RESMSG_GRANT , manager_receive_message);
resproto_set_handler(rconn, RESMSG_ADVICE , manager_receive_message);
+ resproto_set_handler(rconn, RESMSG_RELEASE , manager_receive_message);
connect_to_manager(rconn);
}
@@ -713,6 +714,14 @@ static void manager_receive_message(resmsg_t *msg, resset_t *rs, void *data)
print_input();
break;
+ case RESMSG_RELEASE:
+ print_message("release request from manager");
+ memset(&req, 0, sizeof(resmsg_t));
+ req.possess.type = RESMSG_RELEASE;
+ manager_send_message(&req);
+ print_input();
+ break;
+
default:
if (config.verbose) {
print_message("%s(): unexpected message type %d (%s)",
diff --git a/src/res-conn.c b/src/res-conn.c
index 46efe83..3ecbeb6 100644
--- a/src/res-conn.c
+++ b/src/res-conn.c
@@ -50,7 +50,7 @@ static int client_valid_message[RESMSG_MAX] = {
[RESMSG_UNREGISTER] = VALID ,
[RESMSG_UPDATE ] = INVALID ,
[RESMSG_ACQUIRE ] = INVALID ,
- [RESMSG_RELEASE ] = INVALID ,
+ [RESMSG_RELEASE ] = VALID ,
[RESMSG_GRANT ] = VALID ,
[RESMSG_ADVICE ] = VALID ,
[RESMSG_AUDIO ] = INVALID ,