1 /* 2 Network utilities for the Midnight Commander Virtual File System. 3 4 Copyright (C) 1995-2022 5 Free Software Foundation, Inc. 6 7 This file is part of the Midnight Commander. 8 9 The Midnight Commander is free software: you can redistribute it 10 and/or modify it under the terms of the GNU General Public License as 11 published by the Free Software Foundation, either version 3 of the License, 12 or (at your option) any later version. 13 14 The Midnight Commander is distributed in the hope that it will be useful, 15 but WITHOUT ANY WARRANTY; without even the implied warranty of 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 GNU General Public License for more details. 18 19 You should have received a copy of the GNU General Public License 20 along with this program. If not, see <http://www.gnu.org/licenses/>. 21 */ 22 23 /** 24 * \file 25 * \brief Source: Virtual File System: Network utilities 26 */ 27 28 #include <config.h> 29 30 #include <stdlib.h> 31 #include <signal.h> 32 #include <string.h> /* memset() */ 33 34 #include "lib/global.h" 35 36 #include "netutil.h" 37 38 /*** global variables ****************************************************************************/ 39 40 SIG_ATOMIC_VOLATILE_T got_sigpipe = 0; 41 42 /*** file scope macro definitions ****************************************************************/ 43 44 /*** file scope type declarations ****************************************************************/ 45 46 /*** file scope variables ************************************************************************/ 47 48 /*** file scope functions ************************************************************************/ 49 /* --------------------------------------------------------------------------------------------- */ 50 51 static void 52 sig_pipe (int unused) /**/ 53 { 54 (void) unused; 55 got_sigpipe = 1; 56 } 57 58 /* --------------------------------------------------------------------------------------------- */ 59 /*** public functions ****************************************************************************/ 60 /* --------------------------------------------------------------------------------------------- */ 61 62 void 63 tcp_init (void) /*
*/ 64 { 65 static gboolean initialized = FALSE; 66 struct sigaction sa; 67 68 if (initialized) 69 return; 70 71 got_sigpipe = 0; 72 memset (&sa, 0, sizeof (sa)); 73 sa.sa_handler = sig_pipe; 74 sigemptyset (&sa.sa_mask); 75 sigaction (SIGPIPE, &sa, NULL); 76 77 initialized = TRUE; 78 } 79 80 /* --------------------------------------------------------------------------------------------- */