Revision: 14534
Author: adrian.chadd
Date: Sat Apr 3 06:47:46 2010
Log: Issue #94 - migrate a couple of the WIN32_ routines out of src/ and
into lib/
so it can be hopefully used by the other libraries and avoid
#include "../src/squid.h"
in places.
http://code.google.com/p/lusca-cache/source/detail?r=14534
Modified:
/branches/LUSCA_HEAD/include/util.h
/branches/LUSCA_HEAD/lib/win32lib.c
/branches/LUSCA_HEAD/src/protos.h
/branches/LUSCA_HEAD/src/win32.c
=======================================
--- /branches/LUSCA_HEAD/include/util.h Mon Jun 1 02:14:51 2009
+++ /branches/LUSCA_HEAD/include/util.h Sat Apr 3 06:47:46 2010
@@ -163,6 +163,8 @@
extern const char *WIN32_strerror(int);
extern void WIN32_maperror(unsigned long);
extern int WIN32_Close_FD_Socket(int);
+extern int WIN32_pipe(int[2]);
+extern int WIN32_getrusage(int, struct rusage *);
#endif
#endif /* SQUID_UTIL_H */
=======================================
--- /branches/LUSCA_HEAD/lib/win32lib.c Tue May 6 08:15:30 2008
+++ /branches/LUSCA_HEAD/lib/win32lib.c Sat Apr 3 06:47:46 2010
@@ -790,4 +790,101 @@
else
errno = EINVAL;
}
+
+
+#if defined(_SQUID_MSWIN_)
+
+int
+WIN32_pipe(int handles[2])
+{
+ int new_socket;
+ fde *F = NULL;
+
+ struct sockaddr_in serv_addr;
+ int len = sizeof(serv_addr);
+ u_short handle1_port;
+
+ handles[0] = handles[1] = -1;
+
+ statCounter.syscalls.sock.sockets++;
+ if ((new_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0)
+ return -1;
+
+ memset((void *) &serv_addr, 0, sizeof(serv_addr));
+ serv_addr.sin_family = AF_INET;
+ serv_addr.sin_port = htons(0);
+ serv_addr.sin_addr = local_addr;
+
+ if (bind(new_socket, (SOCKADDR *) & serv_addr, len) < 0 ||
+ listen(new_socket, 1) < 0 || getsockname(new_socket, (SOCKADDR *) &
serv_addr, &len) < 0 ||
+ (handles[1] = socket(PF_INET, SOCK_STREAM, 0)) < 0) {
+ closesocket(new_socket);
+ return -1;
+ }
+ handle1_port = ntohs(serv_addr.sin_port);
+ if (connect(handles[1], (SOCKADDR *) & serv_addr, len) < 0 ||
+ (handles[0] = accept(new_socket, (SOCKADDR *) & serv_addr, &len)) < 0) {
+ closesocket(handles[1]);
+ handles[1] = -1;
+ closesocket(new_socket);
+ return -1;
+ }
+ closesocket(new_socket);
+
+ F = &fd_table[handles[0]];
+ F->local_addr = local_addr;
+ F->local_port = ntohs(serv_addr.sin_port);
+
+ F = &fd_table[handles[1]];
+ F->local_addr = local_addr;
+ xstrncpy(F->ipaddr, inet_ntoa(local_addr), 16);
+ F->remote_port = handle1_port;
+
+ return 0;
+}
+
+int
+WIN32_getrusage(int who, struct rusage *usage)
+{
+#if HAVE_WIN32_PSAPI
+ if ((WIN32_OS_version == _WIN_OS_WINNT) || (WIN32_OS_version ==
_WIN_OS_WIN2K)
+ || (WIN32_OS_version == _WIN_OS_WINXP) || (WIN32_OS_version ==
_WIN_OS_WINNET)) {
+ /* On Windows NT/2000 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)) {
+ PFILETIME p_ftUser = &ftUser;
+ PFILETIME p_ftKernel = &ftKernel;
+ int64_t tUser64 = (*(int64_t *) p_ftUser / 10);
+ int64_t tKernel64 = (*(int64_t *) p_ftKernel / 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;
+}
+
#endif /* _SQUID_MSWIN_ */
=======================================
--- /branches/LUSCA_HEAD/src/protos.h Thu Apr 1 23:26:01 2010
+++ /branches/LUSCA_HEAD/src/protos.h Sat Apr 3 06:47:46 2010
@@ -989,8 +989,6 @@
extern void WIN32_SetServiceCommandLine(void);
extern void WIN32_InstallService(void);
extern void WIN32_RemoveService(void);
-extern int WIN32_pipe(int[2]);
-extern int WIN32_getrusage(int, struct rusage *);
extern void WIN32_ExceptionHandlerInit(void);
extern int SquidMain(int, char **);
#ifdef _SQUID_MSWIN_
=======================================
--- /branches/LUSCA_HEAD/src/win32.c Sat Mar 20 02:58:36 2010
+++ /branches/LUSCA_HEAD/src/win32.c Sat Apr 3 06:47:46 2010
@@ -844,99 +844,6 @@
#if defined(_SQUID_MSWIN_)
static int s_iInitCount = 0;
-
-int
-WIN32_pipe(int handles[2])
-{
- int new_socket;
- fde *F = NULL;
-
- struct sockaddr_in serv_addr;
- int len = sizeof(serv_addr);
- u_short handle1_port;
-
- handles[0] = handles[1] = -1;
-
- statCounter.syscalls.sock.sockets++;
- if ((new_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0)
- return -1;
-
- memset((void *) &serv_addr, 0, sizeof(serv_addr));
- serv_addr.sin_family = AF_INET;
- serv_addr.sin_port = htons(0);
- serv_addr.sin_addr = local_addr;
-
- if (bind(new_socket, (SOCKADDR *) & serv_addr, len) < 0 ||
- listen(new_socket, 1) < 0 || getsockname(new_socket, (SOCKADDR *) &
serv_addr, &len) < 0 ||
- (handles[1] = socket(PF_INET, SOCK_STREAM, 0)) < 0) {
- closesocket(new_socket);
- return -1;
- }
- handle1_port = ntohs(serv_addr.sin_port);
- if (connect(handles[1], (SOCKADDR *) & serv_addr, len) < 0 ||
- (handles[0] = accept(new_socket, (SOCKADDR *) & serv_addr, &len)) < 0) {
- closesocket(handles[1]);
- handles[1] = -1;
- closesocket(new_socket);
- return -1;
- }
- closesocket(new_socket);
-
- F = &fd_table[handles[0]];
- F->local_addr = local_addr;
- F->local_port = ntohs(serv_addr.sin_port);
-
- F = &fd_table[handles[1]];
- F->local_addr = local_addr;
- xstrncpy(F->ipaddr, inet_ntoa(local_addr), 16);
- F->remote_port = handle1_port;
-
- return 0;
-}
-
-int
-WIN32_getrusage(int who, struct rusage *usage)
-{
-#if HAVE_WIN32_PSAPI
- if ((WIN32_OS_version == _WIN_OS_WINNT) || (WIN32_OS_version ==
_WIN_OS_WIN2K)
- || (WIN32_OS_version == _WIN_OS_WINXP) || (WIN32_OS_version ==
_WIN_OS_WINNET)) {
- /* On Windows NT/2000 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)) {
- PFILETIME p_ftUser = &ftUser;
- PFILETIME p_ftKernel = &ftKernel;
- int64_t tUser64 = (*(int64_t *) p_ftUser / 10);
- int64_t tKernel64 = (*(int64_t *) p_ftKernel / 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;
-}
static int
Win32SockInit(void)
--
You received this message because you are subscribed to the Google Groups
"lusca-commit" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/lusca-commit?hl=en.