summaryrefslogtreecommitdiff
path: root/src/munia_proto.cc
diff options
context:
space:
mode:
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++;
}