shill: Makes unknown nl80211 messages look like Nl80211Messages.

Before, when NetlinkMessage::CreateMessage was given an nl80211 message
that it didn't recognize, the code generated something that was a
sort-of hybrid between a vanilla NetlinkMessage and an Nl80211Message
(with disasterous results).  This makes the unknown message look just
like an Nl80211Message.

The specific problem this addresses happened because a developer added a
new message type but hadn't, yet, added it to the factory.  This generated
an UnknownMessage and passed it to the message handler.

BUG=None
TEST=unitest

Change-Id: I78bc0861725c660f794c9eec2b99d23dded7d7a2
Reviewed-on: https://gerrit.chromium.org/gerrit/50525
Commit-Queue: Wade Guthrie <wdg@chromium.org>
Reviewed-by: Wade Guthrie <wdg@chromium.org>
Tested-by: Wade Guthrie <wdg@chromium.org>
diff --git a/nl80211_message.h b/nl80211_message.h
index d6ed7af..1eb080f 100644
--- a/nl80211_message.h
+++ b/nl80211_message.h
@@ -418,6 +418,18 @@
 };
 
 
+class UnknownNl80211Message : public Nl80211Message {
+ public:
+  explicit UnknownNl80211Message(uint8_t command)
+      : Nl80211Message(command, "<UNKNOWN NL80211 MESSAGE>"),
+        command_(command) {}
+
+ private:
+  uint8_t command_;
+  DISALLOW_COPY_AND_ASSIGN(UnknownNl80211Message);
+};
+
+
 class UnprotDeauthenticateMessage : public Nl80211Message {
  public:
   static const uint8_t kCommand;