/* mswindows.c -- Windows-specific support
- Copyright (C) 1996-2006 Free Software Foundation, Inc.
+ Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+ 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
This file is part of GNU Wget.
file, but you are not obligated to do so. If you do not wish to do
so, delete this exception statement from your version. */
-#include <config.h>
+#include "wget.h"
#include <stdio.h>
#include <stdlib.h>
#define INHIBIT_WRAP /* avoid wrapping of socket, bind, ... */
-#include "wget.h"
#include "utils.h"
#include "url.h"
}
void
-windows_main (int *argc, char **argv, char **exec_name)
+windows_main (char **exec_name)
{
char *p;
static void
ws_cleanup (void)
{
+ xfree ((char*)exec_name);
WSACleanup ();
}
/* See utils:fork_to_background for explanation. */
FILE *new_log_fp = unique_create (DEFAULT_LOGFILE, false, &opt.lfilename);
if (new_log_fp)
- {
- info->logfile_changed = true;
- strncpy (info->lfilename, opt.lfilename, sizeof (info->lfilename));
- info->lfilename[sizeof (info->lfilename) - 1] = '\0';
- fclose (new_log_fp);
- }
+ {
+ info->logfile_changed = true;
+ strncpy (info->lfilename, opt.lfilename, sizeof (info->lfilename));
+ info->lfilename[sizeof (info->lfilename) - 1] = '\0';
+ fclose (new_log_fp);
+ }
}
UnmapViewOfFile (info);
if (err != 0)
{
fprintf (stderr, _("%s: Couldn't find usable socket driver.\n"),
- exec_name);
+ exec_name);
exit (1);
}
if (data.wVersion < requested)
{
fprintf (stderr, _("%s: Couldn't find usable socket driver.\n"),
- exec_name);
+ exec_name);
WSACleanup ();
exit (1);
}
thread_arg.arg = arg;
thread_arg.ws_error = WSAGetLastError ();
thread_hnd = CreateThread (NULL, THREAD_STACK_SIZE, thread_helper,
- &thread_arg, 0, &thread_id);
+ &thread_arg, 0, &thread_id);
if (!thread_hnd)
{
- DEBUGP (("CreateThread() failed; [0x%x]\n", GetLastError ()));
+ DEBUGP (("CreateThread() failed; [%#lx]\n",
+ (unsigned long) GetLastError ()));
goto blocking_fallback;
}
== WAIT_OBJECT_0)
{
/* Propagate error state (which is per-thread) to this thread,
- so the caller can inspect it. */
+ so the caller can inspect it. */
WSASetLastError (thread_arg.ws_error);
DEBUGP (("Winsock error: %d\n", WSAGetLastError ()));
rc = false;
rc = true;
}
- CloseHandle (thread_hnd); /* Clear-up after TerminateThread(). */
+ CloseHandle (thread_hnd); /* Clear-up after TerminateThread(). */
thread_hnd = NULL;
return rc;
}
/* Define a macro that creates a function definition that wraps FUN into
a function that sets errno the way the rest of the code expects. */
-#define WRAP(fun, decl, call) int wrapped_##fun decl { \
- int retval = fun call; \
- if (retval < 0) \
- errno = WSAGetLastError (); \
- return retval; \
+#define WRAP(fun, decl, call) int wrapped_##fun decl { \
+ int retval = fun call; \
+ if (retval < 0) \
+ errno = WSAGetLastError (); \
+ return retval; \
}
WRAP (socket, (int domain, int type, int protocol), (domain, type, protocol))