Index: jingle/notifier/listener/push_notifications_send_update_task.cc |
=================================================================== |
--- jingle/notifier/listener/push_notifications_send_update_task.cc (revision 117278) |
+++ jingle/notifier/listener/push_notifications_send_update_task.cc (working copy) |
@@ -44,10 +44,12 @@ |
const buzz::QName kQnPush(kPushNotificationsNamespace, "push"); |
const buzz::QName kQnChannel(buzz::STR_EMPTY, "channel"); |
const buzz::QName kQnData(kPushNotificationsNamespace, "data"); |
+ const buzz::QName kQnRecipient(kPushNotificationsNamespace, "recipient"); |
// Create our update stanza. The message is constructed as: |
// <message from='{full jid}' to='{bare jid}' type='headline'> |
// <push xmlns='google:push' channel='{channel}'> |
+ // [<recipient to='{bare jid}'>{base-64 encoded data}</data>]* |
// <data>{base-64 encoded data}</data> |
// </push> |
// </message> |
@@ -60,6 +62,24 @@ |
push->AddAttr(kQnChannel, notification.channel); |
message->AddElement(push); |
+ const RecipientList& recipients = notification.recipients; |
+ for (uint i = 0; i < recipients.size(); ++i) { |
+ const Recipient& recipient = recipients[i]; |
+ buzz::XmlElement* recipient_element = |
+ new buzz::XmlElement(kQnRecipient, true); |
+ recipient_element->AddAttr(buzz::QN_TO, recipient.to); |
+ if (!recipient.user_specific_data.empty()) { |
+ std::string base64_data; |
+ if (!base::Base64Encode(recipient.user_specific_data, &base64_data)) { |
+ LOG(WARNING) << "Could not encode data " |
+ << recipient.user_specific_data; |
+ } else { |
+ recipient_element->SetBodyText(base64_data); |
+ } |
+ } |
+ push->AddElement(recipient_element); |
akalin
2012/01/12 23:06:44
i think this should be moved to right after the re
ghc
2012/01/13 01:23:07
Done.
|
+ } |
+ |
buzz::XmlElement* data = new buzz::XmlElement(kQnData, true); |
std::string base64_data; |
if (!base::Base64Encode(notification.data, &base64_data)) { |