]> granicus.if.org Git - php/commitdiff
Remove more files
authorZeev Suraski <zeev@php.net>
Fri, 31 Mar 2000 19:54:44 +0000 (19:54 +0000)
committerZeev Suraski <zeev@php.net>
Fri, 31 Mar 2000 19:54:44 +0000 (19:54 +0000)
17 files changed:
bindlib_w32/base64.c [deleted file]
bindlib_w32/bindlib.dsp [deleted file]
bindlib_w32/getnetbyaddr.c [deleted file]
bindlib_w32/getnetbyname.c [deleted file]
bindlib_w32/herror.c [deleted file]
bindlib_w32/hostnamelen.c [deleted file]
bindlib_w32/inet_addr.c [deleted file]
bindlib_w32/inet_net_pton.c [deleted file]
bindlib_w32/inet_ntop.c [deleted file]
bindlib_w32/inet_pton.c [deleted file]
bindlib_w32/netdb.h [deleted file]
bindlib_w32/res_comp.c [deleted file]
bindlib_w32/res_data.c [deleted file]
bindlib_w32/res_debug.c [deleted file]
bindlib_w32/res_nt_misc.c [deleted file]
bindlib_w32/res_query.c [deleted file]
bindlib_w32/writev.c [deleted file]

diff --git a/bindlib_w32/base64.c b/bindlib_w32/base64.c
deleted file mode 100644 (file)
index 917a757..0000000
+++ /dev/null
@@ -1,323 +0,0 @@
-/*
- * Copyright (c) 1996 by Internet Software Consortium.
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
- * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
- * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
- * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
- * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
- * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- */
-
-/*
- * Portions Copyright (c) 1995 by International Business Machines, Inc.
- *
- * International Business Machines, Inc. (hereinafter called IBM) grants
- * permission under its copyrights to use, copy, modify, and distribute this
- * Software with or without fee, provided that the above copyright notice and
- * all paragraphs of this notice appear in all copies, and that the name of IBM
- * not be used in connection with the marketing of any product incorporating
- * the Software or modifications thereof, without specific, written prior
- * permission.
- *
- * To the extent it has a right to do so, IBM grants an immunity from suit
- * under its patents, if any, for the use, sale or manufacture of products to
- * the extent that such products are used for performing Domain Name System
- * dynamic updates in TCP/IP networks by means of the Software.  No immunity is
- * granted for any product per se or for any other function of any product.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", AND IBM DISCLAIMS ALL WARRANTIES,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE.  IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL,
- * DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER ARISING
- * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE, EVEN
- * IF IBM IS APPRISED OF THE POSSIBILITY OF SUCH DAMAGES.
- */
-
-#include <sys/types.h>
-#ifndef WINNT
-#include <sys/param.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#endif
-#include <arpa/inet.h>
-#include <arpa/nameser.h>
-
-#include <ctype.h>
-#include <resolv.h>
-#include <stdio.h>
-
-#if defined(BSD) && (BSD >= 199103) && defined(AF_INET6)
-# include <stdlib.h>
-# include <string.h>
-#else
-# include "conf/portability.h"
-#endif
-
-#define Assert(Cond) if (!(Cond)) abort()
-
-static const char Base64[] =
-       "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-static const char Pad64 = '=';
-
-/* (From RFC1521 and draft-ietf-dnssec-secext-03.txt)
-   The following encoding technique is taken from RFC 1521 by Borenstein
-   and Freed.  It is reproduced here in a slightly edited form for
-   convenience.
-
-   A 65-character subset of US-ASCII is used, enabling 6 bits to be
-   represented per printable character. (The extra 65th character, "=",
-   is used to signify a special processing function.)
-
-   The encoding process represents 24-bit groups of input bits as output
-   strings of 4 encoded characters. Proceeding from left to right, a
-   24-bit input group is formed by concatenating 3 8-bit input groups.
-   These 24 bits are then treated as 4 concatenated 6-bit groups, each
-   of which is translated into a single digit in the base64 alphabet.
-
-   Each 6-bit group is used as an index into an array of 64 printable
-   characters. The character referenced by the index is placed in the
-   output string.
-
-                         Table 1: The Base64 Alphabet
-
-      Value Encoding  Value Encoding  Value Encoding  Value Encoding
-          0 A            17 R            34 i            51 z
-          1 B            18 S            35 j            52 0
-          2 C            19 T            36 k            53 1
-          3 D            20 U            37 l            54 2
-          4 E            21 V            38 m            55 3
-          5 F            22 W            39 n            56 4
-          6 G            23 X            40 o            57 5
-          7 H            24 Y            41 p            58 6
-          8 I            25 Z            42 q            59 7
-          9 J            26 a            43 r            60 8
-         10 K            27 b            44 s            61 9
-         11 L            28 c            45 t            62 +
-         12 M            29 d            46 u            63 /
-         13 N            30 e            47 v
-         14 O            31 f            48 w         (pad) =
-         15 P            32 g            49 x
-         16 Q            33 h            50 y
-
-   Special processing is performed if fewer than 24 bits are available
-   at the end of the data being encoded.  A full encoding quantum is
-   always completed at the end of a quantity.  When fewer than 24 input
-   bits are available in an input group, zero bits are added (on the
-   right) to form an integral number of 6-bit groups.  Padding at the
-   end of the data is performed using the '=' character.
-
-   Since all base64 input is an integral number of octets, only the
-         -------------------------------------------------                       
-   following cases can arise:
-   
-       (1) the final quantum of encoding input is an integral
-           multiple of 24 bits; here, the final unit of encoded
-          output will be an integral multiple of 4 characters
-          with no "=" padding,
-       (2) the final quantum of encoding input is exactly 8 bits;
-           here, the final unit of encoded output will be two
-          characters followed by two "=" padding characters, or
-       (3) the final quantum of encoding input is exactly 16 bits;
-           here, the final unit of encoded output will be three
-          characters followed by one "=" padding character.
-   */
-
-int
-b64_ntop(src, srclength, target, targsize)
-       u_char const *src;
-       size_t srclength;
-       char *target;
-       size_t targsize;
-{
-       size_t datalength = 0;
-       u_char input[3];
-       u_char output[4];
-       size_t i;
-
-       while (2 < srclength) {
-               input[0] = *src++;
-               input[1] = *src++;
-               input[2] = *src++;
-               srclength -= 3;
-
-               output[0] = input[0] >> 2;
-               output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4);
-               output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6);
-               output[3] = input[2] & 0x3f;
-               Assert(output[0] < 64);
-               Assert(output[1] < 64);
-               Assert(output[2] < 64);
-               Assert(output[3] < 64);
-
-               if (datalength + 4 > targsize)
-                       return (-1);
-               target[datalength++] = Base64[output[0]];
-               target[datalength++] = Base64[output[1]];
-               target[datalength++] = Base64[output[2]];
-               target[datalength++] = Base64[output[3]];
-       }
-    
-       /* Now we worry about padding. */
-       if (0 != srclength) {
-               /* Get what's left. */
-               input[0] = input[1] = input[2] = '\0';
-               for (i = 0; i < srclength; i++)
-                       input[i] = *src++;
-       
-               output[0] = input[0] >> 2;
-               output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4);
-               output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6);
-               Assert(output[0] < 64);
-               Assert(output[1] < 64);
-               Assert(output[2] < 64);
-
-               if (datalength + 4 > targsize)
-                       return (-1);
-               target[datalength++] = Base64[output[0]];
-               target[datalength++] = Base64[output[1]];
-               if (srclength == 1)
-                       target[datalength++] = Pad64;
-               else
-                       target[datalength++] = Base64[output[2]];
-               target[datalength++] = Pad64;
-       }
-       if (datalength >= targsize)
-               return (-1);
-       target[datalength] = '\0';      /* Returned value doesn't count \0. */
-       return (datalength);
-}
-
-/* skips all whitespace anywhere.
-   converts characters, four at a time, starting at (or after)
-   src from base - 64 numbers into three 8 bit bytes in the target area.
-   it returns the number of data bytes stored at the target, or -1 on error.
- */
-
-int
-b64_pton(src, target, targsize)
-       char const *src;
-       u_char *target;
-       size_t targsize;
-{
-       int tarindex, state, ch;
-       char *pos;
-
-       state = 0;
-       tarindex = 0;
-
-       while ((ch = *src++) != '\0') {
-               if (isspace(ch))        /* Skip whitespace anywhere. */
-                       continue;
-
-               if (ch == Pad64)
-                       break;
-
-               pos = strchr(Base64, ch);
-               if (pos == 0)           /* A non-base64 character. */
-                       return (-1);
-
-               switch (state) {
-               case 0:
-                       if (target) {
-                               if ((size_t)tarindex >= targsize)
-                                       return (-1);
-                               target[tarindex] = (pos - Base64) << 2;
-                       }
-                       state = 1;
-                       break;
-               case 1:
-                       if (target) {
-                               if ((size_t)(tarindex + 1) >= targsize)
-                                       return (-1);
-                               target[tarindex]   |=  (pos - Base64) >> 4;
-                               target[tarindex+1]  = ((pos - Base64) & 0x0f)
-                                                       << 4 ;
-                       }
-                       tarindex++;
-                       state = 2;
-                       break;
-               case 2:
-                       if (target) {
-                               if ((size_t)(tarindex + 1) >= targsize)
-                                       return (-1);
-                               target[tarindex]   |=  (pos - Base64) >> 2;
-                               target[tarindex+1]  = ((pos - Base64) & 0x03)
-                                                       << 6;
-                       }
-                       tarindex++;
-                       state = 3;
-                       break;
-               case 3:
-                       if (target) {
-                               if ((size_t)tarindex >= targsize)
-                                       return (-1);
-                               target[tarindex] |= (pos - Base64);
-                       }
-                       tarindex++;
-                       state = 0;
-                       break;
-               default:
-                       abort();
-               }
-       }
-
-       /*
-        * We are done decoding Base-64 chars.  Let's see if we ended
-        * on a byte boundary, and/or with erroneous trailing characters.
-        */
-
-       if (ch == Pad64) {              /* We got a pad char. */
-               ch = *src++;            /* Skip it, get next. */
-               switch (state) {
-               case 0:         /* Invalid = in first position */
-               case 1:         /* Invalid = in second position */
-                       return (-1);
-
-               case 2:         /* Valid, means one byte of info */
-                       /* Skip any number of spaces. */
-                       for (NULL; ch != '\0'; ch = *src++)
-                               if (!isspace(ch))
-                                       break;
-                       /* Make sure there is another trailing = sign. */
-                       if (ch != Pad64)
-                               return (-1);
-                       ch = *src++;            /* Skip the = */
-                       /* Fall through to "single trailing =" case. */
-                       /* FALLTHROUGH */
-
-               case 3:         /* Valid, means two bytes of info */
-                       /*
-                        * We know this char is an =.  Is there anything but
-                        * whitespace after it?
-                        */
-                       for (NULL; ch != '\0'; ch = *src++)
-                               if (!isspace(ch))
-                                       return (-1);
-
-                       /*
-                        * Now make sure for cases 2 and 3 that the "extra"
-                        * bits that slopped past the last full byte were
-                        * zeros.  If we don't check them, they become a
-                        * subliminal channel.
-                        */
-                       if (target && target[tarindex] != 0)
-                               return (-1);
-               }
-       } else {
-               /*
-                * We ended by seeing the end of the string.  Make sure we
-                * have no partial bytes lying around.
-                */
-               if (state != 0)
-                       return (-1);
-       }
-
-       return (tarindex);
-}
diff --git a/bindlib_w32/bindlib.dsp b/bindlib_w32/bindlib.dsp
deleted file mode 100644 (file)
index 147cd92..0000000
+++ /dev/null
@@ -1,300 +0,0 @@
-# Microsoft Developer Studio Project File - Name="bindlib" - Package Owner=<4>\r
-# Microsoft Developer Studio Generated Build File, Format Version 6.00\r
-# ** DO NOT EDIT **\r
-\r
-# TARGTYPE "Win32 (x86) Static Library" 0x0104\r
-\r
-CFG=bindlib - Win32 Debug_TS\r
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,\r
-!MESSAGE use the Export Makefile command and run\r
-!MESSAGE \r
-!MESSAGE NMAKE /f "bindlib.mak".\r
-!MESSAGE \r
-!MESSAGE You can specify a configuration when running NMAKE\r
-!MESSAGE by defining the macro CFG on the command line. For example:\r
-!MESSAGE \r
-!MESSAGE NMAKE /f "bindlib.mak" CFG="bindlib - Win32 Debug_TS"\r
-!MESSAGE \r
-!MESSAGE Possible choices for configuration are:\r
-!MESSAGE \r
-!MESSAGE "bindlib - Win32 Release" (based on "Win32 (x86) Static Library")\r
-!MESSAGE "bindlib - Win32 Debug" (based on "Win32 (x86) Static Library")\r
-!MESSAGE "bindlib - Win32 Debug_TS" (based on "Win32 (x86) Static Library")\r
-!MESSAGE "bindlib - Win32 Release_TS" (based on "Win32 (x86) Static Library")\r
-!MESSAGE "bindlib - Win32 Release_TS_inline" (based on "Win32 (x86) Static Library")\r
-!MESSAGE "bindlib - Win32 Release_inline" (based on "Win32 (x86) Static Library")\r
-!MESSAGE \r
-\r
-# Begin Project\r
-# PROP AllowPerConfigDependencies 0\r
-# PROP Scc_ProjName ""\r
-# PROP Scc_LocalPath ""\r
-CPP=cl.exe\r
-RSC=rc.exe\r
-\r
-!IF  "$(CFG)" == "bindlib - Win32 Release"\r
-\r
-# PROP BASE Use_MFC 0\r
-# PROP BASE Use_Debug_Libraries 0\r
-# PROP BASE Output_Dir "Release"\r
-# PROP BASE Intermediate_Dir "Release"\r
-# PROP BASE Target_Dir ""\r
-# PROP Use_MFC 0\r
-# PROP Use_Debug_Libraries 0\r
-# PROP Output_Dir "Release"\r
-# PROP Intermediate_Dir "Release"\r
-# PROP Target_Dir ""\r
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c\r
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "." /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "WINNT" /YX /FD /c\r
-# ADD BASE RSC /l 0x40d /d "NDEBUG"\r
-# ADD RSC /l 0x40d /d "NDEBUG"\r
-BSC32=bscmake.exe\r
-# ADD BASE BSC32 /nologo\r
-# ADD BSC32 /nologo\r
-LIB32=link.exe -lib\r
-# ADD BASE LIB32 /nologo\r
-# ADD LIB32 /nologo /out:"Release\resolv.lib"\r
-\r
-!ELSEIF  "$(CFG)" == "bindlib - Win32 Debug"\r
-\r
-# PROP BASE Use_MFC 0\r
-# PROP BASE Use_Debug_Libraries 1\r
-# PROP BASE Output_Dir "Debug"\r
-# PROP BASE Intermediate_Dir "Debug"\r
-# PROP BASE Target_Dir ""\r
-# PROP Use_MFC 0\r
-# PROP Use_Debug_Libraries 1\r
-# PROP Output_Dir "Debug"\r
-# PROP Intermediate_Dir "Debug"\r
-# PROP Target_Dir ""\r
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c\r
-# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "." /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "WINNT" /FR /YX /FD /GZ /c\r
-# ADD BASE RSC /l 0x40d /d "_DEBUG"\r
-# ADD RSC /l 0x40d /d "_DEBUG"\r
-BSC32=bscmake.exe\r
-# ADD BASE BSC32 /nologo\r
-# ADD BSC32 /nologo\r
-LIB32=link.exe -lib\r
-# ADD BASE LIB32 /nologo\r
-# ADD LIB32 /nologo /out:"Debug\resolv.lib"\r
-\r
-!ELSEIF  "$(CFG)" == "bindlib - Win32 Debug_TS"\r
-\r
-# PROP BASE Use_MFC 0\r
-# PROP BASE Use_Debug_Libraries 1\r
-# PROP BASE Output_Dir "bindlib___Win32_Debug_TS"\r
-# PROP BASE Intermediate_Dir "bindlib___Win32_Debug_TS"\r
-# PROP BASE Target_Dir ""\r
-# PROP Use_MFC 0\r
-# PROP Use_Debug_Libraries 1\r
-# PROP Output_Dir "Debug_TS"\r
-# PROP Intermediate_Dir "Debug_TS"\r
-# PROP Target_Dir ""\r
-# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "." /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "WINNT" /FR /YX /FD /GZ /c\r
-# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "." /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "WINNT" /FR /YX /FD /GZ /c\r
-# ADD BASE RSC /l 0x40d /d "_DEBUG"\r
-# ADD RSC /l 0x40d /d "_DEBUG"\r
-BSC32=bscmake.exe\r
-# ADD BASE BSC32 /nologo\r
-# ADD BSC32 /nologo\r
-LIB32=link.exe -lib\r
-# ADD BASE LIB32 /nologo /out:"Debug\resolv.lib"\r
-# ADD LIB32 /nologo /out:"Debug_TS\resolv.lib"\r
-\r
-!ELSEIF  "$(CFG)" == "bindlib - Win32 Release_TS"\r
-\r
-# PROP BASE Use_MFC 0\r
-# PROP BASE Use_Debug_Libraries 0\r
-# PROP BASE Output_Dir "bindlib___Win32_Release_TS"\r
-# PROP BASE Intermediate_Dir "bindlib___Win32_Release_TS"\r
-# PROP BASE Target_Dir ""\r
-# PROP Use_MFC 0\r
-# PROP Use_Debug_Libraries 0\r
-# PROP Output_Dir "Release_TS"\r
-# PROP Intermediate_Dir "Release_TS"\r
-# PROP Target_Dir ""\r
-# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "." /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "WINNT" /YX /FD /c\r
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "." /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "WINNT" /YX /FD /c\r
-# ADD BASE RSC /l 0x40d /d "NDEBUG"\r
-# ADD RSC /l 0x40d /d "NDEBUG"\r
-BSC32=bscmake.exe\r
-# ADD BASE BSC32 /nologo\r
-# ADD BSC32 /nologo\r
-LIB32=link.exe -lib\r
-# ADD BASE LIB32 /nologo /out:"Release\resolv.lib"\r
-# ADD LIB32 /nologo /out:"Release_TS\resolv.lib"\r
-\r
-!ELSEIF  "$(CFG)" == "bindlib - Win32 Release_TS_inline"\r
-\r
-# PROP BASE Use_MFC 0\r
-# PROP BASE Use_Debug_Libraries 0\r
-# PROP BASE Output_Dir "bindlib___Win32_Release_TS_inline"\r
-# PROP BASE Intermediate_Dir "bindlib___Win32_Release_TS_inline"\r
-# PROP BASE Target_Dir ""\r
-# PROP Use_MFC 0\r
-# PROP Use_Debug_Libraries 0\r
-# PROP Output_Dir "Release_TS_inline"\r
-# PROP Intermediate_Dir "Release_TS_inline"\r
-# PROP Target_Dir ""\r
-# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "." /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "WINNT" /YX /FD /c\r
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "." /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "WINNT" /YX /FD /c\r
-# ADD BASE RSC /l 0x40d /d "NDEBUG"\r
-# ADD RSC /l 0x40d /d "NDEBUG"\r
-BSC32=bscmake.exe\r
-# ADD BASE BSC32 /nologo\r
-# ADD BSC32 /nologo\r
-LIB32=link.exe -lib\r
-# ADD BASE LIB32 /nologo /out:"Release\resolv.lib"\r
-# ADD LIB32 /nologo /out:"Release_Ts_inline\resolv.lib"\r
-\r
-!ELSEIF  "$(CFG)" == "bindlib - Win32 Release_inline"\r
-\r
-# PROP BASE Use_MFC 0\r
-# PROP BASE Use_Debug_Libraries 0\r
-# PROP BASE Output_Dir "bindlib___Win32_Release_inline"\r
-# PROP BASE Intermediate_Dir "bindlib___Win32_Release_inline"\r
-# PROP BASE Target_Dir ""\r
-# PROP Use_MFC 0\r
-# PROP Use_Debug_Libraries 0\r
-# PROP Output_Dir "Release_inline"\r
-# PROP Intermediate_Dir "Release_inline"\r
-# PROP Target_Dir ""\r
-# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "." /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "WINNT" /YX /FD /c\r
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "." /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "WINNT" /YX /FD /c\r
-# ADD BASE RSC /l 0x40d /d "NDEBUG"\r
-# ADD RSC /l 0x40d /d "NDEBUG"\r
-BSC32=bscmake.exe\r
-# ADD BASE BSC32 /nologo\r
-# ADD BSC32 /nologo\r
-LIB32=link.exe -lib\r
-# ADD BASE LIB32 /nologo /out:"Release\resolv.lib"\r
-# ADD LIB32 /nologo /out:"Release_inline\resolv.lib"\r
-\r
-!ENDIF \r
-\r
-# Begin Target\r
-\r
-# Name "bindlib - Win32 Release"\r
-# Name "bindlib - Win32 Debug"\r
-# Name "bindlib - Win32 Debug_TS"\r
-# Name "bindlib - Win32 Release_TS"\r
-# Name "bindlib - Win32 Release_TS_inline"\r
-# Name "bindlib - Win32 Release_inline"\r
-# Begin Group "Source Files"\r
-\r
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"\r
-# Begin Source File\r
-\r
-SOURCE=.\base64.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\gethnamaddr.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\getnetbyaddr.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\getnetbyname.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\getnetent.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\getnetnamadr.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\herror.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\hostnamelen.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\inet_addr.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\inet_net_ntop.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\inet_net_pton.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\inet_neta.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\inet_ntop.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\inet_pton.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\nsap_addr.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\res_comp.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\res_data.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\res_debug.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\res_init.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\res_mkquery.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\res_nt_misc.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\res_query.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\res_send.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\sethostent.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\writev.c\r
-# End Source File\r
-# End Group\r
-# Begin Group "Header Files"\r
-\r
-# PROP Default_Filter "h;hpp;hxx;hm;inl"\r
-# Begin Source File\r
-\r
-SOURCE=.\resolv\netdb.h\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\resolv\resolv.h\r
-# End Source File\r
-# End Group\r
-# End Target\r
-# End Project\r
diff --git a/bindlib_w32/getnetbyaddr.c b/bindlib_w32/getnetbyaddr.c
deleted file mode 100644 (file)
index 33ec7db..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (c) 1983 Regents of the University of California.
- * All rights reserved.
- *
- * 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
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static char sccsid[] = "@(#)getnetbyaddr.c     1.1 (Coimbra) 93/06/02";
-static char rcsid[] = "$Id$";
-#endif /* LIBC_SCCS and not lint */
-
-#include <netdb.h>
-#ifdef WINNT
-#include "conf/portability.h"
-#endif
-
-extern int _net_stayopen;
-
-struct netent *
-_getnetbyaddr(net, type)
-       register unsigned long net;
-       register int type;
-{
-       register struct netent *p;
-
-       setnetent(_net_stayopen);
-       while (p = getnetent())
-               if (p->n_addrtype == type && p->n_net == net)
-                       break;
-       if (!_net_stayopen)
-               endnetent();
-       return (p);
-}
diff --git a/bindlib_w32/getnetbyname.c b/bindlib_w32/getnetbyname.c
deleted file mode 100644 (file)
index a547479..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (c) 1983, 1993
- *     The Regents of the University of California.  All rights reserved.
- *
- * 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
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static char sccsid[] = "@(#)getnetbyname.c     8.1 (Berkeley) 6/4/93";
-static char sccsid_[] = "from getnetbyname.c   1.1 (Coimbra) 93/06/02";
-static char rcsid[] = "$Id$";
-#endif /* LIBC_SCCS and not lint */
-
-#include <netdb.h>
-#include <string.h>
-#ifdef WINNT
-#include "conf/portability.h"
-#endif
-
-extern int _net_stayopen;
-
-struct netent *
-_getnetbyname(name)
-       register const char *name;
-{
-       register struct netent *p;
-       register char **cp;
-
-       setnetent(_net_stayopen);
-       while (p = getnetent()) {
-               if (strcasecmp(p->n_name, name) == 0)
-                       break;
-               for (cp = p->n_aliases; *cp != 0; cp++)
-                       if (strcasecmp(*cp, name) == 0)
-                               goto found;
-       }
-found:
-       if (!_net_stayopen)
-               endnetent();
-       return (p);
-}
diff --git a/bindlib_w32/herror.c b/bindlib_w32/herror.c
deleted file mode 100644 (file)
index 2cfb266..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * ++Copyright++ 1987, 1993
- * -
- * Copyright (c) 1987, 1993
- *    The Regents of the University of California.  All rights reserved.
- * 
- * 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
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * -
- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
- * 
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies, and that
- * the name of Digital Equipment Corporation not be used in advertising or
- * publicity pertaining to distribution of the document or software without
- * specific, written prior permission.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
- * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
- * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
- * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
- * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- * -
- * --Copyright--
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static char sccsid[] = "@(#)herror.c   8.1 (Berkeley) 6/4/93";
-static char rcsid[] = "$Id$";
-#endif /* LIBC_SCCS and not lint */
-
-#include <sys/types.h>
-#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
-
-const char *h_errlist[] = {
-       "Resolver Error 0 (no error)",
-       "Unknown host",                         /* 1 HOST_NOT_FOUND */
-       "Host name lookup failure",             /* 2 TRY_AGAIN */
-       "Unknown server error",                 /* 3 NO_RECOVERY */
-       "No address associated with name",      /* 4 NO_ADDRESS */
-};
-int    h_nerr = { sizeof h_errlist / sizeof h_errlist[0] };
-
-#ifndef WINNT
-extern int     h_errno;
-#endif
-
-/*
- * herror --
- *     print the error indicated by the h_errno value.
- */
-void
-herror(s)
-       const char *s;
-{
-       struct iovec iov[4];
-       register struct iovec *v = iov;
-#ifdef WINNT
-       char err[50];
-#endif
-
-       if (s && *s) {
-               v->iov_base = (char *)s;
-               v->iov_len = strlen(s);
-               v++;
-               v->iov_base = ": ";
-               v->iov_len = 2;
-               v++;
-       }
-#ifndef WINNT
-       v->iov_base = (char *)hstrerror(h_errno);
-#else
-       /* XXX - map the error number to the corresponding message here */
-       sprintf(err, "%d", h_errno);
-       v->iov_base = err;
-#endif
-       v->iov_len = strlen(v->iov_base);
-       v++;
-       v->iov_base = "\n";
-       v->iov_len = 1;
-       writev(STDERR_FILENO, iov, (v - iov) + 1);
-}
-
-#ifndef WINNT
-const char *
-hstrerror(err)
-       int err;
-{
-       if (err < 0)
-               return ("Resolver internal error");
-       else if (err < h_nerr)
-               return (h_errlist[err]);
-       return ("Unknown resolver error");
-}
-#endif
diff --git a/bindlib_w32/hostnamelen.c b/bindlib_w32/hostnamelen.c
deleted file mode 100644 (file)
index 69031b1..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * ++Copyright++ 1995
- * -
- * Copyright (c) 1995
- *    The Regents of the University of California.  All rights reserved.
- * 
- * 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
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * -
- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
- * 
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies, and that
- * the name of Digital Equipment Corporation not be used in advertising or
- * publicity pertaining to distribution of the document or software without
- * specific, written prior permission.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
- * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
- * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
- * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
- * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- * -
- * --Copyright--
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static char rcsid[] = "$Id$";
-#endif /* LIBC_SCCS and not lint */
-
-#ifndef WINNT
-#include <sys/param.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#endif
-
-#include <arpa/nameser.h>
-#include <resolv.h>
-
-#if defined(BSD) && (BSD >= 199103)
-# include <string.h>
-#else
-# include "conf/portability.h"
-#endif
-#if defined(USE_OPTIONS_H)
-# include <conf/options.h>
-#endif
-
-#ifndef ultrix
-int __local_hostname_length_unneeded;
-#else
-int
-local_hostname_length(hostname)
-       const char *hostname;
-{
-       int len_host, len_domain;
-
-       if (!*_res.defdname)
-               res_init();
-       len_host = strlen(hostname);
-       len_domain = strlen(_res.defdname);
-       if (len_host > len_domain &&
-           !strcasecmp(hostname + len_host - len_domain, _res.defdname) &&
-           hostname[len_host - len_domain - 1] == '.')
-               return (len_host - len_domain - 1);
-       return (0);
-}
-#endif
diff --git a/bindlib_w32/inet_addr.c b/bindlib_w32/inet_addr.c
deleted file mode 100644 (file)
index bd9eddd..0000000
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
- * ++Copyright++ 1983, 1990, 1993
- * -
- * Copyright (c) 1983, 1990, 1993
- *    The Regents of the University of California.  All rights reserved.
- * 
- * 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
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * -
- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
- * 
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies, and that
- * the name of Digital Equipment Corporation not be used in advertising or
- * publicity pertaining to distribution of the document or software without
- * specific, written prior permission.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
- * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
- * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
- * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
- * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- * -
- * --Copyright--
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static char sccsid[] = "@(#)inet_addr.c        8.1 (Berkeley) 6/17/93";
-static char rcsid[] = "$Id$";
-#endif /* LIBC_SCCS and not lint */
-
-#include <sys/types.h>
-#ifndef WINNT
-#include <sys/param.h>
-#include <netinet/in.h>
-#endif
-#include <arpa/inet.h>
-#include <ctype.h>
-#include "conf/portability.h"
-
-#ifndef NEED_INETADDR
-int __inet_addr_unneeded__;
-#else
-/* these are compatibility routines, not needed on recent BSD releases */
-
-/*
- * Ascii internet address interpretation routine.
- * The value returned is in network order.
- */
-u_long
-inet_addr(cp)
-       register const char *cp;
-{
-       struct in_addr val;
-
-       if (inet_aton(cp, &val))
-               return (val.s_addr);
-       return (INADDR_NONE);
-}
-#endif  /* NEED_INETADDR */
-
-/* 
- * Check whether "cp" is a valid ascii representation
- * of an Internet address and convert to a binary address.
- * Returns 1 if the address is valid, 0 if not.
- * This replaces inet_addr, the return value from which
- * cannot distinguish between failure and a local broadcast address.
- */
-int
-inet_aton(cp, addr)
-       register const char *cp;
-       struct in_addr *addr;
-{
-       register u_long val;
-       register int base, n;
-       register char c;
-       u_int parts[4];
-       register u_int *pp = parts;
-
-       c = *cp;
-       for (;;) {
-               /*
-                * Collect number up to ``.''.
-                * Values are specified as for C:
-                * 0x=hex, 0=octal, isdigit=decimal.
-                */
-               if (!isdigit(c))
-                       return (0);
-               val = 0; base = 10;
-               if (c == '0') {
-                       c = *++cp;
-                       if (c == 'x' || c == 'X')
-                               base = 16, c = *++cp;
-                       else
-                               base = 8;
-               }
-               for (;;) {
-                       if (isascii(c) && isdigit(c)) {
-                               val = (val * base) + (c - '0');
-                               c = *++cp;
-                       } else if (base == 16 && isascii(c) && isxdigit(c)) {
-                               val = (val << 4) |
-                                       (c + 10 - (islower(c) ? 'a' : 'A'));
-                               c = *++cp;
-                       } else
-                               break;
-               }
-               if (c == '.') {
-                       /*
-                        * Internet format:
-                        *      a.b.c.d
-                        *      a.b.c   (with c treated as 16 bits)
-                        *      a.b     (with b treated as 24 bits)
-                        */
-                       if (pp >= parts + 3)
-                               return (0);
-                       *pp++ = val;
-                       c = *++cp;
-               } else
-                       break;
-       }
-       /*
-        * Check for trailing characters.
-        */
-       if (c != '\0' && (!isascii(c) || !isspace(c)))
-               return (0);
-       /*
-        * Concoct the address according to
-        * the number of parts specified.
-        */
-       n = pp - parts + 1;
-       switch (n) {
-
-       case 0:
-               return (0);             /* initial nondigit */
-
-       case 1:                         /* a -- 32 bits */
-               break;
-
-       case 2:                         /* a.b -- 8.24 bits */
-               if (val > 0xffffff)
-                       return (0);
-               val |= parts[0] << 24;
-               break;
-
-       case 3:                         /* a.b.c -- 8.8.16 bits */
-               if (val > 0xffff)
-                       return (0);
-               val |= (parts[0] << 24) | (parts[1] << 16);
-               break;
-
-       case 4:                         /* a.b.c.d -- 8.8.8.8 bits */
-               if (val > 0xff)
-                       return (0);
-               val |= (parts[0] << 24) | (parts[1] << 16) | (parts[2] << 8);
-               break;
-       }
-       if (addr)
-               addr->s_addr = htonl(val);
-       return (1);
-}
diff --git a/bindlib_w32/inet_net_pton.c b/bindlib_w32/inet_net_pton.c
deleted file mode 100644 (file)
index 8130d81..0000000
+++ /dev/null
@@ -1,231 +0,0 @@
-/*
- * Copyright (c) 1996 by Internet Software Consortium.
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
- * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
- * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
- * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
- * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
- * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id$";
-#endif
-
-#include <sys/types.h>
-#ifndef WINNT
-#include <sys/socket.h>
-#include <netinet/in.h>
-#endif
-#include <arpa/inet.h>
-
-#include <assert.h>
-#include <ctype.h>
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-
-#ifdef SPRINTF_CHAR
-# define SPRINTF(x) strlen(sprintf/**/x)
-#else
-# define SPRINTF(x) ((size_t)sprintf x)
-#endif
-
-static int     inet_net_pton_ipv4 __P((const char *src, u_char *dst,
-                                       size_t size));
-
-/*
- * static int
- * inet_net_pton(af, src, dst, size)
- *     convert network number from presentation to network format.
- *     accepts hex octets, hex strings, decimal octets, and /CIDR.
- *     "size" is in bytes and describes "dst".
- * return:
- *     number of bits, either imputed classfully or specified with /CIDR,
- *     or -1 if some failure occurred (check errno).  ENOENT means it was
- *     not a valid network specification.
- * author:
- *     Paul Vixie (ISC), June 1996
- */
-int
-inet_net_pton(af, src, dst, size)
-       int af;
-       const char *src;
-       void *dst;
-       size_t size;
-{
-       switch (af) {
-       case AF_INET:
-               return (inet_net_pton_ipv4(src, dst, size));
-       default:
-#ifndef WINNT
-       errno = EAFNOSUPPORT;
-     return (-1);
-#else
-
-       WSASetLastError(WSAEAFNOSUPPORT);
-       SetLastError(WSAEAFNOSUPPORT);
-     return (-1);
-#endif
-               
-       }
-}
-
-/*
- * static int
- * inet_net_pton_ipv4(src, dst, size)
- *     convert IPv4 network number from presentation to network format.
- *     accepts hex octets, hex strings, decimal octets, and /CIDR.
- *     "size" is in bytes and describes "dst".
- * return:
- *     number of bits, either imputed classfully or specified with /CIDR,
- *     or -1 if some failure occurred (check errno).  ENOENT means it was
- *     not an IPv4 network specification.
- * note:
- *     network byte order assumed.  this means 192.5.5.240/28 has
- *     0x11110000 in its fourth octet.
- * author:
- *     Paul Vixie (ISC), June 1996
- */
-static int
-inet_net_pton_ipv4(src, dst, size)
-       const char *src;
-       u_char *dst;
-       size_t size;
-{
-       static const char
-               xdigits[] = "0123456789abcdef",
-               digits[] = "0123456789";
-       int n, ch, tmp, dirty, bits;
-       const u_char *odst = dst;
-
-       ch = *src++;
-       if (ch == '0' && (src[0] == 'x' || src[0] == 'X')
-           && isascii(src[1]) && isxdigit(src[1])) {
-               /* Hexadecimal: Eat nybble string. */
-               if (size <= 0)
-                       goto emsgsize;
-               *dst = 0, dirty = 0;
-               src++;  /* skip x or X. */
-               while ((ch = *src++) != '\0' &&
-                      isascii(ch) && isxdigit(ch)) {
-                       if (isupper(ch))
-                               ch = tolower(ch);
-                       n = strchr(xdigits, ch) - xdigits;
-                       assert(n >= 0 && n <= 15);
-                       *dst |= n;
-                       if (!dirty++)
-                               *dst <<= 4;
-                       else if (size-- > 0)
-                               *++dst = 0, dirty = 0;
-                       else
-                               goto emsgsize;
-               }
-               if (dirty)
-                       size--;
-       } else if (isascii(ch) && isdigit(ch)) {
-               /* Decimal: eat dotted digit string. */
-               for (;;) {
-                       tmp = 0;
-                       do {
-                               n = strchr(digits, ch) - digits;
-                               assert(n >= 0 && n <= 9);
-                               tmp *= 10;
-                               tmp += n;
-                               if (tmp > 255)
-                                       goto enoent;
-                       } while ((ch = *src++) != '\0' &&
-                                isascii(ch) && isdigit(ch));
-                       if (size-- <= 0)
-                               goto emsgsize;
-                       *dst++ = (u_char) tmp;
-                       if (ch == '\0' || ch == '/')
-                               break;
-                       if (ch != '.')
-                               goto enoent;
-                       ch = *src++;
-                       if (!isascii(ch) || !isdigit(ch))
-                               goto enoent;
-               }
-       } else
-               goto enoent;
-
-       bits = -1;
-       if (ch == '/' && isascii(src[0]) && isdigit(src[0]) && dst > odst) {
-               /* CIDR width specifier.  Nothing can follow it. */
-               ch = *src++;    /* Skip over the /. */
-               bits = 0;
-               do {
-                       n = strchr(digits, ch) - digits;
-                       assert(n >= 0 && n <= 9);
-                       bits *= 10;
-                       bits += n;
-               } while ((ch = *src++) != '\0' &&
-                        isascii(ch) && isdigit(ch));
-               if (ch != '\0')
-                       goto enoent;
-               if (bits > 32)
-                       goto emsgsize;
-       }
-
-       /* Firey death and destruction unless we prefetched EOS. */
-       if (ch != '\0')
-               goto enoent;
-
-       /* If nothing was written to the destination, we found no address. */
-       if (dst == odst)
-               goto enoent;
-       /* If no CIDR spec was given, infer width from net class. */
-       if (bits == -1) {
-               if (*odst >= 240)       /* Class E */
-                       bits = 32;
-               else if (*odst >= 224)  /* Class D */
-                       bits = 4;
-               else if (*odst >= 192)  /* Class C */
-                       bits = 24;
-               else if (*odst >= 128)  /* Class B */
-                       bits = 16;
-               else                    /* Class A */
-                       bits = 8;
-               /* If imputed mask is narrower than specified octets, widen. */
-               if (bits >= 8 && bits < ((dst - odst) * 8))
-                       bits = (dst - odst) * 8;
-       }
-       /* Extend network to cover the actual mask. */
-       while (bits > ((dst - odst) * 8)) {
-               if (size-- <= 0)
-                       goto emsgsize;
-               *dst++ = '\0';
-       }
-       return (bits);
-
- enoent:
-
-#ifndef WINNT
-       errno = ENOENT
-     return (-1);
-#else
-     SetLastError(ENOENT);
-     return (-1);
-#endif
-
- emsgsize:
-
-#ifndef WINNT
-       errno = EMSGSIZE;
-     return (-1);
-#else
-     SetLastError(WSAEMSGSIZE);
-     WSASetLastError(WSAEMSGSIZE);
-     return (-1);
-#endif
-
-}
diff --git a/bindlib_w32/inet_ntop.c b/bindlib_w32/inet_ntop.c
deleted file mode 100644 (file)
index b13f68e..0000000
+++ /dev/null
@@ -1,212 +0,0 @@
-/* Copyright (c) 1996 by Internet Software Consortium.
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
- * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
- * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
- * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
- * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
- * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static char rcsid[] = "$Id$";
-#endif /* LIBC_SCCS and not lint */
-
-#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"
-
-#ifdef SPRINTF_CHAR
-# define SPRINTF(x) strlen(sprintf/**/x)
-#else
-# define SPRINTF(x) ((size_t)sprintf x)
-#endif
-
-/*
- * WARNING: Don't even consider trying to compile this on a system where
- * sizeof(int) < 4.  sizeof(int) > 4 is fine; all the world's not a VAX.
- */
-
-static const char *inet_ntop4 __P((const u_char *src, char *dst, size_t size));
-static const char *inet_ntop6 __P((const u_char *src, char *dst, size_t size));
-
-/* char *
- * inet_ntop(af, src, dst, size)
- *     convert a network format address to presentation format.
- * return:
- *     pointer to presentation format address (`dst'), or NULL (see errno).
- * author:
- *     Paul Vixie, 1996.
- */
-const char *
-inet_ntop(af, src, dst, size)
-       int af;
-       const void *src;
-       char *dst;
-       size_t size;
-{
-       switch (af) {
-       case AF_INET:
-               return (inet_ntop4(src, dst, size));
-       case AF_INET6:
-               return (inet_ntop6(src, dst, size));
-       default:
-#ifndef WINNT
-               errno = EAFNOSUPPORT;
-#else
-               SetLastError(WSAEAFNOSUPPORT);
-               WSASetLastError(WSAEAFNOSUPPORT);
-#endif
-               return (NULL);
-       }
-       /* NOTREACHED */
-}
-
-/* const char *
- * inet_ntop4(src, dst, size)
- *     format an IPv4 address, more or less like inet_ntoa()
- * return:
- *     `dst' (as a const)
- * notes:
- *     (1) uses no statics
- *     (2) takes a u_char* not an in_addr as input
- * author:
- *     Paul Vixie, 1996.
- */
-static const char *
-inet_ntop4(src, dst, size)
-       const u_char *src;
-       char *dst;
-       size_t size;
-{
-       static const char fmt[] = "%u.%u.%u.%u";
-       char tmp[sizeof "255.255.255.255"];
-
-       if (SPRINTF((tmp, fmt, src[0], src[1], src[2], src[3])) > (int)size) {
-#ifndef WINNT
-               errno = ENOSPC;
-#else
-               SetLastError(ENOSPC);
-               WSASetLastError(ENOSPC);
-#endif
-               return (NULL);
-       }
-       strcpy(dst, tmp);
-       return (dst);
-}
-
-/* const char *
- * inet_ntop6(src, dst, size)
- *     convert IPv6 binary address into presentation (printable) format
- * author:
- *     Paul Vixie, 1996.
- */
-static const char *
-inet_ntop6(src, dst, size)
-       const u_char *src;
-       char *dst;
-       size_t size;
-{
-       /*
-        * Note that int32_t and int16_t need only be "at least" large enough
-        * to contain a value of the specified size.  On some systems, like
-        * Crays, there is no such thing as an integer variable with 16 bits.
-        * Keep this in mind if you think this function should have been coded
-        * to use pointer overlays.  All the world's not a VAX.
-        */
-       char tmp[sizeof "ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255"], *tp;
-       struct { int base, len; } best, cur;
-       u_int words[IN6ADDRSZ / INT16SZ];
-       int i;
-
-       /*
-        * Preprocess:
-        *      Copy the input (bytewise) array into a wordwise array.
-        *      Find the longest run of 0x00's in src[] for :: shorthanding.
-        */
-       memset(words, '\0', sizeof words);
-       for (i = 0; i < IN6ADDRSZ; i++)
-               words[i / 2] |= (src[i] << ((1 - (i % 2)) << 3));
-       best.base = -1;
-       cur.base = -1;
-       for (i = 0; i < (IN6ADDRSZ / INT16SZ); i++) {
-               if (words[i] == 0) {
-                       if (cur.base == -1)
-                               cur.base = i, cur.len = 1;
-                       else
-                               cur.len++;
-               } else {
-                       if (cur.base != -1) {
-                               if (best.base == -1 || cur.len > best.len)
-                                       best = cur;
-                               cur.base = -1;
-                       }
-               }
-       }
-       if (cur.base != -1) {
-               if (best.base == -1 || cur.len > best.len)
-                       best = cur;
-       }
-       if (best.base != -1 && best.len < 2)
-               best.base = -1;
-
-       /*
-        * Format the result.
-        */
-       tp = tmp;
-       for (i = 0; i < (IN6ADDRSZ / INT16SZ); i++) {
-               /* Are we inside the best run of 0x00's? */
-               if (best.base != -1 && i >= best.base &&
-                   i < (best.base + best.len)) {
-                       if (i == best.base)
-                               *tp++ = ':';
-                       continue;
-               }
-               /* Are we following an initial run of 0x00s or any real hex? */
-               if (i != 0)
-                       *tp++ = ':';
-               /* Is this address an encapsulated IPv4? */
-               if (i == 6 && best.base == 0 &&
-                   (best.len == 6 || (best.len == 5 && words[5] == 0xffff))) {
-                       if (!inet_ntop4(src+12, tp, sizeof tmp - (tp - tmp)))
-                               return (NULL);
-                       tp += strlen(tp);
-                       break;
-               }
-               tp += SPRINTF((tp, "%x", words[i]));
-       }
-       /* Was it a trailing run of 0x00's? */
-       if (best.base != -1 && (best.base + best.len) == (IN6ADDRSZ / INT16SZ))
-               *tp++ = ':';
-       *tp++ = '\0';
-
-       /*
-        * Check for overflow, copy, and we're done.
-        */
-       if ((size_t)(tp - tmp) > size) {
-#ifndef WINNT
-               errno = ENOSPC;
-#else
-               SetLastError(ENOSPC);
-               WSASetLastError(ENOSPC);
-#endif
-               return (NULL);
-       }
-       strcpy(dst, tmp);
-       return (dst);
-}
diff --git a/bindlib_w32/inet_pton.c b/bindlib_w32/inet_pton.c
deleted file mode 100644 (file)
index a809fbb..0000000
+++ /dev/null
@@ -1,221 +0,0 @@
-/* Copyright (c) 1996 by Internet Software Consortium.
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
- * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
- * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
- * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
- * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
- * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static char rcsid[] = "$Id$";
-#endif /* LIBC_SCCS and not lint */
-
-#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"
-
-/*
- * WARNING: Don't even consider trying to compile this on a system where
- * sizeof(int) < 4.  sizeof(int) > 4 is fine; all the world's not a VAX.
- */
-
-static int     inet_pton4 __P((const char *src, u_char *dst));
-static int     inet_pton6 __P((const char *src, u_char *dst));
-
-/* int
- * inet_pton(af, src, dst)
- *     convert from presentation format (which usually means ASCII printable)
- *     to network format (which is usually some kind of binary format).
- * return:
- *     1 if the address was valid for the specified address family
- *     0 if the address wasn't valid (`dst' is untouched in this case)
- *     -1 if some other error occurred (`dst' is untouched in this case, too)
- * author:
- *     Paul Vixie, 1996.
- */
-int
-inet_pton(af, src, dst)
-       int af;
-       const char *src;
-       void *dst;
-{
-       switch (af) {
-       case AF_INET:
-               return (inet_pton4(src, dst));
-       case AF_INET6:
-               return (inet_pton6(src, dst));
-       default:
-#ifndef WINNT
-               errno = EAFNOSUPPORT;
-#else
-        SetLastError(WSAEAFNOSUPPORT);
-#endif
-               return (-1);
-       }
-       /* NOTREACHED */
-}
-
-/* int
- * inet_pton4(src, dst)
- *     like inet_aton() but without all the hexadecimal and shorthand.
- * return:
- *     1 if `src' is a valid dotted quad, else 0.
- * notice:
- *     does not touch `dst' unless it's returning 1.
- * author:
- *     Paul Vixie, 1996.
- */
-static int
-inet_pton4(src, dst)
-       const char *src;
-       u_char *dst;
-{
-       static const char digits[] = "0123456789";
-       int saw_digit, octets, ch;
-       u_char tmp[INADDRSZ], *tp;
-
-       saw_digit = 0;
-       octets = 0;
-       *(tp = tmp) = 0;
-       while ((ch = *src++) != '\0') {
-               const char *pch;
-
-               if ((pch = strchr(digits, ch)) != NULL) {
-                       u_int new = *tp * 10 + (pch - digits);
-
-                       if (new > 255)
-                               return (0);
-                       *tp = new;
-                       if (! saw_digit) {
-                               if (++octets > 4)
-                                       return (0);
-                               saw_digit = 1;
-                       }
-               } else if (ch == '.' && saw_digit) {
-                       if (octets == 4)
-                               return (0);
-                       *++tp = 0;
-                       saw_digit = 0;
-               } else
-                       return (0);
-       }
-       if (octets < 4)
-               return (0);
-
-       memcpy(dst, tmp, INADDRSZ);
-       return (1);
-}
-
-/* int
- * inet_pton6(src, dst)
- *     convert presentation level address to network order binary form.
- * return:
- *     1 if `src' is a valid [RFC1884 2.2] address, else 0.
- * notice:
- *     (1) does not touch `dst' unless it's returning 1.
- *     (2) :: in a full address is silently ignored.
- * credit:
- *     inspired by Mark Andrews.
- * author:
- *     Paul Vixie, 1996.
- */
-static int
-inet_pton6(src, dst)
-       const char *src;
-       u_char *dst;
-{
-       static const char xdigits_l[] = "0123456789abcdef",
-                         xdigits_u[] = "0123456789ABCDEF";
-       u_char tmp[IN6ADDRSZ], *tp, *endp, *colonp;
-       const char *xdigits, *curtok;
-       int ch, saw_xdigit;
-       u_int val;
-
-       memset((tp = tmp), '\0', IN6ADDRSZ);
-       endp = tp + IN6ADDRSZ;
-       colonp = NULL;
-       /* Leading :: requires some special handling. */
-       if (*src == ':')
-               if (*++src != ':')
-                       return (0);
-       curtok = src;
-       saw_xdigit = 0;
-       val = 0;
-       while ((ch = *src++) != '\0') {
-               const char *pch;
-
-               if ((pch = strchr((xdigits = xdigits_l), ch)) == NULL)
-                       pch = strchr((xdigits = xdigits_u), ch);
-               if (pch != NULL) {
-                       val <<= 4;
-                       val |= (pch - xdigits);
-                       if (val > 0xffff)
-                               return (0);
-                       saw_xdigit = 1;
-                       continue;
-               }
-               if (ch == ':') {
-                       curtok = src;
-                       if (!saw_xdigit) {
-                               if (colonp)
-                                       return (0);
-                               colonp = tp;
-                               continue;
-                       }
-                       if (tp + INT16SZ > endp)
-                               return (0);
-                       *tp++ = (u_char) (val >> 8) & 0xff;
-                       *tp++ = (u_char) val & 0xff;
-                       saw_xdigit = 0;
-                       val = 0;
-                       continue;
-               }
-               if (ch == '.' && ((tp + INADDRSZ) <= endp) &&
-                   inet_pton4(curtok, tp) > 0) {
-                       tp += INADDRSZ;
-                       saw_xdigit = 0;
-                       break;  /* '\0' was seen by inet_pton4(). */
-               }
-               return (0);
-       }
-       if (saw_xdigit) {
-               if (tp + INT16SZ > endp)
-                       return (0);
-               *tp++ = (u_char) (val >> 8) & 0xff;
-               *tp++ = (u_char) val & 0xff;
-       }
-       if (colonp != NULL) {
-               /*
-                * Since some memmove()'s erroneously fail to handle
-                * overlapping regions, we'll do the shift by hand.
-                */
-               const int n = tp - colonp;
-               int i;
-
-               for (i = 1; i <= n; i++) {
-                       endp[- i] = colonp[n - i];
-                       colonp[n - i] = 0;
-               }
-               tp = endp;
-       }
-       if (tp != endp)
-               return (0);
-       memcpy(dst, tmp, IN6ADDRSZ);
-       return (1);
-}
diff --git a/bindlib_w32/netdb.h b/bindlib_w32/netdb.h
deleted file mode 100644 (file)
index db01fd6..0000000
+++ /dev/null
@@ -1,216 +0,0 @@
-/*
- * ++Copyright++ 1980, 1983, 1988, 1993
- * -
- * Copyright (c) 1980, 1983, 1988, 1993
- *     The Regents of the University of California.  All rights reserved.
- *
- * 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
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * -
- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies, and that
- * the name of Digital Equipment Corporation not be used in advertising or
- * publicity pertaining to distribution of the document or software without
- * specific, written prior permission.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
- * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
- * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
- * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
- * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- * -
- * --Copyright--
- */
-
-/*
- *      @(#)netdb.h    8.1 (Berkeley) 6/2/93
- *     $Id$
- */
-
-#ifndef _NETDB_H_
-#define _NETDB_H_
-
-#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"
-#define        _PATH_SERVICES  "/etc/services"
-
-extern int h_errno;
-#else /* WINNT */
-
-#ifndef WIN95
-#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"
-#else
-#define        _PATH_HOSTS     "%windir%\\HOSTS"
-#define        _PATH_NETWORKS  "%windir%\\NETWORKS"
-#define        _PATH_PROTOCOL  "%windir%\\PROTOCOL"
-#define        _PATH_SERVICES  "%windir%\\SERVICES"
-#endif /* WIN95 */
-#endif /* WINNT */
-
-#ifndef WINNT
-/*
- * Structures returned by network data base library.  All addresses are
- * supplied in host order, and returned in network order (suitable for
- * use in system calls).
- */
-struct hostent {
-       char    *h_name;        /* official name of host */
-       char    **h_aliases;    /* alias list */
-       int     h_addrtype;     /* host address type */
-       int     h_length;       /* length of address */
-       char    **h_addr_list;  /* list of addresses from name server */
-#define        h_addr  h_addr_list[0]  /* address, for backward compatiblity */
-};
-
-/*
- * Assumption here is that a network number
- * fits in an unsigned long -- probably a poor one.
- */
-struct netent {
-       char            *n_name;        /* official name of net */
-       char            **n_aliases;    /* alias list */
-       int             n_addrtype;     /* net address type */
-       unsigned long   n_net;          /* network # */
-};
-
-struct servent {
-       char    *s_name;        /* official service name */
-       char    **s_aliases;    /* alias list */
-       int     s_port;         /* port # */
-       char    *s_proto;       /* protocol to use */
-};
-
-struct protoent {
-       char    *p_name;        /* official protocol name */
-       char    **p_aliases;    /* alias list */
-       int     p_proto;        /* protocol # */
-};
-#endif /* WINNT */
-
-/*
- * Error return codes from gethostbyname() and gethostbyaddr()
- * (left in extern int h_errno).
- */
-
-#define        NETDB_INTERNAL  -1      /* see errno */
-#define        NETDB_SUCCESS   0       /* no problem */
-#ifndef WINNT
-#define        HOST_NOT_FOUND  1 /* Authoritative Answer Host not found */
-#define        TRY_AGAIN       2 /* Non-Authoritive Host not found, or SERVERFAIL */
-#define        NO_RECOVERY     3 /* Non recoverable errors, FORMERR, REFUSED, NOTIMP */
-#define        NO_DATA         4 /* Valid name, no data record of requested type */
-#define        NO_ADDRESS      NO_DATA         /* no address, look for MX record */
-#endif /* WINNT */
-
-__BEGIN_DECLS
-void           endhostent __P((void));
-void           endnetent __P((void));
-void           endprotoent __P((void));
-void           endservent __P((void));
-#ifndef WINNT
-struct hostent *gethostbyaddr __P((const char *, int, int));
-struct hostent *gethostbyname __P((const char *));
-struct hostent *gethostbyname2 __P((const char *, int));
-struct hostent *gethostent __P((void));
-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? */
-struct netent  *getnetbyname __P((const char *));
-#endif
-
-struct netent  *getnetent __P((void));
-#ifndef WINNT
-struct protoent        *getprotobyname __P((const char *));
-struct protoent        *getprotobynumber __P((int));
-#endif
-struct protoent        *getprotoent __P((void));
-#ifndef WINNT
-struct servent *getservbyname __P((const char *, const char *));
-struct servent *getservbyport __P((int, const char *));
-#endif
-struct servent *getservent __P((void));
-void           herror __P((const char *));
-const char     *hstrerror __P((int));
-void           sethostent __P((int));
-/* void                sethostfile __P((const char *)); */
-void           setnetent __P((int));
-void           setprotoent __P((int));
-void           setservent __P((int));
-__END_DECLS
-
-/* This is nec'y to make this include file properly replace the sun version. */
-#ifdef sun
-#ifdef __GNU_LIBRARY__
-#include <rpc/netdb.h>
-#else
-struct rpcent {
-       char    *r_name;        /* name of server for this rpc program */
-       char    **r_aliases;    /* alias list */
-       int     r_number;       /* rpc program number */
-};
-struct rpcent  *getrpcbyname(), *getrpcbynumber(), *getrpcent();
-#endif /* __GNU_LIBRARY__ */
-#endif /* sun */
-
-/*
- * The Motorola kernel will only support 64 characters for hostname
- * also defined in /usr/ucbinclude/netdb.h
- */
-#ifdef __m88k__ 
-#define MAXHOSTNAMELEN 64
-#endif
-#ifdef WINNT 
-#define MAXHOSTNAMELEN 64
-#endif
-
-#endif /* !_NETDB_H_ */
diff --git a/bindlib_w32/res_comp.c b/bindlib_w32/res_comp.c
deleted file mode 100644 (file)
index 0871f96..0000000
+++ /dev/null
@@ -1,1135 +0,0 @@
-/*
- * ++Copyright++ 1985, 1993
- * -
- * Copyright (c) 1985, 1993
- *    The Regents of the University of California.  All rights reserved.
- * 
- * 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
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * -
- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
- * 
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies, and that
- * the name of Digital Equipment Corporation not be used in advertising or
- * publicity pertaining to distribution of the document or software without
- * specific, written prior permission.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
- * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
- * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
- * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
- * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- * -
- * --Copyright--
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static char sccsid[] = "@(#)res_comp.c 8.1 (Berkeley) 6/4/93";
-static char rcsid[] = "$Id$";
-#endif /* LIBC_SCCS and not lint */
-
-#include <sys/types.h>
-#ifndef WINNT
-#include <sys/param.h>
-#include <netinet/in.h>
-#endif
-#include <arpa/nameser.h>
-
-#include <ctype.h>
-#include <errno.h>
-#include <resolv.h>
-#include <stdio.h>
-
-#if defined(BSD) && (BSD >= 199103)
-# include <unistd.h>
-# include <string.h>
-#else
-# include "conf/portability.h"
-#endif
-
-static int     ns_name_ntop __P((const u_char *, char *, size_t));
-static int     ns_name_pton __P((const char *, u_char *, size_t));
-static int     ns_name_unpack __P((const u_char *, const u_char *,
-                                   const u_char *, u_char *, size_t));
-static int     ns_name_pack __P((const u_char *, u_char *, int,
-                                 const u_char **, const u_char **));
-static int     ns_name_uncompress __P((const u_char *, const u_char *,
-                                       const u_char *, char *, size_t));
-static int     ns_name_compress __P((const char *, u_char *, size_t,
-                                     const u_char **, const u_char **));
-static int     ns_name_skip __P((const u_char **, const u_char *));
-
-/*
- * Expand compressed domain name 'comp_dn' to full domain name.
- * 'msg' is a pointer to the begining of the message,
- * 'eomorig' points to the first location after the message,
- * 'exp_dn' is a pointer to a buffer of size 'length' for the result.
- * Return size of compressed name or -1 if there was an error.
- */
-int
-dn_expand(msg, eom, src, dst, dstsiz)
-       const u_char *msg;
-       const u_char *eom;
-       const u_char *src;
-       char *dst;
-       int dstsiz;
-{
-       int n = ns_name_uncompress(msg, eom, src, dst, (size_t)dstsiz);
-
-       if (n > 0 && dst[0] == '.')
-               dst[0] = '\0';
-       return (n);
-}
-
-/*
- * Pack domain name 'exp_dn' in presentation form into 'comp_dn'.
- * Return the size of the compressed name or -1.
- * 'length' is the size of the array pointed to by 'comp_dn'.
- */
-int
-dn_comp(src, dst, dstsiz, dnptrs, lastdnptr)
-       const char *src;
-       u_char *dst;
-       int dstsiz;
-       u_char **dnptrs;
-       u_char **lastdnptr;
-{
-       return (ns_name_compress(src, dst, (size_t)dstsiz,
-                                (const u_char **)dnptrs,
-                                (const u_char **)lastdnptr));
-}
-
-/*
- * Skip over a compressed domain name. Return the size or -1.
- */
-int
-__dn_skipname(ptr, eom)
-       const u_char *ptr;
-       const u_char *eom;
-{
-       const u_char *saveptr = ptr;
-
-       if (ns_name_skip(&ptr, eom) == -1)
-               return (-1);
-       return (ptr - saveptr);
-}
-
-/*
- * Verify that a domain name uses an acceptable character set.
- */
-
-/*
- * Note the conspicuous absence of ctype macros in these definitions.  On
- * non-ASCII hosts, we can't depend on string literals or ctype macros to
- * tell us anything about network-format data.  The rest of the BIND system
- * is not careful about this, but for some reason, we're doing it right here.
- */
-#define PERIOD 0x2e
-#define        hyphenchar(c) ((c) == 0x2d)
-#define bslashchar(c) ((c) == 0x5c)
-#define periodchar(c) ((c) == PERIOD)
-#define asterchar(c) ((c) == 0x2a)
-#define alphachar(c) (((c) >= 0x41 && (c) <= 0x5a) \
-                  || ((c) >= 0x61 && (c) <= 0x7a))
-#define digitchar(c) ((c) >= 0x30 && (c) <= 0x39)
-
-#define borderchar(c) (alphachar(c) || digitchar(c))
-#define middlechar(c) (borderchar(c) || hyphenchar(c))
-#define        domainchar(c) ((c) > 0x20 && (c) < 0x7f)
-
-int
-res_hnok(dn)
-       const char *dn;
-{
-       int ppch = '\0', pch = PERIOD, ch = *dn++;
-
-       while (ch != '\0') {
-               int nch = *dn++;
-
-               if (periodchar(ch)) {
-                       NULL;
-               } else if (periodchar(pch)) {
-                       if (!borderchar(ch))
-                               return (0);
-               } else if (periodchar(nch) || nch == '\0') {
-                       if (!borderchar(ch))
-                               return (0);
-               } else {
-                       if (!middlechar(ch))
-                               return (0);
-               }
-               ppch = pch, pch = ch, ch = nch;
-       }
-       return (1);
-}
-
-/*
- * hostname-like (A, MX, WKS) owners can have "*" as their first label
- * but must otherwise be as a host name.
- */
-int
-res_ownok(dn)
-       const char *dn;
-{
-       if (asterchar(dn[0])) {
-               if (periodchar(dn[1]))
-                       return (res_hnok(dn+2));
-               if (dn[1] == '\0')
-                       return (1);
-       }
-       return (res_hnok(dn));
-}
-
-/*
- * SOA RNAMEs and RP RNAMEs can have any printable character in their first
- * label, but the rest of the name has to look like a host name.
- */
-int
-res_mailok(dn)
-       const char *dn;
-{
-       int ch, escaped = 0;
-
-       /* "." is a valid missing representation */
-       if (*dn == '\0')
-               return(1);
-
-       /* otherwise <label>.<hostname> */
-       while ((ch = *dn++) != '\0') {
-               if (!domainchar(ch))
-                       return (0);
-               if (!escaped && periodchar(ch))
-                       break;
-               if (escaped)
-                       escaped = 0;
-               else if (bslashchar(ch))
-                       escaped = 1;
-       }
-       if (periodchar(ch))
-               return (res_hnok(dn));
-       return(0);
-}
-
-/*
- * This function is quite liberal, since RFC 1034's character sets are only
- * recommendations.
- */
-int
-res_dnok(dn)
-       const char *dn;
-{
-       int ch;
-
-       while ((ch = *dn++) != '\0')
-               if (!domainchar(ch))
-                       return (0);
-       return (1);
-}
-
-/*
- * Routines to insert/extract short/long's.
- */
-
-u_int16_t
-_getshort(msgp)
-       register const u_char *msgp;
-{
-       register u_int16_t u;
-
-       GETSHORT(u, msgp);
-       return (u);
-}
-
-#ifdef NeXT
-/*
- * nExt machines have some funky library conventions, which we must maintain.
- */
-u_int16_t
-res_getshort(msgp)
-       register const u_char *msgp;
-{
-       return (_getshort(msgp));
-}
-#endif
-
-u_int32_t
-_getlong(msgp)
-       register const u_char *msgp;
-{
-       register u_int32_t u;
-
-       GETLONG(u, msgp);
-       return (u);
-}
-
-void
-#if defined(__STDC__) || defined(__cplusplus)
-__putshort(register u_int16_t s, register u_char *msgp)        /* must match proto */
-#else
-__putshort(s, msgp)
-       register u_int16_t s;
-       register u_char *msgp;
-#endif
-{
-       PUTSHORT(s, msgp);
-}
-
-void
-__putlong(l, msgp)
-       register u_int32_t l;
-       register u_char *msgp;
-{
-       PUTLONG(l, msgp);
-}
-
-/* ++ From BIND 8.1.1. ++ */
-/*
- * Copyright (c) 1996 by Internet Software Consortium.
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
- * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
- * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
- * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
- * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
- * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- */
-
-/*"Id: ns_name.c,v 1.1 1997/12/13 02:41:13 vixie Exp vixie"*/
-
-/*#include "port_before.h"*/
-
-/*#include <sys/types.h>*/
-
-/*#include <netinet/in.h>*/
-/*#include <arpa/nameser.h>*/
-
-/*#include <errno.h>*/
-/*#include <resolv.h>*/
-/*#include <string.h>*/
-
-/*#include "port_after.h"*/
-
-#define NS_CMPRSFLGS   0xc0    /* Flag bits indicating name compression. */
-#define NS_MAXCDNAME   255     /* maximum compressed domain name */
-
-/* Data. */
-
-static char            digits[] = "0123456789";
-
-/* Forward. */
-
-static int             special(int);
-static int             printable(int);
-static int             dn_find(const u_char *, const u_char *,
-                               const u_char * const *,
-                               const u_char * const *);
-
-/* Public. */
-
-/*
- * ns_name_ntop(src, dst, dstsiz)
- *     Convert an encoded domain name to printable ascii as per RFC1035.
- * return:
- *     Number of bytes written to buffer, or -1 (with errno set)
- * notes:
- *     The root is returned as "."
- *     All other domains are returned in non absolute form
- */
-static int
-ns_name_ntop(src, dst, dstsiz)
-       const u_char *src;
-       char *dst;
-       size_t dstsiz;
-{
-       const u_char *cp;
-       char *dn, *eom;
-       u_char c;
-       u_int n;
-
-       cp = src;
-       dn = dst;
-       eom = dst + dstsiz;
-
-       while ((n = *cp++) != 0) {
-               if ((n & NS_CMPRSFLGS) != 0) {
-                       /* Some kind of compression pointer. */
-#ifndef WINNT
-     errno = EMSGSIZE;
-#else
-     WSASetLastError(WSAEMSGSIZE);
-     SetLastError(WSAEMSGSIZE);
-#endif
-     return (-1);
-
-               }
-               if (dn != dst) {
-                       if (dn >= eom) {
-#ifndef WINNT
-     errno = EMSGSIZE;
-#else
-     WSASetLastError(WSAEMSGSIZE);
-     SetLastError(WSAEMSGSIZE);
-#endif
-     return (-1);
-                       }
-                       *dn++ = '.';
-               }
-               if (dn + n >= eom) {
-#ifndef WINNT
-     errno = EMSGSIZE;
-#else
-     WSASetLastError(WSAEMSGSIZE);
-     SetLastError(WSAEMSGSIZE);
-#endif
-                       return (-1);
-               }
-               for ((void)NULL; n > 0; n--) {
-                       c = *cp++;
-                       if (special(c)) {
-                               if (dn + 1 >= eom) {
-#ifndef WINNT
-     errno = EMSGSIZE;
-#else
-     WSASetLastError(WSAEMSGSIZE);
-     SetLastError(WSAEMSGSIZE);
-#endif
-                                       return (-1);
-                               }
-                               *dn++ = '\\';
-                               *dn++ = (char)c;
-                       } else if (!printable(c)) {
-                               if (dn + 3 >= eom) {
-#ifndef WINNT
-     errno = EMSGSIZE;
-#else
-     WSASetLastError(WSAEMSGSIZE);
-     SetLastError(WSAEMSGSIZE);
-#endif
-                                       return (-1);
-                               }
-                               *dn++ = '\\';
-                               *dn++ = digits[c / 100];
-                               *dn++ = digits[(c % 100) / 10];
-                               *dn++ = digits[c % 10];
-                       } else {
-                               if (dn >= eom) {
-#ifndef WINNT
-     errno = EMSGSIZE;
-#else
-     WSASetLastError(WSAEMSGSIZE);
-     SetLastError(WSAEMSGSIZE);
-#endif
-                                       return (-1);
-                               }
-                               *dn++ = (char)c;
-                       }
-               }
-       }
-       if (dn == dst) {
-               if (dn >= eom) {
-#ifndef WINNT
-     errno = EMSGSIZE;
-#else
-     WSASetLastError(WSAEMSGSIZE);
-     SetLastError(WSAEMSGSIZE);
-#endif
-                       return (-1);
-               }
-               *dn++ = '.';
-       }
-       if (dn >= eom) {
-#ifndef WINNT
-     errno = EMSGSIZE;
-#else
-     WSASetLastError(WSAEMSGSIZE);
-     SetLastError(WSAEMSGSIZE);
-#endif
-               return (-1);
-       }
-       *dn++ = '\0';
-       return (dn - dst);
-}
-
-/*
- * ns_name_pton(src, dst, dstsiz)
- *     Convert a ascii string into an encoded domain name as per RFC1035.
- * return:
- *     -1 if it fails
- *     1 if string was fully qualified
- *     0 is string was not fully qualified
- * notes:
- *     Enforces label and domain length limits.
- */
-
-static int
-ns_name_pton(src, dst, dstsiz)
-       const char *src;
-       u_char *dst;
-       size_t dstsiz;
-{
-       u_char *label, *bp, *eom;
-       int c, n, escaped;
-       char *cp;
-
-       escaped = 0;
-       bp = dst;
-       eom = dst + dstsiz;
-       label = bp++;
-
-       while ((c = *src++) != 0) {
-               if (escaped) {
-                       if ((cp = strchr(digits, c)) != NULL) {
-                               n = (cp - digits) * 100;
-                               if ((c = *src++) == 0 ||
-                                   (cp = strchr(digits, c)) == NULL) {
-#ifndef WINNT
-     errno = EMSGSIZE;
-#else
-     WSASetLastError(WSAEMSGSIZE);
-     SetLastError(WSAEMSGSIZE);
-#endif
-                                       return (-1);
-                               }
-                               n += (cp - digits) * 10;
-                               if ((c = *src++) == 0 ||
-                                   (cp = strchr(digits, c)) == NULL) {
-#ifndef WINNT
-     errno = EMSGSIZE;
-#else
-     WSASetLastError(WSAEMSGSIZE);
-     SetLastError(WSAEMSGSIZE);
-#endif
-                                       return (-1);
-                               }
-                               n += (cp - digits);
-                               if (n > 255) {
-#ifndef WINNT
-     errno = EMSGSIZE;
-#else
-     WSASetLastError(WSAEMSGSIZE);
-     SetLastError(WSAEMSGSIZE);
-#endif
-                                       return (-1);
-                               }
-                               c = n;
-                       }
-                       escaped = 0;
-               } else if (c == '\\') {
-                       escaped = 1;
-                       continue;
-               } else if (c == '.') {
-                       c = (bp - label - 1);
-                       if ((c & NS_CMPRSFLGS) != 0) {  /* Label too big. */
-#ifndef WINNT
-     errno = EMSGSIZE;
-#else
-     WSASetLastError(WSAEMSGSIZE);
-     SetLastError(WSAEMSGSIZE);
-#endif
-                               return (-1);
-                       }
-                       if (label >= eom) {
-#ifndef WINNT
-     errno = EMSGSIZE;
-#else
-     WSASetLastError(WSAEMSGSIZE);
-     SetLastError(WSAEMSGSIZE);
-#endif
-                               return (-1);
-                       }
-                       *label = c;
-                       /* Fully qualified ? */
-                       if (*src == '\0') {
-                               if (c != 0) {
-                                       if (bp >= eom) {
-#ifndef WINNT
-     errno = EMSGSIZE;
-#else
-     WSASetLastError(WSAEMSGSIZE);
-     SetLastError(WSAEMSGSIZE);
-#endif
-                                               return (-1);
-                                       }
-                                       *bp++ = '\0';
-                               }
-                               if ((bp - dst) > MAXCDNAME) {
-#ifndef WINNT
-     errno = EMSGSIZE;
-#else
-     WSASetLastError(WSAEMSGSIZE);
-     SetLastError(WSAEMSGSIZE);
-#endif
-                                       return (-1);
-                               }
-                               return (1);
-                       }
-                       if (c == 0) {
-#ifndef WINNT
-     errno = EMSGSIZE;
-#else
-     WSASetLastError(WSAEMSGSIZE);
-     SetLastError(WSAEMSGSIZE);
-#endif
-                               return (-1);
-                       }
-                       label = bp++;
-                       continue;
-               }
-               if (bp >= eom) {
-#ifndef WINNT
-     errno = EMSGSIZE;
-#else
-     WSASetLastError(WSAEMSGSIZE);
-     SetLastError(WSAEMSGSIZE);
-#endif
-                       return (-1);
-               }
-               *bp++ = (u_char)c;
-       }
-       c = (bp - label - 1);
-       if ((c & NS_CMPRSFLGS) != 0) {          /* Label too big. */
-#ifndef WINNT
-     errno = EMSGSIZE;
-#else
-     WSASetLastError(WSAEMSGSIZE);
-     SetLastError(WSAEMSGSIZE);
-#endif
-               return (-1);
-       }
-       if (label >= eom) {
-#ifndef WINNT
-     errno = EMSGSIZE;
-#else
-     WSASetLastError(WSAEMSGSIZE);
-     SetLastError(WSAEMSGSIZE);
-#endif
-               return (-1);
-       }
-       *label = c;
-       if (c != 0) {
-               if (bp >= eom) {
-#ifndef WINNT
-     errno = EMSGSIZE;
-#else
-     WSASetLastError(WSAEMSGSIZE);
-     SetLastError(WSAEMSGSIZE);
-#endif
-                       return (-1);
-               }
-               *bp++ = 0;
-       }
-       if ((bp - dst) > MAXCDNAME) {   /* src too big */
-#ifndef WINNT
-     errno = EMSGSIZE;
-#else
-     WSASetLastError(WSAEMSGSIZE);
-     SetLastError(WSAEMSGSIZE);
-#endif
-               return (-1);
-       }
-       return (0);
-}
-
-/*
- * ns_name_unpack(msg, eom, src, dst, dstsiz)
- *     Unpack a domain name from a message, source may be compressed.
- * return:
- *     -1 if it fails, or consumed octets if it succeeds.
- */
-static int
-ns_name_unpack(msg, eom, src, dst, dstsiz)
-       const u_char *msg;
-       const u_char *eom;
-       const u_char *src;
-       u_char *dst;
-       size_t dstsiz;
-{
-       const u_char *srcp, *dstlim;
-       u_char *dstp;
-       int n, len, checked;
-
-       len = -1;
-       checked = 0;
-       dstp = dst;
-       srcp = src;
-       dstlim = dst + dstsiz;
-       if (srcp < msg || srcp >= eom) {
-#ifndef WINNT
-     errno = EMSGSIZE;
-#else
-     WSASetLastError(WSAEMSGSIZE);
-     SetLastError(WSAEMSGSIZE);
-#endif
-               return (-1);
-       }
-       /* Fetch next label in domain name. */
-       while ((n = *srcp++) != 0) {
-               /* Check for indirection. */
-               switch (n & NS_CMPRSFLGS) {
-               case 0:
-                       /* Limit checks. */
-                       if (dstp + n + 1 >= dstlim || srcp + n >= eom) {
-#ifndef WINNT
-     errno = EMSGSIZE;
-#else
-     WSASetLastError(WSAEMSGSIZE);
-     SetLastError(WSAEMSGSIZE);
-#endif
-                               return (-1);
-                       }
-                       checked += n + 1;
-                       *dstp++ = n;
-                       memcpy(dstp, srcp, n);
-                       dstp += n;
-                       srcp += n;
-                       break;
-
-               case NS_CMPRSFLGS:
-                       if (srcp >= eom) {
-#ifndef WINNT
-     errno = EMSGSIZE;
-#else
-     WSASetLastError(WSAEMSGSIZE);
-     SetLastError(WSAEMSGSIZE);
-#endif
-                               return (-1);
-                       }
-                       if (len < 0)
-                               len = srcp - src + 1;
-                       srcp = msg + (((n & 0x3f) << 8) | (*srcp & 0xff));
-                       if (srcp < msg || srcp >= eom) {  /* Out of range. */
-#ifndef WINNT
-     errno = EMSGSIZE;
-#else
-     WSASetLastError(WSAEMSGSIZE);
-     SetLastError(WSAEMSGSIZE);
-#endif
-                               return (-1);
-                       }
-                       checked += 2;
-                       /*
-                        * Check for loops in the compressed name;
-                        * if we've looked at the whole message,
-                        * there must be a loop.
-                        */
-                       if (checked >= eom - msg) {
-#ifndef WINNT
-     errno = EMSGSIZE;
-#else
-     WSASetLastError(WSAEMSGSIZE);
-     SetLastError(WSAEMSGSIZE);
-#endif
-                               return (-1);
-                       }
-                       break;
-
-               default:
-#ifndef WINNT
-     errno = EMSGSIZE;
-#else
-     WSASetLastError(WSAEMSGSIZE);
-     SetLastError(WSAEMSGSIZE);
-#endif
-                       return (-1);                    /* flag error */
-               }
-       }
-       *dstp = '\0';
-       if (len < 0)
-               len = srcp - src;
-       return (len);
-}
-
-/*
- * ns_name_pack(src, dst, dstsiz, dnptrs, lastdnptr)
- *     Pack domain name 'domain' into 'comp_dn'.
- * return:
- *     Size of the compressed name, or -1.
- * notes:
- *     'dnptrs' is an array of pointers to previous compressed names.
- *     dnptrs[0] is a pointer to the beginning of the message. The array
- *     ends with NULL.
- *     'lastdnptr' is a pointer to the end of the array pointed to
- *     by 'dnptrs'.
- * Side effects:
- *     The list of pointers in dnptrs is updated for labels inserted into
- *     the message as we compress the name.  If 'dnptr' is NULL, we don't
- *     try to compress names. If 'lastdnptr' is NULL, we don't update the
- *     list.
- */
-static int
-ns_name_pack(src, dst, dstsiz, dnptrs, lastdnptr)
-       const u_char *src;
-       u_char *dst;
-       int dstsiz;
-       const u_char **dnptrs;
-       const u_char **lastdnptr;
-{
-       u_char *dstp;
-       const u_char **cpp, **lpp, *eob, *msg;
-       const u_char *srcp;
-       int n, l;
-
-       srcp = src;
-       dstp = dst;
-       eob = dstp + dstsiz;
-       lpp = cpp = NULL;
-       if (dnptrs != NULL) {
-               if ((msg = *dnptrs++) != NULL) {
-                       for (cpp = dnptrs; *cpp != NULL; cpp++)
-                               (void)NULL;
-                       lpp = cpp;      /* end of list to search */
-               }
-       } else
-               msg = NULL;
-
-       /* make sure the domain we are about to add is legal */
-       l = 0;
-       do {
-               n = *srcp;
-               if ((n & NS_CMPRSFLGS) != 0) {
-#ifndef WINNT
-     errno = EMSGSIZE;
-#else
-     WSASetLastError(WSAEMSGSIZE);
-     SetLastError(WSAEMSGSIZE);
-#endif
-                       return (-1);
-               }
-               l += n + 1;
-               if (l > MAXCDNAME) {
-#ifndef WINNT
-     errno = EMSGSIZE;
-#else
-     WSASetLastError(WSAEMSGSIZE);
-     SetLastError(WSAEMSGSIZE);
-#endif
-                       return (-1);
-               }
-               srcp += n + 1;
-       } while (n != 0);
-
-       srcp = src;
-       do {
-               /* Look to see if we can use pointers. */
-               n = *srcp;
-               if (n != 0 && msg != NULL) {
-                       l = dn_find(srcp, msg, (const u_char * const *)dnptrs,
-                                   (const u_char * const *)lpp);
-                       if (l >= 0) {
-                               if (dstp + 1 >= eob) {
-#ifndef WINNT
-     errno = EMSGSIZE;
-#else
-     WSASetLastError(WSAEMSGSIZE);
-     SetLastError(WSAEMSGSIZE);
-#endif
-                                       return (-1);
-                               }
-                               *dstp++ = (l >> 8) | NS_CMPRSFLGS;
-                               *dstp++ = l % 256;
-                               return (dstp - dst);
-                       }
-                       /* Not found, save it. */
-                       if (lastdnptr != NULL && cpp < lastdnptr - 1 &&
-                           (dstp - msg) < 0x4000) {
-                               *cpp++ = dstp;
-                               *cpp = NULL;
-                       }
-               }
-               /* copy label to buffer */
-               if (n & NS_CMPRSFLGS) {         /* Should not happen. */
-#ifndef WINNT
-     errno = EMSGSIZE;
-#else
-     WSASetLastError(WSAEMSGSIZE);
-     SetLastError(WSAEMSGSIZE);
-#endif
-                       return (-1);
-               }
-               if (dstp + 1 + n >= eob) {
-#ifndef WINNT
-     errno = EMSGSIZE;
-#else
-     WSASetLastError(WSAEMSGSIZE);
-     SetLastError(WSAEMSGSIZE);
-#endif
-                       return (-1);
-               }
-               memcpy(dstp, srcp, n + 1);
-               srcp += n + 1;
-               dstp += n + 1;
-       } while (n != 0);
-
-       if (dstp > eob) {
-               if (msg != NULL)
-                       *lpp = NULL;
-#ifndef WINNT
-     errno = EMSGSIZE;
-#else
-     WSASetLastError(WSAEMSGSIZE);
-     SetLastError(WSAEMSGSIZE);
-#endif
-               return (-1);
-       } 
-       return (dstp - dst);
-}
-
-/*
- * ns_name_uncompress(msg, eom, src, dst, dstsiz)
- *     Expand compressed domain name to presentation format.
- * return:
- *     Number of bytes read out of `src', or -1 (with errno set).
- * note:
- *     Root domain returns as "." not "".
- */
-static int
-ns_name_uncompress(msg, eom, src, dst, dstsiz)
-       const u_char *msg;
-       const u_char *eom;
-       const u_char *src;
-       char *dst;
-       size_t dstsiz;
-{
-       u_char tmp[NS_MAXCDNAME];
-       int n;
-       
-       if ((n = ns_name_unpack(msg, eom, src, tmp, sizeof tmp)) == -1)
-               return (-1);
-       if (ns_name_ntop(tmp, dst, dstsiz) == -1)
-               return (-1);
-       return (n);
-}
-
-/*
- * ns_name_compress(src, dst, dstsiz, dnptrs, lastdnptr)
- *     Compress a domain name into wire format, using compression pointers.
- * return:
- *     Number of bytes consumed in `dst' or -1 (with errno set).
- * notes:
- *     'dnptrs' is an array of pointers to previous compressed names.
- *     dnptrs[0] is a pointer to the beginning of the message.
- *     The list ends with NULL.  'lastdnptr' is a pointer to the end of the
- *     array pointed to by 'dnptrs'. Side effect is to update the list of
- *     pointers for labels inserted into the message as we compress the name.
- *     If 'dnptr' is NULL, we don't try to compress names. If 'lastdnptr'
- *     is NULL, we don't update the list.
- */
-static int
-ns_name_compress(src, dst, dstsiz, dnptrs, lastdnptr)
-       const char *src;
-       u_char *dst;
-       size_t dstsiz;
-       const u_char **dnptrs;
-       const u_char **lastdnptr;
-{
-       u_char tmp[NS_MAXCDNAME];
-
-       if (ns_name_pton(src, tmp, sizeof tmp) == -1)
-               return (-1);
-       return (ns_name_pack(tmp, dst, dstsiz, dnptrs, lastdnptr));
-}
-
-/*
- * ns_name_skip(ptrptr, eom)
- *     Advance *ptrptr to skip over the compressed name it points at.
- * return:
- *     0 on success, -1 (with errno set) on failure.
- */
-static int
-ns_name_skip(ptrptr, eom)
-       const u_char **ptrptr;
-       const u_char *eom;
-{
-       const u_char *cp;
-       u_int n;
-
-       cp = *ptrptr;
-       while (cp < eom && (n = *cp++) != 0) {
-               /* Check for indirection. */
-               switch (n & NS_CMPRSFLGS) {
-               case 0:                 /* normal case, n == len */
-                       cp += n;
-                       continue;
-               case NS_CMPRSFLGS:      /* indirection */
-                       cp++;
-                       break;
-               default:                /* illegal type */
-#ifndef WINNT
-     errno = EMSGSIZE;
-#else
-     WSASetLastError(WSAEMSGSIZE);
-     SetLastError(WSAEMSGSIZE);
-#endif
-                       return (-1);
-               }
-               break;
-       }
-       if (cp > eom) {
-#ifndef WINNT
-     errno = EMSGSIZE;
-#else
-     WSASetLastError(WSAEMSGSIZE);
-     SetLastError(WSAEMSGSIZE);
-#endif
-               return (-1);
-       }
-       *ptrptr = cp;
-       return (0);
-}
-
-/* Private. */
-
-/*
- * special(ch)
- *     Thinking in noninternationalized USASCII (per the DNS spec),
- *     is this characted special ("in need of quoting") ?
- * return:
- *     boolean.
- */
-static int
-special(ch)
-       int ch;
-{
-       switch (ch) {
-       case 0x22: /* '"' */
-       case 0x2E: /* '.' */
-       case 0x3B: /* ';' */
-       case 0x5C: /* '\\' */
-       /* Special modifiers in zone files. */
-       case 0x40: /* '@' */
-       case 0x24: /* '$' */
-               return (1);
-       default:
-               return (0);
-       }
-}
-
-/*
- * printable(ch)
- *     Thinking in noninternationalized USASCII (per the DNS spec),
- *     is this character visible and not a space when printed ?
- * return:
- *     boolean.
- */
-static int
-printable(ch)
-       int ch;
-{
-       return (ch > 0x20 && ch < 0x7f);
-}
-
-/*
- *     Thinking in noninternationalized USASCII (per the DNS spec),
- *     convert this character to lower case if it's upper case.
- */
-static int
-mklower(ch)
-       int ch;
-{
-       if (ch >= 0x41 && ch <= 0x5A)
-               return (ch + 0x20);
-       return (ch);
-}
-
-/*
- * dn_find(domain, msg, dnptrs, lastdnptr)
- *     Search for the counted-label name in an array of compressed names.
- * return:
- *     offset from msg if found, or -1.
- * notes:
- *     dnptrs is the pointer to the first name on the list,
- *     not the pointer to the start of the message.
- */
-static int
-dn_find(domain, msg, dnptrs, lastdnptr)
-       const u_char *domain;
-       const u_char *msg;
-       const u_char * const *dnptrs;
-       const u_char * const *lastdnptr;
-{
-       const u_char *dn, *cp, *sp;
-       const u_char * const *cpp;
-       u_int n;
-
-       for (cpp = dnptrs; cpp < lastdnptr; cpp++) {
-               dn = domain;
-               sp = cp = *cpp;
-               while ((n = *cp++) != 0) {
-                       /*
-                        * check for indirection
-                        */
-                       switch (n & NS_CMPRSFLGS) {
-                       case 0:                 /* normal case, n == len */
-                               if (n != *dn++)
-                                       goto next;
-                               for ((void)NULL; n > 0; n--)
-                                       if (mklower(*dn++) != mklower(*cp++))
-                                               goto next;
-                               /* Is next root for both ? */
-                               if (*dn == '\0' && *cp == '\0')
-                                       return (sp - msg);
-                               if (*dn)
-                                       continue;
-                               goto next;
-
-                       case NS_CMPRSFLGS:      /* indirection */
-                               cp = msg + (((n & 0x3f) << 8) | *cp);
-                               break;
-
-                       default:        /* illegal type */
-#ifndef WINNT
-     errno = EMSGSIZE;
-#else
-     WSASetLastError(WSAEMSGSIZE);
-     SetLastError(WSAEMSGSIZE);
-#endif
-                               return (-1);
-                       }
-               }
- next: ;
-       }
-#ifndef WINNT
-    errno = ENOENT;
-#else
-     SetLastError(ENOENT);
-#endif
-       return (-1);
-}
-
-/* -- From BIND 8.1.1. -- */
diff --git a/bindlib_w32/res_data.c b/bindlib_w32/res_data.c
deleted file mode 100644 (file)
index e434731..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * ++Copyright++ 1995
- * -
- * Copyright (c) 1995
- *    The Regents of the University of California.  All rights reserved.
- * 
- * 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
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * -
- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
- * 
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies, and that
- * the name of Digital Equipment Corporation not be used in advertising or
- * publicity pertaining to distribution of the document or software without
- * specific, written prior permission.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
- * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
- * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
- * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
- * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- * -
- * --Copyright--
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static char rcsid[] = "$Id$";
-#endif /* LIBC_SCCS and not lint */
-
-#include <sys/types.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>
-#if defined(BSD) && (BSD >= 199103)
-# include <unistd.h>
-# include <stdlib.h>
-# include <string.h>
-#else
-# include "conf/portability.h"
-#endif
-
-const char *_res_opcodes[] = {
-       "QUERY",
-       "IQUERY",
-       "CQUERYM",
-       "CQUERYU",      /* experimental */
-       "NOTIFY",       /* experimental */
-       "5",
-       "6",
-       "7",
-       "8",
-       "UPDATEA",
-       "UPDATED",
-       "UPDATEDA",
-       "UPDATEM",
-       "UPDATEMA",
-       "ZONEINIT",
-       "ZONEREF",
-};
-
-const char *_res_resultcodes[] = {
-       "NOERROR",
-       "FORMERR",
-       "SERVFAIL",
-       "NXDOMAIN",
-       "NOTIMP",
-       "REFUSED",
-       "6",
-       "7",
-       "8",
-       "9",
-       "10",
-       "11",
-       "12",
-       "13",
-       "14",
-       "NOCHANGE",
-};
diff --git a/bindlib_w32/res_debug.c b/bindlib_w32/res_debug.c
deleted file mode 100644 (file)
index feaf6a2..0000000
+++ /dev/null
@@ -1,1546 +0,0 @@
-/*
- * ++Copyright++ 1985, 1990, 1993
- * -
- * Copyright (c) 1985, 1990, 1993
- *    The Regents of the University of California.  All rights reserved.
- * 
- * 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
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * -
- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
- * 
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies, and that
- * the name of Digital Equipment Corporation not be used in advertising or
- * publicity pertaining to distribution of the document or software without
- * specific, written prior permission.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
- * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
- * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
- * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
- * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- * -
- * Portions Copyright (c) 1995 by International Business Machines, Inc.
- *
- * International Business Machines, Inc. (hereinafter called IBM) grants
- * permission under its copyrights to use, copy, modify, and distribute this
- * Software with or without fee, provided that the above copyright notice and
- * all paragraphs of this notice appear in all copies, and that the name of IBM
- * not be used in connection with the marketing of any product incorporating
- * the Software or modifications thereof, without specific, written prior
- * permission.
- *
- * To the extent it has a right to do so, IBM grants an immunity from suit
- * under its patents, if any, for the use, sale or manufacture of products to
- * the extent that such products are used for performing Domain Name System
- * dynamic updates in TCP/IP networks by means of the Software.  No immunity is
- * granted for any product per se or for any other function of any product.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", AND IBM DISCLAIMS ALL WARRANTIES,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE.  IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL,
- * DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER ARISING
- * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE, EVEN
- * IF IBM IS APPRISED OF THE POSSIBILITY OF SUCH DAMAGES.
- * --Copyright--
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static char sccsid[] = "@(#)res_debug.c        8.1 (Berkeley) 6/4/93";
-static char rcsid[] = "$Id$";
-#endif /* LIBC_SCCS and not lint */
-
-#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 <ctype.h>
-#include <netdb.h>
-#include <resolv.h>
-#include <stdio.h>
-#include <time.h>
-
-#if defined(BSD) && (BSD >= 199103) && defined(AF_INET6)
-# include <stdlib.h>
-# include <string.h>
-#else
-# include "conf/portability.h"
-#endif
-
-#if defined(USE_OPTIONS_H)
-# include "conf/options.h"
-#endif
-
-extern const char *_res_opcodes[];
-extern const char *_res_resultcodes[];
-char * inet_nsap_ntoa();
-const char * inet_ntop();
-
-/* XXX: we should use getservbyport() instead. */
-static const char *
-dewks(wks)
-       int wks;
-{
-       static char nbuf[20];
-
-       switch (wks) {
-       case 5: return "rje";
-       case 7: return "echo";
-       case 9: return "discard";
-       case 11: return "systat";
-       case 13: return "daytime";
-       case 15: return "netstat";
-       case 17: return "qotd";
-       case 19: return "chargen";
-       case 20: return "ftp-data";
-       case 21: return "ftp";
-       case 23: return "telnet";
-       case 25: return "smtp";
-       case 37: return "time";
-       case 39: return "rlp";
-       case 42: return "name";
-       case 43: return "whois";
-       case 53: return "domain";
-       case 57: return "apts";
-       case 59: return "apfs";
-       case 67: return "bootps";
-       case 68: return "bootpc";
-       case 69: return "tftp";
-       case 77: return "rje";
-       case 79: return "finger";
-       case 87: return "link";
-       case 95: return "supdup";
-       case 100: return "newacct";
-       case 101: return "hostnames";
-       case 102: return "iso-tsap";
-       case 103: return "x400";
-       case 104: return "x400-snd";
-       case 105: return "csnet-ns";
-       case 109: return "pop-2";
-       case 111: return "sunrpc";
-       case 113: return "auth";
-       case 115: return "sftp";
-       case 117: return "uucp-path";
-       case 119: return "nntp";
-       case 121: return "erpc";
-       case 123: return "ntp";
-       case 133: return "statsrv";
-       case 136: return "profile";
-       case 144: return "NeWS";
-       case 161: return "snmp";
-       case 162: return "snmp-trap";
-       case 170: return "print-srv";
-       default: (void) sprintf(nbuf, "%d", wks); return (nbuf);
-       }
-}
-
-/* XXX: we should use getprotobynumber() instead. */
-static const char *
-deproto(protonum)
-       int protonum;
-{
-       static char nbuf[20];
-
-       switch (protonum) {
-       case 1: return "icmp";
-       case 2: return "igmp";
-       case 3: return "ggp";
-       case 5: return "st";
-       case 6: return "tcp";
-       case 7: return "ucl";
-       case 8: return "egp";
-       case 9: return "igp";
-       case 11: return "nvp-II";
-       case 12: return "pup";
-       case 16: return "chaos";
-       case 17: return "udp";
-       default: (void) sprintf(nbuf, "%d", protonum); return (nbuf);
-       }
-}
-
-static const u_char *
-do_rrset(msg, len, cp, cnt, pflag, file, hs)
-       int cnt, pflag, len;
-       const u_char *cp, *msg;
-       const char *hs;
-       FILE *file;
-{
-       int n;
-       int sflag;
-
-       /*
-        * Print answer records.
-        */
-       sflag = (_res.pfcode & pflag);
-       if (n = ntohs( (u_short) cnt)) {
-               if ((!_res.pfcode) ||
-                   ((sflag) && (_res.pfcode & RES_PRF_HEAD1)))
-                       fprintf(file, hs);
-               while (--n >= 0) {
-                       if ((!_res.pfcode) || sflag) {
-                               cp = p_rr(cp, msg, file);
-                       } else {
-                               unsigned int dlen;
-                               cp += __dn_skipname(cp, cp + MAXCDNAME);
-                               cp += INT16SZ;
-                               cp += INT16SZ;
-                               cp += INT32SZ;
-                               dlen = _getshort((u_char*)cp);
-                               cp += INT16SZ;
-                               cp += dlen;
-                       }
-                       if ((cp - msg) > len)
-                               return (NULL);
-               }
-               if ((!_res.pfcode) ||
-                   ((sflag) && (_res.pfcode & RES_PRF_HEAD1)))
-                       putc('\n', file);
-       }
-       return (cp);
-}
-
-void
-__p_query(msg)
-       const u_char *msg;
-{
-       __fp_query(msg, stdout);
-}
-
-#ifdef ultrix
-#undef p_query
-/* ultrix 4.0's packaging has some icky packaging.  alias for it here.
- * there is more junk of this kind over in res_comp.c.
- */
-void
-p_query(msg)
-       const u_char *msg;
-{
-       __p_query(msg);
-}
-#endif
-
-/*
- * Print the current options.
- * This is intended to be primarily a debugging routine.
- */
-void
-__fp_resstat(statp, file)
-       struct __res_state *statp;
-       FILE *file;
-{
-       register u_long mask;
-
-       fprintf(file, ";; res options:");
-       if (!statp)
-               statp = &_res;
-       for (mask = 1;  mask != 0;  mask <<= 1)
-               if (statp->options & mask)
-                       fprintf(file, " %s", p_option(mask));
-       putc('\n', file);
-}
-
-/*
- * Print the contents of a query.
- * This is intended to be primarily a debugging routine.
- */
-void
-__fp_nquery(msg, len, file)
-       const u_char *msg;
-       int len;
-       FILE *file;
-{
-       register const u_char *cp, *endMark;
-       register const HEADER *hp;
-       register int n;
-
-       if ((_res.options & RES_INIT) == 0 && res_init() == -1)
-               return;
-
-#define TruncTest(x) if (x > endMark) goto trunc
-#define        ErrorTest(x) if (x == NULL) goto error
-
-       /*
-        * Print header fields.
-        */
-       hp = (HEADER *)msg;
-       cp = msg + HFIXEDSZ;
-       endMark = msg + len;
-       if ((!_res.pfcode) || (_res.pfcode & RES_PRF_HEADX) || hp->rcode) {
-               fprintf(file, ";; ->>HEADER<<- opcode: %s, status: %s, id: %d",
-                       _res_opcodes[hp->opcode],
-                       _res_resultcodes[hp->rcode],
-                       ntohs( (u_short) hp->id));
-               putc('\n', file);
-       }
-       if ((!_res.pfcode) || (_res.pfcode & RES_PRF_HEADX))
-               putc(';', file);
-       if ((!_res.pfcode) || (_res.pfcode & RES_PRF_HEAD2)) {
-               fprintf(file, "; flags:");
-               if (hp->qr)
-                       fprintf(file, " qr");
-               if (hp->aa)
-                       fprintf(file, " aa");
-               if (hp->tc)
-                       fprintf(file, " tc");
-               if (hp->rd)
-                       fprintf(file, " rd");
-               if (hp->ra)
-                       fprintf(file, " ra");
-               if (hp->unused)
-                       fprintf(file, " UNUSED-BIT-ON");
-               if (hp->ad)
-                       fprintf(file, " ad");
-               if (hp->cd)
-                       fprintf(file, " cd");
-       }
-       if ((!_res.pfcode) || (_res.pfcode & RES_PRF_HEAD1)) {
-               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));
-       }
-       if ((!_res.pfcode) || (_res.pfcode & 
-               (RES_PRF_HEADX | RES_PRF_HEAD2 | RES_PRF_HEAD1))) {
-               putc('\n',file);
-       }
-       /*
-        * Print question records.
-        */
-       if (n = ntohs( (u_short) hp->qdcount)) {
-               if ((!_res.pfcode) || (_res.pfcode & RES_PRF_QUES))
-                       fprintf(file, ";; QUESTIONS:\n");
-               while (--n >= 0) {
-                       if ((!_res.pfcode) || (_res.pfcode & RES_PRF_QUES))
-                               fprintf(file, ";;\t");
-                       TruncTest(cp);
-                       if ((!_res.pfcode) || (_res.pfcode & RES_PRF_QUES))
-                               cp = p_cdnname(cp, msg, len, file);
-                       else {
-                               int n;
-                               char name[MAXDNAME];
-
-                               if ((n = dn_expand(msg, msg+len, cp, name,
-                                               sizeof name)) < 0)
-                                       cp = NULL;
-                               else
-                                       cp += n;
-                       }
-                       ErrorTest(cp);
-                       TruncTest(cp);
-                       if ((!_res.pfcode) || (_res.pfcode & RES_PRF_QUES))
-                               fprintf(file, ", type = %s",
-                                       __p_type(_getshort((u_char*)cp)));
-                       cp += INT16SZ;
-                       TruncTest(cp);
-                       if ((!_res.pfcode) || (_res.pfcode & RES_PRF_QUES))
-                               fprintf(file, ", class = %s\n",
-                                       __p_class(_getshort((u_char*)cp)));
-                       cp += INT16SZ;
-                       if ((!_res.pfcode) || (_res.pfcode & RES_PRF_QUES))
-                               putc('\n', file);
-               }
-       }
-       /*
-        * Print authoritative answer records
-        */
-       TruncTest(cp);
-       cp = do_rrset(msg, len, cp, hp->ancount, RES_PRF_ANS, file,
-                     ";; ANSWERS:\n");
-       ErrorTest(cp);
-
-       /*
-        * print name server records
-        */
-       TruncTest(cp);
-       cp = do_rrset(msg, len, cp, hp->nscount, RES_PRF_AUTH, file,
-                     ";; AUTHORITY RECORDS:\n");
-       ErrorTest(cp);
-
-       TruncTest(cp);
-       /*
-        * print additional records
-        */
-       cp = do_rrset(msg, len, cp, hp->arcount, RES_PRF_ADD, file,
-                     ";; ADDITIONAL RECORDS:\n");
-       ErrorTest(cp);
-       return;
- trunc:
-       fprintf(file, "\n;; ...truncated\n");
-       return;
- error:
-       fprintf(file, "\n;; ...malformed\n");
-}
-
-void
-__fp_query(msg, file)
-       const u_char *msg;
-       FILE *file;
-{
-       fp_nquery(msg, PACKETSZ, file);
-}
-
-const u_char *
-__p_cdnname(cp, msg, len, file)
-       const u_char *cp, *msg;
-       int len;
-       FILE *file;
-{
-       char name[MAXDNAME];
-       int n;
-
-       if ((n = dn_expand(msg, msg + len, cp, name, sizeof name)) < 0)
-               return (NULL);
-       if (name[0] == '\0')
-               putc('.', file);
-       else
-               fputs(name, file);
-       return (cp + n);
-}
-
-const u_char *
-__p_cdname(cp, msg, file)
-       const u_char *cp, *msg;
-       FILE *file;
-{
-       return (p_cdnname(cp, msg, PACKETSZ, file));
-}
-
-
-/* Return a fully-qualified domain name from a compressed name (with
-   length supplied).  */
-
-const u_char *
-__p_fqnname(cp, msg, msglen, name, namelen)
-       const u_char *cp, *msg;
-       int msglen;
-       char *name;
-       int namelen;
-{
-       int n, newlen;
-
-       if ((n = dn_expand(msg, cp + msglen, cp, name, namelen)) < 0)
-               return (NULL);
-       newlen = strlen (name);
-       if (newlen == 0 || name[newlen - 1] != '.')
-               if (newlen+1 >= namelen)        /* Lack space for final dot */
-                       return (NULL);
-               else
-                       strcpy(name + newlen, ".");
-       return (cp + n);
-}
-
-/* XXX:        the rest of these functions need to become length-limited, too. (vix)
- */
-
-const u_char *
-__p_fqname(cp, msg, file)
-       const u_char *cp, *msg;
-       FILE *file;
-{
-       char name[MAXDNAME];
-       const u_char *n;
-
-       n = __p_fqnname(cp, msg, MAXCDNAME, name, sizeof name);
-       if (n == NULL)
-               return (NULL);
-       fputs(name, file);
-       return (n);
-}
-
-/*
- * Print resource record fields in human readable form.
- */
-const u_char *
-__p_rr(cp, msg, file)
-       const u_char *cp, *msg;
-       FILE *file;
-{
-       int type, class, dlen, n, c;
-       struct in_addr inaddr;
-       const u_char *cp1, *cp2;
-       u_int32_t tmpttl, t;
-       int lcnt;
-       u_int16_t keyflags;
-       char rrname[MAXDNAME];          /* The fqdn of this RR */
-       char base64_key[MAX_KEY_BASE64];
-
-       if ((_res.options & RES_INIT) == 0 && res_init() == -1) {
-#ifndef WINNT
-               h_errno = NETDB_INTERNAL;
-#else
-               WSASetLastError(NETDB_INTERNAL);
-#endif
-               return (NULL);
-       }
-       cp = __p_fqnname(cp, msg, MAXCDNAME, rrname, sizeof rrname);
-       if (!cp)
-               return (NULL);                  /* compression error */
-       fputs(rrname, file);
-       
-       type = _getshort((u_char*)cp);
-       cp += INT16SZ;
-       class = _getshort((u_char*)cp);
-       cp += INT16SZ;
-       tmpttl = _getlong((u_char*)cp);
-       cp += INT32SZ;
-       dlen = _getshort((u_char*)cp);
-       cp += INT16SZ;
-       cp1 = cp;
-       if ((!_res.pfcode) || (_res.pfcode & RES_PRF_TTLID))
-               fprintf(file, "\t%lu", (u_long)tmpttl);
-       if ((!_res.pfcode) || (_res.pfcode & RES_PRF_CLASS))
-               fprintf(file, "\t%s", __p_class(class));
-       fprintf(file, "\t%s", __p_type(type));
-       /*
-        * Print type specific data, if appropriate
-        */
-       switch (type) {
-       case T_A:
-               switch (class) {
-               case C_IN:
-               case C_HS:
-                       bcopy(cp, (char *)&inaddr, INADDRSZ);
-                       if (dlen == 4) {
-                               fprintf(file, "\t%s", inet_ntoa(inaddr));
-                               cp += dlen;
-                       } else if (dlen == 7) {
-                               char *address;
-                               u_char protocol;
-                               u_short port;
-
-                               address = inet_ntoa(inaddr);
-                               cp += INADDRSZ;
-                               protocol = *(u_char*)cp;
-                               cp += sizeof (u_char);
-                               port = _getshort((u_char*)cp);
-                               cp += INT16SZ;
-                               fprintf(file, "\t%s\t; proto %d, port %d",
-                                       address, protocol, port);
-                       }
-                       break;
-               default:
-                       cp += dlen;
-               }
-               break;
-       case T_CNAME:
-       case T_MB:
-       case T_MG:
-       case T_MR:
-       case T_NS:
-       case T_PTR:
-               putc('\t', file);
-               if ((cp = p_fqname(cp, msg, file)) == NULL)
-                       return (NULL);
-               break;
-
-       case T_HINFO:
-       case T_ISDN:
-               cp2 = cp + dlen;
-               (void) fputs("\t\"", file);
-               if ((n = (unsigned char) *cp++) != 0) {
-                       for (c = n; c > 0 && cp < cp2; c--) {
-                               if (strchr("\n\"\\", *cp))
-                                       (void) putc('\\', file);
-                               (void) putc(*cp++, file);
-                       }
-               }
-               putc('"', file);
-               if (cp < cp2 && (n = (unsigned char) *cp++) != 0) {
-                       (void) fputs ("\t\"", file);
-                       for (c = n; c > 0 && cp < cp2; c--) {
-                               if (strchr("\n\"\\", *cp))
-                                       (void) putc('\\', file);
-                               (void) putc(*cp++, file);
-                       }
-                       putc('"', file);
-               } else if (type == T_HINFO) {
-                       (void) fputs("\"?\"", file);
-                       fprintf(file, "\n;; *** Warning *** OS-type missing");
-               }
-               break;
-
-       case T_SOA:
-               putc('\t', file);
-               if ((cp = p_fqname(cp, msg, file)) == NULL)
-                       return (NULL);
-               putc(' ', file);
-               if ((cp = p_fqname(cp, msg, file)) == NULL)
-                       return (NULL);
-               fputs(" (\n", file);
-               t = _getlong((u_char*)cp);  cp += INT32SZ;
-               fprintf(file, "\t\t\t%lu\t; serial\n", (u_long)t);
-               t = _getlong((u_char*)cp);  cp += INT32SZ;
-               fprintf(file, "\t\t\t%lu\t; refresh (%s)\n",
-                       (u_long)t, __p_time(t));
-               t = _getlong((u_char*)cp);  cp += INT32SZ;
-               fprintf(file, "\t\t\t%lu\t; retry (%s)\n",
-                       (u_long)t, __p_time(t));
-               t = _getlong((u_char*)cp);  cp += INT32SZ;
-               fprintf(file, "\t\t\t%lu\t; expire (%s)\n",
-                       (u_long)t, __p_time(t));
-               t = _getlong((u_char*)cp);  cp += INT32SZ;
-               fprintf(file, "\t\t\t%lu )\t; minimum (%s)",
-                       (u_long)t, __p_time(t));
-               break;
-
-       case T_MX:
-       case T_AFSDB:
-       case T_RT:
-               fprintf(file, "\t%d ", _getshort((u_char*)cp));
-               cp += INT16SZ;
-               if ((cp = p_fqname(cp, msg, file)) == NULL)
-                       return (NULL);
-               break;
-
-       case T_PX:
-               fprintf(file, "\t%d ", _getshort((u_char*)cp));
-               cp += INT16SZ;
-               if ((cp = p_fqname(cp, msg, file)) == NULL)
-                       return (NULL);
-               putc(' ', file);
-               if ((cp = p_fqname(cp, msg, file)) == NULL)
-                       return (NULL);
-               break;
-
-       case T_X25:
-               cp2 = cp + dlen;
-               (void) fputs("\t\"", file);
-               if ((n = (unsigned char) *cp++) != 0) {
-                       for (c = n; c > 0 && cp < cp2; c--) {
-                               if (strchr("\n\"\\", *cp))
-                                       (void) putc('\\', file);
-                               (void) putc(*cp++, file);
-                       }
-               }
-               putc('"', file);
-               break;
-
-       case T_TXT:
-               (void) putc('\t', file);
-               cp2 = cp1 + dlen;
-               while (cp < cp2) {
-                       putc('"', file);
-                       if (n = (unsigned char) *cp++) {
-                               for (c = n; c > 0 && cp < cp2; c--) {
-                                       if (strchr("\n\"\\", *cp))
-                                               (void) putc('\\', file);
-                                       (void) putc(*cp++, file);
-                               }
-                       }
-                       putc('"', file);
-                       if (cp < cp2)
-                               putc(' ', file);
-               }
-               break;
-
-       case T_NSAP:
-               (void) fprintf(file, "\t%s", inet_nsap_ntoa(dlen, cp, NULL));
-               cp += dlen;
-               break;
-
-       case T_AAAA: {
-               char t[sizeof "ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255"];
-
-               fprintf(file, "\t%s", inet_ntop(AF_INET6, cp, t, sizeof t));
-               cp += dlen;
-               break;
-           }
-
-       case T_LOC: {
-               char t[255];
-
-               fprintf(file, "\t%s", loc_ntoa(cp, t));
-               cp += dlen;
-               break;
-           }
-
-       case T_NAPTR: {
-               u_int order, preference;
-
-               order = _getshort(cp);  cp += INT16SZ;
-               preference   = _getshort(cp);  cp += INT16SZ;
-               fprintf(file, "\t%u %u ",order, preference);
-               /* Flags */
-               n = *cp++;
-               fprintf(file,"\"%.*s\" ", (int)n, cp);
-               cp += n;
-               /* Service */
-               n = *cp++;
-               fprintf(file,"\"%.*s\" ", (int)n, cp);
-               cp += n;
-               /* Regexp */
-               n = *cp++;
-               fprintf(file,"\"%.*s\" ", (int)n, cp);
-               cp += n;
-               if ((cp = p_fqname(cp, msg, file)) == NULL)
-                       return (NULL);
-               break;
-           }
-
-       case T_SRV: {
-               u_int priority, weight, port;
-
-               priority = _getshort(cp);  cp += INT16SZ;
-               weight   = _getshort(cp);  cp += INT16SZ;
-               port     = _getshort(cp);  cp += INT16SZ;
-               fprintf(file, "\t%u %u %u ", priority, weight, port);
-               if ((cp = p_fqname(cp, msg, file)) == NULL)
-                       return (NULL);
-               break;
-           }
-
-       case T_MINFO:
-       case T_RP:
-               putc('\t', file);
-               if ((cp = p_fqname(cp, msg, file)) == NULL)
-                       return (NULL);
-               putc(' ', file);
-               if ((cp = p_fqname(cp, msg, file)) == NULL)
-                       return (NULL);
-               break;
-
-       case T_UINFO:
-               putc('\t', file);
-               fputs((char *)cp, file);
-               cp += dlen;
-               break;
-
-       case T_UID:
-       case T_GID:
-               if (dlen == 4) {
-                       fprintf(file, "\t%u", _getlong((u_char*)cp));
-                       cp += INT32SZ;
-               }
-               break;
-
-       case T_WKS:
-               if (dlen < INT32SZ + 1)
-                       break;
-               bcopy(cp, (char *)&inaddr, INADDRSZ);
-               cp += INT32SZ;
-               fprintf(file, "\t%s %s ( ",
-                       inet_ntoa(inaddr),
-                       deproto((int) *cp));
-               cp += sizeof (u_char);
-               n = 0;
-               lcnt = 0;
-               while (cp < cp1 + dlen) {
-                       c = *cp++;
-                       do {
-                               if (c & 0200) {
-                                       if (lcnt == 0) {
-                                               fputs("\n\t\t\t", file);
-                                               lcnt = 5;
-                                       }
-                                       fputs(dewks(n), file);
-                                       putc(' ', file);
-                                       lcnt--;
-                               }
-                               c <<= 1;
-                       } while (++n & 07);
-               }
-               putc(')', file);
-               break;
-
-       case T_KEY:
-               putc('\t', file);
-               keyflags = _getshort(cp);
-               cp += 2;
-               fprintf(file,"0x%04x", keyflags );      /* flags */
-               fprintf(file," %u", *cp++);     /* protocol */
-               fprintf(file," %u (", *cp++);   /* algorithm */
-
-               n = b64_ntop(cp, (cp1 + dlen) - cp,
-                            base64_key, sizeof base64_key);
-               for (c = 0; c < n; ++c) {
-                       if (0 == (c & 0x3F))
-                               fprintf(file, "\n\t");
-                       putc(base64_key[c], file);  /* public key data */
-               }
-
-               fprintf(file, " )");
-               if (n < 0)
-                       fprintf(file, "\t; BAD BASE64");
-               fflush(file);
-               cp = cp1 + dlen;
-               break;
-
-       case T_SIG:
-               type = _getshort((u_char*)cp);
-               cp += INT16SZ;
-               fprintf(file, " %s", p_type(type));
-               fprintf(file, "\t%d", *cp++);   /* algorithm */
-               /* Check label value and print error if wrong. */
-               n = *cp++;
-               c = dn_count_labels (rrname);
-               if (n != c)
-                       fprintf(file, "\t; LABELS WRONG (%d should be %d)\n\t",
-                               n, c);
-               /* orig ttl */
-               n = _getlong((u_char*)cp);
-               if ((u_int32_t)n != tmpttl)
-                       fprintf(file, " %u", n);
-               cp += INT32SZ;
-               /* sig expire */
-               fprintf(file, " (\n\t%s",
-                                    __p_secstodate(_getlong((u_char*)cp)));
-               cp += INT32SZ;
-               /* time signed */
-               fprintf(file, " %s", __p_secstodate(_getlong((u_char*)cp)));
-               cp += INT32SZ;
-               /* sig footprint */
-               fprintf(file," %u ", _getshort((u_char*)cp));
-               cp += INT16SZ;
-               /* signer's name */
-               cp = p_fqname(cp, msg, file);
-               n = b64_ntop(cp, (cp1 + dlen) - cp,
-                            base64_key, sizeof base64_key);
-               for (c = 0; c < n; c++) {
-                       if (0 == (c & 0x3F))
-                               fprintf (file, "\n\t");
-                       putc(base64_key[c], file);              /* signature */
-               }
-               /* Clean up... */
-               fprintf(file, " )");
-               if (n < 0)
-                       fprintf(file, "\t; BAD BASE64");
-               fflush(file);
-               cp = cp1+dlen;
-               break;
-
-#ifdef ALLOW_T_UNSPEC
-       case T_UNSPEC:
-               {
-                       int NumBytes = 8;
-                       u_char *DataPtr;
-                       int i;
-
-                       if (dlen < NumBytes) NumBytes = dlen;
-                       fprintf(file, "\tFirst %d bytes of hex data:",
-                               NumBytes);
-                       for (i = 0, DataPtr = cp; i < NumBytes; i++, DataPtr++)
-                               fprintf(file, " %x", *DataPtr);
-                       cp += dlen;
-               }
-               break;
-#endif /* ALLOW_T_UNSPEC */
-
-       default:
-               fprintf(file, "\t?%d?", type);
-               cp += dlen;
-       }
-#if 0
-       fprintf(file, "\t; dlen=%d, ttl %s\n", dlen, __p_time(tmpttl));
-#else
-       putc('\n', file);
-#endif
-       if (cp - cp1 != dlen) {
-               fprintf(file, ";; packet size error (found %d, dlen was %d)\n",
-                       cp - cp1, dlen);
-               cp = NULL;
-       }
-       return (cp);
-}
-
-/*
- * Names of RR classes and qclasses.  Classes and qclasses are the same, except
- * that C_ANY is a qclass but not a class.  (You can ask for records of class
- * C_ANY, but you can't have any records of that class in the database.)
- */
-const struct res_sym __p_class_syms[] = {
-       {C_IN,          "IN"},
-       {C_CHAOS,       "CHAOS"},
-       {C_HS,          "HS"},
-       {C_HS,          "HESIOD"},
-       {C_ANY,         "ANY"},
-       {C_IN,          (char *)0}
-};
-
-/*
- * Names of RR types and qtypes.  Types and qtypes are the same, except
- * that T_ANY is a qtype but not a type.  (You can ask for records of type
- * T_ANY, but you can't have any records of that type in the database.)
- */
-const struct res_sym __p_type_syms[] = {
-       {T_A,           "A",            "address"},
-       {T_NS,          "NS",           "name server"},
-       {T_MD,          "MD",           "mail destination (deprecated)"},
-       {T_MF,          "MF",           "mail forwarder (deprecated)"},
-       {T_CNAME,       "CNAME",        "canonical name"},
-       {T_SOA,         "SOA",          "start of authority"},
-       {T_MB,          "MB",           "mailbox"},
-       {T_MG,          "MG",           "mail group member"},
-       {T_MR,          "MR",           "mail rename"},
-       {T_NULL,        "NULL",         "null"},
-       {T_WKS,         "WKS",          "well-known service (deprecated)"},
-       {T_PTR,         "PTR",          "domain name pointer"},
-       {T_HINFO,       "HINFO",        "host information"},
-       {T_MINFO,       "MINFO",        "mailbox information"},
-       {T_MX,          "MX",           "mail exchanger"},
-       {T_TXT,         "TXT",          "text"},
-       {T_RP,          "RP",           "responsible person"},
-       {T_AFSDB,       "AFSDB",        "DCE or AFS server"},
-       {T_X25,         "X25",          "X25 address"},
-       {T_ISDN,        "ISDN",         "ISDN address"},
-       {T_RT,          "RT",           "router"},
-       {T_NSAP,        "NSAP",         "nsap address"},
-       {T_NSAP_PTR,    "NSAP_PTR",     "domain name pointer"},
-       {T_SIG,         "SIG",          "signature"},
-       {T_KEY,         "KEY",          "key"},
-       {T_PX,          "PX",           "mapping information"},
-       {T_GPOS,        "GPOS",         "geographical position (withdrawn)"},
-       {T_AAAA,        "AAAA",         "IPv6 address"},
-       {T_LOC,         "LOC",          "location"},
-       {T_NXT,         "NXT",          "next valid name (unimplemented)"},
-       {T_EID,         "EID",          "endpoint identifier (unimplemented)"},
-       {T_NIMLOC,      "NIMLOC",       "NIMROD locator (unimplemented)"},
-       {T_SRV,         "SRV",          "server selection"},
-       {T_ATMA,        "ATMA",         "ATM address (unimplemented)"},
-       {T_IXFR,        "IXFR",         "incremental zone transfer"},
-       {T_AXFR,        "AXFR",         "zone transfer"},
-       {T_MAILB,       "MAILB",        "mailbox-related data (deprecated)"},
-       {T_MAILA,       "MAILA",        "mail agent (deprecated)"},
-       {T_UINFO,       "UINFO",        "user information (nonstandard)"},
-       {T_UID,         "UID",          "user ID (nonstandard)"},
-       {T_GID,         "GID",          "group ID (nonstandard)"},
-       {T_NAPTR,       "NAPTR",        "URN Naming Authority"},
-#ifdef ALLOW_T_UNSPEC
-       {T_UNSPEC,      "UNSPEC",       "unspecified data (nonstandard)"},
-#endif /* ALLOW_T_UNSPEC */
-       {T_ANY,         "ANY",          "\"any\""},
-       {0,             NULL,           NULL}
-};
-
-int
-__sym_ston(syms, name, success)
-       const struct res_sym *syms;
-       char *name;
-       int *success;
-{
-       for (NULL; syms->name != 0; syms++) {
-               if (strcasecmp (name, syms->name) == 0) {
-                       if (success)
-                               *success = 1;
-                       return (syms->number);
-               }
-       }
-       if (success)
-               *success = 0;
-       return (syms->number);          /* The default value. */
-}
-
-const char *
-__sym_ntos(syms, number, success)
-       const struct res_sym *syms;
-       int number;
-       int *success;
-{
-       static char unname[20];
-
-       for (NULL; syms->name != 0; syms++) {
-               if (number == syms->number) {
-                       if (success)
-                               *success = 1;
-                       return (syms->name);
-               }
-       }
-
-       sprintf (unname, "%d", number);
-       if (success)
-               *success = 0;
-       return (unname);
-}
-
-
-const char *
-__sym_ntop(syms, number, success)
-       const struct res_sym *syms;
-       int number;
-       int *success;
-{
-       static char unname[20];
-
-       for (NULL; syms->name != 0; syms++) {
-               if (number == syms->number) {
-                       if (success)
-                               *success = 1;
-                       return (syms->humanname);
-               }
-       }
-       sprintf(unname, "%d", number);
-       if (success)
-               *success = 0;
-       return (unname);
-}
-
-/*
- * Return a string for the type
- */
-const char *
-__p_type(type)
-       int type;
-{
-       return (__sym_ntos (__p_type_syms, type, (int *)0));
-}
-
-/*
- * Return a mnemonic for class
- */
-const char *
-__p_class(class)
-       int class;
-{
-       return (__sym_ntos (__p_class_syms, class, (int *)0));
-}
-
-/*
- * Return a mnemonic for an option
- */
-const char *
-__p_option(option)
-       u_long option;
-{
-       static char nbuf[40];
-
-       switch (option) {
-       case RES_INIT:          return "init";
-       case RES_DEBUG:         return "debug";
-       case RES_AAONLY:        return "aaonly(unimpl)";
-       case RES_USEVC:         return "usevc";
-       case RES_PRIMARY:       return "primry(unimpl)";
-       case RES_IGNTC:         return "igntc";
-       case RES_RECURSE:       return "recurs";
-       case RES_DEFNAMES:      return "defnam";
-       case RES_STAYOPEN:      return "styopn";
-       case RES_DNSRCH:        return "dnsrch";
-       case RES_INSECURE1:     return "insecure1";
-       case RES_INSECURE2:     return "insecure2";
-       default:                sprintf(nbuf, "?0x%lx?", (u_long)option);
-                               return (nbuf);
-       }
-}
-
-/*
- * Return a mnemonic for a time to live
- */
-const char *
-p_time(value)
-       u_int32_t value;
-{
-       static char nbuf[40];
-       int secs, mins, hours, days;
-       register char *p;
-
-       if (value == 0) {
-               strcpy(nbuf, "0 secs");
-               return (nbuf);
-       }
-
-       secs = value % 60;
-       value /= 60;
-       mins = value % 60;
-       value /= 60;
-       hours = value % 24;
-       value /= 24;
-       days = value;
-       value = 0;
-
-#define        PLURALIZE(x)    x, (x == 1) ? "" : "s"
-       p = nbuf;
-       if (days) {
-               (void)sprintf(p, "%d day%s", PLURALIZE(days));
-               while (*++p);
-       }
-       if (hours) {
-               if (days)
-                       *p++ = ' ';
-               (void)sprintf(p, "%d hour%s", PLURALIZE(hours));
-               while (*++p);
-       }
-       if (mins) {
-               if (days || hours)
-                       *p++ = ' ';
-               (void)sprintf(p, "%d min%s", PLURALIZE(mins));
-               while (*++p);
-       }
-       if (secs || ! (days || hours || mins)) {
-               if (days || hours || mins)
-                       *p++ = ' ';
-               (void)sprintf(p, "%d sec%s", PLURALIZE(secs));
-       }
-       return (nbuf);
-}
-
-/*
- * routines to convert between on-the-wire RR format and zone file format.
- * Does not contain conversion to/from decimal degrees; divide or multiply
- * by 60*60*1000 for that.
- */
-
-static unsigned int poweroften[10] = {1, 10, 100, 1000, 10000, 100000,
-                                     1000000,10000000,100000000,1000000000};
-
-/* takes an XeY precision/size value, returns a string representation. */
-static const char *
-precsize_ntoa(prec)
-       u_int8_t prec;
-{
-       static char retbuf[sizeof "90000000.00"];
-       unsigned long val;
-       int mantissa, exponent;
-
-       mantissa = (int)((prec >> 4) & 0x0f) % 10;
-       exponent = (int)((prec >> 0) & 0x0f) % 10;
-
-       val = mantissa * poweroften[exponent];
-
-       (void) sprintf(retbuf, "%ld.%.2ld", val/100, val%100);
-       return (retbuf);
-}
-
-/* converts ascii size/precision X * 10**Y(cm) to 0xXY.  moves pointer. */
-static u_int8_t
-precsize_aton(strptr)
-       char **strptr;
-{
-       u_int8_t retval = 0;
-       char *cp;
-       int exponent = 0;
-       int mantissa = 0;
-
-       cp = *strptr;
-       while (isdigit(*cp)) {
-               if (mantissa == 0)
-                       mantissa = *cp - '0';
-               else
-                       exponent++;
-               cp++;
-       }
-
-       if (*cp == '.') {
-               cp++;
-               if (isdigit(*cp)) {
-                       if (mantissa == 0)
-                               mantissa = *cp - '0';
-                       else
-                               exponent++;
-                       cp++;
-
-                       if (isdigit(*cp)) {
-                               if (mantissa == 0)
-                                       mantissa = *cp - '0';
-                               else
-                                       exponent++;
-                               cp++;
-                       }
-                       else
-                               exponent++;
-               }
-       }
-       else
-               exponent += 2;
-
-       if (mantissa == 0)
-               exponent = 0;
-       retval = (mantissa << 4) | exponent;
-       *strptr = cp;
-       return (retval);
-}
-
-/* converts ascii lat/lon to unsigned encoded 32-bit number.  moves pointer. */
-static u_int32_t
-latlon2ul(latlonstrptr,which)
-       char **latlonstrptr;
-       int *which;
-{
-       register char *cp;
-       u_int32_t retval;
-       int deg = 0, min = 0, secs = 0, secsfrac = 0;
-
-       cp = *latlonstrptr;
-
-       while (isdigit(*cp))
-               deg = deg * 10 + (*cp++ - '0');
-
-       while (isspace(*cp))
-               cp++;
-
-       if (!(isdigit(*cp)))
-               goto fndhemi;
-
-       while (isdigit(*cp))
-               min = min * 10 + (*cp++ - '0');
-
-       while (isspace(*cp))
-               cp++;
-
-       if (!(isdigit(*cp)))
-               goto fndhemi;
-
-       while (isdigit(*cp))
-               secs = secs * 10 + (*cp++ - '0');
-
-       if (*cp == '.') {               /* decimal seconds */
-               cp++;
-               if (isdigit(*cp)) {
-                       secsfrac = (*cp++ - '0') * 100;
-                       if (isdigit(*cp)) {
-                               secsfrac += (*cp++ - '0') * 10;
-                               if (isdigit(*cp)) {
-                                       secsfrac += (*cp++ - '0');
-                               }
-                       }
-               }
-       }
-
-       while (!isspace(*cp))   /* if any trailing garbage */
-               cp++;
-
-       while (isspace(*cp))
-               cp++;
-
- fndhemi:
-       switch (*cp) {
-       case 'N': case 'n':
-       case 'E': case 'e':
-               retval = ((unsigned)1<<31)
-                       + (((((deg * 60) + min) * 60) + secs) * 1000)
-                       + secsfrac;
-               break;
-       case 'S': case 's':
-       case 'W': case 'w':
-               retval = ((unsigned)1<<31)
-                       - (((((deg * 60) + min) * 60) + secs) * 1000)
-                       - secsfrac;
-               break;
-       default:
-               retval = 0;     /* invalid value -- indicates error */
-               break;
-       }
-
-       switch (*cp) {
-       case 'N': case 'n':
-       case 'S': case 's':
-               *which = 1;     /* latitude */
-               break;
-       case 'E': case 'e':
-       case 'W': case 'w':
-               *which = 2;     /* longitude */
-               break;
-       default:
-               *which = 0;     /* error */
-               break;
-       }
-
-       cp++;                   /* skip the hemisphere */
-
-       while (!isspace(*cp))   /* if any trailing garbage */
-               cp++;
-
-       while (isspace(*cp))    /* move to next field */
-               cp++;
-
-       *latlonstrptr = cp;
-
-       return (retval);
-}
-
-/* converts a zone file representation in a string to an RDATA on-the-wire
- * representation. */
-int
-loc_aton(ascii, binary)
-       const char *ascii;
-       u_char *binary;
-{
-       const char *cp, *maxcp;
-       u_char *bcp;
-
-       u_int32_t latit = 0, longit = 0, alt = 0;
-       u_int32_t lltemp1 = 0, lltemp2 = 0;
-       int altmeters = 0, altfrac = 0, altsign = 1;
-       u_int8_t hp = 0x16;     /* default = 1e6 cm = 10000.00m = 10km */
-       u_int8_t vp = 0x13;     /* default = 1e3 cm = 10.00m */
-       u_int8_t siz = 0x12;    /* default = 1e2 cm = 1.00m */
-       int which1 = 0, which2 = 0;
-
-       cp = ascii;
-       maxcp = cp + strlen(ascii);
-
-       lltemp1 = latlon2ul(&cp, &which1);
-
-       lltemp2 = latlon2ul(&cp, &which2);
-
-       switch (which1 + which2) {
-       case 3:                 /* 1 + 2, the only valid combination */
-               if ((which1 == 1) && (which2 == 2)) { /* normal case */
-                       latit = lltemp1;
-                       longit = lltemp2;
-               } else if ((which1 == 2) && (which2 == 1)) { /* reversed */
-                       longit = lltemp1;
-                       latit = lltemp2;
-               } else {        /* some kind of brokenness */
-                       return (0);
-               }
-               break;
-       default:                /* we didn't get one of each */
-               return (0);
-       }
-
-       /* altitude */
-       if (*cp == '-') {
-               altsign = -1;
-               cp++;
-       }
-    
-       if (*cp == '+')
-               cp++;
-
-       while (isdigit(*cp))
-               altmeters = altmeters * 10 + (*cp++ - '0');
-
-       if (*cp == '.') {               /* decimal meters */
-               cp++;
-               if (isdigit(*cp)) {
-                       altfrac = (*cp++ - '0') * 10;
-                       if (isdigit(*cp)) {
-                               altfrac += (*cp++ - '0');
-                       }
-               }
-       }
-
-       alt = (10000000 + (altsign * (altmeters * 100 + altfrac)));
-
-       while (!isspace(*cp) && (cp < maxcp)) /* if trailing garbage or m */
-               cp++;
-
-       while (isspace(*cp) && (cp < maxcp))
-               cp++;
-
-       if (cp >= maxcp)
-               goto defaults;
-
-       siz = precsize_aton(&cp);
-       
-       while (!isspace(*cp) && (cp < maxcp))   /* if trailing garbage or m */
-               cp++;
-
-       while (isspace(*cp) && (cp < maxcp))
-               cp++;
-
-       if (cp >= maxcp)
-               goto defaults;
-
-       hp = precsize_aton(&cp);
-
-       while (!isspace(*cp) && (cp < maxcp))   /* if trailing garbage or m */
-               cp++;
-
-       while (isspace(*cp) && (cp < maxcp))
-               cp++;
-
-       if (cp >= maxcp)
-               goto defaults;
-
-       vp = precsize_aton(&cp);
-
- defaults:
-
-       bcp = binary;
-       *bcp++ = (u_int8_t) 0;  /* version byte */
-       *bcp++ = siz;
-       *bcp++ = hp;
-       *bcp++ = vp;
-       PUTLONG(latit,bcp);
-       PUTLONG(longit,bcp);
-       PUTLONG(alt,bcp);
-    
-       return (16);            /* size of RR in octets */
-}
-
-/* takes an on-the-wire LOC RR and formats it in a human readable format. */
-const char *
-loc_ntoa(binary, ascii)
-       const u_char *binary;
-       char *ascii;
-{
-       static char *error = "?";
-       register const u_char *cp = binary;
-
-       int latdeg, latmin, latsec, latsecfrac;
-       int longdeg, longmin, longsec, longsecfrac;
-       char northsouth, eastwest;
-       int altmeters, altfrac, altsign;
-
-       const int referencealt = 100000 * 100;
-
-       int32_t latval, longval, altval;
-       u_int32_t templ;
-       u_int8_t sizeval, hpval, vpval, versionval;
-    
-       char *sizestr, *hpstr, *vpstr;
-
-       versionval = *cp++;
-
-       if (versionval) {
-               sprintf(ascii, "; error: unknown LOC RR version");
-               return (ascii);
-       }
-
-       sizeval = *cp++;
-
-       hpval = *cp++;
-       vpval = *cp++;
-
-       GETLONG(templ, cp);
-       latval = (templ - ((unsigned)1<<31));
-
-       GETLONG(templ, cp);
-       longval = (templ - ((unsigned)1<<31));
-
-       GETLONG(templ, cp);
-       if (templ < (u_int32_t)referencealt) { /* below WGS 84 spheroid */
-               altval = referencealt - templ;
-               altsign = -1;
-       } else {
-               altval = templ - referencealt;
-               altsign = 1;
-       }
-
-       if (latval < 0) {
-               northsouth = 'S';
-               latval = -latval;
-       } else
-               northsouth = 'N';
-
-       latsecfrac = latval % 1000;
-       latval = latval / 1000;
-       latsec = latval % 60;
-       latval = latval / 60;
-       latmin = latval % 60;
-       latval = latval / 60;
-       latdeg = latval;
-
-       if (longval < 0) {
-               eastwest = 'W';
-               longval = -longval;
-       } else
-               eastwest = 'E';
-
-       longsecfrac = longval % 1000;
-       longval = longval / 1000;
-       longsec = longval % 60;
-       longval = longval / 60;
-       longmin = longval % 60;
-       longval = longval / 60;
-       longdeg = longval;
-
-       altfrac = altval % 100;
-       altmeters = (altval / 100) * altsign;
-
-       if ((sizestr = strdup(precsize_ntoa(sizeval))) == NULL)
-               sizestr = error;
-       if ((hpstr = strdup(precsize_ntoa(hpval))) == NULL)
-               hpstr = error;
-       if ((vpstr = strdup(precsize_ntoa(vpval))) == NULL)
-               vpstr = error;
-
-       sprintf(ascii,
-             "%d %.2d %.2d.%.3d %c %d %.2d %.2d.%.3d %c %d.%.2dm %sm %sm %sm",
-               latdeg, latmin, latsec, latsecfrac, northsouth,
-               longdeg, longmin, longsec, longsecfrac, eastwest,
-               altmeters, altfrac, sizestr, hpstr, vpstr);
-
-       if (sizestr != error)
-               free(sizestr);
-       if (hpstr != error)
-               free(hpstr);
-       if (vpstr != error)
-               free(vpstr);
-
-       return (ascii);
-}
-
-
-/* Return the number of DNS hierarchy levels in the name. */
-int
-__dn_count_labels(name)
-       char *name;
-{
-       int i, len, count;
-
-       len = strlen(name);
-
-       for(i = 0, count = 0; i < len; i++) {
-               if (name[i] == '.')
-                       count++;
-       }
-
-       /* don't count initial wildcard */
-       if (name[0] == '*')
-               if (count)
-                       count--;
-
-       /* don't count the null label for root. */
-       /* if terminating '.' not found, must adjust */
-       /* count to include last label */
-       if (len > 0 && name[len-1] != '.')
-               count++;
-       return (count);
-}
-
-
-/* 
- * Make dates expressed in seconds-since-Jan-1-1970 easy to read.  
- * SIG records are required to be printed like this, by the Secure DNS RFC.
- */
-char *
-__p_secstodate (secs)
-       unsigned long secs;
-{
-       static char output[15];         /* YYYYMMDDHHMMSS and null */
-       time_t clock = secs;
-       struct tm *time;
-       
-       time = gmtime(&clock);
-       time->tm_year += 1900;
-       time->tm_mon += 1;
-       sprintf(output, "%04d%02d%02d%02d%02d%02d",
-               time->tm_year, time->tm_mon, time->tm_mday,
-               time->tm_hour, time->tm_min, time->tm_sec);
-       return (output);
-}
diff --git a/bindlib_w32/res_nt_misc.c b/bindlib_w32/res_nt_misc.c
deleted file mode 100644 (file)
index 90b4044..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/* this function for Windows NT specific resolver stuff L. Kahn */
-
-#include <arpa/inet.h>
-#include <arpa/nameser.h>
-#include <stdio.h>
-#include <ctype.h>
-#include <resolv.h>
-#include <netdb.h>
-#include "conf/portability.h"
-
-char *pathnetworks, *pathhosts, *pathresconf;
-int res_paths_initialized = 0;
-
-
-/* lgk new function to initialize path variables that are outside the scope of the main */
-/* for backwards compatibility allow either resolv.conf or resolv.ini */
-void init_res_paths()
-{
-   FILE *fp;
-   
-       pathhosts = (char *)malloc(MAX_PATH);
-       if (!ExpandEnvironmentStrings(_PATH_HOSTS, pathhosts, MAX_PATH)) 
-               syslog(LOG_ERR, "ExpandEnvironmentStrings(_PATH_HOSTS) failed: %m\n");
-
-       pathnetworks = (char *)malloc(MAX_PATH);
-       if (!ExpandEnvironmentStrings(_PATH_NETWORKS, pathnetworks, MAX_PATH))
-               syslog(LOG_ERR, "ExpandEnvironmentStrings(_PATH_NETWORKS) failed: %m\n");
-
-       pathresconf = (char *)malloc(MAX_PATH);
-       if (!ExpandEnvironmentStrings(_PATH_RESCONF, pathresconf, MAX_PATH)) 
-               syslog(LOG_ERR, "ExpandEnvironmentStrings(_PATH_RESCONF) failed: %m\n");
-
-       else
-          {
-            if ((fp = fopen(pathresconf, "r")) == NULL)
-              {
-                /* try alternate name */
-               if (!ExpandEnvironmentStrings(_ALT_PATH_RESCONF, pathresconf, MAX_PATH)) 
-                 syslog(LOG_ERR, "ExpandEnvironmentStrings(_ALT_PATH_RESCONF) failed: %m\n");
-              }
-            else fclose(fp);
-         }
-
-               
-    res_paths_initialized = 1;
-}
-
-
diff --git a/bindlib_w32/res_query.c b/bindlib_w32/res_query.c
deleted file mode 100644 (file)
index 75409d7..0000000
+++ /dev/null
@@ -1,473 +0,0 @@
-/*
- * ++Copyright++ 1988, 1993
- * -
- * Copyright (c) 1988, 1993
- *    The Regents of the University of California.  All rights reserved.
- * 
- * 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
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * -
- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
- * 
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies, and that
- * the name of Digital Equipment Corporation not be used in advertising or
- * publicity pertaining to distribution of the document or software without
- * specific, written prior permission.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
- * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
- * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
- * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
- * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- * -
- * --Copyright--
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static char sccsid[] = "@(#)res_query.c        8.1 (Berkeley) 6/4/93";
-static char rcsid[] = "$Id$";
-#endif /* LIBC_SCCS and not lint */
-
-#include <sys/types.h>
-#ifndef WINNT
-#include <sys/param.h>
-#include <netinet/in.h>
-#endif
-#include <arpa/inet.h>
-#include <arpa/nameser.h>
-
-#include <stdio.h>
-#include <netdb.h>
-#include <resolv.h>
-#include <ctype.h>
-#include <errno.h>
-#if defined(BSD) && (BSD >= 199306)
-# include <stdlib.h>
-# include <string.h>
-#else
-# include "conf/portability.h"
-#endif
-
-#if defined(USE_OPTIONS_H)
-# include <conf/options.h>
-#endif
-
-#if PACKETSZ > 1024
-#define MAXPACKET      PACKETSZ
-#else
-#define MAXPACKET      1024
-#endif
-
-const char *hostalias __P((const char *));
-#ifndef WINNT
-int h_errno;
-#endif
-
-/*
- * Formulate a normal query, send, and await answer.
- * Returned answer is placed in supplied buffer "answer".
- * Perform preliminary check of answer, returning success only
- * if no error is indicated and the answer count is nonzero.
- * Return the size of the response on success, -1 on error.
- * Error number is left in h_errno.
- *
- * Caller must parse answer and determine whether it answers the question.
- */
-int
-res_query(name, class, type, answer, anslen)
-       const char *name;       /* domain name */
-       int class, type;        /* class and type of query */
-       u_char *answer;         /* buffer to put answer */
-       int anslen;             /* size of answer buffer */
-{
-       u_char buf[MAXPACKET];
-       register HEADER *hp = (HEADER *) answer;
-       int n;
-
-       hp->rcode = NOERROR;    /* default */
-
-       if ((_res.options & RES_INIT) == 0 && res_init() == -1) {
-#ifndef WINNT
-               h_errno = NETDB_INTERNAL;
-#else
-               WSASetLastError(NETDB_INTERNAL);
-#endif
-               return (-1);
-       }
-#ifdef DEBUG
-       if (_res.options & RES_DEBUG)
-               printf(";; res_query(%s, %d, %d)\n", name, class, type);
-#endif
-
-       n = res_mkquery(QUERY, name, class, type, NULL, 0, NULL,
-                       buf, sizeof(buf));
-       if (n <= 0) {
-#ifdef DEBUG
-               if (_res.options & RES_DEBUG)
-                       printf(";; res_query: mkquery failed\n");
-#endif
-#ifndef WINNT
-               h_errno = NO_RECOVERY;
-#else
-               WSASetLastError(NO_RECOVERY);
-#endif
-               return (n);
-       }
-       n = res_send(buf, n, answer, anslen);
-       if (n < 0) {
-#ifdef DEBUG
-               if (_res.options & RES_DEBUG)
-                       printf(";; res_query: send error\n");
-#endif
-#ifndef WINNT
-               h_errno = TRY_AGAIN;
-#else
-               WSASetLastError(TRY_AGAIN);
-#endif
-               return (n);
-       }
-
-       if (hp->rcode != NOERROR || ntohs( (u_short) hp->ancount) == 0) {
-#ifdef DEBUG
-               if (_res.options & RES_DEBUG)
-                       printf(";; rcode = %d, ancount=%d\n", hp->rcode,
-                           ntohs( (u_short) hp->ancount));
-#endif
-               switch (hp->rcode) {
-               case NXDOMAIN:
-#ifndef WINNT
-                       h_errno = HOST_NOT_FOUND;
-#else
-                       WSASetLastError(HOST_NOT_FOUND);
-#endif
-                       break;
-               case SERVFAIL:
-#ifndef WINNT
-                       h_errno = TRY_AGAIN;
-#else
-                       WSASetLastError(TRY_AGAIN);
-#endif
-                       break;
-               case NOERROR:
-#ifndef WINNT
-                       h_errno = NO_DATA;
-#else
-                       WSASetLastError(NO_DATA);
-#endif
-                       break;
-               case FORMERR:
-               case NOTIMP:
-               case REFUSED:
-               default:
-#ifndef WINNT
-                       h_errno = NO_RECOVERY;
-#else
-                       WSASetLastError(NO_RECOVERY);
-#endif
-                       break;
-               }
-               return (-1);
-       }
-       return (n);
-}
-
-/*
- * Formulate a normal query, send, and retrieve answer in supplied buffer.
- * Return the size of the response on success, -1 on error.
- * If enabled, implement search rules until answer or unrecoverable failure
- * is detected.  Error code, if any, is left in h_errno.
- */
-int
-res_search(name, class, type, answer, anslen)
-       const char *name;       /* domain name */
-       int class, type;        /* class and type of query */
-       u_char *answer;         /* buffer to put answer */
-       int anslen;             /* size of answer */
-{
-       register const char *cp, * const *domain;
-       HEADER *hp = (HEADER *) answer;
-       u_int dots;
-       int trailing_dot, ret, saved_herrno;
-       int got_nodata = 0, got_servfail = 0, tried_as_is = 0;
-
-       if ((_res.options & RES_INIT) == 0 && res_init() == -1) {
-#ifndef WINNT
-               h_errno = NETDB_INTERNAL;
-#else
-               WSASetLastError(NETDB_INTERNAL);
-#endif
-               return (-1);
-       }
-#ifndef WINNT
-       errno = 0;
-       h_errno = HOST_NOT_FOUND;       /* default, if we never query */
-#else
-       WSASetLastError(HOST_NOT_FOUND);
-       SetLastError(0);
-#endif
-       dots = 0;
-       for (cp = name; *cp; cp++)
-               dots += (*cp == '.');
-       trailing_dot = 0;
-       if (cp > name && *--cp == '.')
-               trailing_dot++;
-
-       /*
-        * if there aren't any dots, it could be a user-level alias
-        */
-       if (!dots && (cp = __hostalias(name)) != NULL)
-               return (res_query(cp, class, type, answer, anslen));
-
-       /*
-        * If there are dots in the name already, let's just give it a try
-        * 'as is'.  The threshold can be set with the "ndots" option.
-        */
-       saved_herrno = -1;
-       if (dots >= _res.ndots) {
-               ret = res_querydomain(name, NULL, class, type, answer, anslen);
-               if (ret > 0)
-                       return (ret);
-#ifndef WINNT
-               saved_herrno = h_errno;
-#else
-                saved_herrno = WSAGetLastError();
-#endif
-               tried_as_is++;
-       }
-
-       /*
-        * We do at least one level of search if
-        *      - there is no dot and RES_DEFNAME is set, or
-        *      - there is at least one dot, there is no trailing dot,
-        *        and RES_DNSRCH is set.
-        */
-       if ((!dots && (_res.options & RES_DEFNAMES)) ||
-           (dots && !trailing_dot && (_res.options & RES_DNSRCH))) {
-               int done = 0;
-
-               for (domain = (const char * const *)_res.dnsrch;
-                    *domain && !done;
-                    domain++) {
-
-                       ret = res_querydomain(name, *domain, class, type,
-                                             answer, anslen);
-                       if (ret > 0)
-                               return (ret);
-
-                       /*
-                        * If no server present, give up.
-                        * If name isn't found in this domain,
-                        * keep trying higher domains in the search list
-                        * (if that's enabled).
-                        * On a NO_DATA error, keep trying, otherwise
-                        * a wildcard entry of another type could keep us
-                        * from finding this entry higher in the domain.
-                        * If we get some other error (negative answer or
-                        * server failure), then stop searching up,
-                        * but try the input name below in case it's
-                        * fully-qualified.
-                        */
-                       if (errno == ECONNREFUSED) {
-#ifndef WINNT
-                               h_errno = TRY_AGAIN;
-#else
-                               WSASetLastError(TRY_AGAIN);
-#endif
-                               return (-1);
-                       }
-
-                       switch (h_errno) {
-                       case NO_DATA:
-                               got_nodata++;
-                               /* FALLTHROUGH */
-                       case HOST_NOT_FOUND:
-                               /* keep trying */
-                               break;
-                       case TRY_AGAIN:
-                               if (hp->rcode == SERVFAIL) {
-                                       /* try next search element, if any */
-                                       got_servfail++;
-                                       break;
-                               }
-                               /* FALLTHROUGH */
-                       default:
-                               /* anything else implies that we're done */
-                               done++;
-                       }
-
-                       /* if we got here for some reason other than DNSRCH,
-                        * we only wanted one iteration of the loop, so stop.
-                        */
-                       if (!(_res.options & RES_DNSRCH))
-                               done++;
-               }
-       }
-
-       /* if we have not already tried the name "as is", do that now.
-        * note that we do this regardless of how many dots were in the
-        * name or whether it ends with a dot.
-        */
-       if (!tried_as_is) {
-               ret = res_querydomain(name, NULL, class, type, answer, anslen);
-               if (ret > 0)
-                       return (ret);
-       }
-
-       /* if we got here, we didn't satisfy the search.
-        * if we did an initial full query, return that query's h_errno
-        * (note that we wouldn't be here if that query had succeeded).
-        * else if we ever got a nodata, send that back as the reason.
-        * else send back meaningless h_errno, that being the one from
-        * the last DNSRCH we did.
-        */
-#ifndef WINNT
-       if (saved_herrno != -1)
-               h_errno = saved_herrno;
-       else if (got_nodata)
-               h_errno = NO_DATA;
-       else if (got_servfail)
-               h_errno = TRY_AGAIN;
-#else
-       if (saved_herrno != -1)
-               WSASetLastError(saved_herrno);
-       else if (got_nodata)
-               WSASetLastError(NO_DATA);
-       else if (got_servfail)
-               WSASetLastError(TRY_AGAIN);
-#endif
-       return (-1);
-}
-
-/*
- * Perform a call on res_query on the concatenation of name and domain,
- * removing a trailing dot from name if domain is NULL.
- */
-int
-res_querydomain(name, domain, class, type, answer, anslen)
-       const char *name, *domain;
-       int class, type;        /* class and type of query */
-       u_char *answer;         /* buffer to put answer */
-       int anslen;             /* size of answer */
-{
-       char nbuf[MAXDNAME];
-       const char *longname = nbuf;
-       int n, d;
-
-       if ((_res.options & RES_INIT) == 0 && res_init() == -1) {
-#ifndef WINNT
-               h_errno = NETDB_INTERNAL;
-#else
-               WSASetLastError(NETDB_INTERNAL);
-#endif
-               return (-1);
-       }
-#ifdef DEBUG
-       if (_res.options & RES_DEBUG)
-               printf(";; res_querydomain(%s, %s, %d, %d)\n",
-                      name, domain?domain:"<Nil>", class, type);
-#endif
-       if (domain == NULL) {
-               /*
-                * Check for trailing '.';
-                * copy without '.' if present.
-                */
-               n = strlen(name);
-               if (n >= MAXDNAME) {
-#ifndef WINNT
-               h_errno = NO_RECOVERY;
-#else
-               WSASetLastError(NO_RECOVERY);
-#endif
-                       return (-1);
-               }
-               n--;
-               if (n >= 0 && name[n] == '.') {
-                       strncpy(nbuf, name, n);
-                       nbuf[n] = '\0';
-               } else
-                       longname = name;
-       } else {
-               n = strlen(name);
-               d = strlen(domain);
-               if (n + d + 1 >= MAXDNAME) {
-#ifndef WINNT
-               h_errno = NO_RECOVERY;
-#else
-               WSASetLastError(NO_RECOVERY);
-#endif
-                       return (-1);
-               }
-               sprintf(nbuf, "%s.%s", name, domain);
-       }
-       return (res_query(longname, class, type, answer, anslen));
-}
-
-const char *
-hostalias(name)
-       register const char *name;
-{
-       register char *cp1, *cp2;
-       FILE *fp;
-       char *file;
-       char buf[BUFSIZ];
-       static char abuf[MAXDNAME];
-
-       if (_res.options & RES_NOALIASES)
-               return (NULL);
-       file = getenv("HOSTALIASES");
-       if (file == NULL || (fp = fopen(file, "r")) == NULL)
-               return (NULL);
-       setbuf(fp, NULL);
-       buf[sizeof(buf) - 1] = '\0';
-       while (fgets(buf, sizeof(buf), fp)) {
-               for (cp1 = buf; *cp1 && !isspace(*cp1); ++cp1)
-                       ;
-               if (!*cp1)
-                       break;
-               *cp1 = '\0';
-               if (!strcasecmp(buf, name)) {
-                       while (isspace(*++cp1))
-                               ;
-                       if (!*cp1)
-                               break;
-                       for (cp2 = cp1 + 1; *cp2 && !isspace(*cp2); ++cp2)
-                               ;
-                       abuf[sizeof(abuf) - 1] = *cp2 = '\0';
-                       strncpy(abuf, cp1, sizeof(abuf) - 1);
-                       fclose(fp);
-                       return (abuf);
-               }
-       }
-       fclose(fp);
-       return (NULL);
-}
diff --git a/bindlib_w32/writev.c b/bindlib_w32/writev.c
deleted file mode 100644 (file)
index ded962e..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-#ifndef LINT
-static char rcsid[] = "$Id$";
-#endif
-
-/* writev() emulations contained in this source file for the following systems:
- *
- *     Cray UNICOS
- *     SCO
- *  WindowsNT
- */
-
-#if defined(_CRAY)
-#define OWN_WRITEV
-#include <sys/types.h>
-#include <sys/uio.h>
-#include <sys/stat.h>
-#include <sys/socket.h>
-
-int
-__writev(int fd, struct iovec *iov, int iovlen)
-{
-       struct stat statbuf;
-
-       if (fstat(fd, &statbuf) < 0)
-               return (-1);
-
-       /*
-        * Allow for atomic writes to network.
-        */
-       if (statbuf.st_mode & S_IFSOCK) {
-               struct msghdr   mesg;           
-
-               mesg.msg_name = 0;
-               mesg.msg_namelen = 0;
-               mesg.msg_iov = iov;
-               mesg.msg_iovlen = iovlen;
-               mesg.msg_accrights = 0;
-               mesg.msg_accrightslen = 0;
-               return (sendmsg(fd, &mesg, 0));
-       } else {
-               register struct iovec *tv;
-               register int i, rcode = 0, count = 0;
-
-               for (i = 0, tv = iov; i <= iovlen; tv++) {
-                       rcode = write(fd, tv->iov_base, tv->iov_len);
-
-                       if (rcode < 0)
-                               break;
-
-                       count += rcode;
-               }
-
-               if (count == 0)
-                       return (rcode);
-               else
-                       return (count);
-       }
-}
-#endif
-
-#if defined (M_UNIX) && !defined(_SCO_DS) || defined (NEED_WRITEV)
-#define OWN_WRITEV
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/uio.h>
-
-int
-__writev(fd, vp, vpcount)
-       int fd;
-       const struct iovec *vp;
-       register int vpcount;
-{
-       register int count = 0;
-
-       while (vpcount-- > 0) {
-               register int written = write(fd, vp->iov_base, vp->iov_len);
-
-               if (written <= 0)
-                       return (-1);
-               count += written;
-               vp++;
-       }
-       return (count);
-}
-#endif
-
-#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 */
-/* Zeev:  We don't compile the whole bindlib, so stay with Windows 95's implementation
- * (we dont have the hReadWriteEvent handle available)
- */
-
-int
-writev(fd, iov, iovcnt)
-       int fd;
-       struct iovec *iov;
-       int iovcnt;
-{
-       int i;
-       char *base;
-       DWORD BytesWritten, TotalBytesWritten = 0, len;
-       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 // winnt
-
-#ifndef OWN_WRITEV
-int __bindcompat_writev;
-#endif