2002-10-05 05:02:07 +04:00
|
|
|
/* Network utilities for the Midnight Commander Virtual File System.
|
2010-11-08 13:21:45 +03:00
|
|
|
|
2007-09-26 14:22:25 +04:00
|
|
|
Copyright (C) 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2005, 2007
|
|
|
|
Free Software Foundation, Inc.
|
2010-11-08 13:21:45 +03:00
|
|
|
|
1998-09-27 23:27:58 +04:00
|
|
|
This program is free software; you can redistribute it and/or
|
|
|
|
modify it under the terms of the GNU Library General Public License
|
|
|
|
as published by the Free Software Foundation; either version 2 of
|
|
|
|
the License, or (at your option) any later version.
|
2010-11-08 13:21:45 +03:00
|
|
|
|
1998-02-27 07:54:42 +03:00
|
|
|
This program is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
1998-09-27 23:27:58 +04:00
|
|
|
GNU Library General Public License for more details.
|
1998-02-27 07:54:42 +03:00
|
|
|
|
1998-09-27 23:27:58 +04:00
|
|
|
You should have received a copy of the GNU Library General Public
|
|
|
|
License along with this program; if not, write to the Free Software
|
2005-05-27 07:35:10 +04:00
|
|
|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
|
1998-09-27 23:27:58 +04:00
|
|
|
|
2009-02-07 15:54:58 +03:00
|
|
|
/**
|
|
|
|
* \file
|
|
|
|
* \brief Source: Virtual File System: Network utilities
|
|
|
|
*/
|
|
|
|
|
1998-02-27 07:54:42 +03:00
|
|
|
#include <config.h>
|
2010-07-10 14:01:19 +04:00
|
|
|
|
1998-02-27 07:54:42 +03:00
|
|
|
#include <stdlib.h>
|
|
|
|
#include <signal.h>
|
|
|
|
|
2010-07-10 14:51:54 +04:00
|
|
|
#include "lib/global.h"
|
2010-07-22 12:07:07 +04:00
|
|
|
|
2010-01-08 17:47:19 +03:00
|
|
|
#include "netutil.h"
|
1999-01-21 01:01:11 +03:00
|
|
|
|
2010-11-08 13:21:45 +03:00
|
|
|
/*** global variables ****************************************************************************/
|
|
|
|
|
2010-07-10 14:51:54 +04:00
|
|
|
volatile sig_atomic_t got_sigpipe = 0;
|
1998-02-27 07:54:42 +03:00
|
|
|
|
2010-11-08 13:21:45 +03:00
|
|
|
/*** file scope macro definitions ****************************************************************/
|
|
|
|
|
|
|
|
/*** file scope type declarations ****************************************************************/
|
|
|
|
|
|
|
|
/*** file scope variables ************************************************************************/
|
|
|
|
|
|
|
|
/*** file scope functions ************************************************************************/
|
|
|
|
/* --------------------------------------------------------------------------------------------- */
|
|
|
|
|
2002-10-01 08:18:38 +04:00
|
|
|
static void
|
|
|
|
sig_pipe (int unused)
|
1998-02-27 07:54:42 +03:00
|
|
|
{
|
2005-02-22 21:35:22 +03:00
|
|
|
(void) unused;
|
1998-02-27 07:54:42 +03:00
|
|
|
got_sigpipe = 1;
|
|
|
|
}
|
|
|
|
|
2010-11-08 13:21:45 +03:00
|
|
|
/* --------------------------------------------------------------------------------------------- */
|
|
|
|
/*** public functions ****************************************************************************/
|
|
|
|
/* --------------------------------------------------------------------------------------------- */
|
|
|
|
|
2002-10-01 08:18:38 +04:00
|
|
|
void
|
|
|
|
tcp_init (void)
|
1998-02-27 07:54:42 +03:00
|
|
|
{
|
2010-07-10 14:51:54 +04:00
|
|
|
static gboolean initialized = FALSE;
|
1998-02-27 07:54:42 +03:00
|
|
|
struct sigaction sa;
|
2009-11-14 19:02:28 +03:00
|
|
|
|
2010-07-10 14:51:54 +04:00
|
|
|
if (initialized)
|
|
|
|
return;
|
2002-10-01 08:18:38 +04:00
|
|
|
|
1998-02-27 07:54:42 +03:00
|
|
|
got_sigpipe = 0;
|
|
|
|
sa.sa_handler = sig_pipe;
|
|
|
|
sa.sa_flags = 0;
|
|
|
|
sigemptyset (&sa.sa_mask);
|
|
|
|
sigaction (SIGPIPE, &sa, NULL);
|
2009-11-14 19:02:28 +03:00
|
|
|
|
2010-07-10 14:51:54 +04:00
|
|
|
initialized = TRUE;
|
1998-02-27 07:54:42 +03:00
|
|
|
}
|
2010-11-08 13:21:45 +03:00
|
|
|
|
|
|
|
/* --------------------------------------------------------------------------------------------- */
|