Index: debug.c =================================================================== RCS file: /cvsroot/squid/squid/src/debug.c,v retrieving revision 1.10 diff -u -p -r1.10 debug.c --- debug.c 1 Sep 2002 16:30:42 -0000 1.10 +++ debug.c 1 Sep 2002 18:48:05 -0000 @@ -235,6 +235,9 @@ _db_rotate_log(void) i--; snprintf(from, MAXPATHLEN, "%s.%d", debug_log_file, i - 1); snprintf(to, MAXPATHLEN, "%s.%d", debug_log_file, i); +#ifdef _SQUID_MSWIN_ + remove(to); +#endif rename(from, to); } /* @@ -248,6 +251,9 @@ _db_rotate_log(void) /* Rotate the current log to .0 */ if (Config.Log.rotateNumber > 0) { snprintf(to, MAXPATHLEN, "%s.%d", debug_log_file, 0); +#ifdef _SQUID_MSWIN_ + remove(to); +#endif rename(debug_log_file, to); } /* Close and reopen the log. It may have been renamed "manually" Index: disk.c =================================================================== RCS file: /cvsroot/squid/squid/src/disk.c,v retrieving revision 1.11 diff -u -p -r1.11 disk.c --- disk.c 1 Sep 2002 16:30:42 -0000 1.11 +++ disk.c 1 Sep 2002 18:48:06 -0000 @@ -62,6 +62,9 @@ file_open(const char *path, int mode) int fd; if (FILE_MODE(mode) == O_WRONLY) mode |= O_APPEND; +#ifdef _SQUID_MSWIN_ + mode |= _O_BINARY; +#endif mode |= SQUID_NONBLOCK; errno = 0; fd = open(path, mode, 0644); Index: fd.c =================================================================== RCS file: /cvsroot/squid/squid/src/fd.c,v retrieving revision 1.8 diff -u -p -r1.8 fd.c --- fd.c 25 Dec 2001 12:38:51 -0000 1.8 +++ fd.c 1 Sep 2002 18:48:06 -0000 @@ -37,6 +37,12 @@ int default_read_method(int, char *, int); int default_write_method(int, const char *, int); +#ifdef _SQUID_MSWIN_ +int socket_read_method(int, char *, int); +int socket_write_method(int, const char *, int); +int file_read_method(int, char *, int); +int file_write_method(int, const char *, int); +#endif const char *fdTypeStr[] = { @@ -93,6 +99,31 @@ fd_close(int fd) F->timeout = 0; } +#ifdef _SQUID_MSWIN_ +int +socket_read_method(int fd, char *buf, int len) +{ + return (recv(fd, buf, len, 0)); +} + +int +file_read_method(int fd, char *buf, int len) +{ + return (_read(fd, buf, len)); +} + +int +socket_write_method(int fd, const char *buf, int len) +{ + return (send(fd, buf, len, 0)); +} + +file_write_method(int fd, const char *buf, int len) +{ + return (_write(fd, buf, len)); +} +#endif + int default_read_method(int fd, char *buf, int len) { @@ -119,8 +150,26 @@ fd_open(int fd, unsigned int type, const debug(51, 3) ("fd_open FD %d %s\n", fd, desc); F->type = type; F->flags.open = 1; +#ifdef _SQUID_MSWIN_ + switch (type) { + case FD_SOCKET: + case FD_PIPE: + F->read_method = &socket_read_method; + F->write_method = &socket_write_method; + break; + case FD_FILE: + case FD_LOG: + F->read_method = &file_read_method; + F->write_method = &file_write_method; + break; + default: + F->read_method = &default_read_method; + F->write_method = &default_write_method; + } +#else F->read_method = &default_read_method; F->write_method = &default_write_method; +#endif fdUpdateBiggest(fd, 1); if (desc) xstrncpy(F->desc, desc, FD_DESC_SZ);