From d79228b35f3fbe55dc2867658f951be6caed1d8e Mon Sep 17 00:00:00 2001 From: Sebastian Zagrodzki Date: Tue, 5 Nov 2002 15:17:08 +0000 Subject: [PATCH] - enable processing SIGPIPE Changed files: openssh-sigpipe.patch -> 1.1 --- openssh-sigpipe.patch | 86 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 openssh-sigpipe.patch diff --git a/openssh-sigpipe.patch b/openssh-sigpipe.patch new file mode 100644 index 0000000..05f126f --- /dev/null +++ b/openssh-sigpipe.patch @@ -0,0 +1,86 @@ +diff -Naur openssh-3.5p1/clientloop.c openssh-3.5p1-p/clientloop.c +--- openssh-3.5p1/clientloop.c Wed Sep 4 08:32:13 2002 ++++ openssh-3.5p1-p/clientloop.c Tue Nov 5 15:46:26 2002 +@@ -96,6 +96,9 @@ + */ + extern char *host; + ++/* if we process SIGPIPE */ ++extern int enable_sigpipe; ++ + /* + * Flag to indicate that we have received a window change signal which has + * not yet been processed. This will cause a message indicating the new +@@ -892,6 +895,10 @@ + signal(SIGINT, signal_handler); + signal(SIGQUIT, signal_handler); + signal(SIGTERM, signal_handler); ++ ++ if (enable_sigpipe) ++ signal(SIGPIPE, signal_handler); ++ + if (have_pty) + signal(SIGWINCH, window_change_handler); + +diff -Naur openssh-3.5p1/ssh.1 openssh-3.5p1-p/ssh.1 +--- openssh-3.5p1/ssh.1 Mon Sep 30 04:00:56 2002 ++++ openssh-3.5p1-p/ssh.1 Tue Nov 5 15:51:54 2002 +@@ -48,7 +48,7 @@ + .Op Ar command + .Pp + .Nm ssh +-.Op Fl afgknqstvxACNTX1246 ++.Op Fl afgknqstvxABCNTX1246 + .Op Fl b Ar bind_address + .Op Fl c Ar cipher_spec + .Op Fl e Ar escape_char +@@ -412,6 +412,9 @@ + .It Fl b Ar bind_address + Specify the interface to transmit from on machines with multiple + interfaces or aliased addresses. ++.It Fl B ++Enables processing of SIGPIPE. Useful when using ssh output as input for ++another process, for example in a shell script. + .It Fl c Ar blowfish|3des|des + Selects the cipher to use for encrypting the session. + .Ar 3des +diff -Naur openssh-3.5p1/ssh.c openssh-3.5p1-p/ssh.c +--- openssh-3.5p1/ssh.c Thu Sep 19 04:05:04 2002 ++++ openssh-3.5p1-p/ssh.c Tue Nov 5 15:44:57 2002 +@@ -143,6 +143,9 @@ + /* Should we execute a command or invoke a subsystem? */ + int subsystem_flag = 0; + ++/* Enable sigpipe */ ++int enable_sigpipe = 0; ++ + /* # of replies received for global requests */ + static int client_global_request_id = 0; + +@@ -161,6 +164,7 @@ + fprintf(stderr, " -F config Config file (default: ~/%s).\n", + _PATH_SSH_USER_CONFFILE); + fprintf(stderr, " -A Enable authentication agent forwarding.\n"); ++ fprintf(stderr, " -B Enable SIGPIPE processing.\n"); + fprintf(stderr, " -a Disable authentication agent forwarding (default).\n"); + #ifdef AFS + fprintf(stderr, " -k Disable Kerberos ticket and AFS token forwarding.\n"); +@@ -275,7 +279,7 @@ + + again: + while ((opt = getopt(ac, av, +- "1246ab:c:e:fgi:kl:m:no:p:qstvxACD:F:I:L:NPR:TVX")) != -1) { ++ "1246ab:c:e:fgi:kl:m:no:p:qstvxABCD:F:I:L:NPR:TVX")) != -1) { + switch (opt) { + case '1': + options.protocol = SSH_PROTO_1; +@@ -314,6 +318,9 @@ + case 'A': + options.forward_agent = 1; + break; ++ case 'B': ++ enable_sigpipe = 1; ++ break; + #ifdef AFS + case 'k': + options.kerberos_tgt_passing = 0; -- 2.44.0