Log less frequently from the vsock proxy

Bug: 129164354
Test: run locally with crosvm
Change-Id: I86e42f02923de9623b526a915727431d6c6761ea
diff --git a/common/frontend/socket_vsock_proxy/main.cpp b/common/frontend/socket_vsock_proxy/main.cpp
index 7f7248a..ac421a3 100644
--- a/common/frontend/socket_vsock_proxy/main.cpp
+++ b/common/frontend/socket_vsock_proxy/main.cpp
@@ -140,14 +140,24 @@
             << FLAGS_vsock_port;
   auto server = cvd::SharedFD::SocketLocalServer(FLAGS_tcp_port, SOCK_STREAM);
   CHECK(server->IsOpen()) << "Could not start server on " << FLAGS_tcp_port;
+  LOG(INFO) << "Accepting client connections";
+  int last_failure_reason = 0;
   while (true) {
-    LOG(INFO) << "waiting for client connection";
     auto client_socket = cvd::SharedFD::Accept(*server);
     CHECK(client_socket->IsOpen()) << "error creating client socket";
-    LOG(INFO) << "client socket accepted";
     cvd::SharedFD vsock_socket = cvd::SharedFD::VsockClient(
         FLAGS_vsock_guest_cid, FLAGS_vsock_port, SOCK_STREAM);
-    if (!vsock_socket->IsOpen()) {
+    if (vsock_socket->IsOpen()) {
+      last_failure_reason = 0;
+      LOG(INFO) << "Connected to vsock:" << FLAGS_vsock_guest_cid << ":"
+                << FLAGS_vsock_port;
+    } else {
+      // Don't log if the previous connection failed with the same error
+      if (last_failure_reason != vsock_socket->GetErrno()) {
+        last_failure_reason = vsock_socket->GetErrno();
+        LOG(ERROR) << "Unable to connect to vsock server: "
+                   << vsock_socket->StrError();
+      }
       continue;
     }
     auto thread = std::thread(HandleConnection, std::move(vsock_socket),
diff --git a/common/libs/fs/shared_fd.cpp b/common/libs/fs/shared_fd.cpp
index c96d85b..6ca2826 100644
--- a/common/libs/fs/shared_fd.cpp
+++ b/common/libs/fs/shared_fd.cpp
@@ -429,7 +429,6 @@
   addr.svm_cid = cid;
   auto casted_addr = reinterpret_cast<sockaddr*>(&addr);
   if (vsock->Connect(casted_addr, sizeof(addr)) == -1) {
-    LOG(ERROR) << "Connect failed (" << vsock->StrError() << ")";
     return SharedFD::ErrorFD(vsock->GetErrno());
   }
   return vsock;