Block SIGPIPE in Unix plink. In a port-forwarding run we may have lots
[sgt/putty] / unix / uxplink.c
index fc8100c..b3e5679 100644 (file)
@@ -130,14 +130,12 @@ FontSpec *platform_default_fontspec(const char *name)
     return fontspec_new("");
 }
 
-Filename platform_default_filename(const char *name)
+Filename *platform_default_filename(const char *name)
 {
-    Filename ret;
     if (!strcmp(name, "LogFileName"))
-       strcpy(ret.path, "putty.log");
+       return filename_from_str("putty.log");
     else
-       *ret.path = '\0';
-    return ret;
+       return filename_from_str("");
 }
 
 char *x_get_default(const char *key)
@@ -888,6 +886,12 @@ int main(int argc, char **argv)
        conf_set_int(conf, CONF_port, portnumber);
 
     /*
+     * Block SIGPIPE, so that we'll get EPIPE individually on
+     * particular network connections that go wrong.
+     */
+    putty_signal(SIGPIPE, SIG_IGN);
+
+    /*
      * Set up the pipe we'll use to tell us about SIGWINCH.
      */
     if (pipe(signalpipe) < 0) {