]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
merged from trunk mswin
authorAmos Jeffries <squid3@treenet.co.nz>
Wed, 8 Aug 2012 08:16:36 +0000 (02:16 -0600)
committerAmos Jeffries <squid3@treenet.co.nz>
Wed, 8 Aug 2012 08:16:36 +0000 (02:16 -0600)
56 files changed:
1  2 
compat/os/mswin.h
compat/types.h
compat/xalloc.cc
configure.ac
helpers/basic_auth/LDAP/basic_ldap_auth.cc
helpers/basic_auth/RADIUS/basic_radius_auth.cc
helpers/basic_auth/SSPI/valid.cc
helpers/digest_auth/LDAP/ldap_backend.cc
helpers/digest_auth/eDirectory/edir_ldapext.cc
helpers/digest_auth/eDirectory/ldap_backend.cc
helpers/external_acl/LDAP_group/ext_ldap_group_acl.cc
helpers/ntlm_auth/SSPI/ntlm_sspi_auth.cc
include/util.h
lib/Makefile.am
src/DiskIO/AIO/aio_win32.cc
src/DiskIO/DiskDaemon/DiskdFile.cc
src/DiskIO/DiskDaemon/DiskdIOStrategy.cc
src/DiskIO/DiskThreads/aiops_win32.cc
src/DiskIO/Mmapped/MmappedFile.cc
src/WinSvc.cc
src/acl/HttpStatus.cc
src/acl/Ip.cc
src/cf.data.pre
src/comm.cc
src/comm/ConnOpener.cc
src/comm/TcpAcceptor.cc
src/debug.cc
src/dns_internal.cc
src/dnsserver.cc
src/eui/Eui48.cc
src/fd.cc
src/fde.cc
src/fs/coss/store_dir_coss.cc
src/globals.h
src/helper.cc
src/icmp/IcmpPinger.cc
src/icmp/IcmpSquid.cc
src/icmp/pinger.cc
src/ip/Address.h
src/ipc/TypedMsgHdr.h
src/ipc_win32.cc
src/main.cc
src/protos.h
src/snmp_core.cc
src/ssl/certificate_db.cc
src/ssl/certificate_db.h
src/ssl/support.h
src/store_dir.cc
src/tools.cc
src/unlinkd.cc
src/wccp2.cc
src/win32.cc
tools/cachemgr.cc
tools/purge/copyout.cc
tools/purge/purge.cc
tools/squidclient.cc

index 5dfe7d201d63bbb4dae7576ccd4df1ca3fb0227d,ad685ea5543e5af5ec3eb42fd0a065d6934a326f..d7be49db53176487c2c4035abf0c4ea69ad2a028
@@@ -109,15 -89,16 +109,15 @@@ typedef unsigned long ino_t
  #if defined(_MSC_VER) /* Microsoft C Compiler ONLY */
  #define fileno _fileno
  #define fstat _fstati64
 -#endif
 +#endif /* _MSC_VER */
- #if 0
+ #if !defined(_SQUID_MINGW_) // MinGW defines these properly
+ SQUIDCEXTERN int WIN32_ftruncate(int fd, off_t size);
  #define ftruncate WIN32_ftruncate
- #if !_SQUID_MINGW_
- extern int WIN32_ftruncate(int fd, off_t size);
+ SQUIDCEXTERN int WIN32_truncate(const char *pathname, off_t length);
+ #define truncate WIN32_truncate
  #endif
- #endif /* 0 */
  #define getcwd _getcwd
  #define getpid _getpid
 -#define getrusage WIN32_getrusage
  #if defined(_MSC_VER) /* Microsoft C Compiler ONLY */
  #define lseek _lseeki64
  #define memccpy _memccpy
@@@ -872,46 -764,5 +872,49 @@@ SQUIDCEXTERN DWORD WIN32_IpAddrChangeMo
  #define PRINTF_FORMAT_ARG3
  #endif
  
 +#if !HAVE_SYSLOG
 +/* syslog compatibility layer derives from git */
 +#define LOG_PID     0x01
 +#define LOG_EMERG   0
 +#define LOG_ALERT   1
 +#define LOG_CRIT    2
 +#define LOG_ERR     3
 +#define LOG_WARNING 4
 +#define LOG_NOTICE  5
 +#define LOG_INFO    6
 +#define LOG_DEBUG   7
 +#define LOG_DAEMON  (3<<3)
 +
 +void openlog(const char *ident, int logopt, int facility);
 +void syslog(int priority, const char *fmt, ...);
 +#endif
 +
 +#if _SQUID_MINGW_
 +/* broken mingw header... */
 +
 +/* MinGW missing bits from sys/wait.h */
 +/* A status looks like:
 + *  <2 bytes info> <2 bytes code>
 + *
 + *  <code> == 0, child has exited, info is the exit value
 + *  <code> == 1..7e, child has exited, info is the signal number.
 + *  <code> == 7f, child has stopped, info was the signal number.
 + *  <code> == 80, there was a core dump.
 + */
 +#define WIFEXITED(w)    (((w) & 0xff) == 0)
 +#define WIFSIGNALED(w)  (((w) & 0x7f) > 0 && (((w) & 0x7f) < 0x7f))
 +#define WIFSTOPPED(w)   (((w) & 0xff) == 0x7f)
 +#define WEXITSTATUS(w)  (((w) >> 8) & 0xff)
 +#define WTERMSIG(w) ((w) & 0x7f)
 +#define WSTOPSIG    WEXITSTATUS
 +
 +
 +#endif
 +
 +/* prototypes */
 +void WIN32_maperror(unsigned long WIN32_oserrno);
++
++#include "compat/strsep.h"
++
  #endif /* _SQUID_WINDOWS_ */
  #endif /* SQUID_OS_MSWIN_H */
diff --cc compat/types.h
Simple merge
index a9ab10c8bd25d9d798a1853b5fd1f3c074d80506,3f3a9ae13dd7fdba5e3b1fb0ee1c50e0e7998857..601ce946c7f47b7387ab51b8cfd374e2e3f27334
@@@ -78,7 -78,7 +78,7 @@@ xcalloc(size_t n, size_t sz
      if (p == NULL) {
          if (failure_notify) {
              static char msg[128];
-             snprintf(msg, 128, "xcalloc: Unable to allocate %"PRIuSIZE" blocks of %"PRIuSIZE" bytes!\n", n, sz);
 -            snprintf(msg, 128, "xcalloc: Unable to allocate %lu blocks of %lu bytes!\n", (unsigned long)n, (unsigned long)sz);
++            snprintf(msg, 128, "xcalloc: Unable to allocate %" PRIuSIZE " blocks of %" PRIuSIZE " bytes!\n", n, sz);
              failure_notify(msg);
          } else {
              perror("xcalloc");
diff --cc configure.ac
index b96ee231c5b5e0649209d38a5947a4b82970b78e,c81d8d93148097a75dfd369182a21d37757851b7..4a860fa95c59c16fd1acb5e062731c1cd09197ae
@@@ -1170,9 -1144,7 +1172,10 @@@ if test "x${enable_eui:=yes}" = "xyes" 
  #endif
    ]])
  fi
+ AC_SUBST(EUILIB)
 +
 +SQUID_CHECK_RECV_ARG_TYPE
 +
  AC_MSG_NOTICE([EUI (MAC address) controls enabled: $enable_eui])
  SQUID_DEFINE_BOOL(USE_SQUID_EUI,$enable_eui,
     [Define this to include code which lets you use ethernet addresses. This code uses API initially defined in 4.4-BSD.])
Simple merge
diff --cc include/util.h
Simple merge
diff --cc lib/Makefile.am
Simple merge
Simple merge
Simple merge
index 43b3402c555c77137e45f8ce60e6f993c35601fd,6b9eb6a966a677f28e2466debbbd2b8a40feaa4b..d6681f78f8bcfd509cca1587885acdabe7df2aad
@@@ -35,7 -35,8 +35,7 @@@
   */
  
  #include "squid-old.h"
- #include "CommIO.h"
 -#include "squid_windows.h"
+ #include "DiskIO/DiskThreads/CommIO.h"
  #include "DiskThreads.h"
  #include "SquidTime.h"
  #include "Store.h"
Simple merge
diff --cc src/WinSvc.cc
Simple merge
Simple merge
diff --cc src/acl/Ip.cc
Simple merge
diff --cc src/cf.data.pre
Simple merge
diff --cc src/comm.cc
index f7a4d71b745c2dfc65fdc5d256d922a1734799b4,32adceb3527f3da36b63d56c3bd363b036e6f504..a99bc9985e2a12ef92f5b2e616fb83eedf1e87a2
@@@ -386,8 -384,8 +385,8 @@@ comm_local_port(int fd
  
      temp.InitAddrInfo(addr);
  
 -    if (getsockname(fd, addr->ai_addr, &(addr->ai_addrlen)) ) {
 +    if (Squid::getsockname(fd, addr->ai_addr, &(addr->ai_addrlen)) ) {
-         debugs(50, 1, "comm_local_port: Failed to retrieve TCP/UDP port number for socket: FD " << fd << ": " << xstrerror());
+         debugs(50, DBG_IMPORTANT, "comm_local_port: Failed to retrieve TCP/UDP port number for socket: FD " << fd << ": " << xstrerror());
          temp.FreeAddrInfo(addr);
          return 0;
      }
Simple merge
Simple merge
diff --cc src/debug.cc
index b30e637e2645211b5de9993b85415079ec81b6ac,2f0186cd74d6e04285e2afaa54df95167493742a..5411ff7a0c8e0397832abd39f661200484a6e75b
@@@ -484,10 -484,10 +484,10 @@@ _db_rotate_log(void
       */
      /* Rotate numbers 0 through N up one */
      for (int i = Debug::rotateNumber; i > 1;) {
-         i--;
+         --i;
          snprintf(from, MAXPATHLEN, "%s.%d", debug_log_file, i - 1);
          snprintf(to, MAXPATHLEN, "%s.%d", debug_log_file, i);
 -#if _SQUID_MSWIN_
 +#if _SQUID_WINDOWS_
          remove
          (to);
  #endif
Simple merge
Simple merge
Simple merge
diff --cc src/fd.cc
Simple merge
diff --cc src/fde.cc
index c3e5f2d612e6574627241af26ff1c2db7b855e21,05cc7d524ebe0f3be5b7406fdcbf92fe146ab262..f662f0b94a1b9e234742cc6ba21c3915892fad33
@@@ -54,9 -54,9 +54,9 @@@ fde::dumpStats (StoreEntry &dumpEntry, 
      if (!flags.open)
          return;
  
 -#if _SQUID_MSWIN_
 +#if _SQUID_WINDOWS_
  
-     storeAppendPrintf(&dumpEntry, "%4d 0x%-8lX %-6.6s %4d %7"PRId64"%c %7"PRId64"%c %-21s %s\n",
+     storeAppendPrintf(&dumpEntry, "%4d 0x%-8lX %-6.6s %4d %7" PRId64 "%c %7" PRId64 "%c %-21s %s\n",
                        fdNumber,
                        win32.handle,
  #else
index 793c8abc69f355954800b7a241d4b6c23ed0c98c,b4bd61e7321e7c6cf5fdfe6b73efc4c5e7428fc0..c7f63231749572f94d9fb0e7bcce478e03fcb637
@@@ -966,8 -966,8 +966,8 @@@ voi
  CossSwapDir::statfs(StoreEntry & sentry) const
  {
      storeAppendPrintf(&sentry, "\n");
-     storeAppendPrintf(&sentry, "Maximum Size: %"PRIu64" KB\n", (maxSize() >> 10));
 -    storeAppendPrintf(&sentry, "Maximum Size: %" PRIu64 " KB\n", maxSize() >> 10);
 -    storeAppendPrintf(&sentry, "Current Size: %.2f KB\n", currentSize() / 1024.0);
++    storeAppendPrintf(&sentry, "Maximum Size: %" PRIu64 " KB\n", (maxSize() >> 10));
 +    storeAppendPrintf(&sentry, "Current Size: %.2f KB\n", (currentSize() / 1024.0));
      storeAppendPrintf(&sentry, "Percent Used: %0.2f%%\n",
                        Math::doublePercent(currentSize(), maxSize()) );
      storeAppendPrintf(&sentry, "Number of object collisions: %d\n", (int) numcollisions);
@@@ -1059,7 -1059,7 +1059,7 @@@ CossSwapDir::swappedOut(const StoreEntr
  void
  CossSwapDir::dump(StoreEntry &entry)const
  {
-     storeAppendPrintf(&entry, " %"PRIu64, (max_size >> 20));
 -    storeAppendPrintf(&entry, " %" PRIu64, maxSize() >> 20);
++    storeAppendPrintf(&entry, " %" PRIu64, (max_size >> 20));
      dumpOptions(&entry);
  }
  
diff --cc src/globals.h
Simple merge
diff --cc src/helper.cc
Simple merge
Simple merge
index 3af7efcb2c3405bc1e452022cb66d5a15f41bed1,4ff85a9ff6bf3f80501377d2fbbce90e1f85568a..14b33b2a739adb7fa53fce9474285333ff26d6e2
@@@ -279,9 -279,9 +279,9 @@@ IcmpSquid::Close(void
      if (icmp_sock < 0)
          return;
  
-     debugs(37, 1, HERE << "Closing Pinger socket on FD " << icmp_sock);
+     debugs(37, DBG_IMPORTANT, HERE << "Closing Pinger socket on FD " << icmp_sock);
  
 -#if _SQUID_MSWIN_
 +#if _SQUID_WINDOWS_
  
      send(icmp_sock, (const void *) "$shutdown\n", 10, 0);
  
Simple merge
Simple merge
Simple merge
index 8b95407c59ab83b59543a05f8bf4098cf8f408fe,60223f7390f6ffef9944cfb5ac17e361055ce2cb..7e787c38035bb6a097e0ea4a384359e0fc72bb06
@@@ -277,11 -276,11 +277,11 @@@ ipcCreate(int type, const char *prog, c
          return ipcCloseAllFD(prfd, pwfd, -1, -1);
      }
  
 -    x = send(pwfd, (const void *)ok_string, strlen(ok_string), 0);
 +    x = Squid::send(pwfd, ok_string, strlen(ok_string), 0);
  
      if (x < 0) {
-         debugs(54, 0, "ipcCreate: PARENT: OK write test failed");
-         debugs(54, 0, "--> read: " << xstrerror());
+         debugs(54, DBG_CRITICAL, "ipcCreate: PARENT: OK write test failed");
+         debugs(54, DBG_CRITICAL, "--> read: " << xstrerror());
          CloseHandle((HANDLE) thread);
          return ipcCloseAllFD(prfd, pwfd, -1, -1);
      }
@@@ -351,11 -350,11 +351,11 @@@ ipcSend(int cwfd, const char *buf, int 
  {
      int x;
  
 -    x = send(cwfd, (const void *)buf, len, 0);
 +    x = Squid::send(cwfd, buf, len, 0);
  
      if (x < 0) {
-         debugs(54, 0, "sendto FD " << cwfd << ": " << xstrerror());
-         debugs(54, 0, "ipcCreate: CHILD: hello write test failed");
+         debugs(54, DBG_CRITICAL, "sendto FD " << cwfd << ": " << xstrerror());
+         debugs(54, DBG_CRITICAL, "ipcCreate: CHILD: hello write test failed");
      }
  
      return x;
@@@ -425,11 -424,11 +425,11 @@@ ipc_thread_1(void *in_params
              goto cleanup;
      }
  
 -    x = send(cwfd, (const void *)hello_string, strlen(hello_string) + 1, 0);
 +    x = Squid::send(cwfd, hello_string, strlen(hello_string) + 1, 0);
  
      if (x < 0) {
-         debugs(54, 0, "sendto FD " << cwfd << ": " << xstrerror());
-         debugs(54, 0, "ipcCreate: CHILD: hello write test failed");
+         debugs(54, DBG_CRITICAL, "sendto FD " << cwfd << ": " << xstrerror());
+         debugs(54, DBG_CRITICAL, "ipcCreate: CHILD: hello write test failed");
          goto cleanup;
      }
  
diff --cc src/main.cc
index d982530f052711215792f71fcf1f1e50cd025204,7d307591e8e04547b3d15304c81818f7a973e90e..3a71fc3891f99766e82225accec628172afe7b21
@@@ -976,25 -978,25 +971,25 @@@ mainInitialize(void
  
  #if _SQUID_WINDOWS_
      if (WIN32_run_mode == _WIN_SQUID_RUN_MODE_SERVICE) {
-         debugs(1, 0, "Running as " << WIN32_Service_name << " Windows System Service on " << WIN32_OS_string);
-         debugs(1, 0, "Service command line is: " << WIN32_Service_Command_Line);
+         debugs(1, DBG_CRITICAL, "Running as " << WIN32_Service_name << " Windows System Service on " << WIN32_OS_string);
+         debugs(1, DBG_CRITICAL, "Service command line is: " << WIN32_Service_Command_Line);
      } else
-         debugs(1, 0, "Running on " << WIN32_OS_string);
+         debugs(1, DBG_CRITICAL, "Running on " << WIN32_OS_string);
  #endif
  
-     debugs(1, 1, "Process ID " << getpid());
+     debugs(1, DBG_IMPORTANT, "Process ID " << getpid());
  
-     debugs(1, 1, "Process Roles:" << ProcessRoles());
+     debugs(1, DBG_IMPORTANT, "Process Roles:" << ProcessRoles());
  
      setSystemLimits();
-     debugs(1, 1, "With " << Squid_MaxFD << " file descriptors available");
+     debugs(1, DBG_IMPORTANT, "With " << Squid_MaxFD << " file descriptors available");
  
 -#if _SQUID_MSWIN_
 +#if _SQUID_WINDOWS_
  
-     debugs(1, 1, "With " << _getmaxstdio() << " CRT stdio descriptors available");
+     debugs(1, DBG_IMPORTANT, "With " << _getmaxstdio() << " CRT stdio descriptors available");
  
      if (WIN32_Socks_initialized)
-         debugs(1, 1, "Windows sockets initialized");
+         debugs(1, DBG_IMPORTANT, "Windows sockets initialized");
  
      if (WIN32_OS_version > _WIN_OS_WINNT) {
          WIN32_IpAddrChangeMonitorInit();
diff --cc src/protos.h
Simple merge
index 81116cc60b7c2e5382bd25337fc3f4fd2d4b2197,6316a2c491a2e9b1f09a147ec580871cffb9fccd..25613b52e745d4c044e71455dd7c07ca0d5106ac
@@@ -35,8 -35,7 +35,8 @@@
  #include "comm.h"
  #include "comm/Connection.h"
  #include "comm/Loops.h"
- #include "ipc/StartListening.h"
+ #include "comm/UdpOpenDialer.h"
 +#include "compat/strsep.h"
  #include "ip/Address.h"
  #include "ip/tools.h"
  #include "snmp_core.h"
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc src/tools.cc
index cad86adf52f1e22ad8aaaea1854f6d352cca998d,eaf5fc16c8dbceda3d6ad00fb9631266ad30d931..555281ff422cf6c22ed41b5cfae8955e16df8f6b
@@@ -34,8 -34,8 +34,9 @@@
  
  #include "squid-old.h"
  #include "base/Subscription.h"
 +#include "compat/initgroups.h"
  #include "fde.h"
+ #include "htcp.h"
  #include "ICP.h"
  #include "ip/Intercept.h"
  #include "ip/QosConfig.h"
diff --cc src/unlinkd.cc
index 8576dd7c20959a12625d2a1918fab07c88ede2b1,62e7ad80a112c288851e1d33ec28f492c06af5ae..18c2a909e42a6f2a6ac5663e5062a19efd8ef969
@@@ -258,9 -259,9 +259,9 @@@ unlinkdInit(void
      if (FD_PIPE == fd_table[unlinkd_wfd].type)
          commUnsetNonBlocking(unlinkd_wfd);
  
-     debugs(2, 1, "Unlinkd pipe opened on FD " << unlinkd_wfd);
+     debugs(2, DBG_IMPORTANT, "Unlinkd pipe opened on FD " << unlinkd_wfd);
  
 -#if _SQUID_MSWIN_
 +#if _SQUID_WINDOWS_
  
      debugs(2, 4, "Unlinkd handle: 0x" << std::hex << hIpc << std::dec << ", PID: " << pid);
  
diff --cc src/wccp2.cc
Simple merge
diff --cc src/win32.cc
index 23159036d9f409f97293618122264c2468444acb,69136407fed469acf10487b961c507d1bc5ac3b2..51f19e131d79d75f0843074f16b972609d8a4985
@@@ -48,10 -49,118 +48,8 @@@ SQUIDCEXTERN LPCRITICAL_SECTION dbg_mut
  void WIN32_ExceptionHandlerCleanup(void);
  static LPTOP_LEVEL_EXCEPTION_FILTER Win32_Old_ExceptionHandler = NULL;
  
--
 -int WIN32_pipe(int handles[2])
 -{
 -    int new_socket;
 -    fde *F = NULL;
--
- int Win32__WSAFDIsSet(int fd, fd_set FAR * set
-                      )
 -    Ip::Address localhost;
 -    Ip::Address handle0;
 -    Ip::Address handle1;
 -    struct addrinfo *AI = NULL;
 -
 -    localhost.SetLocalhost();
 -
 -    /* INET6: back-compatible: localhost pipes default to IPv4 unless set otherwise.
 -     *        it is blocked by untested helpers on many admins configs
 -     *        if this proves to be wrong it can die easily.
 -     */
 -    localhost.SetIPv4();
 -
 -    handles[0] = handles[1] = -1;
 -
 -    ++statCounter.syscalls.sock.sockets;
 -
 -    handle0 = localhost;
 -    handle0.SetPort(0);
 -    handle0.GetAddrInfo(AI);
 -
 -    if ((new_socket = socket(AI->ai_family, AI->ai_socktype, AI->ai_protocol)) < 0)
 -        return -1;
 -
 -    if (bind(new_socket, AI->ai_addr, AI->ai_addrlen) < 0 ||
 -            listen(new_socket, 1) < 0 || getsockname(new_socket, AI->ai_addr, &(AI->ai_addrlen) ) < 0 ||
 -            (handles[1] = socket(AI->ai_family, AI->ai_socktype, 0)) < 0) {
 -        closesocket(new_socket);
 -        return -1;
 -    }
 -
 -    handle0 = *AI; // retrieve the new details returned by connect()
 -
 -    handle1.SetPort(handle1.GetPort());
 -    handle1.GetAddrInfo(AI);
 -
 -    if (connect(handles[1], AI->ai_addr, AI->ai_addrlen) < 0 ||
 -            (handles[0] = accept(new_socket, AI->ai_addr, &(AI->ai_addrlen)) ) < 0) {
 -        closesocket(handles[1]);
 -        handles[1] = -1;
 -        closesocket(new_socket);
 -        return -1;
 -    }
 -
 -    closesocket(new_socket);
 -
 -    F = &fd_table[handles[0]];
 -    F->local_addr = handle0;
 -
 -    F = &fd_table[handles[1]];
 -    F->local_addr = localhost;
 -    handle1.NtoA(F->ipaddr, MAX_IPSTRLEN);
 -    F->remote_port = handle1.GetPort();
 -
 -    return 0;
 -}
 -
 -int WIN32_getrusage(int who, struct rusage *usage)
 -{
 -#if HAVE_WIN32_PSAPI
 -
 -    if (WIN32_OS_version >= _WIN_OS_WINNT) {
 -        /* On Windows NT and later call PSAPI.DLL for process Memory */
 -        /* informations -- Guido Serassio                       */
 -        HANDLE hProcess;
 -        PROCESS_MEMORY_COUNTERS pmc;
 -        hProcess = OpenProcess(PROCESS_QUERY_INFORMATION |
 -                               PROCESS_VM_READ,
 -                               FALSE, GetCurrentProcessId());
 -        {
 -            /* Microsoft CRT doesn't have getrusage function,  */
 -            /* so we get process CPU time information from PSAPI.DLL. */
 -            FILETIME ftCreate, ftExit, ftKernel, ftUser;
 -
 -            if (GetProcessTimes(hProcess, &ftCreate, &ftExit, &ftKernel, &ftUser)) {
 -                int64_t *ptUser = (int64_t *)&ftUser;
 -                int64_t tUser64 = *ptUser / 10;
 -                int64_t *ptKernel = (int64_t *)&ftKernel;
 -                int64_t tKernel64 = *ptKernel / 10;
 -                usage->ru_utime.tv_sec =(long)(tUser64 / 1000000);
 -                usage->ru_stime.tv_sec =(long)(tKernel64 / 1000000);
 -                usage->ru_utime.tv_usec =(long)(tUser64 % 1000000);
 -                usage->ru_stime.tv_usec =(long)(tKernel64 % 1000000);
 -            } else {
 -                CloseHandle( hProcess );
 -                return -1;
 -            }
 -        }
 -
 -        if (GetProcessMemoryInfo( hProcess, &pmc, sizeof(pmc))) {
 -            usage->ru_maxrss=(DWORD)(pmc.WorkingSetSize / getpagesize());
 -            usage->ru_majflt=pmc.PageFaultCount;
 -        } else {
 -            CloseHandle( hProcess );
 -            return -1;
 -        }
 -
 -        CloseHandle( hProcess );
 -    }
 -
 -#endif
 -    return 0;
 -}
 -
+ int
+ Win32__WSAFDIsSet(int fd, fd_set FAR * set)
  {
      fde *F = &fd_table[fd];
      SOCKET s = F->win32.handle;
Simple merge
index cf74515b15970a805e7a3e967360a722f5efe326,4e5da68ab4844508bb6ded5d3d7a2410c52c4807..9f90bf29ac24be9d577a0a3e24b54a4cefb395ae
@@@ -164,9 -155,10 +164,10 @@@ copy_out( size_t filesize, size_t metas
              delete[] filename;
              return false;
          } else if ( debug & 0x02 ) {
 -            fprintf( stderr, "# creating %s\n", filename );
 +              std::cerr << "# creating" << filename;
          }
-         *t++ = '/';
+         *t = '/';
+         ++t;
      }
  
      // create file
Simple merge
Simple merge