Only in m:\bind: 494p1
Only in m:\bind: 495_to_495p1
Only in m:\bind: 495relpatch.log
Only in m:\bind: 495t6bpatch.log
Only in m:\bind: IBM
Only in m:\bind495p1: INSTALL
Only in m:\bind: INSTALL.txt
Only in m:\bind: MIRRORS
Only in m:\bind: bind-4.9.3-BETA26.tar.gz
Only in m:\bind: bind-4.9.3-BETA29.tar.gz
Only in m:\bind: bind-4.9.3-BETA30.tar.gz
Only in m:\bind: bind-4.9.3-BETA31.tar.gz
Only in m:\bind: bind-4.9.3-BETA32.tar.gz
Only in m:\bind: bind-4.9.3-REL.tar.gz
Only in m:\bind: bind-4.9.4-P1.tar.gz
Only in m:\bind: bind-4.9.4-REL.tar.gz
Only in m:\bind: bind-4.9.4-T3B.tar.gz
Only in m:\bind: bind-4.9.4-T4B.tar.gz
Only in m:\bind: bind-4.9.4-T5B.tar.gz
Only in m:\bind495p1: bind-4.9.5-P1.tar
Only in m:\bind: bind-4.9.5-P1.tar.gz
Only in m:\bind: bind-4.9.5-REL.tar.gz
Only in m:\bind: bind-4.9.5-T1A.tar.gz
Only in m:\bind: bind-4.9.5-T3A.tar.gz
Only in m:\bind: bind-4.9.5-T5B.tar.gz
Only in m:\bind: bind-4.9.5-T6B.tar
Only in m:\bind: bind-4.9.5-T6B.tar.gz
Only in m:\bind: bind-4_9_5-T4B_tar.gz
Only in m:\bind: bindtestbin.zip
Only in m:\bind: bs1
Only in m:\bind: buildallnt.bat
diff --recurs m:\bind495p1/compat/include/sys/cdefs.h m:\bind/compat/include/sys/cdefs.h
87,96c87,98
< #ifndef __GNUC__
< #define	__const				/* delete pseudo-ANSI C keywords */
< #define	__inline
< #define	__signed
< #define	__volatile
< /*
<  * In non-ANSI C environments, new programs will want ANSI-only C keywords
<  * deleted from the program and old programs will want them left alone.
<  * When using a compiler other than gcc, programs using the ANSI C keywords
<  * const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
---
> #ifndef WINNT
> #ifndef __GNUC__
> #define	__const				/* delete pseudo-ANSI C keywords */
> #define	__inline
> #define	__signed
> #define	__volatile
> #endif
> /*
>  * In non-ANSI C environments, new programs will want ANSI-only C keywords
>  * deleted from the program and old programs will want them left alone.
>  * When using a compiler other than gcc, programs using the ANSI C keywords
>  * const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
100c102
< #ifndef	NO_ANSI_KEYWORDS
---
> #ifndef NO_ANSI_KEYWORDS
105c107
< #endif
---
> #endif /* WINNT */
Only in m:\bind/compat/lib: MSG00001.bin
Only in m:\bind/compat/lib: WinRel
diff --recurs m:\bind495p1/compat/lib/ftruncate.c m:\bind/compat/lib/ftruncate.c
44,53c44,56
< 
< 	/* maybe shorten... */
< 	if (wantsize < cursize) {
< 		struct flock fl;
< 
< 		fl.l_whence = 0;
< 		fl.l_len = 0;
< 		fl.l_start = wantsize;
< 		fl.l_type = F_WRLCK;
< 		return (fcntl(fd, F_FREESP, &fl));
---
> 	/* maybe shorten... */
> 	if (wantsize < cursize) {
> #ifndef WINNT
> 		struct flock fl;
> 
> 		fl.l_whence = 0;
> 		fl.l_len = 0;
> 		fl.l_start = wantsize;
> 		fl.l_type = F_WRLCK;
> 		return (fcntl(fd, F_FREESP, &fl));
> #else
> 		return (lseek(fd, wantsize, 0) && SetEndOfFile((HANDLE)fd));
> #endif
diff --recurs m:\bind495p1/compat/lib/gettimeofday.c m:\bind/compat/lib/gettimeofday.c
15,21c15,22
< 	time_t clock, time __P((time_t *));
< 
< 	if (time(&clock) == (time_t) -1)
< 		return (-1);
< 	if (tvp) {
< 		tvp->tv_sec = clock;
< 		tvp->tv_usec = 0;
---
> #ifndef WINNT
> 	time_t clock, time __P((time_t *));
> 
> 	if (time(&clock) == (time_t) -1)
> 		return (-1);
> 	if (tvp) {
> 		tvp->tv_sec = clock;
> 		tvp->tv_usec = 0;
23,24c24,25
< 	if (tzp) {
< 		tzp->tz_minuteswest = 0;
---
> 	if (tzp) {
> 		tzp->tz_minuteswest = 0;
26a28,33
> #else
> 	struct _timeb timebuffer;
> 	_ftime(&timebuffer);
> 	tvp->tv_sec = (long) timebuffer.time;
> 	tvp->tv_usec = (long) (1000 * (timebuffer.millitm));
> #endif
Only in m:\bind/compat/lib: lib44bsd.mak
Only in m:\bind/compat/lib: lib44bsd.mdp
Only in m:\bind/compat/lib: lib44bsd.ncb
Only in m:\bind/compat/lib: lib44bsd.vcp
Only in m:\bind/compat/lib: lib44bsd95.mak
Only in m:\bind/compat/lib: lib44bsd95.mdp
Only in m:\bind/compat/lib: lib44bsd95.ncb
Only in m:\bind/compat/lib: lib44bsd_vc22.mak
Only in m:\bind/compat/lib: lib44bsd_vc22.vcp
Only in m:\bind/compat/lib: log.c
Only in m:\bind/compat/lib: log.h
Only in m:\bind/compat/lib: makemc.bat
Only in m:\bind/compat/lib: messages.aps
Only in m:\bind/compat/lib: messages.h
Only in m:\bind/compat/lib: messages.mc
Only in m:\bind/compat/lib: messages.rc
diff --recurs m:\bind495p1/compat/lib/mktemp.c m:\bind/compat/lib/mktemp.c
101,104c101,106
< 	extern int errno;
< 	register char *start, *trv;
< 	struct stat sbuf;
< 	u_int pid;
---
> #ifndef WINNT
> 	extern int errno;
> #endif
> 	register char *start, *trv;
> 	struct stat sbuf;
> 	u_int pid;
106,110c108,112
< 	pid = getpid();
< 	for (trv = path; *trv; ++trv);		/* extra X's get set to 0's */
< 	while (*--trv == 'X') {
< 		*trv = (pid % 10) + '0';
< 		pid /= 10;
---
> 	pid = getpid();
> 	for (trv = path; *trv; ++trv);		/* extra X's get set to 0's */
> 	while (*--trv == 'X') {
> 		*trv = (pid % 10) + '0';
> 		pid /= 10;
124a127
> #ifndef WINNT
125a129,131
> #else
> 				WSASetLastError(ENOTDIR);
> #endif
Only in m:\bind/compat/lib: ntmisc.c
diff --recurs m:\bind495p1/compat/lib/strcasecmp.c m:\bind/compat/lib/strcasecmp.c
61,65c61,67
< #include <sys/param.h>
< #include <sys/types.h>
< #include <sys/cdefs.h>
< #if (!defined(BSD)) || (BSD < 199306)
< #include "../../conf/portability.h"
---
> #ifndef WINNT
> #include <sys/param.h>
> #include <sys/types.h>
> #include <sys/cdefs.h>
> #endif
> #if (!defined(BSD)) || (BSD < 199306)
> #include "../../conf/portability.h"
67,68c69,70
< #include <string.h>
< #endif
---
> #include <string.h>
> #endif
70c72
< #ifndef NEED_STRCASECMP
---
> #ifndef NEED_STRCASECMP
116c118
< 	const char  *s1, *s2;
---
> 	const char *s1, *s2;
diff --recurs m:\bind495p1/compat/lib/strerror.c m:\bind/compat/lib/strerror.c
61c61,63
< #include <sys/param.h>
---
> #ifndef WINNT
> #include <sys/param.h>
> #endif
Only in m:\bind/compat/lib: strip.bat
diff --recurs m:\bind495p1/compat/lib/strpbrk.c m:\bind/compat/lib/strpbrk.c
61c61,63
< #include <sys/param.h>
---
> #ifndef WINNT
> #include <sys/param.h>
> #endif
diff --recurs m:\bind495p1/compat/lib/strtoul.c m:\bind/compat/lib/strtoul.c
64c64,66
< #include <sys/param.h>
---
> #ifndef WINNT
> #include <sys/param.h>
> #endif
diff --recurs m:\bind495p1/compat/lib/writev.c m:\bind/compat/lib/writev.c
9c9,10
<  */
---
>  *  WindowsNT
>  */
11c12
< #if defined(_CRAY)
---
> #if defined(_CRAY)
15,16c16,17
< #include <sys/stat.h>
< #include <sys/socket.h>
---
> #include <sys/stat.h>
> #include <sys/socket.h>
84a86,160
> 
> #ifdef WINNT
> #define OWN_WRITEV
> #define TIMEOUT_SEC 120
> #include <stdarg.h>
> #include "../../conf/portability.h"
> 
> 
> /*
>  * writev --
>  * simplistic writev implementation for WindowsNT using the WriteFile WIN32API.
>  */	
> /* lgk win95 does not support overlapped/async file operations so change it to
>    synchronous */
> #ifndef WIN95
>  
> int
> writev(fd, iov, iovcnt)
> 	int fd;
> 	struct iovec *iov;
> 	int iovcnt;
> {
> 	int i;
> 	char *base;
> 	DWORD BytesWritten, TotalBytesWritten = 0, len, dwWait;
> 	extern HANDLE hReadWriteEvent;
> 	OVERLAPPED overlap;
> 	BOOL ret; 
> 
> 	for (i=0; i<iovcnt; i++) {
> 		base = iov[i].iov_base;
> 		len = (DWORD)iov[i].iov_len;
> 		overlap.Offset = overlap.OffsetHigh = (DWORD)0;
> 		overlap.hEvent = hReadWriteEvent;
> 		ret = WriteFile((HANDLE)fd, (char *)base, len,
> 		              (LPDWORD)&BytesWritten, (LPOVERLAPPED)&overlap);
> 		if ((ret == FALSE) && (errno != ERROR_IO_PENDING)) {
> 				return (-1);
> 		}
> 		dwWait = WaitForSingleObject((HANDLE)hReadWriteEvent, (DWORD)TIMEOUT_SEC * 1000);
> 		if ((dwWait == WAIT_FAILED) || (dwWait == WAIT_TIMEOUT)){
> 			return (-1);
> 		}
> 		TotalBytesWritten += BytesWritten;
> 	}
> 	return((int)TotalBytesWritten);
> }
> 
> #else // is win95 ... no async overlapped io
>  
> int
> writev(fd, iov, iovcnt)
> 	int fd;
> 	struct iovec *iov;
> 	int iovcnt;
> {
> 	int i;
> 	char *base;
> 	DWORD BytesWritten, TotalBytesWritten = 0, len, dwWait;
> 	BOOL ret; 
> 
> 	for (i=0; i<iovcnt; i++) {
> 		base = iov[i].iov_base;
> 		len = (DWORD)iov[i].iov_len;
> 		ret = WriteFile((HANDLE)fd, (char *)base, len,
> 		              (LPDWORD)&BytesWritten, NULL);
> 		if (ret == FALSE)
> 		   return (-1);
> 		TotalBytesWritten += BytesWritten;
> 	}
> 	return((int)TotalBytesWritten);
> }
> 
> #endif // win95 or not
> #endif // winnt
diff --recurs m:\bind495p1/conf/options.h m:\bind/conf/options.h
117c117,119
< #define RENICE  	/* named-xfer should run at normal priority */
---
> #ifndef WINNT
> #define RENICE  	/* named-xfer should run at normal priority */
> #endif
diff --recurs m:\bind495p1/conf/portability.h m:\bind/conf/portability.h
81,84c81,87
< #include <sys/param.h>
< #include <signal.h>
< #include <string.h>
< #ifndef TIME_H_INCLUDED
---
> #ifndef WINNT
> #include <sys/param.h>
> #endif
> #include <string.h>
> #include <signal.h>
> #ifndef WINNT
> #ifndef TIME_H_INCLUDED
86c89
< # define TIME_H_INCLUDED
---
> # define TIME_H_INCLUDED
87a91
> #endif /* WINNT */
89,90c93,178
< /* (ISC = INTERACTIVE Systems Corporation in the next #ifdef, btw.) */
< #ifdef ISC
---
> #ifdef WINNT
> #ifndef _PORTABILITY_H
> #define _PORTABILITY_H
> #include <stdio.h>
> #ifdef BUFSIZ
> #undef BUFSIZ
> #endif
> #define BUFSIZ 1024  /* GMS - added since Unix used 1K and NT 512B */
> #include <string.h>
> #include <process.h>
> #include <sys/timeb.h>
> #include <time.h>
> #include <io.h>
> #include <stdlib.h>
> #define FD_SETSIZE 512
> #include <winsock.h>
> #include <windows.h>
> #include <limits.h>
> 
> #define NOWAIT
> #define HAVE_SETVBUF
> #define NEED_GETTIMEOFDAY
> #define USE_MEMCPY
> #undef IP_OPTIONS
> #define PATH_MAX MAX_PATH
> #define ETIMEDOUT WSAETIMEDOUT
> #define ECONNRESET WSAECONNRESET
> #define ECONNREFUSED WSAECONNREFUSED
> #define EADDRINUSE WSAEADDRINUSE
> #define PORT_WOULDBLK WSAEWOULDBLOCK
> #define _TIMEZONE timezoneBSD
> 
> struct timezoneBSD {
> 	int tz_minuteswest;
> 	int tz_dsttime;
> };
> struct iovec {
> 	char *  iov_base;
> 	int 	iov_len;
> };
> typedef char *	caddr_t;
> typedef long pid_t;
> #define sleep(t) Sleep(t*1000)
> #ifdef errno
> #undef errno
> #endif
> #define errno WSAGetLastError()
> /* #define close(s) closesocket(s) */
> #define chdir(path) SetCurrentDirectory(path)
> #define dup2(s1, s2) DuplicateHandle(GetCurrentProcess(), (HANDLE)(s1), \
> 					GetCurrentProcess(), (LPHANDLE)&(s2), \
> 					0, FALSE, DUPLICATE_SAME_ACCESS);
> #define strcasecmp(x, y) stricmp(x, y)
> #define strncasecmp(x, y, z) strnicmp(x, y, z)
> 
> void  	service_main(DWORD, LPTSTR *);
> void  	service_ctrl(DWORD);
> void    worker_thread(void *);
> void syslog(int, char *, ...);
> void expand_paths(void);
> int writev(int, struct iovec *, int);
> int mkstemp(char *);
> 
> #define MAXALIASES 35
> #define LOG_EMERG       0       /* system is unusable */
> #define LOG_ALERT       1       /* action must be taken immediately */
> #define LOG_CRIT        2       /* critical conditions */
> #define LOG_ERR         3       /* error conditions */
> #define LOG_WARNING     4       /* warning conditions */
> #define LOG_NOTICE      5       /* normal but signification condition */
> #define LOG_INFO        6       /* informational */
> #define LOG_DEBUG       7       /* debug-level messages */
> /* control codes that the service will accept */
> #define SERVICE_CONTROL_DUMPDB  128
> #define SERVICE_CONTROL_RELOAD  129
> #define SERVICE_CONTROL_STATS   130
> #define SERVICE_CONTROL_TRACE   131
> #define SERVICE_CONTROL_NOTRACE 132
> #define SERVICE_CONTROL_QRYLOG  133
> #define SERVICE_CONTROL_CHKPT   134
> #define SERVICE_CONTROL_EXIT    135
> #endif /* _PORTABILITY_H */
> #endif /* WINNT */
> 
> /* (ISC = INTERACTIVE Systems Corporation in the next #ifdef, btw.) */
> #ifdef ISC
223c311
< # if !defined(NeXT)
---
> # if !defined(NeXT)	&& !defined(WINNT)
287c375
< # ifndef NeXT
---
> # if !defined(NeXT) && !defined(WINNT)
293c381
< # if !defined(DMALLOC) && !defined(NeXT)
---
> # if !defined(DMALLOC) && !defined(NeXT) && !defined(WINNT)
308a397
> #ifndef WINNT
309a399
> #endif
348c438
< #if !defined(__STDC__) && !defined(const)
---
> #if !defined(__STDC__) && !defined(const) && !defined(WINNT)
358a449
> 	!defined(WINNT) && \
372,373c463,464
< #if !defined(bcopy)	/* some machines have their own macros for this */
< # if (defined(USE_POSIX) && !defined(SUNOS4)) || \
---
> #if !defined(bcopy) /* some machines have their own macros for this */
> #if (defined(USE_POSIX) && !defined(SUNOS4)) || defined(WINNT) ||\
397c488
< 	&& !defined(M_UNIX)
---
> 	&& !defined(M_UNIX)	&& !defined(WINNT)
414c505
< # if !defined(__ultrix) && !defined(apollo)
---
> # if !defined(__ultrix) && !defined(apollo) && !defined(WINNT)
465a557
> #if !defined(WINNT)
468a561
> #endif
478c571
< #if !defined(USE_POSIX)
---
> #if !defined(USE_POSIX) && !defined(WINNT)
493a587
> #ifndef WINNT
505a600
> #endif
538c633
< 	(defined(__ultrix) || defined(__osf__) || defined(NeXT))
---
> 	(defined(__ultrix) || defined(__osf__) || defined(NeXT) || defined(WINNT))
597c692
< #if !defined(HAVE_FCHMOD)
---
> #if !defined(HAVE_FCHMOD) && !defined(WINNT)
639a735,741
> 
> #ifdef WINNT /* l kahn new definitions needed for vc++4.0 */
> #define fstat _fstat
> #define stat _stat
> #define fileno _fileno
> extern BOOL OnWinnt();
> #endif
Only in m:\bind/contrib/decwrl: gethost.o
Only in m:\bind/contrib: host.tar.Z
Only in m:\bind/contrib/nutshell: ch09.check_del.c~
Only in m:\bind/contrib: winnt-dist
Only in m:\bind: cpl
Only in m:\bind: creadme.bat
Only in m:\bind: csums.bat
Only in m:\bind: d1.bat
Only in m:\bind: diffs.ksh
Only in m:\bind: diffs493relP1tont_context.txt
Only in m:\bind: diffs493relP1tont_nocontext.txt
Only in m:\bind: diffs493reltont_nocontext.txt
Only in m:\bind: diffs494p1tont_context.txt
Only in m:\bind: diffs494p1tont_nocontext.txt
Only in m:\bind: diffs494reltont_context.txt
Only in m:\bind: diffs494reltont_nocontext.txt
Only in m:\bind: diffs494t4atot4b_context.txt
Only in m:\bind: diffs494t4atot4b_nocontext.txt
Only in m:\bind: diffs494t5b_to_494rel_context.txt
Only in m:\bind: diffs495_t5b_to_t6b_context.txt
Only in m:\bind: diffs495p1c2_to_495p1rel_context.txt
Only in m:\bind: diffs495p1tont_context.txt
Only in m:\bind: diffs495p1tont_nocontext.txt
Only in m:\bind: diffs495relmsntont_context.txt
Only in m:\bind: diffs495relmsntont_nocontext.txt
Only in m:\bind: diffs495reltont_context.txt
Only in m:\bind: diffs495reltont_nocontext.txt
Only in m:\bind: diffs495t6btont_context.txt
Only in m:\bind: diffs495t6btont_contexto.txt
Only in m:\bind: diffs495t6btont_nocontext.txt
Only in m:\bind/doc/info: Linux-ELF
Only in m:\bind/doc/info: Linux-again
Only in m:\bind/doc/info: Linux-and-more
Only in m:\bind495p1/doc/info: Linux-elf
Only in m:\bind/doc/info: Linux-more
Only in m:\bind/doc/info: Linux-still-more
Only in m:\bind/doc/info: sunshlib.3
Only in m:\bind/doc/misc: notify.txt
Only in m:\bind: eventlib.zip
Only in m:\bind: getfiles.bat
diff --recurs m:\bind495p1/include/arpa/inet.h m:\bind/include/arpa/inet.h
66,75c66,84
< #include <sys/param.h>
< #if (!defined(BSD)) || (BSD < 199306)
< # include <sys/bitypes.h>
< #else
< # include <sys/types.h>
< #endif
< #include <sys/cdefs.h>
< 
< __BEGIN_DECLS
< unsigned long	 inet_addr __P((const char *));
---
> #ifndef WINNT
> #include <sys/param.h>
> #if (!defined(BSD)) || (BSD < 199306)
> # include <sys/bitypes.h>
> #else
> # include <sys/types.h>
> #endif
> #else
> #define FD_SETSIZE 512
> #include <winsock.h>
> #endif /* WINNT */
> 
> #include <sys/cdefs.h>
> 
> __BEGIN_DECLS
> #ifndef WINNT
> unsigned long	 inet_addr __P((const char *));
> #endif
> 
83a93
> #ifndef WINNT
84a95
> #endif
diff --recurs m:\bind495p1/include/arpa/nameser.h m:\bind/include/arpa/nameser.h
86,88c86,90
< #include <sys/param.h>
< #if (!defined(BSD)) || (BSD < 199306)
< # include <sys/bitypes.h>
---
> #ifndef WINNT
> #include <sys/param.h>
> #endif
> #if (!defined(BSD)) || (BSD < 199306)
> # include <sys/bitypes.h>
90c92
< # include <sys/types.h>
---
> # include <sys/types.h>
92c94
< #include <sys/cdefs.h>
---
> #include <sys/cdefs.h>
94,95c96,97
< #ifdef _AUX_SOURCE
< # include <sys/types.h>
---
> #ifdef _AUX_SOURCE
> # include <sys/types.h>
138a141
> #if !(defined(WINNT) && defined(NOERROR))
139a143
> #endif
377,378c381,382
< 	*t_cp++ = t_s >> 8; \
< 	*t_cp   = t_s; \
---
> 	*t_cp++ = (char) (t_s >> 8); \
> 	*t_cp   = (char) t_s; \
diff --recurs m:\bind495p1/include/netdb.h m:\bind/include/netdb.h
64,73c64,76
< #include <sys/param.h>
< #if (!defined(BSD)) || (BSD < 199306)
< # include <sys/bitypes.h>
< #endif
< #include <sys/cdefs.h>
< 
< #define	_PATH_HEQUIV	"/etc/hosts.equiv"
< #define	_PATH_HOSTS	"/etc/hosts"
< #define	_PATH_NETWORKS	"/etc/networks"
< #define	_PATH_PROTOCOLS	"/etc/protocols"
---
> #ifndef WINNT
> #include <sys/param.h>
> #endif /* WINNT */
> #if (!defined(BSD)) || (BSD < 199306)
> # include <sys/bitypes.h>
> #endif
> #include <sys/cdefs.h>
> 
> #ifndef WINNT
> #define	_PATH_HEQUIV	"/etc/hosts.equiv"
> #define	_PATH_HOSTS	"/etc/hosts"
> #define	_PATH_NETWORKS	"/etc/networks"
> #define	_PATH_PROTOCOLS	"/etc/protocols"
76a80,85
> #else /* WINNT */
> #define	_PATH_HOSTS	"%windir%\\SYSTEM32\\DRIVERS\\ETC\\HOSTS"
> #define	_PATH_NETWORKS	"%windir%\\SYSTEM32\\DRIVERS\\ETC\\NETWORKS"
> #define	_PATH_PROTOCOL	"%windir%\\SYSTEM32\\DRIVERS\\ETC\\PROTOCOL"
> #define	_PATH_SERVICES	"%windir%\\SYSTEM32\\DRIVERS\\ETC\\SERVICES"
> #endif /* WINNT */
77a87
> #ifndef WINNT
114a125
> #endif /* WINNT */
122a134
> #ifndef WINNT
127a140
> #endif /* WINNT */
133a147
> #ifndef WINNT
138c152,159
< struct netent	*getnetbyaddr __P((unsigned long, int));
---
> struct netent	*getnetbyaddr __P((unsigned long, int)); /* u_long? */
> struct netent	*getnetbyname __P((const char *));
> #else
> struct hostent	*gethostbyaddr_nt __P((const char *, int, int));
> struct hostent	*gethostbyname_nt __P((const char *));
> struct hostent	*gethostbyname2 __P((const char *, int));
> struct hostent	*gethostent __P((void));
> struct netent	*getnetbyaddr __P((unsigned long, int)); /* u_long? */
139a161,162
> #endif
> 
140a164
> #ifndef WINNT
142a167
> #endif
143a169
> #ifndef WINNT
145a172
> #endif
diff --recurs m:\bind495p1/include/resolv.h m:\bind/include/resolv.h
64,71c64,78
< #include <sys/param.h>
< #if (!defined(BSD)) || (BSD < 199306)
< # include <sys/bitypes.h>
< #else
< # include <sys/types.h>
< #endif
< #include <sys/cdefs.h>
< #include <stdio.h>
---
> #ifndef WINNT
> #include <sys/param.h>
> #endif
> #if (!defined(BSD)) || (BSD < 199306)
> # include <sys/bitypes.h>
> #else
> # include <sys/types.h>
> #endif
> #include <sys/cdefs.h>
> #include <stdio.h>
> #ifdef WINNT
> #define FD_SETSIZE 512
> #include <winsock.h>
> #include "..\conf\portability.h"
> #endif
89a97
> #ifndef WINNT
90a99,102
> #else
> #define _PATH_RESCONF		 "%windir%\\RESOLV.CONF"
> #define _ALT_PATH_RESCONF	 "%windir%\\RESOLV.INI"
> #endif /* WINNT */
Only in m:\bind: install
Only in m:\bind: leon.zip
Only in m:\bind: lib44bsd_vc22.mak
Only in m:\bind: lint495patch.txt
Only in m:\bind: log
Only in m:\bind: mkbeta.bat
Only in m:\bind: mkdist.bat
Only in m:\bind: mkmsnsrc.bat
Only in m:\bind: mkmsntxt.bat
Only in m:\bind: mksrc.bat
Only in m:\bind: mktxt.bat
Only in m:\bind/named: TAGS
diff --recurs m:\bind495p1/named/Version.c m:\bind/named/Version.c
11c11,15
< char Version[] = "named %VERSION% %WHEN%\n\t%WHOANDWHERE%";
---
> #ifndef WINNT
> char Version[] = "named %VERSION% %WHEN%\n\t%WHOANDWHERE%";
> #else
> char Version[] = "named 4.9.5-P1-Wednesday-18-December-96\n\tGregSchueman-LarryKahn-VirajBais";
> #endif
Only in m:\bind/named: WinRel
Only in m:\bind/named: bindtray.ico
Only in m:\bind/named: cnamefix
diff --recurs m:\bind495p1/named/db_defs.h m:\bind/named/db_defs.h
79c79,83
< 	u_int32_t	d_ttl;		/* time to live */
---
> #ifndef WINNT
> 	u_int32_t	d_ttl;		/* time to live */
> #else
> 	int32_t	        d_ttl;		/* time to live */
> #endif
diff --recurs m:\bind495p1/named/db_dump.c m:\bind/named/db_dump.c
84,93c84,97
< #include <sys/param.h>
< #include <sys/stat.h>
< #include <sys/socket.h>
< #include <netinet/in.h>
< #include <arpa/nameser.h>
< #include <arpa/inet.h>
< #include <netdb.h>
< #include <stdio.h>
< #include <syslog.h>
< #include <resolv.h>
---
> #ifndef WINNT
> #include <sys/param.h>
> #include <sys/stat.h>
> #include <sys/socket.h>
> #include <netinet/in.h>
> #endif
> #include <arpa/nameser.h>
> #include <arpa/inet.h>
> #include <netdb.h>
> #include <stdio.h>
> #ifndef WINNT
> #include <syslog.h>
> #endif
> #include <resolv.h>
104a109,111
> char * inet_nsap_ntoa();
> const char * inet_ntop();
> 
417c424
< 			    dp->d_ttl != zones[dp->d_zone].z_minimum)
---
> 			    (u_int32_t)dp->d_ttl != zones[dp->d_zone].z_minimum)
636c643
< 					n = -2;		/* XXX - hack */
---
> 					n = (u_int32_t) -2;		/* XXX - hack */
diff --recurs m:\bind495p1/named/db_func.h m:\bind/named/db_func.h
63a64,67
> 
> #ifdef WINNT
>                writemsg_sock __P((SOCKET, u_char *, int)),
> #endif
diff --recurs m:\bind495p1/named/db_glue.c m:\bind/named/db_glue.c
62,71c62,75
< #include <sys/uio.h>
< #include <sys/param.h>
< #include <sys/stat.h>
< #include <netinet/in.h>
< #include <arpa/inet.h>
< #include <arpa/nameser.h>
< #include <stdio.h>
< #include <syslog.h>
< #include <ctype.h>
< #include <netdb.h>
---
> #ifndef WINNT
> #include <sys/uio.h>
> #include <sys/param.h>
> #include <sys/stat.h>
> #include <netinet/in.h>
> #endif
> #include <arpa/inet.h>
> #include <arpa/nameser.h>
> #include <stdio.h>
> #ifndef WINNT
> #include <syslog.h>
> #endif
> #include <ctype.h>
> #include <netdb.h>
124a129
> #ifndef WINNT
126a132,137
> #else
>   	/* under Windows, abort() does not call raise(SIGABRT)
>   	 * or flush stream buffers
>   	 */
>   	 exit(3);
>   #endif
142,144c153,155
< 		if (!slp)
< 			panic(errno, "malloc(servent)");
< 		slp->name = savestr(sp->s_name);
---
>  		if (!slp)
>   			panic(errno, "malloc(servent)");
>  		slp->name  = savestr(sp->s_name);
146,148c157,159
< 		slp->port = ntohs((u_int16_t)sp->s_port);  /* host byt order */
< 		slp->next = servicelist;
< 		slp->prev = NULL;
---
> 		slp->port = ntohs((u_int16_t)sp->s_port); /* host byte order */
> 		slp->next  = servicelist;
> 		slp->prev  = NULL;
370a382
> #ifndef WINNT
371a384,387
> #else
> 		WSASetLastError(0);
> #endif
> #ifndef WINNT
373a390,393
> #else
> 		s = closesocket(fd);
> 	} while (s < 0 && errno == WSAEINTR);
> #endif
374a395
> #ifndef WINNT
375a397,399
> #else
> 	if (s < 0 && errno != WSAEBADF)
> #endif
461a486,504
> #ifdef WINNT
> int writemsg_sock(rfd, msg, msglen)
> 	SOCKET rfd;
> 	u_char *msg;
> 	int msglen;
> {
> 	u_char len[INT16SZ];
> 	__putshort(msglen, len);
> 
> 	if (send(rfd, len, INT16SZ, 0) != INT16SZ ||
> 		send(rfd, msg, msglen, 0) != msglen) {
> 		dprintf(1,(ddt, "writemsg_sock failed: %d\n",errno));
> 		return(-1);
> 	}
> 	return (0);
> }
> 
> #endif
> 
850a894
> #ifndef WINNT
893a938
> #endif /* WINNT */
diff --recurs m:\bind495p1/named/db_load.c m:\bind/named/db_load.c
88,90c88,91
< #include <sys/param.h>
< #include <sys/stat.h>
< #include <sys/socket.h>
---
> #ifndef WINNT
> #include <sys/param.h>
> #include <sys/stat.h>
> #include <sys/socket.h>
92,94c93,96
< #include <netinet/in.h>
< #include <arpa/nameser.h>
< #include <arpa/inet.h>
---
> #include <netinet/in.h>
> #endif
> #include <arpa/nameser.h>
> #include <arpa/inet.h>
96,97c98,104
< #include <ctype.h>
< #include <errno.h>
---
> #ifndef WINNT
> #include <syslog.h>
> #else
> #include <sys/types.h>
> #include <sys/stat.h>
> #endif
> #include <ctype.h>
101,102c108,109
< #include <syslog.h>
< #include <time.h>
---
> #include <errno.h>
> #include <time.h>	/* for gmtime() */
129a137,138
> u_int inet_nsap_addr();
> int inet_pton();
181a191
> #ifndef WINNT
182a193,195
> #else
> 	struct _stat sb;
> #endif
246a260
> #ifndef WINNT
247a262,264
> #else
> 	if (_fstat(fileno(fp), &sb) < 0) {
> #endif
316c333
< 				    if (n > (INT_MAX - (*cp - '0')) / 10) {
---
> 				    if (n > (((u_int32_t)INT_MAX - (u_int32_t)(*cp - '0')) / (u_int32_t)10)) {
329c346
< 				    if (n > max_cache_ttl)
---
> 				    if (n > (u_int32_t)max_cache_ttl)
354c371
< 			    syslog(LOG_INFO, "%s: Line %d: Unknown type: %s.\n",
---
> 			    syslog(LOG_WARNING, "%s: Line %d: Unknown type: %s.\n",
363c380
< 				syslog(LOG_NOTICE,
---
> 				syslog(LOG_WARNING,
444c461
< 					syslog(LOG_INFO,
---
> 					syslog(LOG_WARNING,
474c491
< 					syslog(LOG_NOTICE,
---
> 					syslog(LOG_WARNING,
534c551
< 				if (zp->z_expire < 
---
> 				if ((u_int32_t)zp->z_expire < 
536c553
< 				    syslog(LOG_NOTICE,
---
> 				    syslog(LOG_WARNING,
543c560
< 				    syslog(LOG_NOTICE,
---
> 				    syslog(LOG_WARNING,
548c565
< 				if (zp->z_refresh < maint_interval) {
---
> 				if (zp->z_refresh < (unsigned)maint_interval) {
554c571
< 				if (zp->z_retry < maint_interval) {
---
>  				if ((u_int32_t)zp->z_retry < (unsigned)maint_interval) {
560c577
< 				if (zp->z_expire < 
---
> 				if ((u_int32_t)zp->z_expire < 
1211c1228
< 		if (signtime > now) {
---
> 		if (signtime > (u_int32_t)now) {
1217c1234
< 		if (exptime <= now) {
---
> 		if (exptime <= (u_int32_t)now) {
1309c1326
< 						syslog(LOG_INFO,
---
> 						syslog(LOG_WARNING,
1313c1330
< 						syslog(LOG_INFO,
---
> 						syslog(LOG_WARNING,
1337c1354
< 				syslog(LOG_INFO,
---
> 				syslog(LOG_WARNING,
1370c1387
< 		syslog(LOG_NOTICE, "%s: line %d: database format error (%s)",
---
> 		syslog(LOG_WARNING, "%s: line %d: database format error (%s)",
1450c1467
< 			syslog(LOG_NOTICE,
---
> 			syslog(LOG_WARNING,
1749c1766
< 				syslog(LOG_NOTICE, "%s:%d: expected a number",
---
> 				syslog(LOG_WARNING, "%s:%d: expected a number",
1778c1795
< 		syslog(LOG_INFO, 
---
> 		syslog(LOG_WARNING, 
1814c1831
< 	syslog(LOG_INFO, "%s: line %d: unexpected EOF", src, lineno);
---
> 	syslog(LOG_WARNING, "%s: line %d: unexpected EOF", src, lineno);
1870c1887
< 		syslog(LOG_INFO, "%s:%d: database naming error\n",
---
> 		syslog(LOG_WARNING, "%s:%d: database naming error\n",
1908c1925
< 		syslog(LOG_INFO, "%s: line %d: unknown protocol: %s.",
---
> 		syslog(LOG_WARNING, "%s: line %d: unknown protocol: %s.",
1950c1967
< 			syslog(LOG_INFO,
---
> 			syslog(LOG_WARNING,
1961c1978
< 			syslog(LOG_INFO,
---
> 			syslog(LOG_WARNING,
1970c1987
< 		syslog(LOG_INFO, "%s: line %d: missing close paren",
---
> 		syslog(LOG_WARNING, "%s: line %d: missing close paren",
2010c2027
< 			syslog(LOG_INFO, "%s contains bogus element (%s)",
---
> 			syslog(LOG_WARNING, "%s contains bogus element (%s)",
2016c2033
< 				syslog(LOG_INFO,
---
> 				syslog(LOG_WARNING,
2037c2054
< 			syslog(LOG_INFO,
---
> 			syslog(LOG_WARNING,
2252c2269
< 				data[n] = MAXCHARSTRING;
---
> 				data[n] = (char)MAXCHARSTRING;
2261c2278
< 			syslog(LOG_INFO,
---
> 			syslog(LOG_WARNING,
2267c2284
< 			syslog(LOG_INFO,
---
> 			syslog(LOG_WARNING,
2279c2296
< 		syslog(LOG_INFO,
---
> 		syslog(LOG_WARNING,
Only in m:\bind/named: db_load.sav
diff --recurs m:\bind495p1/named/db_lookup.c m:\bind/named/db_lookup.c
65,72c65,76
< #include <sys/types.h>
< #include <sys/param.h>
< #include <sys/socket.h>
< #include <netinet/in.h>
< #include <arpa/nameser.h>
< #include <ctype.h>
< #include <stdio.h>
< #include <syslog.h>
---
> #ifndef WINNT
> #include <sys/types.h>
> #include <sys/param.h>
> #include <sys/socket.h>
> #include <netinet/in.h>
> #endif
> #include <arpa/nameser.h>
> #include <ctype.h>
> #include <stdio.h>
> #ifndef WINNT
> #include <syslog.h>
> #endif
74c78
< #include "named.h"
---
> #include "named.h"
137c141
< 		    ((size_t)NAMELEN(*np) == (cp - name)) && 
---
> 		    ((size_t)NAMELEN(*np) == (size_t)(cp - name)) && 
diff --recurs m:\bind495p1/named/db_reload.c m:\bind/named/db_reload.c
62,67c62,71
< #include <sys/param.h>
< #include <sys/socket.h>
< #include <netinet/in.h>
< #include <arpa/nameser.h>
< #include <stdio.h>
< #include <syslog.h>
---
> #ifndef WINNT
> #include <sys/param.h>
> #include <sys/socket.h>
> #include <netinet/in.h>
> #endif
> #include <arpa/nameser.h>
> #include <stdio.h>
> #ifndef WINNT
> #include <syslog.h>
> #endif
diff --recurs m:\bind495p1/named/db_save.c m:\bind/named/db_save.c
66,70c66,74
< #include <sys/param.h>
< #include <sys/socket.h>
< #include <netinet/in.h>
< #include <arpa/nameser.h>
< #include <syslog.h>
---
> #ifndef WINNT
> #include <sys/param.h>
> #include <sys/socket.h>
> #include <netinet/in.h>
> #endif
> #include <arpa/nameser.h>
> #ifndef WINNT
> #include <syslog.h>
> #endif
diff --recurs m:\bind495p1/named/db_secure.c m:\bind/named/db_secure.c
9,14c9,19
< #include <sys/socket.h>
< #include <netinet/in.h>
< #include <arpa/nameser.h>
< #include <arpa/inet.h>
< #include <syslog.h>
< #include <errno.h>
---
> #ifndef WINNT
> #include <sys/socket.h>
> #include <netinet/in.h>
> #endif
> #include <arpa/nameser.h>
> #include <arpa/inet.h>
> #ifndef WINNT
> #include <syslog.h>
> #include <errno.h>
> 
> #endif
diff --recurs m:\bind495p1/named/db_update.c m:\bind/named/db_update.c
62c62,63
< #include <syslog.h>
---
> #ifndef WINNT
> #include <syslog.h>
64,70c65,72
< #include <sys/types.h>
< #include <sys/param.h>
< #include <sys/socket.h>
< #include <netinet/in.h>
< #include <arpa/inet.h>
< #include <arpa/nameser.h>
< #include <resolv.h>
---
> #include <sys/types.h>
> #include <sys/param.h>
> #include <sys/socket.h>
> #include <netinet/in.h>
> #endif
> #include <arpa/inet.h>
> #include <arpa/nameser.h>
> #include <resolv.h>
647c649
< 		else if (dp->d_ttl < tt.tv_sec+min_cache_ttl)
---
> 		else if ((u_int32_t)dp->d_ttl < tt.tv_sec+min_cache_ttl)
649c651
< 		else if (dp->d_ttl > tt.tv_sec+max_cache_ttl)
---
> 		else if ((u_int32_t)dp->d_ttl > tt.tv_sec+max_cache_ttl)
Only in m:\bind/named: dmalloc.c
Only in m:\bind/named: dmalloc.h
Only in m:\bind/named: icon1.ico
Only in m:\bind/named: ipaddr.mak
Only in m:\bind/named: ipaddr.mdp
Only in m:\bind/named: ipaddr.ncb
Only in m:\bind/named: ipaddr.vcp
Only in m:\bind/named: ipaddr95.mak
Only in m:\bind/named: ipaddr95.mdp
Only in m:\bind/named: ipaddr95.ncb
Only in m:\bind/named: ipadr.c
Only in m:\bind/named: ipadr95.c
Only in m:\bind/named: leon.zip
diff --recurs m:\bind495p1/named/named-xfer.c m:\bind/named/named-xfer.c
99,107c99,108
< #include <sys/param.h>
< #include <sys/file.h>
< #include <sys/stat.h>
< #include <sys/socket.h>
< 
< #include <netinet/in.h>
< #if defined(__osf__)
< # include <sys/mbuf.h>
< # include <net/route.h>
---
> #ifndef WINNT
> #include <sys/param.h>
> #include <sys/file.h>
> #include <sys/stat.h>
> #include <sys/socket.h>
> 
> #include <netinet/in.h>
> #if defined(__osf__)
> # include <sys/mbuf.h>
> # include <net/route.h>
113a115,119
> 
> #else
> #include <sys/stat.h>
> #include <limits.h>
> #endif /* WINNT */
120a127
> #ifndef WINNT
121a129,131
> #else
> #include <stdlib.h>
> #endif
123c133
< # include <math.h>
---
> #include <math.h>
135a146,151
> #ifdef WINNT
> #define exit(x) ExitProcess(x);
> HANDLE hReadWriteEvent = NULL;
> char pathtmpxfer[MAX_PATH], pathtmpdir[MAX_PATH];
> #endif
> 
136a153,154
> char * inet_nsap_ntoa();
> const char * inet_ntop();
137a156
> #ifndef WINNT
139a159,161
> #else
> static char	*ddtfile = pathtmpxfer,
> #endif
156a179
> #ifndef WINNT
157a181
> #endif
171c195,198
< 	int dbfd, ddtd, result, c, fd, closed = 0;
---
> 	int dbfd, ddtd, result, c, closed = 0;
> #ifndef WINNT
> 	int fd;
> #endif
181a209,220
> #ifdef WINNT
>  	WORD wVersionRequested;
> 	WSADATA wsaData;
> 
> 	wVersionRequested = MAKEWORD(1,1);
> 	if (WSAStartup(wVersionRequested, &wsaData)) {
> 		syslog(LOG_ERR, "No useable winsock.dll: %m");
> 		exit(XFER_FAIL); 
> 	}
> 
> #endif
> 
188a228
> #ifndef WINNT
191a232
> #endif
197a239,247
> #ifdef WINNT
> 	(void) SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_NORMAL);
> 	if (!GetTempPath(MAX_PATH, pathtmpdir))
> 		syslog(LOG_ERR, "GetTempPath() failed: %m");
> 	else {
> 		strcpy(pathtmpxfer, pathtmpdir);
> 		strcat(pathtmpxfer, _PATH_TMPXFER);
> 	}
> #endif
198a249
> #ifndef WINNT
203a255
> #endif /* WINNT */
350a403
> #ifndef WINNT
370a424
> #endif WINNT
403c457,467
< 			hp = gethostbyname(tm);
---
> /*#ifndef WINNT
> 		   hp = gethostbyname(tm);
> #else
> 		   hp = gethostbyname_nt(tm);
> #endif
> */
> /* lgk we may want the above code someday but for now use gethostbyname under nt
> (not the new version which will not resolve locahost or names in the host file ..
> this means ip6 will not work with xfer for now */
> 
>             hp = gethostbyname(tm);
407c471,472
< 				       tm, zp->z_origin);
---
> 				       tm, zp->z_origin); 
> 
410c475
< 			bcopy(hp->h_addr,
---
>                   bcopy(hp->h_addr,
413a479
> 
432a499,505
> 
>     /* lgk add code to close ddtfile here */
> #ifdef DEBUG
> 	if (debug)
>       (void) my_fclose(ddt);
> #endif
> 
434a508,511
> #ifdef WIN95
> BOOL moveok;
> #endif
> 
435a513
> #ifndef WINNT
436a515,534
> #else /* lgk get rid of the ddt file if txfer ok in debug mode */
> #ifdef DEBUG
>         if (debug)
>           (void) unlink(ddtfile);
> #endif
> 
> /* lgk movefileex doesn't work on win95 so replace it */
> #ifndef WIN95
> 		/* C run time rename function under NT does not overwrite */
> 		if(!MoveFileEx(tmpname, dbfile, MOVEFILE_REPLACE_EXISTING)) {
> #else
> 		moveok = CopyFile(tmpname, dbfile, FALSE);
>                 if (moveok)
>                   moveok = DeleteFile(tmpname);
>                 if (!moveok) {
>                     
> #endif /* winnt or 95 versions */
> 
> #endif
> 
444a543
> /* lgk add code to get rid of the ddt files if not in debug mode.. */
446a546,549
> #ifdef DEBUG
>         if (debug)
>           (void) unlink(ddtfile);
> #endif
456,457c559,560
< #endif
< 		    (void) unlink(tmpname);
---
> #endif      
> 		(void) unlink(tmpname);
496c599,600
< int	minimum_ttl = 0, got_soa = 0;
---
> u_int32_t	minimum_ttl = 0;
> int	got_soa = 0;
519a624
> #ifndef WINNT
525c630,632
< 	int qdcount, ancount, aucount, class, type;
---
> #endif
> 	u_short qdcount, ancount, aucount;
> 	int class, type;
527a635,640
> #ifdef WINNT
> /* lgk moved startup to beginning.. */
> 
> 	hReadWriteEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
> #endif /* WINNT */
> 
542a656,657
> 
> #ifndef WINNT
556a672
> #endif /* WINNT */
572c688
< 				syslog(LOG_INFO, "malloc(%u) failed",
---
> 				syslog(LOG_WARNING, "malloc(%u) failed",
578a695
> 
584c701
< 			syslog(LOG_INFO, "socket: %m");
---
> 			syslog(LOG_WARNING, "socket: %m");
587c704
< 		}	
---
> 		}
593c710
< 				syslog(LOG_INFO,
---
> 				syslog(LOG_WARNING,
607c724
< 				syslog(LOG_INFO,
---
> 				syslog(LOG_WARNING,
610a728
> #ifndef WINNT
615a734
> #endif /* WINNT */
620a740
> #ifndef WINNT
622c742,745
< 			syslog(LOG_INFO, "writemsg: %m");
---
> #else
> 		if (writemsg_sock(s, buf, n) < 0) {
> #endif
> 			syslog(LOG_WARNING, "writemsg: %m");
641c764
< 				syslog(LOG_INFO,
---
> 				syslog(LOG_WARNING,
663,665c786,788
< 		qdcount = ntohs(hp->qdcount);
< 		ancount = ntohs(hp->ancount);
< 		aucount = ntohs(hp->nscount);
---
> 		qdcount = ntohs( (u_short) hp->qdcount);
> 		ancount = ntohs( (u_short) hp->ancount);
> 		aucount = ntohs( (u_short) hp->nscount);
684c807
< 			syslog(LOG_NOTICE,
---
> 			syslog(LOG_WARNING,
701c824
< 			syslog(LOG_INFO,
---
> 			syslog(LOG_WARNING,
725c848
< 			syslog(LOG_INFO,
---
> 			syslog(LOG_WARNING,
768c891
< 			syslog(LOG_INFO,
---
> 			syslog(LOG_WARNING,
829c952
< 							syslog(LOG_INFO,
---
> 							syslog(LOG_WARNING,
836c959
< 							syslog(LOG_INFO,
---
> 							syslog(LOG_WARNING,
840a964
> #ifndef WINNT
847a972
> #endif /* WINNT */
852a978,979
> 					 
> #ifndef WINNT
854c981,984
< 						syslog(LOG_INFO,
---
> #else
> 					if (writemsg_sock(s, buf, n) < 0) {
> #endif
> 						syslog(LOG_WARNING,
889c1019
< 					syslog(LOG_INFO,
---
> 					syslog(LOG_WARNING,
908,909c1038,1039
< 				ancount = ntohs(hp->ancount);
< 				for (n = cnt = 0 ; cnt < ancount ; cnt++) {
---
> 				ancount = ntohs( (u_short) hp->ancount);
> 				for (n = cnt = 0 ; cnt < (u_int)ancount ; cnt++) {
917c1047
< 					ancount = ntohs(hp->nscount);
---
> 					ancount = ntohs((u_short)hp->nscount);
925c1055
< 				ancount = ntohs(hp->arcount);
---
> 				ancount = ntohs((u_short)hp->arcount);
931c1061
< 					syslog(LOG_INFO,
---
> 					syslog(LOG_WARNING,
938c1068
< 					syslog(LOG_INFO,
---
> 					syslog(LOG_WARNING,
947,948c1077,1078
< 				ancount = ntohs(hp->ancount);
< 				for (n = cnt = 0; cnt < ancount; cnt++) {
---
> 				ancount = ntohs( (u_short) hp->ancount);
> 				for (n = cnt = 0; cnt < (u_int)ancount; cnt++) {
955c1085
< 					syslog(LOG_INFO,
---
> 					syslog(LOG_WARNING,
962c1092
< 					syslog(LOG_INFO,
---
> 					syslog(LOG_WARNING,
982c1112
< 						syslog(LOG_INFO,
---
> 						syslog(LOG_WARNING,
1021c1151
< 					syslog(LOG_INFO,
---
> 					syslog(LOG_WARNING,
1046a1177
> #ifndef WINNT
1047a1179,1182
> #else
> 					if (fseek(dbfp, 0L, SEEK_SET) || 
> 						!SetEndOfFile((HANDLE)fileno(dbfp))) {
> #endif
1049c1184
< 						    syslog(LOG_INFO,
---
> 						    syslog(LOG_ERR,
1066a1202
> #ifndef WINNT
1072a1209
> #endif /* WINNT */
1085c1222
< 		    syslog(LOG_NOTICE,
---
> 		    syslog(LOG_WARNING,
1091a1229
> #ifndef WINNT
1096a1235
> #endif /* WINNT */
1117a1257
> 
1118a1259
> 
1120d1260
< 	struct itimerval ival, zeroival;
1124a1265,1266
> #ifndef WINNT
> 	struct itimerval ival, zeroival;
1128a1271,1275
> #else
> 	int ret;
> 	struct timeval tvout;
> 	fd_set fdset;	
> #endif
1129a1277
> #ifndef WINNT
1134a1283
> 		
1141c1290
< 			syslog(LOG_INFO, "premature EOF, fetching \"%s\"",
---
> 			syslog(LOG_WARNING, "premature EOF, fetching \"%s\"",
1165a1315,1369
> #else /* WINNT */
> 		/* our socket is kept nonblocking due to timeout considerations
> 		 * there are two ways to ensure that a recv on the nonblocking
> 		 * socket will not return prematurely:
> 		 * 1) use select() to wait (with timeout) for the socket to be ready
> 		 * 2) use the ReadFile() win32 API to do asynchronous I/O using
> 		 *    signalled events (as has been done in writev() implementation
> 		 * The first is being used here because it will work for Unix
> 		 * systems also, and some day the setitimer() alarms may be 
> 		 * replaced by select() to create a single scheme for both
> 		 * Unix and NT
> 		 */
> 		 tvout.tv_sec = timeout;
> 		 tvout.tv_usec = 0;
> 		 FD_ZERO(&fdset);
> 		 FD_SET(fd, &fdset);
> 		 ret = select(fd+1, &fdset, (fd_set *)0, (fd_set *)0, &tvout);
> 		 if ((ret != SOCKET_ERROR) && (ret > 0)) 
> 		    {
> 		 	n = recv(fd, buf, len, 0);	 
> 
> 			if (n == SOCKET_ERROR)
> 			  {
> 				if (WSAGetLastError() == WSAEWOULDBLOCK)
> 					continue;
> 				else 
> 				   {
> 					syslog(LOG_ERR, "recv (in xfer) (len=%d): %m", len);
> 					return (-1);
> 				   }
> 		       
> 		       }
> 		    else if (n == 0)
> 			 {
> 			   syslog(LOG_WARNING,"recv (in xfer) (connection closed by remote) : %m");
> 			   return(-1);
> 			 }
> 		   }
> 	        else /* error case on select */ 
> 				{
> 				  if (ret == SOCKET_ERROR)
> 				  {
> 					  syslog(LOG_ERR,"select (in xfer) error: %m");
> 					  return(-1);
> 				  }
> 
> 		 	      if (ret == 0) 
> 				    { 
> 				     WSASetLastError(WSAETIMEDOUT);
> 			             syslog(LOG_WARNING, "select (in xfer timed out) error: %m");
> 			             return (-1);
> 				    }
> 				 }
> 
> #endif /* WINNT */
1168a1373
> #ifndef WINNT
1172a1378
> #endif
1444c1650
< 		if (n > (sizeof data) - (cp1 - (u_char *)data))
---
> 		if ((unsigned)n > (sizeof data) - (cp1 - (u_char *)data))
1456c1662
< 		syslog(LOG_INFO, "\"%s %s %s\" - unknown type (%d)",
---
> 		syslog(LOG_WARNING, "\"%s %s %s\" - unknown type (%d)",
Only in m:\bind/named: named.aps
Only in m:\bind/named: named.mak
Only in m:\bind/named: named.mdp
Only in m:\bind/named: named.ncb
Only in m:\bind/named: named.rc
Only in m:\bind/named: named.vcp
Only in m:\bind/named: named95.mak
Only in m:\bind/named: named95.mdp
Only in m:\bind/named: named95.ncb
Only in m:\bind/named: ndc.c
Only in m:\bind/named: ndc.mak
Only in m:\bind/named: ndc.mdp
Only in m:\bind/named: ndc.ncb
Only in m:\bind/named: ndc.vcp
Only in m:\bind/named: ns_REsp.sav
diff --recurs m:\bind495p1/named/ns_defs.h m:\bind/named/ns_defs.h
122,131c122,136
< 	u_int32_t	z_expire;	/* expiration time for cached info */
< 	u_int32_t	z_minimum;	/* minimum TTL value */
< 	u_int32_t	z_serial;	/* changes if zone modified */
< 	char		*z_source;	/* source location of data */
< 	time_t		z_ftime;	/* modification time of source file */
< 	struct in_addr	z_xaddr;	/* override server for next xfer */
< 	struct in_addr	z_addr[NSMAX];	/* list of master servers for zone */
< 	u_char		z_addrcnt;	/* number of entries in z_addr[] */
< 	u_char		z_type;		/* type of zone; see below */
< 	u_int16_t	z_flags;	/* state bits; see below */
---
> #ifndef WINNT
> 	u_int32_t	z_expire;	/* expiration time for cached info */
> #else
> 	int32_t	z_expire;	/* expiration time for cached info */
> #endif
> 	u_int32_t	z_minimum;	/* minimum TTL value Changes */
> 	u_int32_t	z_serial;	/* changes if zone modified */
> 	char		*z_source;	/* source location of data */
> 	time_t		z_ftime;	/* modification time of source file */
> 	struct in_addr	z_xaddr;	/* override server for next xfer */
> 	struct in_addr	z_addr[NSMAX];	/* list of master servers for zone */
> 	u_char		z_addrcnt;	/* number of entries in z_addr[] */
> 	u_char		z_type;		/* type of zone; see below */
> 	u_int16_t	z_flags;	/* state bits; see below */
> #ifndef WINNT
132a138,140
> #else
> 	HANDLE		z_xferpid;	/* handle for thread doing xfer */
> #endif
177a186,188
> #ifdef WINNT
> #define XFER_KILLED 	4
> #endif
178a190
> #ifndef WINNT
179a192
> #endif
253a267
> #ifndef WINNT
254a269,271
> #else
> 	SOCKET	s_rfd;
> #endif
268a286
> #ifndef WINNT
269a288,290
> #else
> 	u_int		dq_dfd;		/* datagram file descriptor */
> #endif
diff --recurs m:\bind495p1/named/ns_forw.c m:\bind/named/ns_forw.c
62,66c62,68
< #include <sys/param.h>
< #include <sys/socket.h>
< #include <netinet/in.h>
< #include <arpa/inet.h>
< #include <arpa/nameser.h>
---
> #ifndef WINNT
> #include <sys/param.h>
> #include <sys/socket.h>
> #include <netinet/in.h>
> #endif
> #include <arpa/inet.h>
> #include <arpa/nameser.h>
68,71c70,78
< #include <syslog.h>
< #include <resolv.h>
< #include <stdio.h>
< #include <errno.h>
---
> #ifndef WINNT
> #include <syslog.h>
> #else
> #include <stdlib.h>
> #include <search.h>
> #endif
> #include <resolv.h>
> #include <stdio.h>
> #include <errno.h>
74a82,85
> #ifdef WINNT
> int qcomp(const void *, const void *);
> #endif
> 
383c394
< 	register int n;
---
> 	register unsigned int n;
652a664
> #ifndef WINNT
654a667,669
> #else
> 		qsort((char *)qp->q_addr, n, sizeof(struct qserv), qcomp);
> #endif
1063d1077
< 	struct databuf *dp;
diff --recurs m:\bind495p1/named/ns_func.h m:\bind/named/ns_func.h
106,109c106,113
< extern void		holdsigchld __P((void));
< extern void		releasesigchld __P((void));
< extern SIG_FN		reapchild __P(());
< extern void		endxfer __P((void));
---
> #ifndef WINNT
> extern void		holdsigchld __P((void));
> extern void		releasesigchld __P((void));
> extern SIG_FN		reapchild __P(());
> extern void		endxfer __P((void));
> #else
> extern	void		endxfer __P((DWORD));
> #endif
diff --recurs m:\bind495p1/named/ns_glob.h m:\bind/named/ns_glob.h
89,90c89,93
< DECL	int			vs		INIT(-1);
< 
---
> #ifndef WINNT
> DECL	int			vs		INIT(-1);
> #else
> DECL	int			vs		INIT(INVALID_SOCKET);
> #endif
diff --recurs m:\bind495p1/named/ns_init.c m:\bind/named/ns_init.c
62,71c62,75
< #include <sys/param.h>
< #include <sys/socket.h>
< #include <sys/stat.h>
< #include <netinet/in.h>
< #include <arpa/nameser.h>
< #include <arpa/inet.h>
< #include <syslog.h>
< #include <resolv.h>
< #include <stdio.h>
< #include <errno.h>
---
> #ifndef WINNT
> #include <sys/param.h>
> #include <sys/socket.h>
> #include <netinet/in.h>
> #endif
> #include <sys/stat.h>
> #include <arpa/nameser.h>
> #include <arpa/inet.h>
> #ifndef WINNT
> #include <syslog.h>
> #endif
> #include <resolv.h>
> #include <stdio.h>
> #include <errno.h>
108,111c112,115
< {
< 	u_long refresh = (zp->z_refresh > 0) ? zp->z_refresh : INIT_REFRESH;
< 	time_t half = (refresh + 1) / 2;
< 
---
>    {
>   	u_long refresh = (zp->z_refresh > 0) ? zp->z_refresh : INIT_REFRESH;
>   	time_t half = (refresh + 1) / 2;
>  
244a249,251
> #ifdef WINNT
> 	extern char *pathtmpdir;
> #endif
246a254,262
> 	
> #if defined(WINNT) && defined(REGISTRY_PATHS)
> 	/* software.com specific 
> 	   PIW:  change to the temp dir that we got from the registry */
> 	if (chdir(pathtmpdir) != TRUE)
> 	{
> 		syslog(LOG_CRIT, "Can't chdir to %s: %m\n",buf);
> 		exit(1);
> 	}
247a264
> #endif
268a286
> #ifndef WINNT
270,271c288,302
< 				syslog(LOG_CRIT, "directory %s: %m\n",
< 					buf);
---
> #else
> #ifdef REGISTRY_PATHS
>             /* software.com specific 
> 		       PIW Software.com: ignore the directory, we got it from
> 			   the registry already in ns_main.c, and it is stored
> 			   in the global 'pathtmpdir'. */
> 
> 			syslog(LOG_INFO,"Ignoring directory entry in startup\n");
> 
> 			if (chdir(pathtmpdir) != TRUE) {
> #else
> 			if (chdir(buf) != TRUE) {
> #endif /* registry paths */
> #endif /* winnt */
> 				syslog(LOG_CRIT, "directory %s: %m\n",buf);
562a594
> #ifndef WINNT
563a596,598
> #else
> 				sprintf(buf, "%sNsTmp%ld.%d", pathtmpdir,
> #endif
994c1029
< 	int ok;
---
> 	int ok = 0;
1037c1072
< 		syslog((transport == response_trans) ? LOG_INFO : LOG_NOTICE,
---
> 		syslog((transport == response_trans) ? LOG_WARNING : LOG_WARNING,
diff --recurs m:\bind495p1/named/ns_main.c m:\bind/named/ns_main.c
9,10c9,10
<  * Copyright (c) 1986, 1989, 1990
<  *    The Regents of the University of California.  All rights reserved.
---
>  * Copyright (c) 1986,  1989, 1990
>  *    The Regents of the University of California.  All rights reserved.
12,18c12,18
<  * Redistribution and use in source and binary forms, with or without
<  * modification, are permitted provided that the following conditions
<  * are met:
<  * 1. Redistributions of source code must retain the above copyright
<  *    notice, this list of conditions and the following disclaimer.
<  * 2. Redistributions in binary form must reproduce the above copyright
<  *    notice, this list of conditions and the following disclaimer in the
---
>  * Redistribution and use in source and binary forms, with or without
>  * modification, are permitted provided that the following conditions
>  * are met:
>  * 1. Redistributions of source code must retain the above copyright
>  *    notice, this list of conditions and the following disclaimer.
>  * 2. Redistributions in binary form must reproduce the above copyright
>  *    notice, this list of conditions and the following disclaimer in the
73a74
> #ifndef WINNT
75a77
> #endif
84a87
> #ifndef WINNT
87a91
> #endif
95a100
> #ifndef WINNT
96a102,104
> #else
> #include "ntif.h" /* hacked version for nt only */
> #endif
100a109
> #ifndef WINNT
101a111
> #endif
115a126,130
> #ifdef WINNT
> #include <process.h> 
> #include "../compat/lib/log.h"
> #endif
> 
127a143,182
> #ifdef WINNT
> 
> #ifdef WIN95
> void ndc_thread(void *);
> #endif
> 
>     	/* handles for various threads, process, and objects */
> 	HANDLE hReadWriteEvent = NULL, hServDoneEvent = NULL, hWorkerThread = NULL, hNDCThread = NULL;
> 	/* variables used to inform the Service Control Manager of our current state */
>         volatile int doterminate = 0;
> 	SERVICE_STATUS ServiceStatus;
> 	SERVICE_STATUS_HANDLE   hServiceStatus;
> 	OVERLAPPED overlap; 
> 	int was_stopped = 0;
> 	char *pathboot, *pathxfer, *pathdebug,
> 	 	 *pathdumpfile, *pathpidfile, *pathstats,
> 	 	 *pathxfertrace, *pathxferddt, *pathtmpdir, *pathsysdir;
>     CRITICAL_SECTION protected_zp;
>     CRITICAL_SECTION maint_section;
>     /* lgk 10/96 new critical section to protect outgoing zone transfers */
>     CRITICAL_SECTION doxfr_section;
>     /* critical section used to synchronize the named xfers */
> #define exit(x) { if (hServDoneEvent != NULL) \
> 						SetEvent(hServDoneEvent);\
> 				  ExitThread(x); \
> 				}
> char szMsgPath[255];
> #ifdef NOWAIT
> 	char loopbuf[] = "";
> 	struct sockaddr_in loopback;
> #endif
> 	
> #ifdef REGISTRY_PATHS
> 	/* software.com specific
> 	   PIW Software.com change to get path from registry */
> 	static int GetRegistryPath(int max_len, char *directory);
> #endif /* registry paths */
> #endif /* WINNT */
> 
> 
136a192
> #ifndef WINNT
150a207
> #endif /* WINNT */
166,167c223,228
< 	register int n, udpcnt;
< 	register char *arg;
---
>   	register int n;
> 	register char *arg;	
> 	const int on = 1;
> 
> #ifndef WINNT
>     register int udpcnt;
172d232
< 	const int on = 1;
180c240,243
< 	struct timeval t, *tp;
---
> 	struct timeval *tp;
> #endif /* WINNT */
> 
> 	struct timeval t;
195a259,287
> #ifdef WINNT
>  	WORD wVersionRequested;
> 	WSADATA wsaData;
> 
> 	/* initialize the winsock dll version needed */
> 	wVersionRequested = MAKEWORD(1,1);
> 	if (WSAStartup(wVersionRequested, &wsaData)) {
> 		syslog(LOG_ERR, "No useable winsock.dll: %m");
> 		return;
> 	}
> 
>     /* initialize the critical section */
>    InitializeCriticalSection(&protected_zp);
>    InitializeCriticalSection(&maint_section);
>    InitializeCriticalSection(&doxfr_section);
>    /* initialize all pathnames */
>    expand_paths();
> 
>        /* lgk add startup code here */
>        /* Set the Event-ID message-file name. */
> 
>       /* lgk modified 10.96 to use getmodulefilename instead of getcurrent directory
>          so it works correctly when running as a service */
>            
>        GetModuleFileName(NULL,szMsgPath,sizeof(szMsgPath));
>        addSourceToRegistry("DNS", szMsgPath);
>           
> #endif /* WINNT */
> 
307a400
> #ifndef WINNT
310,312d402
< #else
< 	openlog("named", LOG_PID);
< #endif
320a411,417
> #else
>         /* note under windows Nt udp checksums are always turned on
>         so this is a no-op */
> 	openlog("named", LOG_PID);
> #endif
> 
> #endif /* WINNT */
354c451,455
< 		int fd;
---
> #ifdef F_DUPFD
>  		int fd;
> #endif
> 
> #ifndef WINNT
355a457,459
> #else
> 		if ((vs = socket(AF_INET, SOCK_STREAM, 0)) == INVALID_SOCKET) {
> #endif
407a512
> #ifndef WINNT
420a526
> #endif /* WINNT */
445a552
> #ifndef WINNT
462a570
> #endif /* WINNT */
471a580
> #ifndef WINNT
549a659,862
> 
> #else /* WINNT */
> 
> #ifndef WIN95
> 
> #ifdef DEBUG
> 	if (!debug)
> #endif
> 
> 	{
> 		SERVICE_TABLE_ENTRY dispatchTable[] = {
>         	{ TEXT("DomainNameService"), (LPSERVICE_MAIN_FUNCTION)service_main },
>         	{ NULL, NULL }
>     	};
> 
> 	/* daemonize */
>     	if (!StartServiceCtrlDispatcher(dispatchTable)) {
> 			if (!was_stopped) {
> 				syslog(LOG_ERR, "StartServiceCtrlDispatcher: %m");
> 				ExitProcess(2);
> 			} else {
> 				syslog(LOG_INFO, "StartServiceCtrlDispatcher: service stopped");
> 				ExitProcess(0);
> 			}
> 		}
> 	}
> 
> 
> #ifdef DEBUG
> 	else
> 	   service_main(argc, argv);
> #endif /* DEBUG */
> 
> #else /* is win95 version */
> 	   service_main(argc, argv);
> #endif /* win95 version */
> } /* end main */
> 
> /*
>  * If this runs as a service under NT, the main thread will block at StartServiceCtrlDispatcher()
>  * and another thread will be started by the Service Control Dispatcher which will begin execution 
>  * at the routine specified in that call (viz. service_main) 
>  */
> void
> service_main(argc, argv)
> 	DWORD argc;
> 	LPTSTR *argv;
> {
> 
> #ifndef WIN95
>      DWORD dwWait;
> #endif;
> 
> 
> 
> #ifdef NOWAIT
> 	loopback.sin_family = AF_INET;
> 	loopback.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
> 	loopback.sin_port = local_ns_port;
> #endif
> 
> 	/* lgk if win95 don't do this stuff */
> #ifndef WIN95
> 
> #ifdef DEBUG
> 	if(!debug) {
> #endif /* DEBUG */
> 
>     	/* register our service control handler */
> 		if (!(hServiceStatus = RegisterServiceCtrlHandler( TEXT("DomainNameService"),
>                         			(LPHANDLER_FUNCTION)service_ctrl))) {
> 			syslog(LOG_ERR, "RegisterServiceCtrlHandler() failed: %m");
> 			return;
> 		}
> 
> 		/* report pending status to Service Control Manager */
> 		ServiceStatus.dwServiceType = SERVICE_WIN32_OWN_PROCESS;
> 		ServiceStatus.dwCurrentState = SERVICE_START_PENDING;
> 		ServiceStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP;
> 		ServiceStatus.dwWin32ExitCode = NO_ERROR;
>     	        ServiceStatus.dwServiceSpecificExitCode = 0;
> 		ServiceStatus.dwCheckPoint = 1;
> 		ServiceStatus.dwWaitHint = 5000;
> 		if (!SetServiceStatus(hServiceStatus, &ServiceStatus)) {
> 			syslog(LOG_ERR, "SetServiceStatus(): %m");
>         	ServiceStatus.dwCurrentState = SERVICE_STOPPED;
> 			SetServiceStatus(hServiceStatus, &ServiceStatus);
> 			return;
>     	}
> 
> 		/* create an event object that the control handler function
> 	 	* will signal when it receives the "stop" control code */
> 		if (!(hServDoneEvent = CreateEvent(
>         				NULL,    /* no security attributes */
>         				FALSE,   /* auto-reset event */
>         				FALSE,   /* not-signalled */
>         				NULL))){ /* no name */
> 				syslog(LOG_ERR, "CreateEvent() failed: %m");
>         		ServiceStatus.dwCurrentState = SERVICE_STOPPED;
> 				SetServiceStatus(hServiceStatus, &ServiceStatus);
> 				return;
>     	}
> 
> 	/* 
> 	 * the service_main() thread will have to wait for start/stop/pause/continue requests
> 	 * from the services icon in the Control Panel or from any WIN32 application
>      * start a new thread to perform all the work of the NTP service 
>      */
>         if (!(hWorkerThread = (HANDLE)_beginthread(
>                     worker_thread,
>                     0,       /* stack size			*/
>                     NULL))){    /* argument to thread	*/
> 			syslog(LOG_ERR, "_beginthread: %m");
> 			if (hServDoneEvent != NULL)
> 				CloseHandle(hServDoneEvent);
>         	ServiceStatus.dwCurrentState = SERVICE_STOPPED;
> 			SetServiceStatus(hServiceStatus, &ServiceStatus);
> 			return;
> 		}
> 
>     	/* report to the service control manager that the service is running */
> 		ServiceStatus.dwCurrentState = SERVICE_RUNNING;
> 		ServiceStatus.dwWin32ExitCode = NO_ERROR;
> 		if (!SetServiceStatus(hServiceStatus, &ServiceStatus)) {
> 			syslog(LOG_ERR, "SetServiceStatus(): %m");
> 			if (hServDoneEvent != NULL)
> 				CloseHandle(hServDoneEvent);
>         	ServiceStatus.dwCurrentState = SERVICE_STOPPED;
> 			SetServiceStatus(hServiceStatus, &ServiceStatus);
> 			return;
> 		}
> 
> 
>     	/* wait indefinitely until hServDoneEvent is signaled */
>     	dwWait = WaitForSingleObject(hServDoneEvent,INFINITE);
> 		if (hServDoneEvent != NULL)
> 			CloseHandle(hServDoneEvent);
> 		if (hWorkerThread != NULL)
> 	        CloseHandle(hWorkerThread);
> 
>     	ServiceStatus.dwCurrentState = SERVICE_STOPPED;
> 		SetServiceStatus(hServiceStatus, &ServiceStatus);
> 	return;
> 	}
> #ifdef DEBUG
> 	else 
> 	    worker_thread(NULL);
> 
> #endif /* DEBUG */
> 
> #else /* it is win95 so... no services */
> 
> 
>             /* still start up ndc thread even in win95 mode */
>             /* lgk new code now start up the ndc_named socket thread */
>             if (!(hNDCThread = (HANDLE)_beginthread(
>                     ndc_thread,
>                     0,       /* stack size			*/
>                     NULL))){    /* argument to thread	*/
> 			syslog(LOG_ERR, "_beginthread: %m");
> 			if (hServDoneEvent != NULL)
> 			  CloseHandle(hServDoneEvent);
> 			return;
> 		}
> 
> worker_thread(NULL);
> 
> #endif /* win95 */
> 
> } /* end service_main() */
> 
> 
> /*
>  * worker_thread - perform all remaining functions after initialization and and becoming a service
>  */
> void
> worker_thread(notUsed)
> 	void *notUsed;
> {
> #ifdef WANT_PIDFILE
> 	FILE *fp;
> #endif
> 	register int n, udpcnt;
> 	register struct qstream *sp;
> 	register struct qdatagram *dqp;
> 	struct qstream *nextsp;
> 	int nfds;
> 	const int on = 1;
> 	int size;
> 	SOCKET rfd;
> 	time_t lasttime, maxctime;
> 	u_char buf[BUFSIZ];
> 	struct timeval t, *tp;
> 	fd_set tmpmask;
> 	struct qstream *candidate = QSTREAM_NULL;
>      /* would like to wait on the terminate even here. .but cannot find a way to declare
>         it volatile and it does not work .. so use the stupid doterminate flag */
> 
> 	hReadWriteEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
> 	overlap.Offset = overlap.OffsetHigh = (DWORD)0;
> 	overlap.hEvent = hReadWriteEvent;
> 
> #endif /* WINNT */
> 
582a896,906
> 
> #ifdef WIN95 /* lgk need exit code for win95 since we don't stop the service to exit */
>     	/* test the terminate event and terminate if necessary */
> if (doterminate)
>           {
>  	    CloseHandle(hServDoneEvent);
>  	    syslog(LOG_INFO, "named95: service stopped");
> 	    ExitProcess(0);
> 	 }
> #endif
> 			  
590a915,917
> /* this should never be called from nt as the needendxfer is only set
>  * vai a call to reapchild in ns_maint.c through a signal
>  */
591a919
> #ifndef WINNT
594a923,926
> #else
>                 needendxfer = 0;
> 		syslog(LOG_ERR, "Needendxfer was Set under Windows NT... Shouldn't happen!");
> #endif
595a928,929
> 
> #ifndef WINNT 
596a931
> #endif
637a973
> #ifndef WINNT
638a975,977
> #else
> 		if (n < 0 && errno != WSAEINTR) {
> #endif
666a1006,1013
> #if defined(WINNT) && defined(NOWAIT)
> 				if ((n ==1) && !strcmp(buf, "")) {
> 				/* dummy packet intended to terminate select
> 				 * because a control code has been received or
> 				 * needmaint flag has been set by the timer thread */
> 					break;
> 				}
> #endif
699a1047
> #ifndef WINNT
700a1049,1051
> #else
> 			if (rfd == INVALID_SOCKET && WSAGetLastError() == WSAEINTR)
> #endif
701a1053
> #ifndef WINNT
702a1055,1057
> #else
> 			if (rfd == INVALID_SOCKET && WSAGetLastError() == WSAEMFILE && streamq) {
> #endif
704a1060,1064
> 
> #ifdef WINNT
> EnterCriticalSection(&doxfr_section);
> #endif
> 
715d1074
< 						maxctime = lasttime;
717a1077,1080
> #ifdef WINNT
> LeaveCriticalSection(&doxfr_section);
> #endif
> 
719c1082
< 					sqrm(candidate);
---
> 				   sqrm(candidate);
721a1085
> #ifndef WINNT
722a1087,1089
> #else
> 			if (rfd == INVALID_SOCKET) {
> #endif
725a1093
> #ifndef WINNT 
735a1104,1110
> #else
> 			if(ioctlsocket(rfd, FIONBIO, (u_long *)&on) == SOCKET_ERROR) {
> 				syslog(LOG_INFO, "ioctlsocket(rfd, NONBLOCK): %m");
> 				(void) my_close(rfd);
> 				continue;
> 			}
> #endif
780a1156
>  	                        dprintf(1, (ddt, "sqadd: failed closing socket %d \n",rfd));
800a1177,1181
> 
> #ifdef WINNT
> EnterCriticalSection(&doxfr_section);
> #endif
> 
810c1191
< 				    "\tbufsize %d buf x%lx bufp x%lx\n",
---
> 				    "\tbufsize %d buf x%lx bufp x%lx refcnt %d\n",
812c1193
< 				    (u_long)sp->s_buf, (u_long)sp->s_bufp));
---
> 				    (u_long)sp->s_buf, (u_long)sp->s_bufp, (u_long)sp->s_refcnt));
816a1198
> #ifndef WINNT
817a1200,1203
> #else
>  			           (n = recv(sp->s_rfd, sp->s_bufp, size, 0)) >0
> 
> #endif
823a1210
> 
860a1248
> #ifndef WINNT
864a1253,1258
> #else
> 				  (n = recv(sp->s_rfd,
> 					sp->s_bufp,
> 					sp->s_size, 0)
> 			       ) > 0
> #endif
886,887c1280,1291
< 				(void) writemsg(sp->s_rfd, sp->s_buf,
< 						HFIXEDSZ);
---
> 
> #ifndef WINNT
> 				writemsg(sp->s_rfd, sp->s_buf,HFIXEDSZ);
> #else
> 				/* lgk new code here so that if the write failed.. we close the socket.. */
> 				if (writemsg_sock(sp->s_rfd, sp->s_buf,HFIXEDSZ) < 0)
> 				  {
>                         dprintf(1, (ddt, "writemsg: failed so closing bad socket!\n"));
>                         sqrm(sp);
>                       }
> #endif
> 
907a1312
> #ifndef WINNT
909a1315,1323
> #else
> 
> 				/* lgk new code here so that if the write failed.. we close the socket.. */
> 				if (writemsg_sock(sp->s_rfd, sp->s_buf,HFIXEDSZ) < 0)
> 				  {
>                         dprintf(1, (ddt, "writemsg: failed so closing bad socket!\n"));
>                         sqrm(sp);
>                       }
> #endif
910a1325,1345
>                    /* lgk the following continue is incorrect it stops the code from checking for
>                       a socket error i.e. -1 if message is too short that is ok but if we
>                       have a socket error we need to check this first and close the socket if so..
>                       otherwise we get a runaway socket and an endless loop when you disconnect
>                       a connection at just the right time and no data is on the socket.. and
>                        s_bufp = s_buf so the above if is true */
> 
> #ifndef WINNT
> 			if ((n == -1) && (errno == PORT_WOULDBLK))
> #else
> 			if ((n == SOCKET_ERROR) && (errno == PORT_WOULDBLK))
> #endif
> 			   continue;
> 
> 
> 			if (n <= 0) {
> 				sqrm(sp);
> 				continue;
> 			}
> 
> 
912a1348,1350
> 
> 
> #ifndef WINNT
914c1352,1357
< 				continue;
---
> #else
> 			if ((n == SOCKET_ERROR) && (errno == PORT_WOULDBLK))
> #endif
> 			   continue;
> 
> 
938a1382,1387
> 
> #ifdef WINNT
> LeaveCriticalSection(&doxfr_section);
> #endif
> 
> 
957a1407
> #ifndef WINNT /* nt dos not have this functionality so call our new fx */
961a1412,1423
> #else
> #ifndef WIN95
>         if (get_winnt_interfaces(&ifc) < 0)
> #else
>         if (get_win95_interfaces(&ifc) < 0)
> #endif
>          {
> 	   syslog(LOG_ERR, "get interface configuration: %m - exiting");
> 	   exit(1);
> 	}
> #endif
> 
973a1436
> #ifndef WINNT
974a1438,1441
> #else
>              
> 	     cp += sizeof (ifr->ifr_name) + my_size(ifr->ifr_addr) + sizeof(ifr->ifr_mask)) {
> #endif
976c1443
< 		ifr = (struct ifreq *)cp;
---
> 		 ifr = (struct ifreq *)cp;
987c1454
< #if !defined(BSD) || (BSD < 199103)
---
> #if (!defined(BSD) || (BSD < 199103)) && !defined(WINNT)
994c1461
< 			    inet_ntoa(((struct sockaddr_in *)
---
> 			    inet_ntoa(((struct sockaddr_in *)   
995a1463
> 
1051a1520
> #ifndef WINNT				
1062a1532,1537
> #else /* nt masks are supported */
>                    ntp->mask = inet_addr(ifreq.ifr_mask);
> #endif
> 
> #ifndef WINNT /* no interface flags on NT */
> 
1066a1542,1543
> #endif
> 
1081a1559,1560
> 		}
> #ifndef WINNT /* no interface flags on NT */
1092a1572,1575
> #else
> 			     ntp->addr = ntp->mask & ntp->my_addr.s_addr;
> 
> #endif
1153a1637,1643
> 	/* don't know how to get interface information on multihomed NT
> 	 * machines. I'm told that gethostbyname(gethostname()) should
> 	 * return all IP addresses of the local machine (except 127.0.0.1)
> 	 * but there still remains the question of netmasks and flags etc
> 	 * This whole issue needs to be addressed more thoroughly.
> 	 * Implications of this???
> 	 */
1195a1686
> #ifdef F_DUPFD
1196a1688
> #endif
1200a1693
> #ifndef WINNT
1201a1695,1698
> #else
> 	if ((dqp->dq_dfd = socket(AF_INET, SOCK_DGRAM, 0)) == INVALID_SOCKET) {
> #endif
> 	 
1231a1729
> #ifndef WINNT
1238a1737,1741
> #else
> 	if(ioctlsocket(dqp->dq_dfd, FIONBIO, (u_long *)&on) == SOCKET_ERROR) {
> 		syslog(LOG_NOTICE, "ioctlsocket(dqp->dq_dfd, nonblocking): %m");
> 	}
> #endif
1257a1761
> #ifndef WINNT
1320a1825
> #endif /* WINNT */
1323c1828
< ** Turn on or off debuging by open or closeing the debug file
---
> ** Turn on or off debuging by open or closing the debug file
1335a1841
> #ifndef WINNT
1336a1843
> #endif
1348a1856
> #ifndef WINNT
1354a1863
> #endif /* WINNT */
1361a1871
> #ifndef WINNT
1465a1976,1977
> #endif /* WINNT */
> 
1474a1987,1991
> #ifdef WINNT
> EnterCriticalSection(&doxfr_section);
> #endif
> 
> 	
1476a1994,1996
> #ifdef WINNT
>                 EnterCriticalSection(&doxfr_section);
> #endif
1482a2003,2007
> 
> #ifdef WINNT
> LeaveCriticalSection(&doxfr_section);
> #endif
> 
1500a2026,2029
> #ifdef WINNT
> EnterCriticalSection(&doxfr_section);
> #endif
> 
1516a2046,2050
> 
> #ifdef WINNT
> LeaveCriticalSection(&doxfr_section);
> #endif
> 
1532c2066
< 
---
> 	
1568c2102
< 		FD_CLR(this->dq_dfd, &mask);
---
>  		FD_CLR(this->dq_dfd, &mask);
1689a2224,3259
> 
> 
> #ifdef WINNT
> /* service_ctrl - control handler for NTP service
>  * signals the service_main routine of start/stop requests
>  * from the control panel or other applications making
>  * win32API calls
>  */
> void
> service_ctrl(dwCtrlCode)
> 	DWORD dwCtrlCode;
> {
>     DWORD  dwState = SERVICE_RUNNING;
> 	int len;
> 
>     /* Handle the requested control code */
>     switch(dwCtrlCode) {
> 
>         case SERVICE_CONTROL_PAUSE:
> 		/* see no reason to support this */
> 		break;
> 
>         case SERVICE_CONTROL_CONTINUE:
>  		/* see no reason to support this */
>   		break;
> 
>         case SERVICE_CONTROL_STOP:
>             dwState = SERVICE_STOP_PENDING;
>             /* Report the status, specifying the checkpoint and waithint,
>              *  before setting the termination event.
>              */
> 			ServiceStatus.dwCurrentState = dwState;
> 			ServiceStatus.dwWin32ExitCode = NO_ERROR;
> 			ServiceStatus.dwWaitHint = 1000;
> 			if (!SetServiceStatus(hServiceStatus, &ServiceStatus)) {
> 				syslog(LOG_ERR, "SetServiceStatus(): %m");
> 			}
> 			was_stopped = 1;
>             SetEvent(hServDoneEvent);
>             return;
> 
>         case SERVICE_CONTROL_INTERROGATE:
>             	/* Update the service status */
> 			break;
> 
>         case SERVICE_CONTROL_DUMPDB:
>             needToDoadump = 1;
> 			break;
> 
>         case SERVICE_CONTROL_RELOAD:
> 			needreload = 1;
> 			break;
> 
>         case SERVICE_CONTROL_STATS:
> 			needStatsDump = 1;
> 			break;
> 
>         case SERVICE_CONTROL_TRACE:
> 			debug++;
> 			if (debug == 1)
> 				setdebug(1);
> 			fprintf(ddt, "Debug turned ON, Level %d\n", debug);
> 			break;
> 
>         case SERVICE_CONTROL_NOTRACE:
> 			setdebug(0);
> 			break;
> 
>         case SERVICE_CONTROL_QRYLOG:
> 			qrylog = !qrylog;
> 			syslog(LOG_NOTICE, "querylog %s\n", qrylog ? "on":"off");
> 			break;
> 
>         case SERVICE_CONTROL_CHKPT:
> 			needToChkpt = 1;
> 			break;
> 
>         case SERVICE_CONTROL_EXIT:
>  #ifdef XSTATS
>             needToExit = 1;
>  #endif
>         	was_stopped = 1;	
>             break;
> 
>         default:
>         	/* invalid control code */
> 			syslog(LOG_ERR, "invalid control code: %d", dwCtrlCode);
>             break;
> 
>     }
> 
> #ifdef NOWAIT
> 	if((len = sendto(datagramq->dq_dfd, (const char *)loopbuf, 1, 0,  (struct sockaddr *)&loopback,
> 	          sizeof(struct sockaddr_in))) == SOCKET_ERROR)
> 		syslog(LOG_ERR, "failed to send the control code immediately: %m");
>  
> #endif
> 
> 	ServiceStatus.dwCurrentState = dwState;
> 	ServiceStatus.dwWin32ExitCode = NO_ERROR;
> 	if (!SetServiceStatus(hServiceStatus, &ServiceStatus)) {
> 		syslog(LOG_ERR, "SetServiceStatus(): %m");
> 	}
> }
> 
> 
> /* Expand environmental variables in file pathnames */
> void expand_paths(void)
> {
>   FILE *fp;
> 
>         /* change name back to named.boot but for backwards compat. this fails go back to the
>            alternate name named.ini... unfort. since bootfile is passed a few layers down it
>            would be a pain to changeall these calls in the stock bind so attempt to open the
>            file here and decide which name to use */
>            
> 	pathtmpdir = (char *)malloc(MAX_PATH);
> 	pathsysdir = (char *)malloc(MAX_PATH);
> 
> #ifdef REGISTRY_PATHS
>     /* software.com specific */
> 	if (GetRegistryPath(MAX_PATH, pathtmpdir))
> 	  {
> 	    syslog(LOG_ERR, "GetRegistryPath() failed: %m");
> 	  }
> #else
> 	if (!GetTempPath(MAX_PATH, pathtmpdir))
> 		syslog(LOG_ERR, "GetTempPath() failed: %m");
> 
> 	if (!GetSystemDirectory((LPSTR)pathsysdir,MAX_PATH))
> 		syslog(LOG_ERR, "GetSystemDirectory() failed: %m");
>     strcat(pathsysdir,"\\");
> 
> #endif
> 
> #ifdef REGISTRY_PATHS
> 	}
>       	else
> 		syslog(LOG_INFO,"Get registry info okay: %s",pathtmpdir);
> 	/* software.com specific
> 	    PIW:  use the directory we found from the registry for ALL files
> 	          relating to the DNS:  */
> 	pathboot = (char *)malloc(MAX_PATH);
> 	strcpy(pathboot,pathtmpdir);
> 	strcat(pathboot,"NAMED.BOOT");
>     bootfile = pathboot;
> 
> 	pathpidfile = (char *)malloc(MAX_PATH);
> 	strcpy(pathpidfile,pathtmpdir);
> 	strcat(pathpidfile,"NAMED.PID");
> 
> 	pathxfer = (char *)malloc(MAX_PATH);
> 	strcpy(pathxfer,pathtmpdir);
> 	strcat(pathxfer,"NAMED.XFER");
> 
> #else /* don't use registry paths */
> 
> 	pathboot = (char *)malloc(MAX_PATH);
> 	if (!ExpandEnvironmentStrings(_PATH_BOOT, pathboot, MAX_PATH)) {
> 		syslog(LOG_ERR, "ExpandEnvironmentStrings(_PATH_BOOT) failed: %m\n");
> 	} else
>            {
> 	     if ((fp = fopen(pathboot, "r")) == NULL)
> 	       {
>                  /* try alternate name */
> 
> 	         if (!ExpandEnvironmentStrings(_ALT_PATH_BOOT, pathboot, MAX_PATH))
>                    {
> 		   syslog(LOG_ERR, "ExpandEnvironmentStrings(_ALT_PATH_BOOT) failed: %m\n");
> 	           }
>                   else bootfile = pathboot;
> 	       } /* else it opened ok so close it */
> 	      else
>                {
>                  fclose(fp);
>                  bootfile = pathboot;
>                }
>            }
>                
> 	pathpidfile = (char *)malloc(MAX_PATH);
> 	if (!ExpandEnvironmentStrings(_PATH_PIDFILE, pathpidfile, MAX_PATH))
>           {
> 	       syslog(LOG_ERR, "ExpandEnvironmentStrings(_PATH_PIDFILE) failed: %m\n");
> 	      } else PidFile = pathpidfile;
> 		 
> 	pathxfer = (char *)malloc(MAX_PATH);
> 	if (!ExpandEnvironmentStrings(_PATH_XFER, pathxfer, MAX_PATH))
>           {
> 	       syslog(LOG_ERR, "ExpandEnvironmentStrings(_PATH_XFER) failed: %m\n");
> 	      }
> #endif 
> 
> 	pathdebug = (char *)malloc(MAX_PATH);
> 	strcpy(pathdebug, pathsysdir);
> 	debugfile = strcat(pathdebug, _PATH_DEBUG);
> 	
> 	pathdumpfile = (char *)malloc(MAX_PATH);
> 	strcpy(pathdumpfile, pathsysdir);
> 	dumpfile = strcat(pathdumpfile, _PATH_DUMPFILE);
> 	 
> 	pathstats = (char *)malloc(MAX_PATH);
> 	strcpy(pathstats, pathsysdir);
> 	statsfile = strcat(pathstats, _PATH_STATS);
> 	 
> 	pathxfertrace = (char *)malloc(MAX_PATH);
> 	strcpy(pathxfertrace, pathtmpdir);
>     strcat(pathxfertrace, _PATH_XFERTRACE);
> 	
> 	pathxferddt = (char *)malloc(MAX_PATH);
> 	strcpy(pathxferddt, pathtmpdir);
> 	strcat(pathxferddt, _PATH_XFERDDT);
> }
> 
> /* software.com specific */
> #ifdef REGISTRY_PATHS
> 
> /*----------------------------------------------------------------------------------------
> /
> /	Function:		GetRegistryPath
> /
> /	Description:	given a char buffer to fill (and a max length allowed) look in the
> /					NT registry for the directory entry under Software.Com/DNS.
> /
> /	Returns:		0 means it worked, -1 if it didn't
> /
> /	History:		Paul W.		11/24/95	Created
> /
> /---------------------------------------------------------------------------------------*/
> static int GetRegistryPath(int max_len, char *directory)
> {
> 	HKEY hk;
> 	int bSuccess;
> 	DWORD dw_maxlen = max_len;
> 
>     /* get key for our application */
>     bSuccess = RegOpenKey(HKEY_LOCAL_MACHINE,"SOFTWARE\\ISC\\DomainNameService",&hk);
>     if (bSuccess != ERROR_SUCCESS)
>       {
>     	syslog(LOG_ERR, "Cannot open the default directory registry key: %m");
>     	return -1;
>       }
> 
>     bSuccess = RegQueryValueEx(hk,
>          "Directory",
>           NULL,
>           NULL,
>           (LPBYTE) directory,
>           &dw_maxlen);
>     if (bSuccess != ERROR_SUCCESS)
>       {
> 	    syslog(LOG_ERR, "Error in RegQueryValueEx fetching service name parameter: %m");
> 	    RegCloseKey(hk);
> 	    return -1;
>       }
> 
> 	if (directory[dw_maxlen-1] != '\\')	/* if the directory does NOT have a trailing backslash */
>  	  {  
> 		directory[dw_maxlen] = '\\';	/* put one on, and terminate a little longer */
> 		directory[dw_maxlen+1] = '\0';	/* terminate at given length plus slash-space */
> 	  }
> 	else
> 		directory[dw_maxlen] = '\0';	/* terminate at given length, already has slash */
> 		
>     RegCloseKey(hk);
> 	return 0;
> }
> #endif
> 
> #ifndef WIN95
> 
> /* ------------------------------------------------------------------------------------------------------------------ */
> /* written by l. kahn */
> /* modified with suggestions from Kevin Dunlap so we only pick out netcards bound to tcpip */
>   int get_winnt_interfaces(ifc)
> 
>     struct ifconf *ifc;
>     
> 
>   {
>         char *ifc_buffer = ifc->ifc_buf;
> 
>     	   struct ifreq *ifr;
>         HKEY hk, hksub;                      /* registry key handle */
>         BOOL bSuccess;
>         char newkey[200];
> 
>         char servicename[50];
>         DWORD sizeofservicename = 50;
>         int Done = 0;
>         
>         /* these need to be big as they are multi_sz in type and hold all ip addresses and subnet mask for a
>            given interface */
>         char IpAddresses[10000];
>         char *ipptr = IpAddresses;
>         DWORD sizeofipaddresses = 10000;
>         char SubNetMasks[10000];
>         char *subptr = SubNetMasks;
>         DWORD sizeofsubnetmasks = 10000;
>         char bindservicenames[1000];
>         DWORD sizeofbindnames = 1000;
> 
>        char oneIpAddress[16];
>        char oneSubNetMask[16];
>        int count = 0;
>        char *onenetcard;
> 
>     /* now get all the netcard values which are bound to tcpip */ 
> 
>     strcpy(newkey,"SYSTEM\\Currentcontrolset\\Services\\");
>     strcat(newkey,"tcpip\\linkage");
>        
>     bSuccess = RegOpenKey(HKEY_LOCAL_MACHINE,newkey,&hk);
>     if(bSuccess != ERROR_SUCCESS)
>     {
>         syslog(LOG_ERR, "failed to Open TCP/IP Linkage Registry key: %m");
>         dprintf(1, (ddt, "Cannot get TCP/IP Linkage from registery.\n"));
>         return -1;
>     }
> 
>     /* now get the bind value */
>         sizeofbindnames = 1000;
>         bSuccess = RegQueryValueEx(hk,     /* subkey handle         */
>         "Bind",                            /* value name            */
>         NULL,                              /* must be zero          */
>         NULL,                              /* value type          not required  */
>         (LPBYTE) &bindservicenames,        /* address of value data */
>         &sizeofbindnames);                 /* length of value data  */
>         if(bSuccess != ERROR_SUCCESS)
>         {
>             syslog(LOG_ERR, "Error in RegQueryValueEx fetching Bind Service names parameter: %m");
>             RegCloseKey(hk);
>             return -1;
>         }
> 
> 
>     /* now loop through and get all the values which are bound to tcpip */ 
>     /* we can also close the key here as we have the values now */
>     RegCloseKey(hk);
>     onenetcard = bindservicenames;
>     while(1)
>     {
> 
>        onenetcard = onenetcard + 8;
>        if  ((onenetcard < (bindservicenames + sizeofbindnames)) &&
>            (sscanf(onenetcard,"%s",servicename) != EOF))
>          {
>             onenetcard+= strlen(servicename) + 1;
>          }
>         else { /* no more */
>                break;
>              }
> 
>         /* skip services that are NDISWAN... since these are temporary interfaces like ras and if we bind to these
>            we would have to check if the socket is still ok everytime before using it as when the link goes down
>            and comes back up the socket is no longer any good... and the server eventually crashes if we don't check
>            this.. and to check it entails a lot of overhead... shouldn't be a problem with machines with only a RAS
>            interface anyway as we can bind to the loopback or 0.0.0.0 */
> 
>         if ((strlen(servicename) >= 7) && (strncmp(strupr(servicename),"NDISWAN",7) == 0))
>           {
>             /* skip it */
> 	    dprintf(1, (ddt, "Skippping temporary interface [%s]\n",servicename));
>           }
>         else {
>   
>            /* if opening this key fails we can assume it is not a network card ie digiboard and go on.. */
>            /* ok now that we have the service name parameter close the key and go get the ipaddress and subnet mask */
> 
>            strcpy(newkey,"SYSTEM\\Currentcontrolset\\Services\\");
>            strcat(newkey,servicename);
>            strcat(newkey,"\\parameters\\tcpip");
> 
>            bSuccess = RegOpenKey(HKEY_LOCAL_MACHINE,newkey,&hksub);
>            if(bSuccess != ERROR_SUCCESS)
>             {
>               dprintf(1, (ddt, "Skipping interface [%s] ... It is not a network card.\n",servicename));
>             }
> 
>            else { /* ok it is a network card */            
>            /* ok now get the ipaddress and subnetmask */
>            sizeofipaddresses = 10000;
>            bSuccess = RegQueryValueEx(hksub,  /* subkey handle         */
>            "IpAddress",                       /* value name            */
>             NULL,                             /* must be zero          */
>             NULL,                             /* value type          not required  */
>             (LPBYTE) &IpAddresses,               /* address of value data */
>             &sizeofipaddresses);                /* length of value data  */
>             if(bSuccess != ERROR_SUCCESS)
>               {
>                syslog(LOG_ERR, "Error in RegQueryValueEx fetching IpAddress parameter: %m");
>                RegCloseKey(hksub);
>                return -1;
>               }
>            /* ok now get the ipaddress and subnetmask */
>            sizeofsubnetmasks = 10000;
>            bSuccess = RegQueryValueEx(hksub,  /* subkey handle         */
>            "SubNetMask",                      /* value name            */
>             NULL,                             /* must be zero          */
>             NULL,                             /* value type          not required  */
>             (LPBYTE) &SubNetMasks,              /* address of value data */
>             &sizeofsubnetmasks);               /* length of value data  */
>             if(bSuccess != ERROR_SUCCESS)
>               {
>                syslog(LOG_ERR, "Error in RegQueryValueEx fetching SubNetMask parameter: %m");
>                RegCloseKey(hksub);
>                return -1;
>               }
> 
>           RegCloseKey(hksub);
>           /* ok now that we have some addresses and subnet masks go through each one and add to our structure... */
>           /* multi_sz strings are terminated by two \0 in a row */
> 
> 
>         ipptr = IpAddresses;
>         subptr = SubNetMasks;
>         Done = 0;
>         while (!Done)
>         {
>          ifr = (struct ifreq *)ifc_buffer;
>          if (sscanf(ipptr,"%s",oneIpAddress) != EOF)
>            ipptr+= strlen(oneIpAddress) + 1; /* add one for terminator \0 */
>          else Done = 1;
>          
>          if (sscanf(subptr,"%s",oneSubNetMask) != EOF)
>            subptr += strlen(oneSubNetMask) + 1;
>          else Done = 1;
> 
>          /* now add to interface structure */
>          if (!Done)                  
>           {
>            ifr->ifr_addr.sa_family = AF_INET;
>            ((struct sockaddr_in *)&ifr->ifr_addr)->sin_addr.s_addr = inet_addr(oneIpAddress);
>            strcpy(ifr->ifr_mask,oneSubNetMask);
> 
>            if (strlen(servicename) > 15)
>              strncpy(ifr->ifr_name,servicename,15);
>            else strcpy(ifr->ifr_name,servicename);
> 
>            /* now increment pointer */
> 	       ifc_buffer += sizeof (ifr->ifr_name) + sizeof(ifr->ifr_addr) + sizeof(ifr->ifr_mask);
>            ++count;
>            if (((char *)ipptr == '\0') || ((char *)subptr == '\0')) 
>              Done = 1;
>           }
>           
>         }
>            } /* it is a network card */
>         } /* it is/not a temporary ndiswan name */ 
>     } /* end of loop  */
> 
>     /* now reset the length */
>     ifc->ifc_len = count * (sizeof(ifr->ifr_name) + sizeof(ifr->ifr_addr) + sizeof(ifr->ifr_mask));
>     return 0;
> }
> 
> 
> #else // win95 version
> 
>   /* By Leon McCalla to get tcpip bound to netcards on 95*/
>   /* modified by l. kahn */
>   /* changed 12/96 by l. kahn to support the multi-ip address scheme
>      on win95 which uses commas instead of spaces like NT */
>      
>   int get_win95_interfaces(ifc)
>   struct ifconf *ifc;
> 
>   {
> 	char *ifc_buffer = ifc->ifc_buf;
> 	struct ifreq *ifr;
> 
>      HKEY hk, dk, rk, ck;                      /* registry key handle */
>      BOOL bSuccess;
>      char realkey[200];
>      DWORD sizeofrealkey = 200;
>      char netkey[50];
>      DWORD sizeofnetkey = 50;
>      char newkey[50];
>      DWORD sizeofnewkey = 50;
>      char driverkey[50];
>      DWORD sizeofdriverkey = 50;
>      char nettype[50];		
>      DWORD sizeofnettype = 50;
>      char subkey[50];
>      DWORD sizeofsubkey = 50;
>      char checkkey[50];
>      DWORD sizeofcheck = 50;
>      int Done = 0;
>      int Done2 = 0;
> 
>      /* these need to be big as they are multi_sz in type and hold all ip addresses and subnet mask for a
>         given interface */
>      char IpAddresses[10000];
>      char *ipptr = IpAddresses;
>      DWORD sizeofipaddresses = 10000;
>      char SubNetMasks[10000];
>      char *subptr = SubNetMasks;
>      DWORD sizeofsubnetmasks = 10000;
>      const int sep = (int)',';
>      char *token =  NULL;
> 
>      
>      char oneIpAddress[16];
>      char oneSubNetMask[16];
>      int count = 0;
>      int ipcount = 0;
> 
>     /* now get all the netcard (ie 0001) ..._  values which are bound to tcpip */ 
> 
>     strcpy(newkey,"ENUM\\Network\\MSTCP");
>     bSuccess = RegOpenKey(HKEY_LOCAL_MACHINE,newkey,&hk);
>     if(bSuccess != ERROR_SUCCESS)
>     {
>         syslog(LOG_ERR, "failed to Open MSTCP network Registry key: %m");
>         dprintf(1, (ddt, "Cannot get MSTCP network linkage from registery.\n"));
>         return -1;
>     }
> 
>      while (!Done)
>        {
> 	    sizeofnetkey = 50;
> 	     bSuccess = RegEnumKey(hk, (DWORD)count, (LPTSTR)netkey, sizeofnetkey);
> 	     if(bSuccess == ERROR_NO_MORE_ITEMS)
> 		  {
> 			Done = TRUE;
>                         break;
>                   }
> 	
> 	     if ((bSuccess != ERROR_SUCCESS) && (bSuccess != ERROR_NO_MORE_ITEMS))
> 		   {
>                         syslog(LOG_ERR, "Error in RegEnumKey fetching network card keys from registry: %m");
> 			RegCloseKey(hk);
> 			return -1;
> 		   }
> 
>         ++count;
>      
> 	 /* now the devicedesc here does not specify the dial up so we must get the
>             last part off the key and try the key enum//root//net//netkey   */
> 
>          strcpy(checkkey,"ENUM\\Root\\Net\\");
>          strcat(checkkey,netkey);
> 
>        /* not sure if this works but on my eisa machine these were not there
>           so if they are not there assume they are not temporary .. ie enum\eisa
>           for eisa cards instead of enum\\root but I imagine all ras interfaces are like this
>           above.. so if not there it is not a ras temporary interface */
> 
> 	 // get the check value
> 	 /*check for Dial up adapter*/
>  	 bSuccess = RegOpenKey(HKEY_LOCAL_MACHINE,checkkey,&ck);
>         if(bSuccess != ERROR_SUCCESS)
> 	  {
>            strcpy(nettype,"dummy");
> 	  }
> 
>       else
>       {
>       // now get the value
> 	 sizeofnettype = 50;
> 	 bSuccess = RegQueryValueEx(ck,     /* subkey handle         */
> 	         "DeviceDesc",              /* value name            */
> 		    NULL,                   /* must be zero          */
> 		    NULL,                   /* value type          not required  */
>               (LPBYTE) &nettype,            /* address of value data */
>               &sizeofnettype);              /* length of value data  */
> 
>       RegCloseKey(ck); // not needed anymore either way
>       if(bSuccess != ERROR_SUCCESS)
>           {
>            strcpy(nettype,"dummy");
>           }
>       } // not there
> 
>       // go on
> 	 if (strncmp(strupr(nettype),"DIAL-UP ADAPTER",15) == 0)
>           {
>            /* skip it */
>   	   dprintf(1, (ddt, "Skippping temporary interface [%s]\n",nettype));
>           }
> 
>          else { // is not temporary interface
>             // ok get drivername
> 
> 	// get the Driver value
> 	/*now we have the values so we need to get the driver value for the key */
> 	strcpy(driverkey,"ENUM\\Network\\MSTCP\\");
> 	strcat(driverkey,netkey);
> 
> 
> 	bSuccess = RegOpenKey(HKEY_LOCAL_MACHINE,driverkey,&dk);
> 	if(bSuccess != ERROR_SUCCESS)
> 	  {
>            char temp[300];
>            sprintf(temp,"Can not open key [%s] from the registry \n",driverkey);
>            syslog(LOG_ERR, temp);
>            RegCloseKey(hk);
>            return -1;
> 	   }
> 
>             // ok get drivername
> 		sizeofsubkey = 50;
> 		bSuccess = RegQueryValueEx(dk,     /* subkey handle         */
> 	  	      "Driver",                    /* value name            */
> 		      NULL,                        /* must be zero          */
> 		      NULL,                        /* value type          not required  */
> 		      (LPBYTE) &subkey,            /* address of value data */
> 		      &sizeofsubkey);              /* length of value data  */
> 
>           if(bSuccess != ERROR_SUCCESS)
> 		  {
> 		    syslog(LOG_ERR,"Error in RegQueryValueEx fetching Driver value: %m \n");
> 		    RegCloseKey(dk);
> 		    RegCloseKey(hk);
> 		    return -1;
> 		  }
> 
>           RegCloseKey(dk); //driver key not needed any longer
> 
>           // now open the real key
> 	     strcpy(realkey,"SYSTEM\\CurrentControlSet\\Services\\Class\\");
> 	     strcat(realkey,subkey);
> 	     
> 	     bSuccess = RegOpenKey(HKEY_LOCAL_MACHINE,realkey,&rk);
> 	     if(bSuccess != ERROR_SUCCESS)
> 		 {
> 		   char temp[300];
> 		   sprintf(temp,"Error opening real network key [%s].\n",realkey);
>                    syslog(LOG_ERR, temp);
> 		   RegCloseKey(hk);
>                    return -1;
> 		}
>         
>            sizeofipaddresses = 10000;
>            bSuccess = RegQueryValueEx(rk,     /* subkey handle         */
>                 "IPAddress",                  /* value name            */
>                  NULL,                        /* must be zero          */
>                  NULL,                        /* value type          not required  */
>                  (LPBYTE) &IpAddresses,       /* address of value data */
>                  &sizeofipaddresses);         /* length of value data  */
> 
>            if(bSuccess != ERROR_SUCCESS)
>               {
>                syslog(LOG_ERR,"Error in RegQueryValueEx fetching IPAddress parameter! %m \n");
>                RegCloseKey(rk);
>                RegCloseKey(hk);
>                return -1;
>               }
>               
>            /* ok now get the subnetmask */
>            sizeofsubnetmasks = 10000;
>            bSuccess = RegQueryValueEx(rk,     /* subkey handle         */
>               "IPMask",                       /* value name            */
>                NULL,                          /* must be zero          */
>                NULL,                          /* value type          not required  */
>                (LPBYTE) &SubNetMasks,         /* address of value data */
>                &sizeofsubnetmasks);           /* length of value data  */
>    
>            if(bSuccess != ERROR_SUCCESS)
>               {
>                syslog(LOG_ERR,"Error in RegQueryValueEx fetching IPMask parameter! %m\n");
>                RegCloseKey(rk);
>                RegCloseKey(hk);
>                return -1;
>               }
> 
>           RegCloseKey(rk);
>           /* ok now that we have some addresses and subnet masks go through each one and add to our structure... */
>           /* multi_sz strings are terminated by two \0 in a row */
> 
>         ipptr = IpAddresses;
>         subptr = SubNetMasks;
>         Done2 = 0;
>         token = NULL;
>         
>        /* lgk change here win95 mutli addresses are separated by commas not
>           spaces like NT, so replace the commas with spaces so the old
>           loop works  */
> 
>        token = strchr(ipptr,sep);
>        while (token != NULL)
>         {
>          *token = ' ';
>          token = strchr(ipptr,sep);
>         }
> 
>         /* now handle subnet block */
>        token = strchr(subptr,sep);
>        while (token != NULL)
>         {
>          *token = ' ';
>          token = strchr(subptr,sep);
>         }
>         
>         while (!Done2)
>         {
>          ifr = (struct ifreq *)ifc_buffer;
>          if (sscanf(ipptr,"%s",oneIpAddress) != EOF)
>            ipptr+= strlen(oneIpAddress) + 1; /* add one for terminator \0 */
>          else Done2 = 1;
>          
>          if (sscanf(subptr,"%s",oneSubNetMask) != EOF)
>            subptr += strlen(oneSubNetMask) + 1;
>          else Done2 = 1;
> 
>          /* now add to interface structure */
>          if (!Done2)                  
>           {
>            ifr->ifr_addr.sa_family = AF_INET;
>            ((struct sockaddr_in *)&ifr->ifr_addr)->sin_addr.s_addr = inet_addr(oneIpAddress);
>            strcpy(ifr->ifr_mask,oneSubNetMask);
> 
>            // subkey is the closest thing to a service name under win95
>            if (strlen(subkey) > 15)
>              strncpy(ifr->ifr_name,subkey,15);
>            else strcpy(ifr->ifr_name,subkey);
> 
>            /* now increment pointer */
> 	       ifc_buffer += sizeof (ifr->ifr_name) + sizeof(ifr->ifr_addr) + sizeof(ifr->ifr_mask);
>            ++ipcount;
>            if (((char *)ipptr == '\0') || ((char *)subptr == '\0')) 
>              Done2 = 1;
>              
>           } // if
> 	    } // not done2 loop
>         } // not temporary interface
>        } // loop (while) through more things bound to MSTCP
> 
>     RegCloseKey(hk); // done with top while so close key
> 
>     /* now reset the length */
>     ifc->ifc_len = ipcount * (sizeof(ifr->ifr_name) + sizeof(ifr->ifr_addr) + sizeof(ifr->ifr_mask));
> 
>     return 0;
>   }
> 
> // ndc_thread ... wait for ndc commands.. works both under nt and win95
> // there will be a ndc95 command
> // l. kahn.. this is needed for win95 port because there are no services and
> // we cannot use sevice api's
> // becuase the damn mailslots sendning more than once due to  how many network
> // transports you have bound we must use and id.. to make sure we are not doing the
> // same command twice..
> // also named pipes do not work.. since win95 does not support them.. so switched
> // to mail slots... also security api's don't work on win95
> // cant use this under nt even though originally designed also to work under nt.. 
> // actually it works under nt but the security doesn't so anyone can shut down your server etc.
> // this is acceptable for win95 where there is no security but not for nt..
> //when monitoring the code on win95 noticed 100% cpu utilization. Apparently the
> //readfile api on a mailslot even with timeout set to infinite does a
> //busy wait... to get around this did a loop with getmailslotinfo and my
> //own sleep statement.... this worked but then decided to try waitforsingleobject
> //(the correct call to use) even though the documentation specifically fails
> //to mention this working on mailslot handles.. appparently it works so
> //using this method..
> // back to using the getmailslotinfo  with sleep solution.. not the prettiest..
> 
> 
> 
> VOID
> ndc_thread(VOID *notUsed)
> {
>     char                 inbuf[120];
>     char                 outbuf[60];
>     BOOL                 ret;
>     BOOL                 bad_code;
>     DWORD                bytesRead;
>     DWORD                bytesWritten;
>     char                 command[40];
>     char                 mbname[20];
>     char                 outname[80];
>     char                 machname[40];
>     int                  len;
>     SOCKET               s;
>     HANDLE               slotHandle;
>     HANDLE               outslot;
>     DWORD                id, lastid;
>     DWORD                wcount;
>     BOOL                 onefound;
>     BOOL                 fResult;
>     
> // only do the event here if win95 as done elsewhere in nt
> #ifdef WIN95
>     
> 		/* create an event object that the control handler function
> 	 	* will signal when it receives the "stop" control code */
> 		if (!(hServDoneEvent = CreateEvent(
>         				NULL,    /* no security attributes */
>         				FALSE,   /* auto-reset event */
>         				FALSE,   /* not-signalled */
>         				NULL))){ /* no name */
> 				syslog(LOG_ERR, "CreateEvent() failed: %m");
> 				return;
>     	}
> 
> #endif
> 
> #ifdef NOWAIT
> 	loopback.sin_family = AF_INET;
> 	loopback.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
> 	loopback.sin_port = local_ns_port;
> #endif
> 
> 
>     // open our mail slot
>     //    
>     slotHandle = CreateMailslot(
>                     "\\\\.\\mailslot\\sd_bind",0,MAILSLOT_WAIT_FOREVER,NULL);
> 
>     if (slotHandle == INVALID_HANDLE_VALUE)
>       {
>        syslog(LOG_ERR, "CreateMailSlot for ndc communications failed: %m");
> 	if (debug)
> 	  fprintf(ddt, "CreateMailslot for ndc communications failed error = %d\n",GetLastError());
>        exit(1);
>       }
> 
>     // okay, our pipe has been created, let's enter the simple
>     //  processing loop...
>     //
>     
>     id = 0;
>     lastid = 0;
>     while (1) {
> 
> 
>         // bug in readfile here.. under win95 even with timeout set to infinite this is a busy wait
>         // consuming 100% of cpu so try getmail slot info with sleep statement
>         // actually use waitforsingleobject which is the correct way even
>         // though the documentation on this api does not mention mailslots
>         // as a handle you can wait on.. apparently it does become signaled
>         // and can be used. ..
>         
> 
>         onefound = FALSE;
>         wcount = 0;
>         while (!onefound)
> 
>          {
> 
>            fResult = GetMailslotInfo(slotHandle, /* mailslot handle         */ 
>                          (LPDWORD) NULL,              /* no maximum message size */ 
>                          (LPDWORD) NULL,              /* size of next message    */ 
>                          &wcount,                     /* number of messages      */ 
>                          (LPDWORD) NULL);             /* no read time-out        */ 
>  
>            if (!fResult)
>              { 
>                syslog(LOG_ERR,"Error in GetMailSlotInfo: %m");
>  	       if (debug)
> 	         fprintf(ddt, "Error in GetMailSlotInfo error = %d\n",GetLastError());
>                Sleep(5000);
>                continue;
>              } 
> 
>            if (wcount > 0)
>                onefound = TRUE;
>            else Sleep(5000);
> 
>          } // end of one found loop
>          
>         // grab whatever's coming through the slot...
>         //
>         strcpy(inbuf,"                                           ");
>         strcpy(command,"                     ");
>         bad_code = FALSE;
>         bytesRead = 0;
>         ret = ReadFile(
>                     slotHandle,     // file to read from
>                     &inbuf,         // address of input buffer
>                     sizeof(inbuf),  // number of bytes to read
>                     &bytesRead,     // number of bytes read
>                     NULL);          // overlapped stuff, not needed
> 
>         if ((!ret) || (bytesRead == 0))
>            continue;
>             // .. go back and reconnect
>             //
> 
>         // ok now check which mailbox to send message back to either sd_ndc or sd_ndcpl
> 
>           sscanf(inbuf,"%s %s %s %d",machname,mbname,command,&id);
>           // now check if same as last time and if so skip it..
>           
> 	  if (debug > 0)
> 	     { // for debugging
>               char temp[100];
>               sprintf(temp,"NDC remote command \"%s\" from machine %s with id %d reply to %s\n",command,machname,id,mbname);
>  	      dprintf(1, (ddt,temp));
> 	     } 
>           
> 	   if (id == lastid)
>              continue;
> 
>           lastid = id;
>           strcpy(outbuf,"Ok"); // need some return so other pipe stops waiting
> 
>        // start and restart are handled by ndc ...
>        if (strncmp(command,"stop",4) == 0)
>          {
>  #ifdef XSTATS
>             needToExit = 1;
>  #endif
> 
>             was_stopped = 1;
>             doterminate = 1;
>             SetEvent(hServDoneEvent);
>          }
> 
>        else if (strncmp(command,"status",6) == 0)
> 		  { // returning that we are running ok
> 			  char temp[40];
>           
> 			  sprintf(temp,"Query log %s. ",qrylog ? "on":"off");
> 			  strcpy(outbuf,temp);
> 			  
> 			  if (debug > 0) sprintf(temp,"Debug Level %d enabled.",debug);
> 			  else  sprintf(temp,"Debuging Off!");
> 			  strcat(outbuf,temp);
> 			  
>           }
> 
>        else if (strncmp(command,"dumpdb",6) == 0)
>          {
>           needToDoadump = 1;
>          }
> 
>        else if (strncmp(command,"reload",6) == 0)
>          {
> 	  needreload = 1;
>          }
> 
>        else if (strncmp(command,"stats",5) == 0)
>          {
> 	   needStatsDump = 1;
>          }
> 
>        else if (strncmp(command,"trace",5) == 0)
>          {
> 	   debug++;
> 	   if (debug == 1)
> 	     setdebug(1);
> 	   fprintf(ddt, "Debug turned ON, Level %d\n", debug);
>          }
> 
>        else if (strncmp(command,"notrace",7) == 0)
>          {
> 	   setdebug(0);
>          }
> 
>        else if (strncmp(command,"querylog",8) == 0)
>          {
> 	   qrylog = !qrylog;
> 	   syslog(LOG_NOTICE, "querylog %s\n", qrylog ? "on":"off");
>          }
> 
>        else if (strncmp(command,"qrylog",6) == 0)
>          {
> 	   qrylog = !qrylog;
> 	   syslog(LOG_NOTICE, "querylog %s\n", qrylog ? "on":"off");
>          }
> 
>        else
>        {
>  	    syslog(LOG_ERR, "invalid control code: %s", command);
>          bad_code = TRUE;
>        }
>        
> #ifdef NOWAIT
> 
>         // also don't do this for status as nothing is pending
>         if ((!bad_code) && (strncmp(command,"status",6) != 0))
>          {
>  	  
>              	if ((s = socket(AF_INET, SOCK_STREAM, 0)) < 0)
>                  {
> 			    syslog(LOG_ERR, "socket for nowait: %m");
> 		       }
> 
>                else
>                {
>                if (connect(s, (struct sockaddr *)&loopback, sizeof(loopback)) < 0) 
> 				syslog(LOG_ERR,
> 				       "connect for nowait (%s) for failed: %m",
> 				       inet_ntoa(loopback.sin_addr));
> 
>                else 
>                {  
>                  if((len = sendto(s, (const char *)loopbuf, 1, 0, (const struct sockaddr *)&loopback,
> 	             sizeof(struct sockaddr_in))) == SOCKET_ERROR)
> 		        syslog(LOG_ERR, "failed to send the control code immediately: %m");
>                }
>                (void) closesocket(s);
>                }
>          }
> #endif
> 
>           // now open the out mailbox and write response .. if it fails ignore
>           strcpy(outname,"\\\\");
>           strcat(outname,machname);
>           strcat(outname,"\\mailslot\\");
>           strcat(outname,mbname);
>        
>           outslot = CreateFile(outname,GENERIC_WRITE,FILE_SHARE_READ,NULL,OPEN_EXISTING,
>                                FILE_ATTRIBUTE_NORMAL,NULL);
> 
>           if (outslot == INVALID_HANDLE_VALUE)
>             {
>               char temp[200];
>               sprintf(temp,"Cannot open outgoing mailslot: %s ... response was %s !\n",outname,outbuf);
>               syslog(LOG_WARNING,temp);                    
>             }
>           else { // write data
> 
>           ret = WriteFile(
>                     outslot,     // file to write to
>                     &outbuf,         // address of output buffer
>                     strlen(outbuf) + 1, // number of bytes to write
>                     &bytesWritten,  // number of bytes written
>                     NULL);          // overlapped stuff, not needed
> 
>           if (!ret)
>             // failed... go back and reconnect
>             //
>             continue;
>         // close handle...
>         //
>         CloseHandle(outslot);
> 
>        }
>     } // end of loop
> }
> 
> #endif // win95
> 
> 
> #endif /* WINNT */
diff --recurs m:\bind495p1/named/ns_maint.c m:\bind/named/ns_maint.c
61,70c61,76
< #include <sys/param.h>
< #include <sys/types.h>
< #include <sys/socket.h>
< #include <netinet/in.h>
< #include <arpa/inet.h>
< #include <arpa/nameser.h>
< #include <sys/wait.h>
< #include <stdio.h>
< #include <syslog.h>
< #include <signal.h>
---
> #ifndef WINNT
> #include <sys/param.h>
> #include <sys/types.h>
> #include <sys/socket.h>
> #include <netinet/in.h>
> #endif
> #include <arpa/inet.h>
> #include <arpa/nameser.h>
> #ifndef WINNT
> #include <sys/wait.h>
> #endif
> #include <stdio.h>
> #ifndef WINNT
> #include <syslog.h>
> #endif
> #include <signal.h>
76a83
> #ifndef WINNT
77a85,86
> #else
> # include <sys/utime.h>
78a88
> #endif
94c104
< static time_t cache_time;
---
> static time_t cache_time = 0;
97c107
< static time_t stats_time;
---
> static time_t stats_time = 0;
98a109,182
> 
> #ifdef WINNT
> /* lgk since timer resolution on nt (at least my box) only goes to 1000 seconds
>  * our method using mmedia times is no good therefore use a thread that
>  * we create that sleeps the timeout period and then when done calls maint_alarm
>  * and exits...
>  * lgk dec. 95 change again to use a waitforsingleobject on an event for the specified
>  * timeout instead of sleep so it can be signaled with a reschedule request..
>  */
>     
> DWORD pending_delay = 0;
> volatile HANDLE rescheduleevent = 0x00;
> DWORD threadid;
> HANDLE threadhandle = 0x00;
> HANDLE threadhandle2 = 0x00;
> static void named_xfer __P((HANDLE *));
> static void CALLBACK maint_alarm __P((UINT,UINT,DWORD,DWORD,DWORD));
> extern CRITICAL_SECTION protected_zp;
> extern CRITICAL_SECTION maint_section;
> volatile BOOLEAN maint_thread_running = FALSE;
> 
> DWORD thread_timer_fx(DWORD timeout)
>   {
> 
>     DWORD rvalue;
> 
>     /* now wait on the handle */
>     rvalue = WaitForSingleObject(rescheduleevent,timeout);
> 
>     /* now check reason we woke up */
>     switch (rvalue)
>      {
> 
>       case WAIT_FAILED:
>         dprintf(1, (ddt, "Wait for thread timer event object failed!\n")); 
>         syslog(LOG_ERR, "Wait for thread timer event object failed!");
>         EnterCriticalSection(&maint_section);
>         maint_thread_running = FALSE;
>         LeaveCriticalSection(&maint_section);
>         ExitThread(0);
>         break;
>       
>       case WAIT_OBJECT_0:
>         dprintf(1, (ddt, "In Maintenance thread... current thread is exiting for reschedule request!\n"));
>         /* don't set thread running to false here as by the time this gets hit and the
>            thread terminates we may overwrite someone else setting it to true */
>         ExitThread(0);
>         break;
> 
>       case WAIT_TIMEOUT:
>         dprintf(1, (ddt, "In Maintenance thread... timer has expired!\n"));
>         break;
>       
>       default:
>         dprintf(1, (ddt, "Unknown return type from WaitForSingleObject in thread_timer_fx (%d)!\n",rvalue));
>         syslog(LOG_ERR, "Unknown return type from WaitForSingleObject in thread_timer_fx (%d)!\n",rvalue);
>         EnterCriticalSection(&maint_section);
>         maint_thread_running = FALSE;
>         LeaveCriticalSection(&maint_section);
>         ExitThread(0);
>         break;
>       
>      }
> 
>     EnterCriticalSection(&maint_section);
>     maint_thread_running = FALSE;
>     LeaveCriticalSection(&maint_section);
>     maint_alarm(0,0,0,0,0);
>     return 0;
> }
> 
> 
> #endif /* WINNT */
> 
110d193
< 
112d194
< 
118a201,203
>                 dprintf(1, (ddt, "debug tt.tv_sec = %d , zp->z_time = %d, zp->z_refresh = %d \n",
>                                  tt.tv_sec,zp->z_time, zp->z_refresh));
>                 dprintf(1, (ddt, "want tv_sec > = z_time and z_refresh > 0 \n"));
142a228
> 				        dprintf(1, (ddt, "calling abort\n"));
178a265
> #ifndef WINNT
179a267,269
> #else
> 	DWORD wDelay;
> #endif
195c285,287
< 	bzero((char *)&ival, sizeof ival);
---
> #ifndef WINNT
> 	bzero((char *)&ival, sizeof (ival));
> #endif
206a299
> #ifndef WINNT
209a303,307
> #else
> 		wDelay = (next_refresh - tt.tv_sec) * 1000;
> 		if ((long) wDelay < (maint_interval * 1000))
> 			wDelay = maint_interval * 1000;
> #endif
212a311
> #ifndef WINNT
215a315,368
> #else
>       /* lgk under my h/w for nt maximum timer values are 1000 seconds... the above values are not for resolution
>        * as the original author supposed but for the minimum and maximum timer values that mm timers supports..
>        * and since they don't supprt 1 hour... the create of the timer object was failing... therefore the only
>        * way I figured out to do this was create a thread that sleeps for the timeout and then waits up and calls
>        * maint alarm... seems to work ok now... 
>        * lgk dec. 95 change again to use a waitforsingleobject on an event for the specified
>        * timeout instead of sleep so it can be signaled with a reschedule request..
>        */
> 
>        /* lgk 12/95 there is a problem here were it tries to reschedule
>           when a timer thread is already running... under nt now see comment above */
> 
>       if (rescheduleevent == 0x00)
>         {
>           if ((rescheduleevent = CreateEvent(NULL,TRUE,FALSE,NULL)) == 0x00)
>             {
>              syslog(LOG_ERR,"Error: Couldn't create the maint. reschedule event object!");
>              dprintf(1, (ddt, "Error: Couldn't create the maint. reschedule event object!"));
>              return;
>             }
>         }
> 
>       /* first check if already one running */
>       EnterCriticalSection(&maint_section);
>       
>       if (maint_thread_running)
>         { /* ok now check if we have a smaller time */
>           dprintf(1,(ddt,"sched_maint: Rescheduling maint. from %d sec to %d sec.\n",pending_delay/1000,wDelay/1000));
>           /* signal other waiting thread to exit */
>           PulseEvent(rescheduleevent);
>         }
> 
>        maint_thread_running = TRUE;
> 
>        if (threadhandle != 0x00)
>          CloseHandle(threadhandle );
>        /* reset the event */
>        ResetEvent(rescheduleevent);   
> 
>        threadhandle = NULL;
>        threadhandle = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)thread_timer_fx,(LPVOID)wDelay,0,&threadid);
> 
>        if (threadhandle == NULL)
> 	     {
>            syslog(LOG_ERR, "CreateThread() for maintenance: %m");
> 	     }
> 
>        
>        pending_delay = wDelay;
>  	   dprintf(1, (ddt, "sched_maint: Next interrupt in %d sec\n",wDelay/1000));
>        LeaveCriticalSection(&maint_section);
> 
> #endif
279c432
< 		syslog(LOG_INFO, "qserial_query(%s): sysquery FAILED",
---
> 		syslog(LOG_WARNING, "qserial_query(%s): sysquery FAILED",
342a496
> #ifndef WINNT
368a523
> #endif
393c548,551
< 	int argc = 0, argc_ns = 0, pid, i;
---
> 	int argc = 0, argc_ns = 0, i;
> #ifdef WINNT
> 	extern char *pathxferddt, *pathxfertrace;
> #endif
400a559,569
> #ifdef WINNT
> 	char *pos;
> 	DWORD xfer_thread_id;
> 	STARTUPINFO sui;
> 	static char CommandLine[NSMAX*(MAXDNAME+1)+20*10];
> 	PROCESS_INFORMATION *proc_info_copy;
>     
> 
> #else
> 	int pid;
> #endif
404c573,581
< 	argv[argc++] = _PATH_XFER;
---
> #ifndef WINNT
> 	argv[argc++] = "_PATH_XFER";
> #else
> #ifndef WIN95
> 	argv[argc++] = "xfer";
> #else
> 	argv[argc++] = "xfer95";
> #endif
> #endif
431a609
> #ifndef WINNT
432a611,613
> #else
> 		argv[argc++] = pathxferddt;
> #endif
434a616
> #ifndef WINNT
435a618,620
> #else
> 			argv[argc++] = pathxfertrace;
> #endif
463c648
<         }
---
> 	}
466a652,662
> #ifdef WINNT
> 	/* need the arguments in the form of a string not in argv format */
> 	pos = CommandLine;
> 	for (i = 0; i < argc; i++) {
> 		sprintf(pos, argv[i]);
> 		pos += strlen(pos);
> 		*pos++ = ' ';
> 	}
> 	*pos = '\0';
> #endif 
> 
472c668
<         }
---
> 	}
476,482c672,688
< 	holdsigchld();
< 	for (i = 0; i < MAX_XFERS_RUNNING; i++) {
< 		if (xferstatus[i].xfer_pid == 0) {
< 			xferstatus[i].xfer_state = XFER_RUNNING;
< 			break;
< 		}
< 	}
---
> #ifndef WINNT
>    	holdsigchld();
> #else
>     /* make sure we don't have two accessing the same structures */
>     /* lgk use critical section here for this and in endxfer where this is read to make sure that not more
>        than one is trying to start a xfer process at a time */
>     EnterCriticalSection(&protected_zp);
>     proc_info_copy = (PROCESS_INFORMATION *)malloc(sizeof(PROCESS_INFORMATION));
>  
> #endif
>   	for (i = 0; i < MAX_XFERS_RUNNING; i++) {
>   		if (xferstatus[i].xfer_pid == 0) {
>   			xferstatus[i].xfer_state = XFER_RUNNING;
>   			break;
>   		}
>   	}
> #ifndef WINNT
485c691
< 		releasesigchld();
---
>   		releasesigchld();
494c700
< 		_exit(XFER_FAIL);	/* Avoid duplicate buffer flushes. */
---
> 		_exit(XFER_FAIL);       /* Avoid duplicate buffer flushes. */
496,498c702,739
< 	/* Parent. */
< 	xferstatus[i].xfer_pid = pid;  /* XXX - small race condition here if we
< 					* can't hold signals */
---
> #else /* WINNT */
> 	bzero((char *)&sui, sizeof(STARTUPINFO));
> 	sui.cb = sizeof(STARTUPINFO);
> 	if (!CreateProcess(NULL, CommandLine, NULL, NULL, FALSE, DETACHED_PROCESS, NULL,
> 					   NULL, &sui, (LPPROCESS_INFORMATION)proc_info_copy))
>       {
> 	     syslog(LOG_ERR, "CreateProcess() for xfer: %m");
>              LeaveCriticalSection(&protected_zp);
> 	     return;
> 	  }
> 
> 	threadhandle2 = NULL;
> 	threadhandle2 = CreateThread(
> 	         NULL,                                /* no security attributes  */
> 	         0,                                   /* use default stack size  */
> 	         (LPTHREAD_START_ROUTINE) named_xfer, /* thread function         */
> 	         (LPVOID) proc_info_copy,             /* argument to thread function   */
> 	         0,                                   /* use default creation flags    */
> 	         (LPDWORD) &xfer_thread_id);
> 
>     if (threadhandle2 == NULL)
> 	  {
>         syslog(LOG_ERR, "CreateThread() for xfer status: %m");
>         LeaveCriticalSection(&protected_zp);
> 	return;
> 	  }
> 	CloseHandle(threadhandle2); /* no handle to this needed */
> 	
> #endif /* WINNT */
> 	/* parent */
> #ifdef WINNT
> 	dprintf(1, (ddt, "started xfer child %d\n", proc_info_copy->hProcess));
>     zp->z_xferpid = proc_info_copy->hProcess;
>   	xferstatus[i].xfer_pid = (long)proc_info_copy->hProcess;
> #else
> 	zp->z_xferpid = pid;
>   	xferstatus[i].xfer_pid = pid;  /* XXX - small race condition here if we
>   					* can't hold signals */
499a741
> #endif
502c744
< 	zp->z_xferpid = pid;
---
> 
505c747,753
< 	releasesigchld();
---
> 
> #ifdef WINNT
>     LeaveCriticalSection(&protected_zp);
> #else
>   	releasesigchld();
> #endif
>     
648c896
< 				dp = rm_datum(dp, np, pdp);
---
> 					dp = rm_datum(dp, np, pdp);
797a1046
> 
801c1050,1066
< {
---
>    {
> 
> #ifdef WINNT
> 	    TerminateProcess(zp->z_xferpid, (UINT)XFER_KILLED);
> 
> 	    syslog(LOG_WARNING,
> 		"zone transfer timeout for \"%s\"; pid %lu killed",
> 		zp->z_origin, (u_long)zp->z_xferpid);
>              dprintf(1, (ddt, "zone transfer timeout for %s pid %lu killed\n",
> 		zp->z_origin, (u_long)zp->z_xferpid));
> 
> 		zp->z_flags |= Z_XFER_ABORTED;
> 	     ns_retrytime(zp, tt.tv_sec);
>  	     (void) nxfers(zp, -1);        
> 
> #else
> 
806,807c1071,1072
< 			if (xferstatus[i].xfer_pid == zp->z_xferpid) {
< 				xferstatus[i].xfer_pid = 0;
---
> 			if (xferstatus[i].xfer_pid == (long)zp->z_xferpid) {
> 			    xferstatus[i].xfer_pid = 0;
816a1082
> 
823,825c1089,1091
< "zone transfer timeout for \"%s\"; second kill\
< pid %lu - forgetting, processes may accumulate",
< 			       zp->z_origin, (u_long)zp->z_xferpid);
---
>                             "zone transfer timeout for \"%s\"; second kill\
>                              pid %lu - forgetting, processes may accumulate",
> 			     zp->z_origin, (u_long)zp->z_xferpid);
831c1097,1099
< 	} else if (kill(zp->z_xferpid, SIGKILL) == -1) {
---
> 	}
> 
>         else if (kill(zp->z_xferpid, SIGKILL) == -1) {
847c1115,1118
< }
---
> 	
> #endif
>    }
> 
848a1120
> #ifndef WINNT
885a1158,1160
> }
> #endif
> 
887c1162,1163
<  * Finish processing of of finished xfers
---
>  * SIGCHLD signal handler: process exit of xfer's.
>  * (Note: also called when outgoing transfer completes.)
888a1165,1170
> /* the semantics here have changed now we call reapchild when a transfer ends which sets the
>    variable needendxfer ... however under nt since there are no signals endxfer is called
>    directly when a transfer ends... therefore we need to clear out the entry here under 
>    nt, also under nt we determine the pid to clear because it is passed in ... lgk */
> 
> #ifndef WINNT
890a1173,1177
> #else
> void
> endxfer(pid)
> 	HANDLE pid;
> #endif
892,893c1179,1181
<     	register struct zoneinfo *zp;   
< 	int exitstatus, pid, i;
---
>     register struct zoneinfo *zp;
> #ifndef WINNT   
>  	int exitstatus, pid;
898a1187,1190
> #else
> 	DWORD exitstatus;
> #endif
>     int i;
900c1192
< 	gettime(&tt);
---
> gettime(&tt);
902,907c1194,1215
< 	for (i = 0; i < MAX_XFERS_RUNNING; i++) {
< 		if (xferstatus[i].xfer_state != XFER_DONE)
< 			continue;
< 		pid = xferstatus[i].xfer_pid;
< 		status = xferstatus[i].xfer_status;
< 		exitstatus = WIFEXITED(status) ?WEXITSTATUS(status) :0;
---
> /* under Win NT this should not get called unless a transfer has completed 
>  * or aborted
>  */
> #ifndef WINNT
>   	for (i = 0; i < MAX_XFERS_RUNNING; i++) {
>   		if (xferstatus[i].xfer_state != XFER_DONE)
>   			continue;
>   		pid = xferstatus[i].xfer_pid;
>   		status = xferstatus[i].xfer_status;
> 
>     		exitstatus = WIFEXITED(status) ?WEXITSTATUS(status) :0;
> #else
>  
> 	if (!GetExitCodeProcess(pid, &exitstatus))
>           {
> 	    syslog(LOG_ERR, "endxfer: cannot determine return code of the xfer (%d) process: %m",pid);
> 	    dprintf(1, (ddt, "endxfer: cannot determine return code of the xfer (%d) process: %d",pid,GetLastError()));
>             /* lgk new code here if we cannot figure this out dummy it up so it gets rescheduled anyway */
>             /* dont return as previously or the zone does not get rescheduled */
>             exitstatus = XFER_FAIL;
> 	  }
> #endif /* WINNT */
909c1217,1218
< 		for (zp = zones; zp < &zones[nzones]; zp++) {
---
> 		for (zp = zones; zp < &zones[nzones]; zp++)
>                    {
911a1221,1241
>             /* ok found our zone */
> #ifdef WINNT
>             /* regardless of how it terminated if under NT clear it out here
>              * first find the entry 
>              */
>              
>   	         for (i = 0; i < MAX_XFERS_RUNNING; i++) {
> 			    if (xferstatus[i].xfer_pid == (long)pid) {
> 				    xferstatus[i].xfer_status = exitstatus;
>                     xferstatus[i].xfer_state = XFER_IDLE;
> 			    	xferstatus[i].xfer_pid = 0;
> 			    	
> 			   } 
> 		      }
> 		     /* lgk problem is here we cannot close the handle here as it will reuse it and then close it again later
> 		        don't think we need to close this handle anyway as it is the same handle that is closed before the free
> 		        in named_xfer  the problem was that critical sections allow the same thread
> 		        to go into the same critical section more than once and since this handle was
> 		        already closed here it was re-allocated and closed again in named-xfer after the call to endxfer  
> 		     CloseHandle(zp->z_xferpid); */
> #endif
915,916c1245,1247
< 			zp->z_flags &=
< 				~(Z_XFER_RUNNING|Z_XFER_ABORTED|Z_XFER_GONE);
---
>   			zp->z_flags &=
>   				~(Z_XFER_RUNNING|Z_XFER_ABORTED|Z_XFER_GONE);
> #ifndef WINNT
918c1249
< 		 "\nendxfer: child %d zone %s returned status=%d termsig=%d\n",
---
> 		            "\nendxfer: child %d zone %s returned status=%d termsig=%d\n", 
931a1263,1267
> #else /* WINNT */
> 			dprintf(1, (ddt,
> 		            "\nendxfer: child %d zone %s returned status=%d \n", 
> 				    pid, zp->z_origin, exitstatus));
> #endif /* WINNT */
941a1278
>                     dprintf(1, (ddt, "named-xfer for %s ended successfully (child = %d)\n",zp->z_origin,pid));
947,948c1284,1285
< 						syslog(LOG_NOTICE,
< 		      "zoneref: Masters for secondary zone \"%s\" unreachable",
---
> 						syslog(LOG_WARNING,
> 	 	                                        "zoneref: Masters for secondary zone \"%s\" unreachable",
950a1288
>                     dprintf(1, (ddt, "Masters for secondary zone %s unreachable (xfer timed out) (child = %d)\n",zp->z_origin,pid));
953c1291,1295
< 
---
> #ifdef WINNT
> 				case XFER_KILLED:
> 					ns_retrytime(zp, tt.tv_sec);
> 					break;
> #endif
958,960c1300,1301
< 					     "named-xfer for \"%s\" exited %d",
< 						       zp->z_origin,
< 						       exitstatus);
---
> 					         "named-xfer for \"%s\" exited %d",
> 						    zp->z_origin, exitstatus);
964a1306,1307
>                     dprintf(1, (ddt, "(xfer for %s failed in endxfer) (child = %d)\n",zp->z_origin,pid));
>                     syslog(LOG_WARNING, "(xfer for %s failed) (child = %d) - rescheduling!\n",zp->z_origin,pid);
967c1310
< 				}
---
> 				} /*switch*/
969,973c1312,1321
< 			}
< 		}
< 		xferstatus[i].xfer_state = XFER_IDLE;
< 		xferstatus[i].xfer_pid = 0;
< 	}
---
> #ifndef WINNT
> 			} /*if/else*/
> #endif
> 		   } /* inner for */
> 
> #ifndef WINNT
>  	 xferstatus[i].xfer_state = XFER_IDLE;
> 	 xferstatus[i].xfer_pid = 0;
> 	} /* outter for */
> 
974a1323,1324
> #endif
> 
975a1326
> 
1049c1400
<     	register struct zoneinfo *zp;   
---
> 	register struct zoneinfo *zp;   
1087a1439,1519
> 
> 
> #ifdef WINNT
> void CALLBACK maint_alarm (UINT wTimerID, UINT msg,
>     DWORD dwUser, DWORD dw1, DWORD dw2)
> {
> 	int len;
> 	char loopbuf[] = "";
> 	    struct sockaddr_in loopback; 
> 	    needmaint = 1;
> 	dprintf(1, (ddt, "in maint_alarm ...\n"));
> 	printf("in maint_alarm ...\n");
> 
> #ifdef NOWAIT
> 	loopback.sin_family = AF_INET;
> 	loopback.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
> 	loopback.sin_port = htons(NAMESERVER_PORT);
> 	if(len = sendto(datagramq->dq_dfd, loopbuf, 1, 0, (struct sockaddr *)&loopback,
> 		  sizeof(struct sockaddr_in)) == SOCKET_ERROR)
> 		{
> 		syslog(LOG_ERR, "failed to break select for maintenance: %m, maintenance delayed");
> 		syslog(LOG_ERR, "WSA ERRORCODE WAS: %d", WSAGetLastError());
> 		}
> #endif
> 
> 
>     UNREFERENCED_PARAMETER(dw1);
>     UNREFERENCED_PARAMETER(dw2);
>     UNREFERENCED_PARAMETER(dwUser);
>     UNREFERENCED_PARAMETER(msg);
>     UNREFERENCED_PARAMETER(wTimerID);
> }
> 
> void
> named_xfer(PROCESS_INFORMATION *proc_info)
> {
> 	DWORD dwWait;
> 
> 	dwWait = WaitForSingleObject((*proc_info).hProcess, (DWORD) MAX_XFER_TIME * 1000);
> 
> 
>     /* now check reason we woke up */
>     /* remove the return now so let it go into endxfer even if the wait fails so we can resched. the xfer */
>     switch (dwWait)
>      {
> 
>       case WAIT_TIMEOUT:
>            syslog(LOG_ERR, "WaitForSingleObject() on named-xfer process (%d) status timed out!",(*proc_info).hProcess);
>            dprintf(1,(ddt, "WaitForSingleObject() on named-xfer process (%d) status timed out!\n",(*proc_info).hProcess));
> 	       break;
> 
>       case WAIT_FAILED:
>            syslog(LOG_ERR, "WaitForSingleObject() on named-xfer process (%d) status failed: %m",(*proc_info).hProcess);
>            dprintf(1,(ddt, "WaitForSingleObject() on named-xfer process (%d) status failed: %d\n",(*proc_info).hProcess,GetLastError()));
> 	       break;
> 
>       case WAIT_OBJECT_0:
>            /* normal case */
>            break;
>        
>       default:
>         dprintf(1, (ddt, "Unknown return type from WaitForSingleObject on named-xfer (%d) status! (%d)\n",(*proc_info).hProcess,dwWait));
>         syslog(LOG_ERR, "Unknown return type from WaitForSingleObject on named-xfer (%d) status %d:",(*proc_info).hProcess,dwWait);
>         break;
>       
>      }
>     
>     /* lgk new code using critical section to synchronize */
>     EnterCriticalSection(&protected_zp);
>     endxfer((*proc_info).hProcess);
>     /* dont try the close if the wait failed for some reason */
>     /* if we have an extra handle around so be it but if the handle is bad ie wait failed not sure what close will do */
>     if (dwWait == WAIT_OBJECT_0)
>       {
>        CloseHandle((*proc_info).hProcess);
>        CloseHandle((*proc_info).hThread);
>       }
>     free((char *)proc_info);
>     LeaveCriticalSection(&protected_zp);
> }
> #endif /* WINNT */
diff --recurs m:\bind495p1/named/ns_ncache.c m:\bind/named/ns_ncache.c
10,18c10,22
< #include <sys/param.h>
< #include <sys/socket.h>
< #include <sys/file.h>
< #include <netinet/in.h>
< #include <arpa/nameser.h>
< #include <syslog.h>
< #include <errno.h>
< #include <stdio.h>
< #include <resolv.h>
---
> #ifndef WINNT
> #include <sys/param.h>
> #include <sys/socket.h>
> #include <sys/file.h>
> #include <netinet/in.h>
> #endif
> #include <arpa/nameser.h>
> #ifndef WINNT
> #include <syslog.h>
> #endif
> #include <errno.h>
> #include <stdio.h>
> #include <resolv.h>
35a40
> #ifdef VALIDATE
36a42
> #endif
diff --recurs m:\bind495p1/named/ns_req.c m:\bind/named/ns_req.c
84,93c84,97
< #include <sys/param.h>
< #include <sys/uio.h>
< #include <sys/file.h>
< #include <sys/socket.h>
< #include <netinet/in.h>
< #include <arpa/nameser.h>
< #include <arpa/inet.h>
< #include <fcntl.h>
< #include <syslog.h>
< #include <errno.h>
---
> #ifndef WINNT
> #include <sys/param.h>
> #include <sys/uio.h>
> #include <sys/file.h>
> #include <sys/socket.h>
> #include <netinet/in.h>
> #endif
> #include <arpa/nameser.h>
> #include <arpa/inet.h>
> #include <fcntl.h>
> #ifndef WINNT
> #include <syslog.h>
> #endif
> #include <errno.h>
105a110,123
> #ifdef WINNT
> extern CRITICAL_SECTION doxfr_section;
> 
> #define _exit(x) ExitThread(x)
> struct ntxfr {
> 	struct qstream *qsp;
> 	struct namebuf *np;
> 	u_char *soa;
> 	int soalen;
> 	int class;
>      u_char *dnptrs[40];
> };
> #endif
> 
122a141
> #ifndef WINNT
123a143,146
> #else
> static void		fwritemsg __P((SOCKET, u_char *, int)),
> #endif
> #ifndef WINNT
125a149,152
> #else
> 			doaxfr __P((struct namebuf *, SOCKET,
> 				    struct namebuf *, int)),
> #endif
127a155,157
> #ifdef WINNT
> static void startxfr_child __P((struct ntxfr *));
> #endif
186c216
< 	dnptrs[0] = NULL;
---
> 	dnptrs [0] = NULL;
252c282,283
< 		    ntohs(hp->id), cp - msg, sortmsgtxt));
---
> 		    ntohs((u_short)hp->id), cp - msg, sortmsgtxt));
> 
437,440c468,471
< 	if ((ntohs(hp->qdcount) != 1)
< 	    || ntohs(hp->ancount) != 0
< 	    || ntohs(hp->nscount) != 0
< 	    || ntohs(hp->arcount) != 0) {
---
> 	if ((ntohs((u_short)  hp->qdcount) != 1)
>  	    || ntohs((u_short) hp->ancount) != 0
>  	    || ntohs((u_short) hp->nscount) != 0
>  	    || ntohs((u_short) hp->arcount) != 0) {
525c556
< 				syslog(LOG_INFO,
---
> 				syslog(LOG_WARNING,
555c586
< 		    dname, ntohs(hp->id), type, class));
---
> 		    dname, ntohs((u_short)hp->id), type, class));
692c723
< 			hp->nscount = htons(count);
---
>                hp->nscount = htons((u_int16_t)count);
703c734
< 	hp->ancount = htons(ntohs(hp->ancount) + (u_int16_t)count);
---
> 	hp->ancount = htons((u_short)(ntohs((u_short)hp->ancount) + (u_int16_t)count));
787c818
< 			} else if (ntohs(hp->ancount) != 0) {
---
> 			} else if (ntohs((u_short)hp->ancount) != 0) {
971,974c1002,1005
< 	if (ntohs(hp->ancount) != 1
< 	    || ntohs(hp->qdcount) != 0
< 	    || ntohs(hp->nscount) != 0
< 	    || ntohs(hp->arcount) != 0) {
---
> 	if (ntohs((u_short) hp->ancount) != 1
> 	    || ntohs((u_short) hp->qdcount) != 0
> 	    || ntohs((u_short) hp->nscount) != 0
> 	    || ntohs((u_short) hp->arcount) != 0) {
1113a1145
> #ifndef WINNT
1117a1150,1155
> #else
> fwritemsg(rfd, msg, msglen)
> 	SOCKET rfd;
> 	u_char *msg;
> 	int msglen;
> #endif
1121a1160
> #ifndef WINNT
1123a1163,1166
> #else
> 	if (send(rfd, len, INT16SZ, 0) != INT16SZ ||
> 		send(rfd, msg, msglen, 0) != msglen) {
> #endif
1216c1259
< 	u_char **edp = dnptrs + sizeof dnptrs / sizeof dnptrs[0];
---
>         u_char **edp = dnptrs + sizeof dnptrs / sizeof dnptrs[0];
1235c1278,1582
< 		    || dp->d_ttl < (u_int32_t)tt.tv_sec) {
---
> #ifndef WINNT
> 	        || dp->d_ttl < (u_int32_t)tt.tv_sec) {
> #else
>      		|| dp->d_ttl < (int32_t)tt.tv_sec) {
> #endif
> 			ttl = 0;
> 		} else
> 			ttl = dp->d_ttl - (u_int32_t) tt.tv_sec;
> 	} else {
> 		if (dp->d_ttl != USE_MINIMUM)
> 			ttl = dp->d_ttl;
> 		else
> 			ttl = zp->z_minimum;		/* really default */
> #ifdef notdef /* don't decrease ttl based on time since verification */
> 		if (zp->z_type == Z_SECONDARY) {
> 			/*
> 			 * Set ttl to value received from primary,
> 			 * less time since we verified it (but never
> 			 * less than a small positive value).
> 			 */
> 			ttl -= tt.tv_sec - zp->z_lastupdate;
> 			if (ttl <= 0)
> 				ttl = 120;
> 		}
> #endif
> 	}
> 
> 	buflen -= RRFIXEDSZ;
> #if defined(RETURNSOA) && defined(NCACHE)
> 	if (dp->d_rcode) {
> 		name = (char *)dp->d_data;
> 		name += strlen(name) +1;
> 		name += strlen(name) +1;
> 		name += 5 * INT32SZ;
> 		type = T_SOA;
> 	}
> #endif
> 	if ((n = dn_comp(name, buf, buflen, dnptrs, edp)) < 0)
> 		return (-1);
> 	cp = buf + n;
> 	buflen -= n;
> 	PUTSHORT((u_int16_t)type, cp);
> 	PUTSHORT((u_int16_t)dp->d_class, cp);
> 	PUTLONG(ttl, cp);
> 	sp = cp;
> 	cp += INT16SZ;
> 	switch (type) {
> 	case T_CNAME:
> 	case T_MG:
> 	case T_MR:
> 	case T_PTR:
> 		n = dn_comp((char *)dp->d_data, cp, buflen, dnptrs, edp);
> 		if (n < 0)
> 			return (-1);
> 		PUTSHORT((u_int16_t)n, sp);
> 		cp += n;
> 		break;
> 
> 	case T_MB:
> 	case T_NS:
> 		/* Store domain name in answer */
> 		n = dn_comp((char *)dp->d_data, cp, buflen, dnptrs, edp);
> 		if (n < 0)
> 			return (-1);
> 		PUTSHORT((u_int16_t)n, sp);
> 		cp += n;
> 		if (doadd)
> 			addname((char*)dp->d_data, name,
> 				type, dp->d_class);
> 		break;
> 
> 	case T_SOA:
> 	case T_MINFO:
> 	case T_RP:
> 		cp1 = dp->d_data;
> 		n = dn_comp((char *)cp1, cp, buflen, dnptrs, edp);
> 		if (n < 0)
> 			return (-1);
> 		cp += n;
> 		buflen -= type == T_SOA ? n + 5 * INT32SZ : n;
> 		cp1 += strlen((char *)cp1) + 1;
> 		n = dn_comp((char *)cp1, cp, buflen, dnptrs, edp);
> 		if (n < 0)
> 			return (-1);
> 		cp += n;
> 		if (type == T_SOA) {
> 			cp1 += strlen((char *)cp1) + 1;
> 			bcopy(cp1, cp, (n = 5 * INT32SZ));
> 			cp += n;
> 		}
> 		n = (u_int16_t)((cp - sp) - INT16SZ);
> 		PUTSHORT((u_int16_t)n, sp);
> 		break;
> 
> 	case T_NAPTR:
> 		/* cp1 == our data/ cp == data of RR */
> 		cp1 = dp->d_data;
> 
>  		if ((buflen -= INT16SZ) < 0)
> 			return (-1);
> 
>  		/* copy order */
>  		bcopy(cp1, cp, INT16SZ);
>  		cp += INT16SZ;
>  		cp1 += INT16SZ;
> 		n = (u_int16_t)((cp - sp) - INT16SZ);
> 		dprintf(1, (ddt, "current size n = %u\n", n));
> 
> 		/* copy preference */
> 		bcopy(cp1, cp, INT16SZ);
> 		cp += INT16SZ;
> 		cp1 += INT16SZ;
> 		n = (u_int16_t)((cp - sp) - INT16SZ);
> 		dprintf(1, (ddt, "current size n = %u\n", n));
> 
> 		/* Flags */
> 		n = *cp1++;
> 		dprintf(1, (ddt, "size of n at flags = %d\n", n));
> 		*cp++ = n;
> 		bcopy(cp1,cp,n);
> 		cp += n;
> 		cp1 += n;
> 		n = (u_int16_t)((cp - sp) - INT16SZ);
> 		dprintf(1, (ddt, "current size n = %u\n", n));
> 		
> 		/* Service */
> 		n = *cp1++;
> 		*cp++ = n;
> 		bcopy(cp1,cp,n);
> 		cp += n;
> 		cp1 += n;
> 		n = (u_int16_t)((cp - sp) - INT16SZ);
> 		dprintf(1, (ddt, "current size n = %u\n", n));
> 
> 		/* Regexp */
> 		n = *cp1++;
> 		*cp++ = n;
> 		bcopy(cp1,cp,n);
> 		cp += n;
> 		cp1 += n;
> 		n = (u_int16_t)((cp - sp) - INT16SZ);
> 		dprintf(1, (ddt, "current size n = %u\n", n));
> 
> 		/* Replacement */
> 		dprintf(1, (ddt, "Replacement = %s\n", cp1));
> 		n = dn_comp((char *)cp1, cp, buflen, dnptrs, edp);
> 		dprintf(1, (ddt, "dn_comp's n = %u\n", n));
> 		if (n < 0)
> 			return (-1);
> 		cp += n;
> 
> 		/* save data length */
> 		n = (u_int16_t)((cp - sp) - INT16SZ);
> 		dprintf(1, (ddt, "saved size n = %u\n", n));
> 		PUTSHORT((u_int16_t)n, sp);
> 
> 		break;
> 
> 	case T_MX:
> 	case T_AFSDB:
> 	case T_RT:
> 	case T_SRV:
> 		/* cp1 == our data/ cp == data of RR */
> 		cp1 = dp->d_data;
> 
>  		if ((buflen -= INT16SZ) < 0)
> 			return (-1);
> 
>  		/* copy preference */
>  		bcopy(cp1, cp, INT16SZ);
>  		cp += INT16SZ;
>  		cp1 += INT16SZ;
> 
> 		if (type == T_SRV) {
> 			bcopy(cp1, cp, INT16SZ*2);
> 			cp += INT16SZ*2;
> 			cp1 += INT16SZ*2;
> 		}
> 
> 		n = dn_comp((char *)cp1, cp, buflen, dnptrs, edp);
> 		if (n < 0)
> 			return (-1);
> 		cp += n;
> 
> 		/* save data length */
> 		n = (u_int16_t)((cp - sp) - INT16SZ);
> 		PUTSHORT((u_int16_t)n, sp);
> 		if (doadd)
> 			addname((char*)cp1, name, type, dp->d_class);
> 		break;
> 
> 	case T_PX:
> 		cp1 = dp->d_data;
> 
> 		if ((buflen -= INT16SZ) < 0)
> 			return (-1);
> 
> 		/* copy preference */
> 		bcopy(cp1, cp, INT16SZ);
> 		cp += INT16SZ;
> 		cp1 += INT16SZ;
> 
> 		n = dn_comp((char *)cp1, cp, buflen, dnptrs, edp);
> 		if (n < 0)
> 			return (-1);
> 		cp += n;
> 		buflen -= n;
> 		cp1 += strlen((char *)cp1) + 1;
> 		n = dn_comp((char *)cp1, cp, buflen, dnptrs, edp);
> 		if (n < 0)
> 			return (-1);
> 		cp += n;
> 
> 		/* save data length */
> 		n = (u_int16_t)((cp - sp) - INT16SZ);
> 		PUTSHORT((u_int16_t)n, sp);
> 		break;
> 
> 	case T_SIG:
> 		/* cp1 == our data; cp == data of target RR */
> 		cp1 = dp->d_data;
> 
> 		/* first just copy over the type_covered, algorithm, */
> 		/* labels, orig ttl, two timestamps, and the footprint */
> 		if ((dp->d_size - 18) > buflen)
> 			return (-1);  /* out of room! */
> 		bcopy( cp1, cp, 18 );
> 		cp  += 18;
> 		cp1 += 18;
> 		buflen -= 18;
> 
> 		/* then the signer's name */
> 		n = dn_comp((char *)cp1, cp, buflen, NULL, NULL);
> 		if (n < 0)
> 			return (-1);
> 		cp += n;
> 		buflen -= n;
> 		cp1 += strlen((char*)cp1)+1;
> 
> 		/* finally, we copy over the variable-length signature */
> 		n = dp->d_size - (u_int16_t)((cp1 - dp->d_data));
> 		if (n > buflen)
> 			return (-1);  /* out of room! */
> 		bcopy(cp1, cp, n);
> 		cp += n;
> 		
>   		/* save data length & return */
> 		n = (u_int16_t)((cp - sp) - INT16SZ);
>   		PUTSHORT((u_int16_t)n, sp);
> 		break;
> 
> 	default:
> 		if (dp->d_size > buflen)
> 			return (-1);
> 		bcopy(dp->d_data, cp, dp->d_size);
> 		PUTSHORT((u_int16_t)dp->d_size, sp);
> 		cp += dp->d_size;
> 	}
> 
> 	return (cp - buf);
> }
> 
> 
> 
> /*
>  * Copy databuf into a resource record for replies.
>  * Return size of RR if OK, -1 if buffer is full.
>  */
> int
> make_rr2(name, dp, buf, buflen, doadd, dnptrs)
> 	const char *name;
> 	register struct databuf *dp;
> 	u_char *buf;
> 	int buflen, doadd;
> 	u_char **dnptrs;
> {
> 	register u_char *cp;
> 	u_char *cp1, *sp;
> 	struct zoneinfo *zp;
> 	register int32_t n;
> 	register int16_t type = dp->d_type;
> 	register u_int32_t ttl;
>         u_char **edp = dnptrs + sizeof dnptrs / sizeof dnptrs[0];
> 	dprintf(5, (ddt, "make_rr2(%s, %lx, %lx, %d, %d) %d zone %d ttl %lu\n",
> 		    name, (u_long)dp, (u_long)buf,
> 		    buflen, doadd, dp->d_size, dp->d_zone, (u_long)dp->d_ttl));
> 
> #ifdef	NCACHE
> 	if (dp->d_rcode
> #ifdef RETURNSOA
> 	    && dp->d_size == 0
> #endif
> 	) {
> 		panic(-1, "make_rr2: impossible d_rcode value");
> 	}
> #endif
> 	zp = &zones[dp->d_zone];
> 	/* check for outdated RR before updating dnptrs by dn_comp() (?) */
> 	if (zp->z_type == Z_CACHE) {
> 		if ((dp->d_flags & DB_F_HINT) != 0
> #ifndef WINNT
> 	        || dp->d_ttl < (u_int32_t)tt.tv_sec) {
> #else
>      		|| dp->d_ttl < (int32_t)tt.tv_sec) {
> #endif
1491a1839,1842
> 
> 
> 
> 
1667c2018
< 	hp->nscount = htons(ntohs(hp->nscount) + 1);
---
> 	hp->nscount = htons((u_short)(ntohs((u_short)hp->nscount) + 1));
1681a2033
> #ifndef WINNT
1686a2039,2046
> #else
> doaxfr(np, rfd, top, class, dnptrs_copy)
> 	register struct namebuf *np;
> 	SOCKET rfd;
> 	struct namebuf *top;
> 	int class;		/* Class to transfer */
> 	u_char **dnptrs_copy;
> #endif
1726a2087
> #ifndef WINNT
1727a2089,2091
> #else
> 		n = make_rr2(dname, dp, cp, sizeof(msg)-HFIXEDSZ, 0, dnptrs_copy);
> #endif
1729a2094
> #ifndef WINNT
1730a2096,2098
> #else
> 		fwritemsg(rfd, msg, n + HFIXEDSZ);
> #endif
1784a2153
> #ifndef WINNT
1786c2155,2158
< 			if (n < 0)
---
> #else
>  			n = make_rr2(fname, gdp, cp, sizeof(msg)-HFIXEDSZ, 0, dnptrs_copy);
> #endif
>                if (n < 0)
1787a2160
> #ifndef WINNT
1788a2162,2164
> #else
>  			fwritemsg(rfd, msg, n + HFIXEDSZ);
> #endif
1828c2204,2205
< 		if ((n = make_rr(dname, dp, cp, sizeof(msg)-HFIXEDSZ, 0)) < 0)
---
> #ifndef WINNT
>            if ((n = make_rr(dname, dp, cp, sizeof(msg)-HFIXEDSZ, 0)) < 0)
1830c2207,2213
< 		fwritemsg(rfp, msg, n + HFIXEDSZ);
---
>             fwritemsg(rfp, msg, n + HFIXEDSZ);
> #else
> 		
>  		if ((n = make_rr2(dname, dp, cp, sizeof(msg)-HFIXEDSZ, 0, dnptrs_copy)) < 0)
>           	continue;
>           fwritemsg(rfd, msg, n + HFIXEDSZ);
> #endif
1874a2258
> #ifndef WINNT
1875a2260,2262
> #else
> 			doaxfr(np, rfd, top, class, dnptrs_copy);
> #endif
1880a2268
> 
1888,1889c2276,2277
< 	int		soalen;
< 	int		class;
---
> 	int		     soalen;
> 	int		     class;
1891a2280
> #ifndef WINNT
1905a2295,2300
> #else /* WINNT */
> 	HANDLE xfr_thread_handle;
> 	struct ntxfr *xfr_child;
> 	char *xfrbuf;
> 	DWORD id;
> #endif /* WINNT */
1908a2304
> #ifndef WINNT
1941a2338,2417
> #else
> 	if ((xfr_child = (struct ntxfr *)malloc(sizeof(struct ntxfr))) == NULL) {
> 		syslog(LOG_ERR, "startxfr: malloc xfr_child: %m");
> 		sqrm(qsp);
> 		return;
> 	}
> 	if ((xfrbuf = (u_char *)malloc(BUFSIZ)) == NULL) {
> 		syslog(LOG_ERR, "startxfr: malloc xfrbuf: %m");
> 		sqrm(qsp);
> 		return;
> 	}
> 
>      /* fill in the dnptrs also */
>    	{
>       u_char **edp = dnptrs + sizeof dnptrs / sizeof dnptrs[0];
>       int len = (int)edp - (int)dnptrs;
>       memcpy(xfr_child->dnptrs,dnptrs,len);
>     }
> 
>         xfr_child->qsp = qsp;
> 	xfr_child->np = np;
> 	bcopy(soa, xfrbuf, soalen);
> 	soa[soalen+1] = '\0';
> 	xfr_child->soa = xfrbuf;
> 	xfr_child->soalen = soalen;
> 	xfr_child->class = class;
>  
>          
> 	xfr_thread_handle = CreateThread(NULL, 0,
> 					(LPTHREAD_START_ROUTINE)startxfr_child,
> 					(LPVOID)xfr_child, CREATE_SUSPENDED, &id);
> 	
>      if(xfr_thread_handle == NULL) {
> 		syslog(LOG_NOTICE, "startxfr(%s -> %s) failing; CreateThread(): %m",
> 		       dname, sin_ntoa(&qsp->s_from));
> 		sqrm(qsp);
> 	}
> 	else
> 		/* probably should store the thread handle and/or thread id
> 		 * and identify and kill a hung outgoing zone transfer thread
> 		 */
> 		syslog(LOG_DEBUG, "zone transfer of \"%s\" to %s (threadId %d)",
> 		       dname, sin_ntoa(&qsp->s_from), id);
>         /* lgk close errant handle here so we don't get too many */
>         /* lgk this handle is being closed ok but there are still two open after
>            an outgoing transfer that I need to track down  adding sqrm should fix this
>            but we need to make sure child waits until this is done before continueing
>            as above in unix the pipes synchronize the two.. the child waits until parent
>            pipe is closed and then goes on... we can do this by makeing the child thread
>            wait for its startup */
>         dprintf(1, (ddt, "ns_req: resuming thread/closing thread handle  = %d id = %d\n",xfr_thread_handle,id));
>         ResumeThread(xfr_thread_handle);
>         CloseHandle(xfr_thread_handle);
> 	return;
> }
> 
> static void
> startxfr_child(pxfr_child)
> 	struct ntxfr *pxfr_child;
> {
> 	DWORD pid;
> #if defined(HAVE_SETVBUF) && !defined(WINNT)
> 	char *buf;
> #endif
> #ifdef SO_SNDBUF
> 	static const int sndbuf = XFER_BUFSIZE * 2;
> #endif
> #ifdef SO_LINGER
> 	static const struct linger ll = { 1, 120 };
> #endif
> 	struct qstream	*qsp = pxfr_child->qsp;
> 	struct namebuf	*np = pxfr_child->np;
> 	u_char		*soa = pxfr_child->soa;
> 	int		soalen = pxfr_child->soalen;
> 	int		class = pxfr_child->class;
> 	int off = 0;
> 	u_char **dnptrs_copy = pxfr_child->dnptrs;
> 
> 	pid = GetCurrentThreadId();
> #endif /* WINNT */
1942a2419
> #ifndef WINNT
1965a2443,2444
> #endif
> 
1968a2448,2450
> #ifdef WINNT
> 	(void) SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_NORMAL);
> #endif
1970a2453
> #ifndef WINNT
1974a2458
> #endif
1975a2460
> #ifndef WINNT
1981c2466,2473
< #ifdef HAVE_SETVBUF
---
> #else
> 	/* set the socket to be blocking again */
> 	if(ioctlsocket(qsp->s_rfd, FIONBIO, (u_long *)&off) == SOCKET_ERROR) {
> 		syslog(LOG_INFO, "ioctlsocket(rfd, BLOCK): %m");
> 		exit(1);
> 	}
> #endif /* WINNT */
> #if defined(HAVE_SETVBUF) && !defined(WINNT)
2000a2493
> #ifndef WINNT
2001a2495,2498
> #else
> 	fwritemsg(qsp->s_rfd, soa, soalen);
> #endif
> #ifndef WINNT
2002a2500,2503
> #else
> 	doaxfr(np, qsp->s_rfd, np, class,dnptrs_copy);
> #endif
> #ifndef WINNT
2004a2506,2508
> #else
> 	fwritemsg(qsp->s_rfd, soa, soalen);
> #endif
2011c2515,2521
< 		   (char *)&ll, sizeof ll);
---
>         	   (char *)&ll, sizeof ll);
> #ifdef WINNT
>         dprintf(1, (ddt, "closing xfer socket = %d threadid = %d\n",
> 			    qsp->s_rfd,(u_long)pid));
> 			    // lgk 10.96 nt not freeing the buf or the pxfr_child so do it
> 			    // lgk it looks like sqrm does this and by not doing it we
> 			    // are not unlinking which may be causing the crash/
2012a2523,2534
>      free(soa);
>      free(pxfr_child);
>      sqrm(qsp);
> 
>         
> 	
> #else
> 	sqrm(qsp);
> #endif /* WINNT */
> #endif /* SO_LINGER */
> #ifdef WINNT
> 	/* endxfer(GetCurrentThread());	*/
2013a2536
> #ifndef WINNT
2014a2538,2540
> #else
> 	ExitThread(0);
> #endif
diff --recurs m:\bind495p1/named/ns_resp.c m:\bind/named/ns_resp.c
84,93c84,97
< #include <sys/param.h>
< #include <sys/socket.h>
< #include <sys/file.h>
< #include <netinet/in.h>
< #include <arpa/nameser.h>
< #include <arpa/inet.h>
< #include <syslog.h>
< #include <errno.h>
< #include <stdio.h>
< #include <resolv.h>
---
> #ifndef WINNT
> #include <sys/param.h>
> #include <sys/socket.h>
> #include <sys/file.h>
> #include <netinet/in.h>
> #endif
> #include <arpa/nameser.h>
> #include <arpa/inet.h>
> #ifndef WINNT
> #include <syslog.h>
> #endif
> #include <errno.h>
> #include <stdio.h>
> #include <resolv.h>
258c262
< 		dprintf(1, (ddt, "DUP? dropped (id %d)\n", ntohs(hp->id)));
---
> 		dprintf(1, (ddt, "DUP? dropped (id %d)\n", ntohs( (u_short) hp->id)));
272,275c276,279
< 	qdcount = ntohs(hp->qdcount);
< 	ancount = ntohs(hp->ancount);
< 	aucount = ntohs(hp->nscount);	/* !!! */
< 	arcount = ntohs(hp->arcount);
---
> 	qdcount = ntohs( (u_short) hp->qdcount);
> 	ancount = ntohs( (u_short) hp->ancount);
> 	aucount = ntohs( (u_short) hp->nscount);	/* !!! */
> 	arcount = ntohs( (u_short) hp->arcount);
474c478
< 				t = ns->d_nstime * ALPHA
---
> 				t = (u_long)(ns->d_nstime * ALPHA
476c480
< 				   (1 - ALPHA) * rtrip;
---
> 				   (1 - ALPHA) * rtrip);
516c520
< 				t = (rtrip * BETA);
---
> 				t = (u_long)(rtrip * BETA);
518c522
< 				t = ns2->d_nstime * BETA
---
> 				t = (u_long)(ns2->d_nstime * BETA
520c524
< 				   (1 - ALPHA) * rtrip;
---
> 				   (1 - ALPHA) * rtrip);
522c526
< 			    t = ns2->d_nstime * GAMMA;
---
> 			    t = (u_long)(ns2->d_nstime * GAMMA);
1027c1031
< 	hp->ancount = htons(ntohs(hp->ancount) + (u_int16_t)count);
---
>   	hp->ancount = htons((u_short)(ntohs((u_short)hp->ancount) + (u_int16_t)count));
1601c1605
< 		if (n > (sizeof data) - (cp1 - (u_char *)data))
---
> 		if ((unsigned)n > (sizeof data) - (cp1 - (u_char *)data))
2492c2496,2497
< 					+
---
> 					+ (int) (
> 				0.95 * (int) (dp->d_ttl - tt.tv_sec));
2548a2554,2565
> #ifdef MSN_LIMIT
>           if ((count >= 28) && (type == T_A) && (class = C_IN)) 
>             {
>               // normally we would put truncation bit here...
>               // don't put truncation bit in here as win95 cannot handle it
>               //hp->tc = 1;
>               dprintf(3, (ddt, "MSN_LIMIT is in effect ... limiting query response to 28 records\n"));
>               *countp = 28;
>               return (*lenp - buflen);
>           }
>    
> #endif
2769c2786
< 		} else if (ttl != dp->d_ttl) {
---
> 		} else if (ttl != (unsigned)dp->d_ttl) {
2789c2806
< 		} else if (ttl != dbp->db_dp->d_ttl) {
---
> 		} else if (ttl != (unsigned)dbp->db_dp->d_ttl) {
diff --recurs m:\bind495p1/named/ns_sort.c m:\bind/named/ns_sort.c
61,69c61,73
< #include <sys/param.h>
< #include <sys/types.h>
< #include <sys/socket.h>
< #include <sys/file.h>
< #include <netinet/in.h>
< #include <arpa/nameser.h>
< #include <arpa/inet.h>
< #include <stdio.h>
< #include <syslog.h>
---
> #ifndef WINNT
> #include <sys/param.h>
> #include <sys/types.h>
> #include <sys/socket.h>
> #include <sys/file.h>
> #include <netinet/in.h>
> #endif
> #include <arpa/nameser.h>
> #include <arpa/inet.h>
> #include <stdio.h>
> #ifndef WINNT
> #include <syslog.h>
> #endif
diff --recurs m:\bind495p1/named/ns_stats.c m:\bind/named/ns_stats.c
67,73c67,77
< #include <sys/param.h>
< #include <netinet/in.h>
< #include <arpa/nameser.h>
< #include <arpa/inet.h>
< #include <stdio.h>
< #include <syslog.h>
< #include <errno.h>
---
> #ifndef WINNT
> #include <sys/param.h>
> #include <netinet/in.h>
> #endif
> #include <arpa/nameser.h>
> #include <arpa/inet.h>
> #include <stdio.h>
> #ifndef WINNT
> #include <syslog.h>
> #endif
> #include <errno.h>
75,76c79,80
< #include "named.h"
< #include "tree.h"
---
> #include "named.h"
> #include "tree.h"
244a249
> #ifndef WINNT
245a251,253
> #else
> 			SetLastError(save);
> #endif
diff --recurs m:\bind495p1/named/ns_udp.c m:\bind/named/ns_udp.c
23,32c23,36
< #include <sys/param.h>
< #include <sys/stat.h>
< #include <sys/socket.h>
< #include <sys/file.h>
< 
< #include <netinet/in.h>
< #include <arpa/nameser.h>
< #include <arpa/inet.h>
< 
< #include <ctype.h>
---
> #ifndef WINNT
> #include <sys/param.h>
> #endif
> #include <sys/stat.h>
> #ifndef WINNT
> #include <sys/socket.h>
> #include <sys/file.h>
> #include <netinet/in.h>
> #endif
> 
> #include <arpa/nameser.h>
> #include <arpa/inet.h>
> 
> #include <ctype.h>
34a39,40
> 
> #ifndef WINNT
36d41
< #include <netdb.h>
37a43,45
> #endif
> 
> #include <netdb.h>
diff --recurs m:\bind495p1/named/ns_validate.c m:\bind/named/ns_validate.c
11,19c11,21
< #include <sys/param.h>
< #include <sys/socket.h>
< #include <sys/file.h>
< 
< #include <netinet/in.h>
< #include <arpa/nameser.h>
< #include <arpa/inet.h>
< 
< #include <syslog.h>
---
> #ifndef WINNT
> #include <sys/param.h>
> #include <sys/socket.h>
> #include <sys/file.h>
> #include <netinet/in.h>
> #endif
> #include <arpa/nameser.h>
> #ifndef WINNT
> #include <arpa/inet.h>
> #include <syslog.h>
> #endif
Only in m:\bind/named: ntif.h
diff --recurs m:\bind495p1/named/pathnames.h m:\bind/named/pathnames.h
61,62c61,63
< #ifdef _PATH_XFER
< # define _PATH_XFER_PREDEFINED	/* probably from Makefile */
---
> 
> #ifdef _PATH_XFER
> # define _PATH_XFER_PREDEFINED	/* probably from Makefile */
65,66c66,81
< #if defined (__sgi) && !defined(_SYSTYPE_SVR4) && !defined(__SYSTYPE_SVR4)
< #define	_PATH_BOOT	"/usr/etc/named.d/named.boot"
---
> #ifdef WINNT
> #define	_PATH_BOOT	"%windir%\\NAMED.BOOT"
> #define	_ALT_PATH_BOOT	"%windir%\\NAMED.INI"
> #ifndef _PATH_XFER
> # define _PATH_XFER	"%windir%\\SYSTEM32\\XFER.EXE"
> #endif
> #ifndef _PATH_PIDFILE
> # define _PATH_PIDFILE	"%windir%\\NAMED.PID"
> #endif
> /* following paths prepended with GetTempPath() */
> #define	_PATH_DEBUG	"NAMED.RUN" 
> #define	_PATH_DUMPFILE	"NAMDUMP.DB"
> #define	_PATH_STATS	"NAMED.STS"
> #define	_PATH_XFERTRACE	"XFER.TRC"
> #define _PATH_XFERDDT	"XFER.DDT"
> #define	_PATH_TMPXFER	"XFER.DDT.XXXXXX"
68c83,87
< #define	_PATH_BOOT	"/etc/named.boot"
---
> 
> #if defined (__sgi) && !defined(_SYSTYPE_SVR4) && !defined(__SYSTYPE_SVR4)
> #define	_PATH_BOOT	"/usr/etc/named.d/named.boot"
> #else
> #define	_PATH_BOOT	"/etc/named.boot"
122a142,143
> 
> #endif /* WINNT */
Only in m:\bind/named: resource.h
diff --recurs m:\bind495p1/named/storage.c m:\bind/named/storage.c
57,58c57,60
< #include <sys/param.h>
< #include <syslog.h>
---
> #ifndef WINNT
> #include <sys/param.h>
> #include <syslog.h>
> #endif
Only in m:\bind/named: strip.bat
Only in m:\bind/named: t3ansrespchanges
Only in m:\bind/named: versav.c
Only in m:\bind/named: xfer.mak
Only in m:\bind/named: xfer.mdp
Only in m:\bind/named: xfer.ncb
Only in m:\bind/named: xfer.vcp
Only in m:\bind/named: xfer95.mak
Only in m:\bind/named: xfer95.mdp
Only in m:\bind/named: xfer95.ncb
Only in m:\bind: nslookup.mak
Only in m:\bind: ntbind49326_vc22.zip
Only in m:\bind: ntbind49327.zip
Only in m:\bind: ntbind49332.zip
Only in m:\bind: ntbind493rel.zip
Only in m:\bind: ntbind493relo3.zip
Only in m:\bind: ntbind493relo5.zip
Only in m:\bind: ntbind493relp2.zip
Only in m:\bind: ntbind494arel.zip
Only in m:\bind: ntbind494beta2.zip
Only in m:\bind: ntbind494p1.zip
Only in m:\bind: ntbind494rel.zip
Only in m:\bind: ntbind494t3b2.zip
Only in m:\bind: ntbind494t4a.zip
Only in m:\bind: ntbind494t4b.zip
Only in m:\bind: ntbind494t5b.zip
Only in m:\bind: ntbind495p1.zip
Only in m:\bind: ntbind495rel.zip
Only in m:\bind: ntbind495relmsn.zip
Only in m:\bind: ntbind495t1.zip
Only in m:\bind: ntbind495t1a.zip
Only in m:\bind: ntbind495t1b.zip
Only in m:\bind: ntbind495t3a.zip
Only in m:\bind: ntbind495t3b.zip
Only in m:\bind: ntbind495t4b.zip
Only in m:\bind: ntbind495t5b+.zip
Only in m:\bind: ntbind495t5b.zip
Only in m:\bind: ntbind495t6b.zip
Only in m:\bind: ntbind495t6bo.zip
Only in m:\bind: ntbind495t6bold.zip
Only in m:\bind: ntdns49326bin_vc22.zip
Only in m:\bind: ntdns493relbin-nongui.zip
Only in m:\bind: ntdns493relbin.zip
Only in m:\bind: ntdns493relbino5.zip
Only in m:\bind: ntdns493relp2bin-nongui.zip
Only in m:\bind: ntdns493relp2bin.zip
Only in m:\bind: ntdns494arelbin-nongui.zip
Only in m:\bind: ntdns494arelbin.zip
Only in m:\bind: ntdns494beta2bin-nongui.zip
Only in m:\bind: ntdns494beta2bin.zip
Only in m:\bind: ntdns494p1bin-nongui.zip
Only in m:\bind: ntdns494p1bin.zip
Only in m:\bind: ntdns494relbin-nongui.zip
Only in m:\bind: ntdns494relbin.zip
Only in m:\bind: ntdns494t3b2bin.zip
Only in m:\bind: ntdns494t4abin-nongui.zip
Only in m:\bind: ntdns494t4abin.zip
Only in m:\bind: ntdns494t4bbin-nongui.zip
Only in m:\bind: ntdns494t4bbin.zip
Only in m:\bind: ntdns494t5bbin-nongui.zip
Only in m:\bind: ntdns494t5bbin.zip
Only in m:\bind: ntdns495p1-nongui.zip
Only in m:\bind: ntdns495p1bin.zip
Only in m:\bind: ntdns495rel-nongui.zip
Only in m:\bind: ntdns495relbin.zip
Only in m:\bind: ntdns495relmsnbin.zip
Only in m:\bind: ntdns495t1abin-nongui.zip
Only in m:\bind: ntdns495t1abin.zip
Only in m:\bind: ntdns495t1bbin-nongui.zip
Only in m:\bind: ntdns495t1bbin.zip
Only in m:\bind: ntdns495t1bin-nongui.zip
Only in m:\bind: ntdns495t1bin.zip
Only in m:\bind: ntdns495t3abin-nongui.zip
Only in m:\bind: ntdns495t3abin.zip
Only in m:\bind: ntdns495t3bbin-nongui.zip
Only in m:\bind: ntdns495t3bbin.zip
Only in m:\bind: ntdns495t4bbin-nongui.zip
Only in m:\bind: ntdns495t4bbin.zip
Only in m:\bind: ntdns495t5bbin-nongui.zip
Only in m:\bind: ntdns495t5bbin.zip
Only in m:\bind: ntdns495t6bbin-nongui.zip
Only in m:\bind: ntdns495t6bbin-nonguio.zip
Only in m:\bind: ntdns495t6bbin.zip
Only in m:\bind: out
Only in m:\bind: p1c1
Only in m:\bind: p1c2
Only in m:\bind: page1.html
Only in m:\bind: readme.nt
Only in m:\bind/res: WinRel
diff --recurs m:\bind495p1/res/base64.c m:\bind/res/base64.c
44,48c44,50
< #include <sys/param.h>
< #include <sys/socket.h>
< #include <netinet/in.h>
< #include <arpa/inet.h>
< #include <arpa/nameser.h>
---
> #ifndef WINNT
> #include <sys/param.h>
> #include <sys/socket.h>
> #include <netinet/in.h>
> #endif
> #include <arpa/inet.h>
> #include <arpa/nameser.h>
50,52c52,54
< #include <ctype.h>
< #include <resolv.h>
< #include <stdio.h>
---
> #include <ctype.h>
> #include <resolv.h>
> #include <stdio.h>
140c142
< 	int i;
---
> 	size_t i;
227c229
< 				if (tarindex >= targsize)
---
> 				if ((size_t)tarindex >= targsize)
235c237
< 				if (tarindex + 1 >= targsize)
---
> 				if ((size_t)(tarindex + 1) >= targsize)
246c248
< 				if (tarindex + 1 >= targsize)
---
> 				if ((size_t)(tarindex + 1) >= targsize)
257c259
< 				if (tarindex >= targsize)
---
> 				if ((size_t)tarindex >= targsize)
diff --recurs m:\bind495p1/res/gethnamaddr.c m:\bind/res/gethnamaddr.c
62,66c62,68
< #include <sys/param.h>
< #include <sys/socket.h>
< #include <netinet/in.h>
< #include <arpa/inet.h>
< #include <arpa/nameser.h>
---
> #ifndef WINNT
> #include <sys/param.h>
> #include <sys/socket.h>
> #include <netinet/in.h>
> #endif
> #include <arpa/inet.h>
> #include <arpa/nameser.h>
68,71c70,73
< #include <stdio.h>
< #include <netdb.h>
< #include <resolv.h>
< #include <ctype.h>
---
> #include <stdio.h>
> #include <netdb.h>
> #include <resolv.h>
> #include <ctype.h>	 
72a75
> #ifndef WINNT
73a77
> #endif
97a102,107
> #ifdef WINNT
> extern char *pathhosts;
> extern int res_paths_initialized;
> extern init_res_paths();
> #endif
> 
112a123
> int inet_pton();
135a147
> #ifndef WINNT
136a149
> #endif
147a161
> #ifndef WINNT
148a163,166
> #else
> 		WSASetLastError(save);
> 		SetLastError(save);
> #endif
192,193c210,211
< 	ancount = ntohs(hp->ancount);
< 	qdcount = ntohs(hp->qdcount);
---
> 	ancount = ntohs( (u_short) hp->ancount);
> 	qdcount = ntohs( (u_short) hp->qdcount);
197a216
> #ifndef WINNT
198a218,220
> #else
> 		WSASetLastError(NO_RECOVERY);
> #endif
202a225
> #ifndef WINNT
203a227,229
> #else
> 		WSASetLastError(NO_RECOVERY);
> #endif
302c328
< 				       AskedForGot, qname, bp);
---
> 				       (char *) AskedForGot, qname, bp);
333c359,363
< 			h_errno = NETDB_SUCCESS;
---
> #ifndef WINNT
>    		       h_errno = NETDB_SUCCESS;
> #else
>  		       WSASetLastError(NETDB_SUCCESS);
> #endif
340c370
< 				       AskedForGot, host.h_name, bp);
---
> 				       (char *)AskedForGot, host.h_name, bp);
405c435,439
< 		h_errno = NETDB_SUCCESS;
---
> #ifndef WINNT
>    		       h_errno = NETDB_SUCCESS;
> #else
>  		       WSASetLastError(NETDB_SUCCESS);
> #endif
408a443
> #ifndef WINNT
409a445,447
> #else
>         WSASetLastError(TRY_AGAIN);
> #endif
414,431d451
< gethostbyname(name)
< 	const char *name;
< {
< 	struct hostent *hp;
< 
< 	if ((_res.options & RES_INIT) == 0 && res_init() == -1) {
< 		h_errno = NETDB_INTERNAL;
< 		return (NULL);
< 	}
< 	if (_res.options & RES_USE_INET6) {
< 		hp = gethostbyname2(name, AF_INET6);
< 		if (hp)
< 			return (hp);
< 	}
< 	return (gethostbyname2(name, AF_INET));
< }
< 
< struct hostent *
442a463
> #ifndef WINNT
443a465,467
> #else
> 		WSASetLastError(NETDB_INTERNAL);
> #endif
456a481
> #ifndef WINNT
458a484,487
> #else
> 		WSASetLastError(NETDB_INTERNAL);
> 		SetLastError(WSAEAFNOSUPPORT);
> #endif
487a517
> #ifndef WINNT
488a519,521
> #else
>                     WSASetLastError(HOST_NOT_FOUND);
> #endif
503c536,540
< 				h_errno = NETDB_SUCCESS;
---
> #ifndef WINNT
>    		       h_errno = NETDB_SUCCESS;
> #else
>  		       WSASetLastError(NETDB_SUCCESS);
> #endif
519a557
> #ifndef WINNT
520a559,561
> #else
>                     WSASetLastError(HOST_NOT_FOUND);
> #endif
533c574,578
< 				h_errno = NETDB_SUCCESS;
---
> #ifndef WINNT
>    		       h_errno = NETDB_SUCCESS;
> #else
>  		       WSASetLastError(NETDB_SUCCESS);
> #endif
549a595,621
> #ifndef WINNT
> gethostbyname(name)
> #else
> gethostbyname_nt(name)
> #endif
> 	const char *name;
> {
> 	struct hostent *hp;
> 
> 	if ((_res.options & RES_INIT) == 0 && res_init() == -1) {
> #ifndef WINNT
> 		h_errno = NETDB_INTERNAL;
> #else
> 		WSASetLastError(NETDB_INTERNAL);
> #endif
> 		return (NULL);
> 	}
> 	if (_res.options & RES_USE_INET6) {
> 		hp = gethostbyname2(name, AF_INET6);
> 		if (hp)
> 			return (hp);
> 	}
> 	return (gethostbyname2(name, AF_INET));
> }
> 
> struct hostent *
> #ifndef WINNT
550a623,625
> #else
> gethostbyaddr_nt(addr, len, af)
> #endif
567c642
< 	extern struct hostent *_gethtbyaddr();
---
> extern struct hostent *_gethtbyaddr();
569a645
> #ifndef WINNT
571c647,650
< 		return (NULL);
---
> #else
> 		WSASetLastError(NETDB_INTERNAL);
> #endif
> 		return (0);
589a669
> #ifndef WINNT
592c672,676
< 		return (NULL);
---
> #else
>  		SetLastError(WSAEAFNOSUPPORT);
> 		WSASetLastError(NETDB_INTERNAL);
> #endif
> 		return (0);
594a679
> #ifndef WINNT
597c682,686
< 		return (NULL);
---
> #else
>  		SetLastError(WSAEINVAL);
> 		WSASetLastError(NETDB_INTERNAL);
> #endif
> 		return (0);
624c713
< 		return (NULL);
---
> 		return (0);
627c716
< 		return (NULL);	/* h_errno was set by getanswer() */
---
> 		return (0);	/* h_errno was set by getanswer() */
639c728
< 	    if (!(rhp = gethostbyname(hname2))) {
---
> 	    if (!(rhp = gethostbyname_nt(hname2))) {
644c733,737
< 		h_errno = HOST_NOT_FOUND;
---
> #ifndef WINNT
> 					h_errno = HOST_NOT_FOUND;
> #else
>                     WSASetLastError(HOST_NOT_FOUND);
> #endif
655c748,752
< 		h_errno = HOST_NOT_FOUND;
---
> #ifndef WINNT
> 					h_errno = HOST_NOT_FOUND;
> #else
>                     WSASetLastError(HOST_NOT_FOUND);
> #endif
670c767,771
< 	h_errno = NETDB_SUCCESS;
---
> #ifndef WINNT
>    		       h_errno = NETDB_SUCCESS;
> #else
>  		       WSASetLastError(NETDB_SUCCESS);
> #endif
677a779,780
>     
> #ifndef WINNT
679a783,790
> #else
>         if (!res_paths_initialized)
>           init_res_paths();
> 
> 	if (!hostf)
> 		hostf = fopen(pathhosts, "r" );
> #endif
> 
701c812,821
< 	if (!hostf && !(hostf = fopen(_PATH_HOSTS, "r" ))) {
---
> #ifndef WINNT
>  	if (!hostf && !(hostf = fopen(_PATH_HOSTS, "r" ))) {
> #else
>         if (!res_paths_initialized)
>            init_res_paths();
>  
>  	if (!hostf && !(hostf = fopen(pathhosts, "r" ))) {
> #endif
>  
> #ifndef WINNT
702a823,825
> #else
> 		WSASetLastError(NETDB_INTERNAL);
> #endif
707c830,834
< 		h_errno = HOST_NOT_FOUND;
---
> #ifndef WINNT
> 					h_errno = HOST_NOT_FOUND;
> #else
>                     WSASetLastError(HOST_NOT_FOUND);
> #endif
762c889,893
< 	h_errno = NETDB_SUCCESS;
---
> #ifndef WINNT
>    		       h_errno = NETDB_SUCCESS;
> #else
>  		       WSASetLastError(NETDB_SUCCESS);
> #endif
diff --recurs m:\bind495p1/res/getnetbyaddr.c m:\bind/res/getnetbyaddr.c
39a40,42
> #ifdef WINNT
> #include "../conf/portability.h"
> #endif
diff --recurs m:\bind495p1/res/getnetbyname.c m:\bind/res/getnetbyname.c
41a42,44
> #ifdef WINNT
> #include "../conf/portability.h"
> #endif
diff --recurs m:\bind495p1/res/getnetent.c m:\bind/res/getnetent.c
50,54c50,56
< #include <sys/param.h>
< #include <sys/socket.h>
< #include <netinet/in.h>
< #include <arpa/inet.h>
< #include <arpa/nameser.h>
---
> #ifndef WINNT
> #include <sys/param.h>
> #include <sys/socket.h>
> #include <netinet/in.h>
> #endif
> #include <arpa/inet.h>
> #include <arpa/nameser.h>
56,59c58,67
< #include <stdio.h>
< #include <resolv.h>
< #include <netdb.h>
< #include <string.h>
---
> #include <stdio.h>
> #include <resolv.h>
> #include <netdb.h>
> #include <string.h>
> #ifdef WINNT
> #include "../conf/portability.h"
> extern char *pathnetworks;
> extern int res_paths_initialized;
> extern init_res_paths();
> #endif
64a73,74
> 
> 
97a108
> #ifndef WINNT
99a111,117
> #else
>        if (!res_paths_initialized)
>          init_res_paths();
> 
> 	if (netf == NULL)
> 		netf = fopen(pathnetworks, "r" );
> #endif
121a140
> #ifndef WINNT
122a142,148
> #else
>        if (!res_paths_initialized)
>          init_res_paths();
> 
> 	if (netf == NULL && (netf = fopen(pathnetworks, "r" )) == NULL)
> #endif
> 
diff --recurs m:\bind495p1/res/getnetnamadr.c m:\bind/res/getnetnamadr.c
48,52c48,54
< #include <sys/param.h>
< #include <sys/socket.h>
< #include <netinet/in.h>
< #include <arpa/inet.h>
< #include <arpa/nameser.h>
---
> #ifndef WINNT
> #include <sys/param.h>
> #include <sys/socket.h>
> #include <netinet/in.h>
> #endif
> #include <arpa/inet.h>
> #include <arpa/nameser.h>
54,57c56,59
< #include <stdio.h>
< #include <netdb.h>
< #include <resolv.h>
< #include <ctype.h>
---
> #include <stdio.h>
> #include <netdb.h>
> #include <resolv.h>
> #include <ctype.h>
60a63
> #ifndef WINNT
61a65,67
> #else
> #include "../conf/portability.h"
> #endif
67c73
< struct netent *_getnetbyaddr __P((long net, int type));
---
> struct netent *_getnetbyaddr __P((u_long net, int type));
123,124c129,130
< 	ancount = ntohs(hp->ancount); /* #/records in the answer section */
< 	qdcount = ntohs(hp->qdcount); /* #/entries in the question section */
---
> 	ancount = ntohs( (u_short) hp->ancount); /* #/records in the answer section */
> 	qdcount = ntohs( (u_short) hp->qdcount); /* #/entries in the question section */
129a136
> #ifndef WINNT
130a138,140
> #else
> 			WSASetLastError(HOST_NOT_FOUND);
> #endif
131a142
> #ifndef WINNT
132a144,146
> #else
> 			WSASetLastError(HOST_NOT_FOUND);
> #endif
199a214
> #ifndef WINNT
200a216,218
> #else
> 	WSASetLastError(TRY_AGAIN);
> #endif
269a288
> #ifndef WINNT
270a290,292
> #else
> 		WSASetLastError(NETDB_INTERNAL);
> #endif
diff --recurs m:\bind495p1/res/herror.c m:\bind/res/herror.c
62,70c62,72
< #include <sys/param.h>
< #include <sys/uio.h>
< #include <netdb.h>
< #if defined(BSD) && (BSD >= 199103)
< # include <unistd.h>
< # include <string.h>
< #else
< # include "../conf/portability.h"
< #endif
---
> #ifndef WINNT
> #include <sys/param.h>
> #include <sys/uio.h>
> #endif
> #include <netdb.h>
> #if defined(BSD) && (BSD >= 199103)
> # include <unistd.h>
> # include <string.h>
> #else
> # include "../conf/portability.h"
> #endif
80a83
> #ifndef WINNT
81a85
> #endif
92a97,99
> #ifdef WINNT
> 	char err[50];
> #endif
101a109
> #ifndef WINNT
102a111,115
> #else
> 	/* XXX - map the error number to the corresponding message here */
> 	sprintf(err, "%d", h_errno);
> 	v->iov_base = err;
> #endif
109a123
> #ifndef WINNT
119a134
> #endif
diff --recurs m:\bind495p1/res/hostnamelen.c m:\bind/res/hostnamelen.c
60,62c60,65
< #include <sys/param.h>
< #include <sys/types.h>
< #include <netinet/in.h>
---
> #ifndef WINNT
> #include <sys/param.h>
> #include <sys/types.h>
> #include <netinet/in.h>
> #endif
> 
diff --recurs m:\bind495p1/res/inet_addr.c m:\bind/res/inet_addr.c
62,66c62,68
< #include <sys/param.h>
< #include <netinet/in.h>
< #include <arpa/inet.h>
< #include <ctype.h>
< #include "../conf/portability.h"
---
> #ifndef WINNT
> #include <sys/param.h>
> #include <netinet/in.h>
> #endif
> #include <arpa/inet.h>
> #include <ctype.h>
> #include "../conf/portability.h"
68c70,73
< /* these are compatibility routines, not needed on recent BSD releases */
---
> #ifndef NEED_INETADDR
> int __inet_addr_unneeded__;
> #else
> /* these are compatibility routines, not needed on recent BSD releases */
70,71c75,76
< /*
<  * Ascii internet address interpretation routine.
---
> /*
>  * Ascii internet address interpretation routine.
83a89
> #endif  /* NEED_INETADDR */
diff --recurs m:\bind495p1/res/inet_net_ntop.c m:\bind/res/inet_net_ntop.c
23,25c23,27
< #include <sys/socket.h>
< #include <netinet/in.h>
< #include <arpa/inet.h>
---
> #ifndef WINNT
> #include <sys/socket.h>
> #include <netinet/in.h>
> #endif
> #include <arpa/inet.h>
27,30c29,32
< #include <errno.h>
< #include <stdio.h>
< #include <string.h>
< #include <stdlib.h>
---
> #include <errno.h>
> #include <stdio.h>
> #include <string.h>
> #include <stdlib.h>
32c34
< #ifdef SPRINTF_CHAR
---
> #ifdef SPRINTF_CHAR
63,64c65,75
< 		errno = EAFNOSUPPORT;
< 		return (NULL);
---
> 
> #ifndef WINNT
> 	errno = EAFNOSUPPORT;
>      return (NULL);
> #else
> 
> 	WSASetLastError(WSAEAFNOSUPPORT);
> 	SetLastError(WSAEAFNOSUPPORT);
>      return (NULL);
> #endif
> 
137,138c148,158
< 	errno = EMSGSIZE;
< 	return (NULL);
---
> 
>  #ifndef WINNT
>      errno = EMSGSIZE;
>      return (NULL);
> #else
>      WSASetLastError(WSAEMSGSIZE);
>      SetLastError(WSAEMSGSIZE);
>      return (NULL);
> #endif
> 
> 
diff --recurs m:\bind495p1/res/inet_net_pton.c m:\bind/res/inet_net_pton.c
23,25c23,27
< #include <sys/socket.h>
< #include <netinet/in.h>
< #include <arpa/inet.h>
---
> #ifndef WINNT
> #include <sys/socket.h>
> #include <netinet/in.h>
> #endif
> #include <arpa/inet.h>
27,32c29,34
< #include <assert.h>
< #include <ctype.h>
< #include <errno.h>
< #include <stdio.h>
< #include <string.h>
< #include <stdlib.h>
---
> #include <assert.h>
> #include <ctype.h>
> #include <errno.h>
> #include <stdio.h>
> #include <string.h>
> #include <stdlib.h>
67,68c69,78
< 		errno = EAFNOSUPPORT;
< 		return (-1);
---
> #ifndef WINNT
> 	errno = EAFNOSUPPORT;
>      return (-1);
> #else
> 
> 	WSASetLastError(WSAEAFNOSUPPORT);
> 	SetLastError(WSAEAFNOSUPPORT);
>      return (-1);
> #endif
> 		
201,202c211,218
< 	errno = ENOENT;
< 	return (-1);
---
> 
> #ifndef WINNT
> 	errno = ENOENT
>      return (-1);
> #else
>      SetLastError(ENOENT);
>      return (-1);
> #endif
204a221,222
> 
> #ifndef WINNT
206c224,230
< 	return (-1);
---
>      return (-1);
> #else
>      SetLastError(WSAEMSGSIZE);
>      WSASetLastError(WSAEMSGSIZE);
>      return (-1);
> #endif
> 
diff --recurs m:\bind495p1/res/inet_neta.c m:\bind/res/inet_neta.c
23,25c23,27
< #include <sys/socket.h>
< #include <netinet/in.h>
< #include <arpa/inet.h>
---
> #ifndef WINNT
> #include <sys/socket.h>
> #include <netinet/in.h>
> #endif
> #include <arpa/inet.h>
27,28c29,30
< #include <errno.h>
< #include <stdio.h>
---
> #include <errno.h>
> #include <stdio.h>
30,32c32,34
< #ifdef SPRINTF_CHAR
< # define SPRINTF(x) strlen(sprintf/**/x)
< #else
---
> #ifdef SPRINTF_CHAR
> # define SPRINTF(x) strlen(sprintf/**/x)
> #else
57c59
< 		u_char b = (src & 0xff000000) >> 24;
---
> 		u_char b = (u_char)((src & 0xff000000) >> 24);
80,81c82,91
< 	errno = EMSGSIZE;
< 	return (NULL);
---
> 
>  #ifndef WINNT
>      errno = EMSGSIZE;
>      return (NULL);
> #else
>      WSASetLastError(WSAEMSGSIZE);
>      SetLastError(WSAEMSGSIZE);
>      return (NULL);
> #endif
> 
diff --recurs m:\bind495p1/res/inet_ntop.c m:\bind/res/inet_ntop.c
21,30c21,32
< #include <sys/param.h>
< #include <sys/types.h>
< #include <sys/socket.h>
< #include <netinet/in.h>
< #include <arpa/inet.h>
< #include <arpa/nameser.h>
< #include <string.h>
< #include <errno.h>
< #include <stdio.h>
< #include "../conf/portability.h"
---
> #ifndef WINNT
> #include <sys/param.h>
> #include <sys/types.h>
> #include <sys/socket.h>
> #include <netinet/in.h>
> #endif
> #include <arpa/inet.h>
> #include <arpa/nameser.h>
> #include <string.h>
> #include <errno.h>
> #include <stdio.h>
> #include "../conf/portability.h"
66a69
> #ifndef WINNT
67a71,74
> #else
> 		SetLastError(WSAEAFNOSUPPORT);
> 		WSASetLastError(WSAEAFNOSUPPORT);
> #endif
93c100,101
< 	if (SPRINTF((tmp, fmt, src[0], src[1], src[2], src[3])) > size) {
---
> 	if (SPRINTF((tmp, fmt, src[0], src[1], src[2], src[3])) > (int)size) {
> #ifndef WINNT
94a103,106
> #else
> 		SetLastError(ENOSPC);
> 		WSASetLastError(ENOSPC);
> #endif
189a202
> #ifndef WINNT
190a204,207
> #else
> 		SetLastError(ENOSPC);
> 		WSASetLastError(ENOSPC);
> #endif
diff --recurs m:\bind495p1/res/inet_pton.c m:\bind/res/inet_pton.c
21,29c21,31
< #include <sys/param.h>
< #include <sys/types.h>
< #include <sys/socket.h>
< #include <netinet/in.h>
< #include <arpa/inet.h>
< #include <arpa/nameser.h>
< #include <string.h>
< #include <errno.h>
< #include "../conf/portability.h"
---
> #ifndef WINNT
> #include <sys/param.h>
> #include <sys/types.h>
> #include <sys/socket.h>
> #include <netinet/in.h>
> #endif
> #include <arpa/inet.h>
> #include <arpa/nameser.h>
> #include <string.h>
> #include <errno.h>
> #include "../conf/portability.h"
61a64
> #ifndef WINNT
62a66,68
> #else
>         SetLastError(WSAEAFNOSUPPORT);
> #endif
diff --recurs m:\bind495p1/res/nsap_addr.c m:\bind/res/nsap_addr.c
22,28c22,30
< #include <sys/types.h>
< #include <sys/param.h>
< #include <sys/socket.h>
< #include <netinet/in.h>
< #include <arpa/nameser.h>
< #include <ctype.h>
< #include <resolv.h>
---
> #ifndef WINNT
> #include <sys/types.h>
> #include <sys/param.h>
> #include <sys/socket.h>
> #include <netinet/in.h>
> #endif
> #include <arpa/nameser.h>
> #include <ctype.h>
> #include <resolv.h>
30c32
< #include "../conf/portability.h"
---
> #include "../conf/portability.h"
52c54
< 	int maxlen;
---
> 	u_int maxlen;
diff --recurs m:\bind495p1/res/res_comp.c m:\bind/res/res_comp.c
62,63c62,65
< #include <sys/param.h>
< #include <netinet/in.h>
---
> #ifndef WINNT
> #include <sys/param.h>
> #include <netinet/in.h>
> #endif
diff --recurs m:\bind495p1/res/res_data.c m:\bind/res/res_data.c
61,64c61,66
< #include <sys/param.h>
< #include <sys/socket.h>
< #include <sys/time.h>
< #include <netinet/in.h>
---
> #ifndef WINNT
> #include <sys/param.h>
> #include <sys/socket.h>
> #include <sys/time.h>
> #include <netinet/in.h>
> #endif /* WINNT */
diff --recurs m:\bind495p1/res/res_debug.c m:\bind/res/res_debug.c
83,88c83,90
< #include <sys/param.h>
< #include <sys/types.h>
< #include <sys/socket.h>
< #include <netinet/in.h>
< #include <arpa/inet.h>
< #include <arpa/nameser.h>
---
> #ifndef WINNT
> #include <sys/param.h>
> #include <sys/types.h>
> #include <sys/socket.h>
> #include <netinet/in.h>
> #endif
> #include <arpa/inet.h>
> #include <arpa/nameser.h>
90,92c92,94
< #include <ctype.h>
< #include <netdb.h>
< #include <resolv.h>
---
> #include <ctype.h>
> #include <netdb.h>
> #include <resolv.h>
108a111,112
> char * inet_nsap_ntoa();
> const char * inet_ntop();
206c210
< 	if (n = ntohs(cnt)) {
---
> 	if (n = ntohs( (u_short) cnt)) {
303c307
< 			ntohs(hp->id));
---
> 			ntohs( (u_short) hp->id));
328,331c332,335
< 		fprintf(file, "; Ques: %d", ntohs(hp->qdcount));
< 		fprintf(file, ", Ans: %d", ntohs(hp->ancount));
< 		fprintf(file, ", Auth: %d", ntohs(hp->nscount));
< 		fprintf(file, ", Addit: %d", ntohs(hp->arcount));
---
> 		fprintf(file, "; Ques: %d", ntohs( (u_short) hp->qdcount));
> 		fprintf(file, ", Ans: %d", ntohs( (u_short) hp->ancount));
> 		fprintf(file, ", Auth: %d", ntohs( (u_short) hp->nscount));
> 		fprintf(file, ", Addit: %d", ntohs( (u_short) hp->arcount));
340c344
< 	if (n = ntohs(hp->qdcount)) {
---
> 	if (n = ntohs( (u_short) hp->qdcount)) {
498a503
> #ifndef WINNT
499a505,507
> #else
> 		WSASetLastError(NETDB_INTERNAL);
> #endif
808c816
< 		if (n != tmpttl)
---
> 		if ((u_int32_t)n != tmpttl)
1421c1429
< 	if (templ < referencealt) { /* below WGS 84 spheroid */
---
> 	if (templ < (u_int32_t)referencealt) { /* below WGS 84 spheroid */
diff --recurs m:\bind495p1/res/res_init.c m:\bind/res/res_init.c
62,71c62,73
< #include <sys/param.h>
< #include <sys/socket.h>
< #include <sys/time.h>
< #include <netinet/in.h>
< #include <arpa/inet.h>
< #include <arpa/nameser.h>
< 
< #include <stdio.h>
< #include <ctype.h>
< #include <resolv.h>
---
> #ifndef WINNT
> #include <sys/param.h>
> #include <sys/socket.h>
> #include <sys/time.h>
> #include <netinet/in.h>
> #endif /* WINNT */
> #include <arpa/inet.h>
> #include <arpa/nameser.h>
> 
> #include <stdio.h>
> #include <ctype.h>
> #include <resolv.h>
77c79
< # include "../conf/portability.h"
---
> #include "../conf/portability.h"
79a82,89
> #ifdef WINNT
> #include <netdb.h>
> #include "../conf/portability.h"
> extern char *pathresconf;
> extern int res_paths_initialized;
> extern init_res_paths();
> #endif
> 
173a184,195
> 
> #ifdef WINNT
>  	WORD wVersionRequested;
> 	WSADATA wsaData;
> 
> 	wVersionRequested = MAKEWORD(1,1);
> 	if (WSAStartup(wVersionRequested, &wsaData)) {
> 		syslog(LOG_ERR, "No useable winsock.dll: %m");
> 		return (-1);
> 	}
> #endif /* WINNT */
> 
259a282
> #ifndef WINNT
260a284,290
> #else
>        if (!res_paths_initialized)
>          init_res_paths();
> 
> 	if ((fp = fopen(pathresconf, "r")) != NULL) {
> 
> #endif
diff --recurs m:\bind495p1/res/res_mkquery.c m:\bind/res/res_mkquery.c
62,64c62,66
< #include <sys/param.h>
< #include <netinet/in.h>
< #include <arpa/nameser.h>
---
> #ifndef WINNT
> #include <sys/param.h>
> #include <netinet/in.h>
> #endif
> #include <arpa/nameser.h>
66,71c68,73
< #include <stdio.h>
< #include <netdb.h>
< #include <resolv.h>
< #if defined(BSD) && (BSD >= 199103)
< # include <string.h>
< #else
---
> #include <stdio.h>
> #include <netdb.h>
> #include <resolv.h>
> #if defined(BSD) && (BSD >= 199103)
> # include <string.h>
> #else
99a102
> #ifndef WINNT
100a104,106
> #else
> 		WSASetLastError(NETDB_INTERNAL);
> #endif
Only in m:\bind/res: res_nt_misc.c
diff --recurs m:\bind495p1/res/res_query.c m:\bind/res/res_query.c
62,65c62,67
< #include <sys/param.h>
< #include <netinet/in.h>
< #include <arpa/inet.h>
< #include <arpa/nameser.h>
---
> #ifndef WINNT
> #include <sys/param.h>
> #include <netinet/in.h>
> #endif
> #include <arpa/inet.h>
> #include <arpa/nameser.h>
67,71c69,73
< #include <stdio.h>
< #include <netdb.h>
< #include <resolv.h>
< #include <ctype.h>
< #include <errno.h>
---
> #include <stdio.h>
> #include <netdb.h>
> #include <resolv.h>
> #include <ctype.h>
> #include <errno.h>
89a92
> #ifndef WINNT
90a94
> #endif
115a120
> #ifndef WINNT
116a122,124
> #else
> 		WSASetLastError(NETDB_INTERNAL);
> #endif
130a139
> #ifndef WINNT
131a141,143
> #else
> 		WSASetLastError(NO_RECOVERY);
> #endif
139a152
> #ifndef WINNT
140a154,156
> #else
> 		WSASetLastError(TRY_AGAIN);
> #endif
144c160
< 	if (hp->rcode != NOERROR || ntohs(hp->ancount) == 0) {
---
> 	if (hp->rcode != NOERROR || ntohs( (u_short) hp->ancount) == 0) {
148c164
< 			    ntohs(hp->ancount));
---
> 			    ntohs( (u_short) hp->ancount));
151a168
> #ifndef WINNT
152a170,172
> #else
> 			WSASetLastError(HOST_NOT_FOUND);
> #endif
154a175
> #ifndef WINNT
155a177,179
> #else
> 			WSASetLastError(TRY_AGAIN);
> #endif
157a182
> #ifndef WINNT
158a184,186
> #else
> 			WSASetLastError(NO_DATA);
> #endif
163a192
> #ifndef WINNT
164a194,196
> #else
> 			WSASetLastError(NO_RECOVERY);
> #endif
191a224
> #ifndef WINNT
192a226,228
> #else
> 		WSASetLastError(NETDB_INTERNAL);
> #endif
194a231
> #ifndef WINNT
196a234,237
> #else
> 	WSASetLastError(HOST_NOT_FOUND);
> 	SetLastError(0);
> #endif
218a260
> #ifndef WINNT
219a262,264
> #else
>                 saved_herrno = WSAGetLastError();
> #endif
255a301
> #ifndef WINNT
256a303,305
> #else
> 				WSASetLastError(TRY_AGAIN);
> #endif
303a353
> #ifndef WINNT
309a360,367
> #else
> 	if (saved_herrno != -1)
> 		WSASetLastError(saved_herrno);
> 	else if (got_nodata)
> 		WSASetLastError(NO_DATA);
> 	else if (got_servfail)
> 		WSASetLastError(TRY_AGAIN);
> #endif
328a387
> #ifndef WINNT
329a389,391
> #else
> 		WSASetLastError(NETDB_INTERNAL);
> #endif
diff --recurs m:\bind495p1/res/res_send.c m:\bind/res/res_send.c
73,79c73,81
< #include <sys/param.h>
< #include <sys/time.h>
< #include <sys/socket.h>
< #include <sys/uio.h>
< #include <netinet/in.h>
< #include <arpa/nameser.h>
< #include <arpa/inet.h>
---
> #ifndef WINNT
> #include <sys/param.h>
> #include <sys/time.h>
> #include <sys/socket.h>
> #include <sys/uio.h>
> #include <netinet/in.h>
> #endif
> #include <arpa/nameser.h>
> #include <arpa/inet.h>
81,82c83,84
< #include <stdio.h>
< #include <netdb.h>
---
> #include <stdio.h>
> #include <netdb.h>
96a99
> #ifndef WINNT
97a101,104
> #else
> static SOCKET s = INVALID_SOCKET;
> typedef char * caddr_t;
> #endif
144a152
> #ifndef WINNT
145a154,157
> #else
> 	WSASetLastError(save);
> 	SetLastError(save);
> #endif
158a171
> #ifndef WINNT
159a173,175
> #else
>  	SetLastError(save);
> #endif
231c247
< 	int qdcount = ntohs(((HEADER*)buf)->qdcount);
---
> 	int qdcount = ntohs( (u_short) ((HEADER*)buf)->qdcount);
268c284
< 	int qdcount = ntohs(((HEADER*)buf1)->qdcount);
---
> 	int qdcount = ntohs( (u_short) ((HEADER*)buf1)->qdcount);
270c286
< 	if (qdcount != ntohs(((HEADER*)buf2)->qdcount))
---
> 	if (qdcount != ntohs( (u_short) ((HEADER*)buf2)->qdcount))
299a316,319
> #ifdef WINNT
> 	int optionValue = SO_SYNCHRONOUS_NONALERT;
> 	DWORD BytesRead;
> #endif
364c384,393
< 
---
> #ifdef WINNT
> 			/* set up things so that subsequent socket()
> 			   calls will open blocking sockets */
> 			if (setsockopt(INVALID_SOCKET, SOL_SOCKET,
> 				  	SO_OPENTYPE, (char *)&optionValue,
> 					sizeof(optionValue)) != NO_ERROR) {
> 						Perror(stderr, "cannot open nonoverlapped socket", errno);
> 						return (-1);
> 			}
> #endif
375a405
> #ifndef WINNT
376a407,409
> #else
> 				if (s == INVALID_SOCKET) {
> #endif
380a414
> #ifndef WINNT
381a416,418
> #else
> 				SetLastError(0);
> #endif
413a451
> #ifndef WINNT
414a453,457
> #else
> 			while (ReadFile((HANDLE)s, (char *)cp, (DWORD)len,
> 				             &BytesRead, NULL) &&
> 				   (n = (int)BytesRead) > 0) {
> #endif
450a494
> #ifndef WINNT
451a496,500
> #else
> 					ReadFile((HANDLE)s, (char *)cp, (DWORD)len,
> 				             &BytesRead, NULL) &&
> 				    (n = (int)BytesRead) > 0) {
> #endif
473a523
> #ifndef WINNT
474a525,529
> #else
> 					if (ReadFile((HANDLE)s, (char *)junk, (DWORD)n,
> 				             &BytesRead, NULL) &&
> 				        (n = (int)BytesRead) > 0)
> #endif
503c558,562
< 			if ((s < 0) || vc) {
---
> #ifndef WINNT
>   			if ((s < 0) || vc) {
> #else
>  			if ((s == INVALID_SOCKET) || vc) {
> #endif
506a566
> #ifndef WINNT
507a568,570
> #else
>  				if (s == INVALID_SOCKET) {
> #endif
531a595
> #ifndef WINNT
556a621
> #endif /* WINNT */
573a639
> #ifndef WINNT
574a641,643
> #else
> 					if (s1 == INVALID_SOCKET)
> #endif
581a651
> #ifndef WINNT
582a653,655
> #else
> 					SetLastError(0);
> #endif
592a666
> #ifndef WINNT
593a668
> #endif
609a685
> #ifndef WINNT
610a687,689
> #else
> 				if (errno == WSAEINTR)
> #endif
625a705
> #ifndef WINNT
626a707,710
> #else
>  			WSASetLastError(0);
>  			SetLastError(0);
> #endif
630a715
> #ifndef WINNT
631a717,719
> #else
>  				Perror(stderr, "recvfrom", WSAGetLastError());
> #endif
756c844,845
< 		if (!gotsomewhere)
---
> 		if (!gotsomewhere) {
> #ifndef WINNT
758c847,852
< 		else
---
> #else
>  			WSASetLastError(ECONNREFUSED);
>   			SetLastError(ECONNREFUSED);
> #endif
> 		} else {
> #ifndef WINNT
760c854,859
< 	else
---
> #else
>  			WSASetLastError(ETIMEDOUT);
>  			SetLastError(ETIMEDOUT);
> #endif
> 		} else {
> #ifndef WINNT
761a861,864
> #else
>  		WSASetLastError(terrno);
>  		SetLastError(terrno);
> #endif
762a866
>  }
776a881
> #ifndef WINNT
777a883,885
> #else
> 		s = INVALID_SOCKET;
> #endif
Only in m:\bind/res: resolv.mak
Only in m:\bind/res: resolv.mdp
Only in m:\bind/res: resolv.ncb
Only in m:\bind/res: resolv.vcp
Only in m:\bind/res: resolv_vc22.mak
Only in m:\bind/res: resolv_vc22.vcp
diff --recurs m:\bind495p1/res/sethostent.c m:\bind/res/sethostent.c
40,41c40,43
< #include <sys/param.h>
< #include <netinet/in.h>
---
> #ifndef WINNT
> #include <sys/param.h>
> #include <netinet/in.h>
> #endif
Only in m:\bind/res: strip.bat
Only in m:\bind: resolv.mak
diff --recurs m:\bind495p1/shres/irix/Makefile m:\bind/shres/irix/Makefile
1c1
< # $Id: Makefile,v 8.2 1996/09/22 00:13:32 vixie Exp $
---
> # $Id: Makefile,v 1.4 1996/05/22 04:56:31 vixie Exp $
3c3
< CFLAGS=	-O -I../${INCL} -I../${COMPINCL} ${DEFS} ${LOCDEFS} 
---
> CFLAGS=	-O -I../${INCL} -I../${COMPINCL} ${DEFS} ${LOCDEFS} 
5c5
< LOCDEFS= -DUSE_OPTIONS_H
---
> LOCDEFS= -DUSE_OPTIONS_H
7,10c7,10
< OBJS=	base64.o herror.o res_debug.o res_data.o \
< 	res_comp.o res_init.o res_mkquery.o res_query.o res_send.o \
< 	getnetbyaddr.o getnetbyname.o getnetent.o getnetnamadr.o \
< 	gethnamaddr.o sethostent.o nsap_addr.o inet_pton.o inet_ntop.o \
---
> OBJS=	herror.o res_debug.o res_data.o \
> 	res_comp.o res_init.o res_mkquery.o res_query.o res_send.o \
> 	getnetbyaddr.o getnetbyname.o getnetent.o getnetnamadr.o \
> 	gethnamaddr.o sethostent.o nsap_addr.o inet_pton.o inet_ntop.o \
38d37
< base64.o: ../../res/base64.c
Only in m:\bind/shres/netbsd: .cvsignore
Only in m:\bind/shres/netbsd: Letter
Only in m:\bind: t6b-rel
Only in m:\bind/tools: MYDLL.DEF
Only in m:\bind/tools: bdlltest.c
Only in m:\bind/tools: bdltest.mak
Only in m:\bind/tools: bdltest.vcp
Only in m:\bind/tools: binddll.def
Only in m:\bind/tools: binddll.mak
Only in m:\bind/tools: binddll.mdp
Only in m:\bind/tools: binddll.ncb
Only in m:\bind/tools: binddll.vcp
Only in m:\bind/tools: bindll.c
Only in m:\bind/tools: dig.c.sav
Only in m:\bind/tools: dig_nt.c
Only in m:\bind/tools: instsrv.c
Only in m:\bind/tools: instsrv.mak
Only in m:\bind/tools: instsrv.mdp
Only in m:\bind/tools: instsrv.ncb
Only in m:\bind/tools: instsrv.vcp
Only in m:\bind/tools/nslookup: BOG.WRI
Only in m:\bind/tools/nslookup: WinRel
Only in m:\bind/tools/nslookup: addr
diff --recurs m:\bind495p1/tools/nslookup/commands.l m:\bind/tools/nslookup/commands.l
210,219c210,219
< ^{WS}*\n				{
< 					    return(1);
< 					}
< ^.*\n					{
< 					    printf("Unrecognized command: %s",
< 							yytext);
< 					    return(1);
< 					}
< \n					{ ; }
< %%
---
> ^{WS}*\n   				{
> 					    return(1);
> 					}
> ^.*\n					{
> 					    printf("Unrecognized command: %s",
> 							yytext);
> 					    return(1);
> 					}
> \n					{ ; }
> %%                                      
diff --recurs m:\bind495p1/tools/nslookup/debug.c m:\bind/tools/nslookup/debug.c
73,82c73,84
< #include <sys/param.h>
< #include <sys/socket.h>
< #include <netinet/in.h>
< #include <arpa/nameser.h>
< #include <arpa/inet.h>
< #include <resolv.h>
< #include <netdb.h>
< #include <stdio.h>
< #include "res.h"
< #include "../../conf/portability.h"
---
> #ifndef WINNT
> #include <sys/param.h>
> #include <sys/socket.h>
> #include <netinet/in.h>
> #endif
> #include <arpa/nameser.h>
> #include <arpa/inet.h>
> #include <resolv.h>
> #include <netdb.h>
> #include <stdio.h>
> #include "res.h"
> #include "../../conf/portability.h"
88a91,98
> char * inet_nsap_ntoa();
> const char * inet_ntop();
> 
> /*
>  *  Forward references
>  */
> 
> void Fprint_query(u_char *msg, u_char *eom, int printHeader, FILE *file);
89a100
> 
101a113
> void
106c118
< 	Fprint_query(msg, eom, printHeader,stdout);
---
> 	Fprint_query(msg, eom, printHeader, stdout);
108a121
> void
128c141
< 	    fprintf(file,", id = %d", ntohs(hp->id));
---
> 	    fprintf(file,", id = %d", ntohs( (u_short) hp->id));
150,154c163,167
< 	    fprintf(file,"\n\tquestions = %d", ntohs(hp->qdcount));
< 	    fprintf(file,",  answers = %d", ntohs(hp->ancount));
< 	    fprintf(file,",  authority records = %d", ntohs(hp->nscount));
< 	    fprintf(file,",  additional = %d\n\n", ntohs(hp->arcount));
< 	}
---
>   	    fprintf(file,"\n\tquestions = %d", ntohs( (u_short) hp->qdcount));
>   	    fprintf(file,",  answers = %d", ntohs( (u_short) hp->ancount));
>   	    fprintf(file,",  authority records = %d", ntohs( (u_short) hp->nscount));
>   	    fprintf(file,",  additional = %d\n\n", ntohs( (u_short) hp->arcount));
>   	}
159c172
< 	if (n = ntohs(hp->qdcount)) {
---
>  	if (n = ntohs( (u_short) hp->qdcount)) {
177c190
< 	if (n = ntohs(hp->ancount)) {
---
> 	if (n = ntohs( (u_short) hp->ancount)) {
194c207
< 	if (n = ntohs(hp->nscount)) {
---
> 	if (n = ntohs( (u_short) hp->nscount)) {
206c219
< 	if (n = ntohs(hp->arcount)) {
---
> 	if (n = ntohs( (u_short) hp->arcount)) {
610c623
< 					s = getservbyport((int)htons(n),
---
> 					s = getservbyport((int)htons( (u_short) n),
Only in m:\bind/tools/nslookup: dig.c
Only in m:\bind/tools/nslookup: dig.mak
Only in m:\bind/tools/nslookup: dig.mdp
Only in m:\bind/tools/nslookup: dig.ncb
Only in m:\bind/tools/nslookup: dig.vcp
Only in m:\bind/tools/nslookup: fix1
diff --recurs m:\bind495p1/tools/nslookup/getinfo.c m:\bind/tools/nslookup/getinfo.c
74,83c74,85
< #include <sys/param.h>
< #include <sys/socket.h>
< #include <netinet/in.h>
< #include <arpa/nameser.h>
< #include <arpa/inet.h>
< #include <resolv.h>
< #include <stdio.h>
< #include <ctype.h>
< #include "res.h"
< #include "../../conf/portability.h"
---
> #ifndef WINNT
> #include <sys/param.h>
> #include <sys/socket.h>
> #include <netinet/in.h>
> #endif 
> #include <arpa/nameser.h>
> #include <arpa/inet.h>
> #include <resolv.h>
> #include <stdio.h>
> #include <ctype.h>
> #include "res.h"
> #include "../../conf/portability.h"
115a118,126
> /*
>  * Forward references
>  */
> 
> int GetHostDomain(struct in_addr *nsAddrPtr, int queryClass, int queryType, char *name, 
>               char *domain, HostInfo *hostPtr, Boolean isServer);
> static int GetAnswer(struct in_addr	*nsAddrPtr, int queryType, char *msg, int msglen, Boolean iquery, 
>                      register HostInfo	*hostPtr, Boolean isServer);
> 
188,191c199,202
<     qdcount = ntohs(headerPtr->qdcount);
<     ancount = ntohs(headerPtr->ancount);
<     arcount = ntohs(headerPtr->arcount);
<     nscount = ntohs(headerPtr->nscount);
---
>     qdcount = ntohs( (u_short) headerPtr->qdcount);
>     ancount = ntohs( (u_short) headerPtr->ancount);
>     arcount = ntohs( (u_short) headerPtr->arcount);
>     nscount = ntohs( (u_short) headerPtr->nscount);
601c612
< 		    cp, (char *)NULL, hostPtr, isServer));
---
> 		    (char *)cp, (char *)NULL, hostPtr, isServer));
648c659
< 	}
---
>     }
666a678
> int
diff --recurs m:\bind495p1/tools/nslookup/list.c m:\bind/tools/nslookup/list.c
73,82c73,84
< #include <sys/param.h>
< #include <sys/socket.h>
< #include <netinet/in.h>
< #include <arpa/nameser.h>
< #include <arpa/inet.h>
< #include <resolv.h>
< #include <netdb.h>
< #include <stdio.h>
< #include <limits.h>
< #include <ctype.h>
---
> #ifndef WINNT
> #include <sys/param.h>
> #include <sys/socket.h>
> #include <netinet/in.h>
> #endif
> #include <arpa/nameser.h>
> #include <arpa/inet.h>
> #include <resolv.h>
> #include <netdb.h>
> #include <stdio.h>
> #include <limits.h>
> #include <ctype.h>
100a103,113
> char * inet_nsap_ntoa();
> const char * inet_ntop();
> 
> /*
>  * Forward references
>  */
> 
> int
> PrintListInfo(FILE *file, u_char *msg, u_char *eom, int qtype, char *domain);
> 
> 
315c328,329
< 
---
>     
>   #ifndef WINNT
317a332,337
>   #else
> 
>         if (send(sockFD,(const char *)&len,INT16SZ,0) != INT16SZ  ||
>             send(sockFD,(const char *)&buf,msglen,0) != msglen) {
>   #endif
> 
331c351
< 	    filePtr = OpenFile(cmd, file);
---
> 	    filePtr = AppOpenFile(cmd, file);
353a374
> #ifndef WINNT
354a376,378
> #else
> 	    while ((numRead = recv(sockFD, cp, amtToRead,0)) > 0) {
> #endif
385a410
>         #ifndef WINNT
386a412,415
> #else
> 	    while (amtToRead > 0 && (numRead=recv(sockFD, cp, amtToRead,0)) > 0) {
> 
> #endif
400c429
< 	    numRecords += htons(((HEADER *)answer)->ancount);
---
> 	    numRecords += htons((u_short)((HEADER *)answer)->ancount);
406,445c435,474
< 	    /* Header. */
< 	    cp = answer + HFIXEDSZ;
< 	    /* Question. */
< 	    for (count = ntohs(((HEADER* )answer)->qdcount);
< 		 count > 0;
< 		 count--)
< 		    cp += dn_skipname(cp, answer + len) + QFIXEDSZ;
< 	    /* Answer. */
< 	    for (count = ntohs(((HEADER* )answer)->ancount);
< 		 count > 0;
< 		 count--) {
< 		int type, class, rlen;
< 
< 		n = dn_expand(answer, answer + len, cp,
< 			      dname[soacnt], sizeof dname[0]);
< 		if (n < 0) {
< 		    error = ERR_PRINTING;
< 		    done++;
< 		    break;
< 		}
< 		cp += n;
< 		GETSHORT(type, cp);
< 		GETSHORT(class, cp);
< 		cp += INT32SZ;	/* ttl */
< 		GETSHORT(rlen, cp);
< 		cp += rlen;
< 		if (type == T_SOA && soacnt++ &&
< 		    !strcasecmp(dname[0], dname[1])) {
< 		    done++;
< 		    break;
< 		}
< 	    }
< 	}
< 
< 	if (cmd != NULL) {
< 	    fprintf(stdout, "%sReceived %d answer%s (%d record%s).\n",
< 		(numAnswers >= HASH_SIZE) ? "\n" : "",
< 		numAnswers, (numAnswers != 1) ? "s" : "",
< 		numRecords, (numRecords != 1) ? "s" : "");
< 	}
---
>  	    /* Header. */
>   	    cp = answer + HFIXEDSZ;
>  	    /* Question. */
>  	    for (count = ntohs((u_short)((HEADER* )answer)->qdcount);
>  		 count > 0;
>  		 count--)
>  		    cp += dn_skipname((u_char *)cp, (u_char *)answer + len) + QFIXEDSZ;
>  	    /* Answer. */
>  	    for (count = ntohs((u_short)((HEADER* )answer)->ancount);
>  		 count > 0;
>  		 count--) {
>  		int type, class, rlen;
>  
>  		n = dn_expand(answer, answer + len, cp,
>  			      dname[soacnt], sizeof dname[0]);
>  		if (n < 0) {
>  		    error = ERR_PRINTING;
>  		    done++;
>  		    break;
>  		}
>  		cp += n;
>  		GETSHORT(type, cp);
>  		GETSHORT(class, cp);
>  		cp += INT32SZ;	/* ttl */
>  		GETSHORT(rlen, cp);
>  		cp += rlen;
>  		if (type == T_SOA && soacnt++ &&
>  		    !strcasecmp(dname[0], dname[1])) {
>  		    done++;
>  		    break;
>  		}
>   	    }
>   	}
>   
>   	if (cmd != NULL) {
>  	    fprintf(stdout, "%sReceived %d answer%s (%d record%s).\n",
>   		(numAnswers >= HASH_SIZE) ? "\n" : "",
>  		numAnswers, (numAnswers != 1) ? "s" : "",
>  		numRecords, (numRecords != 1) ? "s" : "");
>   	}
470,471c499,500
< 			ntohs(headerPtr->ancount), ntohs(headerPtr->nscount),
< 			ntohs(headerPtr->arcount));
---
> 			ntohs( (u_short) headerPtr->ancount), ntohs( (u_short) headerPtr->nscount),
> 			ntohs( (u_short) headerPtr->arcount));
477d505
< 
517a546
> int
549c578
<     if (ntohs(headerPtr->ancount) == 0) {
---
>     if (ntohs( (u_short) headerPtr->ancount) == 0) {
551,560c580,589
<     }
<     for (n = ntohs(headerPtr->qdcount); n > 0; n--) {
< 	nameLen = dn_skipname(cp, eom);
< 	if (nameLen < 0)
< 	    return (ERROR);
< 	cp += nameLen + QFIXEDSZ;
<     }
<     for (count = ntohs(headerPtr->ancount); count > 0; count--) {
< 	nameLen = dn_expand(msg, eom, cp, name, sizeof name);
< 	if (nameLen < 0)
---
>       }
>       for (n = ntohs((u_short) headerPtr->qdcount); n > 0; n--) {
>  	nameLen = dn_skipname(cp, eom);
>  	if (nameLen < 0)
>  	    return (ERROR);
>  	cp += nameLen + QFIXEDSZ;
>       }
>       for (count = ntohs((u_short)headerPtr->ancount); count > 0; count--) {
>   	nameLen = dn_expand(msg, eom, cp, name, sizeof name);
>   	if (nameLen < 0)
892a922
> void
927a958
>     #ifndef WINNT
928a960,964
>     #else
>     char f[5000];
>     int numread = 0;
>     int i;
>     #endif
984c1020
< 	    filePtr = OpenFile(string, file);
---
> 	    filePtr = AppOpenFile(string, file);
995a1032
> #ifndef WINNT
997c1034
< 	}
---
>         	}
1000c1037,1044
< 	f = fdopen(sockFD, "r");
---
> #else
>    /* send(sockFD,"/W",3,0); */
>          }
> 	send(sockFD, name, strlen(name),0);
> 	send(sockFD, "\r\n", 2,0);
> 	#endif
> #ifndef WINNT	
> 	f = fdopen(sockFD, "r"); 
1016c1060,1084
< 	if (lastc != '\n') {
---
> #else
>     while ((numread = recv(sockFD,(char *)f,4999,0)) != 0)
>       {
> 
> 	   for (i=0; i<=numread; i++)
>         {
>           c = f[i];
>           switch (c) 
>           {
> 		    case 0210:
> 		    case 0211:
> 		    case 0212:
> 		    case 0214:
> 	  		      c -= 0200;
> 			      break;
> 		    case 0215:
> 			     c = '\n';
> 			     break;
> 	       }
> 	        putc(lastc = c, filePtr);
>       }       
>       }
>  #endif
> 	if (lastc != '\n') 
> 	  {
1018,1019c1086,1087
< 	}
< 	putc('\n', filePtr);
---
> 	  }
> 	  putc('\n', filePtr);
1030a1099
> void
diff --recurs m:\bind495p1/tools/nslookup/main.c m:\bind/tools/nslookup/main.c
82,91c82,95
< #include <sys/param.h>
< #include <netdb.h>
< #include <sys/socket.h>
< #include <netinet/in.h>
< #include <arpa/nameser.h>
< #include <arpa/inet.h>
< #include <resolv.h>
< #include <signal.h>
< #include <setjmp.h>
< #include <ctype.h>
---
> #ifndef WINNT
> #include <sys/param.h>
> #include <netinet/in.h>
> #include <setjmp.h>
> #endif
> #include <netdb.h>
> #ifndef WINNT
> #include <sys/socket.h>
> #endif
> #include <arpa/nameser.h>
> #include <arpa/inet.h>
> #include <resolv.h>
> #include <signal.h>
> #include <ctype.h>
99c103,112
< 
---
>   /* 
>    * Forward references
>    */
>   void Usage();
>   void LocalServer(HostInfo *defaultPtr);
>   int  LookupHost(char *string, Boolean putToFile);
>   void res_re_init();
>   void res_dnsrch(register char *cp);
>   int  SetOption(register char *option);
>   
109a123,125
>   #ifdef WINNT
>   HANDLE hReadWriteEvent = NULL;
>   #endif
143c159
<  * Stuff for Interrupt (control-C) signal handler.
---
>  * Stuff for Interrupt (control-C) signal handler.                    
145a162
> #ifndef WINNT
147d163
< FILE		*filePtr;
149c165,168
< 
---
> #else
> 	char *pathnslookuprc, *pathpagercmd, *pathhelpfile;
> #endif
> FILE		*filePtr;
158a178,211
> #ifdef WINNT
> /* Expand environmental variables in file pathnames */
> /* XXX - Would it be better to store/retrieve pathnames from the registry? */
> void
> expand_paths(void)
> {
> 
> 	pathnslookuprc = (char *)malloc(MAX_PATH);
> 	if (!ExpandEnvironmentStrings(_PATH_NSLOOKUPRC, pathnslookuprc, MAX_PATH)) {
> 		syslog(LOG_ERR, "ExpandEnvironmentStrings(_PATH_NSLOOKUPRC) failed: %m\n");
> 	} else
> 
> 	pathpagercmd = (char *)malloc(MAX_PATH);
> 	if (!ExpandEnvironmentStrings(_PATH_PAGERCMD, pathpagercmd, MAX_PATH)) {
> 		syslog(LOG_ERR, "ExpandEnvironmentStrings(_PATH_PAGERCMD) failed: %m\n");
> 	} else
> 
> 	pathhelpfile = (char *)malloc(MAX_PATH);
>         if (OnWinnt() == TRUE)
>           {
> 	    if (!ExpandEnvironmentStrings(_PATH_HELPFILE, pathhelpfile, MAX_PATH)) {
> 	 	  syslog(LOG_ERR, "ExpandEnvironmentStrings(_PATH_HELPFILE) failed: %m\n");
> 	    }
> 	  }
>           else
>            { 
>  	    if (!ExpandEnvironmentStrings(_PATH_95HELPFILE, pathhelpfile, MAX_PATH)) {
> 	 	  syslog(LOG_ERR, "ExpandEnvironmentStrings(_PATH_95HELPFILE) failed: %m\n");
> 	    }
> 	   }
> }
> #endif /* WINNT */
> 
> 
184a238,258
>      
> #ifdef WINNT
> /* lgk moved startup to beginning.. */
> 
> 
> 
> 
> 	hReadWriteEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
>    {
>  	WORD wVersionRequested;
> 	WSADATA wsaData;
> 
>         expand_paths();
> 	wVersionRequested = MAKEWORD(1,1);
> 	if (WSAStartup(wVersionRequested, &wsaData)) {
> 		syslog(LOG_ERR, "No useable winsock.dll: %m");
> 		return (-1);
> 	}
> 
>    }
> #endif /* WINNT */
246a321
> #ifndef WINNT
247a323,325
> #else
> 	    hp = gethostbyname_nt(*argv);
> #endif
322a401
> #ifndef WINNT 
323a403,405
> #else
>             pager = pathpagercmd;
> #endif
325d406
< 
329c410
< 
---
> #ifndef WINNT
338c419
< 
---
> #endif
345a427
> 
354a437
> void
362,363c445,447
<     defaultAddr.s_addr = htonl(INADDR_ANY);
<     (void) GetHostInfoByName(&defaultAddr, C_IN, T_A,
---
> #ifndef WINNT
>     defaultAddr.s_addr = htonl(INADDR_ANY); 
>       (void) GetHostInfoByName(&defaultAddr, C_IN, T_A,
364a449,455
> #else /* lgk the 0.0.0.0 doesn't work for nt so set to loopback */
>     defaultAddr.s_addr = htonl(INADDR_LOOPBACK);
>           (void) GetHostInfoByName(&defaultAddr, C_IN, T_A,
> 			     "127.0.0.1", defaultPtr, 1);
> 
> #endif
>   
380a472
> void 
685c777
< 	filePtr = OpenFile(string, file);
---
> 	filePtr = AppOpenFile(string, file);
746c838
< 	filePtr = OpenFile(string, file);
---
> 	filePtr = AppOpenFile(string, file);
934a1027
> void
956a1050
> void
1053c1147
< 
---
> #ifndef WINNT
1054a1149,1153
> #else
> 	sprintf(cmd, "%s < %s", pager, pathhelpfile);
> #endif
> 
>         /* printf("path helpfile = %s ",pathhelpfile); */
1108a1208
> #ifndef WINNT
1109a1210,1212
> #else
> 	(void) strcat(buf, pathnslookuprc);
> #endif
Only in m:\bind/tools/nslookup: nslookup.mak
Only in m:\bind/tools/nslookup: nslookup.mdp
Only in m:\bind/tools/nslookup: nslookup.ncb
Only in m:\bind/tools/nslookup: nslookup.vcp
Only in m:\bind/tools/nslookup: nslookup_vc22.mak
Only in m:\bind/tools/nslookup: nslookup_vc22.vcp
diff --recurs m:\bind495p1/tools/nslookup/pathnames.h m:\bind/tools/nslookup/pathnames.h
62,68c62,78
< #define _PATH_PAGERCMD		"more"
< 
< #ifndef _PATH_HELPFILE
< #if defined(BSD) && BSD >= 198810
< #define	_PATH_HELPFILE		"/usr/share/misc/nslookup.help"
< #else
< #define _PATH_HELPFILE		"/usr/lib/nslookup.help"
---
> 
> #ifndef WINNT
> #define _PATH_PAGERCMD		"more"
> #else
> #define _PATH_PAGERCMD		"more"
> #endif
> 
> #ifndef _PATH_HELPFILE
> #if defined(BSD) && BSD >= 198810
> #define	_PATH_HELPFILE		"/usr/share/misc/nslookup.help"
> #else
> #ifdef WINNT
> #define _PATH_HELPFILE		"%windir%\\system32\\nslookup.help"
> #define _PATH_95HELPFILE        "%windir%\\nslookup.help"
> #else
> #define _PATH_HELPFILE		"/usr/lib/nslookup.help"
> #endif
Only in m:\bind/tools/nslookup: readme.nt
diff --recurs m:\bind495p1/tools/nslookup/res.h m:\bind/tools/nslookup/res.h
76,78c76,77
< #define TRUE	1
< #define FALSE	0
< typedef int Boolean;
---
> #ifndef _RES_H_
> #define _RES_H_
80,83c79,92
< #define MAXALIASES	35
< #define MAXADDRS	35
< #define MAXDOMAINS	35
< #define MAXSERVERS	10
---
> #ifdef WINNT
> #include <winsock.h>
> #include "../../conf/portability.h"
> #include <stdio.h>
> #endif
> 
> #define TRUE	1
> #define FALSE	0
> typedef int Boolean;
> 
> #define MAXALIASES	35
> #define MAXADDRS	35
> #define MAXDOMAINS	35
> #define MAXSERVERS	10
163c172
< extern int  Print_query();
---
> extern void  Print_query();
168a178
> 
175a186,187
> 
> #ifndef WINNT
176a189,190
> #endif
> 
177a192,235
> 
> #ifdef WINNT
>   
> /*
>    * subr.c definitions
> */
>   
>   FILE * AppOpenFile(char *string, char *file);
>   int StringToType(char *type, int dflt, FILE *errorfile);
>   int StringToClass(char *class, int dflt, FILE *errorfile);
>   
> /*
> * getinfo.c definitions
>    */
>   
>   static int GetAnswer(struct in_addr *nsAddrPtr, int queryType, char *msg, int msglen,
>                        Boolean iquery, register HostInfo *hostPtr, Boolean isServer);
>   int GetHostInfoByName(struct in_addr	*nsAddrPtr, int queryClass, int queryType,
>                         char *name, HostInfo *hostPtr, Boolean isServer);
>   int GetHostInfoByAddr(struct in_addr *nsAddrPtr, struct in_addr	*address, HostInfo *hostPtr);
>   
>   /*
>    * send.c definitions
>    */
>   
>   int SendRequest(struct in_addr	*nsAddrPtr, char *buf, int buflen,
>   	            char *answer, u_int anslen, int *trueLenPtr);
>   
>   
>   /* lgk new definitions */
>   extern int SetDefaultServer();
>   extern int Finger();
>   extern void ViewList();
>   extern void ListHosts();
>   extern void ListHostsByType();
>   extern int SetOption();
>   extern int LookupHost();
>   extern int LookupHostWithServer();
>   extern int yylex();
> 
> #endif WINNT
> 
> #endif /* _RES_H_ */
> 
Only in m:\bind/tools/nslookup: save1
diff --recurs m:\bind495p1/tools/nslookup/send.c m:\bind/tools/nslookup/send.c
77,86c77,87
< 
< #include <sys/param.h>
< #include <sys/time.h>
< #include <sys/socket.h>
< #include <sys/uio.h>
< #include <netinet/in.h>
< #include <stdio.h>
< #include <errno.h>
< #include <arpa/nameser.h>
< #include <arpa/inet.h>
---
> #ifndef WINNT
> #include <sys/param.h>
> #include <sys/time.h>
> #include <sys/socket.h>
> #include <sys/uio.h>
> #include <netinet/in.h>
> #endif 
> #include <stdio.h>
> #include <errno.h>
> #include <arpa/nameser.h>
> #include <arpa/inet.h>
88d88
< #include "res.h"
89a90
> #include "res.h"
90a92
> 
212a215
> #ifndef WINNT
213a217,219
> #else
> 			while ((n = recv(s, (char *)cp, (int)len,0)) > 0) {
> #endif
239c245
< 			if ((resplen = _getshort((u_char*)cp)) > anslen) {
---
> 			if ( (u_int)(resplen = _getshort((u_char*)cp)) > anslen) {
246a253
> #ifndef WINNT
247a255,257
> #else
> 			   (n = recv(s, (char *)cp, (int)len,0)) > 0) {
> #endif
268a279
> #ifndef WINNT
269a281,283
> #else
> 					if ((n = recv(s, junk, n,0)) > 0)
> #endif
405a420
> void
diff --recurs m:\bind495p1/tools/nslookup/skip.c m:\bind/tools/nslookup/skip.c
78,83c78,85
< #include <sys/param.h>
< #include <netinet/in.h>
< #include <arpa/nameser.h>
< #include <resolv.h>
< #include <stdio.h>
< #include "../../conf/portability.h"
---
> #ifndef WINNT
> #include <sys/param.h>
> #include <netinet/in.h>
> #endif
> #include <arpa/nameser.h>
> #include <resolv.h>
> #include <stdio.h>
> #include "../../conf/portability.h"
85c87
< char *res_skip_rr();
---
> char *res_skip_rr();
87c89
< 
---
> 
129c131
< 	if (n = ntohs(hp->qdcount) ) {
---
> 	if (n = ntohs( (u_short) hp->qdcount) ) {
143c145
< 	if (n = ntohs(hp->ancount)) {
---
> 	if (n = ntohs( (u_short) hp->ancount)) {
154c156
< 	if (n = ntohs(hp->nscount)) {
---
> 	if (n = ntohs( (u_short) hp->nscount)) {
165c167
< 	if (n = ntohs(hp->arcount)) {
---
> 	if (n = ntohs( (u_short) hp->arcount)) {
Only in m:\bind/tools/nslookup: strip.bat
diff --recurs m:\bind495p1/tools/nslookup/subr.c m:\bind/tools/nslookup/subr.c
77,86c77,93
< #include <sys/types.h>
< #include <sys/param.h>
< #include <netdb.h>
< #include <sys/socket.h>
< #include <netinet/in.h>
< #include <arpa/nameser.h>
< #include <arpa/inet.h>
< #include <signal.h>
< #include <setjmp.h>
< #include <stdio.h>
---
> 
> #ifndef WINNT
> #include <sys/types.h>
> #include <sys/param.h>
> #endif
> #include <netdb.h>
> #ifndef WINNT
> #include <sys/socket.h>
> #include <netinet/in.h>
> #endif
> #include <arpa/nameser.h>
> #include <arpa/inet.h>
> #include <signal.h>
> #ifndef WINNT
> #include <setjmp.h>
> #endif
> #include <stdio.h>
115a123
>  #ifndef WINNT
139c147
< 
---
>  #endif
190c198,200
<     { int saveMask;
---
>     { 
>       #ifndef WINNT
> 	  int saveMask;
191a202
>       #endif
192a204
>      #ifndef WINNT
193a206
>      #endif
320c333
<  *  OpenFile --
---
>  *  AppOpenFile --
334c347
< OpenFile(string, file)
---
> AppOpenFile(string, file)
Only in m:\bind/tools/nslookup: winntport.txt
Only in m:\bind/tools/nslookup: yylex.c
