Construct signature and exec_name from udev rules

Current all udev collected reports have the same signature and
exec_name. This patch makes that different udev rules generate
reports with different signatures and exec_name so that it is
easier to search a specific kind of udev report on crash server.

BUG=chromium-os:35169
TEST=Tested locally, with a fake udev rule
ACTION=="change", SUBSYSTEM=="i2c", DRIVER=="cyapa", ENV{ERROR}=="1", RUN+="/sbin/crash_reporter --udev=SUBSYSTEM=i2c-cyapa:ACTION=change"
and fake crash_reporter_logs.conf entry
crash_reporter-udev-collection-change--i2c-cyapa:grep -C 20 cyapa /var/log/messages
Generate a report log with meta data:
"
sig=crash_reporter-udev-collection-change--i2c-cyapa
exec_name=udev-i2c-cyapa
ver=3120.0.2012_10_31_1248
payload=/var/spool/crash/change__i2c_cyapa.20121102.125731.0.log.gz
payload_size=6557
done=1
"

Change-Id: I9f7905b69e786a2a13cb8a8df46eeba243157009
Reviewed-on: https://gerrit.chromium.org/gerrit/37262
Reviewed-by: Simon Que <sque@chromium.org>
Reviewed-by: Michael Krebs <mkrebs@chromium.org>
Commit-Ready: Yufeng Shen <miletus@chromium.org>
Tested-by: Yufeng Shen <miletus@chromium.org>
diff --git a/crash_reporter/udev_collector.cc b/crash_reporter/udev_collector.cc
index 0f7df3d..138ec4b 100644
--- a/crash_reporter/udev_collector.cc
+++ b/crash_reporter/udev_collector.cc
@@ -80,8 +80,10 @@
   else
     crash_path = crash_path_zipped;
 
-  AddCrashMetaData(kUdevSignatureKey, kCollectUdevSignature);
+  std::string exec_name = std::string(kUdevExecName) + "-" +
+      udev_event_map["SUBSYSTEM"];
+  AddCrashMetaData(kUdevSignatureKey, udev_log_name);
   WriteCrashMetaData(GetCrashPath(crash_directory, log_file_name, "meta"),
-                     kUdevExecName, crash_path.value());
+                     exec_name, crash_path.value());
   return true;
 }