Integrate unfix.org's IPv6 patches up to level 10, with rather a lot
[u/mdw/putty] / raw.c
diff --git a/raw.c b/raw.c
index 8c1f97f..8619446 100644 (file)
--- a/raw.c
+++ b/raw.c
@@ -37,6 +37,7 @@ static int raw_closing(Plug plug, const char *error_msg, int error_code,
     if (raw->s) {
         sk_close(raw->s);
         raw->s = NULL;
+       notify_remote_exit(raw->frontend);
     }
     if (error_msg) {
        /* A socket error has occurred. */
@@ -93,11 +94,14 @@ static const char *raw_init(void *frontend_handle, void **backend_handle,
      */
     {
        char *buf;
-       buf = dupprintf("Looking up host \"%s\"", host);
+       buf = dupprintf("Looking up host \"%s\"%s", host,
+                       (cfg->addressfamily == ADDRTYPE_IPV4 ? " (IPv4)" :
+                        (cfg->addressfamily == ADDRTYPE_IPV6 ? " (IPv6)" :
+                         "")));
        logevent(raw->frontend, buf);
        sfree(buf);
     }
-    addr = name_lookup(host, port, realhost, cfg);
+    addr = name_lookup(host, port, realhost, cfg, cfg->addressfamily);
     if ((err = sk_addr_error(addr)) != NULL) {
        sk_addr_free(addr);
        return err;
@@ -235,6 +239,14 @@ static int raw_exitcode(void *handle)
         return 0;
 }
 
+/*
+ * cfg_info for Raw does nothing at all.
+ */
+static int raw_cfg_info(void *handle)
+{
+    return 0;
+}
+
 Backend raw_backend = {
     raw_init,
     raw_free,
@@ -251,5 +263,6 @@ Backend raw_backend = {
     raw_provide_ldisc,
     raw_provide_logctx,
     raw_unthrottle,
+    raw_cfg_info,
     1
 };