summaryrefslogtreecommitdiff
path: root/src/munia_proto.cc
diff options
context:
space:
mode:
authorJonas Suhr Christensen <jsc@umbraculum.org>2012-04-12 15:12:18 +0200
committerJonas Suhr Christensen <jsc@umbraculum.org>2012-04-12 15:12:18 +0200
commite3c0c95f2ad3d25411c007ce4ffdb25084a1bc0d (patch)
tree6e4179bac871a91b842ccfff4aa69466f0787ad8 /src/munia_proto.cc
parentfd373d0b0f580b56f3350e92207cfa499806ca4d (diff)
Added observer id as prefix to server->client commands.
Diffstat (limited to 'src/munia_proto.cc')
-rw-r--r--src/munia_proto.cc23
1 files changed, 15 insertions, 8 deletions
diff --git a/src/munia_proto.cc b/src/munia_proto.cc
index 3679a81..b801009 100644
--- a/src/munia_proto.cc
+++ b/src/munia_proto.cc
@@ -153,22 +153,29 @@ int callback_lws_task(struct libwebsocket_context * context,
MessageList::iterator omi = omsgs.begin();
while(omi != omsgs.end()) {
- std::string msg;
- msg.append((size_t)LWS_SEND_BUFFER_PRE_PADDING, ' ');
- msg.append(msg_tostring(*omi));
- msg.append((size_t)LWS_SEND_BUFFER_POST_PADDING, ' ');
+ std::string msgcmd = msg_tostring(*omi);
printf("%d nodes affected by command\n", omi->nodes.size());
- std::set<clientid_t> clients =
+ std::list<std::pair<clientid_t, taskid_t> > clients =
connection_handler.observerlist(omi->nodes);
printf("Writing message to %d clients\n", clients.size());
- std::set<clientid_t>::iterator ci = clients.begin();
+ std::list<std::pair<clientid_t, taskid_t> >::iterator ci = clients.begin();
while(ci != clients.end()) {
- clientid_t clientid = *ci;
+ std::string msg;
+ clientid_t clientid = (*ci).first;
+ char tidstr[32];
+ sprintf(tidstr, "%u", (*ci).second);
printf("\tAdding data to %p's queue\n", clientid);
- msgqueue[*ci].push(msg);
+
+ msg.append((size_t)LWS_SEND_BUFFER_PRE_PADDING, ' ');
+ msg.append(tidstr);
+ msg.append(" ");
+ msg.append(msgcmd);
+ msg.append((size_t)LWS_SEND_BUFFER_POST_PADDING, ' ');
+
+ msgqueue[clientid].push(msg);
ci++;
}