Improved entropy gathering.
[u/mdw/putty] / plink.c
diff --git a/plink.c b/plink.c
index f5f6c8a..ace6c75 100644 (file)
--- a/plink.c
+++ b/plink.c
@@ -370,13 +370,15 @@ int main(int argc, char **argv) {
                         /*
                          * One string.
                          */
-                        do_defaults (p, &cfg);
-                        if (cfg.host[0] == '\0') {
+                        Config cfg2;
+                        do_defaults (p, &cfg2);
+                        if (cfg2.host[0] == '\0') {
                             /* No settings for this host; use defaults */
                             strncpy(cfg.host, p, sizeof(cfg.host)-1);
                             cfg.host[sizeof(cfg.host)-1] = '\0';
                             cfg.port = 22;
-                        }
+                        } else
+                            cfg = cfg2;
                     } else {
                         *r++ = '\0';
                         strncpy(cfg.username, p, sizeof(cfg.username)-1);
@@ -555,6 +557,8 @@ int main(int argc, char **argv) {
                 socket = sklist[i];
                 wp = (WPARAM)socket;
                if (!WSAEnumNetworkEvents(socket, netevent, &things)) {
+                    noise_ultralight(socket);
+                    noise_ultralight(things.lNetworkEvents);
                    if (things.lNetworkEvents & FD_READ)
                        connopen &= select_result(wp, (LPARAM)FD_READ);
                    if (things.lNetworkEvents & FD_CLOSE)
@@ -566,6 +570,7 @@ int main(int argc, char **argv) {
                }
            }
         } else if (n == 1) {
+            noise_ultralight(idata.len);
             if (idata.len > 0) {
                 back->send(idata.buffer, idata.len);
             } else {