shill: Puts netlink message CreateAttribute calls in msg constructor.
This doesn't move Create*Attribute calls from nested attributes (because
at least some of those have to be created on site -- arrays on nested
attributes, for instance) nor from unittests that create messages that
normally come from the kernel.
BUG=chromium:240446
TEST=unittest
Change-Id: I192a452ec229d0a0ea2b314ad0cb56bff295e339
Reviewed-on: https://gerrit.chromium.org/gerrit/56815
Reviewed-by: Wade Guthrie <wdg@chromium.org>
Tested-by: Wade Guthrie <wdg@chromium.org>
Commit-Queue: Wade Guthrie <wdg@chromium.org>
diff --git a/generic_netlink_message.cc b/generic_netlink_message.cc
index 3e0d04d..39005cf 100644
--- a/generic_netlink_message.cc
+++ b/generic_netlink_message.cc
@@ -133,6 +133,12 @@
const uint8_t GetFamilyMessage::kCommand = CTRL_CMD_GETFAMILY;
const char GetFamilyMessage::kCommandString[] = "CTRL_CMD_GETFAMILY";
+GetFamilyMessage::GetFamilyMessage()
+ : ControlNetlinkMessage(kCommand, kCommandString) {
+ attributes()->CreateStringAttribute(CTRL_ATTR_FAMILY_NAME,
+ "CTRL_ATTR_FAMILY_NAME");
+}
+
// static
NetlinkMessage *ControlNetlinkMessage::CreateMessage(
const nlmsghdr *const_msg) {
diff --git a/generic_netlink_message.h b/generic_netlink_message.h
index b6f9438..ed8d71f 100644
--- a/generic_netlink_message.h
+++ b/generic_netlink_message.h
@@ -122,7 +122,7 @@
static const uint8_t kCommand;
static const char kCommandString[];
- GetFamilyMessage() : ControlNetlinkMessage(kCommand, kCommandString) {}
+ GetFamilyMessage();
private:
DISALLOW_COPY_AND_ASSIGN(GetFamilyMessage);
diff --git a/netlink_manager.cc b/netlink_manager.cc
index 0172611..30540e9 100644
--- a/netlink_manager.cc
+++ b/netlink_manager.cc
@@ -186,11 +186,6 @@
}
GetFamilyMessage msg;
- if (!msg.attributes()->CreateStringAttribute(CTRL_ATTR_FAMILY_NAME,
- "CTRL_ATTR_FAMILY_NAME")) {
- LOG(ERROR) << "Couldn't create string attribute";
- return false;
- }
if (!msg.attributes()->SetStringAttributeValue(CTRL_ATTR_FAMILY_NAME, name)) {
LOG(ERROR) << "Couldn't set string attribute";
return false;
diff --git a/netlink_manager.h b/netlink_manager.h
index d324cd0..7bfe9bc 100644
--- a/netlink_manager.h
+++ b/netlink_manager.h
@@ -39,13 +39,9 @@
// #include "nl80211_message.h"
// GetFamilyMessage msg;
//
-// - And add attributes:
+// - And set attributes:
//
-// if (msg.attributes()->CreateStringAttribute(CTRL_ATTR_FAMILY_NAME,
-// "CTRL_ATTR_FAMILY_NAME")) {
-// msg.attributes()->SetStringAttributeValue(CTRL_ATTR_FAMILY_NAME,
-// "foo");
-// }
+// msg.attributes()->SetStringAttributeValue(CTRL_ATTR_FAMILY_NAME, "foo");
//
// - Then send the message, passing-in a closure to the handler you created:
//
diff --git a/nl80211_message.cc b/nl80211_message.cc
index 5b142c3..ee43e11 100644
--- a/nl80211_message.cc
+++ b/nl80211_message.cc
@@ -619,7 +619,7 @@
const char TriggerScanMessage::kCommandString[] = "NL80211_CMD_TRIGGER_SCAN";
TriggerScanMessage::TriggerScanMessage()
- : Nl80211Message(kCommand, kCommandString) {
+ : Nl80211Message(kCommand, kCommandString) {
attributes()->CreateAttribute(
NL80211_ATTR_IFINDEX, Bind(&NetlinkAttribute::NewNl80211AttributeFromId));
attributes()->CreateAttribute(