#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif /* HAVE_UNISTD_H */
-#include <sys/types.h>
-#ifdef HAVE_STRING_H
-# include <string.h>
-#else
-# include <strings.h>
-#endif /* HAVE_STRING_H */
-#ifdef HAVE_SIGNAL_H
-# include <signal.h>
-#endif
-#ifdef HAVE_NLS
-#ifdef HAVE_LOCALE_H
+#include <string.h>
+#include <signal.h>
+#if defined(HAVE_NLS) && defined(HAVE_LOCALE_H)
# include <locale.h>
-#endif /* HAVE_LOCALE_H */
-#endif /* HAVE_NLS */
+#endif
#include <assert.h>
-
#include <errno.h>
-#ifndef errno
-extern int errno;
-#endif
#include "wget.h"
#include "utils.h"
extern struct cookie_jar *wget_cookie_jar;
-static RETSIGTYPE redirect_output_signal PARAMS ((int));
+static void redirect_output_signal (int);
const char *exec_name;
\f
\f
/* Definition of command-line options. */
-static void print_help PARAMS ((void));
-static void print_version PARAMS ((void));
+static void print_help (void);
+static void print_version (void);
#ifdef HAVE_SSL
# define IF_SSL(x) x
OPT__DONT_REMOVE_LISTING,
OPT__EXECUTE,
OPT__NO,
- OPT__PARENT,
+ OPT__PARENT
} type;
const void *data; /* for standard options */
int argtype; /* for non-standard options */
N_("\
HTTPS (SSL/TLS) options:\n"),
N_("\
- --secure-protocol=PR choose SSL protocol, one of auto, SSLv2, SSLv3,\n\
- and TLSv1.\n"),
+ --secure-protocol=PR choose secure protocol, one of auto, SSLv2,\n\
+ SSLv3, and TLSv1.\n"),
N_("\
--no-check-certificate don't validate the server's certificate.\n"),
N_("\
break;
case OPT_FUNCALL:
{
- void (*func) PARAMS ((void)) = (void (*) PARAMS ((void))) opt->data;
+ void (*func) (void) = (void (*) (void)) opt->data;
func ();
}
break;
ws_startup ();
#endif
+#ifdef SIGHUP
/* Setup the signal handler to redirect output when hangup is
received. */
-#ifdef HAVE_SIGNAL
if (signal(SIGHUP, SIG_IGN) != SIG_IGN)
signal(SIGHUP, redirect_output_signal);
+#endif
/* ...and do the same for SIGUSR1. */
+#ifdef SIGUSR1
signal (SIGUSR1, redirect_output_signal);
+#endif
+#ifdef SIGPIPE
/* Writing to a closed socket normally signals SIGPIPE, and the
process exits. What we want is to ignore SIGPIPE and just check
for the return value of write(). */
signal (SIGPIPE, SIG_IGN);
+#endif
#ifdef SIGWINCH
signal (SIGWINCH, progress_handle_sigwinch);
#endif
-#endif /* HAVE_SIGNAL */
status = RETROK; /* initialize it, just-in-case */
/* Retrieve the URLs from argument list. */
return 1;
}
\f
-#ifdef HAVE_SIGNAL
+#if defined(SIGHUP) || defined(SIGUSR1)
/* Hangup signal handler. When wget receives SIGHUP or SIGUSR1, it
will proceed operation as usual, trying to write into a log file.
- If that is impossible, the output will be turned off.
+ If that is impossible, the output will be turned off. */
- #### It is unsafe to do call libc functions from a signal handler.
- What we should do is, set a global variable, and have the code in
- log.c pick it up. */
-
-static RETSIGTYPE
+static void
redirect_output_signal (int sig)
{
const char *signal_name = (sig == SIGHUP ? "SIGHUP" :
progress_schedule_redirect ();
signal (sig, redirect_output_signal);
}
-#endif /* HAVE_SIGNAL */
+#endif