]> asedeno.scripts.mit.edu Git - PuTTY.git/blobdiff - be_misc.c
Factor out the back ends' plug log functions.
[PuTTY.git] / be_misc.c
diff --git a/be_misc.c b/be_misc.c
new file mode 100644 (file)
index 0000000..2ca4fac
--- /dev/null
+++ b/be_misc.c
@@ -0,0 +1,36 @@
+/*
+ * be_misc.c: helper functions shared between main network backends.
+ */
+
+#include "putty.h"
+#include "network.h"
+
+void backend_socket_log(void *frontend, int type, SockAddr addr, int port,
+                        const char *error_msg, int error_code)
+{
+    char addrbuf[256], *msg;
+
+    switch (type) {
+      case 0:
+        sk_getaddr(addr, addrbuf, lenof(addrbuf));
+        if (sk_addr_needs_port(addr)) {
+            msg = dupprintf("Connecting to %s port %d", addrbuf, port);
+        } else {
+            msg = dupprintf("Connecting to %s", addrbuf);
+        }
+        break;
+      case 1:
+        sk_getaddr(addr, addrbuf, lenof(addrbuf));
+        msg = dupprintf("Failed to connect to %s: %s", addrbuf, error_msg);
+        break;
+      default:
+        msg = NULL;  /* shouldn't happen, but placate optimiser */
+        break;
+    }
+
+    if (msg) {
+        logevent(frontend, msg);
+        sfree(msg);
+    }
+}
+