shill: Add "GUID" property to Service

Hold, load and save the "GUID" property.

BUG=chromium-os:22800
TEST=Unit tests

Change-Id: I2ab8407213281e82eb71295e05d4ee54d410ba58
Reviewed-on: https://gerrit.chromium.org/gerrit/18688
Commit-Ready: Paul Stewart <pstew@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
diff --git a/service.cc b/service.cc
index e3b3249..4e7eba0 100644
--- a/service.cc
+++ b/service.cc
@@ -132,6 +132,7 @@
   HelpRegisterDerivedString(flimflam::kDeviceProperty,
                             &Service::GetDeviceRpcId,
                             NULL);
+  store_.RegisterString(flimflam::kGuidProperty, &guid_);
 
   store_.RegisterString(flimflam::kEapIdentityProperty, &eap_.identity);
   store_.RegisterString(flimflam::kEAPEAPProperty, &eap_.eap);
@@ -283,6 +284,7 @@
   storage->GetString(id, kStorageProxyConfig, &proxy_config_);
   storage->GetBool(id, kStorageSaveCredentials, &save_credentials_);
   storage->GetString(id, kStorageUIData, &ui_data_);
+  storage->GetString(id, kStorageGUID, &guid_);
 
   LoadEapCredentials(storage, id);
 
@@ -341,6 +343,7 @@
     storage->SetBool(id, kStorageSaveCredentials, false);
   }
   SaveString(storage, id, kStorageUIData, ui_data_, false, true);
+  SaveString(storage, id, kStorageGUID, guid_, false, true);
 
   SaveEapCredentials(storage, id);
 
diff --git a/service.h b/service.h
index a455b7c..968e3a2 100644
--- a/service.h
+++ b/service.h
@@ -250,6 +250,9 @@
   const std::string &friendly_name() const { return friendly_name_; }
   void set_friendly_name(const std::string &n) { friendly_name_ = n; }
 
+  const std::string &guid() const { return guid_; }
+  void set_guid(const std::string &guid) { guid_ = guid; }
+
   int32 priority() const { return priority_; }
   void set_priority(int32 priority) { priority_ = priority; }
 
@@ -425,6 +428,7 @@
   uint8 strength_;
   std::string proxy_config_;
   std::string ui_data_;
+  std::string guid_;
   bool save_credentials_;
   EapCredentials eap_;  // Only saved if |save_credentials_| is true.
   Technology::Identifier technology_;