From e3c0c95f2ad3d25411c007ce4ffdb25084a1bc0d Mon Sep 17 00:00:00 2001 From: Jonas Suhr Christensen Date: Thu, 12 Apr 2012 15:12:18 +0200 Subject: Added observer id as prefix to server->client commands. --- src/munia_proto.cc | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) (limited to 'src/munia_proto.cc') 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 clients = + std::list > clients = connection_handler.observerlist(omi->nodes); printf("Writing message to %d clients\n", clients.size()); - std::set::iterator ci = clients.begin(); + std::list >::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++; } -- cgit v1.2.3