Merge commit '9983e31ac159356438f940406f2d9a74a92b4ee7' into seasocks_update

Took the opertunity to refactor seasocks_logger since it wouldn't
compile.

Change-Id: I087b70bf4758377ba43b709a8e9bbdcad49c190e
diff --git a/aos/seasocks/BUILD b/aos/seasocks/BUILD
index d4411f1..ae8d402 100644
--- a/aos/seasocks/BUILD
+++ b/aos/seasocks/BUILD
@@ -1,7 +1,18 @@
 py_binary(
-  name = 'gen_embedded',
-  visibility = ['//visibility:public'],
-  srcs = [
-    'gen_embedded.py',
-  ],
+    name = "gen_embedded",
+    srcs = [
+        "gen_embedded.py",
+    ],
+    visibility = ["//visibility:public"],
+)
+
+cc_library(
+    name = "seasocks_logger",
+    srcs = ["seasocks_logger.cc"],
+    hdrs = ["seasocks_logger.h"],
+    visibility = ["//visibility:public"],
+    deps = [
+        "//aos/logging",
+        "//third_party/seasocks",
+    ],
 )
diff --git a/aos/seasocks/seasocks_logger.cc b/aos/seasocks/seasocks_logger.cc
new file mode 100644
index 0000000..dad9970
--- /dev/null
+++ b/aos/seasocks/seasocks_logger.cc
@@ -0,0 +1,33 @@
+#include "aos/seasocks/seasocks_logger.h"
+
+#include "aos/logging/logging.h"
+#include "seasocks/PrintfLogger.h"
+
+namespace aos {
+namespace seasocks {
+
+void SeasocksLogger::log(::seasocks::Logger::Level level, const char *message) {
+  // Convert Seasocks error codes to AOS.
+  log_level aos_level;
+  switch (level) {
+    case ::seasocks::Logger::Level::Info:
+      aos_level = INFO;
+      break;
+    case ::seasocks::Logger::Level::Warning:
+      aos_level = WARNING;
+      break;
+    case ::seasocks::Logger::Level::Error:
+    case ::seasocks::Logger::Level::Severe:
+      aos_level = ERROR;
+      break;
+    case ::seasocks::Logger::Level::Debug:
+    case ::seasocks::Logger::Level::Access:
+    default:
+      aos_level = DEBUG;
+      break;
+  }
+  LOG(aos_level, "Seasocks: %s\n", message);
+}
+
+}  // namespace seasocks
+}  // namespace aos
diff --git a/aos/seasocks/seasocks_logger.h b/aos/seasocks/seasocks_logger.h
new file mode 100644
index 0000000..64f13fa
--- /dev/null
+++ b/aos/seasocks/seasocks_logger.h
@@ -0,0 +1,19 @@
+#ifndef AOS_SEASOCKS_SEASOCKS_LOGGER_H_
+#define AOS_SEASOCKS_SEASOCKS_LOGGER_H_
+
+#include "seasocks/PrintfLogger.h"
+
+namespace aos {
+namespace seasocks {
+
+class SeasocksLogger : public ::seasocks::PrintfLogger {
+ public:
+  SeasocksLogger(::seasocks::Logger::Level min_level_to_log)
+      : PrintfLogger(min_level_to_log) {}
+  void log(::seasocks::Logger::Level level, const char *message) override;
+};
+
+}  // namespace seasocks
+}  // namespace aos
+
+#endif  // AOS_SEASOCKS_SEASOCKS_LOGGER_H_