get rid of silly top-level trunk dirmaster
authorfyodor <fyodor@e0a8ed71-7df4-0310-8962-fdc924857419>
Mon, 11 Apr 2005 22:34:19 +0000 (11 22:34 +0000)
committerfyodor <fyodor@e0a8ed71-7df4-0310-8962-fdc924857419>
Mon, 11 Apr 2005 22:34:19 +0000 (11 22:34 +0000)
git-svn-id: https://svn.nmap.org/trunk@2645 e0a8ed71-7df4-0310-8962-fdc924857419

36 files changed:
nsock/TODO [deleted file]
nsock/examples/Makefile [deleted file]
nsock/examples/README [deleted file]
nsock/examples/nsock_telnet.c [deleted file]
nsock/examples/nsock_test_timers.c [deleted file]
nsock/include/nsock.h [deleted file]
nsock/nsock.vcproj [deleted file]
nsock/src/Makefile.in [deleted file]
nsock/src/aclocal.m4 [deleted file]
nsock/src/config.guess [deleted file]
nsock/src/config.sub [deleted file]
nsock/src/configure [deleted file]
nsock/src/configure.ac [deleted file]
nsock/src/error.c [deleted file]
nsock/src/error.h [deleted file]
nsock/src/filespace.c [deleted file]
nsock/src/filespace.h [deleted file]
nsock/src/gh_list.c [deleted file]
nsock/src/gh_list.h [deleted file]
nsock/src/install-sh [deleted file]
nsock/src/netutils.c [deleted file]
nsock/src/netutils.h [deleted file]
nsock/src/nsock_config.h.in [deleted file]
nsock/src/nsock_connect.c [deleted file]
nsock/src/nsock_core.c [deleted file]
nsock/src/nsock_event.c [deleted file]
nsock/src/nsock_internal.h [deleted file]
nsock/src/nsock_iod.c [deleted file]
nsock/src/nsock_pool.c [deleted file]
nsock/src/nsock_read.c [deleted file]
nsock/src/nsock_ssl.c [deleted file]
nsock/src/nsock_ssl.h [deleted file]
nsock/src/nsock_timers.c [deleted file]
nsock/src/nsock_utils.c [deleted file]
nsock/src/nsock_utils.h [deleted file]
nsock/src/nsock_write.c [deleted file]

diff --git a/nsock/TODO b/nsock/TODO
deleted file mode 100644 (file)
index fd4da8f..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-
-Todo:
--- Killing an IOD should kill all events associated with it.
--- Write some rather grueling socket tests
--- Add ms pool options (debugging support, error fd, etc)
--- Add statistics gathering to nsock
--- Add Asynch DNS to Nsock
--- Add C++ Wrapper around nsock (OTOH maybe I should just use the C
-   version even in C++ progs).  Yeah, that sounds like the right way
-   to go.
-
-Done:
--- Add sd accessor functions to iod
--- Insure the peer and peerport stuff are always updated.
--- Ignore EPIPE
--- Remember to up max file descriptors to 1024 or whatever
--- Change name to nsock -- Nmap Socket Library
--- Add the bodies for the msock_timer event requests
--- next_event stuff is not updated as much as it should be.
--- Add the bodies for the msock_write event requests
--- Ensure that event timeouts really work
--- Ensure that msock_loop timeouts really work.
--- msock_core:224 -- be sure to lower max_sd value
--- move tod initialization into msp new
--- msevent.c:190 (only make the change if the event is the same as is
-   being deleted)
--- Change 'next' generation in iterate_through_event list to right
-   before the deletion of the element.
--- Clear finished events from the results descriptor sets too.
--- PREPEND new events to the event list
--- Change event id generation to use the RIGHTMOST bits to store types
diff --git a/nsock/examples/Makefile b/nsock/examples/Makefile
deleted file mode 100644 (file)
index 7d5b70c..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-CC = gcc
-CCOPT =
-DEFS = 
-NBASEDIR=../../nbase
-NSOCKLIB=../src/libnsock.a
-NBASELIB=$(NBASEDIR)/libnbase.a
-OPENSSLLIB=-lssl -lcrypt
-INCLS = -I../include -I$(NBASEDIR)
-CFLAGS =  -I/usr/local/include -Wall -g $(CCOPT) $(DEFS) $(INCLS)
-LDFLAGS =
-RM = rm -f
-
-TARGETS = nsock_telnet nsock_test_timers
-
-all: $(TARGETS)
-
-nsock_telnet: nsock_telnet.o $(NSOCKLIB)
-       $(CC) -o $@ $(CFLAGS) nsock_telnet.o $(NSOCKLIB) $(NBASELIB) $(OPENSSLLIB)
-
-nsock_test_timers: nsock_test_timers.o $(NSOCKLIB)
-       $(CC) -o $@ $(CFLAGS) nsock_test_timers.o $(NSOCKLIB) $(NBASELIB) $(OPENSSLLIB)
-
-clean:
-       $(RM) *.o $(TARGETS)
diff --git a/nsock/examples/README b/nsock/examples/README
deleted file mode 100644 (file)
index d3c66f5..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-$Id$
-
-Here are some example programs, they weren't really written to
-present nice and elegant use of the nsock library.  They were
-actually written for my testing purposes during development.  So don't
-be surprised if you see code that looks strange, or even downright
-evil -- I'm testing the code reliability.
-
--Fyodor
\ No newline at end of file
diff --git a/nsock/examples/nsock_telnet.c b/nsock/examples/nsock_telnet.c
deleted file mode 100644 (file)
index 90515df..0000000
+++ /dev/null
@@ -1,262 +0,0 @@
-/***************************************************************************
- * nsock_telnet.c -- A simple "telnet" client -- a trivial example of      *
- * using the nsock parallel socket event library                           *
- *                                                                         *
- ***********************IMPORTANT NSOCK LICENSE TERMS***********************
- *                                                                         *
- * The nsock parallel socket event library is (C) 1999-2004 Insecure.Com   *
- * LLC This library is free software; you may redistribute and/or          *
- * modify it under the terms of the GNU General Public License as          *
- * published by the Free Software Foundation; Version 2.  This guarantees  *
- * your right to use, modify, and redistribute this software under certain *
- * conditions.  If this license is unacceptable to you, Insecure.Com LLC   *
- * may be willing to sell alternative licenses (contact                    *
- * [email protected] ).                                                   *
- *                                                                         *
- * As a special exception to the GPL terms, Insecure.Com LLC grants        *
- * permission to link the code of this program with any version of the     *
- * OpenSSL library which is distributed under a license identical to that  *
- * listed in the included Copying.OpenSSL file, and distribute linked      *
- * combinations including the two. You must obey the GNU GPL in all        *
- * respects for all of the code used other than OpenSSL.  If you modify    *
- * this file, you may extend this exception to your version of the file,   *
- * but you are not obligated to do so.                                     *
- *                                                                         * 
- * If you received these files with a written license agreement stating    *
- * terms other than the (GPL) terms above, then that alternative license   *
- * agreement takes precedence over this comment.                          *
- *                                                                         *
- * Source is provided to this software because we believe users have a     *
- * right to know exactly what a program is going to do before they run it. *
- * This also allows you to audit the software for security holes (none     *
- * have been found so far).                                                *
- *                                                                         *
- * Source code also allows you to port Nmap to new platforms, fix bugs,    *
- * and add new features.  You are highly encouraged to send your changes   *
- * to [email protected] for possible incorporation into the main         *
- * distribution.  By sending these changes to Fyodor or one the            *
- * insecure.org development mailing lists, it is assumed that you are      *
- * offering Fyodor and Insecure.Com LLC the unlimited, non-exclusive right *
- * to reuse, modify, and relicense the code.  Nmap will always be          *
- * available Open Source, but this is important because the inability to   *
- * relicense code has caused devastating problems for other Free Software  *
- * projects (such as KDE and NASM).  We also occasionally relicense the    *
- * code to third parties as discussed above.  If you wish to specify       *
- * special license conditions of your contributions, just say so when you  *
- * send them.                                                              *
- *                                                                         *
- * This program is distributed in the hope that it will be useful, but     *
- * WITHOUT ANY WARRANTY; without even the implied warranty of              *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU       *
- * General Public License for more details (                               *
- * http://www.gnu.org/copyleft/gpl.html ).                                 *
- *                                                                         *
- ***************************************************************************/
-
-
-#include "nsock.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <netdb.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <assert.h>
-#include <sys/time.h>
-
-#include <openssl/ssl.h>
-#include <openssl/err.h>
-/* #include <nbase.h> */
-
-/* from nbase.h */
-int socket_errno();
-
-
-extern char *optarg;
-extern int optind;
-
-struct telnet_state {
-  nsock_iod tcp_nsi;
-  nsock_iod stdin_nsi;
-  nsock_event_id latest_readtcpev;
-  nsock_event_id latest_readstdinev;
-};
-
-/* Tries to resolve given hostname and stores
-   result in ip .  returns 0 if hostname cannot
-   be resolved */
-int resolve(char *hostname, struct in_addr *ip) {
-  struct hostent *h;
-
-  if (!hostname || !*hostname) {  
-    fprintf(stderr, "NULL or zero-length hostname passed to resolve().  Quitting.\n");
-    exit(1);
-  }
-
-  if (inet_aton(hostname, ip))
-    return 1; /* damn, that was easy ;) */
-  if ((h = gethostbyname(hostname))) {
-    memcpy(ip, h->h_addr_list[0], sizeof(struct in_addr));
-    return 1;
-  }
-  return 0;
-}
-
-void telnet_event_handler(nsock_pool nsp, nsock_event nse, void *mydata) {
-
-nsock_iod nsi = nse_iod(nse);
-enum nse_status status = nse_status(nse);
-enum nse_type type = nse_type(nse);
-struct in_addr peer;
-unsigned short peerport; 
-struct telnet_state *ts;
-int nbytes;
-char *str;
-int read_timeout = -1;
-int write_timeout = 2000;
-
- ts = (struct telnet_state *) mydata; 
-
- printf("telnet_event_handler: Received callback of type %s with status %s\n",
-        nse_type2str(type), nse_status2str(status));
-
- if (status == NSE_STATUS_SUCCESS ) { 
-   switch(type) {
-   case NSE_TYPE_CONNECT:
-   case NSE_TYPE_CONNECT_SSL:
-     nsi_getlastcommunicationinfo(nsi, NULL, NULL, NULL, &peer, &peerport);
-     printf("Successfully connected %sto %s:%hi -- start typing lines\n", (type == NSE_TYPE_CONNECT_SSL)? "(SSL!) " : "", inet_ntoa(peer), peerport);
-     /* First of all, lets add STDIN to our list of watched filehandles */
-     if ((ts->stdin_nsi = nsi_new2(nsp, STDIN_FILENO, NULL)) == NULL) {
-       fprintf(stderr, "Failed to create stdin msi\n");
-       exit(1);
-     }
-
-     /* Now lets read from stdin and the network, line buffered (by nsock) */
-     ts->latest_readtcpev = nsock_readlines(nsp, ts->tcp_nsi, telnet_event_handler, read_timeout, ts, 1);
-     ts->latest_readstdinev = nsock_readlines(nsp, ts->stdin_nsi, telnet_event_handler, read_timeout, ts, 1);
-     break;     
-   case NSE_TYPE_READ:
-     str = nse_readbuf(nse, &nbytes);
-     if (nsi == ts->tcp_nsi) {
-       printf("%s", str);
-       /*       printf("Read from tcp socket (%d bytes):\n%s", nbytes, str); */
-       ts->latest_readtcpev = nsock_readlines(nsp, ts->tcp_nsi, telnet_event_handler, read_timeout, ts, 1);
-     } else {
-       /*       printf("Read from  stdin (%d bytes):\n%s", nbytes, str); */
-       nsock_write(nsp, ts->tcp_nsi, telnet_event_handler, write_timeout, ts, str, nbytes);
-       ts->latest_readstdinev = nsock_readlines(nsp, ts->stdin_nsi, telnet_event_handler, read_timeout, ts, 1);
-     }
-     break;
-   case NSE_TYPE_WRITE:
-     /* Nothing to do, really */
-     break;
-   case NSE_TYPE_TIMER:
-     break;
-   default:
-     fprintf(stderr, "telnet_event_handler: Got bogus type -- quitting\n");
-     exit(1);
-     break;
-   }
- } else if (status == NSE_STATUS_EOF) {
-   printf("Got EOF from %s\nCancelling outstanding readevents.\n", (nsi == ts->tcp_nsi)? "tcp socket" : "stdin");
-   /* One of these is the event I am currently handling!  But I wanted to
-      be evil when testing this out... */
-   if (nsock_event_cancel(nsp, ts->latest_readtcpev, 1) != 0) {
-     printf("Cancelled tcp event: %li\n", ts->latest_readtcpev);
-   }
-   if (nsock_event_cancel(nsp, ts->latest_readstdinev, 1) != 0) {
-     printf("Cancelled stdin event: %li\n", ts->latest_readstdinev);
-   }
- } else if (status == NSE_STATUS_ERROR) {
-   if (nsi_checkssl(nsi)) {
-     printf("SSL %s failed: %s\n", nse_type2str(type), ERR_error_string(ERR_get_error(), NULL));
-   } else {
-     printf("%s failed: %s\n", nse_type2str(type), strerror(socket_errno()));
-   }
- }
- return;
-}
-
-void usage() {
-  fprintf(stderr, "\nUsage: nsock_telnet [-s] [-t tracelevel] <hostnameorip> [portnum]\n"
-         "       Where -s enables SSL for the connection\n\n");
-  exit(1);
-}
-
-int main(int argc, char *argv[]) {
-  struct in_addr target;
-  nsock_pool nsp;
-  nsock_event_id ev;
-  unsigned short portno;
-  enum nsock_loopstatus loopret;
-  struct telnet_state ts;
-  int c;
-  int usessl = 0;
-  int tracelevel = 0;
-  struct timeval now;
-
-  ts.stdin_nsi = NULL;
-
-  while((c = getopt(argc, argv, "st:")) != -1) {
-    switch(c) {
-    case 's':
-      usessl = 1;
-      break;
-    case 't':
-      tracelevel = atoi(optarg);
-      assert(tracelevel >= 0);
-      break;
-    default:
-      usage(); break;
-    }
-  }
-
-  if (argc - optind <= 0 || argc - optind > 2)
-    usage();
-
-
-  if (!resolve(argv[optind], &target)) {
-    fprintf(stderr, "Failed to resolve target host: %s\nQUITTING.\n", argv[optind]);
-    exit(1);
-  }
-  optind++;
-
-  if (optind < argc)
-    portno = atoi(argv[optind]);
-  else portno = 23;
-
-  /* OK, we start with creating a p00l */
-  if ((nsp = nsp_new(NULL)) == NULL) {
-    fprintf(stderr, "Failed to create new pool.  QUITTING.\n");
-    exit(1);
-  }
-
-  gettimeofday(&now, NULL);
-
-  nsp_settrace(nsp, tracelevel, &now);
-
-  if ((ts.tcp_nsi = nsi_new(nsp, NULL)) == NULL) {
-    fprintf(stderr, "Failed to create new nsock_iod.  QUITTING.\n");
-    exit(1);
-  }
-
-  if (usessl)
-    ev = nsock_connect_ssl(nsp, ts.tcp_nsi, telnet_event_handler, 10000, &ts, target, portno);
-  else
-    ev = nsock_connect_tcp(nsp, ts.tcp_nsi, telnet_event_handler, 10000, &ts, target, portno);
-
-  printf("The event id is %lu -- initiating l00p\n", ev);
-
-  /* Now lets get this party started right! */
-  loopret = nsock_loop(nsp, -1);
-
-  printf("nsock_loop returned %d\n", (int) loopret);
-
-  return 0;
-}
diff --git a/nsock/examples/nsock_test_timers.c b/nsock/examples/nsock_test_timers.c
deleted file mode 100644 (file)
index 54c053a..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-/***************************************************************************
- * nsock_test_timers.c -- A test program to exercise the nsock timer       *
- * routines.                                                               *
- *                                                                         *
- ***********************IMPORTANT NSOCK LICENSE TERMS***********************
- *                                                                         *
- * The nsock parallel socket event library is (C) 1999-2004 Insecure.Com   *
- * LLC This library is free software; you may redistribute and/or          *
- * modify it under the terms of the GNU General Public License as          *
- * published by the Free Software Foundation; Version 2.  This guarantees  *
- * your right to use, modify, and redistribute this software under certain *
- * conditions.  If this license is unacceptable to you, Insecure.Com LLC   *
- * may be willing to sell alternative licenses (contact                    *
- * [email protected] ).                                                   *
- *                                                                         *
- * As a special exception to the GPL terms, Insecure.Com LLC grants        *
- * permission to link the code of this program with any version of the     *
- * OpenSSL library which is distributed under a license identical to that  *
- * listed in the included Copying.OpenSSL file, and distribute linked      *
- * combinations including the two. You must obey the GNU GPL in all        *
- * respects for all of the code used other than OpenSSL.  If you modify    *
- * this file, you may extend this exception to your version of the file,   *
- * but you are not obligated to do so.                                     *
- *                                                                         * 
- * If you received these files with a written license agreement stating    *
- * terms other than the (GPL) terms above, then that alternative license   *
- * agreement takes precedence over this comment.                          *
- *                                                                         *
- * Source is provided to this software because we believe users have a     *
- * right to know exactly what a program is going to do before they run it. *
- * This also allows you to audit the software for security holes (none     *
- * have been found so far).                                                *
- *                                                                         *
- * Source code also allows you to port Nmap to new platforms, fix bugs,    *
- * and add new features.  You are highly encouraged to send your changes   *
- * to [email protected] for possible incorporation into the main         *
- * distribution.  By sending these changes to Fyodor or one the            *
- * insecure.org development mailing lists, it is assumed that you are      *
- * offering Fyodor and Insecure.Com LLC the unlimited, non-exclusive right *
- * to reuse, modify, and relicense the code.  Nmap will always be          *
- * available Open Source, but this is important because the inability to   *
- * relicense code has caused devastating problems for other Free Software  *
- * projects (such as KDE and NASM).  We also occasionally relicense the    *
- * code to third parties as discussed above.  If you wish to specify       *
- * special license conditions of your contributions, just say so when you  *
- * send them.                                                              *
- *                                                                         *
- * This program is distributed in the hope that it will be useful, but     *
- * WITHOUT ANY WARRANTY; without even the implied warranty of              *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU       *
- * General Public License for more details (                               *
- * http://www.gnu.org/copyleft/gpl.html ).                                 *
- *                                                                         *
- ***************************************************************************/
-
-
-#include "nsock.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <netdb.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <time.h>
-#include <assert.h>
-
-nsock_event_id ev_ids[2048];
-int num_ids = 0;
-
-nsock_event_id request_timer(nsock_pool nsp, nsock_ev_handler handler,
-                      int timeout_msecs, void *userdata) {
-
-  nsock_event_id id;
-
-  id = nsock_timer_create(nsp, handler, timeout_msecs, userdata);
-  printf("%ld: Created timer ID %li for %d ms from now\n", time(NULL), id,
-        timeout_msecs);
-
-  return id;
-
-}
-
-int try_cancel_timer(nsock_pool *nsp, int idx, int notify) {
-  int res;
-  
-  printf("%ld:Attempting to cancel id %li (idx %d) %s notify.\n",
-        time(NULL), ev_ids[idx], idx, ((notify)? "WITH" : "WITHOUT"));
-  res = nsock_event_cancel(nsp, ev_ids[idx], notify);
-  printf("Kill of %li %s\n", ev_ids[idx], (res == 0)? "FAILED" : "SUCCEEDED");
-  return res;
-}
-
-void timer_handler(nsock_pool nsp, nsock_event nse, void *mydata) {
-enum nse_status status = nse_status(nse);
-enum nse_type type = nse_type(nse);
-int rnd, rnd2;
-printf("%ld:timer_handler: Received callback of type %s; status %s; id %li\n",
-        time(NULL), nse_type2str(type), nse_status2str(status), nse_id(nse));
-
- rnd = rand() % num_ids;
- rnd2 = rand() % 3;
-
- if (num_ids > (sizeof(ev_ids) / sizeof(nsock_event_id)) - 3) {
-   printf("\n\nSUCCEEDED DUE TO CREATING ENOUGH EVENTS THAT IT WAS GOING TO OVERFLOW MY BUFFER :)\n\n");
-   exit(0);
- }
-
- if (status == NSE_STATUS_SUCCESS) { 
-   switch(rnd2) {
-   case 0:
-     /* do nothing */
-     /* Actually I think I'll create two timers :) */
-     ev_ids[num_ids++] = request_timer(nsp, timer_handler, rand() % 3000, NULL);
-     ev_ids[num_ids++] = request_timer(nsp, timer_handler, rand() % 3000, NULL);
-     break;
-   case 1:
-     /* Kill another id (which may or may not be active */
-     try_cancel_timer(nsp, rnd, rand() % 2);
-     break;
-   case 2:
-     /* Create a new timer */
-     ev_ids[num_ids++] = request_timer(nsp, timer_handler, rand() % 3000, NULL);
-     break;
-   default:
-     assert(0);
-   }
- }
-}
-
-int main(int argc, char *argv[]) {
- nsock_pool nsp;
- enum nsock_loopstatus loopret;
- int num_loops = 0;
- srand(time(NULL));
-  /* OK, we start with creating a p00l */
-  if ((nsp = nsp_new(NULL)) == NULL) {
-    fprintf(stderr, "Failed to create new pool.  QUITTING.\n");
-    exit(1);
-  }
-
-  ev_ids[num_ids++] = request_timer(nsp, timer_handler, 1800, NULL);
-  ev_ids[num_ids++] = request_timer(nsp, timer_handler, 800, NULL);
-  ev_ids[num_ids++] = request_timer(nsp, timer_handler, 1300, NULL);
-  ev_ids[num_ids++] = request_timer(nsp, timer_handler, 0, NULL);
-  ev_ids[num_ids++] = request_timer(nsp, timer_handler, 100, NULL);
-
-  /* Now lets get this party started right! */
-  while(num_loops++ < 5) {
-    loopret = nsock_loop(nsp, 1500);
-    if (loopret == NSOCK_LOOP_TIMEOUT)
-      printf("Finished l00p #%d due to l00p timeout :)  I may do another\n", num_loops);
-    else if (loopret == NSOCK_LOOP_NOEVENTS) {
-      printf("SUCCESS -- NO EVENTS LEFT\n");
-      exit(0);
-    } else {
-      printf("nsock_loop FAILED!\n");
-      exit(1);
-    }
-  }
-  printf("Trying to kill my msp!\n");
-  nsp_delete(nsp);
-  printf("SUCCESS -- completed %d l00ps.\n", num_loops);
-
-  return 0;
-}
-
diff --git a/nsock/include/nsock.h b/nsock/include/nsock.h
deleted file mode 100644 (file)
index 91f14b9..0000000
+++ /dev/null
@@ -1,466 +0,0 @@
-
-/***************************************************************************
- * nsock.h -- public interface definitions for the nsock parallel socket   *
- * event library                                                           *
- *                                                                         *
- ***********************IMPORTANT NSOCK LICENSE TERMS***********************
- *                                                                         *
- * The nsock parallel socket event library is (C) 1999-2004 Insecure.Com   *
- * LLC This library is free software; you may redistribute and/or          *
- * modify it under the terms of the GNU General Public License as          *
- * published by the Free Software Foundation; Version 2.  This guarantees  *
- * your right to use, modify, and redistribute this software under certain *
- * conditions.  If this license is unacceptable to you, Insecure.Com LLC   *
- * may be willing to sell alternative licenses (contact                    *
- * [email protected] ).                                                   *
- *                                                                         *
- * As a special exception to the GPL terms, Insecure.Com LLC grants        *
- * permission to link the code of this program with any version of the     *
- * OpenSSL library which is distributed under a license identical to that  *
- * listed in the included Copying.OpenSSL file, and distribute linked      *
- * combinations including the two. You must obey the GNU GPL in all        *
- * respects for all of the code used other than OpenSSL.  If you modify    *
- * this file, you may extend this exception to your version of the file,   *
- * but you are not obligated to do so.                                     *
- *                                                                         * 
- * If you received these files with a written license agreement stating    *
- * terms other than the (GPL) terms above, then that alternative license   *
- * agreement takes precedence over this comment.                          *
- *                                                                         *
- * Source is provided to this software because we believe users have a     *
- * right to know exactly what a program is going to do before they run it. *
- * This also allows you to audit the software for security holes (none     *
- * have been found so far).                                                *
- *                                                                         *
- * Source code also allows you to port Nmap to new platforms, fix bugs,    *
- * and add new features.  You are highly encouraged to send your changes   *
- * to [email protected] for possible incorporation into the main         *
- * distribution.  By sending these changes to Fyodor or one the            *
- * insecure.org development mailing lists, it is assumed that you are      *
- * offering Fyodor and Insecure.Com LLC the unlimited, non-exclusive right *
- * to reuse, modify, and relicense the code.  Nmap will always be          *
- * available Open Source, but this is important because the inability to   *
- * relicense code has caused devastating problems for other Free Software  *
- * projects (such as KDE and NASM).  We also occasionally relicense the    *
- * code to third parties as discussed above.  If you wish to specify       *
- * special license conditions of your contributions, just say so when you  *
- * send them.                                                              *
- *                                                                         *
- * This program is distributed in the hope that it will be useful, but     *
- * WITHOUT ANY WARRANTY; without even the implied warranty of              *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU       *
- * General Public License for more details (                               *
- * http://www.gnu.org/copyleft/gpl.html ).                                 *
- *                                                                         *
- ***************************************************************************/
-
-/* $Id$ */
-
-#ifndef NSOCK_H
-#define NSOCK_H
-
-#include <sys/types.h>
-#ifndef WIN32
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <time.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-// The read calls will generally return after reading at least this
-// much data so that the caller can process it and so that the
-// connection spewing data doesn't monopolize resources.  The caller
-// can always initiate another read request to ask for more.
-#define NSOCK_READ_CHUNK_SIZE 0x8FFFF
-
-/*********************  TYPEDEFS ********************/
-/* nsock_pool, nsock_iod, and nsock_event are opaque objects that should 
-   only be accessed using the appropriate accessor functions (described 
-   below).  
- */
-
-/* An nsock_pool aggregates and manages events and i/o descriptors */
-typedef void *nsock_pool;
-
-/* nsock_iod is an I/O descriptor -- you create it and then use it to
-   make calls to do connect()s, read()s, write()s, etc.  A single IOD
-   can handle multiple event calls, but only one at a time.  Also the
-   event calls must be in a "reasonable" order.  For example, you
-   might start with nsock_connect_tcp() followed by a bunch of
-   nsock_read* and nsock_write* calls.  Then you either destroy the
-   iod for good with nsi_delete() and allocate a new one via nsi_new
-   for your next connection. */
-typedef void *nsock_iod;
-
-/* An event is created when you do various calls (for reading, writing,
-   connecting, timers, etc) and is provided back to you in the callback
-   when the call completes/fails. It is automatically destroyed after
-   the callback 
-*/
-typedef void *nsock_event;
-
-/* Provided by calls which (internally) create an nsock_event.  This allows
-   you to cancel the event */
-typedef unsigned long nsock_event_id;
-
-/* This is used to save SSL sessionids between SSL connections */
-typedef void *nsock_ssl_session;
-
-/********************   PROTOTYPES *******************/
-
-
-/* Here is the all important looping function that tells the event
-   engine to start up and begin processing events.  It will continue
-   until all events have been delivered (including new ones started
-   from event handlers), or the msec_timeout is reached, or a major
-   error has occured.  Use -1 if you don't want to set a maximum time
-   for it to run.  A timeout of 0 will return after 1 non-blocking
-   loop.  The nsock loop can be restarted again after it returns.  For
-   example you could do a series of 15 second runs, allowing you to do
-   other stuff between them.  Or you could just schedule a timer to
-   call you back every 15 seconds.*/
-enum nsock_loopstatus { NSOCK_LOOP_NOEVENTS = 2, NSOCK_LOOP_TIMEOUT, NSOCK_LOOP_ERROR };
-enum nsock_loopstatus nsock_loop(nsock_pool nsp, int msec_timeout);
-
-/* This next function returns the errno style error code -- which is only
-   valid if the status is NSOCK_LOOP_ERROR was returned by nsock_loop() */
-int nsp_geterrorcode(nsock_pool nsp);
-
-/* Every nsp has an ID that is unique across the program execution */
-unsigned long nsp_getid(nsock_pool nsp);
-
-// Note that nsi_get1_ssl_session will increment the usage count
-// of the SSL_SESSION, since nsock does a free when the nsi is
-// destroyed.  It's up to any calling function/etc to do a
-// SSL_SESSION_free() on it.  nsi_get0_ssl_session doesn't
-// increment, and is for informational purposes only.
-nsock_ssl_session nsi_get1_ssl_session(nsock_iod nsockiod);
-nsock_ssl_session nsi_get0_ssl_session(nsock_iod nsockiod);
-
-/* Sometimes it is useful to store a pointer to information inside
-   the NSP so you can retrieve it during a callback. */
-void nsp_setud(nsock_pool nsp, void *data);
-
-/* And the function above wouldn't make much sense if we didn't have a way
-   to retrieve that data ... */
-void *nsp_getud(nsock_pool nsp);
-
-/* Sets a trace/debug level.  Zero (the default) turns tracing off,
-   while higher numbers are more verbose.  This is generally only used
-   for debugging purposes.  Trace logs are printed to stdout.  The
-   initial value is set in nsp_new().  A level of 1 or 2 is usually
-   sufficient, but 10 will ensure you get everything.  The basetime
-   can be NULL to print trace lines with the current time, otherwise
-   the difference between the current time and basetime will be used
-   (the time program execution starts would be a good candidate) */
-void nsp_settrace(nsock_pool nsp, int tracelevel, const struct timeval *basetime);
-
-/* And here is how you create an nsock_pool.  This allocates, initializes,
-   and returns an nsock_pool event aggregator.  In the case of error,
-   NULL will be returned.  If you do not wish to immediately associate
-   any userdata, pass in NULL. */
-nsock_pool nsp_new(void *userdata);
-
-/* If nsp_new returned success, you must free the nsp when you are
-   done with it to conserve memory (and in some cases, sockets).
-   After this call, nsp may no longer be used.  Any pending events are
-   sent an NSE_STATUS_KILL callback and all outstanding iods are
-   deleted. */
-void nsp_delete(nsock_pool nsp);
-
-/* nsock_event handles a single event.  Its ID is generally returned when
-   the event is created, and the event itself is included in callbacks */
-/* IF YOU ADD NEW NSE_TYPES YOU MUST INCREASE TYPE_CODE_NUM_BITS SO THAT
-   IT IS ALWAYS log2(maximum_nse_type_value + 1) */
-#define TYPE_CODE_NUM_BITS 3
-enum nse_type { NSE_TYPE_CONNECT=0, NSE_TYPE_CONNECT_SSL=1, NSE_TYPE_READ=2, NSE_TYPE_WRITE=3, 
-               NSE_TYPE_TIMER=4 };  /* At some point I was considering a 
-                                     NSE_TYPE_START and NSE_TYPE_CUSTOM */
-
-/* Find the type of an event that spawned a callback */
-enum nse_type nse_type(nsock_event nse);
-
-/* Takes an nse_type (as returned by nse_type() and returns a static
-   string name that you can use for printing, etc. */
-const char *nse_type2str(enum nse_type type);
-
-/* Did the event succeed?  What is the status? */
-enum nse_status { NSE_STATUS_NONE = 0, /* User should never see this */
-                  NSE_STATUS_SUCCESS, /* Everything went A-OK! */
-                  NSE_STATUS_ERROR, /* Uh-oh!  Problem, check the
-                                      nse_errorcode() */
-                 NSE_STATUS_TIMEOUT, /* The async call surpassed the
-                                        timeout you specified */
-                 NSE_STATUS_CANCELLED, /* Someone cancelled the
-                                           event. (by calling
-                                           nsock_event_cancel. */
-                 NSE_STATUS_KILL, /* The event has been killed, this
-                                     generally means the nspool is
-                                     being deleted -- you should free
-                                     up any resources you have
-                                     allocated and exit.  Don't you
-                                     dare make any more async nsock calls!  */
-                 NSE_STATUS_EOF /* We got EOF and NO DATA -- if we got data
-                                   first, SUCCESS is reported (see nse_eof() 
-                                */
-                 }; 
-
-enum nse_status nse_status(nsock_event nse);
-
-/* Takes an nse_status (as returned by nse_status() and returns a static
-   string name that you can use for printing, etc. */
-const char *nse_status2str(enum nse_status status);
-
-/* This next function tells whether we received an EOF when we
-   were reading.  It is generally a better way to check for EOF
-   than looking at the status because sometimes we read some data
-   before getting the EOF, in which SUCCESS is returned (although
-   another read attempt would return a status of EOF).  nse_eof
-   returns nonzero if we have reached EOF, zero if we have NOT
-   reach EOF.  */
-int nse_eof(nsock_event nse);
-
-/* This next function returns the errno style error code -- which is only
-   valid if the status is NSE_STATUS_ERROR (this is a normal errno style
-   errorcode */
-int nse_errorcode(nsock_event nse);
-
-/* Every event has an ID which will be unique throughout the program's execution (for a given nsock_pool) unless you blow through 500,000,000 of them */
-nsock_event_id nse_id(nsock_event nse);
-
-/* If you did a read request, and the result was STATUS_SUCCESS, this 
-   function provides the buffer that was read in as well as the number
-   of chars read.  The buffer should not be modified or free'd .  It is not 
-   guaranteed to be NUL-terminated and it may even contain nuls */
-char *nse_readbuf(nsock_event nse, int *nbytes);
-
-/* Obtains the nsock_iod (see below) associated with the event.  Note that 
-   some events (such as timers) don't have an nsock_iod associated with them
-*/
-nsock_iod nse_iod(nsock_event nse);
-
-
-/* nsock_iod is like a "file descriptor" for the nsock library.  You
-   use it to request events.  And here is how you create an nsock_iod.
-   nsi_new returns NULL if the iod cannot be allocated.  Pass NULL as
-   userdata if you don't want to immediately associate any user data
-   with the iod. */
-nsock_iod nsi_new(nsock_pool nsockp, void *userdata);
-
-/* This version allows you to associate an existing sd with the msi
-   so that you can read/write it using the nsock infrastructure.  For example,
-   you may want to watch for data from STDIN_FILENO at the same time as you
-   read/wrtie various sockets. Ths sd is dup()ed, so you may close or
-   otherwise manipulate your copy.  The duped copy will be destroyed when the
-   nsi is destroyed 
-*/
-nsock_iod nsi_new2(nsock_pool nsockp, int sd, void *userdata);
-
-/* If msiod_new returned success, you must free the iod when you are
-   done with it to conserve memory (and in some cases, sockets).
-   After this call, nsockiod may no longer be used -- you need to
-   create a new one with nsi_new().  pending_response tells what to do
-   with any events that are pending on this nsock_iod.  This can be
-   NSOCK_PENDING_NOTIFY (send a KILL notification to each event),
-   NSOCK_PENDING_SILENT (do not send notification to the killed
-   events), or NSOCK_PENDING_ERROR (print an error message and quiit
-   the program) */
-#define NSOCK_PENDING_NOTIFY 1
-#define NSOCK_PENDING_SILENT 2
-#define NSOCK_PENDING_ERROR 4
-void nsi_delete(nsock_iod nsockiod, int pending_response);
-
-/* Sometimes it is useful to store a pointer to information inside
-   the nsiod so you can retrieve it during a callback. */
-void nsi_setud(nsock_iod nsiod, void *data);
-
-/* And the function above wouldn't make much sense if we didn't have a way
-   to retrieve that data ... */
-void *nsi_getud(nsock_iod nsiod);
-
-/* I didn't want to do this.  Its an ugly hack, but I suspect it will
-   be neccessary.  I certainly can't reproduce in nsock EVERYTHING you
-   might want to do with a socket.  So I'm offering you this function
-   to obtain the socket descriptor which is (usually) wrapped in a
-   nsock_iod).  You can do "reasonable" things with it, like setting
-   socket receive buffers.  But don't create havok by closing the
-   descriptor!  If the descriptor you get back is -1, the iod does not
-   currently possess a valid descriptor */
-int nsi_getsd(nsock_iod nsiod);
-
-/* Returns the ID of an nsock_iod .  This ID is always unique amongst
-   ids for a given nspool (unless you blow through billions of them). */
-unsigned long nsi_id(nsock_iod nsockiod);
-
-  /* Returns 1 if an NSI is communicating via SSL, 0 otherwise */
-int nsi_checkssl(nsock_iod nsockiod);
-
-/* Returns that host/port/protocol information for the last
-   communication (or comm. attempt) this nsi has been involved with.
-   By "involved" with I mean interactions like establishing (or trying
-   to) a connection or sending a UDP datagram through an unconnected
-   nsock_iod.  AF is the address family (AF_INET or AF_INET6), Protocl
-   is IPPROTO_TCP or IPPROTO_UDP.  Pass NULL for information you do
-   not need.  If ANY of the information you requested is not
-   available, 0 will be returned and the unavailable sockets are
-   zeroed.  If protocol or af is requested but not available, it will
-   be set to -1 (and 0 returned).  The pointers you pass in must be
-   NULL or point to allocated address space.  The sockaddr members
-   should actually be sockaddr_storage, sockaddr_in6, or sockaddr_in
-   with the socklen of them set appropriately (eg
-   sizeof(sockaddr_storage) if that is what you are passing). */
-int nsi_getlastcommunicationinfo(nsock_iod ms_iod, int *protocol,
-                                int *af, struct sockaddr *local, 
-                                struct sockaddr *remote, size_t socklen);
-
-/* EVENT CREATION FUNCTIONS -- These functions request asynchronous
-   notification of completion of an event.  The handler will never be
-   synchronously called back during the event creation call (that
-   causes too many hard to debug errors and plus we don't want people
-   to have to deal with callbacks until they actually call nsock_loop */
-
-/* These functions generally take a common 5 initial parameters:
-
-   nsock_pool mst -- the is the nsock_pool describing the events you have 
-         scheduled, etc
-
-   nsock_iod  nsiod -- The I/O Descriptor that should be used in the 
-         request.  Note that timer events don't have this argument since
-         they don't use an iod.  You can obtain it in the callback from
-        the nsock_event. 
-
-   nsock_ev_handler handler -- This is the function you want the
-        system to call when your event is triggered (or times out, or
-        hits an error, etc.).  The function should be of this form:
-        void funcname(nsock_pool nsp, nsock_event nse, void *userdata)
-
-   int timeout_msecs -- The timeout for the request in milliseconds.
-         If the request hasn't completed (or in a few cases started)
-         within the timeout specified, the handler will be called with
-         a TIMEOUT status and the request will be aborted.
-
-   void *userdata -- The nsock_event that comes back can
-         optionally have a pointer associated with it.  You can set
-         that pointer here.  If you don't want one, just pass NULL.
-
-   These functions return an nsock_event_id which can be used to cancel
-   the event if neccessary.
-*/
-
-typedef void (*nsock_ev_handler)(nsock_pool, nsock_event, void *);
-
-/* Request a TCP connection to another system (by IP address).  The
-   in_addr is normal network byte order, but the port number should be
-   given in HOST BYTE ORDER.  ss should be a sockaddr_storage,
-   sockaddr_in6, or sockaddr_in as appropriate (just like what you
-   would pass to connect).  sslen should be the sizeof the structure
-   you are passing in. */
-nsock_event_id nsock_connect_tcp(nsock_pool nsp, nsock_iod nsiod, 
-                                nsock_ev_handler handler, int timeout_msecs, 
-                                void *userdata, struct sockaddr *ss,
-                                size_t sslen, unsigned short port);
-
-/* Request a UDP "connection" to another system (by IP address).  The
-   in_addr is normal network byte order, but the port number should be
-   given in HOST BYTE ORDER.  Since this is UDP, no packets are
-   actually sent.  The destination IP and port are just associated
-   with the nsiod (an actual OS connect() call is made).  You can then
-   use the normal nsock write calls on the socket.  There is no
-   timeout since this call always calls your callback at the next
-   opportunity.  The advantages to having a connected UDP socket (as
-   opposed to just specifying an address with sendto() are that we can
-   now use a consistent set of write/read calls for TCP/UDP, received
-   packets from the non-partner are automatically dropped by the OS,
-   and the OS can provide asynchronous errors (see Unix Network
-   Programming pp224).  ss should be a sockaddr_storage,
-   sockaddr_in6, or sockaddr_in as appropriate (just like what you
-   would pass to connect).  sslen should be the sizeof the structure
-   you are passing in. */
-nsock_event_id nsock_connect_udp(nsock_pool nsp, nsock_iod nsiod, 
-                                nsock_ev_handler handler, void *userdata, 
-                                struct sockaddr *ss, size_t sslen,
-                                unsigned short port);
-
-/* Request an SSL over TCP connection to another system (by IP
-   address).  The in_addr is normal network byte order, but the port
-   number should be given in HOST BYTE ORDER.  This function will call
-   back only after it has made the TCP connection AND done the initial
-   SSL negotiation.  From that point on, you use the normal read/write
-   calls and decryption will happen transparently. ss should be a
-   sockaddr_storage, sockaddr_in6, or sockaddr_in as appropriate (just
-   like what you would pass to connect).  sslen should be the sizeof
-   the structure you are passing in. */
-nsock_event_id nsock_connect_ssl(nsock_pool nsp, nsock_iod nsiod, 
-                                nsock_ev_handler handler, int timeout_msecs, 
-                                void *userdata, struct sockaddr *ss, 
-                                size_t sslen, unsigned short port,
-                                nsock_ssl_session ssl_session);
-
-/* Read up to nlines lines (terminated with \n, which of course
-   inclues \r\n), or until EOF, or until the timeout, whichever comes
-   first.  Note that NSE_STATUS_SUCCESS will be returned in the case
-   of EOF or tiemout if at least 1 char has been read.  Also note that
-   you may get more than 'nlines' back -- we just stop once "at least"
-   'nlines' is read */
-nsock_event_id nsock_readlines(nsock_pool nsp, nsock_iod nsiod, 
-                        nsock_ev_handler handler, int timeout_msecs,
-                        void *userdata, int nlines);
-
-/* Same as above, except it tries to read at least 'nbytes' instead of 
-   'nlines'. */
-nsock_event_id nsock_readbytes(nsock_pool nsp, nsock_iod nsiod,
-                        nsock_ev_handler handler, int timeout_msecs, 
-                        void *userdata, int nbytes);
-
-/* The simplest read function -- returns NSE_STATUS_SUCCESS when it
-   reads anything, otherwise it returns timeout, eof, or error as
-   appropriate */
-nsock_event_id nsock_read(nsock_pool nsp, nsock_iod nsiod, nsock_ev_handler handler, 
-                   int timeout_msecs, void *userdata);
-
-/* Write some data to the socket.  If the write is not COMPLETED within timeout_msecs , NSE_STATUS_TIMEOUT will be returned.  If you are supplying NUL-terminated data, you can optionally pass -1 for datalen and nsock_write will figure out the length itself */
-nsock_event_id nsock_write(nsock_pool nsp, nsock_iod nsiod, 
-                    nsock_ev_handler handler, int timeout_msecs, 
-                    void *userdata, const char *data, int datalen);
-
-/* Same as nsock_write except you can use a printf-style format and you can only use this for ASCII strings */
-nsock_event_id nsock_printf(nsock_pool nsp, nsock_iod nsiod, 
-                     nsock_ev_handler handler, int timeout_msecs, 
-                     void *userdata, char *format, ... );
-
-/* Send back an NSE_TYPE_TIMER after the number of milliseconds specified.  Of course it can also return due to error, cancellation, etc. */
-nsock_event_id nsock_timer_create(nsock_pool nsp, nsock_ev_handler handler, 
-                           int timeout_msecs, void *userdata);
-
-/* Cancel an event (such as a timer or read request).  If notify is
- nonzero, the requester will be sent an event CANCELLED status back to
- the given handler.  But in some cases there is no need to do this
- (like if the function deleting it is the one which created it), in
- which case 0 can be passed to skip the step.  This function returns
- zero if the event is not found, nonzero otherwise */
-int nsock_event_cancel(nsock_pool ms_pool, nsock_event_id id, int notify );
-
-/* Grab the latest time as recorded by the nsock library, which does
-   so at least once per event loop (in main_loop).  Not only does this
-   function (generally) avoid a system call, but in many circumstances
-   it is better to use nsock's time rather than the system time.  If
-   nsock has never obtained the time when you call it, it will do so
-   before returning */
-const struct timeval *nsock_gettimeofday();
-
-#ifdef __cplusplus
-} /* End of 'extern "C"' */
-#endif
-
-#endif /* NSOCK_H */
-
-
-
-
-
-
-
diff --git a/nsock/nsock.vcproj b/nsock/nsock.vcproj
deleted file mode 100644 (file)
index fbf27ac..0000000
+++ /dev/null
@@ -1,180 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-       ProjectType="Visual C++"
-       Version="7.10"
-       Name="nsock"
-       ProjectGUID="{F8D6D1E3-D4EA-402C-98AA-168E5309BAF4}"
-       Keyword="Win32Proj">
-       <Platforms>
-               <Platform
-                       Name="Win32"/>
-       </Platforms>
-       <Configurations>
-               <Configuration
-                       Name="Debug|Win32"
-                       OutputDirectory="."
-                       IntermediateDirectory="Debug"
-                       ConfigurationType="4"
-                       CharacterSet="2">
-                       <Tool
-                               Name="VCCLCompilerTool"
-                               Optimization="0"
-                               AdditionalIncludeDirectories="..\nbase\;include"
-                               PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
-                               MinimalRebuild="TRUE"
-                               ExceptionHandling="FALSE"
-                               BasicRuntimeChecks="3"
-                               RuntimeLibrary="1"
-                               UsePrecompiledHeader="0"
-                               WarningLevel="3"
-                               Detect64BitPortabilityProblems="TRUE"
-                               DebugInformationFormat="4"
-                               CompileAs="2"/>
-                       <Tool
-                               Name="VCCustomBuildTool"/>
-                       <Tool
-                               Name="VCLibrarianTool"
-                               OutputFile="$(OutDir)/nsock.lib"/>
-                       <Tool
-                               Name="VCMIDLTool"/>
-                       <Tool
-                               Name="VCPostBuildEventTool"/>
-                       <Tool
-                               Name="VCPreBuildEventTool"/>
-                       <Tool
-                               Name="VCPreLinkEventTool"/>
-                       <Tool
-                               Name="VCResourceCompilerTool"/>
-                       <Tool
-                               Name="VCWebServiceProxyGeneratorTool"/>
-                       <Tool
-                               Name="VCXMLDataGeneratorTool"/>
-                       <Tool
-                               Name="VCManagedWrapperGeneratorTool"/>
-                       <Tool
-                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
-               </Configuration>
-               <Configuration
-                       Name="Release|Win32"
-                       OutputDirectory="."
-                       IntermediateDirectory="Release"
-                       ConfigurationType="4"
-                       CharacterSet="2">
-                       <Tool
-                               Name="VCCLCompilerTool"
-                               AdditionalIncludeDirectories="..\nbase\;include"
-                               PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
-                               ExceptionHandling="FALSE"
-                               RuntimeLibrary="0"
-                               UsePrecompiledHeader="0"
-                               WarningLevel="3"
-                               Detect64BitPortabilityProblems="TRUE"
-                               DebugInformationFormat="3"
-                               CompileAs="2"/>
-                       <Tool
-                               Name="VCCustomBuildTool"/>
-                       <Tool
-                               Name="VCLibrarianTool"
-                               OutputFile="$(OutDir)/nsock.lib"/>
-                       <Tool
-                               Name="VCMIDLTool"/>
-                       <Tool
-                               Name="VCPostBuildEventTool"/>
-                       <Tool
-                               Name="VCPreBuildEventTool"/>
-                       <Tool
-                               Name="VCPreLinkEventTool"/>
-                       <Tool
-                               Name="VCResourceCompilerTool"/>
-                       <Tool
-                               Name="VCWebServiceProxyGeneratorTool"/>
-                       <Tool
-                               Name="VCXMLDataGeneratorTool"/>
-                       <Tool
-                               Name="VCManagedWrapperGeneratorTool"/>
-                       <Tool
-                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
-               </Configuration>
-       </Configurations>
-       <References>
-       </References>
-       <Files>
-               <Filter
-                       Name="Source Files"
-                       Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
-                       <File
-                               RelativePath=".\src\error.c">
-                       </File>
-                       <File
-                               RelativePath=".\src\filespace.c">
-                       </File>
-                       <File
-                               RelativePath=".\src\gh_list.c">
-                       </File>
-                       <File
-                               RelativePath=".\src\netutils.c">
-                       </File>
-                       <File
-                               RelativePath=".\src\nsock_connect.c">
-                       </File>
-                       <File
-                               RelativePath=".\src\nsock_core.c">
-                       </File>
-                       <File
-                               RelativePath=".\src\nsock_event.c">
-                       </File>
-                       <File
-                               RelativePath=".\src\nsock_iod.c">
-                       </File>
-                       <File
-                               RelativePath=".\src\nsock_pool.c">
-                       </File>
-                       <File
-                               RelativePath=".\src\nsock_read.c">
-                       </File>
-                       <File
-                               RelativePath=".\src\nsock_timers.c">
-                       </File>
-                       <File
-                               RelativePath=".\src\nsock_utils.c">
-                       </File>
-                       <File
-                               RelativePath=".\src\nsock_write.c">
-                       </File>
-               </Filter>
-               <Filter
-                       Name="Header Files"
-                       Filter="h;hpp;hxx;hm;inl;inc;xsd"
-                       UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
-                       <File
-                               RelativePath=".\src\error.h">
-                       </File>
-                       <File
-                               RelativePath=".\src\filespace.h">
-                       </File>
-                       <File
-                               RelativePath=".\src\gh_list.h">
-                       </File>
-                       <File
-                               RelativePath=".\src\netutils.h">
-                       </File>
-                       <File
-                               RelativePath=".\include\nsock.h">
-                       </File>
-                       <File
-                               RelativePath=".\src\nsock_internal.h">
-                       </File>
-                       <File
-                               RelativePath=".\src\nsock_utils.h">
-                       </File>
-               </Filter>
-               <Filter
-                       Name="Resource Files"
-                       Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
-                       UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
-               </Filter>
-       </Files>
-       <Globals>
-       </Globals>
-</VisualStudioProject>
diff --git a/nsock/src/Makefile.in b/nsock/src/Makefile.in
deleted file mode 100644 (file)
index 9811916..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-NSOCK_VERSION = 0.01
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-bindir = @bindir@
-sbindir = @sbindir@
-mandir = @mandir@
-srcdir = @srcdir@
-
-CC = @CC@
-AR = ar
-RANLIB = @RANLIB@
-CCOPT = 
-DEFS = @DEFS@ -DNSOCK_VERSION=\"$(NSOCK_VERSION)\" 
-INCLS = -I../include
-CFLAGS = @CFLAGS@ $(CCOPT) $(DEFS) $(INCLS)
-# CFLAGS = -g -Wall $(DEFS) $(INCLS)
-CPPFLAGS = @CPPFLAGS@
-STATIC = 
-LDFLAGS = @LDFLAGS@ $(STATIC)
-LIBS =  @LIBS@ @LIBNBASE_LIBS@
-# LIBS =  -lefence @LIBS@ -lpcap -lm
-# LIBS =  -lrmalloc @LIBS@ -lpcap -lm
-SHTOOL = ./shtool
-INSTALL = $(SHTOOL) install 
-MAKEDEPEND = @MAKEDEPEND@
-RPMTDIR=$(HOME)/rpmdir
-NBASEDIR=@NBASEDIR@
-
-TARGET = libnsock.a
-
-SRCS = error.c filespace.c gh_list.c nsock_connect.c nsock_core.c nsock_iod.c nsock_read.c nsock_timers.c nsock_write.c nsock_ssl.c nsock_utils.c nsock_event.c nsock_pool.c netutils.c @COMPAT_SRCS@
-
-OBJS = error.o filespace.o gh_list.o nsock_connect.o nsock_core.o nsock_iod.o nsock_read.o nsock_timers.o nsock_write.o nsock_ssl.o nsock_utils.o nsock_event.o nsock_pool.o netutils.o @COMPAT_OBJS@
-
-DEPS = error.h filespace.h gh_list.h nsock_internal.h nsock_utils.h netutils.h ../include/nsock.h $(NBASEDIR)/libnbase.a
-
-.c.o:
-       $(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@
-
-all: $(TARGET) 
-
-$(TARGET): $(DEPS) $(OBJS)
-       @echo Compiling libnsock
-       rm -f $@
-       $(AR) cr $@ $(OBJS)
-       $(RANLIB) $@
-
-$(NBASEDIR)/libnbase.a: $(NBASEDIR)/Makefile
-       @echo Compiling libnbase;
-       cd $(NBASEDIR) && $(MAKE)
-
-clean:
-       rm -f $(OBJS) $(TARGET)
-
-depend:
-       $(MAKEDEPEND) $(INCLS) -s "# DO NOT DELETE" -- $(DEFS) -- $(SRCS)
-
-${srcdir}/configure: configure.ac 
-       cd ${srcdir} && autoconf
-
-# autoheader might not change config.h.in, so touch a stamp file.
-${srcdir}/config.h.in: stamp-h.in
-${srcdir}/stamp-h.in: configure.ac acconfig.h \
-       config.h.top config.h.bot
-       cd ${srcdir} && autoheader
-       echo timestamp > ${srcdir}/stamp-h.in
-
-config.h: stamp-h
-stamp-h: config.h.in config.status
-       ./config.status
-
-Makefile: Makefile.in config.status
-       ./config.status
-
-config.status: configure
-       ./config.status --recheck
-
-# DO NOT DELETE -- Needed by makedepend
-
-
-
-
-
-
-
diff --git a/nsock/src/aclocal.m4 b/nsock/src/aclocal.m4
deleted file mode 100644 (file)
index 518699c..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-dnl aclocal.m4 generated automatically by aclocal 1.4
-
-dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl This program is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-dnl PARTICULAR PURPOSE.
-
-# Do all the work for Automake.  This macro actually does too much --
-# some checks are only needed if your package does certain things.
-# But this isn't really a big deal.
-
-# serial 1
-
-dnl Usage:
-dnl AM_INIT_AUTOMAKE(package,version, [no-define])
-
-AC_DEFUN(AM_INIT_AUTOMAKE,
-[AC_REQUIRE([AC_PROG_INSTALL])
-PACKAGE=[$1]
-AC_SUBST(PACKAGE)
-VERSION=[$2]
-AC_SUBST(VERSION)
-dnl test to see if srcdir already configured
-if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
-  AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
-fi
-ifelse([$3],,
-AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
-AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
-AC_REQUIRE([AM_SANITY_CHECK])
-AC_REQUIRE([AC_ARG_PROGRAM])
-dnl FIXME This is truly gross.
-missing_dir=`cd $ac_aux_dir && pwd`
-AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
-AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
-AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
-AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
-AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
-AC_REQUIRE([AC_PROG_MAKE_SET])])
-
-#
-# Check to make sure that the build environment is sane.
-#
-
-AC_DEFUN(AM_SANITY_CHECK,
-[AC_MSG_CHECKING([whether build environment is sane])
-# Just in case
-sleep 1
-echo timestamp > conftestfile
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments.  Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
-   set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
-   if test "[$]*" = "X"; then
-      # -L didn't work.
-      set X `ls -t $srcdir/configure conftestfile`
-   fi
-   if test "[$]*" != "X $srcdir/configure conftestfile" \
-      && test "[$]*" != "X conftestfile $srcdir/configure"; then
-
-      # If neither matched, then we have a broken ls.  This can happen
-      # if, for instance, CONFIG_SHELL is bash and it inherits a
-      # broken ls alias from the environment.  This has actually
-      # happened.  Such a system could not be considered "sane".
-      AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
-alias in your environment])
-   fi
-
-   test "[$]2" = conftestfile
-   )
-then
-   # Ok.
-   :
-else
-   AC_MSG_ERROR([newly created file is older than distributed files!
-Check your system clock])
-fi
-rm -f conftest*
-AC_MSG_RESULT(yes)])
-
-dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
-dnl The program must properly implement --version.
-AC_DEFUN(AM_MISSING_PROG,
-[AC_MSG_CHECKING(for working $2)
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf.  Sigh.
-if ($2 --version) < /dev/null > /dev/null 2>&1; then
-   $1=$2
-   AC_MSG_RESULT(found)
-else
-   $1="$3/missing $2"
-   AC_MSG_RESULT(missing)
-fi
-AC_SUBST($1)])
-
-AC_DEFUN(AC_C___ATTRIBUTE__, [
-AC_MSG_CHECKING(for __attribute__)
-AC_CACHE_VAL(ac_cv___attribute__, [
-AC_TRY_COMPILE([
-#include <stdlib.h>
-],
-[
-static void foo(void) __attribute__ ((noreturn));
-
-static void
-foo(void)
-{
-  exit(1);
-}
-],
-ac_cv___attribute__=yes,
-ac_cv___attribute__=no)])
-if test "$ac_cv___attribute__" = "yes"; then
-  AC_DEFINE(HAVE___ATTRIBUTE__, 1, [define if your compiler has __attribute__])
-fi
-AC_MSG_RESULT($ac_cv___attribute__)
-])
-
diff --git a/nsock/src/config.guess b/nsock/src/config.guess
deleted file mode 100644 (file)
index 500ee74..0000000
+++ /dev/null
@@ -1,1410 +0,0 @@
-#! /bin/sh
-# Attempt to guess a canonical system name.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-
-timestamp='2003-10-03'
-
-# This file is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Originally written by Per Bothner <[email protected]>.
-# Please send patches to <[email protected]>.  Submit a context
-# diff and a properly formatted ChangeLog entry.
-#
-# This script attempts to guess a canonical system name similar to
-# config.sub.  If it succeeds, it prints the system name on stdout, and
-# exits with 0.  Otherwise, it exits with 1.
-#
-# The plan is that this can be called by configure scripts if you
-# don't specify an explicit build system type.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION]
-
-Output the configuration name of the system \`$me' is run on.
-
-Operation modes:
-  -h, --help         print this help, then exit
-  -t, --time-stamp   print date of last modification, then exit
-  -v, --version      print version number, then exit
-
-Report bugs and patches to <[email protected]>."
-
-version="\
-GNU config.guess ($timestamp)
-
-Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
-Free Software Foundation, Inc.
-
-This is free software; see the source for copying conditions.  There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
-  case $1 in
-    --time-stamp | --time* | -t )
-       echo "$timestamp" ; exit 0 ;;
-    --version | -v )
-       echo "$version" ; exit 0 ;;
-    --help | --h* | -h )
-       echo "$usage"; exit 0 ;;
-    -- )     # Stop option processing
-       shift; break ;;
-    - )        # Use stdin as input.
-       break ;;
-    -* )
-       echo "$me: invalid option $1$help" >&2
-       exit 1 ;;
-    * )
-       break ;;
-  esac
-done
-
-if test $# != 0; then
-  echo "$me: too many arguments$help" >&2
-  exit 1
-fi
-
-trap 'exit 1' 1 2 15
-
-# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
-# compiler to aid in system detection is discouraged as it requires
-# temporary files to be created and, as you can see below, it is a
-# headache to deal with in a portable fashion.
-
-# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
-# use `HOST_CC' if defined, but it is deprecated.
-
-# Portable tmp directory creation inspired by the Autoconf team.
-
-set_cc_for_build='
-trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
-: ${TMPDIR=/tmp} ;
- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
- { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
- { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
- { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
-dummy=$tmp/dummy ;
-tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
-case $CC_FOR_BUILD,$HOST_CC,$CC in
- ,,)    echo "int x;" > $dummy.c ;
-       for c in cc gcc c89 c99 ; do
-         if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
-            CC_FOR_BUILD="$c"; break ;
-         fi ;
-       done ;
-       if test x"$CC_FOR_BUILD" = x ; then
-         CC_FOR_BUILD=no_compiler_found ;
-       fi
-       ;;
- ,,*)   CC_FOR_BUILD=$CC ;;
- ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
-esac ;'
-
-# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
-# ([email protected] 1994-08-24)
-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
-       PATH=$PATH:/.attbin ; export PATH
-fi
-
-UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
-UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
-UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-
-# Note: order is significant - the case branches are not exclusive.
-
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
-    *:NetBSD:*:*)
-       # NetBSD (nbsd) targets should (where applicable) match one or
-       # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
-       # *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
-       # switched to ELF, *-*-netbsd* would select the old
-       # object file format.  This provides both forward
-       # compatibility and a consistent mechanism for selecting the
-       # object file format.
-       #
-       # Note: NetBSD doesn't particularly care about the vendor
-       # portion of the name.  We always set it to "unknown".
-       sysctl="sysctl -n hw.machine_arch"
-       UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
-           /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
-       case "${UNAME_MACHINE_ARCH}" in
-           armeb) machine=armeb-unknown ;;
-           arm*) machine=arm-unknown ;;
-           sh3el) machine=shl-unknown ;;
-           sh3eb) machine=sh-unknown ;;
-           *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
-       esac
-       # The Operating System including object format, if it has switched
-       # to ELF recently, or will in the future.
-       case "${UNAME_MACHINE_ARCH}" in
-           arm*|i386|m68k|ns32k|sh3*|sparc|vax)
-               eval $set_cc_for_build
-               if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
-                       | grep __ELF__ >/dev/null
-               then
-                   # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
-                   # Return netbsd for either.  FIX?
-                   os=netbsd
-               else
-                   os=netbsdelf
-               fi
-               ;;
-           *)
-               os=netbsd
-               ;;
-       esac
-       # The OS release
-       # Debian GNU/NetBSD machines have a different userland, and
-       # thus, need a distinct triplet. However, they do not need
-       # kernel version information, so it can be replaced with a
-       # suitable tag, in the style of linux-gnu.
-       case "${UNAME_VERSION}" in
-           Debian*)
-               release='-gnu'
-               ;;
-           *)
-               release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
-               ;;
-       esac
-       # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
-       # contains redundant information, the shorter form:
-       # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
-       echo "${machine}-${os}${release}"
-       exit 0 ;;
-    amiga:OpenBSD:*:*)
-       echo m68k-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    arc:OpenBSD:*:*)
-       echo mipsel-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    hp300:OpenBSD:*:*)
-       echo m68k-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    mac68k:OpenBSD:*:*)
-       echo m68k-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    macppc:OpenBSD:*:*)
-       echo powerpc-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    mvme68k:OpenBSD:*:*)
-       echo m68k-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    mvme88k:OpenBSD:*:*)
-       echo m88k-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    mvmeppc:OpenBSD:*:*)
-       echo powerpc-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    pmax:OpenBSD:*:*)
-       echo mipsel-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    sgi:OpenBSD:*:*)
-       echo mipseb-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    sun3:OpenBSD:*:*)
-       echo m68k-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    wgrisc:OpenBSD:*:*)
-       echo mipsel-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    *:OpenBSD:*:*)
-       echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    alpha:OSF1:*:*)
-       if test $UNAME_RELEASE = "V4.0"; then
-               UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
-       fi
-       # According to Compaq, /usr/sbin/psrinfo has been available on
-       # OSF/1 and Tru64 systems produced since 1995.  I hope that
-       # covers most systems running today.  This code pipes the CPU
-       # types through head -n 1, so we only detect the type of CPU 0.
-       ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
-       case "$ALPHA_CPU_TYPE" in
-           "EV4 (21064)")
-               UNAME_MACHINE="alpha" ;;
-           "EV4.5 (21064)")
-               UNAME_MACHINE="alpha" ;;
-           "LCA4 (21066/21068)")
-               UNAME_MACHINE="alpha" ;;
-           "EV5 (21164)")
-               UNAME_MACHINE="alphaev5" ;;
-           "EV5.6 (21164A)")
-               UNAME_MACHINE="alphaev56" ;;
-           "EV5.6 (21164PC)")
-               UNAME_MACHINE="alphapca56" ;;
-           "EV5.7 (21164PC)")
-               UNAME_MACHINE="alphapca57" ;;
-           "EV6 (21264)")
-               UNAME_MACHINE="alphaev6" ;;
-           "EV6.7 (21264A)")
-               UNAME_MACHINE="alphaev67" ;;
-           "EV6.8CB (21264C)")
-               UNAME_MACHINE="alphaev68" ;;
-           "EV6.8AL (21264B)")
-               UNAME_MACHINE="alphaev68" ;;
-           "EV6.8CX (21264D)")
-               UNAME_MACHINE="alphaev68" ;;
-           "EV6.9A (21264/EV69A)")
-               UNAME_MACHINE="alphaev69" ;;
-           "EV7 (21364)")
-               UNAME_MACHINE="alphaev7" ;;
-           "EV7.9 (21364A)")
-               UNAME_MACHINE="alphaev79" ;;
-       esac
-       # A Vn.n version is a released version.
-       # A Tn.n version is a released field test version.
-       # A Xn.n version is an unreleased experimental baselevel.
-       # 1.2 uses "1.2" for uname -r.
-       echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-       exit 0 ;;
-    Alpha*:OpenVMS:*:*)
-       echo alpha-hp-vms
-       exit 0 ;;
-    Alpha\ *:Windows_NT*:*)
-       # How do we know it's Interix rather than the generic POSIX subsystem?
-       # Should we change UNAME_MACHINE based on the output of uname instead
-       # of the specific Alpha model?
-       echo alpha-pc-interix
-       exit 0 ;;
-    21064:Windows_NT:50:3)
-       echo alpha-dec-winnt3.5
-       exit 0 ;;
-    Amiga*:UNIX_System_V:4.0:*)
-       echo m68k-unknown-sysv4
-       exit 0;;
-    *:[Aa]miga[Oo][Ss]:*:*)
-       echo ${UNAME_MACHINE}-unknown-amigaos
-       exit 0 ;;
-    *:[Mm]orph[Oo][Ss]:*:*)
-       echo ${UNAME_MACHINE}-unknown-morphos
-       exit 0 ;;
-    *:OS/390:*:*)
-       echo i370-ibm-openedition
-       exit 0 ;;
-    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
-       echo arm-acorn-riscix${UNAME_RELEASE}
-       exit 0;;
-    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
-       echo hppa1.1-hitachi-hiuxmpp
-       exit 0;;
-    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
-       # [email protected] (Earle F. Ake) contributed MIS and NILE.
-       if test "`(/bin/universe) 2>/dev/null`" = att ; then
-               echo pyramid-pyramid-sysv3
-       else
-               echo pyramid-pyramid-bsd
-       fi
-       exit 0 ;;
-    NILE*:*:*:dcosx)
-       echo pyramid-pyramid-svr4
-       exit 0 ;;
-    DRS?6000:unix:4.0:6*)
-       echo sparc-icl-nx6
-       exit 0 ;;
-    DRS?6000:UNIX_SV:4.2*:7*)
-       case `/usr/bin/uname -p` in
-           sparc) echo sparc-icl-nx7 && exit 0 ;;
-       esac ;;
-    sun4H:SunOS:5.*:*)
-       echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-       exit 0 ;;
-    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
-       echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-       exit 0 ;;
-    i86pc:SunOS:5.*:*)
-       echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-       exit 0 ;;
-    sun4*:SunOS:6*:*)
-       # According to config.sub, this is the proper way to canonicalize
-       # SunOS6.  Hard to guess exactly what SunOS6 will be like, but
-       # it's likely to be more like Solaris than SunOS4.
-       echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-       exit 0 ;;
-    sun4*:SunOS:*:*)
-       case "`/usr/bin/arch -k`" in
-           Series*|S4*)
-               UNAME_RELEASE=`uname -v`
-               ;;
-       esac
-       # Japanese Language versions have a version number like `4.1.3-JL'.
-       echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
-       exit 0 ;;
-    sun3*:SunOS:*:*)
-       echo m68k-sun-sunos${UNAME_RELEASE}
-       exit 0 ;;
-    sun*:*:4.2BSD:*)
-       UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
-       test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
-       case "`/bin/arch`" in
-           sun3)
-               echo m68k-sun-sunos${UNAME_RELEASE}
-               ;;
-           sun4)
-               echo sparc-sun-sunos${UNAME_RELEASE}
-               ;;
-       esac
-       exit 0 ;;
-    aushp:SunOS:*:*)
-       echo sparc-auspex-sunos${UNAME_RELEASE}
-       exit 0 ;;
-    # The situation for MiNT is a little confusing.  The machine name
-    # can be virtually everything (everything which is not
-    # "atarist" or "atariste" at least should have a processor
-    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
-    # to the lowercase version "mint" (or "freemint").  Finally
-    # the system name "TOS" denotes a system which is actually not
-    # MiNT.  But MiNT is downward compatible to TOS, so this should
-    # be no problem.
-    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
-        echo m68k-atari-mint${UNAME_RELEASE}
-       exit 0 ;;
-    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
-       echo m68k-atari-mint${UNAME_RELEASE}
-        exit 0 ;;
-    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
-        echo m68k-atari-mint${UNAME_RELEASE}
-       exit 0 ;;
-    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
-        echo m68k-milan-mint${UNAME_RELEASE}
-        exit 0 ;;
-    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
-        echo m68k-hades-mint${UNAME_RELEASE}
-        exit 0 ;;
-    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
-        echo m68k-unknown-mint${UNAME_RELEASE}
-        exit 0 ;;
-    powerpc:machten:*:*)
-       echo powerpc-apple-machten${UNAME_RELEASE}
-       exit 0 ;;
-    RISC*:Mach:*:*)
-       echo mips-dec-mach_bsd4.3
-       exit 0 ;;
-    RISC*:ULTRIX:*:*)
-       echo mips-dec-ultrix${UNAME_RELEASE}
-       exit 0 ;;
-    VAX*:ULTRIX*:*:*)
-       echo vax-dec-ultrix${UNAME_RELEASE}
-       exit 0 ;;
-    2020:CLIX:*:* | 2430:CLIX:*:*)
-       echo clipper-intergraph-clix${UNAME_RELEASE}
-       exit 0 ;;
-    mips:*:*:UMIPS | mips:*:*:RISCos)
-       eval $set_cc_for_build
-       sed 's/^        //' << EOF >$dummy.c
-#ifdef __cplusplus
-#include <stdio.h>  /* for printf() prototype */
-       int main (int argc, char *argv[]) {
-#else
-       int main (argc, argv) int argc; char *argv[]; {
-#endif
-       #if defined (host_mips) && defined (MIPSEB)
-       #if defined (SYSTYPE_SYSV)
-         printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
-       #endif
-       #if defined (SYSTYPE_SVR4)
-         printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
-       #endif
-       #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
-         printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
-       #endif
-       #endif
-         exit (-1);
-       }
-EOF
-       $CC_FOR_BUILD -o $dummy $dummy.c \
-         && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
-         && exit 0
-       echo mips-mips-riscos${UNAME_RELEASE}
-       exit 0 ;;
-    Motorola:PowerMAX_OS:*:*)
-       echo powerpc-motorola-powermax
-       exit 0 ;;
-    Motorola:*:4.3:PL8-*)
-       echo powerpc-harris-powermax
-       exit 0 ;;
-    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
-       echo powerpc-harris-powermax
-       exit 0 ;;
-    Night_Hawk:Power_UNIX:*:*)
-       echo powerpc-harris-powerunix
-       exit 0 ;;
-    m88k:CX/UX:7*:*)
-       echo m88k-harris-cxux7
-       exit 0 ;;
-    m88k:*:4*:R4*)
-       echo m88k-motorola-sysv4
-       exit 0 ;;
-    m88k:*:3*:R3*)
-       echo m88k-motorola-sysv3
-       exit 0 ;;
-    AViiON:dgux:*:*)
-        # DG/UX returns AViiON for all architectures
-        UNAME_PROCESSOR=`/usr/bin/uname -p`
-       if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
-       then
-           if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
-              [ ${TARGET_BINARY_INTERFACE}x = x ]
-           then
-               echo m88k-dg-dgux${UNAME_RELEASE}
-           else
-               echo m88k-dg-dguxbcs${UNAME_RELEASE}
-           fi
-       else
-           echo i586-dg-dgux${UNAME_RELEASE}
-       fi
-       exit 0 ;;
-    M88*:DolphinOS:*:*)        # DolphinOS (SVR3)
-       echo m88k-dolphin-sysv3
-       exit 0 ;;
-    M88*:*:R3*:*)
-       # Delta 88k system running SVR3
-       echo m88k-motorola-sysv3
-       exit 0 ;;
-    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
-       echo m88k-tektronix-sysv3
-       exit 0 ;;
-    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
-       echo m68k-tektronix-bsd
-       exit 0 ;;
-    *:IRIX*:*:*)
-       echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
-       exit 0 ;;
-    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
-       echo romp-ibm-aix      # uname -m gives an 8 hex-code CPU id
-       exit 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX '
-    i*86:AIX:*:*)
-       echo i386-ibm-aix
-       exit 0 ;;
-    ia64:AIX:*:*)
-       if [ -x /usr/bin/oslevel ] ; then
-               IBM_REV=`/usr/bin/oslevel`
-       else
-               IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
-       fi
-       echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
-       exit 0 ;;
-    *:AIX:2:3)
-       if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
-               eval $set_cc_for_build
-               sed 's/^                //' << EOF >$dummy.c
-               #include <sys/systemcfg.h>
-
-               main()
-                       {
-                       if (!__power_pc())
-                               exit(1);
-                       puts("powerpc-ibm-aix3.2.5");
-                       exit(0);
-                       }
-EOF
-               $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
-               echo rs6000-ibm-aix3.2.5
-       elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
-               echo rs6000-ibm-aix3.2.4
-       else
-               echo rs6000-ibm-aix3.2
-       fi
-       exit 0 ;;
-    *:AIX:*:[45])
-       IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
-       if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
-               IBM_ARCH=rs6000
-       else
-               IBM_ARCH=powerpc
-       fi
-       if [ -x /usr/bin/oslevel ] ; then
-               IBM_REV=`/usr/bin/oslevel`
-       else
-               IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
-       fi
-       echo ${IBM_ARCH}-ibm-aix${IBM_REV}
-       exit 0 ;;
-    *:AIX:*:*)
-       echo rs6000-ibm-aix
-       exit 0 ;;
-    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
-       echo romp-ibm-bsd4.4
-       exit 0 ;;
-    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
-       echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
-       exit 0 ;;                           # report: romp-ibm BSD 4.3
-    *:BOSX:*:*)
-       echo rs6000-bull-bosx
-       exit 0 ;;
-    DPX/2?00:B.O.S.:*:*)
-       echo m68k-bull-sysv3
-       exit 0 ;;
-    9000/[34]??:4.3bsd:1.*:*)
-       echo m68k-hp-bsd
-       exit 0 ;;
-    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
-       echo m68k-hp-bsd4.4
-       exit 0 ;;
-    9000/[34678]??:HP-UX:*:*)
-       HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
-       case "${UNAME_MACHINE}" in
-           9000/31? )            HP_ARCH=m68000 ;;
-           9000/[34]?? )         HP_ARCH=m68k ;;
-           9000/[678][0-9][0-9])
-               if [ -x /usr/bin/getconf ]; then
-                   sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
-                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
-                    case "${sc_cpu_version}" in
-                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
-                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
-                      532)                      # CPU_PA_RISC2_0
-                        case "${sc_kernel_bits}" in
-                          32) HP_ARCH="hppa2.0n" ;;
-                          64) HP_ARCH="hppa2.0w" ;;
-                         '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
-                        esac ;;
-                    esac
-               fi
-               if [ "${HP_ARCH}" = "" ]; then
-                   eval $set_cc_for_build
-                   sed 's/^              //' << EOF >$dummy.c
-
-              #define _HPUX_SOURCE
-              #include <stdlib.h>
-              #include <unistd.h>
-
-              int main ()
-              {
-              #if defined(_SC_KERNEL_BITS)
-                  long bits = sysconf(_SC_KERNEL_BITS);
-              #endif
-                  long cpu  = sysconf (_SC_CPU_VERSION);
-
-                  switch (cpu)
-               {
-               case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
-               case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
-               case CPU_PA_RISC2_0:
-              #if defined(_SC_KERNEL_BITS)
-                   switch (bits)
-                       {
-                       case 64: puts ("hppa2.0w"); break;
-                       case 32: puts ("hppa2.0n"); break;
-                       default: puts ("hppa2.0"); break;
-                       } break;
-              #else  /* !defined(_SC_KERNEL_BITS) */
-                   puts ("hppa2.0"); break;
-              #endif
-               default: puts ("hppa1.0"); break;
-               }
-                  exit (0);
-              }
-EOF
-                   (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
-                   test -z "$HP_ARCH" && HP_ARCH=hppa
-               fi ;;
-       esac
-       if [ ${HP_ARCH} = "hppa2.0w" ]
-       then
-           # avoid double evaluation of $set_cc_for_build
-           test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
-           if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
-           then
-               HP_ARCH="hppa2.0w"
-           else
-               HP_ARCH="hppa64"
-           fi
-       fi
-       echo ${HP_ARCH}-hp-hpux${HPUX_REV}
-       exit 0 ;;
-    ia64:HP-UX:*:*)
-       HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
-       echo ia64-hp-hpux${HPUX_REV}
-       exit 0 ;;
-    3050*:HI-UX:*:*)
-       eval $set_cc_for_build
-       sed 's/^        //' << EOF >$dummy.c
-       #include <unistd.h>
-       int
-       main ()
-       {
-         long cpu = sysconf (_SC_CPU_VERSION);
-         /* The order matters, because CPU_IS_HP_MC68K erroneously returns
-            true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
-            results, however.  */
-         if (CPU_IS_PA_RISC (cpu))
-           {
-             switch (cpu)
-               {
-                 case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
-                 case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
-                 case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
-                 default: puts ("hppa-hitachi-hiuxwe2"); break;
-               }
-           }
-         else if (CPU_IS_HP_MC68K (cpu))
-           puts ("m68k-hitachi-hiuxwe2");
-         else puts ("unknown-hitachi-hiuxwe2");
-         exit (0);
-       }
-EOF
-       $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
-       echo unknown-hitachi-hiuxwe2
-       exit 0 ;;
-    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
-       echo hppa1.1-hp-bsd
-       exit 0 ;;
-    9000/8??:4.3bsd:*:*)
-       echo hppa1.0-hp-bsd
-       exit 0 ;;
-    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
-       echo hppa1.0-hp-mpeix
-       exit 0 ;;
-    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
-       echo hppa1.1-hp-osf
-       exit 0 ;;
-    hp8??:OSF1:*:*)
-       echo hppa1.0-hp-osf
-       exit 0 ;;
-    i*86:OSF1:*:*)
-       if [ -x /usr/sbin/sysversion ] ; then
-           echo ${UNAME_MACHINE}-unknown-osf1mk
-       else
-           echo ${UNAME_MACHINE}-unknown-osf1
-       fi
-       exit 0 ;;
-    parisc*:Lites*:*:*)
-       echo hppa1.1-hp-lites
-       exit 0 ;;
-    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
-       echo c1-convex-bsd
-        exit 0 ;;
-    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
-       if getsysinfo -f scalar_acc
-       then echo c32-convex-bsd
-       else echo c2-convex-bsd
-       fi
-        exit 0 ;;
-    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
-       echo c34-convex-bsd
-        exit 0 ;;
-    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
-       echo c38-convex-bsd
-        exit 0 ;;
-    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
-       echo c4-convex-bsd
-        exit 0 ;;
-    CRAY*Y-MP:*:*:*)
-       echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-       exit 0 ;;
-    CRAY*[A-Z]90:*:*:*)
-       echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
-       | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
-             -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
-             -e 's/\.[^.]*$/.X/'
-       exit 0 ;;
-    CRAY*TS:*:*:*)
-       echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-       exit 0 ;;
-    CRAY*T3E:*:*:*)
-       echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-       exit 0 ;;
-    CRAY*SV1:*:*:*)
-       echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-       exit 0 ;;
-    *:UNICOS/mp:*:*)
-       echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-       exit 0 ;;
-    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
-       FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
-        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-        exit 0 ;;
-    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
-       echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
-       exit 0 ;;
-    sparc*:BSD/OS:*:*)
-       echo sparc-unknown-bsdi${UNAME_RELEASE}
-       exit 0 ;;
-    *:BSD/OS:*:*)
-       echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
-       exit 0 ;;
-    *:FreeBSD:*:*|*:GNU/FreeBSD:*:*)
-       # Determine whether the default compiler uses glibc.
-       eval $set_cc_for_build
-       sed 's/^        //' << EOF >$dummy.c
-       #include <features.h>
-       #if __GLIBC__ >= 2
-       LIBC=gnu
-       #else
-       LIBC=
-       #endif
-EOF
-       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
-       # GNU/FreeBSD systems have a "k" prefix to indicate we are using
-       # FreeBSD's kernel, but not the complete OS.
-       case ${LIBC} in gnu) kernel_only='k' ;; esac
-       echo ${UNAME_MACHINE}-unknown-${kernel_only}freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
-       exit 0 ;;
-    i*:CYGWIN*:*)
-       echo ${UNAME_MACHINE}-pc-cygwin
-       exit 0 ;;
-    i*:MINGW*:*)
-       echo ${UNAME_MACHINE}-pc-mingw32
-       exit 0 ;;
-    i*:PW*:*)
-       echo ${UNAME_MACHINE}-pc-pw32
-       exit 0 ;;
-    x86:Interix*:[34]*)
-       echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
-       exit 0 ;;
-    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
-       echo i${UNAME_MACHINE}-pc-mks
-       exit 0 ;;
-    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
-       # How do we know it's Interix rather than the generic POSIX subsystem?
-       # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
-       # UNAME_MACHINE based on the output of uname instead of i386?
-       echo i586-pc-interix
-       exit 0 ;;
-    i*:UWIN*:*)
-       echo ${UNAME_MACHINE}-pc-uwin
-       exit 0 ;;
-    p*:CYGWIN*:*)
-       echo powerpcle-unknown-cygwin
-       exit 0 ;;
-    prep*:SunOS:5.*:*)
-       echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-       exit 0 ;;
-    *:GNU:*:*)
-       echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
-       exit 0 ;;
-    i*86:Minix:*:*)
-       echo ${UNAME_MACHINE}-pc-minix
-       exit 0 ;;
-    arm*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit 0 ;;
-    cris:Linux:*:*)
-       echo cris-axis-linux-gnu
-       exit 0 ;;
-    ia64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit 0 ;;
-    m68*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit 0 ;;
-    mips:Linux:*:*)
-       eval $set_cc_for_build
-       sed 's/^        //' << EOF >$dummy.c
-       #undef CPU
-       #undef mips
-       #undef mipsel
-       #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-       CPU=mipsel
-       #else
-       #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-       CPU=mips
-       #else
-       CPU=
-       #endif
-       #endif
-EOF
-       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
-       test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
-       ;;
-    mips64:Linux:*:*)
-       eval $set_cc_for_build
-       sed 's/^        //' << EOF >$dummy.c
-       #undef CPU
-       #undef mips64
-       #undef mips64el
-       #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-       CPU=mips64el
-       #else
-       #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-       CPU=mips64
-       #else
-       CPU=
-       #endif
-       #endif
-EOF
-       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
-       test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
-       ;;
-    ppc:Linux:*:*)
-       echo powerpc-unknown-linux-gnu
-       exit 0 ;;
-    ppc64:Linux:*:*)
-       echo powerpc64-unknown-linux-gnu
-       exit 0 ;;
-    alpha:Linux:*:*)
-       case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
-         EV5)   UNAME_MACHINE=alphaev5 ;;
-         EV56)  UNAME_MACHINE=alphaev56 ;;
-         PCA56) UNAME_MACHINE=alphapca56 ;;
-         PCA57) UNAME_MACHINE=alphapca56 ;;
-         EV6)   UNAME_MACHINE=alphaev6 ;;
-         EV67)  UNAME_MACHINE=alphaev67 ;;
-         EV68*) UNAME_MACHINE=alphaev68 ;;
-        esac
-       objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
-       if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-       echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
-       exit 0 ;;
-    parisc:Linux:*:* | hppa:Linux:*:*)
-       # Look for CPU level
-       case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
-         PA7*) echo hppa1.1-unknown-linux-gnu ;;
-         PA8*) echo hppa2.0-unknown-linux-gnu ;;
-         *)    echo hppa-unknown-linux-gnu ;;
-       esac
-       exit 0 ;;
-    parisc64:Linux:*:* | hppa64:Linux:*:*)
-       echo hppa64-unknown-linux-gnu
-       exit 0 ;;
-    s390:Linux:*:* | s390x:Linux:*:*)
-       echo ${UNAME_MACHINE}-ibm-linux
-       exit 0 ;;
-    sh64*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit 0 ;;
-    sh*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit 0 ;;
-    sparc:Linux:*:* | sparc64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit 0 ;;
-    x86_64:Linux:*:*)
-       echo x86_64-unknown-linux-gnu
-       exit 0 ;;
-    i*86:Linux:*:*)
-       # The BFD linker knows what the default object file format is, so
-       # first see if it will tell us. cd to the root directory to prevent
-       # problems with other programs or directories called `ld' in the path.
-       # Set LC_ALL=C to ensure ld outputs messages in English.
-       ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
-                        | sed -ne '/supported targets:/!d
-                                   s/[         ][      ]*/ /g
-                                   s/.*supported targets: *//
-                                   s/ .*//
-                                   p'`
-        case "$ld_supported_targets" in
-         elf32-i386)
-               TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
-               ;;
-         a.out-i386-linux)
-               echo "${UNAME_MACHINE}-pc-linux-gnuaout"
-               exit 0 ;;
-         coff-i386)
-               echo "${UNAME_MACHINE}-pc-linux-gnucoff"
-               exit 0 ;;
-         "")
-               # Either a pre-BFD a.out linker (linux-gnuoldld) or
-               # one that does not give us useful --help.
-               echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
-               exit 0 ;;
-       esac
-       # Determine whether the default compiler is a.out or elf
-       eval $set_cc_for_build
-       sed 's/^        //' << EOF >$dummy.c
-       #include <features.h>
-       #ifdef __ELF__
-       # ifdef __GLIBC__
-       #  if __GLIBC__ >= 2
-       LIBC=gnu
-       #  else
-       LIBC=gnulibc1
-       #  endif
-       # else
-       LIBC=gnulibc1
-       # endif
-       #else
-       #ifdef __INTEL_COMPILER
-       LIBC=gnu
-       #else
-       LIBC=gnuaout
-       #endif
-       #endif
-       #ifdef __dietlibc__
-       LIBC=dietlibc
-       #endif
-EOF
-       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
-       test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
-       test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
-       ;;
-    i*86:DYNIX/ptx:4*:*)
-       # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
-       # earlier versions are messed up and put the nodename in both
-       # sysname and nodename.
-       echo i386-sequent-sysv4
-       exit 0 ;;
-    i*86:UNIX_SV:4.2MP:2.*)
-        # Unixware is an offshoot of SVR4, but it has its own version
-        # number series starting with 2...
-        # I am not positive that other SVR4 systems won't match this,
-       # I just have to hope.  -- rms.
-        # Use sysv4.2uw... so that sysv4* matches it.
-       echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
-       exit 0 ;;
-    i*86:OS/2:*:*)
-       # If we were able to find `uname', then EMX Unix compatibility
-       # is probably installed.
-       echo ${UNAME_MACHINE}-pc-os2-emx
-       exit 0 ;;
-    i*86:XTS-300:*:STOP)
-       echo ${UNAME_MACHINE}-unknown-stop
-       exit 0 ;;
-    i*86:atheos:*:*)
-       echo ${UNAME_MACHINE}-unknown-atheos
-       exit 0 ;;
-    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
-       echo i386-unknown-lynxos${UNAME_RELEASE}
-       exit 0 ;;
-    i*86:*DOS:*:*)
-       echo ${UNAME_MACHINE}-pc-msdosdjgpp
-       exit 0 ;;
-    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
-       UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
-       if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
-               echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
-       else
-               echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
-       fi
-       exit 0 ;;
-    i*86:*:5:[78]*)
-       case `/bin/uname -X | grep "^Machine"` in
-           *486*)           UNAME_MACHINE=i486 ;;
-           *Pentium)        UNAME_MACHINE=i586 ;;
-           *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
-       esac
-       echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
-       exit 0 ;;
-    i*86:*:3.2:*)
-       if test -f /usr/options/cb.name; then
-               UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
-               echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
-       elif /bin/uname -X 2>/dev/null >/dev/null ; then
-               UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
-               (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
-               (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
-                       && UNAME_MACHINE=i586
-               (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
-                       && UNAME_MACHINE=i686
-               (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
-                       && UNAME_MACHINE=i686
-               echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
-       else
-               echo ${UNAME_MACHINE}-pc-sysv32
-       fi
-       exit 0 ;;
-    pc:*:*:*)
-       # Left here for compatibility:
-        # uname -m prints for DJGPP always 'pc', but it prints nothing about
-        # the processor, so we play safe by assuming i386.
-       echo i386-pc-msdosdjgpp
-        exit 0 ;;
-    Intel:Mach:3*:*)
-       echo i386-pc-mach3
-       exit 0 ;;
-    paragon:*:*:*)
-       echo i860-intel-osf1
-       exit 0 ;;
-    i860:*:4.*:*) # i860-SVR4
-       if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
-         echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
-       else # Add other i860-SVR4 vendors below as they are discovered.
-         echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
-       fi
-       exit 0 ;;
-    mini*:CTIX:SYS*5:*)
-       # "miniframe"
-       echo m68010-convergent-sysv
-       exit 0 ;;
-    mc68k:UNIX:SYSTEM5:3.51m)
-       echo m68k-convergent-sysv
-       exit 0 ;;
-    M680?0:D-NIX:5.3:*)
-       echo m68k-diab-dnix
-       exit 0 ;;
-    M68*:*:R3V[567]*:*)
-       test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
-    3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0)
-       OS_REL=''
-       test -r /etc/.relid \
-       && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
-       /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-         && echo i486-ncr-sysv4.3${OS_REL} && exit 0
-       /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
-         && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
-    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
-        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-          && echo i486-ncr-sysv4 && exit 0 ;;
-    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
-       echo m68k-unknown-lynxos${UNAME_RELEASE}
-       exit 0 ;;
-    mc68030:UNIX_System_V:4.*:*)
-       echo m68k-atari-sysv4
-       exit 0 ;;
-    TSUNAMI:LynxOS:2.*:*)
-       echo sparc-unknown-lynxos${UNAME_RELEASE}
-       exit 0 ;;
-    rs6000:LynxOS:2.*:*)
-       echo rs6000-unknown-lynxos${UNAME_RELEASE}
-       exit 0 ;;
-    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
-       echo powerpc-unknown-lynxos${UNAME_RELEASE}
-       exit 0 ;;
-    SM[BE]S:UNIX_SV:*:*)
-       echo mips-dde-sysv${UNAME_RELEASE}
-       exit 0 ;;
-    RM*:ReliantUNIX-*:*:*)
-       echo mips-sni-sysv4
-       exit 0 ;;
-    RM*:SINIX-*:*:*)
-       echo mips-sni-sysv4
-       exit 0 ;;
-    *:SINIX-*:*:*)
-       if uname -p 2>/dev/null >/dev/null ; then
-               UNAME_MACHINE=`(uname -p) 2>/dev/null`
-               echo ${UNAME_MACHINE}-sni-sysv4
-       else
-               echo ns32k-sni-sysv
-       fi
-       exit 0 ;;
-    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
-                      # says <[email protected]>
-        echo i586-unisys-sysv4
-        exit 0 ;;
-    *:UNIX_System_V:4*:FTX*)
-       # From Gerald Hewes <[email protected]>.
-       # How about differentiating between stratus architectures? -djm
-       echo hppa1.1-stratus-sysv4
-       exit 0 ;;
-    *:*:*:FTX*)
-       # From [email protected].
-       echo i860-stratus-sysv4
-       exit 0 ;;
-    *:VOS:*:*)
-       # From [email protected].
-       echo hppa1.1-stratus-vos
-       exit 0 ;;
-    mc68*:A/UX:*:*)
-       echo m68k-apple-aux${UNAME_RELEASE}
-       exit 0 ;;
-    news*:NEWS-OS:6*:*)
-       echo mips-sony-newsos6
-       exit 0 ;;
-    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
-       if [ -d /usr/nec ]; then
-               echo mips-nec-sysv${UNAME_RELEASE}
-       else
-               echo mips-unknown-sysv${UNAME_RELEASE}
-       fi
-        exit 0 ;;
-    BeBox:BeOS:*:*)    # BeOS running on hardware made by Be, PPC only.
-       echo powerpc-be-beos
-       exit 0 ;;
-    BeMac:BeOS:*:*)    # BeOS running on Mac or Mac clone, PPC only.
-       echo powerpc-apple-beos
-       exit 0 ;;
-    BePC:BeOS:*:*)     # BeOS running on Intel PC compatible.
-       echo i586-pc-beos
-       exit 0 ;;
-    SX-4:SUPER-UX:*:*)
-       echo sx4-nec-superux${UNAME_RELEASE}
-       exit 0 ;;
-    SX-5:SUPER-UX:*:*)
-       echo sx5-nec-superux${UNAME_RELEASE}
-       exit 0 ;;
-    SX-6:SUPER-UX:*:*)
-       echo sx6-nec-superux${UNAME_RELEASE}
-       exit 0 ;;
-    Power*:Rhapsody:*:*)
-       echo powerpc-apple-rhapsody${UNAME_RELEASE}
-       exit 0 ;;
-    *:Rhapsody:*:*)
-       echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
-       exit 0 ;;
-    *:Darwin:*:*)
-       case `uname -p` in
-           *86) UNAME_PROCESSOR=i686 ;;
-           powerpc) UNAME_PROCESSOR=powerpc ;;
-       esac
-       echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
-       exit 0 ;;
-    *:procnto*:*:* | *:QNX:[0123456789]*:*)
-       UNAME_PROCESSOR=`uname -p`
-       if test "$UNAME_PROCESSOR" = "x86"; then
-               UNAME_PROCESSOR=i386
-               UNAME_MACHINE=pc
-       fi
-       echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
-       exit 0 ;;
-    *:QNX:*:4*)
-       echo i386-pc-qnx
-       exit 0 ;;
-    NSR-[DGKLNPTVWY]:NONSTOP_KERNEL:*:*)
-       echo nsr-tandem-nsk${UNAME_RELEASE}
-       exit 0 ;;
-    *:NonStop-UX:*:*)
-       echo mips-compaq-nonstopux
-       exit 0 ;;
-    BS2000:POSIX*:*:*)
-       echo bs2000-siemens-sysv
-       exit 0 ;;
-    DS/*:UNIX_System_V:*:*)
-       echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
-       exit 0 ;;
-    *:Plan9:*:*)
-       # "uname -m" is not consistent, so use $cputype instead. 386
-       # is converted to i386 for consistency with other x86
-       # operating systems.
-       if test "$cputype" = "386"; then
-           UNAME_MACHINE=i386
-       else
-           UNAME_MACHINE="$cputype"
-       fi
-       echo ${UNAME_MACHINE}-unknown-plan9
-       exit 0 ;;
-    *:TOPS-10:*:*)
-       echo pdp10-unknown-tops10
-       exit 0 ;;
-    *:TENEX:*:*)
-       echo pdp10-unknown-tenex
-       exit 0 ;;
-    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
-       echo pdp10-dec-tops20
-       exit 0 ;;
-    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
-       echo pdp10-xkl-tops20
-       exit 0 ;;
-    *:TOPS-20:*:*)
-       echo pdp10-unknown-tops20
-       exit 0 ;;
-    *:ITS:*:*)
-       echo pdp10-unknown-its
-       exit 0 ;;
-    SEI:*:*:SEIUX)
-        echo mips-sei-seiux${UNAME_RELEASE}
-       exit 0 ;;
-esac
-
-#echo '(No uname command or uname output not recognized.)' 1>&2
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-
-eval $set_cc_for_build
-cat >$dummy.c <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
-  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
-     I don't know....  */
-  printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
-  printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
-          "4"
-#else
-         ""
-#endif
-         ); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
-  printf ("arm-acorn-riscix"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
-  printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
-  int version;
-  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
-  if (version < 4)
-    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
-  else
-    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
-  exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
-  printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
-  printf ("ns32k-encore-mach\n"); exit (0);
-#else
-  printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
-  printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
-  printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
-  printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
-    struct utsname un;
-
-    uname(&un);
-
-    if (strncmp(un.version, "V2", 2) == 0) {
-       printf ("i386-sequent-ptx2\n"); exit (0);
-    }
-    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
-       printf ("i386-sequent-ptx1\n"); exit (0);
-    }
-    printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-# if !defined (ultrix)
-#  include <sys/param.h>
-#  if defined (BSD)
-#   if BSD == 43
-      printf ("vax-dec-bsd4.3\n"); exit (0);
-#   else
-#    if BSD == 199006
-      printf ("vax-dec-bsd4.3reno\n"); exit (0);
-#    else
-      printf ("vax-dec-bsd\n"); exit (0);
-#    endif
-#   endif
-#  else
-    printf ("vax-dec-bsd\n"); exit (0);
-#  endif
-# else
-    printf ("vax-dec-ultrix\n"); exit (0);
-# endif
-#endif
-
-#if defined (alliant) && defined (i860)
-  printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
-  exit (1);
-}
-EOF
-
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
-    case `getsysinfo -f cpu_type` in
-    c1*)
-       echo c1-convex-bsd
-       exit 0 ;;
-    c2*)
-       if getsysinfo -f scalar_acc
-       then echo c32-convex-bsd
-       else echo c2-convex-bsd
-       fi
-       exit 0 ;;
-    c34*)
-       echo c34-convex-bsd
-       exit 0 ;;
-    c38*)
-       echo c38-convex-bsd
-       exit 0 ;;
-    c4*)
-       echo c4-convex-bsd
-       exit 0 ;;
-    esac
-fi
-
-cat >&2 <<EOF
-$0: unable to guess system type
-
-This script, last modified $timestamp, has failed to recognize
-the operating system you are using. It is advised that you
-download the most up to date version of the config scripts from
-
-    ftp://ftp.gnu.org/pub/gnu/config/
-
-If the version you run ($0) is already up to date, please
-send the following data and any information you think might be
-pertinent to <[email protected]> in order to provide the needed
-information to handle your system.
-
-config.guess timestamp = $timestamp
-
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
-
-hostinfo               = `(hostinfo) 2>/dev/null`
-/bin/universe          = `(/bin/universe) 2>/dev/null`
-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
-/bin/arch              = `(/bin/arch) 2>/dev/null`
-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
-
-UNAME_MACHINE = ${UNAME_MACHINE}
-UNAME_RELEASE = ${UNAME_RELEASE}
-UNAME_SYSTEM  = ${UNAME_SYSTEM}
-UNAME_VERSION = ${UNAME_VERSION}
-EOF
-
-exit 1
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/nsock/src/config.sub b/nsock/src/config.sub
deleted file mode 100644 (file)
index 1f31816..0000000
+++ /dev/null
@@ -1,1510 +0,0 @@
-#! /bin/sh
-# Configuration validation subroutine script.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-
-timestamp='2003-08-18'
-
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine.  It does not imply ALL GNU software can.
-#
-# This file is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Please send patches to <[email protected]>.  Submit a context
-# diff and a properly formatted ChangeLog entry.
-#
-# Configuration subroutine to validate and canonicalize a configuration type.
-# Supply the specified configuration type as an argument.
-# If it is invalid, we print an error message on stderr and exit with code 1.
-# Otherwise, we print the canonical config type on stdout and succeed.
-
-# This file is supposed to be the same for all GNU packages
-# and recognize all the CPU types, system types and aliases
-# that are meaningful with *any* GNU software.
-# Each package is responsible for reporting which valid configurations
-# it does not support.  The user should be able to distinguish
-# a failure to support a valid configuration from a meaningless
-# configuration.
-
-# The goal of this file is to map all the various variations of a given
-# machine specification into a single specification in the form:
-#      CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-# or in some cases, the newer four-part form:
-#      CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
-# It is wrong to echo any other type of specification.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION] CPU-MFR-OPSYS
-       $0 [OPTION] ALIAS
-
-Canonicalize a configuration name.
-
-Operation modes:
-  -h, --help         print this help, then exit
-  -t, --time-stamp   print date of last modification, then exit
-  -v, --version      print version number, then exit
-
-Report bugs and patches to <[email protected]>."
-
-version="\
-GNU config.sub ($timestamp)
-
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
-Free Software Foundation, Inc.
-
-This is free software; see the source for copying conditions.  There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
-  case $1 in
-    --time-stamp | --time* | -t )
-       echo "$timestamp" ; exit 0 ;;
-    --version | -v )
-       echo "$version" ; exit 0 ;;
-    --help | --h* | -h )
-       echo "$usage"; exit 0 ;;
-    -- )     # Stop option processing
-       shift; break ;;
-    - )        # Use stdin as input.
-       break ;;
-    -* )
-       echo "$me: invalid option $1$help"
-       exit 1 ;;
-
-    *local*)
-       # First pass through any local machine types.
-       echo $1
-       exit 0;;
-
-    * )
-       break ;;
-  esac
-done
-
-case $# in
- 0) echo "$me: missing argument$help" >&2
-    exit 1;;
- 1) ;;
- *) echo "$me: too many arguments$help" >&2
-    exit 1;;
-esac
-
-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
-# Here we must recognize all the valid KERNEL-OS combinations.
-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
-case $maybe_os in
-  nto-qnx* | linux-gnu* | linux-dietlibc | kfreebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
-    os=-$maybe_os
-    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
-    ;;
-  *)
-    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
-    if [ $basic_machine != $1 ]
-    then os=`echo $1 | sed 's/.*-/-/'`
-    else os=; fi
-    ;;
-esac
-
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work.  We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
-       -sun*os*)
-               # Prevent following clause from handling this invalid input.
-               ;;
-       -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
-       -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
-       -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
-       -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-       -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-       -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-       -apple | -axis)
-               os=
-               basic_machine=$1
-               ;;
-       -sim | -cisco | -oki | -wec | -winbond)
-               os=
-               basic_machine=$1
-               ;;
-       -scout)
-               ;;
-       -wrs)
-               os=-vxworks
-               basic_machine=$1
-               ;;
-       -chorusos*)
-               os=-chorusos
-               basic_machine=$1
-               ;;
-       -chorusrdb)
-               os=-chorusrdb
-               basic_machine=$1
-               ;;
-       -hiux*)
-               os=-hiuxwe2
-               ;;
-       -sco5)
-               os=-sco3.2v5
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -sco4)
-               os=-sco3.2v4
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -sco3.2.[4-9]*)
-               os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -sco3.2v[4-9]*)
-               # Don't forget version if it is 3.2v4 or newer.
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -sco*)
-               os=-sco3.2v2
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -udk*)
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -isc)
-               os=-isc2.2
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -clix*)
-               basic_machine=clipper-intergraph
-               ;;
-       -isc*)
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -lynx*)
-               os=-lynxos
-               ;;
-       -ptx*)
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
-               ;;
-       -windowsnt*)
-               os=`echo $os | sed -e 's/windowsnt/winnt/'`
-               ;;
-       -psos*)
-               os=-psos
-               ;;
-       -mint | -mint[0-9]*)
-               basic_machine=m68k-atari
-               os=-mint
-               ;;
-esac
-
-# Decode aliases for certain CPU-COMPANY combinations.
-case $basic_machine in
-       # Recognize the basic CPU types without company name.
-       # Some are omitted here because they have special meanings below.
-       1750a | 580 \
-       | a29k \
-       | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
-       | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
-       | am33_2.0 \
-       | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
-       | c4x | clipper \
-       | d10v | d30v | dlx | dsp16xx \
-       | fr30 | frv \
-       | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
-       | i370 | i860 | i960 | ia64 \
-       | ip2k | iq2000 \
-       | m32r | m68000 | m68k | m88k | mcore \
-       | mips | mipsbe | mipseb | mipsel | mipsle \
-       | mips16 \
-       | mips64 | mips64el \
-       | mips64vr | mips64vrel \
-       | mips64orion | mips64orionel \
-       | mips64vr4100 | mips64vr4100el \
-       | mips64vr4300 | mips64vr4300el \
-       | mips64vr5000 | mips64vr5000el \
-       | mipsisa32 | mipsisa32el \
-       | mipsisa32r2 | mipsisa32r2el \
-       | mipsisa64 | mipsisa64el \
-       | mipsisa64r2 | mipsisa64r2el \
-       | mipsisa64sb1 | mipsisa64sb1el \
-       | mipsisa64sr71k | mipsisa64sr71kel \
-       | mipstx39 | mipstx39el \
-       | mn10200 | mn10300 \
-       | msp430 \
-       | ns16k | ns32k \
-       | openrisc | or32 \
-       | pdp10 | pdp11 | pj | pjl \
-       | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
-       | pyramid \
-       | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
-       | sh64 | sh64le \
-       | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \
-       | strongarm \
-       | tahoe | thumb | tic4x | tic80 | tron \
-       | v850 | v850e \
-       | we32k \
-       | x86 | xscale | xstormy16 | xtensa \
-       | z8k)
-               basic_machine=$basic_machine-unknown
-               ;;
-       m6811 | m68hc11 | m6812 | m68hc12)
-               # Motorola 68HC11/12.
-               basic_machine=$basic_machine-unknown
-               os=-none
-               ;;
-       m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
-               ;;
-
-       # We use `pc' rather than `unknown'
-       # because (1) that's what they normally are, and
-       # (2) the word "unknown" tends to confuse beginning users.
-       i*86 | x86_64)
-         basic_machine=$basic_machine-pc
-         ;;
-       # Object if more than one company name word.
-       *-*-*)
-               echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
-               exit 1
-               ;;
-       # Recognize the basic CPU types with company name.
-       580-* \
-       | a29k-* \
-       | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
-       | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
-       | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
-       | arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
-       | avr-* \
-       | bs2000-* \
-       | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
-       | clipper-* | cydra-* \
-       | d10v-* | d30v-* | dlx-* \
-       | elxsi-* \
-       | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
-       | h8300-* | h8500-* \
-       | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
-       | i*86-* | i860-* | i960-* | ia64-* \
-       | ip2k-* | iq2000-* \
-       | m32r-* \
-       | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-       | m88110-* | m88k-* | mcore-* \
-       | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
-       | mips16-* \
-       | mips64-* | mips64el-* \
-       | mips64vr-* | mips64vrel-* \
-       | mips64orion-* | mips64orionel-* \
-       | mips64vr4100-* | mips64vr4100el-* \
-       | mips64vr4300-* | mips64vr4300el-* \
-       | mips64vr5000-* | mips64vr5000el-* \
-       | mipsisa32-* | mipsisa32el-* \
-       | mipsisa32r2-* | mipsisa32r2el-* \
-       | mipsisa64-* | mipsisa64el-* \
-       | mipsisa64r2-* | mipsisa64r2el-* \
-       | mipsisa64sb1-* | mipsisa64sb1el-* \
-       | mipsisa64sr71k-* | mipsisa64sr71kel-* \
-       | mipstx39-* | mipstx39el-* \
-       | msp430-* \
-       | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \
-       | orion-* \
-       | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
-       | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
-       | pyramid-* \
-       | romp-* | rs6000-* \
-       | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
-       | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
-       | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
-       | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
-       | tahoe-* | thumb-* \
-       | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
-       | tron-* \
-       | v850-* | v850e-* | vax-* \
-       | we32k-* \
-       | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
-       | xtensa-* \
-       | ymp-* \
-       | z8k-*)
-               ;;
-       # Recognize the various machine names and aliases which stand
-       # for a CPU type and a company and sometimes even an OS.
-       386bsd)
-               basic_machine=i386-unknown
-               os=-bsd
-               ;;
-       3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
-               basic_machine=m68000-att
-               ;;
-       3b*)
-               basic_machine=we32k-att
-               ;;
-       a29khif)
-               basic_machine=a29k-amd
-               os=-udi
-               ;;
-       adobe68k)
-               basic_machine=m68010-adobe
-               os=-scout
-               ;;
-       alliant | fx80)
-               basic_machine=fx80-alliant
-               ;;
-       altos | altos3068)
-               basic_machine=m68k-altos
-               ;;
-       am29k)
-               basic_machine=a29k-none
-               os=-bsd
-               ;;
-       amd64)
-               basic_machine=x86_64-pc
-               ;;
-       amdahl)
-               basic_machine=580-amdahl
-               os=-sysv
-               ;;
-       amiga | amiga-*)
-               basic_machine=m68k-unknown
-               ;;
-       amigaos | amigados)
-               basic_machine=m68k-unknown
-               os=-amigaos
-               ;;
-       amigaunix | amix)
-               basic_machine=m68k-unknown
-               os=-sysv4
-               ;;
-       apollo68)
-               basic_machine=m68k-apollo
-               os=-sysv
-               ;;
-       apollo68bsd)
-               basic_machine=m68k-apollo
-               os=-bsd
-               ;;
-       aux)
-               basic_machine=m68k-apple
-               os=-aux
-               ;;
-       balance)
-               basic_machine=ns32k-sequent
-               os=-dynix
-               ;;
-       c90)
-               basic_machine=c90-cray
-               os=-unicos
-               ;;
-       convex-c1)
-               basic_machine=c1-convex
-               os=-bsd
-               ;;
-       convex-c2)
-               basic_machine=c2-convex
-               os=-bsd
-               ;;
-       convex-c32)
-               basic_machine=c32-convex
-               os=-bsd
-               ;;
-       convex-c34)
-               basic_machine=c34-convex
-               os=-bsd
-               ;;
-       convex-c38)
-               basic_machine=c38-convex
-               os=-bsd
-               ;;
-       cray | j90)
-               basic_machine=j90-cray
-               os=-unicos
-               ;;
-       crds | unos)
-               basic_machine=m68k-crds
-               ;;
-       cris | cris-* | etrax*)
-               basic_machine=cris-axis
-               ;;
-       da30 | da30-*)
-               basic_machine=m68k-da30
-               ;;
-       decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
-               basic_machine=mips-dec
-               ;;
-       decsystem10* | dec10*)
-               basic_machine=pdp10-dec
-               os=-tops10
-               ;;
-       decsystem20* | dec20*)
-               basic_machine=pdp10-dec
-               os=-tops20
-               ;;
-       delta | 3300 | motorola-3300 | motorola-delta \
-             | 3300-motorola | delta-motorola)
-               basic_machine=m68k-motorola
-               ;;
-       delta88)
-               basic_machine=m88k-motorola
-               os=-sysv3
-               ;;
-       dpx20 | dpx20-*)
-               basic_machine=rs6000-bull
-               os=-bosx
-               ;;
-       dpx2* | dpx2*-bull)
-               basic_machine=m68k-bull
-               os=-sysv3
-               ;;
-       ebmon29k)
-               basic_machine=a29k-amd
-               os=-ebmon
-               ;;
-       elxsi)
-               basic_machine=elxsi-elxsi
-               os=-bsd
-               ;;
-       encore | umax | mmax)
-               basic_machine=ns32k-encore
-               ;;
-       es1800 | OSE68k | ose68k | ose | OSE)
-               basic_machine=m68k-ericsson
-               os=-ose
-               ;;
-       fx2800)
-               basic_machine=i860-alliant
-               ;;
-       genix)
-               basic_machine=ns32k-ns
-               ;;
-       gmicro)
-               basic_machine=tron-gmicro
-               os=-sysv
-               ;;
-       go32)
-               basic_machine=i386-pc
-               os=-go32
-               ;;
-       h3050r* | hiux*)
-               basic_machine=hppa1.1-hitachi
-               os=-hiuxwe2
-               ;;
-       h8300hms)
-               basic_machine=h8300-hitachi
-               os=-hms
-               ;;
-       h8300xray)
-               basic_machine=h8300-hitachi
-               os=-xray
-               ;;
-       h8500hms)
-               basic_machine=h8500-hitachi
-               os=-hms
-               ;;
-       harris)
-               basic_machine=m88k-harris
-               os=-sysv3
-               ;;
-       hp300-*)
-               basic_machine=m68k-hp
-               ;;
-       hp300bsd)
-               basic_machine=m68k-hp
-               os=-bsd
-               ;;
-       hp300hpux)
-               basic_machine=m68k-hp
-               os=-hpux
-               ;;
-       hp3k9[0-9][0-9] | hp9[0-9][0-9])
-               basic_machine=hppa1.0-hp
-               ;;
-       hp9k2[0-9][0-9] | hp9k31[0-9])
-               basic_machine=m68000-hp
-               ;;
-       hp9k3[2-9][0-9])
-               basic_machine=m68k-hp
-               ;;
-       hp9k6[0-9][0-9] | hp6[0-9][0-9])
-               basic_machine=hppa1.0-hp
-               ;;
-       hp9k7[0-79][0-9] | hp7[0-79][0-9])
-               basic_machine=hppa1.1-hp
-               ;;
-       hp9k78[0-9] | hp78[0-9])
-               # FIXME: really hppa2.0-hp
-               basic_machine=hppa1.1-hp
-               ;;
-       hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
-               # FIXME: really hppa2.0-hp
-               basic_machine=hppa1.1-hp
-               ;;
-       hp9k8[0-9][13679] | hp8[0-9][13679])
-               basic_machine=hppa1.1-hp
-               ;;
-       hp9k8[0-9][0-9] | hp8[0-9][0-9])
-               basic_machine=hppa1.0-hp
-               ;;
-       hppa-next)
-               os=-nextstep3
-               ;;
-       hppaosf)
-               basic_machine=hppa1.1-hp
-               os=-osf
-               ;;
-       hppro)
-               basic_machine=hppa1.1-hp
-               os=-proelf
-               ;;
-       i370-ibm* | ibm*)
-               basic_machine=i370-ibm
-               ;;
-# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
-       i*86v32)
-               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-               os=-sysv32
-               ;;
-       i*86v4*)
-               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-               os=-sysv4
-               ;;
-       i*86v)
-               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-               os=-sysv
-               ;;
-       i*86sol2)
-               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-               os=-solaris2
-               ;;
-       i386mach)
-               basic_machine=i386-mach
-               os=-mach
-               ;;
-       i386-vsta | vsta)
-               basic_machine=i386-unknown
-               os=-vsta
-               ;;
-       iris | iris4d)
-               basic_machine=mips-sgi
-               case $os in
-                   -irix*)
-                       ;;
-                   *)
-                       os=-irix4
-                       ;;
-               esac
-               ;;
-       isi68 | isi)
-               basic_machine=m68k-isi
-               os=-sysv
-               ;;
-       m88k-omron*)
-               basic_machine=m88k-omron
-               ;;
-       magnum | m3230)
-               basic_machine=mips-mips
-               os=-sysv
-               ;;
-       merlin)
-               basic_machine=ns32k-utek
-               os=-sysv
-               ;;
-       mingw32)
-               basic_machine=i386-pc
-               os=-mingw32
-               ;;
-       miniframe)
-               basic_machine=m68000-convergent
-               ;;
-       *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
-               basic_machine=m68k-atari
-               os=-mint
-               ;;
-       mips3*-*)
-               basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
-               ;;
-       mips3*)
-               basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
-               ;;
-       mmix*)
-               basic_machine=mmix-knuth
-               os=-mmixware
-               ;;
-       monitor)
-               basic_machine=m68k-rom68k
-               os=-coff
-               ;;
-       morphos)
-               basic_machine=powerpc-unknown
-               os=-morphos
-               ;;
-       msdos)
-               basic_machine=i386-pc
-               os=-msdos
-               ;;
-       mvs)
-               basic_machine=i370-ibm
-               os=-mvs
-               ;;
-       ncr3000)
-               basic_machine=i486-ncr
-               os=-sysv4
-               ;;
-       netbsd386)
-               basic_machine=i386-unknown
-               os=-netbsd
-               ;;
-       netwinder)
-               basic_machine=armv4l-rebel
-               os=-linux
-               ;;
-       news | news700 | news800 | news900)
-               basic_machine=m68k-sony
-               os=-newsos
-               ;;
-       news1000)
-               basic_machine=m68030-sony
-               os=-newsos
-               ;;
-       news-3600 | risc-news)
-               basic_machine=mips-sony
-               os=-newsos
-               ;;
-       necv70)
-               basic_machine=v70-nec
-               os=-sysv
-               ;;
-       next | m*-next )
-               basic_machine=m68k-next
-               case $os in
-                   -nextstep* )
-                       ;;
-                   -ns2*)
-                     os=-nextstep2
-                       ;;
-                   *)
-                     os=-nextstep3
-                       ;;
-               esac
-               ;;
-       nh3000)
-               basic_machine=m68k-harris
-               os=-cxux
-               ;;
-       nh[45]000)
-               basic_machine=m88k-harris
-               os=-cxux
-               ;;
-       nindy960)
-               basic_machine=i960-intel
-               os=-nindy
-               ;;
-       mon960)
-               basic_machine=i960-intel
-               os=-mon960
-               ;;
-       nonstopux)
-               basic_machine=mips-compaq
-               os=-nonstopux
-               ;;
-       np1)
-               basic_machine=np1-gould
-               ;;
-       nv1)
-               basic_machine=nv1-cray
-               os=-unicosmp
-               ;;
-       nsr-tandem)
-               basic_machine=nsr-tandem
-               ;;
-       op50n-* | op60c-*)
-               basic_machine=hppa1.1-oki
-               os=-proelf
-               ;;
-       or32 | or32-*)
-               basic_machine=or32-unknown
-               os=-coff
-               ;;
-       OSE68000 | ose68000)
-               basic_machine=m68000-ericsson
-               os=-ose
-               ;;
-       os68k)
-               basic_machine=m68k-none
-               os=-os68k
-               ;;
-       pa-hitachi)
-               basic_machine=hppa1.1-hitachi
-               os=-hiuxwe2
-               ;;
-       paragon)
-               basic_machine=i860-intel
-               os=-osf
-               ;;
-       pbd)
-               basic_machine=sparc-tti
-               ;;
-       pbb)
-               basic_machine=m68k-tti
-               ;;
-       pc532 | pc532-*)
-               basic_machine=ns32k-pc532
-               ;;
-       pentium | p5 | k5 | k6 | nexgen | viac3)
-               basic_machine=i586-pc
-               ;;
-       pentiumpro | p6 | 6x86 | athlon | athlon_*)
-               basic_machine=i686-pc
-               ;;
-       pentiumii | pentium2 | pentiumiii | pentium3)
-               basic_machine=i686-pc
-               ;;
-       pentium4)
-               basic_machine=i786-pc
-               ;;
-       pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
-               basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       pentiumpro-* | p6-* | 6x86-* | athlon-*)
-               basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
-               basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       pentium4-*)
-               basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       pn)
-               basic_machine=pn-gould
-               ;;
-       power)  basic_machine=power-ibm
-               ;;
-       ppc)    basic_machine=powerpc-unknown
-               ;;
-       ppc-*)  basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       ppcle | powerpclittle | ppc-le | powerpc-little)
-               basic_machine=powerpcle-unknown
-               ;;
-       ppcle-* | powerpclittle-*)
-               basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       ppc64)  basic_machine=powerpc64-unknown
-               ;;
-       ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       ppc64le | powerpc64little | ppc64-le | powerpc64-little)
-               basic_machine=powerpc64le-unknown
-               ;;
-       ppc64le-* | powerpc64little-*)
-               basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       ps2)
-               basic_machine=i386-ibm
-               ;;
-       pw32)
-               basic_machine=i586-unknown
-               os=-pw32
-               ;;
-       rom68k)
-               basic_machine=m68k-rom68k
-               os=-coff
-               ;;
-       rm[46]00)
-               basic_machine=mips-siemens
-               ;;
-       rtpc | rtpc-*)
-               basic_machine=romp-ibm
-               ;;
-       s390 | s390-*)
-               basic_machine=s390-ibm
-               ;;
-       s390x | s390x-*)
-               basic_machine=s390x-ibm
-               ;;
-       sa29200)
-               basic_machine=a29k-amd
-               os=-udi
-               ;;
-       sb1)
-               basic_machine=mipsisa64sb1-unknown
-               ;;
-       sb1el)
-               basic_machine=mipsisa64sb1el-unknown
-               ;;
-       sei)
-               basic_machine=mips-sei
-               os=-seiux
-               ;;
-       sequent)
-               basic_machine=i386-sequent
-               ;;
-       sh)
-               basic_machine=sh-hitachi
-               os=-hms
-               ;;
-       sh64)
-               basic_machine=sh64-unknown
-               ;;
-       sparclite-wrs | simso-wrs)
-               basic_machine=sparclite-wrs
-               os=-vxworks
-               ;;
-       sps7)
-               basic_machine=m68k-bull
-               os=-sysv2
-               ;;
-       spur)
-               basic_machine=spur-unknown
-               ;;
-       st2000)
-               basic_machine=m68k-tandem
-               ;;
-       stratus)
-               basic_machine=i860-stratus
-               os=-sysv4
-               ;;
-       sun2)
-               basic_machine=m68000-sun
-               ;;
-       sun2os3)
-               basic_machine=m68000-sun
-               os=-sunos3
-               ;;
-       sun2os4)
-               basic_machine=m68000-sun
-               os=-sunos4
-               ;;
-       sun3os3)
-               basic_machine=m68k-sun
-               os=-sunos3
-               ;;
-       sun3os4)
-               basic_machine=m68k-sun
-               os=-sunos4
-               ;;
-       sun4os3)
-               basic_machine=sparc-sun
-               os=-sunos3
-               ;;
-       sun4os4)
-               basic_machine=sparc-sun
-               os=-sunos4
-               ;;
-       sun4sol2)
-               basic_machine=sparc-sun
-               os=-solaris2
-               ;;
-       sun3 | sun3-*)
-               basic_machine=m68k-sun
-               ;;
-       sun4)
-               basic_machine=sparc-sun
-               ;;
-       sun386 | sun386i | roadrunner)
-               basic_machine=i386-sun
-               ;;
-       sv1)
-               basic_machine=sv1-cray
-               os=-unicos
-               ;;
-       symmetry)
-               basic_machine=i386-sequent
-               os=-dynix
-               ;;
-       t3e)
-               basic_machine=alphaev5-cray
-               os=-unicos
-               ;;
-       t90)
-               basic_machine=t90-cray
-               os=-unicos
-               ;;
-       tic54x | c54x*)
-               basic_machine=tic54x-unknown
-               os=-coff
-               ;;
-       tic55x | c55x*)
-               basic_machine=tic55x-unknown
-               os=-coff
-               ;;
-       tic6x | c6x*)
-               basic_machine=tic6x-unknown
-               os=-coff
-               ;;
-       tx39)
-               basic_machine=mipstx39-unknown
-               ;;
-       tx39el)
-               basic_machine=mipstx39el-unknown
-               ;;
-       toad1)
-               basic_machine=pdp10-xkl
-               os=-tops20
-               ;;
-       tower | tower-32)
-               basic_machine=m68k-ncr
-               ;;
-       udi29k)
-               basic_machine=a29k-amd
-               os=-udi
-               ;;
-       ultra3)
-               basic_machine=a29k-nyu
-               os=-sym1
-               ;;
-       v810 | necv810)
-               basic_machine=v810-nec
-               os=-none
-               ;;
-       vaxv)
-               basic_machine=vax-dec
-               os=-sysv
-               ;;
-       vms)
-               basic_machine=vax-dec
-               os=-vms
-               ;;
-       vpp*|vx|vx-*)
-               basic_machine=f301-fujitsu
-               ;;
-       vxworks960)
-               basic_machine=i960-wrs
-               os=-vxworks
-               ;;
-       vxworks68)
-               basic_machine=m68k-wrs
-               os=-vxworks
-               ;;
-       vxworks29k)
-               basic_machine=a29k-wrs
-               os=-vxworks
-               ;;
-       w65*)
-               basic_machine=w65-wdc
-               os=-none
-               ;;
-       w89k-*)
-               basic_machine=hppa1.1-winbond
-               os=-proelf
-               ;;
-       xps | xps100)
-               basic_machine=xps100-honeywell
-               ;;
-       ymp)
-               basic_machine=ymp-cray
-               os=-unicos
-               ;;
-       z8k-*-coff)
-               basic_machine=z8k-unknown
-               os=-sim
-               ;;
-       none)
-               basic_machine=none-none
-               os=-none
-               ;;
-
-# Here we handle the default manufacturer of certain CPU types.  It is in
-# some cases the only manufacturer, in others, it is the most popular.
-       w89k)
-               basic_machine=hppa1.1-winbond
-               ;;
-       op50n)
-               basic_machine=hppa1.1-oki
-               ;;
-       op60c)
-               basic_machine=hppa1.1-oki
-               ;;
-       romp)
-               basic_machine=romp-ibm
-               ;;
-       rs6000)
-               basic_machine=rs6000-ibm
-               ;;
-       vax)
-               basic_machine=vax-dec
-               ;;
-       pdp10)
-               # there are many clones, so DEC is not a safe bet
-               basic_machine=pdp10-unknown
-               ;;
-       pdp11)
-               basic_machine=pdp11-dec
-               ;;
-       we32k)
-               basic_machine=we32k-att
-               ;;
-       sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
-               basic_machine=sh-unknown
-               ;;
-       sh64)
-               basic_machine=sh64-unknown
-               ;;
-       sparc | sparcv9 | sparcv9b)
-               basic_machine=sparc-sun
-               ;;
-       cydra)
-               basic_machine=cydra-cydrome
-               ;;
-       orion)
-               basic_machine=orion-highlevel
-               ;;
-       orion105)
-               basic_machine=clipper-highlevel
-               ;;
-       mac | mpw | mac-mpw)
-               basic_machine=m68k-apple
-               ;;
-       pmac | pmac-mpw)
-               basic_machine=powerpc-apple
-               ;;
-       *-unknown)
-               # Make sure to match an already-canonicalized machine name.
-               ;;
-       *)
-               echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
-               exit 1
-               ;;
-esac
-
-# Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
-       *-digital*)
-               basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
-               ;;
-       *-commodore*)
-               basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
-               ;;
-       *)
-               ;;
-esac
-
-# Decode manufacturer-specific aliases for certain operating systems.
-
-if [ x"$os" != x"" ]
-then
-case $os in
-        # First match some system type aliases
-        # that might get confused with valid system types.
-       # -solaris* is a basic system type, with this one exception.
-       -solaris1 | -solaris1.*)
-               os=`echo $os | sed -e 's|solaris1|sunos4|'`
-               ;;
-       -solaris)
-               os=-solaris2
-               ;;
-       -svr4*)
-               os=-sysv4
-               ;;
-       -unixware*)
-               os=-sysv4.2uw
-               ;;
-       -gnu/linux*)
-               os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
-               ;;
-       # First accept the basic system types.
-       # The portable systems comes first.
-       # Each alternative MUST END IN A *, to match a version number.
-       # -sysv* is not here because it comes later, after sysvr4.
-       -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
-             | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
-             | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
-             | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
-             | -aos* \
-             | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
-             | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
-             | -hiux* | -386bsd* | -netbsd* | -openbsd* | -kfreebsd* | -freebsd* | -riscix* \
-             | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
-             | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
-             | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
-             | -chorusos* | -chorusrdb* \
-             | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-             | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
-             | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
-             | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
-             | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
-             | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
-             | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
-             | -powermax* | -dnix* | -nx6 | -nx7 | -sei*)
-       # Remember, each alternative MUST END IN *, to match a version number.
-               ;;
-       -qnx*)
-               case $basic_machine in
-                   x86-* | i*86-*)
-                       ;;
-                   *)
-                       os=-nto$os
-                       ;;
-               esac
-               ;;
-       -nto-qnx*)
-               ;;
-       -nto*)
-               os=`echo $os | sed -e 's|nto|nto-qnx|'`
-               ;;
-       -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
-             | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
-             | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
-               ;;
-       -mac*)
-               os=`echo $os | sed -e 's|mac|macos|'`
-               ;;
-       -linux-dietlibc)
-               os=-linux-dietlibc
-               ;;
-       -linux*)
-               os=`echo $os | sed -e 's|linux|linux-gnu|'`
-               ;;
-       -sunos5*)
-               os=`echo $os | sed -e 's|sunos5|solaris2|'`
-               ;;
-       -sunos6*)
-               os=`echo $os | sed -e 's|sunos6|solaris3|'`
-               ;;
-       -opened*)
-               os=-openedition
-               ;;
-       -wince*)
-               os=-wince
-               ;;
-       -osfrose*)
-               os=-osfrose
-               ;;
-       -osf*)
-               os=-osf
-               ;;
-       -utek*)
-               os=-bsd
-               ;;
-       -dynix*)
-               os=-bsd
-               ;;
-       -acis*)
-               os=-aos
-               ;;
-       -atheos*)
-               os=-atheos
-               ;;
-       -386bsd)
-               os=-bsd
-               ;;
-       -ctix* | -uts*)
-               os=-sysv
-               ;;
-       -nova*)
-               os=-rtmk-nova
-               ;;
-       -ns2 )
-               os=-nextstep2
-               ;;
-       -nsk*)
-               os=-nsk
-               ;;
-       # Preserve the version number of sinix5.
-       -sinix5.*)
-               os=`echo $os | sed -e 's|sinix|sysv|'`
-               ;;
-       -sinix*)
-               os=-sysv4
-               ;;
-       -triton*)
-               os=-sysv3
-               ;;
-       -oss*)
-               os=-sysv3
-               ;;
-       -svr4)
-               os=-sysv4
-               ;;
-       -svr3)
-               os=-sysv3
-               ;;
-       -sysvr4)
-               os=-sysv4
-               ;;
-       # This must come after -sysvr4.
-       -sysv*)
-               ;;
-       -ose*)
-               os=-ose
-               ;;
-       -es1800*)
-               os=-ose
-               ;;
-       -xenix)
-               os=-xenix
-               ;;
-       -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
-               os=-mint
-               ;;
-       -aros*)
-               os=-aros
-               ;;
-       -kaos*)
-               os=-kaos
-               ;;
-       -none)
-               ;;
-       *)
-               # Get rid of the `-' at the beginning of $os.
-               os=`echo $os | sed 's/[^-]*-//'`
-               echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
-               exit 1
-               ;;
-esac
-else
-
-# Here we handle the default operating systems that come with various machines.
-# The value should be what the vendor currently ships out the door with their
-# machine or put another way, the most popular os provided with the machine.
-
-# Note that if you're going to try to match "-MANUFACTURER" here (say,
-# "-sun"), then you have to tell the case statement up towards the top
-# that MANUFACTURER isn't an operating system.  Otherwise, code above
-# will signal an error saying that MANUFACTURER isn't an operating
-# system, and we'll never get to this point.
-
-case $basic_machine in
-       *-acorn)
-               os=-riscix1.2
-               ;;
-       arm*-rebel)
-               os=-linux
-               ;;
-       arm*-semi)
-               os=-aout
-               ;;
-    c4x-* | tic4x-*)
-        os=-coff
-        ;;
-       # This must come before the *-dec entry.
-       pdp10-*)
-               os=-tops20
-               ;;
-       pdp11-*)
-               os=-none
-               ;;
-       *-dec | vax-*)
-               os=-ultrix4.2
-               ;;
-       m68*-apollo)
-               os=-domain
-               ;;
-       i386-sun)
-               os=-sunos4.0.2
-               ;;
-       m68000-sun)
-               os=-sunos3
-               # This also exists in the configure program, but was not the
-               # default.
-               # os=-sunos4
-               ;;
-       m68*-cisco)
-               os=-aout
-               ;;
-       mips*-cisco)
-               os=-elf
-               ;;
-       mips*-*)
-               os=-elf
-               ;;
-       or32-*)
-               os=-coff
-               ;;
-       *-tti)  # must be before sparc entry or we get the wrong os.
-               os=-sysv3
-               ;;
-       sparc-* | *-sun)
-               os=-sunos4.1.1
-               ;;
-       *-be)
-               os=-beos
-               ;;
-       *-ibm)
-               os=-aix
-               ;;
-       *-wec)
-               os=-proelf
-               ;;
-       *-winbond)
-               os=-proelf
-               ;;
-       *-oki)
-               os=-proelf
-               ;;
-       *-hp)
-               os=-hpux
-               ;;
-       *-hitachi)
-               os=-hiux
-               ;;
-       i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
-               os=-sysv
-               ;;
-       *-cbm)
-               os=-amigaos
-               ;;
-       *-dg)
-               os=-dgux
-               ;;
-       *-dolphin)
-               os=-sysv3
-               ;;
-       m68k-ccur)
-               os=-rtu
-               ;;
-       m88k-omron*)
-               os=-luna
-               ;;
-       *-next )
-               os=-nextstep
-               ;;
-       *-sequent)
-               os=-ptx
-               ;;
-       *-crds)
-               os=-unos
-               ;;
-       *-ns)
-               os=-genix
-               ;;
-       i370-*)
-               os=-mvs
-               ;;
-       *-next)
-               os=-nextstep3
-               ;;
-       *-gould)
-               os=-sysv
-               ;;
-       *-highlevel)
-               os=-bsd
-               ;;
-       *-encore)
-               os=-bsd
-               ;;
-       *-sgi)
-               os=-irix
-               ;;
-       *-siemens)
-               os=-sysv4
-               ;;
-       *-masscomp)
-               os=-rtu
-               ;;
-       f30[01]-fujitsu | f700-fujitsu)
-               os=-uxpv
-               ;;
-       *-rom68k)
-               os=-coff
-               ;;
-       *-*bug)
-               os=-coff
-               ;;
-       *-apple)
-               os=-macos
-               ;;
-       *-atari*)
-               os=-mint
-               ;;
-       *)
-               os=-none
-               ;;
-esac
-fi
-
-# Here we handle the case where we know the os, and the CPU type, but not the
-# manufacturer.  We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
-       *-unknown)
-               case $os in
-                       -riscix*)
-                               vendor=acorn
-                               ;;
-                       -sunos*)
-                               vendor=sun
-                               ;;
-                       -aix*)
-                               vendor=ibm
-                               ;;
-                       -beos*)
-                               vendor=be
-                               ;;
-                       -hpux*)
-                               vendor=hp
-                               ;;
-                       -mpeix*)
-                               vendor=hp
-                               ;;
-                       -hiux*)
-                               vendor=hitachi
-                               ;;
-                       -unos*)
-                               vendor=crds
-                               ;;
-                       -dgux*)
-                               vendor=dg
-                               ;;
-                       -luna*)
-                               vendor=omron
-                               ;;
-                       -genix*)
-                               vendor=ns
-                               ;;
-                       -mvs* | -opened*)
-                               vendor=ibm
-                               ;;
-                       -ptx*)
-                               vendor=sequent
-                               ;;
-                       -vxsim* | -vxworks* | -windiss*)
-                               vendor=wrs
-                               ;;
-                       -aux*)
-                               vendor=apple
-                               ;;
-                       -hms*)
-                               vendor=hitachi
-                               ;;
-                       -mpw* | -macos*)
-                               vendor=apple
-                               ;;
-                       -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
-                               vendor=atari
-                               ;;
-                       -vos*)
-                               vendor=stratus
-                               ;;
-               esac
-               basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
-               ;;
-esac
-
-echo $basic_machine$os
-exit 0
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/nsock/src/configure b/nsock/src/configure
deleted file mode 100755 (executable)
index af7a5cc..0000000
+++ /dev/null
@@ -1,5669 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59.
-#
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-  set -o posix
-fi
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
-
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-  LC_TELEPHONE LC_TIME
-do
-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-    eval $as_var=C; export $as_var
-  else
-    $as_unset $as_var
-  fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-        X"$0" : 'X\(//\)$' \| \
-        X"$0" : 'X\(/\)$' \| \
-        .     : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-         /^X\/\(\/\/\)$/{ s//\1/; q; }
-         /^X\/\(\/\).*/{ s//\1/; q; }
-         s/.*/./; q'`
-
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
-  # Find who we are.  Look in the path if we contain no path at all
-  # relative or not.
-  case $0 in
-    *[\\/]* ) as_myself=$0 ;;
-    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
-       ;;
-  esac
-  # We did not find ourselves, most probably we were run as `sh COMMAND'
-  # in which case we are not to be found in the path.
-  if test "x$as_myself" = x; then
-    as_myself=$0
-  fi
-  if test ! -f "$as_myself"; then
-    { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
-   { (exit 1); exit 1; }; }
-  fi
-  case $CONFIG_SHELL in
-  '')
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for as_base in sh bash ksh sh5; do
-        case $as_dir in
-        /*)
-          if ("$as_dir/$as_base" -c '
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
-            $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
-            $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
-            CONFIG_SHELL=$as_dir/$as_base
-            export CONFIG_SHELL
-            exec "$CONFIG_SHELL" "$0" ${1+"$@"}
-          fi;;
-        esac
-       done
-done
-;;
-  esac
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line before each line; the second 'sed' does the real
-  # work.  The second script uses 'N' to pair each line-number line
-  # with the numbered line, and appends trailing '-' during
-  # substitution so that $LINENO is not a special case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
-  sed '=' <$as_myself |
-    sed '
-      N
-      s,$,-,
-      : loop
-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
-      t loop
-      s,-$,,
-      s,^['$as_cr_digits']*\n,,
-    ' >$as_me.lineno &&
-  chmod +x $as_me.lineno ||
-    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensible to this).
-  . ./$as_me.lineno
-  # Exit status is that of the last command.
-  exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-  *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T='     ' ;;
-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  # We could just check for DJGPP; but this test a) works b) is more generic
-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-  if test -f conf$$.exe; then
-    # Don't use ln at all; we don't have any links
-    as_ln_s='cp -p'
-  else
-    as_ln_s='ln -s'
-  fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s=ln
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-as_executable_p="test -f"
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS="  $as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-
-# Name of the host.
-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-exec 6>&1
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_config_libobj_dir=.
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-# Maximum number of lines to put in a shell here document.
-# This variable seems obsolete.  It should probably be removed, and
-# only ac_max_sed_lines should be used.
-: ${ac_max_here_lines=38}
-
-# Identity of this package.
-PACKAGE_NAME=
-PACKAGE_TARNAME=
-PACKAGE_VERSION=
-PACKAGE_STRING=
-PACKAGE_BUGREPORT=
-
-ac_unique_file="nsock_core.c"
-# Factoring default headers for most tests.
-ac_includes_default="\
-#include <stdio.h>
-#if HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#if HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#if STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#else
-# if HAVE_STDLIB_H
-#  include <stdlib.h>
-# endif
-#endif
-#if HAVE_STRING_H
-# if !STDC_HEADERS && HAVE_MEMORY_H
-#  include <memory.h>
-# endif
-# include <string.h>
-#endif
-#if HAVE_STRINGS_H
-# include <strings.h>
-#endif
-#if HAVE_INTTYPES_H
-# include <inttypes.h>
-#else
-# if HAVE_STDINT_H
-#  include <stdint.h>
-# endif
-#endif
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif"
-
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT RANLIB ac_ct_RANLIB COMPAT_OBJS COMPAT_SRCS build build_cpu build_vendor build_os host host_cpu host_vendor host_os CPP EGREP LIBNBASE_LIBS NBASEDIR LIBOBJS LTLIBOBJS'
-ac_subst_files=''
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-ac_prev=
-for ac_option
-do
-  # If the previous option needs an argument, assign it.
-  if test -n "$ac_prev"; then
-    eval "$ac_prev=\$ac_option"
-    ac_prev=
-    continue
-  fi
-
-  ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
-
-  # Accept the important Cygnus configure options, so we can diagnose typos.
-
-  case $ac_option in
-
-  -bindir | --bindir | --bindi | --bind | --bin | --bi)
-    ac_prev=bindir ;;
-  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
-    bindir=$ac_optarg ;;
-
-  -build | --build | --buil | --bui | --bu)
-    ac_prev=build_alias ;;
-  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
-    build_alias=$ac_optarg ;;
-
-  -cache-file | --cache-file | --cache-fil | --cache-fi \
-  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
-    ac_prev=cache_file ;;
-  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
-  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
-    cache_file=$ac_optarg ;;
-
-  --config-cache | -C)
-    cache_file=config.cache ;;
-
-  -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
-    ac_prev=datadir ;;
-  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
-  | --da=*)
-    datadir=$ac_optarg ;;
-
-  -disable-* | --disable-*)
-    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-   { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-    eval "enable_$ac_feature=no" ;;
-
-  -enable-* | --enable-*)
-    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-   { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-    case $ac_option in
-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
-      *) ac_optarg=yes ;;
-    esac
-    eval "enable_$ac_feature='$ac_optarg'" ;;
-
-  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
-  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
-  | --exec | --exe | --ex)
-    ac_prev=exec_prefix ;;
-  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
-  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
-  | --exec=* | --exe=* | --ex=*)
-    exec_prefix=$ac_optarg ;;
-
-  -gas | --gas | --ga | --g)
-    # Obsolete; use --with-gas.
-    with_gas=yes ;;
-
-  -help | --help | --hel | --he | -h)
-    ac_init_help=long ;;
-  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
-    ac_init_help=recursive ;;
-  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
-    ac_init_help=short ;;
-
-  -host | --host | --hos | --ho)
-    ac_prev=host_alias ;;
-  -host=* | --host=* | --hos=* | --ho=*)
-    host_alias=$ac_optarg ;;
-
-  -includedir | --includedir | --includedi | --included | --include \
-  | --includ | --inclu | --incl | --inc)
-    ac_prev=includedir ;;
-  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
-  | --includ=* | --inclu=* | --incl=* | --inc=*)
-    includedir=$ac_optarg ;;
-
-  -infodir | --infodir | --infodi | --infod | --info | --inf)
-    ac_prev=infodir ;;
-  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
-    infodir=$ac_optarg ;;
-
-  -libdir | --libdir | --libdi | --libd)
-    ac_prev=libdir ;;
-  -libdir=* | --libdir=* | --libdi=* | --libd=*)
-    libdir=$ac_optarg ;;
-
-  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
-  | --libexe | --libex | --libe)
-    ac_prev=libexecdir ;;
-  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
-  | --libexe=* | --libex=* | --libe=*)
-    libexecdir=$ac_optarg ;;
-
-  -localstatedir | --localstatedir | --localstatedi | --localstated \
-  | --localstate | --localstat | --localsta | --localst \
-  | --locals | --local | --loca | --loc | --lo)
-    ac_prev=localstatedir ;;
-  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
-  | --localstate=* | --localstat=* | --localsta=* | --localst=* \
-  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
-    localstatedir=$ac_optarg ;;
-
-  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
-    ac_prev=mandir ;;
-  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
-    mandir=$ac_optarg ;;
-
-  -nfp | --nfp | --nf)
-    # Obsolete; use --without-fp.
-    with_fp=no ;;
-
-  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-  | --no-cr | --no-c | -n)
-    no_create=yes ;;
-
-  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
-  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
-    no_recursion=yes ;;
-
-  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
-  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
-  | --oldin | --oldi | --old | --ol | --o)
-    ac_prev=oldincludedir ;;
-  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
-  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
-  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
-    oldincludedir=$ac_optarg ;;
-
-  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
-    ac_prev=prefix ;;
-  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
-    prefix=$ac_optarg ;;
-
-  -program-prefix | --program-prefix | --program-prefi | --program-pref \
-  | --program-pre | --program-pr | --program-p)
-    ac_prev=program_prefix ;;
-  -program-prefix=* | --program-prefix=* | --program-prefi=* \
-  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
-    program_prefix=$ac_optarg ;;
-
-  -program-suffix | --program-suffix | --program-suffi | --program-suff \
-  | --program-suf | --program-su | --program-s)
-    ac_prev=program_suffix ;;
-  -program-suffix=* | --program-suffix=* | --program-suffi=* \
-  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
-    program_suffix=$ac_optarg ;;
-
-  -program-transform-name | --program-transform-name \
-  | --program-transform-nam | --program-transform-na \
-  | --program-transform-n | --program-transform- \
-  | --program-transform | --program-transfor \
-  | --program-transfo | --program-transf \
-  | --program-trans | --program-tran \
-  | --progr-tra | --program-tr | --program-t)
-    ac_prev=program_transform_name ;;
-  -program-transform-name=* | --program-transform-name=* \
-  | --program-transform-nam=* | --program-transform-na=* \
-  | --program-transform-n=* | --program-transform-=* \
-  | --program-transform=* | --program-transfor=* \
-  | --program-transfo=* | --program-transf=* \
-  | --program-trans=* | --program-tran=* \
-  | --progr-tra=* | --program-tr=* | --program-t=*)
-    program_transform_name=$ac_optarg ;;
-
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil)
-    silent=yes ;;
-
-  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
-    ac_prev=sbindir ;;
-  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
-  | --sbi=* | --sb=*)
-    sbindir=$ac_optarg ;;
-
-  -sharedstatedir | --sharedstatedir | --sharedstatedi \
-  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
-  | --sharedst | --shareds | --shared | --share | --shar \
-  | --sha | --sh)
-    ac_prev=sharedstatedir ;;
-  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
-  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
-  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
-  | --sha=* | --sh=*)
-    sharedstatedir=$ac_optarg ;;
-
-  -site | --site | --sit)
-    ac_prev=site ;;
-  -site=* | --site=* | --sit=*)
-    site=$ac_optarg ;;
-
-  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
-    ac_prev=srcdir ;;
-  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
-    srcdir=$ac_optarg ;;
-
-  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
-  | --syscon | --sysco | --sysc | --sys | --sy)
-    ac_prev=sysconfdir ;;
-  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
-  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
-    sysconfdir=$ac_optarg ;;
-
-  -target | --target | --targe | --targ | --tar | --ta | --t)
-    ac_prev=target_alias ;;
-  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
-    target_alias=$ac_optarg ;;
-
-  -v | -verbose | --verbose | --verbos | --verbo | --verb)
-    verbose=yes ;;
-
-  -version | --version | --versio | --versi | --vers | -V)
-    ac_init_version=: ;;
-
-  -with-* | --with-*)
-    ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
-   { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package| sed 's/-/_/g'`
-    case $ac_option in
-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
-      *) ac_optarg=yes ;;
-    esac
-    eval "with_$ac_package='$ac_optarg'" ;;
-
-  -without-* | --without-*)
-    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
-   { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package | sed 's/-/_/g'`
-    eval "with_$ac_package=no" ;;
-
-  --x)
-    # Obsolete; use --with-x.
-    with_x=yes ;;
-
-  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
-  | --x-incl | --x-inc | --x-in | --x-i)
-    ac_prev=x_includes ;;
-  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
-  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
-    x_includes=$ac_optarg ;;
-
-  -x-libraries | --x-libraries | --x-librarie | --x-librari \
-  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
-    ac_prev=x_libraries ;;
-  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
-  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
-    x_libraries=$ac_optarg ;;
-
-  -*) { echo "$as_me: error: unrecognized option: $ac_option
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; }
-    ;;
-
-  *=*)
-    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
-   { (exit 1); exit 1; }; }
-    ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
-    eval "$ac_envvar='$ac_optarg'"
-    export $ac_envvar ;;
-
-  *)
-    # FIXME: should be removed in autoconf 3.0.
-    echo "$as_me: WARNING: you should use --build, --host, --target" >&2
-    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      echo "$as_me: WARNING: invalid host type: $ac_option" >&2
-    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
-    ;;
-
-  esac
-done
-
-if test -n "$ac_prev"; then
-  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
-  { echo "$as_me: error: missing argument to $ac_option" >&2
-   { (exit 1); exit 1; }; }
-fi
-
-# Be sure to have absolute paths.
-for ac_var in exec_prefix prefix
-do
-  eval ac_val=$`echo $ac_var`
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; };;
-  esac
-done
-
-# Be sure to have absolute paths.
-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
-             localstatedir libdir includedir oldincludedir infodir mandir
-do
-  eval ac_val=$`echo $ac_var`
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* ) ;;
-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; };;
-  esac
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
-  if test "x$build_alias" = x; then
-    cross_compiling=maybe
-    echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
-    If a cross compiler is detected then cross compile mode will be used." >&2
-  elif test "x$build_alias" != "x$host_alias"; then
-    cross_compiling=yes
-  fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
-  ac_srcdir_defaulted=yes
-  # Try the directory containing this script, then its parent.
-  ac_confdir=`(dirname "$0") 2>/dev/null ||
-$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-        X"$0" : 'X\(//\)[^/]' \| \
-        X"$0" : 'X\(//\)$' \| \
-        X"$0" : 'X\(/\)' \| \
-        .     : '\(.\)' 2>/dev/null ||
-echo X"$0" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-         /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-         /^X\(\/\/\)$/{ s//\1/; q; }
-         /^X\(\/\).*/{ s//\1/; q; }
-         s/.*/./; q'`
-  srcdir=$ac_confdir
-  if test ! -r $srcdir/$ac_unique_file; then
-    srcdir=..
-  fi
-else
-  ac_srcdir_defaulted=no
-fi
-if test ! -r $srcdir/$ac_unique_file; then
-  if test "$ac_srcdir_defaulted" = yes; then
-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
-   { (exit 1); exit 1; }; }
-  else
-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
-   { (exit 1); exit 1; }; }
-  fi
-fi
-(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
-  { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
-   { (exit 1); exit 1; }; }
-srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
-ac_env_build_alias_set=${build_alias+set}
-ac_env_build_alias_value=$build_alias
-ac_cv_env_build_alias_set=${build_alias+set}
-ac_cv_env_build_alias_value=$build_alias
-ac_env_host_alias_set=${host_alias+set}
-ac_env_host_alias_value=$host_alias
-ac_cv_env_host_alias_set=${host_alias+set}
-ac_cv_env_host_alias_value=$host_alias
-ac_env_target_alias_set=${target_alias+set}
-ac_env_target_alias_value=$target_alias
-ac_cv_env_target_alias_set=${target_alias+set}
-ac_cv_env_target_alias_value=$target_alias
-ac_env_CC_set=${CC+set}
-ac_env_CC_value=$CC
-ac_cv_env_CC_set=${CC+set}
-ac_cv_env_CC_value=$CC
-ac_env_CFLAGS_set=${CFLAGS+set}
-ac_env_CFLAGS_value=$CFLAGS
-ac_cv_env_CFLAGS_set=${CFLAGS+set}
-ac_cv_env_CFLAGS_value=$CFLAGS
-ac_env_LDFLAGS_set=${LDFLAGS+set}
-ac_env_LDFLAGS_value=$LDFLAGS
-ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
-ac_cv_env_LDFLAGS_value=$LDFLAGS
-ac_env_CPPFLAGS_set=${CPPFLAGS+set}
-ac_env_CPPFLAGS_value=$CPPFLAGS
-ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
-ac_cv_env_CPPFLAGS_value=$CPPFLAGS
-ac_env_CPP_set=${CPP+set}
-ac_env_CPP_value=$CPP
-ac_cv_env_CPP_set=${CPP+set}
-ac_cv_env_CPP_value=$CPP
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
-  # Omit some internal or obsolete options to make the list less imposing.
-  # This message is too long to be a string in the A/UX 3.1 sh.
-  cat <<_ACEOF
-\`configure' configures this package to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE.  See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
-  -h, --help              display this help and exit
-      --help=short        display options specific to this package
-      --help=recursive    display the short help of all the included packages
-  -V, --version           display version information and exit
-  -q, --quiet, --silent   do not print \`checking...' messages
-      --cache-file=FILE   cache test results in FILE [disabled]
-  -C, --config-cache      alias for \`--cache-file=config.cache'
-  -n, --no-create         do not create output files
-      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
-
-_ACEOF
-
-  cat <<_ACEOF
-Installation directories:
-  --prefix=PREFIX         install architecture-independent files in PREFIX
-                         [$ac_default_prefix]
-  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
-                         [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
-  --bindir=DIR           user executables [EPREFIX/bin]
-  --sbindir=DIR          system admin executables [EPREFIX/sbin]
-  --libexecdir=DIR       program executables [EPREFIX/libexec]
-  --datadir=DIR          read-only architecture-independent data [PREFIX/share]
-  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
-  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
-  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
-  --libdir=DIR           object code libraries [EPREFIX/lib]
-  --includedir=DIR       C header files [PREFIX/include]
-  --oldincludedir=DIR    C header files for non-gcc [/usr/include]
-  --infodir=DIR          info documentation [PREFIX/info]
-  --mandir=DIR           man documentation [PREFIX/man]
-_ACEOF
-
-  cat <<\_ACEOF
-
-System types:
-  --build=BUILD     configure for building on BUILD [guessed]
-  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
-
-  cat <<\_ACEOF
-
-Optional Packages:
-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --with-localdirs        Explicitly ask compiler to use /usr/local/{include,libs} if they exist
-  --with-libnbase=DIR     Look for nbase include/libs in DIR
-  --with-openssl=DIR    Use optional openssl libs and includes from DIR/lib/
-and DIR/include/openssl/)
-
-Some influential environment variables:
-  CC          C compiler command
-  CFLAGS      C compiler flags
-  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
-              nonstandard directory <lib dir>
-  CPPFLAGS    C/C++ preprocessor flags, e.g. -I<include dir> if you have
-              headers in a nonstandard directory <include dir>
-  CPP         C preprocessor
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-_ACEOF
-fi
-
-if test "$ac_init_help" = "recursive"; then
-  # If there are subdirs, report their specific --help.
-  ac_popdir=`pwd`
-  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
-    test -d $ac_dir || continue
-    ac_builddir=.
-
-if test "$ac_dir" != .; then
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
-    ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
-  case "$ac_dir" in
-  .) ac_abs_builddir=`pwd`;;
-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
-  case ${ac_top_builddir}. in
-  .) ac_abs_top_builddir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
-  case $ac_srcdir in
-  .) ac_abs_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
-  case $ac_top_srcdir in
-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-  esac;;
-esac
-
-    cd $ac_dir
-    # Check for guested configure; otherwise get Cygnus style configure.
-    if test -f $ac_srcdir/configure.gnu; then
-      echo
-      $SHELL $ac_srcdir/configure.gnu  --help=recursive
-    elif test -f $ac_srcdir/configure; then
-      echo
-      $SHELL $ac_srcdir/configure  --help=recursive
-    elif test -f $ac_srcdir/configure.ac ||
-          test -f $ac_srcdir/configure.in; then
-      echo
-      $ac_configure --help
-    else
-      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
-    fi
-    cd $ac_popdir
-  done
-fi
-
-test -n "$ac_init_help" && exit 0
-if $ac_init_version; then
-  cat <<\_ACEOF
-
-Copyright (C) 2003 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
-  exit 0
-fi
-exec 5>config.log
-cat >&5 <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by $as_me, which was
-generated by GNU Autoconf 2.59.  Invocation command line was
-
-  $ $0 $@
-
-_ACEOF
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
-
-/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-hostinfo               = `(hostinfo) 2>/dev/null               || echo unknown`
-/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
-/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  echo "PATH: $as_dir"
-done
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_sep=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
-  for ac_arg
-  do
-    case $ac_arg in
-    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
-    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-    | -silent | --silent | --silen | --sile | --sil)
-      continue ;;
-    *" "*|*"   "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
-      ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    esac
-    case $ac_pass in
-    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
-    2)
-      ac_configure_args1="$ac_configure_args1 '$ac_arg'"
-      if test $ac_must_keep_next = true; then
-       ac_must_keep_next=false # Got value, back to normal.
-      else
-       case $ac_arg in
-         *=* | --config-cache | -C | -disable-* | --disable-* \
-         | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
-         | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
-         | -with-* | --with-* | -without-* | --without-* | --x)
-           case "$ac_configure_args0 " in
-             "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
-           esac
-           ;;
-         -* ) ac_must_keep_next=true ;;
-       esac
-      fi
-      ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
-      # Get rid of the leading space.
-      ac_sep=" "
-      ;;
-    esac
-  done
-done
-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log.  We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Be sure not to use single quotes in there, as some shells,
-# such as our DU 5.0 friend, will then `close' the trap.
-trap 'exit_status=$?
-  # Save into config.log some information that might help in debugging.
-  {
-    echo
-
-    cat <<\_ASBOX
-## ---------------- ##
-## Cache variables. ##
-## ---------------- ##
-_ASBOX
-    echo
-    # The following way of writing the cache mishandles newlines in values,
-{
-  (set) 2>&1 |
-    case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
-    *ac_space=\ *)
-      sed -n \
-       "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
-         s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
-      ;;
-    *)
-      sed -n \
-       "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
-      ;;
-    esac;
-}
-    echo
-
-    cat <<\_ASBOX
-## ----------------- ##
-## Output variables. ##
-## ----------------- ##
-_ASBOX
-    echo
-    for ac_var in $ac_subst_vars
-    do
-      eval ac_val=$`echo $ac_var`
-      echo "$ac_var='"'"'$ac_val'"'"'"
-    done | sort
-    echo
-
-    if test -n "$ac_subst_files"; then
-      cat <<\_ASBOX
-## ------------- ##
-## Output files. ##
-## ------------- ##
-_ASBOX
-      echo
-      for ac_var in $ac_subst_files
-      do
-       eval ac_val=$`echo $ac_var`
-       echo "$ac_var='"'"'$ac_val'"'"'"
-      done | sort
-      echo
-    fi
-
-    if test -s confdefs.h; then
-      cat <<\_ASBOX
-## ----------- ##
-## confdefs.h. ##
-## ----------- ##
-_ASBOX
-      echo
-      sed "/^$/d" confdefs.h | sort
-      echo
-    fi
-    test "$ac_signal" != 0 &&
-      echo "$as_me: caught signal $ac_signal"
-    echo "$as_me: exit $exit_status"
-  } >&5
-  rm -f core *.core &&
-  rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
-    exit $exit_status
-     ' 0
-for ac_signal in 1 2 13 15; do
-  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -rf conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo >confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
-  if test "x$prefix" != xNONE; then
-    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
-  else
-    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
-  fi
-fi
-for ac_site_file in $CONFIG_SITE; do
-  if test -r "$ac_site_file"; then
-    { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
-echo "$as_me: loading site script $ac_site_file" >&6;}
-    sed 's/^/| /' "$ac_site_file" >&5
-    . "$ac_site_file"
-  fi
-done
-
-if test -r "$cache_file"; then
-  # Some versions of bash will fail to source /dev/null (special
-  # files actually), so we avoid doing that.
-  if test -f "$cache_file"; then
-    { echo "$as_me:$LINENO: loading cache $cache_file" >&5
-echo "$as_me: loading cache $cache_file" >&6;}
-    case $cache_file in
-      [\\/]* | ?:[\\/]* ) . $cache_file;;
-      *)                      . ./$cache_file;;
-    esac
-  fi
-else
-  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
-echo "$as_me: creating cache $cache_file" >&6;}
-  >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in `(set) 2>&1 |
-              sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
-  eval ac_old_set=\$ac_cv_env_${ac_var}_set
-  eval ac_new_set=\$ac_env_${ac_var}_set
-  eval ac_old_val="\$ac_cv_env_${ac_var}_value"
-  eval ac_new_val="\$ac_env_${ac_var}_value"
-  case $ac_old_set,$ac_new_set in
-    set,)
-      { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,set)
-      { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,);;
-    *)
-      if test "x$ac_old_val" != "x$ac_new_val"; then
-       { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
-echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-       { echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
-echo "$as_me:   former value:  $ac_old_val" >&2;}
-       { echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
-echo "$as_me:   current value: $ac_new_val" >&2;}
-       ac_cache_corrupted=:
-      fi;;
-  esac
-  # Pass precious variables to config.status.
-  if test "$ac_new_set" = set; then
-    case $ac_new_val in
-    *" "*|*"   "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
-      ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
-    *) ac_arg=$ac_var=$ac_new_val ;;
-    esac
-    case " $ac_configure_args " in
-      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
-      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
-    esac
-  fi
-done
-if $ac_cache_corrupted; then
-  { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
-echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# Check whether --with-localdirs or --without-localdirs was given.
-if test "${with_localdirs+set}" = set; then
-  withval="$with_localdirs"
-   case "$with_localdirs" in
-      yes)
-        user_localdirs=1
-        ;;
-      no)
-        user_localdirs=0
-        ;;
-    esac
-
-else
-   user_localdirs=0
-fi;
-
-if test "$user_localdirs" = 1; then
-   if test -d /usr/local/lib; then
-     LDFLAGS="$LDFLAGS -L/usr/local/lib"
-     fi
-   if test -d /usr/local/include; then
-     CFLAGS="$CFLAGS -I/usr/local/include"
-   fi
-fi
-
-          ac_config_headers="$ac_config_headers nsock_config.h"
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_CC"; then
-  ac_ct_CC=$CC
-  # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CC="gcc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  CC=$ac_ct_CC
-else
-  CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
-  if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="${ac_tool_prefix}cc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_CC"; then
-  ac_ct_CC=$CC
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CC="cc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  CC=$ac_ct_CC
-else
-  CC="$ac_cv_prog_CC"
-fi
-
-fi
-if test -z "$CC"; then
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-  ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
-       ac_prog_rejected=yes
-       continue
-     fi
-    ac_cv_prog_CC="cc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-if test $ac_prog_rejected = yes; then
-  # We found a bogon in the path, so make sure we never use it.
-  set dummy $ac_cv_prog_CC
-  shift
-  if test $# != 0; then
-    # We chose a different compiler from the bogus one.
-    # However, it has the same basename, so the bogon will be chosen
-    # first if we set CC to just the basename; use the full file name.
-    shift
-    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
-  fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$CC"; then
-  if test -n "$ac_tool_prefix"; then
-  for ac_prog in cl
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-    test -n "$CC" && break
-  done
-fi
-if test -z "$CC"; then
-  ac_ct_CC=$CC
-  for ac_prog in cl
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CC="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  test -n "$ac_ct_CC" && break
-done
-
-  CC=$ac_ct_CC
-fi
-
-fi
-
-
-test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&5
-echo "$as_me: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-
-# Provide some information about the compiler.
-echo "$as_me:$LINENO:" \
-     "checking for C compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
-  (eval $ac_compiler --version </dev/null >&5) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
-  (eval $ac_compiler -v </dev/null >&5) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
-  (eval $ac_compiler -V </dev/null >&5) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
-echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6
-ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
-  (eval $ac_link_default) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  # Find the output, starting from the most likely.  This scheme is
-# not robust to junk in `.', hence go to wildcards (a.*) only as a last
-# resort.
-
-# Be careful to initialize this variable, since it used to be cached.
-# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
-ac_cv_exeext=
-# b.out is created by i960 compilers.
-for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
-do
-  test -f "$ac_file" || continue
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
-       ;;
-    conftest.$ac_ext )
-       # This is the source file.
-       ;;
-    [ab].out )
-       # We found the default executable, but exeext='' is most
-       # certainly right.
-       break;;
-    *.* )
-       ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-       # FIXME: I believe we export ac_cv_exeext for Libtool,
-       # but it would be cool to find out if it's true.  Does anybody
-       # maintain Libtool? --akim.
-       export ac_cv_exeext
-       break;;
-    * )
-       break;;
-  esac
-done
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
-See \`config.log' for more details." >&5
-echo "$as_me: error: C compiler cannot create executables
-See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
-fi
-
-ac_exeext=$ac_cv_exeext
-echo "$as_me:$LINENO: result: $ac_file" >&5
-echo "${ECHO_T}$ac_file" >&6
-
-# Check the compiler produces executables we can run.  If not, either
-# the compiler is broken, or we cross compile.
-echo "$as_me:$LINENO: checking whether the C compiler works" >&5
-echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
-# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
-# If not cross compiling, check that we can run a simple program.
-if test "$cross_compiling" != yes; then
-  if { ac_try='./$ac_file'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-    cross_compiling=no
-  else
-    if test "$cross_compiling" = maybe; then
-       cross_compiling=yes
-    else
-       { { echo "$as_me:$LINENO: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-    fi
-  fi
-fi
-echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-
-rm -f a.out a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-# Check the compiler produces executables we can run.  If not, either
-# the compiler is broken, or we cross compile.
-echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
-echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
-echo "$as_me:$LINENO: result: $cross_compiling" >&5
-echo "${ECHO_T}$cross_compiling" >&6
-
-echo "$as_me:$LINENO: checking for suffix of executables" >&5
-echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
-  test -f "$ac_file" || continue
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
-    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-         export ac_cv_exeext
-         break;;
-    * ) break;;
-  esac
-done
-else
-  { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest$ac_cv_exeext
-echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
-echo "${ECHO_T}$ac_cv_exeext" >&6
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-echo "$as_me:$LINENO: checking for suffix of object files" >&5
-echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
-if test "${ac_cv_objext+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
-    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
-       break;;
-  esac
-done
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
-echo "${ECHO_T}$ac_cv_objext" >&6
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
-if test "${ac_cv_c_compiler_gnu+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_compiler_gnu=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_compiler_gnu=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
-GCC=`test $ac_compiler_gnu = yes && echo yes`
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-CFLAGS="-g"
-echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
-echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
-if test "${ac_cv_prog_cc_g+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_prog_cc_g=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_prog_cc_g=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
-if test "$ac_test_CFLAGS" = set; then
-  CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
-  if test "$GCC" = yes; then
-    CFLAGS="-g -O2"
-  else
-    CFLAGS="-g"
-  fi
-else
-  if test "$GCC" = yes; then
-    CFLAGS="-O2"
-  else
-    CFLAGS=
-  fi
-fi
-echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
-echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
-if test "${ac_cv_prog_cc_stdc+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_prog_cc_stdc=no
-ac_save_CC=$CC
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdarg.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
-     char **p;
-     int i;
-{
-  return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
-  char *s;
-  va_list v;
-  va_start (v,p);
-  s = g (p, va_arg (v,int));
-  va_end (v);
-  return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
-   function prototypes and stuff, but not '\xHH' hex character constants.
-   These don't provoke an error unfortunately, instead are silently treated
-   as 'x'.  The following induces an error, until -std1 is added to get
-   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
-   array size at least.  It's necessary to write '\x00'==0 to get something
-   that's true only with -std1.  */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
-  ;
-  return 0;
-}
-_ACEOF
-# Don't try gcc -ansi; that turns off useful extensions and
-# breaks some systems' header files.
-# AIX                  -qlanglvl=ansi
-# Ultrix and OSF/1     -std1
-# HP-UX 10.20 and later        -Ae
-# HP-UX older versions -Aa -D_HPUX_SOURCE
-# SVR4                 -Xc -D__EXTENSIONS__
-for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
-  CC="$ac_save_CC $ac_arg"
-  rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_prog_cc_stdc=$ac_arg
-break
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext
-done
-rm -f conftest.$ac_ext conftest.$ac_objext
-CC=$ac_save_CC
-
-fi
-
-case "x$ac_cv_prog_cc_stdc" in
-  x|xno)
-    echo "$as_me:$LINENO: result: none needed" >&5
-echo "${ECHO_T}none needed" >&6 ;;
-  *)
-    echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
-    CC="$CC $ac_cv_prog_cc_stdc" ;;
-esac
-
-# Some people use a C++ compiler to compile C.  Since we use `exit',
-# in C++ we need to declare it.  In case someone uses the same compiler
-# for both compiling C and C++ we need to have the C++ compiler decide
-# the declaration of exit, since it's the most demanding environment.
-cat >conftest.$ac_ext <<_ACEOF
-#ifndef __cplusplus
-  choke me
-#endif
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  for ac_declaration in \
-   '' \
-   'extern "C" void std::exit (int) throw (); using std::exit;' \
-   'extern "C" void std::exit (int); using std::exit;' \
-   'extern "C" void exit (int) throw ();' \
-   'extern "C" void exit (int);' \
-   'void exit (int);'
-do
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_declaration
-#include <stdlib.h>
-int
-main ()
-{
-exit (42);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-continue
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_declaration
-int
-main ()
-{
-exit (42);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  break
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-rm -f conftest*
-if test -n "$ac_declaration"; then
-  echo '#ifdef __cplusplus' >>confdefs.h
-  echo $ac_declaration      >>confdefs.h
-  echo '#endif'             >>confdefs.h
-fi
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
- if test -n "$GCC"; then
-      CFLAGS="$CFLAGS -Wall "
- fi
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_RANLIB+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$RANLIB"; then
-  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
-  echo "$as_me:$LINENO: result: $RANLIB" >&5
-echo "${ECHO_T}$RANLIB" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
-  ac_ct_RANLIB=$RANLIB
-  # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_RANLIB"; then
-  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_RANLIB="ranlib"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-  test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
-  echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
-echo "${ECHO_T}$ac_ct_RANLIB" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  RANLIB=$ac_ct_RANLIB
-else
-  RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-
-
-
-
-ac_aux_dir=
-for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
-  if test -f $ac_dir/install-sh; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install-sh -c"
-    break
-  elif test -f $ac_dir/install.sh; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install.sh -c"
-    break
-  elif test -f $ac_dir/shtool; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/shtool install -c"
-    break
-  fi
-done
-if test -z "$ac_aux_dir"; then
-  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
-echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"
-ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
-
-# Make sure we can run config.sub.
-$ac_config_sub sun4 >/dev/null 2>&1 ||
-  { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
-echo "$as_me: error: cannot run $ac_config_sub" >&2;}
-   { (exit 1); exit 1; }; }
-
-echo "$as_me:$LINENO: checking build system type" >&5
-echo $ECHO_N "checking build system type... $ECHO_C" >&6
-if test "${ac_cv_build+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_build_alias=$build_alias
-test -z "$ac_cv_build_alias" &&
-  ac_cv_build_alias=`$ac_config_guess`
-test -z "$ac_cv_build_alias" &&
-  { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
-echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
-   { (exit 1); exit 1; }; }
-ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
-  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
-echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
-   { (exit 1); exit 1; }; }
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_build" >&5
-echo "${ECHO_T}$ac_cv_build" >&6
-build=$ac_cv_build
-build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
-
-echo "$as_me:$LINENO: checking host system type" >&5
-echo $ECHO_N "checking host system type... $ECHO_C" >&6
-if test "${ac_cv_host+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_host_alias=$host_alias
-test -z "$ac_cv_host_alias" &&
-  ac_cv_host_alias=$ac_cv_build_alias
-ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
-  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
-echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
-   { (exit 1); exit 1; }; }
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_host" >&5
-echo "${ECHO_T}$ac_cv_host" >&6
-host=$ac_cv_host
-host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
-
-
-
-echo "$as_me:$LINENO: checking for gethostent" >&5
-echo $ECHO_N "checking for gethostent... $ECHO_C" >&6
-if test "${ac_cv_func_gethostent+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define gethostent to an innocuous variant, in case <limits.h> declares gethostent.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define gethostent innocuous_gethostent
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char gethostent (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef gethostent
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char gethostent ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_gethostent) || defined (__stub___gethostent)
-choke me
-#else
-char (*f) () = gethostent;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != gethostent;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_gethostent=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_func_gethostent=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_func_gethostent" >&5
-echo "${ECHO_T}$ac_cv_func_gethostent" >&6
-if test $ac_cv_func_gethostent = yes; then
-  :
-else
-
-echo "$as_me:$LINENO: checking for gethostent in -lnsl" >&5
-echo $ECHO_N "checking for gethostent in -lnsl... $ECHO_C" >&6
-if test "${ac_cv_lib_nsl_gethostent+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lnsl  $LIBS"
-
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char gethostent ();
-int
-main ()
-{
-gethostent ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_nsl_gethostent=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_nsl_gethostent=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostent" >&5
-echo "${ECHO_T}$ac_cv_lib_nsl_gethostent" >&6
-if test $ac_cv_lib_nsl_gethostent = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBNSL 1
-_ACEOF
-
-  LIBS="-lnsl $LIBS"
-
-fi
-
-fi
-
-echo "$as_me:$LINENO: checking for setsockopt" >&5
-echo $ECHO_N "checking for setsockopt... $ECHO_C" >&6
-if test "${ac_cv_func_setsockopt+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define setsockopt to an innocuous variant, in case <limits.h> declares setsockopt.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define setsockopt innocuous_setsockopt
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char setsockopt (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef setsockopt
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char setsockopt ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_setsockopt) || defined (__stub___setsockopt)
-choke me
-#else
-char (*f) () = setsockopt;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != setsockopt;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_setsockopt=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_func_setsockopt=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_func_setsockopt" >&5
-echo "${ECHO_T}$ac_cv_func_setsockopt" >&6
-if test $ac_cv_func_setsockopt = yes; then
-  :
-else
-
-echo "$as_me:$LINENO: checking for setsockopt in -lsocket" >&5
-echo $ECHO_N "checking for setsockopt in -lsocket... $ECHO_C" >&6
-if test "${ac_cv_lib_socket_setsockopt+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsocket  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char setsockopt ();
-int
-main ()
-{
-setsockopt ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_socket_setsockopt=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_socket_setsockopt=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_socket_setsockopt" >&5
-echo "${ECHO_T}$ac_cv_lib_socket_setsockopt" >&6
-if test $ac_cv_lib_socket_setsockopt = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBSOCKET 1
-_ACEOF
-
-  LIBS="-lsocket $LIBS"
-
-fi
-
-fi
-
-
-echo "$as_me:$LINENO: checking for nanosleep" >&5
-echo $ECHO_N "checking for nanosleep... $ECHO_C" >&6
-if test "${ac_cv_func_nanosleep+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define nanosleep to an innocuous variant, in case <limits.h> declares nanosleep.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define nanosleep innocuous_nanosleep
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char nanosleep (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef nanosleep
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char nanosleep ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_nanosleep) || defined (__stub___nanosleep)
-choke me
-#else
-char (*f) () = nanosleep;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != nanosleep;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_nanosleep=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_func_nanosleep=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_func_nanosleep" >&5
-echo "${ECHO_T}$ac_cv_func_nanosleep" >&6
-if test $ac_cv_func_nanosleep = yes; then
-  :
-else
-
-echo "$as_me:$LINENO: checking for nanosleep in -lposix4" >&5
-echo $ECHO_N "checking for nanosleep in -lposix4... $ECHO_C" >&6
-if test "${ac_cv_lib_posix4_nanosleep+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lposix4  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char nanosleep ();
-int
-main ()
-{
-nanosleep ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_posix4_nanosleep=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_posix4_nanosleep=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_posix4_nanosleep" >&5
-echo "${ECHO_T}$ac_cv_lib_posix4_nanosleep" >&6
-if test $ac_cv_lib_posix4_nanosleep = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBPOSIX4 1
-_ACEOF
-
-  LIBS="-lposix4 $LIBS"
-
-fi
-
-fi
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
-echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
-  CPP=
-fi
-if test -z "$CPP"; then
-  if test "${ac_cv_prog_CPP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-      # Double quotes because CPP needs to be expanded
-    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
-    do
-      ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-                    Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether non-existent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  # Broken: success on invalid input.
-continue
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  break
-fi
-
-    done
-    ac_cv_prog_CPP=$CPP
-
-fi
-  CPP=$ac_cv_prog_CPP
-else
-  ac_cv_prog_CPP=$CPP
-fi
-echo "$as_me:$LINENO: result: $CPP" >&5
-echo "${ECHO_T}$CPP" >&6
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-                    Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether non-existent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  # Broken: success on invalid input.
-continue
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  :
-else
-  { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&5
-echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-echo "$as_me:$LINENO: checking for egrep" >&5
-echo $ECHO_N "checking for egrep... $ECHO_C" >&6
-if test "${ac_cv_prog_egrep+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if echo a | (grep -E '(a|b)') >/dev/null 2>&1
-    then ac_cv_prog_egrep='grep -E'
-    else ac_cv_prog_egrep='egrep'
-    fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
-echo "${ECHO_T}$ac_cv_prog_egrep" >&6
- EGREP=$ac_cv_prog_egrep
-
-
-echo "$as_me:$LINENO: checking for ANSI C header files" >&5
-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
-if test "${ac_cv_header_stdc+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_header_stdc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_header_stdc=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
-  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "memchr" >/dev/null 2>&1; then
-  :
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "free" >/dev/null 2>&1; then
-  :
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-  if test "$cross_compiling" = yes; then
-  :
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ctype.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
-                  (('a' <= (c) && (c) <= 'i') \
-                    || ('j' <= (c) && (c) <= 'r') \
-                    || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
-  int i;
-  for (i = 0; i < 256; i++)
-    if (XOR (islower (i), ISLOWER (i))
-       || toupper (i) != TOUPPER (i))
-      exit(2);
-  exit (0);
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  :
-else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_header_stdc=no
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
-echo "${ECHO_T}$ac_cv_header_stdc" >&6
-if test $ac_cv_header_stdc = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define STDC_HEADERS 1
-_ACEOF
-
-fi
-
-
-
-
-# Check whether --with-libnbase or --without-libnbase was given.
-if test "${with_libnbase+set}" = set; then
-  withval="$with_libnbase"
-    case "$with_libnbase" in
-  yes)
-    ;;
-  *)
-    NBASEDIR="$with_libnbase"
-    ;;
-  esac
-else
-  NBASEDIR="../../nbase"
-
-fi;
-
-LDFLAGS="$LDFLAGS -L$NBASEDIR"
-CFLAGS="$CFLAGS -I$NBASEDIR"
-LIBNBASE_LIBS="$LIBS -lnbase"
-
-
-
-
-# First we test whether they specified openssl desires explicitly
-use_openssl="yes"
-specialssldir=""
-
-
-# Check whether --with-openssl or --without-openssl was given.
-if test "${with_openssl+set}" = set; then
-  withval="$with_openssl"
-    case "$with_openssl" in
-  yes)
-    ;;
-  no)
-    use_openssl="no"
-    ;;
-  *)
-    specialssldir="$with_openssl"
-    CFLAGS="-I$with_openssl/include $CFLAGS"
-    ;;
-  esac
-
-fi;
-
-
-# If they didn't specify it, we try to find it
-if test "$use_openssl" = "yes" -a -z "$specialssldir"; then
-  # On IRIX 5.3, sys/types and inttypes.h are conflicting.
-
-
-
-
-
-
-
-
-
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
-                 inttypes.h stdint.h unistd.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_Header=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_Header=no"
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-if test "${ac_cv_header_openssl_ssl_h+set}" = set; then
-  echo "$as_me:$LINENO: checking for openssl/ssl.h" >&5
-echo $ECHO_N "checking for openssl/ssl.h... $ECHO_C" >&6
-if test "${ac_cv_header_openssl_ssl_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_openssl_ssl_h" >&5
-echo "${ECHO_T}$ac_cv_header_openssl_ssl_h" >&6
-else
-  # Is the header compilable?
-echo "$as_me:$LINENO: checking openssl/ssl.h usability" >&5
-echo $ECHO_N "checking openssl/ssl.h usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <openssl/ssl.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_header_compiler=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking openssl/ssl.h presence" >&5
-echo $ECHO_N "checking openssl/ssl.h presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <openssl/ssl.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  ac_header_preproc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { echo "$as_me:$LINENO: WARNING: openssl/ssl.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: openssl/ssl.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: openssl/ssl.h: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: openssl/ssl.h: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { echo "$as_me:$LINENO: WARNING: openssl/ssl.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: openssl/ssl.h: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: openssl/ssl.h:     check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: openssl/ssl.h:     check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: openssl/ssl.h: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: openssl/ssl.h: see the Autoconf documentation" >&2;}
-    { echo "$as_me:$LINENO: WARNING: openssl/ssl.h:     section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: openssl/ssl.h:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { echo "$as_me:$LINENO: WARNING: openssl/ssl.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: openssl/ssl.h: proceeding with the preprocessor's result" >&2;}
-    { echo "$as_me:$LINENO: WARNING: openssl/ssl.h: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: openssl/ssl.h: in the future, the compiler will take precedence" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists.  ##
-## ------------------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-echo "$as_me:$LINENO: checking for openssl/ssl.h" >&5
-echo $ECHO_N "checking for openssl/ssl.h... $ECHO_C" >&6
-if test "${ac_cv_header_openssl_ssl_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_header_openssl_ssl_h=$ac_header_preproc
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_openssl_ssl_h" >&5
-echo "${ECHO_T}$ac_cv_header_openssl_ssl_h" >&6
-
-fi
-if test $ac_cv_header_openssl_ssl_h = yes; then
-  :
-else
-   use_openssl="no"
-    { echo "$as_me:$LINENO: WARNING: Failed to find openssl/ssl.h so OpenSSL will not be used. If it
- is installed you can try the --with-openssl=DIR argument" >&5
-echo "$as_me: WARNING: Failed to find openssl/ssl.h so OpenSSL will not be used. If it
- is installed you can try the --with-openssl=DIR argument" >&2;}
-fi
-
-
-
- if test "$use_openssl" = "yes"; then
-   if test "${ac_cv_header_openssl_err_h+set}" = set; then
-  echo "$as_me:$LINENO: checking for openssl/err.h" >&5
-echo $ECHO_N "checking for openssl/err.h... $ECHO_C" >&6
-if test "${ac_cv_header_openssl_err_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_openssl_err_h" >&5
-echo "${ECHO_T}$ac_cv_header_openssl_err_h" >&6
-else
-  # Is the header compilable?
-echo "$as_me:$LINENO: checking openssl/err.h usability" >&5
-echo $ECHO_N "checking openssl/err.h usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <openssl/err.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_header_compiler=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking openssl/err.h presence" >&5
-echo $ECHO_N "checking openssl/err.h presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <openssl/err.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  ac_header_preproc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { echo "$as_me:$LINENO: WARNING: openssl/err.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: openssl/err.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: openssl/err.h: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: openssl/err.h: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { echo "$as_me:$LINENO: WARNING: openssl/err.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: openssl/err.h: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: openssl/err.h:     check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: openssl/err.h:     check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: openssl/err.h: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: openssl/err.h: see the Autoconf documentation" >&2;}
-    { echo "$as_me:$LINENO: WARNING: openssl/err.h:     section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: openssl/err.h:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { echo "$as_me:$LINENO: WARNING: openssl/err.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: openssl/err.h: proceeding with the preprocessor's result" >&2;}
-    { echo "$as_me:$LINENO: WARNING: openssl/err.h: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: openssl/err.h: in the future, the compiler will take precedence" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists.  ##
-## ------------------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-echo "$as_me:$LINENO: checking for openssl/err.h" >&5
-echo $ECHO_N "checking for openssl/err.h... $ECHO_C" >&6
-if test "${ac_cv_header_openssl_err_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_header_openssl_err_h=$ac_header_preproc
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_openssl_err_h" >&5
-echo "${ECHO_T}$ac_cv_header_openssl_err_h" >&6
-
-fi
-if test $ac_cv_header_openssl_err_h = yes; then
-  :
-else
-   use_openssl="no"
-    { echo "$as_me:$LINENO: WARNING: Failed to find openssl/err.h so OpenSSL will not be used. If it
- is installed you can try the --with-openssl=DIR argument" >&5
-echo "$as_me: WARNING: Failed to find openssl/err.h so OpenSSL will not be used. If it
- is installed you can try the --with-openssl=DIR argument" >&2;}
-fi
-
-
- fi
-
- if test "$use_openssl" = "yes"; then
-   if test "${ac_cv_header_openssl_rand_h+set}" = set; then
-  echo "$as_me:$LINENO: checking for openssl/rand.h" >&5
-echo $ECHO_N "checking for openssl/rand.h... $ECHO_C" >&6
-if test "${ac_cv_header_openssl_rand_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_openssl_rand_h" >&5
-echo "${ECHO_T}$ac_cv_header_openssl_rand_h" >&6
-else
-  # Is the header compilable?
-echo "$as_me:$LINENO: checking openssl/rand.h usability" >&5
-echo $ECHO_N "checking openssl/rand.h usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <openssl/rand.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_header_compiler=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking openssl/rand.h presence" >&5
-echo $ECHO_N "checking openssl/rand.h presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <openssl/rand.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  ac_header_preproc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { echo "$as_me:$LINENO: WARNING: openssl/rand.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: openssl/rand.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: openssl/rand.h: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: openssl/rand.h: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { echo "$as_me:$LINENO: WARNING: openssl/rand.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: openssl/rand.h: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: openssl/rand.h:     check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: openssl/rand.h:     check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: openssl/rand.h: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: openssl/rand.h: see the Autoconf documentation" >&2;}
-    { echo "$as_me:$LINENO: WARNING: openssl/rand.h:     section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: openssl/rand.h:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { echo "$as_me:$LINENO: WARNING: openssl/rand.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: openssl/rand.h: proceeding with the preprocessor's result" >&2;}
-    { echo "$as_me:$LINENO: WARNING: openssl/rand.h: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: openssl/rand.h: in the future, the compiler will take precedence" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists.  ##
-## ------------------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-echo "$as_me:$LINENO: checking for openssl/rand.h" >&5
-echo $ECHO_N "checking for openssl/rand.h... $ECHO_C" >&6
-if test "${ac_cv_header_openssl_rand_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_header_openssl_rand_h=$ac_header_preproc
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_openssl_rand_h" >&5
-echo "${ECHO_T}$ac_cv_header_openssl_rand_h" >&6
-
-fi
-if test $ac_cv_header_openssl_rand_h = yes; then
-  :
-else
-   use_openssl="no"
-    { echo "$as_me:$LINENO: WARNING: Failed to find openssl/rand.h so OpenSSL will not be used. If i
-t is installed you can try the --with-openssl=DIR argument" >&5
-echo "$as_me: WARNING: Failed to find openssl/rand.h so OpenSSL will not be used. If i
-t is installed you can try the --with-openssl=DIR argument" >&2;}
-fi
-
-
- fi
-
- if test "$use_openssl" = "yes"; then
-
-echo "$as_me:$LINENO: checking for BIO_int_ctrl in -lcrypto" >&5
-echo $ECHO_N "checking for BIO_int_ctrl in -lcrypto... $ECHO_C" >&6
-if test "${ac_cv_lib_crypto_BIO_int_ctrl+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lcrypto  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char BIO_int_ctrl ();
-int
-main ()
-{
-BIO_int_ctrl ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_crypto_BIO_int_ctrl=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_crypto_BIO_int_ctrl=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_crypto_BIO_int_ctrl" >&5
-echo "${ECHO_T}$ac_cv_lib_crypto_BIO_int_ctrl" >&6
-if test $ac_cv_lib_crypto_BIO_int_ctrl = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBCRYPTO 1
-_ACEOF
-
-  LIBS="-lcrypto $LIBS"
-
-else
-   use_openssl="no"
-    { echo "$as_me:$LINENO: WARNING: Failed to find libcrypto so OpenSSL will not be used. If it is installed you can try the --with-openssl=DIR argument" >&5
-echo "$as_me: WARNING: Failed to find libcrypto so OpenSSL will not be used. If it is installed you can try the --with-openssl=DIR argument" >&2;}
-fi
-
- fi
-
- if test "$use_openssl" = "yes"; then
-
-echo "$as_me:$LINENO: checking for SSL_new in -lssl" >&5
-echo $ECHO_N "checking for SSL_new in -lssl... $ECHO_C" >&6
-if test "${ac_cv_lib_ssl_SSL_new+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lssl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char SSL_new ();
-int
-main ()
-{
-SSL_new ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_ssl_SSL_new=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_ssl_SSL_new=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_ssl_SSL_new" >&5
-echo "${ECHO_T}$ac_cv_lib_ssl_SSL_new" >&6
-if test $ac_cv_lib_ssl_SSL_new = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBSSL 1
-_ACEOF
-
-  LIBS="-lssl $LIBS"
-
-else
-   use_openssl="no"
-    { echo "$as_me:$LINENO: WARNING: Failed to find libssl so OpenSSL will not be used. If it is ins
-talled you can try the --with-openssl=DIR argument" >&5
-echo "$as_me: WARNING: Failed to find libssl so OpenSSL will not be used. If it is ins
-talled you can try the --with-openssl=DIR argument" >&2;}
-fi
-
- fi
-fi
-
-if test "$use_openssl" = "yes"; then
-  cat >>confdefs.h <<\_ACEOF
-#define HAVE_OPENSSL 1
-_ACEOF
-
-fi
-
-
-echo "$as_me:$LINENO: checking struct ip" >&5
-echo $ECHO_N "checking struct ip... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <netinet/in_systm.h>
-#include <netinet/ip.h>
-int
-main ()
-{
-struct ip ip;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; bsd_networking=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; bsd_networking=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext;
-if test $bsd_networking = yes; then
-
-  cat >>confdefs.h <<\_ACEOF
-#define BSD_NETWORKING 1
-_ACEOF
-
-  echo "$as_me:$LINENO: checking ip_v in struct ip" >&5
-echo $ECHO_N "checking ip_v in struct ip... $ECHO_C" >&6
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <netinet/in_systm.h>
-#include <netinet/ip.h>
-int
-main ()
-{
-struct ip ip; ip.ip_v;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; has_bitfields=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; has_bitfields=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-
-  if test $has_bitfields = no; then
-    SAVE_CFLAGS="$CFLAGS"
-    CFLAGS="-D__STDC__=2"
-
-    echo "$as_me:$LINENO: checking if setting __STDC__=2 gives ip_v" >&5
-echo $ECHO_N "checking if setting __STDC__=2 gives ip_v... $ECHO_C" >&6
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <netinet/in_systm.h>
-#include <netinet/ip.h>
-int
-main ()
-{
-struct ip ip; ip.ip_v;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; setting_stdc_helps=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; setting_stdc_helps=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-
-    CFLAGS="$SAVE_CFLAGS"
-    if test $setting_stdc_helps = yes; then
-      CFLAGS="$CFLAGS -D__STDC__=2"
-    else
-      echo "$as_me:$LINENO: result: Can't figure out how to get bitfields - configure failed" >&5
-echo "${ECHO_T}Can't figure out how to get bitfields - configure failed" >&6
-      exit 1
-    fi
-  fi
-fi
-
-
-
-echo "$as_me:$LINENO: checking if sockaddr{} has sa_len member" >&5
-echo $ECHO_N "checking if sockaddr{} has sa_len member... $ECHO_C" >&6
-if test "${ac_cv_sockaddr_has_sa_len+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#               include <sys/types.h>
-#               include <sys/socket.h>
-int
-main ()
-{
-unsigned int i = sizeof(((struct sockaddr *)0)->sa_len)
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_sockaddr_has_sa_len=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_sockaddr_has_sa_len=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_sockaddr_has_sa_len" >&5
-echo "${ECHO_T}$ac_cv_sockaddr_has_sa_len" >&6
-if test $ac_cv_sockaddr_has_sa_len = yes ; then
-        cat >>confdefs.h <<\_ACEOF
-#define HAVE_SOCKADDR_SA_LEN 1
-_ACEOF
-
-fi
-
-echo "$as_me:$LINENO: checking if struct icmp exists" >&5
-echo $ECHO_N "checking if struct icmp exists... $ECHO_C" >&6
-if test "${ac_cv_struct_icmp_exists+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#               include <sys/types.h>
-#               include <sys/param.h>
-#               include <netinet/in_systm.h>
-#               include <netinet/in.h>
-#               define __USE_BSD
-#               define __FAVOR_BSD
-#               define __BSD_SOURCE
-#               include <netinet/ip.h>
-#               include <netinet/ip_icmp.h>
-int
-main ()
-{
-unsigned int i = sizeof(struct icmp)
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_struct_icmp_exists=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_struct_icmp_exists=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_struct_icmp_exists" >&5
-echo "${ECHO_T}$ac_cv_struct_icmp_exists" >&6
-if test $ac_cv_struct_icmp_exists = yes ; then
-        cat >>confdefs.h <<\_ACEOF
-#define HAVE_STRUCT_ICMP 1
-_ACEOF
-
-fi
-
-echo "$as_me:$LINENO: checking if struct ip exists" >&5
-echo $ECHO_N "checking if struct ip exists... $ECHO_C" >&6
-if test "${ac_cv_struct_ip_exists+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#               include <sys/types.h>
-#               include <sys/param.h>
-#               include <netinet/in_systm.h>
-#               include <netinet/in.h>
-#               define __USE_BSD
-#               define __FAVOR_BSD
-#               define __BSD_SOURCE
-#               include <netinet/ip.h>
-int
-main ()
-{
-unsigned int i = sizeof(struct ip)
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_struct_ip_exists=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_struct_ip_exists=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_struct_ip_exists" >&5
-echo "${ECHO_T}$ac_cv_struct_ip_exists" >&6
-if test $ac_cv_struct_ip_exists = yes ; then
-        cat >>confdefs.h <<\_ACEOF
-#define HAVE_STRUCT_IP 1
-_ACEOF
-
-fi
-
-echo "$as_me:$LINENO: checking if struct ip has ip_sum member" >&5
-echo $ECHO_N "checking if struct ip has ip_sum member... $ECHO_C" >&6
-if test "${ac_cv_ip_has_ip_sum+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#               include <sys/types.h>
-#               include <sys/param.h>
-#               include <netinet/in_systm.h>
-#               include <netinet/in.h>
-#               define __USE_BSD
-#               define __FAVOR_BSD
-#               define __BSD_SOURCE
-#               include <netinet/ip.h>
-#               include <netinet/ip_icmp.h>
-int
-main ()
-{
-unsigned int i = sizeof(((struct ip *)0)->ip_sum)
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_ip_has_ip_sum=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_ip_has_ip_sum=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_ip_has_ip_sum" >&5
-echo "${ECHO_T}$ac_cv_ip_has_ip_sum" >&6
-if test $ac_cv_ip_has_ip_sum = yes ; then
-        cat >>confdefs.h <<\_ACEOF
-#define HAVE_IP_IP_SUM 1
-_ACEOF
-
-fi
-
-          ac_config_files="$ac_config_files Makefile"
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems.  If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-{
-  (set) 2>&1 |
-    case `(ac_space=' '; set | grep ac_space) 2>&1` in
-    *ac_space=\ *)
-      # `set' does not quote correctly, so add quotes (double-quote
-      # substitution turns \\\\ into \\, and sed turns \\ into \).
-      sed -n \
-       "s/'/'\\\\''/g;
-         s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
-      ;;
-    *)
-      # `set' quotes correctly as required by POSIX, so do not add quotes.
-      sed -n \
-       "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
-      ;;
-    esac;
-} |
-  sed '
-     t clear
-     : clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
-     t end
-     /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-     : end' >>confcache
-if diff $cache_file confcache >/dev/null 2>&1; then :; else
-  if test -w $cache_file; then
-    test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
-    cat confcache >$cache_file
-  else
-    echo "not updating unwritable cache $cache_file"
-  fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
-  ac_vpsub='/^[         ]*VPATH[        ]*=/{
-s/:*\$(srcdir):*/:/;
-s/:*\${srcdir}:*/:/;
-s/:*@srcdir@:*/:/;
-s/^\([^=]*=[    ]*\):*/\1/;
-s/:*$//;
-s/^[^=]*=[      ]*$//;
-}'
-fi
-
-DEFS=-DHAVE_CONFIG_H
-
-ac_libobjs=
-ac_ltlibobjs=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
-  # 1. Remove the extension, and $U if already installed.
-  ac_i=`echo "$ac_i" |
-        sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
-  # 2. Add them.
-  ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
-  ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-
-: ${CONFIG_STATUS=./config.status}
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
-echo "$as_me: creating $CONFIG_STATUS" >&6;}
-cat >$CONFIG_STATUS <<_ACEOF
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-  set -o posix
-fi
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
-
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-  LC_TELEPHONE LC_TIME
-do
-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-    eval $as_var=C; export $as_var
-  else
-    $as_unset $as_var
-  fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-        X"$0" : 'X\(//\)$' \| \
-        X"$0" : 'X\(/\)$' \| \
-        .     : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-         /^X\/\(\/\/\)$/{ s//\1/; q; }
-         /^X\/\(\/\).*/{ s//\1/; q; }
-         s/.*/./; q'`
-
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
-  # Find who we are.  Look in the path if we contain no path at all
-  # relative or not.
-  case $0 in
-    *[\\/]* ) as_myself=$0 ;;
-    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
-       ;;
-  esac
-  # We did not find ourselves, most probably we were run as `sh COMMAND'
-  # in which case we are not to be found in the path.
-  if test "x$as_myself" = x; then
-    as_myself=$0
-  fi
-  if test ! -f "$as_myself"; then
-    { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
-echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
-   { (exit 1); exit 1; }; }
-  fi
-  case $CONFIG_SHELL in
-  '')
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for as_base in sh bash ksh sh5; do
-        case $as_dir in
-        /*)
-          if ("$as_dir/$as_base" -c '
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
-            $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
-            $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
-            CONFIG_SHELL=$as_dir/$as_base
-            export CONFIG_SHELL
-            exec "$CONFIG_SHELL" "$0" ${1+"$@"}
-          fi;;
-        esac
-       done
-done
-;;
-  esac
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line before each line; the second 'sed' does the real
-  # work.  The second script uses 'N' to pair each line-number line
-  # with the numbered line, and appends trailing '-' during
-  # substitution so that $LINENO is not a special case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
-  sed '=' <$as_myself |
-    sed '
-      N
-      s,$,-,
-      : loop
-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
-      t loop
-      s,-$,,
-      s,^['$as_cr_digits']*\n,,
-    ' >$as_me.lineno &&
-  chmod +x $as_me.lineno ||
-    { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
-echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensible to this).
-  . ./$as_me.lineno
-  # Exit status is that of the last command.
-  exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-  *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T='     ' ;;
-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  # We could just check for DJGPP; but this test a) works b) is more generic
-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-  if test -f conf$$.exe; then
-    # Don't use ln at all; we don't have any links
-    as_ln_s='cp -p'
-  else
-    as_ln_s='ln -s'
-  fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s=ln
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-as_executable_p="test -f"
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS="  $as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-exec 6>&1
-
-# Open the log real soon, to keep \$[0] and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.  Logging --version etc. is OK.
-exec 5>>config.log
-{
-  echo
-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
-} >&5
-cat >&5 <<_CSEOF
-
-This file was extended by $as_me, which was
-generated by GNU Autoconf 2.59.  Invocation command line was
-
-  CONFIG_FILES    = $CONFIG_FILES
-  CONFIG_HEADERS  = $CONFIG_HEADERS
-  CONFIG_LINKS    = $CONFIG_LINKS
-  CONFIG_COMMANDS = $CONFIG_COMMANDS
-  $ $0 $@
-
-_CSEOF
-echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
-echo >&5
-_ACEOF
-
-# Files that config.status was made for.
-if test -n "$ac_config_files"; then
-  echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_headers"; then
-  echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_links"; then
-  echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_commands"; then
-  echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-ac_cs_usage="\
-\`$as_me' instantiates files from templates according to the
-current configuration.
-
-Usage: $0 [OPTIONS] [FILE]...
-
-  -h, --help       print this help, then exit
-  -V, --version    print version number, then exit
-  -q, --quiet      do not print progress messages
-  -d, --debug      don't remove temporary files
-      --recheck    update $as_me by reconfiguring in the same conditions
-  --file=FILE[:TEMPLATE]
-                  instantiate the configuration file FILE
-  --header=FILE[:TEMPLATE]
-                  instantiate the configuration header FILE
-
-Configuration files:
-$config_files
-
-Configuration headers:
-$config_headers
-
-Report bugs to <[email protected]>."
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-ac_cs_version="\\
-config.status
-configured by $0, generated by GNU Autoconf 2.59,
-  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
-
-Copyright (C) 2003 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-srcdir=$srcdir
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-# If no file are specified by the user, then we need to provide default
-# value.  By we need to know if files were specified by the user.
-ac_need_defaults=:
-while test $# != 0
-do
-  case $1 in
-  --*=*)
-    ac_option=`expr "x$1" : 'x\([^=]*\)='`
-    ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
-    ac_shift=:
-    ;;
-  -*)
-    ac_option=$1
-    ac_optarg=$2
-    ac_shift=shift
-    ;;
-  *) # This is not an option, so the user has probably given explicit
-     # arguments.
-     ac_option=$1
-     ac_need_defaults=false;;
-  esac
-
-  case $ac_option in
-  # Handling of the options.
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-    ac_cs_recheck=: ;;
-  --version | --vers* | -V )
-    echo "$ac_cs_version"; exit 0 ;;
-  --he | --h)
-    # Conflict between --help and --header
-    { { echo "$as_me:$LINENO: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&2;}
-   { (exit 1); exit 1; }; };;
-  --help | --hel | -h )
-    echo "$ac_cs_usage"; exit 0 ;;
-  --debug | --d* | -d )
-    debug=: ;;
-  --file | --fil | --fi | --f )
-    $ac_shift
-    CONFIG_FILES="$CONFIG_FILES $ac_optarg"
-    ac_need_defaults=false;;
-  --header | --heade | --head | --hea )
-    $ac_shift
-    CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
-    ac_need_defaults=false;;
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil | --si | --s)
-    ac_cs_silent=: ;;
-
-  # This is an error.
-  -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2;}
-   { (exit 1); exit 1; }; } ;;
-
-  *) ac_config_targets="$ac_config_targets $1" ;;
-
-  esac
-  shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
-  exec 6>/dev/null
-  ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-if \$ac_cs_recheck; then
-  echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
-  exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
-fi
-
-_ACEOF
-
-
-
-
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_config_target in $ac_config_targets
-do
-  case "$ac_config_target" in
-  # Handling of arguments.
-  "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
-  "nsock_config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS nsock_config.h" ;;
-  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
-   { (exit 1); exit 1; }; };;
-  esac
-done
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used.  Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
-  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
-  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
-fi
-
-# Have a temporary directory for convenience.  Make it in the build tree
-# simply because there is no reason to put it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Create a temporary directory, and hook for its removal unless debugging.
-$debug ||
-{
-  trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
-  trap '{ (exit 1); exit 1; }' 1 2 13 15
-}
-
-# Create a (secure) tmp directory for tmp files.
-
-{
-  tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
-  test -n "$tmp" && test -d "$tmp"
-}  ||
-{
-  tmp=./confstat$$-$RANDOM
-  (umask 077 && mkdir $tmp)
-} ||
-{
-   echo "$me: cannot create a temporary directory in ." >&2
-   { (exit 1); exit 1; }
-}
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-
-#
-# CONFIG_FILES section.
-#
-
-# No need to generate the scripts if there are no CONFIG_FILES.
-# This happens for instance when ./config.status config.h
-if test -n "\$CONFIG_FILES"; then
-  # Protect against being on the right side of a sed subst in config.status.
-  sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
-   s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
-s,@SHELL@,$SHELL,;t t
-s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
-s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
-s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
-s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
-s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
-s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
-s,@exec_prefix@,$exec_prefix,;t t
-s,@prefix@,$prefix,;t t
-s,@program_transform_name@,$program_transform_name,;t t
-s,@bindir@,$bindir,;t t
-s,@sbindir@,$sbindir,;t t
-s,@libexecdir@,$libexecdir,;t t
-s,@datadir@,$datadir,;t t
-s,@sysconfdir@,$sysconfdir,;t t
-s,@sharedstatedir@,$sharedstatedir,;t t
-s,@localstatedir@,$localstatedir,;t t
-s,@libdir@,$libdir,;t t
-s,@includedir@,$includedir,;t t
-s,@oldincludedir@,$oldincludedir,;t t
-s,@infodir@,$infodir,;t t
-s,@mandir@,$mandir,;t t
-s,@build_alias@,$build_alias,;t t
-s,@host_alias@,$host_alias,;t t
-s,@target_alias@,$target_alias,;t t
-s,@DEFS@,$DEFS,;t t
-s,@ECHO_C@,$ECHO_C,;t t
-s,@ECHO_N@,$ECHO_N,;t t
-s,@ECHO_T@,$ECHO_T,;t t
-s,@LIBS@,$LIBS,;t t
-s,@CC@,$CC,;t t
-s,@CFLAGS@,$CFLAGS,;t t
-s,@LDFLAGS@,$LDFLAGS,;t t
-s,@CPPFLAGS@,$CPPFLAGS,;t t
-s,@ac_ct_CC@,$ac_ct_CC,;t t
-s,@EXEEXT@,$EXEEXT,;t t
-s,@OBJEXT@,$OBJEXT,;t t
-s,@RANLIB@,$RANLIB,;t t
-s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
-s,@COMPAT_OBJS@,$COMPAT_OBJS,;t t
-s,@COMPAT_SRCS@,$COMPAT_SRCS,;t t
-s,@build@,$build,;t t
-s,@build_cpu@,$build_cpu,;t t
-s,@build_vendor@,$build_vendor,;t t
-s,@build_os@,$build_os,;t t
-s,@host@,$host,;t t
-s,@host_cpu@,$host_cpu,;t t
-s,@host_vendor@,$host_vendor,;t t
-s,@host_os@,$host_os,;t t
-s,@CPP@,$CPP,;t t
-s,@EGREP@,$EGREP,;t t
-s,@LIBNBASE_LIBS@,$LIBNBASE_LIBS,;t t
-s,@NBASEDIR@,$NBASEDIR,;t t
-s,@LIBOBJS@,$LIBOBJS,;t t
-s,@LTLIBOBJS@,$LTLIBOBJS,;t t
-CEOF
-
-_ACEOF
-
-  cat >>$CONFIG_STATUS <<\_ACEOF
-  # Split the substitutions into bite-sized pieces for seds with
-  # small command number limits, like on Digital OSF/1 and HP-UX.
-  ac_max_sed_lines=48
-  ac_sed_frag=1 # Number of current file.
-  ac_beg=1 # First line for current file.
-  ac_end=$ac_max_sed_lines # Line after last line for current file.
-  ac_more_lines=:
-  ac_sed_cmds=
-  while $ac_more_lines; do
-    if test $ac_beg -gt 1; then
-      sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
-    else
-      sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
-    fi
-    if test ! -s $tmp/subs.frag; then
-      ac_more_lines=false
-    else
-      # The purpose of the label and of the branching condition is to
-      # speed up the sed processing (if there are no `@' at all, there
-      # is no need to browse any of the substitutions).
-      # These are the two extra sed commands mentioned above.
-      (echo ':t
-  /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
-      if test -z "$ac_sed_cmds"; then
-       ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
-      else
-       ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
-      fi
-      ac_sed_frag=`expr $ac_sed_frag + 1`
-      ac_beg=$ac_end
-      ac_end=`expr $ac_end + $ac_max_sed_lines`
-    fi
-  done
-  if test -z "$ac_sed_cmds"; then
-    ac_sed_cmds=cat
-  fi
-fi # test -n "$CONFIG_FILES"
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
-  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
-  case $ac_file in
-  - | *:- | *:-:* ) # input from stdin
-       cat >$tmp/stdin
-       ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-       ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-       ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  * )   ac_file_in=$ac_file.in ;;
-  esac
-
-  # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
-  ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-        X"$ac_file" : 'X\(//\)[^/]' \| \
-        X"$ac_file" : 'X\(//\)$' \| \
-        X"$ac_file" : 'X\(/\)' \| \
-        .     : '\(.\)' 2>/dev/null ||
-echo X"$ac_file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-         /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-         /^X\(\/\/\)$/{ s//\1/; q; }
-         /^X\(\/\).*/{ s//\1/; q; }
-         s/.*/./; q'`
-  { if $as_mkdir_p; then
-    mkdir -p "$ac_dir"
-  else
-    as_dir="$ac_dir"
-    as_dirs=
-    while test ! -d "$as_dir"; do
-      as_dirs="$as_dir $as_dirs"
-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-        X"$as_dir" : 'X\(//\)[^/]' \| \
-        X"$as_dir" : 'X\(//\)$' \| \
-        X"$as_dir" : 'X\(/\)' \| \
-        .     : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-         /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-         /^X\(\/\/\)$/{ s//\1/; q; }
-         /^X\(\/\).*/{ s//\1/; q; }
-         s/.*/./; q'`
-    done
-    test ! -n "$as_dirs" || mkdir $as_dirs
-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
-   { (exit 1); exit 1; }; }; }
-
-  ac_builddir=.
-
-if test "$ac_dir" != .; then
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
-    ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
-  case "$ac_dir" in
-  .) ac_abs_builddir=`pwd`;;
-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
-  case ${ac_top_builddir}. in
-  .) ac_abs_top_builddir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
-  case $ac_srcdir in
-  .) ac_abs_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
-  case $ac_top_srcdir in
-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-  esac;;
-esac
-
-
-
-  if test x"$ac_file" != x-; then
-    { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
-    rm -f "$ac_file"
-  fi
-  # Let's still pretend it is `configure' which instantiates (i.e., don't
-  # use $as_me), people would be surprised to read:
-  #    /* config.h.  Generated by config.status.  */
-  if test x"$ac_file" = x-; then
-    configure_input=
-  else
-    configure_input="$ac_file.  "
-  fi
-  configure_input=$configure_input"Generated from `echo $ac_file_in |
-                                    sed 's,.*/,,'` by configure."
-
-  # First look for the input files in the build tree, otherwise in the
-  # src tree.
-  ac_file_inputs=`IFS=:
-    for f in $ac_file_in; do
-      case $f in
-      -) echo $tmp/stdin ;;
-      [\\/$]*)
-        # Absolute (can't be DOS-style, as IFS=:)
-        test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-        echo "$f";;
-      *) # Relative
-        if test -f "$f"; then
-          # Build tree
-          echo "$f"
-        elif test -f "$srcdir/$f"; then
-          # Source tree
-          echo "$srcdir/$f"
-        else
-          # /dev/null tree
-          { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-        fi;;
-      esac
-    done` || { (exit 1); exit 1; }
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-  sed "$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s,@configure_input@,$configure_input,;t t
-s,@srcdir@,$ac_srcdir,;t t
-s,@abs_srcdir@,$ac_abs_srcdir,;t t
-s,@top_srcdir@,$ac_top_srcdir,;t t
-s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
-s,@builddir@,$ac_builddir,;t t
-s,@abs_builddir@,$ac_abs_builddir,;t t
-s,@top_builddir@,$ac_top_builddir,;t t
-s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
-" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
-  rm -f $tmp/stdin
-  if test x"$ac_file" != x-; then
-    mv $tmp/out $ac_file
-  else
-    cat $tmp/out
-    rm -f $tmp/out
-  fi
-
-done
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-#
-# CONFIG_HEADER section.
-#
-
-# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
-# NAME is the cpp macro being defined and VALUE is the value it is being given.
-#
-# ac_d sets the value in "#define NAME VALUE" lines.
-ac_dA='s,^\([   ]*\)#\([        ]*define[       ][      ]*\)'
-ac_dB='[        ].*$,\1#\2'
-ac_dC=' '
-ac_dD=',;t'
-# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-ac_uA='s,^\([   ]*\)#\([        ]*\)undef\([    ][      ]*\)'
-ac_uB='$,\1#\2define\3'
-ac_uC=' '
-ac_uD=',;t'
-
-for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
-  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
-  case $ac_file in
-  - | *:- | *:-:* ) # input from stdin
-       cat >$tmp/stdin
-       ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-       ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-       ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  * )   ac_file_in=$ac_file.in ;;
-  esac
-
-  test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
-
-  # First look for the input files in the build tree, otherwise in the
-  # src tree.
-  ac_file_inputs=`IFS=:
-    for f in $ac_file_in; do
-      case $f in
-      -) echo $tmp/stdin ;;
-      [\\/$]*)
-        # Absolute (can't be DOS-style, as IFS=:)
-        test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-        # Do quote $f, to prevent DOS paths from being IFS'd.
-        echo "$f";;
-      *) # Relative
-        if test -f "$f"; then
-          # Build tree
-          echo "$f"
-        elif test -f "$srcdir/$f"; then
-          # Source tree
-          echo "$srcdir/$f"
-        else
-          # /dev/null tree
-          { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-        fi;;
-      esac
-    done` || { (exit 1); exit 1; }
-  # Remove the trailing spaces.
-  sed 's/[      ]*$//' $ac_file_inputs >$tmp/in
-
-_ACEOF
-
-# Transform confdefs.h into two sed scripts, `conftest.defines' and
-# `conftest.undefs', that substitutes the proper values into
-# config.h.in to produce config.h.  The first handles `#define'
-# templates, and the second `#undef' templates.
-# And first: Protect against being on the right side of a sed subst in
-# config.status.  Protect against being in an unquoted here document
-# in config.status.
-rm -f conftest.defines conftest.undefs
-# Using a here document instead of a string reduces the quoting nightmare.
-# Putting comments in sed scripts is not portable.
-#
-# `end' is used to avoid that the second main sed command (meant for
-# 0-ary CPP macros) applies to n-ary macro definitions.
-# See the Autoconf documentation for `clear'.
-cat >confdef2sed.sed <<\_ACEOF
-s/[\\&,]/\\&/g
-s,[\\$`],\\&,g
-t clear
-: clear
-s,^[    ]*#[    ]*define[       ][      ]*\([^  (][^    (]*\)\(([^)]*)\)[       ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
-t end
-s,^[    ]*#[    ]*define[       ][      ]*\([^  ][^     ]*\)[   ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
-: end
-_ACEOF
-# If some macros were called several times there might be several times
-# the same #defines, which is useless.  Nevertheless, we may not want to
-# sort them, since we want the *last* AC-DEFINE to be honored.
-uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
-sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
-rm -f confdef2sed.sed
-
-# This sed command replaces #undef with comments.  This is necessary, for
-# example, in the case of _POSIX_SOURCE, which is predefined and required
-# on some systems where configure will not decide to define it.
-cat >>conftest.undefs <<\_ACEOF
-s,^[    ]*#[    ]*undef[        ][      ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
-_ACEOF
-
-# Break up conftest.defines because some shells have a limit on the size
-# of here documents, and old seds have small limits too (100 cmds).
-echo '  # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
-echo '  if grep "^[     ]*#[    ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
-echo '  # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
-echo '  :' >>$CONFIG_STATUS
-rm -f conftest.tail
-while grep . conftest.defines >/dev/null
-do
-  # Write a limited-size here document to $tmp/defines.sed.
-  echo '  cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
-  # Speed up: don't consider the non `#define' lines.
-  echo '/^[     ]*#[    ]*define/!b' >>$CONFIG_STATUS
-  # Work around the forget-to-reset-the-flag bug.
-  echo 't clr' >>$CONFIG_STATUS
-  echo ': clr' >>$CONFIG_STATUS
-  sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
-  echo 'CEOF
-  sed -f $tmp/defines.sed $tmp/in >$tmp/out
-  rm -f $tmp/in
-  mv $tmp/out $tmp/in
-' >>$CONFIG_STATUS
-  sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
-  rm -f conftest.defines
-  mv conftest.tail conftest.defines
-done
-rm -f conftest.defines
-echo '  fi # grep' >>$CONFIG_STATUS
-echo >>$CONFIG_STATUS
-
-# Break up conftest.undefs because some shells have a limit on the size
-# of here documents, and old seds have small limits too (100 cmds).
-echo '  # Handle all the #undef templates' >>$CONFIG_STATUS
-rm -f conftest.tail
-while grep . conftest.undefs >/dev/null
-do
-  # Write a limited-size here document to $tmp/undefs.sed.
-  echo '  cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
-  # Speed up: don't consider the non `#undef'
-  echo '/^[     ]*#[    ]*undef/!b' >>$CONFIG_STATUS
-  # Work around the forget-to-reset-the-flag bug.
-  echo 't clr' >>$CONFIG_STATUS
-  echo ': clr' >>$CONFIG_STATUS
-  sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
-  echo 'CEOF
-  sed -f $tmp/undefs.sed $tmp/in >$tmp/out
-  rm -f $tmp/in
-  mv $tmp/out $tmp/in
-' >>$CONFIG_STATUS
-  sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
-  rm -f conftest.undefs
-  mv conftest.tail conftest.undefs
-done
-rm -f conftest.undefs
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-  # Let's still pretend it is `configure' which instantiates (i.e., don't
-  # use $as_me), people would be surprised to read:
-  #    /* config.h.  Generated by config.status.  */
-  if test x"$ac_file" = x-; then
-    echo "/* Generated by configure.  */" >$tmp/config.h
-  else
-    echo "/* $ac_file.  Generated by configure.  */" >$tmp/config.h
-  fi
-  cat $tmp/in >>$tmp/config.h
-  rm -f $tmp/in
-  if test x"$ac_file" != x-; then
-    if diff $ac_file $tmp/config.h >/dev/null 2>&1; then
-      { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
-echo "$as_me: $ac_file is unchanged" >&6;}
-    else
-      ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-        X"$ac_file" : 'X\(//\)[^/]' \| \
-        X"$ac_file" : 'X\(//\)$' \| \
-        X"$ac_file" : 'X\(/\)' \| \
-        .     : '\(.\)' 2>/dev/null ||
-echo X"$ac_file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-         /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-         /^X\(\/\/\)$/{ s//\1/; q; }
-         /^X\(\/\).*/{ s//\1/; q; }
-         s/.*/./; q'`
-      { if $as_mkdir_p; then
-    mkdir -p "$ac_dir"
-  else
-    as_dir="$ac_dir"
-    as_dirs=
-    while test ! -d "$as_dir"; do
-      as_dirs="$as_dir $as_dirs"
-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-        X"$as_dir" : 'X\(//\)[^/]' \| \
-        X"$as_dir" : 'X\(//\)$' \| \
-        X"$as_dir" : 'X\(/\)' \| \
-        .     : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-         /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-         /^X\(\/\/\)$/{ s//\1/; q; }
-         /^X\(\/\).*/{ s//\1/; q; }
-         s/.*/./; q'`
-    done
-    test ! -n "$as_dirs" || mkdir $as_dirs
-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
-   { (exit 1); exit 1; }; }; }
-
-      rm -f $ac_file
-      mv $tmp/config.h $ac_file
-    fi
-  else
-    cat $tmp/config.h
-    rm -f $tmp/config.h
-  fi
-done
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-{ (exit 0); exit 0; }
-_ACEOF
-chmod +x $CONFIG_STATUS
-ac_clean_files=$ac_clean_files_save
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded.  So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status.  When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
-  ac_cs_success=:
-  ac_config_status_args=
-  test "$silent" = yes &&
-    ac_config_status_args="$ac_config_status_args --quiet"
-  exec 5>/dev/null
-  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
-  exec 5>>config.log
-  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
-  # would make configure fail if this is the last instruction.
-  $ac_cs_success || { (exit 1); exit 1; }
-fi
-
diff --git a/nsock/src/configure.ac b/nsock/src/configure.ac
deleted file mode 100644 (file)
index fb4739c..0000000
+++ /dev/null
@@ -1,258 +0,0 @@
-# Require autoconf 2.13 -*- mode: fundamental; -*-
-AC_PREREQ(2.13)
-
-dnl Process this file with autoconf to produce a configure script.
-AC_INIT(nsock_core.c)
-
-AC_ARG_WITH(localdirs,
-  [  --with-localdirs        Explicitly ask compiler to use /usr/local/{include,libs} if they exist ],
-  [ case "$with_localdirs" in
-      yes)
-        user_localdirs=1
-        ;;
-      no)
-        user_localdirs=0
-        ;;
-    esac
-    ],
-  [ user_localdirs=0 ] )
-
-if test "$user_localdirs" = 1; then
-   if test -d /usr/local/lib; then
-     LDFLAGS="$LDFLAGS -L/usr/local/lib"
-     fi
-   if test -d /usr/local/include; then
-     CFLAGS="$CFLAGS -I/usr/local/include"
-   fi
-fi
-
-dnl use nsock_config.h instad of -D macros
-AC_CONFIG_HEADER(nsock_config.h)
-
-dnl Checks for programs.
-AC_PROG_CC
- if test -n "$GCC"; then
-      CFLAGS="$CFLAGS -Wall "
- fi
-AC_PROG_RANLIB
-dnl AC_PROG_INSTALL
-dnl AC_PATH_PROG(MAKEDEPEND, makedepend)
-
-AC_SUBST(COMPAT_OBJS)
-AC_SUBST(COMPAT_SRCS)
-
-dnl Host specific hacks
-AC_CANONICAL_HOST
-
-dnl Checks for libraries.
-dnl AC_CHECK_LIB(m, pow)
-
-dnl If any socket libraries needed
-AC_CHECK_FUNC(gethostent, , AC_CHECK_LIB(nsl, gethostent))
-AC_CHECK_FUNC(setsockopt, , AC_CHECK_LIB(socket, setsockopt))
-
-dnl need posix4/nanosleep for solaris 2.4
-AC_CHECK_FUNC(nanosleep, , AC_CHECK_LIB(posix4, nanosleep))
-
-dnl Checks for header files.
-AC_HEADER_STDC
-
-dnl Checks for typedefs, structures, and compiler characteristics.
-
-AC_ARG_WITH(libnbase,
-[  --with-libnbase=DIR     Look for nbase include/libs in DIR],
-[  case "$with_libnbase" in
-  yes)
-    ;;
-  *)
-    NBASEDIR="$with_libnbase"
-    ;;
-  esac],
-NBASEDIR="../../nbase"
-)
-
-LDFLAGS="$LDFLAGS -L$NBASEDIR"
-CFLAGS="$CFLAGS -I$NBASEDIR"
-LIBNBASE_LIBS="$LIBS -lnbase"
-
-AC_SUBST(LIBNBASE_LIBS)
-AC_SUBST(NBASEDIR)
-
-# First we test whether they specified openssl desires explicitly
-use_openssl="yes"
-specialssldir=""
-
-AC_ARG_WITH(openssl,
-[  --with-openssl=DIR    Use optional openssl libs and includes from [DIR]/lib/ 
-and [DIR]/include/openssl/)],
-[  case "$with_openssl" in
-  yes)
-    ;;
-  no)
-    use_openssl="no"
-    ;;
-  *)
-    specialssldir="$with_openssl"
-    CFLAGS="-I$with_openssl/include $CFLAGS"
-    ;;
-  esac]
-)
-
-
-# If they didn't specify it, we try to find it
-if test "$use_openssl" = "yes" -a -z "$specialssldir"; then
-  AC_CHECK_HEADER(openssl/ssl.h,,
-  [ use_openssl="no"
-    AC_MSG_WARN([Failed to find openssl/ssl.h so OpenSSL will not be used. If it
- is installed you can try the --with-openssl=DIR argument]) ])
-
- if test "$use_openssl" = "yes"; then
-   AC_CHECK_HEADER(openssl/err.h,,
-    [ use_openssl="no"
-    AC_MSG_WARN([Failed to find openssl/err.h so OpenSSL will not be used. If it
- is installed you can try the --with-openssl=DIR argument]) ])
- fi
-
- if test "$use_openssl" = "yes"; then
-   AC_CHECK_HEADER(openssl/rand.h,,
-    [ use_openssl="no"
-    AC_MSG_WARN([Failed to find openssl/rand.h so OpenSSL will not be used. If i
-t is installed you can try the --with-openssl=DIR argument]) ])
- fi
-
- if test "$use_openssl" = "yes"; then
-   AC_CHECK_LIB(crypto, BIO_int_ctrl,
-    [],
-    [ use_openssl="no"
-    AC_MSG_WARN([Failed to find libcrypto so OpenSSL will not be used. If it is installed you can try the --with-openssl=DIR argument]) ])
- fi
-
- if test "$use_openssl" = "yes"; then
-   AC_CHECK_LIB(ssl, SSL_new,
-    [],
-    [ use_openssl="no"
-    AC_MSG_WARN([Failed to find libssl so OpenSSL will not be used. If it is ins
-talled you can try the --with-openssl=DIR argument]) ])
- fi
-fi
-
-if test "$use_openssl" = "yes"; then
-  AC_DEFINE(HAVE_OPENSSL)
-fi
-
-
-AC_MSG_CHECKING([struct ip])
-AC_TRY_COMPILE([#include <sys/types.h>
-#include <netinet/in.h>
-#include <netinet/in_systm.h>
-#include <netinet/ip.h>],
-               [struct ip ip;],
-               [AC_MSG_RESULT(yes); bsd_networking=yes],
-               [AC_MSG_RESULT(no); bsd_networking=no]);
-if test $bsd_networking = yes; then
-
-  AC_DEFINE(BSD_NETWORKING)
-  AC_MSG_CHECKING([ip_v in struct ip])
-  AC_TRY_COMPILE([#include <sys/types.h>
-#include <netinet/in.h>
-#include <netinet/in_systm.h>
-#include <netinet/ip.h>],
-                 [struct ip ip; ip.ip_v;],
-                 [AC_MSG_RESULT(yes); has_bitfields=yes],
-                 [AC_MSG_RESULT(no); has_bitfields=no])
-
-  if test $has_bitfields = no; then
-    SAVE_CFLAGS="$CFLAGS"
-    CFLAGS="-D__STDC__=2"
-
-    AC_MSG_CHECKING([if setting __STDC__=2 gives ip_v])
-    AC_TRY_COMPILE([#include <sys/types.h>
-#include <netinet/in.h>
-#include <netinet/in_systm.h>
-#include <netinet/ip.h>],
-                   [struct ip ip; ip.ip_v;],
-                   [AC_MSG_RESULT(yes); setting_stdc_helps=yes],
-                  [AC_MSG_RESULT(no); setting_stdc_helps=no])
-
-    CFLAGS="$SAVE_CFLAGS"
-    if test $setting_stdc_helps = yes; then
-      CFLAGS="$CFLAGS -D__STDC__=2"
-    else
-      AC_MSG_RESULT(Can't figure out how to get bitfields - configure failed)
-      exit 1
-    fi
-  fi
-fi
-
-AC_SUBST(CFLAGS)
-
-dnl This test is from the configure.in of Unix Network Programming second
-dnl edition example code by W. Richard Stevens
-dnl ##################################################################
-dnl Check if sockaddr{} has sa_len member.
-dnl
-AC_CACHE_CHECK(if sockaddr{} has sa_len member, ac_cv_sockaddr_has_sa_len,
-        AC_TRY_COMPILE([
-#               include <sys/types.h>
-#               include <sys/socket.h>],
-                [unsigned int i = sizeof(((struct sockaddr *)0)->sa_len)],
-        ac_cv_sockaddr_has_sa_len=yes,
-        ac_cv_sockaddr_has_sa_len=no))
-if test $ac_cv_sockaddr_has_sa_len = yes ; then
-        AC_DEFINE(HAVE_SOCKADDR_SA_LEN)
-fi
-
-AC_CACHE_CHECK(if struct icmp exists, ac_cv_struct_icmp_exists,
-        AC_TRY_COMPILE([
-#               include <sys/types.h>
-#               include <sys/param.h>
-#               include <netinet/in_systm.h>
-#               include <netinet/in.h>               
-#               define __USE_BSD
-#               define __FAVOR_BSD
-#               define __BSD_SOURCE
-#               include <netinet/ip.h>
-#               include <netinet/ip_icmp.h>],
-                [unsigned int i = sizeof(struct icmp)],
-        ac_cv_struct_icmp_exists=yes,
-        ac_cv_struct_icmp_exists=no))
-if test $ac_cv_struct_icmp_exists = yes ; then
-        AC_DEFINE(HAVE_STRUCT_ICMP)
-fi
-
-AC_CACHE_CHECK(if struct ip exists, ac_cv_struct_ip_exists,
-        AC_TRY_COMPILE([
-#               include <sys/types.h>
-#               include <sys/param.h>
-#               include <netinet/in_systm.h>
-#               include <netinet/in.h>               
-#               define __USE_BSD
-#               define __FAVOR_BSD
-#               define __BSD_SOURCE
-#               include <netinet/ip.h>],
-                [unsigned int i = sizeof(struct ip)],
-        ac_cv_struct_ip_exists=yes,
-        ac_cv_struct_ip_exists=no))
-if test $ac_cv_struct_ip_exists = yes ; then
-        AC_DEFINE(HAVE_STRUCT_IP)
-fi
-
-AC_CACHE_CHECK(if struct ip has ip_sum member, ac_cv_ip_has_ip_sum,
-        AC_TRY_COMPILE([
-#               include <sys/types.h>
-#               include <sys/param.h>
-#               include <netinet/in_systm.h>
-#               include <netinet/in.h>
-#               define __USE_BSD
-#               define __FAVOR_BSD
-#               define __BSD_SOURCE
-#               include <netinet/ip.h>
-#               include <netinet/ip_icmp.h>],
-                [unsigned int i = sizeof(((struct ip *)0)->ip_sum)],
-        ac_cv_ip_has_ip_sum=yes,
-        ac_cv_ip_has_ip_sum=no))
-if test $ac_cv_ip_has_ip_sum = yes ; then
-        AC_DEFINE(HAVE_IP_IP_SUM)
-fi
-
-AC_OUTPUT(Makefile)
diff --git a/nsock/src/error.c b/nsock/src/error.c
deleted file mode 100644 (file)
index 7415391..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-
-/***************************************************************************
- * error.c -- a few simple routines for dealing with errors (quitting,     *
- * printing error messages, etc.                                           *
- *                                                                         *
- ***********************IMPORTANT NSOCK LICENSE TERMS***********************
- *                                                                         *
- * The nsock parallel socket event library is (C) 1999-2004 Insecure.Com   *
- * LLC This library is free software; you may redistribute and/or          *
- * modify it under the terms of the GNU General Public License as          *
- * published by the Free Software Foundation; Version 2.  This guarantees  *
- * your right to use, modify, and redistribute this software under certain *
- * conditions.  If this license is unacceptable to you, Insecure.Com LLC   *
- * may be willing to sell alternative licenses (contact                    *
- * [email protected] ).                                                   *
- *                                                                         *
- * As a special exception to the GPL terms, Insecure.Com LLC grants        *
- * permission to link the code of this program with any version of the     *
- * OpenSSL library which is distributed under a license identical to that  *
- * listed in the included Copying.OpenSSL file, and distribute linked      *
- * combinations including the two. You must obey the GNU GPL in all        *
- * respects for all of the code used other than OpenSSL.  If you modify    *
- * this file, you may extend this exception to your version of the file,   *
- * but you are not obligated to do so.                                     *
- *                                                                         * 
- * If you received these files with a written license agreement stating    *
- * terms other than the (GPL) terms above, then that alternative license   *
- * agreement takes precedence over this comment.                          *
- *                                                                         *
- * Source is provided to this software because we believe users have a     *
- * right to know exactly what a program is going to do before they run it. *
- * This also allows you to audit the software for security holes (none     *
- * have been found so far).                                                *
- *                                                                         *
- * Source code also allows you to port Nmap to new platforms, fix bugs,    *
- * and add new features.  You are highly encouraged to send your changes   *
- * to [email protected] for possible incorporation into the main         *
- * distribution.  By sending these changes to Fyodor or one the            *
- * insecure.org development mailing lists, it is assumed that you are      *
- * offering Fyodor and Insecure.Com LLC the unlimited, non-exclusive right *
- * to reuse, modify, and relicense the code.  Nmap will always be          *
- * available Open Source, but this is important because the inability to   *
- * relicense code has caused devastating problems for other Free Software  *
- * projects (such as KDE and NASM).  We also occasionally relicense the    *
- * code to third parties as discussed above.  If you wish to specify       *
- * special license conditions of your contributions, just say so when you  *
- * send them.                                                              *
- *                                                                         *
- * This program is distributed in the hope that it will be useful, but     *
- * WITHOUT ANY WARRANTY; without even the implied warranty of              *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU       *
- * General Public License for more details (                               *
- * http://www.gnu.org/copyleft/gpl.html ).                                 *
- *                                                                         *
- ***************************************************************************/
-
-/* $Id$ */
-
-#include "error.h"
-
-void fatal(char *fmt, ...) {
-va_list  ap;va_start(ap, fmt);
-fflush(stdout);vfprintf(stderr, fmt, ap);
-fprintf(stderr, "\n");va_end(ap);
-exit(1);}
-
-void myerror(char *fmt, ...) {
-va_list  ap;va_start(ap, fmt);
-fflush(stdout);
-vfprintf(stderr, fmt, ap);
-fprintf(stderr, "\n");
-va_end(ap);
-return;
-}
-
-void pfatal(char *fmt, ...) {
-va_list  ap;va_start(ap, fmt);
-fflush(stdout);
-vfprintf(stderr, fmt, ap);
-fprintf(stderr, ": ");
-perror("");
-fprintf(stderr, "\n");
-va_end(ap);
-exit(1);
-}
-
-void gh_perror(char *err, ...) {
-va_list  ap;va_start(ap, err);
-fflush(stdout);
-vfprintf(stderr, err, ap);
-va_end(ap);
-perror(" ");
-fflush(stderr);
-return;
-}
diff --git a/nsock/src/error.h b/nsock/src/error.h
deleted file mode 100644 (file)
index 8ff6ba5..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-
-/***************************************************************************
- * error.h -- a few simple routines for dealing with errors (quitting,     *
- * printing error messages, etc.                                           *
- *                                                                         *
- ***********************IMPORTANT NSOCK LICENSE TERMS***********************
- *                                                                         *
- * The nsock parallel socket event library is (C) 1999-2004 Insecure.Com   *
- * LLC This library is free software; you may redistribute and/or          *
- * modify it under the terms of the GNU General Public License as          *
- * published by the Free Software Foundation; Version 2.  This guarantees  *
- * your right to use, modify, and redistribute this software under certain *
- * conditions.  If this license is unacceptable to you, Insecure.Com LLC   *
- * may be willing to sell alternative licenses (contact                    *
- * [email protected] ).                                                   *
- *                                                                         *
- * As a special exception to the GPL terms, Insecure.Com LLC grants        *
- * permission to link the code of this program with any version of the     *
- * OpenSSL library which is distributed under a license identical to that  *
- * listed in the included Copying.OpenSSL file, and distribute linked      *
- * combinations including the two. You must obey the GNU GPL in all        *
- * respects for all of the code used other than OpenSSL.  If you modify    *
- * this file, you may extend this exception to your version of the file,   *
- * but you are not obligated to do so.                                     *
- *                                                                         * 
- * If you received these files with a written license agreement stating    *
- * terms other than the (GPL) terms above, then that alternative license   *
- * agreement takes precedence over this comment.                          *
- *                                                                         *
- * Source is provided to this software because we believe users have a     *
- * right to know exactly what a program is going to do before they run it. *
- * This also allows you to audit the software for security holes (none     *
- * have been found so far).                                                *
- *                                                                         *
- * Source code also allows you to port Nmap to new platforms, fix bugs,    *
- * and add new features.  You are highly encouraged to send your changes   *
- * to [email protected] for possible incorporation into the main         *
- * distribution.  By sending these changes to Fyodor or one the            *
- * insecure.org development mailing lists, it is assumed that you are      *
- * offering Fyodor and Insecure.Com LLC the unlimited, non-exclusive right *
- * to reuse, modify, and relicense the code.  Nmap will always be          *
- * available Open Source, but this is important because the inability to   *
- * relicense code has caused devastating problems for other Free Software  *
- * projects (such as KDE and NASM).  We also occasionally relicense the    *
- * code to third parties as discussed above.  If you wish to specify       *
- * special license conditions of your contributions, just say so when you  *
- * send them.                                                              *
- *                                                                         *
- * This program is distributed in the hope that it will be useful, but     *
- * WITHOUT ANY WARRANTY; without even the implied warranty of              *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU       *
- * General Public License for more details (                               *
- * http://www.gnu.org/copyleft/gpl.html ).                                 *
- *                                                                         *
- ***************************************************************************/
-
-/* $Id$ */
-
-#ifndef ERROR_H
-#define ERROR_H
-
-#ifdef HAVE_CONFIG_H
-#include "nsock_config.h"
-#include "nbase_config.h"
-#endif
-
-#ifdef WIN32
-#include "nbase_winconfig.h"
-#endif
-
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#if HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-void fatal(char *fmt, ...);
-void myerror(char *fmt, ...);
-void pfatal(char *fmt, ...);
-void gh_perror(char *err, ...);
-
-#endif /* ERROR_H */
-
-
diff --git a/nsock/src/filespace.c b/nsock/src/filespace.c
deleted file mode 100644 (file)
index 470470b..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-
-/***************************************************************************
- * filespace.c -- a simple mechanism for storing dynamic amounts of data   *
- * in a simple to use, and quick to append-to structure.                   *
- *                                                                         *
- ***********************IMPORTANT NSOCK LICENSE TERMS***********************
- *                                                                         *
- * The nsock parallel socket event library is (C) 1999-2004 Insecure.Com   *
- * LLC This library is free software; you may redistribute and/or          *
- * modify it under the terms of the GNU General Public License as          *
- * published by the Free Software Foundation; Version 2.  This guarantees  *
- * your right to use, modify, and redistribute this software under certain *
- * conditions.  If this license is unacceptable to you, Insecure.Com LLC   *
- * may be willing to sell alternative licenses (contact                    *
- * [email protected] ).                                                   *
- *                                                                         *
- * As a special exception to the GPL terms, Insecure.Com LLC grants        *
- * permission to link the code of this program with any version of the     *
- * OpenSSL library which is distributed under a license identical to that  *
- * listed in the included Copying.OpenSSL file, and distribute linked      *
- * combinations including the two. You must obey the GNU GPL in all        *
- * respects for all of the code used other than OpenSSL.  If you modify    *
- * this file, you may extend this exception to your version of the file,   *
- * but you are not obligated to do so.                                     *
- *                                                                         * 
- * If you received these files with a written license agreement stating    *
- * terms other than the (GPL) terms above, then that alternative license   *
- * agreement takes precedence over this comment.                          *
- *                                                                         *
- * Source is provided to this software because we believe users have a     *
- * right to know exactly what a program is going to do before they run it. *
- * This also allows you to audit the software for security holes (none     *
- * have been found so far).                                                *
- *                                                                         *
- * Source code also allows you to port Nmap to new platforms, fix bugs,    *
- * and add new features.  You are highly encouraged to send your changes   *
- * to [email protected] for possible incorporation into the main         *
- * distribution.  By sending these changes to Fyodor or one the            *
- * insecure.org development mailing lists, it is assumed that you are      *
- * offering Fyodor and Insecure.Com LLC the unlimited, non-exclusive right *
- * to reuse, modify, and relicense the code.  Nmap will always be          *
- * available Open Source, but this is important because the inability to   *
- * relicense code has caused devastating problems for other Free Software  *
- * projects (such as KDE and NASM).  We also occasionally relicense the    *
- * code to third parties as discussed above.  If you wish to specify       *
- * special license conditions of your contributions, just say so when you  *
- * send them.                                                              *
- *                                                                         *
- * This program is distributed in the hope that it will be useful, but     *
- * WITHOUT ANY WARRANTY; without even the implied warranty of              *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU       *
- * General Public License for more details (                               *
- * http://www.gnu.org/copyleft/gpl.html ).                                 *
- *                                                                         *
- ***************************************************************************/
-
-/* $Id$ */
-
-#include "filespace.h"
-
-#include <string.h>
-
-/* Assumes space for fs has already been allocated */
-int filespace_init(struct filespace *fs, int initial_size) {
-  
-  memset(fs, 0, sizeof(struct filespace));
-  if (initial_size == 0)
-    initial_size = 1024;
-  fs->current_alloc = initial_size;
-  fs->str = (char *) malloc(fs->current_alloc);
-  if (!fs->str) return -1;
-  fs->str[0] = '\0';
-  fs->pos = fs->str;
-  return 0;
-}
-
-/* Used when you want to start over with a filespace you have been
-   using (it sets the length to zero and the pointers to the beginning
-   of memory , etc */
-int fs_clear(struct filespace *fs) {
-  fs->current_size = 0;
-  fs->pos = fs->str;
-  fs->str[0] = '\0'; /* Not necessary, possible help with debugging */
-  return 0;
-}
-
-
-int fs_free(struct filespace *fs) {
-  if (fs->str) free(fs->str);
-  fs->current_alloc = fs->current_size = 0;
-  fs->pos = fs->str = NULL;
-  return 0;
-}
-
-/* Prepend an n-char string to a filespace */
-int fs_prepend(char *str, int len, struct filespace *fs)  {
-char *tmpstr;
-
-if (len < 0) return -1;
-if (len == 0) return 0;
-
-  if (fs->current_alloc - fs->current_size < len + 2) {
-    fs->current_alloc = (int) (fs->current_alloc * 1.4 + 1 );
-    fs->current_alloc += 100 + len;
-    tmpstr = (char *) malloc(fs->current_alloc);
-    if (!tmpstr)
-      return -1;
-    memcpy(tmpstr, fs->str, fs->current_size);
-    fs->pos = (fs->pos - fs->str) + tmpstr;
-    if (fs->str) free(fs->str);
-    fs->str = tmpstr; 
-  }
-  if (fs->current_size > 0)   
-    memmove(fs->str + len, fs->str, fs->current_size);
-  memcpy(fs->str, str, len);
-
-  fs->current_size += len;
-  fs->str[fs->current_size] = '\0';
-  return 0;
-}
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/nsock/src/filespace.h b/nsock/src/filespace.h
deleted file mode 100644 (file)
index 9ea385b..0000000
+++ /dev/null
@@ -1,181 +0,0 @@
-
-/***************************************************************************
- * filespace.h -- a simple mechanism for storing dynamic amounts of data   *
- * in a simple to use, and quick to append-to structure.                   *
- *                                                                         *
- ***********************IMPORTANT NSOCK LICENSE TERMS***********************
- *                                                                         *
- * The nsock parallel socket event library is (C) 1999-2004 Insecure.Com   *
- * LLC This library is free software; you may redistribute and/or          *
- * modify it under the terms of the GNU General Public License as          *
- * published by the Free Software Foundation; Version 2.  This guarantees  *
- * your right to use, modify, and redistribute this software under certain *
- * conditions.  If this license is unacceptable to you, Insecure.Com LLC   *
- * may be willing to sell alternative licenses (contact                    *
- * [email protected] ).                                                   *
- *                                                                         *
- * As a special exception to the GPL terms, Insecure.Com LLC grants        *
- * permission to link the code of this program with any version of the     *
- * OpenSSL library which is distributed under a license identical to that  *
- * listed in the included Copying.OpenSSL file, and distribute linked      *
- * combinations including the two. You must obey the GNU GPL in all        *
- * respects for all of the code used other than OpenSSL.  If you modify    *
- * this file, you may extend this exception to your version of the file,   *
- * but you are not obligated to do so.                                     *
- *                                                                         * 
- * If you received these files with a written license agreement stating    *
- * terms other than the (GPL) terms above, then that alternative license   *
- * agreement takes precedence over this comment.                          *
- *                                                                         *
- * Source is provided to this software because we believe users have a     *
- * right to know exactly what a program is going to do before they run it. *
- * This also allows you to audit the software for security holes (none     *
- * have been found so far).                                                *
- *                                                                         *
- * Source code also allows you to port Nmap to new platforms, fix bugs,    *
- * and add new features.  You are highly encouraged to send your changes   *
- * to [email protected] for possible incorporation into the main         *
- * distribution.  By sending these changes to Fyodor or one the            *
- * insecure.org development mailing lists, it is assumed that you are      *
- * offering Fyodor and Insecure.Com LLC the unlimited, non-exclusive right *
- * to reuse, modify, and relicense the code.  Nmap will always be          *
- * available Open Source, but this is important because the inability to   *
- * relicense code has caused devastating problems for other Free Software  *
- * projects (such as KDE and NASM).  We also occasionally relicense the    *
- * code to third parties as discussed above.  If you wish to specify       *
- * special license conditions of your contributions, just say so when you  *
- * send them.                                                              *
- *                                                                         *
- * This program is distributed in the hope that it will be useful, but     *
- * WITHOUT ANY WARRANTY; without even the implied warranty of              *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU       *
- * General Public License for more details (                               *
- * http://www.gnu.org/copyleft/gpl.html ).                                 *
- *                                                                         *
- ***************************************************************************/
-
-/* $Id$ */
-
-#ifndef FILESPACE_H
-#define FILESPACE_H
-
-#ifdef HAVE_CONFIG_H
-#include "nsock_config.h"
-#include "nbase_config.h"
-#endif
-
-#ifdef WIN32
-#include "nbase_winconfig.h"
-#endif
-
-#include <stdlib.h>
-#include <stdarg.h>
-#if HAVE_STRING_H
-#include <string.h>
-#endif
-#if HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#include "nsock_utils.h"
-
-#define FILESPACE_LENGTH(fs) ((fs)->current_size)
-#define FILESPACE_STR(fs) ((fs)->str)
-
-struct filespace {
-  int current_size;
-  int current_alloc;
-  char *pos; /* Current position in the filespace */
-  char *str;
-};
-
-/* If you want to express a length, use fscat() */
-static inline int fs_rputs(const char *str, struct filespace *fs) {
-  char *new_str;
-  int len = (int) strlen(str);
-
-  if (len + fs->current_size + 1 > fs->current_alloc) {
-    fs->current_alloc =  MAX(fs->current_size * 2, fs->current_size + len  + 1000);
-    new_str = (char *) malloc(fs->current_alloc);
-    memcpy(new_str, fs->str, fs->current_size);
-    fs->pos = (fs->pos - fs->str) + new_str;
-    if (fs->str)  
-      free(fs->str);
-    fs->str = new_str;
-  }
-  memcpy(fs->str + fs->current_size, str, len);
-  fs->current_size += len;
-  fs->str[fs->current_size] = '\0';
-  return 0;
-}
-
-
-static inline int fs_rvputs(struct filespace *fs,...)
-{
-    va_list args;
-    const char *x;
-
-    va_start(args, fs);
-    for (;;) {
-        x = va_arg(args, const char *);
-        if (x == NULL)
-            break;
-        if (fs_rputs(x,fs) == -1) {
-          va_end(args);
-          return -1;
-        }
-    }
-    va_end(args);
-
-    return 1;
-}
-
-/* Concatenate a string to the end of a filespace */
-static inline int fscat(struct filespace *fs, const char *str, int len)  {
-char *tmpstr;
-
-if (len < 0) return -1;
-if (len == 0) return 0;
-
-// printf("fscat: current_alloc=%d; current_size=%d; len=%d\n", fs->current_alloc, fs->current_size, len);
-
-  if (fs->current_alloc - fs->current_size < len + 2) {
-    fs->current_alloc = (int) (fs->current_alloc * 1.4 + 1 );
-    fs->current_alloc += 100 + len;
-    tmpstr = (char *) malloc(fs->current_alloc);
-    if (!tmpstr)
-      return -1;
-    memcpy(tmpstr, fs->str, fs->current_size);
-    fs->pos = (fs->pos - fs->str) + tmpstr;
-    if (fs->str) free(fs->str);
-    fs->str = tmpstr; 
-  }
-  memcpy(fs->str + fs->current_size, str, len);
-
-  fs->current_size += len;
-  fs->str[fs->current_size] = '\0';
-  return 0;
-}
-
-static inline int fs_rputc(int ch, struct filespace *fs) {
-char s[2];
-
-if (fs->current_size + 2 <= fs->current_alloc) {
-  fs->str[fs->current_size] = ch;
-  fs->current_size++;
-  fs->str[fs->current_size] = '\0';
-} /* otherwise we use the ueber-technique of letting fscat handle it ...
-     umm actually I don't know why we don't do this in all cases ... */
- else {
-   s[0] = ch;
-   s[1] = '\0';
-   fscat(fs, s, 1);
- }
-return 0;
-}
-
-int fs_free(struct filespace *fs);
-int filespace_init(struct filespace *fs, int initial_size);
-int fs_clear(struct filespace *fs);
-int fs_prepend(char *str, int len, struct filespace *fs);
-#endif /* FILESPACE_H */
-
diff --git a/nsock/src/gh_list.c b/nsock/src/gh_list.c
deleted file mode 100644 (file)
index 8b9d697..0000000
+++ /dev/null
@@ -1,395 +0,0 @@
-
-/***************************************************************************
- * gh_list.c -- a simple doubly-linked list implementation with a very     *
- * heavy focus on efficiency.                                              *
- *                                                                         *
- ***********************IMPORTANT NSOCK LICENSE TERMS***********************
- *                                                                         *
- * The nsock parallel socket event library is (C) 1999-2004 Insecure.Com   *
- * LLC This library is free software; you may redistribute and/or          *
- * modify it under the terms of the GNU General Public License as          *
- * published by the Free Software Foundation; Version 2.  This guarantees  *
- * your right to use, modify, and redistribute this software under certain *
- * conditions.  If this license is unacceptable to you, Insecure.Com LLC   *
- * may be willing to sell alternative licenses (contact                    *
- * [email protected] ).                                                   *
- *                                                                         *
- * As a special exception to the GPL terms, Insecure.Com LLC grants        *
- * permission to link the code of this program with any version of the     *
- * OpenSSL library which is distributed under a license identical to that  *
- * listed in the included Copying.OpenSSL file, and distribute linked      *
- * combinations including the two. You must obey the GNU GPL in all        *
- * respects for all of the code used other than OpenSSL.  If you modify    *
- * this file, you may extend this exception to your version of the file,   *
- * but you are not obligated to do so.                                     *
- *                                                                         * 
- * If you received these files with a written license agreement stating    *
- * terms other than the (GPL) terms above, then that alternative license   *
- * agreement takes precedence over this comment.                          *
- *                                                                         *
- * Source is provided to this software because we believe users have a     *
- * right to know exactly what a program is going to do before they run it. *
- * This also allows you to audit the software for security holes (none     *
- * have been found so far).                                                *
- *                                                                         *
- * Source code also allows you to port Nmap to new platforms, fix bugs,    *
- * and add new features.  You are highly encouraged to send your changes   *
- * to [email protected] for possible incorporation into the main         *
- * distribution.  By sending these changes to Fyodor or one the            *
- * insecure.org development mailing lists, it is assumed that you are      *
- * offering Fyodor and Insecure.Com LLC the unlimited, non-exclusive right *
- * to reuse, modify, and relicense the code.  Nmap will always be          *
- * available Open Source, but this is important because the inability to   *
- * relicense code has caused devastating problems for other Free Software  *
- * projects (such as KDE and NASM).  We also occasionally relicense the    *
- * code to third parties as discussed above.  If you wish to specify       *
- * special license conditions of your contributions, just say so when you  *
- * send them.                                                              *
- *                                                                         *
- * This program is distributed in the hope that it will be useful, but     *
- * WITHOUT ANY WARRANTY; without even the implied warranty of              *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU       *
- * General Public License for more details (                               *
- * http://www.gnu.org/copyleft/gpl.html ).                                 *
- *                                                                         *
- ***************************************************************************/
-
-/* $Id$ */
-
-#include "gh_list.h"
-
-#include <nbase.h>
-
-#if HAVE_STRING_H
-#include <string.h>
-#endif
-#if HAVE_STRINGS_H
-#include <strings.h>
-#endif
-
-#ifdef GH_LIST_MAIN
-int main(int argc, char *argv[]) {
-  gh_list lists[16];
-  gh_list_elem *current, *next;
-  int num = 0;
-  int ret;
-  int i;
-  
-  for(i=0; i < 16; i++)
-    gh_list_init(&lists[i]);
-  
-  for(num=25000; num < 50000; num++) {
-    for(i=0; i < 16; i++) {
-      gh_list_append(&lists[i], (void *) num);
-    }
-  }
-  
-  for(num=24999; num >= 0; num--) {
-    for(i=0; i < 16; i++) {
-      gh_list_prepend(&lists[i], (void *) num);
-    }
-  }
-  
-  for(num=0; num < 50000; num++) {
-    for(i=0; i < 16; i++) {
-      ret = (int) gh_list_pop(&lists[i]);
-      if (ret != num)
-       fatal("prepend_test: Bogus return value %d when expected %d\n", ret, num);
-    }
-  }
-  for(i=0; i < 16; i++) {
-    ret = (int) gh_list_pop(&lists[i]);
-    if (ret != 0)
-      fatal("Ret is bogus for list %d", i);
-  }
-
-  printf("Done with first set\n");
-
-  for(num=24999; num >= 0; num--) {
-    for(i=0; i < 16; i++) {
-      gh_list_prepend(&lists[i], (void *) num);
-    }
-  }
-
-  for(num=25000; num < 50000; num++) {
-    for(i=0; i < 16; i++) {
-      gh_list_append(&lists[i], (void *) num);
-    }
-  }
-  
-  for(num=0; num < 50000; num++) {
-    for(i=0; i < 16; i++) {
-      ret = (int) gh_list_pop(&lists[i]);
-      if (ret != num)
-       fatal("prepend_test: Bogus return value %d when expected %d\n", ret, num);
-    }
-  }
-
-  printf("Done with second set\n");
-  for(num=25000; num < 50000; num++) {
-    for(i=0; i < 16; i++) {
-      gh_list_append(&lists[i], (void *) num);
-    }
-  }
-  
-  for(num=24999; num >= 0; num--) {
-    for(i=0; i < 16; i++) {
-      gh_list_prepend(&lists[i], (void *) num);
-    }
-  }
-  
-  for(num=0; num < 50000; num++) {
-    for(i=0; i < 16; i++) {
-      ret = (int) gh_list_pop(&lists[i]);
-      if (ret != num)
-       fatal("prepend_test: Bogus return value %d when expected %d\n", ret, num);
-    }
-  }
-
-  printf("Done with third set ...\n");
-
-  for(num=24999; num >= 0; num--) {
-    for(i=0; i < 16; i++) {
-      gh_list_prepend(&lists[i], (void *) num);
-    }
-  }
-
-  for(num=25000; num < 50000; num++) {
-    for(i=0; i < 16; i++) {
-      gh_list_append(&lists[i], (void *) num);
-    }
-  }
-  
-  for(i=0; i < 16; i++) {  
-    num=0;
-    for(current = GH_LIST_FIRST_ELEM(&lists[i]); current; 
-       current = next) {
-      next = GH_LIST_ELEM_NEXT(current);
-      if ((int)GH_LIST_ELEM_DATA(current) != num)
-       fatal("Got %d when I expected %d\n", (int)GH_LIST_ELEM_DATA(current), num);
-      gh_list_remove_elem(&lists[i], current);
-      num++;
-    }
-    if (num != 50000)
-      fatal("Number is %d, even though %d was expected", num, 50000);
-
-    if (GH_LIST_COUNT(&lists[i]) != 0) {
-      fatal("List should be empty, but instead it has %d members!\n", GH_LIST_COUNT(&lists[i]));
-    }
-  }
-
-  printf("Done with fourth set, freeing buffers\n");
-  for(i=0; i < 16; i++) {
-    gh_list_free(&lists[i]);
-  }
-}
-#endif /* GH_LIST_MAIN */
-
-static inline struct gh_list_elem *get_free_buffer(struct gh_list *list) {
-  struct gh_list_elem *newelem;
-  int i;
-
-  if (!list->free) {
-    list->last_alloc *= 2;
-    list->free = (struct gh_list_elem *) safe_malloc(list->last_alloc * sizeof(struct gh_list_elem));
-    memset(list->free, 0, list->last_alloc * sizeof(struct gh_list_elem));
-    list->free->allocated = 1;
-    for(i=0; i < list->last_alloc - 1; i++) {
-      (list->free + i)->next = list->free + i + 1;
-    }   
-  }
-  newelem = list->free;
-  list->free = list->free->next;
-#ifndef NDEBUG
-  newelem->magic = GH_LIST_MAGIC;
-#endif
-  return newelem;
-}
-
-int gh_list_init(gh_list *newlist) {
-int i;
-if (!newlist) return -1;
-
-newlist->count = 0;
-newlist->first = newlist->last = NULL;
-newlist->last_alloc = 32;
-newlist->free = (struct gh_list_elem *) safe_malloc(newlist->last_alloc * sizeof(struct gh_list_elem));
-memset(newlist->free, 0, newlist->last_alloc * sizeof(struct gh_list_elem));
-newlist->free->allocated = 1;
- for(i=0; i < newlist->last_alloc - 1; i++) {
-   (newlist->free + i)->next = newlist->free + i + 1;
- }
- /* Not needed (newlist->free + newlist->last_alloc - 1)->next = NULL */
-#ifndef NDEBUG
-newlist->magic = GH_LIST_MAGIC;
-#endif
-return 0;
-}
-
-gh_list_elem *gh_list_append(gh_list *list, void *data) {
-  gh_list_elem *newelem; 
-  gh_list_elem *oldlast;
-
-  assert(list);
-  assert(list->magic == GH_LIST_MAGIC);
-  assert(list->count == 0 || (list->first && list->last));
-  assert(list->count != 0 || (list->first == NULL && list->last == NULL));
-
-  newelem = get_free_buffer(list);
-  oldlast = list->last;
-  if (oldlast) {
-    oldlast->next = newelem;
-    newelem->prev = oldlast;
-  } else newelem->prev = NULL;
-
-  newelem->next = NULL;
-  newelem->data = data;
-#ifndef NDEBUG
-  newelem->magic = GH_LIST_MAGIC;
-#endif
-  list->count++;
-  list->last = newelem;
-  if (list->count == 1)
-    list->first = newelem;    
-  return newelem;
-}
-
-gh_list_elem *gh_list_prepend(gh_list *list, void *data) {
-  gh_list_elem *newelem; 
-  gh_list_elem *oldfirst;
-
-  assert(list);
-  assert(list->magic == GH_LIST_MAGIC);
-  assert(list->count == 0 || (list->first && list->last));
-  assert(list->count != 0 || (list->first == NULL && list->last == NULL));
-
-  newelem = get_free_buffer(list);
-  oldfirst = list->first;
-  if (oldfirst) {
-    oldfirst->prev = newelem;
-    newelem->next = oldfirst;
-  } else newelem->next = NULL;
-  newelem->prev = NULL;
-  newelem->data = data;
-#ifndef NDEBUG
-  newelem->magic = GH_LIST_MAGIC;
-#endif
-  list->count++;
-  list->first = newelem;
-  if (list->count == 1)
-    list->last = newelem;    
-  return newelem;
-}
-
-void *gh_list_pop(gh_list *list) {
-  struct gh_list_elem *oldelem; 
-  assert(list);
-  assert(list->magic == GH_LIST_MAGIC);
-  assert(list->count == 0 || (list->first && list->last));
-  assert(list->count != 0 || (list->first == NULL && list->last == NULL));
-
-  oldelem = list->first;
-  if (!oldelem) return NULL;
-  list->first = list->first->next;  
-  if (list->first)
-    list->first->prev = NULL;
-  list->count--;
-  if (list->count < 2)
-    list->last = list->first;
-  oldelem->next = list->free;
-  list->free = oldelem;
-
-  return oldelem->data;
-}
-
-int gh_list_free(gh_list *list) {
-  struct gh_list_elem *current;
-  char *free_list[32];
-  int free_index = 0;
-  int i=0;
-
-  assert(list);
-  assert(list->magic == GH_LIST_MAGIC);
-  assert(list->count == 0 || (list->first && list->last));
-  assert(list->count != 0 || (list->first == NULL && list->last == NULL));
-
-#ifndef NDEBUG
-  list->magic++;
-#endif
-  for(current = list->first; current; current = current->next) {  
-#   ifndef NDEBUG
-      current->magic++;
-#   endif
-    if (current->allocated) {
-      assert(free_index < 32); 
-      free_list[free_index++] = (char *) current;
-    }
-  }
-
-  for(current = list->free; current; current = current->next)
-    if (current->allocated) {    
-      assert(free_index < 32);
-      free_list[free_index++] = (char *) current;
-    }
-
-  for(i=0; i < free_index; i++)
-    free(free_list[i]);
-  return 0;
-}
-
-int gh_list_remove_elem(gh_list *list, gh_list_elem *elem) {
-  assert(elem);
-  assert(elem->magic == GH_LIST_MAGIC);
-  assert(list);
-  assert(list->magic == GH_LIST_MAGIC);
-  assert(list->count == 0 || (list->first && list->last));
-  assert(list->count != 0 || (list->first == NULL && list->last == NULL));
-
-  if (elem->prev) {
-    elem->prev->next = elem->next;
-  } else {
-    assert(list->first == elem);
-    list->first = elem->next;
-  }
-
-  if (elem->next) {
-    elem->next->prev = elem->prev;
-  } else {
-    assert(list->last == elem);
-    list->last = elem->prev;
-  }
-
-#ifndef NDEBUG
-  elem->magic++;
-#endif
-
-  elem->next = list->free;
-  list->free = elem;
-
-  list->count--;
-  return 0;
-}
-
-int gh_list_remove(gh_list *list, void *data) {
-  struct gh_list_elem *current;
-
-  assert(list);
-  assert(list->magic == GH_LIST_MAGIC);
-  assert(list->count == 0 || (list->first && list->last));
-  assert(list->count != 0 || (list->first == NULL && list->last == NULL));
-
-  for(current = list->first; current; current = current->next) {
-    if (current->data == data)
-      return gh_list_remove_elem(list, current);
-  }
-  return -1;
-}
-
-
-
-
-
-
-
-
-
diff --git a/nsock/src/gh_list.h b/nsock/src/gh_list.h
deleted file mode 100644 (file)
index 49e6071..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-
-/***************************************************************************
- * gh_list.h -- a simple doubly-linked list implementation with a very     *
- * heavy focus on efficiency.                                              *
- *                                                                         *
- ***********************IMPORTANT NSOCK LICENSE TERMS***********************
- *                                                                         *
- * The nsock parallel socket event library is (C) 1999-2004 Insecure.Com   *
- * LLC This library is free software; you may redistribute and/or          *
- * modify it under the terms of the GNU General Public License as          *
- * published by the Free Software Foundation; Version 2.  This guarantees  *
- * your right to use, modify, and redistribute this software under certain *
- * conditions.  If this license is unacceptable to you, Insecure.Com LLC   *
- * may be willing to sell alternative licenses (contact                    *
- * [email protected] ).                                                   *
- *                                                                         *
- * As a special exception to the GPL terms, Insecure.Com LLC grants        *
- * permission to link the code of this program with any version of the     *
- * OpenSSL library which is distributed under a license identical to that  *
- * listed in the included Copying.OpenSSL file, and distribute linked      *
- * combinations including the two. You must obey the GNU GPL in all        *
- * respects for all of the code used other than OpenSSL.  If you modify    *
- * this file, you may extend this exception to your version of the file,   *
- * but you are not obligated to do so.                                     *
- *                                                                         * 
- * If you received these files with a written license agreement stating    *
- * terms other than the (GPL) terms above, then that alternative license   *
- * agreement takes precedence over this comment.                          *
- *                                                                         *
- * Source is provided to this software because we believe users have a     *
- * right to know exactly what a program is going to do before they run it. *
- * This also allows you to audit the software for security holes (none     *
- * have been found so far).                                                *
- *                                                                         *
- * Source code also allows you to port Nmap to new platforms, fix bugs,    *
- * and add new features.  You are highly encouraged to send your changes   *
- * to [email protected] for possible incorporation into the main         *
- * distribution.  By sending these changes to Fyodor or one the            *
- * insecure.org development mailing lists, it is assumed that you are      *
- * offering Fyodor and Insecure.Com LLC the unlimited, non-exclusive right *
- * to reuse, modify, and relicense the code.  Nmap will always be          *
- * available Open Source, but this is important because the inability to   *
- * relicense code has caused devastating problems for other Free Software  *
- * projects (such as KDE and NASM).  We also occasionally relicense the    *
- * code to third parties as discussed above.  If you wish to specify       *
- * special license conditions of your contributions, just say so when you  *
- * send them.                                                              *
- *                                                                         *
- * This program is distributed in the hope that it will be useful, but     *
- * WITHOUT ANY WARRANTY; without even the implied warranty of              *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU       *
- * General Public License for more details (                               *
- * http://www.gnu.org/copyleft/gpl.html ).                                 *
- *                                                                         *
- ***************************************************************************/
-
-/* $Id$ */
-
-#ifndef GH_LIST_H
-#define GH_LIST_H
-
-#ifdef HAVE_CONFIG_H
-#include "nsock_config.h"
-#include "nbase_config.h"
-#endif
-
-#ifdef WIN32
-#include "nbase_winconfig.h"
-#endif
-
-#include "error.h"
-#include "nsock_utils.h"
-#include <assert.h>
-
-#define GH_LIST_MAGIC 0xBADFACE
-
-/* Take a LIST ELEMENT (not just the data) and return the next one */
-#define GH_LIST_ELEM_NEXT(x)  ((x)->next)
-/* Same as above but return the previous element */
-#define GH_LIST_ELEM_PREV(x)  ((x)->prev)
-/* Take a LIST (not a list element) and return the first element */
-#define GH_LIST_FIRST_ELEM(x) ((x)->first)
-/* Same as above but return the last element */
-#define GH_LIST_LAST_ELEM(x)  ((x)->last)
-/* Obtain the actual data stored in an element */
-#define GH_LIST_ELEM_DATA(x)  ((x)->data)
-/* Obtain the number of elements in a list */
-#define GH_LIST_COUNT(x)      ((x)->count)
-
-typedef struct gh_list_elem {
-  void *data;
-  struct gh_list_elem *next;
-  struct gh_list_elem *prev; 
-  int allocated; /* nonzero if this element was the first (or only) in a group
-                   that was allocated.  This means we can safely free() it as
-                   long as we are OK with freeing others that were freed 
-                   with it ... */
-#ifndef NDEBUG
-  unsigned long magic;
-#endif
-} gh_list_elem;
-
-typedef struct gh_list {
-  int count; /* Number of elements in the list */  
-  struct gh_list_elem *first;
-  struct gh_list_elem *last;
-  struct gh_list_elem *free; /* Instead of free()ing elements when something is                                removed from the list, we stick them here 
-                                 for the next insert. */
-  int last_alloc; /* The number of list elements in the most recent malloc */
-#ifndef NDEBUG
-  unsigned long magic;
-#endif
-} gh_list;
-
-
-int gh_list_init(gh_list *newlist);
-gh_list_elem *gh_list_append(gh_list *list, void *data);
-gh_list_elem *gh_list_prepend(gh_list *list, void *data);
-void *gh_list_pop(gh_list *list);
-int gh_list_remove(gh_list *list, void *data);
-int gh_list_free(gh_list *list);
-int gh_list_remove_elem(gh_list *list, gh_list_elem *elem);
-
-
-#endif /* GH_LIST_H */
diff --git a/nsock/src/install-sh b/nsock/src/install-sh
deleted file mode 100644 (file)
index ebc6691..0000000
+++ /dev/null
@@ -1,250 +0,0 @@
-#! /bin/sh
-#
-# install - install a program, script, or datafile
-# This comes from X11R5 (mit/util/scripts/install.sh).
-#
-# Copyright 1991 by the Massachusetts Institute of Technology
-#
-# Permission to use, copy, modify, distribute, and sell this software and its
-# documentation for any purpose is hereby granted without fee, provided that
-# the above copyright notice appear in all copies and that both that
-# copyright notice and this permission notice appear in supporting
-# documentation, and that the name of M.I.T. not be used in advertising or
-# publicity pertaining to distribution of the software without specific,
-# written prior permission.  M.I.T. makes no representations about the
-# suitability of this software for any purpose.  It is provided "as is"
-# without express or implied warranty.
-#
-# Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
-# when there is no Makefile.
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch.  It can only install one file at a time, a restriction
-# shared with many OS's install programs.
-
-
-# set DOITPROG to echo to test this script
-
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
-
-
-# put in absolute paths if you don't have them in your path; or use env. vars.
-
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
-
-transformbasename=""
-transform_arg=""
-instcmd="$mvprog"
-chmodcmd="$chmodprog 0755"
-chowncmd=""
-chgrpcmd=""
-stripcmd=""
-rmcmd="$rmprog -f"
-mvcmd="$mvprog"
-src=""
-dst=""
-dir_arg=""
-
-while [ x"$1" != x ]; do
-    case $1 in
-       -c) instcmd="$cpprog"
-           shift
-           continue;;
-
-       -d) dir_arg=true
-           shift
-           continue;;
-
-       -m) chmodcmd="$chmodprog $2"
-           shift
-           shift
-           continue;;
-
-       -o) chowncmd="$chownprog $2"
-           shift
-           shift
-           continue;;
-
-       -g) chgrpcmd="$chgrpprog $2"
-           shift
-           shift
-           continue;;
-
-       -s) stripcmd="$stripprog"
-           shift
-           continue;;
-
-       -t=*) transformarg=`echo $1 | sed 's/-t=//'`
-           shift
-           continue;;
-
-       -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
-           shift
-           continue;;
-
-       *)  if [ x"$src" = x ]
-           then
-               src=$1
-           else
-               # this colon is to work around a 386BSD /bin/sh bug
-               :
-               dst=$1
-           fi
-           shift
-           continue;;
-    esac
-done
-
-if [ x"$src" = x ]
-then
-       echo "install:  no input file specified"
-       exit 1
-else
-       true
-fi
-
-if [ x"$dir_arg" != x ]; then
-       dst=$src
-       src=""
-       
-       if [ -d $dst ]; then
-               instcmd=:
-       else
-               instcmd=mkdir
-       fi
-else
-
-# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad 
-# if $src (and thus $dsttmp) contains '*'.
-
-       if [ -f $src -o -d $src ]
-       then
-               true
-       else
-               echo "install:  $src does not exist"
-               exit 1
-       fi
-       
-       if [ x"$dst" = x ]
-       then
-               echo "install:  no destination specified"
-               exit 1
-       else
-               true
-       fi
-
-# If destination is a directory, append the input filename; if your system
-# does not like double slashes in filenames, you may need to add some logic
-
-       if [ -d $dst ]
-       then
-               dst="$dst"/`basename $src`
-       else
-               true
-       fi
-fi
-
-## this sed command emulates the dirname command
-dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
-
-# Make sure that the destination directory exists.
-#  this part is taken from Noah Friedman's mkinstalldirs script
-
-# Skip lots of stat calls in the usual case.
-if [ ! -d "$dstdir" ]; then
-defaultIFS='   
-'
-IFS="${IFS-${defaultIFS}}"
-
-oIFS="${IFS}"
-# Some sh's can't handle IFS=/ for some reason.
-IFS='%'
-set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
-IFS="${oIFS}"
-
-pathcomp=''
-
-while [ $# -ne 0 ] ; do
-       pathcomp="${pathcomp}${1}"
-       shift
-
-       if [ ! -d "${pathcomp}" ] ;
-        then
-               $mkdirprog "${pathcomp}"
-       else
-               true
-       fi
-
-       pathcomp="${pathcomp}/"
-done
-fi
-
-if [ x"$dir_arg" != x ]
-then
-       $doit $instcmd $dst &&
-
-       if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
-       if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
-       if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
-       if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
-else
-
-# If we're going to rename the final executable, determine the name now.
-
-       if [ x"$transformarg" = x ] 
-       then
-               dstfile=`basename $dst`
-       else
-               dstfile=`basename $dst $transformbasename | 
-                       sed $transformarg`$transformbasename
-       fi
-
-# don't allow the sed command to completely eliminate the filename
-
-       if [ x"$dstfile" = x ] 
-       then
-               dstfile=`basename $dst`
-       else
-               true
-       fi
-
-# Make a temp file name in the proper directory.
-
-       dsttmp=$dstdir/#inst.$$#
-
-# Move or copy the file name to the temp name
-
-       $doit $instcmd $src $dsttmp &&
-
-       trap "rm -f ${dsttmp}" 0 &&
-
-# and set any options; do chmod last to preserve setuid bits
-
-# If any of these fail, we abort the whole thing.  If we want to
-# ignore errors from any of these, just make sure not to ignore
-# errors from the above "$doit $instcmd $src $dsttmp" command.
-
-       if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
-       if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
-       if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
-       if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
-
-# Now rename the file to the real destination.
-
-       $doit $rmcmd -f $dstdir/$dstfile &&
-       $doit $mvcmd $dsttmp $dstdir/$dstfile 
-
-fi &&
-
-
-exit 0
diff --git a/nsock/src/netutils.c b/nsock/src/netutils.c
deleted file mode 100644 (file)
index c9e3006..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-
-/***************************************************************************
- * netutils.c -- This contains some useful little network/socket related   *
- * utility functions.                                                      *
- *                                                                         *
- ***********************IMPORTANT NSOCK LICENSE TERMS***********************
- *                                                                         *
- * The nsock parallel socket event library is (C) 1999-2004 Insecure.Com   *
- * LLC This library is free software; you may redistribute and/or          *
- * modify it under the terms of the GNU General Public License as          *
- * published by the Free Software Foundation; Version 2.  This guarantees  *
- * your right to use, modify, and redistribute this software under certain *
- * conditions.  If this license is unacceptable to you, Insecure.Com LLC   *
- * may be willing to sell alternative licenses (contact                    *
- * [email protected] ).                                                   *
- *                                                                         *
- * As a special exception to the GPL terms, Insecure.Com LLC grants        *
- * permission to link the code of this program with any version of the     *
- * OpenSSL library which is distributed under a license identical to that  *
- * listed in the included Copying.OpenSSL file, and distribute linked      *
- * combinations including the two. You must obey the GNU GPL in all        *
- * respects for all of the code used other than OpenSSL.  If you modify    *
- * this file, you may extend this exception to your version of the file,   *
- * but you are not obligated to do so.                                     *
- *                                                                         * 
- * If you received these files with a written license agreement stating    *
- * terms other than the (GPL) terms above, then that alternative license   *
- * agreement takes precedence over this comment.                          *
- *                                                                         *
- * Source is provided to this software because we believe users have a     *
- * right to know exactly what a program is going to do before they run it. *
- * This also allows you to audit the software for security holes (none     *
- * have been found so far).                                                *
- *                                                                         *
- * Source code also allows you to port Nmap to new platforms, fix bugs,    *
- * and add new features.  You are highly encouraged to send your changes   *
- * to [email protected] for possible incorporation into the main         *
- * distribution.  By sending these changes to Fyodor or one the            *
- * insecure.org development mailing lists, it is assumed that you are      *
- * offering Fyodor and Insecure.Com LLC the unlimited, non-exclusive right *
- * to reuse, modify, and relicense the code.  Nmap will always be          *
- * available Open Source, but this is important because the inability to   *
- * relicense code has caused devastating problems for other Free Software  *
- * projects (such as KDE and NASM).  We also occasionally relicense the    *
- * code to third parties as discussed above.  If you wish to specify       *
- * special license conditions of your contributions, just say so when you  *
- * send them.                                                              *
- *                                                                         *
- * This program is distributed in the hope that it will be useful, but     *
- * WITHOUT ANY WARRANTY; without even the implied warranty of              *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU       *
- * General Public License for more details (                               *
- * http://www.gnu.org/copyleft/gpl.html ).                                 *
- *                                                                         *
- ***************************************************************************/
-
-/* $Id$ */
-
-#include "netutils.h"
-#include "error.h"
-
-#if WIN32
-#include "Winsock2.h"
-#endif
-
-#if HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#if HAVE_SYS_RESOURCE_H
-#include <sys/resource.h>
-#endif
-#if HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#if HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#if HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#if HAVE_FCNTL_H
-#include <fcntl.h>
-#endif
-
-static int netutils_debugging = 0;
-
-/* maximize the number of file descriptors (including sockets) allowed
-   for this process and return that maximum value (note -- you better
-   not actually open this many -- stdin, stdout, other files opened by
-   libraries you use, etc. all count toward this limit.  Leave a
-   little slack */
-
-int maximize_fdlimit() { 
-#ifndef WIN32
-
-struct rlimit r; 
-static int maxfds = -1;
-
-  if (maxfds > 0)
-    return maxfds;
-
-#if(defined(RLIMIT_NOFILE))
-  if (!getrlimit(RLIMIT_NOFILE, &r)) {
-    r.rlim_cur = r.rlim_max;
-    if (setrlimit(RLIMIT_NOFILE, &r))
-      if (netutils_debugging) perror("setrlimit RLIMIT_NOFILE failed");
-    if (!getrlimit(RLIMIT_NOFILE, &r)) {
-      maxfds = r.rlim_cur;
-      return maxfds;
-    } else return 0;
-  }
-#endif
-#if(defined(RLIMIT_OFILE) && !defined(RLIMIT_NOFILE))
-  if (!getrlimit(RLIMIT_OFILE, &r)) {
-    r.rlim_cur = r.rlim_max;
-    if (setrlimit(RLIMIT_OFILE, &r))
-      if (netutils_debugging) perror("setrlimit RLIMIT_OFILE failed");
-    if (!getrlimit(RLIMIT_OFILE, &r)) {
-      maxfds = r.rlim_cur;
-      return maxfds;
-    } else return 0;
-  }
-#endif
-#endif // !WIN32
-  return 0;
-}
-
-
-
-int nsock_unblock_socket(int sd) {
-#ifdef WIN32
-unsigned long one = 1;
-ioctlsocket (sd, FIONBIO, &one);
-#else
-int options;
-/*Unblock our socket to prevent recvfrom from blocking forever
-  on certain target ports. */
-options = O_NONBLOCK | fcntl(sd, F_GETFL);
-fcntl(sd, F_SETFL, options);
-#endif
-return 1;
-}
diff --git a/nsock/src/netutils.h b/nsock/src/netutils.h
deleted file mode 100644 (file)
index 1636145..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-
-/***************************************************************************
- * netutils.h -- This contains some useful little network/socket related   *
- * utility functions.                                                      *
- *                                                                         *
- ***********************IMPORTANT NSOCK LICENSE TERMS***********************
- *                                                                         *
- * The nsock parallel socket event library is (C) 1999-2004 Insecure.Com   *
- * LLC This library is free software; you may redistribute and/or          *
- * modify it under the terms of the GNU General Public License as          *
- * published by the Free Software Foundation; Version 2.  This guarantees  *
- * your right to use, modify, and redistribute this software under certain *
- * conditions.  If this license is unacceptable to you, Insecure.Com LLC   *
- * may be willing to sell alternative licenses (contact                    *
- * [email protected] ).                                                   *
- *                                                                         *
- * As a special exception to the GPL terms, Insecure.Com LLC grants        *
- * permission to link the code of this program with any version of the     *
- * OpenSSL library which is distributed under a license identical to that  *
- * listed in the included Copying.OpenSSL file, and distribute linked      *
- * combinations including the two. You must obey the GNU GPL in all        *
- * respects for all of the code used other than OpenSSL.  If you modify    *
- * this file, you may extend this exception to your version of the file,   *
- * but you are not obligated to do so.                                     *
- *                                                                         * 
- * If you received these files with a written license agreement stating    *
- * terms other than the (GPL) terms above, then that alternative license   *
- * agreement takes precedence over this comment.                          *
- *                                                                         *
- * Source is provided to this software because we believe users have a     *
- * right to know exactly what a program is going to do before they run it. *
- * This also allows you to audit the software for security holes (none     *
- * have been found so far).                                                *
- *                                                                         *
- * Source code also allows you to port Nmap to new platforms, fix bugs,    *
- * and add new features.  You are highly encouraged to send your changes   *
- * to [email protected] for possible incorporation into the main         *
- * distribution.  By sending these changes to Fyodor or one the            *
- * insecure.org development mailing lists, it is assumed that you are      *
- * offering Fyodor and Insecure.Com LLC the unlimited, non-exclusive right *
- * to reuse, modify, and relicense the code.  Nmap will always be          *
- * available Open Source, but this is important because the inability to   *
- * relicense code has caused devastating problems for other Free Software  *
- * projects (such as KDE and NASM).  We also occasionally relicense the    *
- * code to third parties as discussed above.  If you wish to specify       *
- * special license conditions of your contributions, just say so when you  *
- * send them.                                                              *
- *                                                                         *
- * This program is distributed in the hope that it will be useful, but     *
- * WITHOUT ANY WARRANTY; without even the implied warranty of              *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU       *
- * General Public License for more details (                               *
- * http://www.gnu.org/copyleft/gpl.html ).                                 *
- *                                                                         *
- ***************************************************************************/
-
-/* $Id$ */
-
-#ifndef NETUTILS_H
-#define NETUTILS_H
-
-#ifdef HAVE_CONFIG_H
-#include "nsock_config.h"
-#include "nbase_config.h"
-#endif
-
-#ifdef WIN32
-#include "nbase_winconfig.h"
-#endif
-
-/* Take a file descriptor and put it in non-blocking mode */
-int nsock_unblock_socket(int sd);
-
-/* maximize the number of file descriptors (including sockets) allowed
-   for this process and return that maximum value (note -- you better
-   not actually open this many -- stdin, stdout, other files opened by
-   libraries you use, etc. all count toward this limit.  Leave a
-   little slack */
-int maximize_fdlimit();
-
-#endif /* NETUTILS_H */
-
diff --git a/nsock/src/nsock_config.h.in b/nsock/src/nsock_config.h.in
deleted file mode 100644 (file)
index e162406..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-/***************************************************************************
- * nsock_config.h.in -- Autoconf uses this template, combined with the     *
- * configure script knowledge about system capabilities, to build the      *
- * nsock_config.h include file that lets nsock better understand system    *
- *  particulars.                                                           *
- *                                                                         *
- ***********************IMPORTANT NSOCK LICENSE TERMS***********************
- *                                                                         *
- * The nsock parallel socket event library is (C) 1999-2004 Insecure.Com   *
- * LLC This library is free software; you may redistribute and/or          *
- * modify it under the terms of the GNU General Public License as          *
- * published by the Free Software Foundation; Version 2.  This guarantees  *
- * your right to use, modify, and redistribute this software under certain *
- * conditions.  If this license is unacceptable to you, Insecure.Com LLC   *
- * may be willing to sell alternative licenses (contact                    *
- * [email protected] ).                                                   *
- *                                                                         *
- * As a special exception to the GPL terms, Insecure.Com LLC grants        *
- * permission to link the code of this program with any version of the     *
- * OpenSSL library which is distributed under a license identical to that  *
- * listed in the included Copying.OpenSSL file, and distribute linked      *
- * combinations including the two. You must obey the GNU GPL in all        *
- * respects for all of the code used other than OpenSSL.  If you modify    *
- * this file, you may extend this exception to your version of the file,   *
- * but you are not obligated to do so.                                     *
- *                                                                         * 
- * If you received these files with a written license agreement stating    *
- * terms other than the (GPL) terms above, then that alternative license   *
- * agreement takes precedence over this comment.                          *
- *                                                                         *
- * Source is provided to this software because we believe users have a     *
- * right to know exactly what a program is going to do before they run it. *
- * This also allows you to audit the software for security holes (none     *
- * have been found so far).                                                *
- *                                                                         *
- * Source code also allows you to port Nmap to new platforms, fix bugs,    *
- * and add new features.  You are highly encouraged to send your changes   *
- * to [email protected] for possible incorporation into the main         *
- * distribution.  By sending these changes to Fyodor or one the            *
- * insecure.org development mailing lists, it is assumed that you are      *
- * offering Fyodor and Insecure.Com LLC the unlimited, non-exclusive right *
- * to reuse, modify, and relicense the code.  Nmap will always be          *
- * available Open Source, but this is important because the inability to   *
- * relicense code has caused devastating problems for other Free Software  *
- * projects (such as KDE and NASM).  We also occasionally relicense the    *
- * code to third parties as discussed above.  If you wish to specify       *
- * special license conditions of your contributions, just say so when you  *
- * send them.                                                              *
- *                                                                         *
- * This program is distributed in the hope that it will be useful, but     *
- * WITHOUT ANY WARRANTY; without even the implied warranty of              *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU       *
- * General Public License for more details (                               *
- * http://www.gnu.org/copyleft/gpl.html ).                                 *
- *                                                                         *
- ***************************************************************************/
-
-/* $Id$ */
-
-#undef HAVE_STRUCT_IP
-
-#undef IN_ADDR_DEEPSTRUCT
-
-#undef SPRINTF_RETURNS_STRING
-
diff --git a/nsock/src/nsock_connect.c b/nsock/src/nsock_connect.c
deleted file mode 100644 (file)
index d02364e..0000000
+++ /dev/null
@@ -1,313 +0,0 @@
-
-/***************************************************************************
- * nsock_connect.c -- This contains the functions for requesting TCP       *
- * connections from the nsock parallel socket event library                *
- ***********************IMPORTANT NSOCK LICENSE TERMS***********************
- *                                                                         *
- * The nsock parallel socket event library is (C) 1999-2004 Insecure.Com   *
- * LLC This library is free software; you may redistribute and/or          *
- * modify it under the terms of the GNU General Public License as          *
- * published by the Free Software Foundation; Version 2.  This guarantees  *
- * your right to use, modify, and redistribute this software under certain *
- * conditions.  If this license is unacceptable to you, Insecure.Com LLC   *
- * may be willing to sell alternative licenses (contact                    *
- * [email protected] ).                                                   *
- *                                                                         *
- * As a special exception to the GPL terms, Insecure.Com LLC grants        *
- * permission to link the code of this program with any version of the     *
- * OpenSSL library which is distributed under a license identical to that  *
- * listed in the included Copying.OpenSSL file, and distribute linked      *
- * combinations including the two. You must obey the GNU GPL in all        *
- * respects for all of the code used other than OpenSSL.  If you modify    *
- * this file, you may extend this exception to your version of the file,   *
- * but you are not obligated to do so.                                     *
- *                                                                         * 
- * If you received these files with a written license agreement stating    *
- * terms other than the (GPL) terms above, then that alternative license   *
- * agreement takes precedence over this comment.                          *
- *                                                                         *
- * Source is provided to this software because we believe users have a     *
- * right to know exactly what a program is going to do before they run it. *
- * This also allows you to audit the software for security holes (none     *
- * have been found so far).                                                *
- *                                                                         *
- * Source code also allows you to port Nmap to new platforms, fix bugs,    *
- * and add new features.  You are highly encouraged to send your changes   *
- * to [email protected] for possible incorporation into the main         *
- * distribution.  By sending these changes to Fyodor or one the            *
- * insecure.org development mailing lists, it is assumed that you are      *
- * offering Fyodor and Insecure.Com LLC the unlimited, non-exclusive right *
- * to reuse, modify, and relicense the code.  Nmap will always be          *
- * available Open Source, but this is important because the inability to   *
- * relicense code has caused devastating problems for other Free Software  *
- * projects (such as KDE and NASM).  We also occasionally relicense the    *
- * code to third parties as discussed above.  If you wish to specify       *
- * special license conditions of your contributions, just say so when you  *
- * send them.                                                              *
- *                                                                         *
- * This program is distributed in the hope that it will be useful, but     *
- * WITHOUT ANY WARRANTY; without even the implied warranty of              *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU       *
- * General Public License for more details (                               *
- * http://www.gnu.org/copyleft/gpl.html ).                                 *
- *                                                                         *
- ***************************************************************************/
-
-/* $Id$ */
-
-#include "nsock.h"
-#include "nsock_internal.h"
-#include "netutils.h"
-
-#include <sys/types.h>
-#include <errno.h>
-#include <string.h>
-
-extern struct timeval nsock_tod;
-
-/* This does the actual logistics of requesting a TCP connection.  It is
- * shared by nsock_connect_tcp and nsock_connect_ssl */
-static void nsock_connect_internal(mspool *ms, msevent *nse, int proto,
-                                  struct sockaddr_storage *ss, size_t sslen,
-                                  unsigned short port)
-{
-
-  int res;
-  struct sockaddr_in *sin = (struct sockaddr_in *) ss;
-#if HAVE_IPV6
-  struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *) ss;
-#endif
-
-/* Now it is time to actually attempt the connection */
-  if ((nse->iod->sd = socket(sin->sin_family, 
-                            (proto == IPPROTO_UDP)? SOCK_DGRAM : SOCK_STREAM, 
-                            proto)) == -1) {
-    perror("Socket troubles");
-    nse->event_done = 1; nse->status = NSE_STATUS_ERROR; nse->errnum = socket_errno();
-  } else { 
-    nsock_unblock_socket(nse->iod->sd);
-    
-    if (sin->sin_family == AF_INET) {
-      sin->sin_port = htons(port);
-    } else {
-      assert(sin->sin_family == AF_INET6);
-#if HAVE_IPV6
-      sin6->sin6_port = htons(port);
-#else
-      fatal("IPv6 address passed to nsock_connect_* call, but nsock was not compiled w/IPv6 support");
-#endif
-    }
-
-    assert(sslen <= sizeof(nse->iod->peer));
-    memcpy(&nse->iod->peer, ss, sslen);
-    nse->iod->peerlen = sslen;
-
-    if ((res = connect(nse->iod->sd, (struct sockaddr *) ss, sslen)) != -1) {
-      nse->event_done = 1;
-      nse->status = NSE_STATUS_SUCCESS;
-    }
-    else {
-      int err = socket_errno();
-
-      if (proto != IPPROTO_TCP || (err != EINPROGRESS && err != EAGAIN)) {
-        nse->event_done = 1;
-        nse->status = NSE_STATUS_ERROR;
-        nse->errnum = err;
-      }
-    }
-  }
-}
-
-
-/* Request a TCP connection to another system (by IP address).  The
-   in_addr is normal network byte order, but the port number should be
-   given in HOST BYTE ORDER.  ss should be a sockaddr_storage,
-   sockaddr_in6, or sockaddr_in as appropriate (just like what you
-   would pass to connect).  sslen should be the sizeof the structure
-   you are passing in. */
-nsock_event_id nsock_connect_tcp(nsock_pool nsp, nsock_iod ms_iod, 
-                                nsock_ev_handler handler, int timeout_msecs, 
-                                void *userdata, struct sockaddr *saddr, 
-                                size_t sslen, unsigned short port) {
-
-  msiod *nsi = (msiod *) ms_iod;
-  mspool *ms = (mspool *) nsp;
-  msevent *nse;
-  struct sockaddr_storage *ss = (struct sockaddr_storage *) saddr;
-  
-  assert(nsi->state == NSIOD_STATE_INITIAL || nsi->state == NSIOD_STATE_UNKNOWN);
-
-  /* Just in case someone waits a long time and then does a new connect */
-  gettimeofday(&nsock_tod, NULL);
-  
-  nse = msevent_new(ms, NSE_TYPE_CONNECT, nsi, timeout_msecs, handler, userdata);
-  assert(nse);
-  
-  if (ms->tracelevel > 0)
-    nsock_trace(ms, "TCP connection requested to %s:%hi (IOD #%li) EID %li", 
-               inet_ntop_ez(ss, sslen), port, nsi->id, nse->id);
-  
-  /* Do the actual connect() */ 
-  nsock_connect_internal(ms, nse, IPPROTO_TCP, ss, sslen, port); 
-  nsp_add_event(ms, nse);
-  
-  return nse->id;
-}
-
-/* Request an SSL over TCP connection to another system (by IP
-   address).  The in_addr is normal network byte order, but the port
-   number should be given in HOST BYTE ORDER.  This function will call
-   back only after it has made the TCP connection AND done the initial
-   SSL negotiation.  From that point on, you use the normal read/write
-   calls and decryption will happen transparently. ss should be a
-   sockaddr_storage, sockaddr_in6, or sockaddr_in as appropriate (just
-   like what you would pass to connect).  sslen should be the sizeof
-   the structure you are passing in. */
-nsock_event_id nsock_connect_ssl(nsock_pool nsp, nsock_iod nsiod, 
-                                nsock_ev_handler handler, int timeout_msecs, 
-                                void *userdata, struct sockaddr *saddr, 
-                                size_t sslen, unsigned short port,
-                                nsock_ssl_session ssl_session) {
-
-#ifndef HAVE_OPENSSL
-  fatal("nsock_connect_ssl called - but nsock was built w/o SSL support.  QUITTING");
-  return (nsock_event_id) 0; /* UNREACHED */
-#else
-  struct sockaddr_storage *ss = (struct sockaddr_storage *) saddr;
-  msiod *nsi = (msiod *) nsiod;
-  mspool *ms = (mspool *) nsp;
-  msevent *nse;
-  static int ssl_initialized = 0;
-
-  /* Just in case someone waits a long time and then does a new connect */
-  gettimeofday(&nsock_tod, NULL);
-
-  if (!ssl_initialized) {  
-    Nsock_SSL_Init();
-    ssl_initialized = 1;
-  }
-  assert(nsi->state == NSIOD_STATE_INITIAL || nsi->state == NSIOD_STATE_UNKNOWN);
-  
-  nse = msevent_new(ms, NSE_TYPE_CONNECT_SSL, nsi, timeout_msecs, handler, 
-                   userdata);
-  assert(nse);
-  
-  // Set our SSL_SESSION so we can benefit from session-id reuse.
-  nsi_set_ssl_session(nsi, (SSL_SESSION *) ssl_session);
-  
-  if (ms->tracelevel > 0)
-    nsock_trace(ms, "SSL/TCP connection requested to %s:%hi (IOD #%li) EID %li", inet_ntop_ez(ss, sslen), port, nsi->id, nse->id);
-  
-  /* Do the actual connect() */ 
-  nsock_connect_internal(ms, nse, IPPROTO_TCP, ss, sslen, port); 
-  nsp_add_event(ms, nse);
-  
-  return nse->id;
-#endif /* HAVE_OPENSSL */
-}
-
-/* Request a UDP "connection" to another system (by IP address).  The
-   in_addr is normal network byte order, but the port number should be
-   given in HOST BYTE ORDER.  Since this is UDP, no packets are
-   actually sent.  The destination IP and port are just associated
-   with the nsiod (an actual OS connect() call is made).  You can then
-   use the normal nsock write calls on the socket.  There is no
-   timeout since this call always calls your callback at the next
-   opportunity.  The advantages to having a connected UDP socket (as
-   opposed to just specifying an address with sendto() are that we can
-   now use a consistent set of write/read calls for TCP/UDP, received
-   packets from the non-partner are automatically dropped by the OS,
-   and the OS can provide asynchronous errors (see Unix Network
-   Programming pp224).  ss should be a sockaddr_storage,
-   sockaddr_in6, or sockaddr_in as appropriate (just like what you
-   would pass to connect).  sslen should be the sizeof the structure
-   you are passing in. */
-nsock_event_id nsock_connect_udp(nsock_pool nsp, nsock_iod nsiod, 
-                                nsock_ev_handler handler, void *userdata, 
-                                struct sockaddr *saddr, size_t sslen, 
-                                unsigned short port) {
-
-msiod *nsi = (msiod *) nsiod;
-mspool *ms = (mspool *) nsp;
-msevent *nse;
-struct sockaddr_storage *ss = (struct sockaddr_storage *) saddr;
-
-assert(nsi->state == NSIOD_STATE_INITIAL || nsi->state == NSIOD_STATE_UNKNOWN);
-
-/* Just in case someone waits a long time and then does a new connect */
-gettimeofday(&nsock_tod, NULL);
-
-nse = msevent_new(ms, NSE_TYPE_CONNECT, nsi, -1, handler, userdata);
-assert(nse);
-
-if (ms->tracelevel > 0)
-  nsock_trace(ms, "UDP connection requested to %s:%hi (IOD #%li) EID %li", inet_ntop_ez(ss, sslen), port, nsi->id, nse->id);
-
- nsock_connect_internal(ms, nse, IPPROTO_UDP, ss, sslen, port);
- nsp_add_event(ms, nse);
-
- return nse->id;
-}
-
-/* Returns that host/port/protocol information for the last
-   communication (or comm. attempt) this nsi has been involved with.
-   By "involved" with I mean interactions like establishing (or trying
-   to) a connection or sending a UDP datagram through an unconnected
-   nsock_iod.  AF is the address family (AF_INET or AF_INET6), Protocl
-   is IPPROTO_TCP or IPPROTO_UDP.  Pass NULL for information you do
-   not need.  If ANY of the information you requested is not
-   available, 0 will be returned and the unavailable sockets are
-   zeroed.  If protocol or af is requested but not available, it will
-   be set to -1 (and 0 returned).  The pointers you pass in must be
-   NULL or point to allocated address space.  The sockaddr members
-   should actually be sockaddr_storage, sockaddr_in6, or sockaddr_in
-   with the socklen of them set appropriately (eg
-   sizeof(sockaddr_storage) if that is what you are passing). */
-int nsi_getlastcommunicationinfo(nsock_iod ms_iod, int *protocol,
-                                int *af, struct sockaddr *local, 
-                                struct sockaddr *remote, size_t socklen) {
-  msiod *nsi = (msiod *) ms_iod;
-  int ret = 1;
-  struct sockaddr_storage sock;
-  int slen = sizeof(struct sockaddr_storage);
-  int res;
-
-  assert(socklen > 0);
-
-  if (nsi->peerlen > 0) {
-    if (remote)
-      memcpy(remote, &(nsi->peer), MIN((unsigned)socklen, nsi->peerlen));
-    if (protocol) { 
-      *protocol = nsi->lastproto; 
-      if (*protocol == -1) res = 0; 
-    }
-    if (af) {
-      *af = ((struct sockaddr_in *) &nsi->peer)->sin_family;
-    }
-    if (local) {    
-      if (nsi->sd >= 0) {
-       res = getsockname(nsi->sd, (struct sockaddr *) &sock, &slen);
-       if (res == -1) {
-         memset(local, 0, socklen); 
-         ret = 0;
-       } else {
-         assert(slen > 0 );
-         memcpy(local, &sock, MIN((unsigned)slen, socklen));
-       }
-      } else {
-       memset(local, 0, socklen); 
-       ret = 0;
-      }
-    }
-  } else {
-    if (local || remote || protocol || af)
-      ret = 0;
-    if (remote) memset(remote, 0, socklen);
-    if (local) memset(local, 0, socklen);
-    if (protocol) *protocol = -1;
-    if (*af) *af = -1;
-  }
-  return ret;
-}
diff --git a/nsock/src/nsock_core.c b/nsock/src/nsock_core.c
deleted file mode 100644 (file)
index e2aec8f..0000000
+++ /dev/null
@@ -1,1001 +0,0 @@
-/***************************************************************************
- * nsock_core.c -- This contains the core engine routines for the nsock    *
- * parallel socket event library.                                          *
- *                                                                         *
- ***********************IMPORTANT NSOCK LICENSE TERMS***********************
- *                                                                         *
- * The nsock parallel socket event library is (C) 1999-2004 Insecure.Com   *
- * LLC This library is free software; you may redistribute and/or          *
- * modify it under the terms of the GNU General Public License as          *
- * published by the Free Software Foundation; Version 2.  This guarantees  *
- * your right to use, modify, and redistribute this software under certain *
- * conditions.  If this license is unacceptable to you, Insecure.Com LLC   *
- * may be willing to sell alternative licenses (contact                    *
- * [email protected] ).                                                   *
- *                                                                         *
- * As a special exception to the GPL terms, Insecure.Com LLC grants        *
- * permission to link the code of this program with any version of the     *
- * OpenSSL library which is distributed under a license identical to that  *
- * listed in the included Copying.OpenSSL file, and distribute linked      *
- * combinations including the two. You must obey the GNU GPL in all        *
- * respects for all of the code used other than OpenSSL.  If you modify    *
- * this file, you may extend this exception to your version of the file,   *
- * but you are not obligated to do so.                                     *
- *                                                                         * 
- * If you received these files with a written license agreement stating    *
- * terms other than the (GPL) terms above, then that alternative license   *
- * agreement takes precedence over this comment.                          *
- *                                                                         *
- * Source is provided to this software because we believe users have a     *
- * right to know exactly what a program is going to do before they run it. *
- * This also allows you to audit the software for security holes (none     *
- * have been found so far).                                                *
- *                                                                         *
- * Source code also allows you to port Nmap to new platforms, fix bugs,    *
- * and add new features.  You are highly encouraged to send your changes   *
- * to [email protected] for possible incorporation into the main         *
- * distribution.  By sending these changes to Fyodor or one the            *
- * insecure.org development mailing lists, it is assumed that you are      *
- * offering Fyodor and Insecure.Com LLC the unlimited, non-exclusive right *
- * to reuse, modify, and relicense the code.  Nmap will always be          *
- * available Open Source, but this is important because the inability to   *
- * relicense code has caused devastating problems for other Free Software  *
- * projects (such as KDE and NASM).  We also occasionally relicense the    *
- * code to third parties as discussed above.  If you wish to specify       *
- * special license conditions of your contributions, just say so when you  *
- * send them.                                                              *
- *                                                                         *
- * This program is distributed in the hope that it will be useful, but     *
- * WITHOUT ANY WARRANTY; without even the implied warranty of              *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU       *
- * General Public License for more details (                               *
- * http://www.gnu.org/copyleft/gpl.html ).                                 *
- *                                                                         *
- ***************************************************************************/
-
-/* $Id$ */
-
-#include "nsock_internal.h"
-#include "gh_list.h"
-#include "filespace.h"
-
-#include <assert.h>
-#if HAVE_ERRNO_H
-#include <errno.h>
-#endif
-#if HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#if HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#if HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
-#if HAVE_STRING_H
-#include <string.h>
-#endif
-
-#include "netutils.h"
-
-/* Msock time of day -- we update this at least once per
-   nsock_loop round (and after most calls that are likely to block).  
-   Other nsock files should grab this 
-*/
-struct timeval nsock_tod;
-
-
-/* Returns -1 (and sets ms->errno if there is an error so severe that
-   we might as well quit waiting and have nsock_loop() return an error */
-static int wait_for_events(mspool *ms, int msec_timeout) {
-
-  int event_msecs; /* Msecs before an event goes off */
-  int combined_msecs;
-  int sock_err = 0;
-  int socketno = 0;
-  struct timeval select_tv;
-  struct timeval *select_tv_p;
-
-  assert(msec_timeout >= -1);
-
-  if (ms->evl.events_pending == 0)
-    return 0; /* No need to wait on 0 events ... */
-
-  do {  
-    if (ms->evl.next_ev.tv_sec == 0) {
-      event_msecs = -1; /* None of the events specified a timeout */
-    } else {
-      event_msecs = MAX(0, TIMEVAL_NSEC_SUBTRACT(ms->evl.next_ev, nsock_tod));
-    }
-
-    /* We cast to unsigned because we want -1 to be very high (since it means 
-       no timeout) */
-    combined_msecs = MIN((unsigned) event_msecs, (unsigned) msec_timeout);
-    
-    // printf("wait_for_events: starting wait -- combined_msecs=%d\n", combined_msecs);
-    /* Set up the timeval pointer we will give to select() */
-    memset(&select_tv, 0, sizeof(select_tv));
-    if (combined_msecs > 0) {
-      select_tv.tv_sec = combined_msecs / 1000;
-      select_tv.tv_usec = (combined_msecs % 1000) * 1000;
-      select_tv_p = &select_tv;
-    } else if (combined_msecs == 0) {
-      /* we want the tv_sec and tv_usec to be zero -- but they already are from
-        bzero */
-      select_tv_p = &select_tv;
-    } else {
-      assert(combined_msecs == -1);
-      select_tv_p = NULL;
-    }
-    
-    /* Figure out whether there are any FDs in the sets, as @$@!$#
-       Windows returns WSAINVAL (10022) if you call a select() with no
-       FDs, even though the Linux man page says that doing so is a
-       good, reasonably portable way to sleep with subsecond
-       precision.  Sigh */
-    for(socketno = ms->mioi.max_sd; socketno >= 0; socketno--) {
-      if(FD_ISSET(socketno, &ms->mioi.fds_master_r) ||
-        FD_ISSET(socketno, &ms->mioi.fds_master_w) ||
-        FD_ISSET(socketno, &ms->mioi.fds_master_x))
-       break;
-      else ms->mioi.max_sd--;
-    }
-
-    if (ms->mioi.max_sd < 0) {
-      ms->mioi.results_left = 0;
-      if (combined_msecs > 0)
-       usleep(combined_msecs * 1000);
-    } else {
-
-      /* Set up the descriptors for select */
-      ms->mioi.fds_results_r = ms->mioi.fds_master_r;
-      ms->mioi.fds_results_w = ms->mioi.fds_master_w;
-      ms->mioi.fds_results_x = ms->mioi.fds_master_x;
-      
-      ms->mioi.results_left = select(ms->mioi.max_sd + 1, &ms->mioi.fds_results_r, &ms->mioi.fds_results_w, &ms->mioi.fds_results_x, select_tv_p);
-      if (ms->mioi.results_left == -1)
-       sock_err = socket_errno();
-    }
-
-    gettimeofday(&nsock_tod, NULL); /* Due to usleep or select delay */
-  } while (ms->mioi.results_left == -1 && sock_err == EINTR);
-  
-  if (ms->mioi.results_left == -1 && sock_err != EINTR) {
-    ms->errnum = sock_err;
-    return -1;
-  }
-  return 0;
-}
-
-
-  /* A handler function is defined for each of the main event types
-     (read, write, connect, timer, etc) -- the handler is called when
-     new information is available for the event.  The handler makes
-     any neccessary updates to the event based on any new information
-     available.  If the event becomes ready for delivery, the handler
-     sets nse->event_done and fills out the relevant event fields
-     (status, errnum) as applicable.  The handlers also take care of
-     event type specific teardown (such as clearing socket descriptors
-     from select/poll lists).  If event_done is not set, the handler
-     will be called again in the case of more information or an event
-     timeout */
-
-  /* The event type handlers -- the first three arguments of each are the same:
-     mspool *ms
-     msevent *nse -- the event we have new info on
-     enum nse_status -- The reason for the call, usually NSE_STATUS_SUCCESS 
-                        (which generally means a successful I/O call or 
-                       NSE_STATUS_TIMEOUT or NSE_STATUS_CANCELLED
-
-     Some of the event type handlers have other parameters, specific
-     to their needs.  All the handlers can assume that the calling
-     function has checked that select or poll said their descriptors
-     were readable/writeable (as appropriate).
-
-     The idea is that each handler will take care of the stuff that is 
-     specific to it and the calling function will handle the stuff that
-     can be generalized to dispatching/deleting/etc. all events.  But the
-     calling function may use type-specific info to determine whether
-     the handler should be called at all (to save CPU time).
-  */
-
-
-/* handle_connect_results assumes that select or poll have already
-   shown the descriptor to be active */
-void handle_connect_result(mspool *ms, msevent *nse, 
-                                 enum nse_status status)
-  {
-  int optval, optlen = sizeof(int);
-  char buf[1024];
-  msiod *iod = nse->iod;
-#if HAVE_OPENSSL
-  struct NsockSSLInfo *sslnfo;
-  int sslerr;
-  int sslconnect_inprogress = nse->type == NSE_TYPE_CONNECT_SSL && iod->ssl;
-#else
-  int sslconnect_inprogress = 0;
-#endif
-  int rc;
-  rc = 0;
-
-  if (status == NSE_STATUS_TIMEOUT || status == NSE_STATUS_CANCELLED) {
-    nse->status = status;
-    nse->event_done = 1;
-  } else if (sslconnect_inprogress) {
-    /* Do nothing */
-  } else if (status == NSE_STATUS_SUCCESS) {
-    /* First we want to determine whether the socket really is connected */
-    if (getsockopt(iod->sd, SOL_SOCKET, SO_ERROR, (char *) &optval, &optlen) != 0)
-      optval = socket_errno(); /* Stupid Solaris */
-    
-    switch(optval) {
-    case 0:
-#ifdef LINUX
-      if (!FD_ISSET(iod->sd, &ms->mioi.fds_results_r)) {
-       /* Linux goofiness -- We need to actually test that it is writeable */
-       rc = send(iod->sd, "", 0, 0);
-       
-       if (rc < 0 ) {
-         nse->status = NSE_STATUS_ERROR;
-         nse->errnum = ECONNREFUSED;
-       } else {
-         nse->status = NSE_STATUS_SUCCESS;
-       }
-      } else {
-       nse->status = NSE_STATUS_SUCCESS;
-      }
-#else
-      nse->status = NSE_STATUS_SUCCESS;
-#endif
-      break;
-    case ECONNREFUSED:
-    case EHOSTUNREACH:
-      nse->status = NSE_STATUS_ERROR;
-      nse->errnum = optval;
-      break;
-    case ENETDOWN:
-    case ENETUNREACH:
-    case ENETRESET:
-    case ECONNABORTED:
-    case ETIMEDOUT:
-    case EHOSTDOWN:
-    case ECONNRESET:
-      nse->status = NSE_STATUS_ERROR;
-      nse->errnum = optval;
-      break;
-    default:
-      snprintf(buf, sizeof(buf), "Strange connect error from %s (%d)", inet_ntop_ez(&iod->peer, iod->peerlen), optval);
-      perror(buf);
-      assert(0); /* I'd like for someone to report it */
-      break;
-    }
-
-
-    /* Now special code for the SSL case where the TCP connection was successful. */
-    if (nse->type == NSE_TYPE_CONNECT_SSL && 
-       nse->status == NSE_STATUS_SUCCESS) {
-#if HAVE_OPENSSL
-      sslnfo = Nsock_SSLGetInfo();
-      iod->ssl = SSL_new(sslnfo->ctx);
-      if (!iod->ssl)
-       fatal("SSL_new failed: %s", ERR_error_string(ERR_get_error(), NULL));
-
-      /* Associate our new SSL with the connected socket.  It will inherit
-        the non-blocking nature of the sd */
-      if (SSL_set_fd(iod->ssl, iod->sd) != 1) {
-       fatal("SSL_set_fd failed: %s", ERR_error_string(ERR_get_error(), NULL));
-      }
-      /* Event not done -- need to do SSL connect below */
-      nse->sslinfo.ssl_desire = SSL_ERROR_WANT_CONNECT;
-#endif
-    } else {
-      /* This is not an SSL connect (in which case we are always done), or
-        the TCP connect() underlying the SSL failed (in which case we are also
-        done */
-      nse->event_done = 1;
-    }
-  } else {
-    assert(0); /* Currently we only know about TIMEOUT and SUCCESS callbacks */
-  }
-
-  /* Clear the socket descriptors from all the lists -- we might
-     put it back on some of them in the SSL case */
-  if (iod->sd != -1) {  
-    FD_CLR(iod->sd, &ms->mioi.fds_master_r);
-    FD_CLR(iod->sd, &ms->mioi.fds_master_w);
-    FD_CLR(iod->sd, &ms->mioi.fds_master_x);
-    FD_CLR(iod->sd, &ms->mioi.fds_results_r);
-    FD_CLR(iod->sd, &ms->mioi.fds_results_w);
-    FD_CLR(iod->sd, &ms->mioi.fds_results_x);
-    
-    if (ms->mioi.max_sd == iod->sd)
-      ms->mioi.max_sd--;
-  }
-
-#if HAVE_OPENSSL
-  if (nse->type == NSE_TYPE_CONNECT_SSL && !nse->event_done) {
-    /* Lets now start/continue/finish the connect! */
-    if (iod->ssl_session) {    
-     rc = SSL_set_session(iod->ssl, iod->ssl_session);
-     if (rc == 0) { printf("Uh-oh: SSL_set_session() failed - please tell Fyodor\n"); }
-     iod->ssl_session = NULL; /* No need for this any more */
-    }
-    rc = SSL_connect(iod->ssl);
-    /* printf("DBG: SSL_connect()=%d", rc); */
-    if (rc == 1) {
-      /* Woop!  Connect is done! */
-      nse->event_done = 1;
-      nse->status = NSE_STATUS_SUCCESS;
-    } else {
-      sslerr = SSL_get_error(iod->ssl, rc);
-      if (rc == -1 && sslerr == SSL_ERROR_WANT_READ) {
-       nse->sslinfo.ssl_desire = sslerr;
-       FD_SET(iod->sd, &ms->mioi.fds_master_r);
-       ms->mioi.max_sd = MAX(ms->mioi.max_sd, iod->sd);
-      } else if  (rc == -1 && sslerr == SSL_ERROR_WANT_WRITE) {
-       nse->sslinfo.ssl_desire = sslerr;
-       FD_SET(iod->sd, &ms->mioi.fds_master_w);
-       ms->mioi.max_sd = MAX(ms->mioi.max_sd, iod->sd);
-      } else {
-       /* Unexpected error */
-       nse->event_done = 1;
-       nse->status = NSE_STATUS_ERROR;
-       nse->errnum = EIO;
-      }
-    }
-  }
-#endif
-
-  return;
-}
-
-void handle_write_result(mspool *ms, msevent *nse, 
-                              enum nse_status status)  
-{
-  int bytesleft;
-  char *str;
-  int res;
-  int err;
-  msiod *iod = nse->iod;
-
-  if (status == NSE_STATUS_TIMEOUT || status == NSE_STATUS_CANCELLED) {
-    nse->event_done = 1;
-    nse->status = status;
-  } else if (status == NSE_STATUS_SUCCESS) {
-    str = FILESPACE_STR(&nse->iobuf) + nse->writeinfo.written_so_far;
-    bytesleft = FILESPACE_LENGTH(&nse->iobuf) - nse->writeinfo.written_so_far;
-    assert(bytesleft > 0);
-#if HAVE_OPENSSL
-    if (iod->ssl)
-      res = SSL_write(iod->ssl, str, bytesleft);
-    else
-#endif
-      res = send(nse->iod->sd, str, bytesleft, 0);
-    if (res == bytesleft) {
-      nse->event_done = 1;
-      nse->status = NSE_STATUS_SUCCESS;
-    } else if (res >= 0) {
-      nse->writeinfo.written_so_far += res;      
-    } else {
-      assert(res == -1);
-      if (iod->ssl) {
-#if HAVE_OPENSSL
-       err = SSL_get_error(iod->ssl, res);
-       if (err == SSL_ERROR_WANT_READ || err == SSL_ERROR_WANT_WRITE ) {
-         nse->sslinfo.ssl_desire = err;
-       } else {
-         /* Unexpected error */
-         nse->event_done = 1;
-         nse->status = NSE_STATUS_ERROR;
-         nse->errnum = EIO;
-       }
-#endif
-      } else {
-       err = socket_errno();
-       if (err != EINTR && err != EAGAIN 
-#ifndef WIN32
-           && err != EBUSY
-#endif
-           ) {
-         nse->event_done = 1;
-         nse->status = NSE_STATUS_ERROR;
-         nse->errnum = err;
-       }
-      }
-    }
-  }
-
-  if (nse->event_done && nse->iod->sd != -1) {
-    if (!iod->ssl) {
-      FD_CLR(nse->iod->sd, &ms->mioi.fds_master_w);
-      FD_CLR(nse->iod->sd, &ms->mioi.fds_results_w);
-    } else if (iod->events_pending <= 1) {
-      FD_CLR(iod->sd, &ms->mioi.fds_master_r);
-      FD_CLR(iod->sd, &ms->mioi.fds_results_r);
-      FD_CLR(iod->sd, &ms->mioi.fds_master_w);
-      FD_CLR(iod->sd, &ms->mioi.fds_results_w);
-    }
-
-    /* Note -- I only want to decrement IOD if there are no other
-       events hinging on it.  For example, there could be a READ and
-       WRITE outstanding at once */
-    if (nse->iod->events_pending <= 1 && ms->mioi.max_sd == nse->iod->sd)
-      ms->mioi.max_sd--;
-  }
-
-  return;
-}
-
-void handle_timer_result(mspool *ms, msevent *nse, 
-                              enum nse_status status)  
-{
-
-  /* Ooh this is a hard job :) */
-
-  nse->event_done = 1;
-  nse->status = status;
-
-  return;
-}
-
-/* Returns -1 if an error, otherwise the number of newly written bytes */
-static int do_actual_read(mspool *ms, msevent *nse) {
-  char buf[8192];
-  int buflen = 0;
-  msiod *iod = nse->iod;
-  int err = 0;
-  int max_chunk = NSOCK_READ_CHUNK_SIZE;
-  int startlen = FILESPACE_LENGTH(&nse->iobuf);
-
-  if (nse->readinfo.read_type == NSOCK_READBYTES && nse->readinfo.num > max_chunk)
-    max_chunk = nse->readinfo.num;
-
-  if (!iod->ssl) {
-    /* Traditional read() - no SSL - using recv() because that works better on Windows */
-    do {
-      buflen = recv(iod->sd, buf, sizeof(buf), 0);
-      if (buflen == -1) err = socket_errno();
-      if (buflen > 0) {
-       if (fscat(&nse->iobuf, buf, buflen) == -1) {
-         nse->event_done = 1;
-         nse->status = NSE_STATUS_ERROR;
-         nse->errnum = ENOMEM;
-         return -1;
-       }
-
-       // Sometimes a service just spews and spews data.  So we return
-       // after a somewhat large amount to avoid monopolizing resources
-       // and avoid DOS attacks.
-       if (FILESPACE_LENGTH(&nse->iobuf) > max_chunk)
-         return FILESPACE_LENGTH(&nse->iobuf) - startlen;
-       
-       // No good reason to read again if we we were successful in the read but
-       // didn't fill up the buffer.  I'll insist on it being TCP too, because I
-       // think UDP might only give me one packet worth at a time (I dunno ...).
-       if (buflen > 0 && buflen < sizeof(buf) && iod->lastproto == IPPROTO_TCP)
-         return FILESPACE_LENGTH(&nse->iobuf) - startlen;
-      }
-    } while (buflen > 0 || (buflen == -1 && err == EINTR));
-
-    if (buflen == -1) {
-      if (err != EINTR && err != EAGAIN) {
-       nse->event_done = 1;
-       nse->status = NSE_STATUS_ERROR;
-       nse->errnum = err;
-       return -1;
-      }
-    }
-  } else {
-#if HAVE_OPENSSL
-    /* OpenSSL read */
-    while ((buflen = SSL_read(iod->ssl, buf, sizeof(buf))) > 0) {
-
-      if (fscat(&nse->iobuf, buf, buflen) == -1) {
-       nse->event_done = 1;
-       nse->status = NSE_STATUS_ERROR;
-       nse->errnum = ENOMEM;
-       return -1;
-      }
-      
-      // Sometimes a service just spews and spews data.  So we return
-      // after a somewhat large amount to avoid monopolizing resources
-      // and avoid DOS attacks.
-      if (FILESPACE_LENGTH(&nse->iobuf) > NSOCK_READ_CHUNK_SIZE)
-       return FILESPACE_LENGTH(&nse->iobuf) - startlen;
-    }
-
-    if (buflen == -1) {
-      err = SSL_get_error(iod->ssl, buflen);
-      if (err == SSL_ERROR_WANT_READ || err == SSL_ERROR_WANT_WRITE ) {
-       nse->sslinfo.ssl_desire = err;
-      } else {
-       /* Unexpected error */
-       nse->event_done = 1;
-       nse->status = NSE_STATUS_ERROR;
-       nse->errnum = EIO;
-       if (ms->tracelevel > 2)
-         nsock_trace(ms, "SSL_read() failed for reason %s on NSI %li", 
-                     ERR_reason_error_string(err), iod->id);
-       return -1;
-      }
-    }
-#endif /* HAVE_OPENSSL */
-  }
-  if (buflen == 0) {
-    nse->event_done = 1;
-    nse->eof = 1;
-    if (FILESPACE_LENGTH(&nse->iobuf) > 0) {
-      nse->status = NSE_STATUS_SUCCESS;
-      return FILESPACE_LENGTH(&nse->iobuf) - startlen;
-    } else {    
-      nse->status = NSE_STATUS_EOF;
-      return 0;
-    }
-  }
-
-  return FILESPACE_LENGTH(&nse->iobuf) - startlen;
-}
-
-
-void handle_read_result(mspool *ms, msevent *nse, 
-                              enum nse_status status)  
-{
-
-  unsigned int count, len;
-  char *str;
-  int rc;
-  msiod *iod = nse->iod;
-
-  if (status == NSE_STATUS_TIMEOUT) {
-    nse->event_done = 1;
-    if (FILESPACE_LENGTH(&nse->iobuf) > 0) {
-      nse->status = NSE_STATUS_SUCCESS;
-    } else {    
-      nse->status = NSE_STATUS_TIMEOUT;
-    }
-  } else if (status == NSE_STATUS_CANCELLED) {
-    nse->status = status;
-    nse->event_done = 1;
-  } else if (status == NSE_STATUS_SUCCESS) {
-    rc = do_actual_read(ms, nse);
-    /* printf("DBG: Just read %d new bytes%s.\n", rc, iod->ssl? "( SSL!)" : ""); */
-    if (rc > 0) {
-      /* We decide whether we have read enough to return */      
-      switch(nse->readinfo.read_type) {
-      case NSOCK_READ:
-       nse->status = NSE_STATUS_SUCCESS;
-       nse->event_done = 1;
-       break;
-      case NSOCK_READBYTES:
-       if (FILESPACE_LENGTH(&nse->iobuf) >= nse->readinfo.num) {
-         nse->status = NSE_STATUS_SUCCESS;
-         nse->event_done = 1;
-       } 
-       /* else we are not done */
-       break;
-      case NSOCK_READLINES:
-       /* Lets count the number of lines we have ... */
-       count = 0;
-       len = FILESPACE_LENGTH(&nse->iobuf) -1;
-       str = FILESPACE_STR(&nse->iobuf);
-       for(count=0; len >= 0; len--) {
-         if (str[len] == '\n') {
-           count++;
-           if ((int) count >= nse->readinfo.num)
-             break;
-         }
-       }
-       if ((int) count >= nse->readinfo.num) {
-         nse->event_done = 1;
-         nse->status = NSE_STATUS_SUCCESS;
-       } 
-       /* Else we are not done */
-       break;
-      default:
-       assert(0);
-       break; /* unreached */
-      }
-    } 
-  } else {
-    assert(0); /* Currently we only know about TIMEOUT, CANCELLED, and SUCCESS callbacks */
-  }
-  
-  /* If we asked for an event dispatch, we are done reading on the socket so 
-     we can take it off the descriptor list ... */
-  if (nse->event_done && iod->sd >= 0) {
-    /* Exception: If this is an SSL socket and there is another
-       pending event (such as a write), it might actually be waiting
-       on a read so we can't clear in that case */
-    if (!iod->ssl) {    
-      FD_CLR(iod->sd, &ms->mioi.fds_master_r);
-      FD_CLR(iod->sd, &ms->mioi.fds_results_r);
-    } else if (iod->events_pending <= 1) {
-      FD_CLR(iod->sd, &ms->mioi.fds_master_r);
-      FD_CLR(iod->sd, &ms->mioi.fds_results_r);
-      FD_CLR(iod->sd, &ms->mioi.fds_master_w);
-      FD_CLR(iod->sd, &ms->mioi.fds_results_w);
-    }
-
-    // Note -- I only want to decrement IOD if there are no other events hinging on it. 
-    // For example, there could be a READ and WRITE outstanding at once
-    if (iod->events_pending <= 1 && ms->mioi.max_sd == iod->sd)
-      ms->mioi.max_sd--;
-  }
-
-#if HAVE_OPENSSL
-  /* For SSL the type of listening we have to do varies.  I can't
-     clear the other type due to the possibility of a pending event
-     needing it */
-  if (iod->ssl && nse->event_done == 0) {  
-    if (nse->sslinfo.ssl_desire == SSL_ERROR_WANT_READ) {
-      FD_SET(iod->sd, &ms->mioi.fds_master_r);
-      ms->mioi.max_sd = MAX(ms->mioi.max_sd, iod->sd);
-    } else if (nse->sslinfo.ssl_desire == SSL_ERROR_WANT_WRITE) {
-      FD_SET(iod->sd, &ms->mioi.fds_master_w);
-      ms->mioi.max_sd = MAX(ms->mioi.max_sd, iod->sd);
-    }
-  }
-#endif /* HAVE_OPENSSL */
-  return;
-}
-
-  /* Iterate through all the event lists (such as 
-     connect_events, read_events, timer_events, etc) and take action
-     for those that have completed (due to timeout, i/o, etc) */
-
-static void iterate_through_event_lists(mspool *nsp) {
-    gh_list_elem *current, *next;
-    msevent *nse;
-    int match_r = 0, match_w = 0;
-#if HAVE_OPENSSL
-    int desire_r = 0, desire_w = 0;
-#endif
-    gh_list *event_lists[] = { &nsp->evl.connect_events,
-                               &nsp->evl.read_events,
-                               &nsp->evl.write_events,
-                               &nsp->evl.timer_events,
-                               0
-                             };
-    int current_list_idx;
-    nsp->evl.next_ev.tv_sec = 0; /* Clear it -- We will find the next
-                                  event as we go through the list */
-
-  /* We keep the events seperate because we want to handle them in the 
-     order: connect => read => write => timer for several reasons:
-     1) Makes sure we have gone through all the net i/o events before 
-        a timer expires (would be a shame to timeout after the data was 
-        available but before we delivered the events
-     2) The connect() results often lead to a read or write that can be 
-        processed in the same cycle.  In the same way, read() often 
-       leads to write().
-  */
-
-    /* foreach list */
-    for(current_list_idx = 0; event_lists[current_list_idx] != NULL;
-       current_list_idx++) {
-
-    /* foreach element in the list */
-      for(current = GH_LIST_FIRST_ELEM(event_lists[current_list_idx]);
-         current != NULL; current = next) {
-
-       nse = (msevent *) GH_LIST_ELEM_DATA(current);
-       if ( ! nse->event_done) {       
-         switch(nse->type) {
-         case NSE_TYPE_CONNECT:
-         case NSE_TYPE_CONNECT_SSL:
-           if (FD_ISSET(nse->iod->sd, &nsp->mioi.fds_results_r) ||
-               FD_ISSET(nse->iod->sd, &nsp->mioi.fds_results_w) ||
-               FD_ISSET(nse->iod->sd, &nsp->mioi.fds_results_x)) {
-             handle_connect_result(nsp, nse, NSE_STATUS_SUCCESS);
-           } 
-           if (!nse->event_done && nse->timeout.tv_sec &&
-               TIMEVAL_NSEC_SUBTRACT(nse->timeout, nsock_tod) <= 0) {
-             handle_connect_result(nsp, nse, NSE_STATUS_TIMEOUT);
-           }
-           break;
-           
-         case NSE_TYPE_READ:
-           match_r = FD_ISSET(nse->iod->sd, &nsp->mioi.fds_results_r);
-           match_w = FD_ISSET(nse->iod->sd, &nsp->mioi.fds_results_w);
-#if HAVE_OPENSSL
-           desire_r = nse->sslinfo.ssl_desire == SSL_ERROR_WANT_READ;
-           desire_w = nse->sslinfo.ssl_desire == SSL_ERROR_WANT_WRITE;
-           if (nse->iod->ssl && ((desire_r && match_r) || (desire_w && match_w)))
-              handle_read_result(nsp, nse, NSE_STATUS_SUCCESS);
-           else
-#endif
-           if (!nse->iod->ssl && match_r)
-             handle_read_result(nsp, nse, NSE_STATUS_SUCCESS);
-           
-           if (!nse->event_done && nse->timeout.tv_sec &&
-               TIMEVAL_NSEC_SUBTRACT(nse->timeout, nsock_tod) <= 0) {
-             handle_read_result(nsp, nse, NSE_STATUS_TIMEOUT);
-           }
-           break;
-           
-         case NSE_TYPE_WRITE:
-           match_r = FD_ISSET(nse->iod->sd, &nsp->mioi.fds_results_r);
-           match_w = FD_ISSET(nse->iod->sd, &nsp->mioi.fds_results_w);
-#if HAVE_OPENSSL
-           desire_r = nse->sslinfo.ssl_desire == SSL_ERROR_WANT_READ;
-           desire_w = nse->sslinfo.ssl_desire == SSL_ERROR_WANT_WRITE;
-           if (nse->iod->ssl && ((desire_r && match_r) || 
-                                 (desire_w && match_w)))
-             handle_write_result(nsp, nse, NSE_STATUS_SUCCESS);
-           else
-#endif
-           if (!nse->iod->ssl && match_w)
-             handle_write_result(nsp, nse, NSE_STATUS_SUCCESS);
-
-           if (!nse->event_done && nse->timeout.tv_sec &&
-               TIMEVAL_NSEC_SUBTRACT(nse->timeout, nsock_tod) <= 0) {
-             handle_write_result(nsp, nse, NSE_STATUS_TIMEOUT);
-           }
-           break;
-           
-         case NSE_TYPE_TIMER:
-           if (nse->timeout.tv_sec && 
-               TIMEVAL_NSEC_SUBTRACT(nse->timeout, nsock_tod) <= 0) {
-             handle_timer_result(nsp, nse, NSE_STATUS_SUCCESS);
-           }
-           break;
-           
-         default:
-           fatal("Event has unknown type (%d)", nse->type);
-           break; /* unreached */
-         }
-       }
-
-       if (nse->event_done) {
-         /* WooHoo!  The event is ready to be sent */
-         msevent_dispatch_and_delete(nsp, nse, 1);
-         next = GH_LIST_ELEM_NEXT(current);
-         gh_list_remove_elem(event_lists[current_list_idx], current);
-       } else {
-         next = GH_LIST_ELEM_NEXT(current);
-         /* Is this event the next-to-timeout? */
-         if (nse->timeout.tv_sec != 0) {
-           if (nsp->evl.next_ev.tv_sec == 0)
-             nsp->evl.next_ev = nse->timeout;
-           else if (TIMEVAL_NSEC_SUBTRACT(nsp->evl.next_ev, nse->timeout) > 0)
-             nsp->evl.next_ev = nse->timeout;
-         }
-       }
-      }
-    }
-}
-
-/* Here is the all important looping function that tells the event
-   engine to start up and begin processing events.  It will continue
-   until all events have been delivered (including new ones started
-   from event handlers), or the msec_timeout is reached, or a major
-   error has occured.  Use -1 if you don't want to set a maximum time
-   for it to run.  A timeout of 0 will return after 1 non-blocking
-   loop.  The nsock loop can be restarted again after it returns.  For
-   example you could do a series of 15 second runs, allowing you to do
-   other stuff between them */
-enum nsock_loopstatus nsock_loop(nsock_pool nsp, int msec_timeout) {
-mspool *ms = (mspool *) nsp;
-struct timeval loop_timeout;
-int msecs_left;
-unsigned long loopnum = 0;
-enum nsock_loopstatus quitstatus = NSOCK_LOOP_ERROR;
-
-gettimeofday(&nsock_tod, NULL);
-
- if (msec_timeout > 0) { 
-   TIMEVAL_NSEC_ADD(loop_timeout, nsock_tod, msec_timeout);
- } else if (msec_timeout < -1) {
-   ms->errnum = EINVAL;
-   return NSOCK_LOOP_ERROR;
- }
- msecs_left = msec_timeout;
- if (ms->tracelevel > 1) {
-   if (msec_timeout >= 0) {
-     nsock_trace(ms, "nsock_loop() started (timeout=%dms). %d events pending", msec_timeout, 
-                ms->evl.events_pending);
-   } else {
-     nsock_trace(ms, "nsock_loop() started (no timeout). %d events pending", ms->evl.events_pending);
-   }
- }
-
-while(1) {
-
-  if (ms->evl.events_pending == 0) {
-    /* if no events at all are pending, then none can be created until
-       we quit nsock_loop() -- so we do that now. */
-    quitstatus = NSOCK_LOOP_NOEVENTS;
-    break;
-  }
-  if (msec_timeout > 0) {
-    msecs_left = MAX(0, TIMEVAL_NSEC_SUBTRACT(loop_timeout, nsock_tod));
-    if (msecs_left == 0 && loopnum > 0) {
-      quitstatus = NSOCK_LOOP_TIMEOUT;
-      break;
-    }
-  }
-
-  if (wait_for_events(ms, msecs_left) == -1) {  
-    quitstatus = NSOCK_LOOP_ERROR;
-    break;
-  }
-  
-  /* Now we go through the event lists, doing callbacks for those which
-     have completed */
-  iterate_through_event_lists(ms);
-
-  gettimeofday(&nsock_tod, NULL); /* we do this at end because there is one
-                              at beginning of function */
-  loopnum++;
-}
-
- return quitstatus;
-}
-
-/* Grab the latest time as recorded by the nsock library, which does
-   so at least once per event loop (in main_loop).  Not only does this
-   function (generally) avoid a system call, but in many circumstances
-   it is better to use nsock's time rather than the system time.  If
-   nsock has never obtained the time when you call it, it will do so
-   before returning */
-const struct timeval *nsock_gettimeofday() {
-  if (nsock_tod.tv_sec == 0) 
-    gettimeofday(&nsock_tod, NULL);
-
-  return &nsock_tod;
-}
-
-
-/* Adds an event to the appropriate nsp event list, handles housekeeping
-   such as adjusting the descriptor select/poll lists, registering the
-   timeout value, etc. */
-void nsp_add_event(mspool *nsp, msevent *nse) {
-
-  /* First lets do the event-type independant stuff -- starting with
-     timeouts */
-  if (nse->event_done) { 
-    nsp->evl.next_ev = nsock_tod;
-  } else {
-    if (nse->timeout.tv_sec != 0) {
-      if (nsp->evl.next_ev.tv_sec == 0) {
-       nsp->evl.next_ev = nse->timeout;
-      } else if (TIMEVAL_NSEC_SUBTRACT(nsp->evl.next_ev, nse->timeout) > 0) {
-       nsp->evl.next_ev = nse->timeout;
-      }
-    }
-  }
-
-  nsp->evl.events_pending++;
-
-  /* Now we do the event type specific actions */
-  switch(nse->type) {
-  case NSE_TYPE_CONNECT:
-  case NSE_TYPE_CONNECT_SSL:
-    if (!nse->event_done) {
-      FD_SET( nse->iod->sd, &nsp->mioi.fds_master_r);
-      FD_SET( nse->iod->sd, &nsp->mioi.fds_master_w);
-      FD_SET( nse->iod->sd, &nsp->mioi.fds_master_x);
-      nsp->mioi.max_sd = MAX(nsp->mioi.max_sd, nse->iod->sd);
-    }
-    gh_list_prepend(&nsp->evl.connect_events, nse);
-    break;
-
-  case NSE_TYPE_READ:
-    if (!nse->event_done) {
-      FD_SET( nse->iod->sd, &nsp->mioi.fds_master_r);
-      nsp->mioi.max_sd = MAX(nsp->mioi.max_sd, nse->iod->sd);
-#if HAVE_OPENSSL
-      if (nse->iod->ssl) nse->sslinfo.ssl_desire = SSL_ERROR_WANT_READ;
-#endif
-    }
-    gh_list_prepend(&nsp->evl.read_events, nse);
-    break;
-
-  case NSE_TYPE_WRITE:
-    if (!nse->event_done) {
-      FD_SET( nse->iod->sd, &nsp->mioi.fds_master_w);
-      nsp->mioi.max_sd = MAX(nsp->mioi.max_sd, nse->iod->sd);
-#if HAVE_OPENSSL
-      if (nse->iod->ssl) nse->sslinfo.ssl_desire = SSL_ERROR_WANT_WRITE;
-#endif
-    }
-    gh_list_prepend(&nsp->evl.write_events, nse);
-    break;
-
-  case NSE_TYPE_TIMER:
-    gh_list_prepend(&nsp->evl.timer_events, nse);
-    break;
-
-  default:
-    assert(0);
-    break; /* unreached */
-
-  }
-}
-
-
-void nsock_trace(mspool *ms, char *fmt, ...) {
-va_list  ap;
-int elapsedTimeMS;
-
-elapsedTimeMS = TIMEVAL_MSEC_SUBTRACT(nsock_tod, ms->tracebasetime);
-va_start(ap, fmt);
-fflush(stdout);
-printf("NSOCK (%.4fs) ", elapsedTimeMS / 1000.0);
-vfprintf(stdout, fmt, ap);
-printf("\n"); 
-va_end(ap);
-return;
-}
-
-/* An event has been completed and the handler is about to be called.  This function
-   writes out tracing data about the event if neccessary */
-void nsock_trace_handler_callback(mspool *ms, msevent *nse) {
-  msiod *nsi;
-  char *str;
-  int strlength = 0;
-  char displaystr[256];
-  char errstr[256];
-
-  if (ms->tracelevel == 0)
-    return;
-
-  nsi = nse->iod;
-
-  if (nse->status == NSE_STATUS_ERROR) {
-    snprintf(errstr, sizeof(errstr), "[%s (%d)] ", strerror(nse->errnum), nse->errnum);
-  } else errstr[0] = '\0';
-
-  // Some types have special tracing treatment
-  switch(nse->type) {
-  case NSE_TYPE_CONNECT:
-  case NSE_TYPE_CONNECT_SSL:
-    nsock_trace(ms, "Callback: %s %s %sfor EID %li [%s:%hi]",  
-               nse_type2str(nse->type), nse_status2str(nse->status), errstr, 
-               nse->id, inet_ntop_ez(&nsi->peer, nsi->peerlen), nsi_peerport(nsi));
-    break;
-
-  case NSE_TYPE_READ:
-    if (nse->status != NSE_STATUS_SUCCESS)
-      nsock_trace(ms, "Callback: %s %s %sfor EID %li [%s:%hi]", 
-                 nse_type2str(nse->type), nse_status2str(nse->status), 
-                 errstr, nse->id, inet_ntop_ez(&nsi->peer, nsi->peerlen), 
-                 nsi_peerport(nsi));
-    else {    
-      str = nse_readbuf(nse, &strlength);
-      if (ms->tracelevel > 1 && strlength < 80) {
-       memcpy(displaystr, ": ", 2);
-       memcpy(displaystr + 2, str, strlength);
-       displaystr[2 + strlength] = '\0';
-       replacenonprintable(displaystr + 2, strlength, '.');
-      } else displaystr[0] = '\0';
-      nsock_trace(ms, "Callback: %s %s for EID %li [%s:%hi] %s(%d bytes)%s", 
-                 nse_type2str(nse->type), nse_status2str(nse->status), 
-                 nse->id, inet_ntop_ez(&nsi->peer, nsi->peerlen), 
-                 nsi_peerport(nsi), nse_eof(nse)? "[EOF]" : "", strlength, 
-                 displaystr);
-    }
-    break;
-
-  case NSE_TYPE_WRITE:
-    nsock_trace(ms, "Callback: %s %s %sfor EID %li [%s:%hi]", 
-               nse_type2str(nse->type), nse_status2str(nse->status), errstr, 
-               nse->id, inet_ntop_ez(&nsi->peer, nsi->peerlen), 
-                 nsi_peerport(nsi));
-    break;
-  case NSE_TYPE_TIMER:
-    nsock_trace(ms, "Callback: %s %s %sfor EID %li", 
-               nse_type2str(nse->type), nse_status2str(nse->status), errstr, 
-               nse->id);
-    break;
-  }
-
-}
diff --git a/nsock/src/nsock_event.c b/nsock/src/nsock_event.c
deleted file mode 100644 (file)
index a825f7b..0000000
+++ /dev/null
@@ -1,371 +0,0 @@
-/***************************************************************************
- * nsock_event.c -- Functions dealing with nsock_events (and their         *
- * msevent internal representation.  An event is created when you do       *
- * various calls (for reading, writing, connecting, timers, etc) and is    *
- * provided back to you in the callback when the call completes or         *
- * fails. It is automatically destroyed after the callback returns         *
- *                                                                         *
- ***********************IMPORTANT NSOCK LICENSE TERMS***********************
- *                                                                         *
- * The nsock parallel socket event library is (C) 1999-2004 Insecure.Com   *
- * LLC This library is free software; you may redistribute and/or          *
- * modify it under the terms of the GNU General Public License as          *
- * published by the Free Software Foundation; Version 2.  This guarantees  *
- * your right to use, modify, and redistribute this software under certain *
- * conditions.  If this license is unacceptable to you, Insecure.Com LLC   *
- * may be willing to sell alternative licenses (contact                    *
- * [email protected] ).                                                   *
- *                                                                         *
- * As a special exception to the GPL terms, Insecure.Com LLC grants        *
- * permission to link the code of this program with any version of the     *
- * OpenSSL library which is distributed under a license identical to that  *
- * listed in the included Copying.OpenSSL file, and distribute linked      *
- * combinations including the two. You must obey the GNU GPL in all        *
- * respects for all of the code used other than OpenSSL.  If you modify    *
- * this file, you may extend this exception to your version of the file,   *
- * but you are not obligated to do so.                                     *
- *                                                                         * 
- * If you received these files with a written license agreement stating    *
- * terms other than the (GPL) terms above, then that alternative license   *
- * agreement takes precedence over this comment.                          *
- *                                                                         *
- * Source is provided to this software because we believe users have a     *
- * right to know exactly what a program is going to do before they run it. *
- * This also allows you to audit the software for security holes (none     *
- * have been found so far).                                                *
- *                                                                         *
- * Source code also allows you to port Nmap to new platforms, fix bugs,    *
- * and add new features.  You are highly encouraged to send your changes   *
- * to [email protected] for possible incorporation into the main         *
- * distribution.  By sending these changes to Fyodor or one the            *
- * insecure.org development mailing lists, it is assumed that you are      *
- * offering Fyodor and Insecure.Com LLC the unlimited, non-exclusive right *
- * to reuse, modify, and relicense the code.  Nmap will always be          *
- * available Open Source, but this is important because the inability to   *
- * relicense code has caused devastating problems for other Free Software  *
- * projects (such as KDE and NASM).  We also occasionally relicense the    *
- * code to third parties as discussed above.  If you wish to specify       *
- * special license conditions of your contributions, just say so when you  *
- * send them.                                                              *
- *                                                                         *
- * This program is distributed in the hope that it will be useful, but     *
- * WITHOUT ANY WARRANTY; without even the implied warranty of              *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU       *
- * General Public License for more details (                               *
- * http://www.gnu.org/copyleft/gpl.html ).                                 *
- *                                                                         *
- ***************************************************************************/
-
-/* $Id$ */
-
-#include "nsock_internal.h"
-#include "gh_list.h"
-
-#include <string.h>
-
-extern struct timeval nsock_tod;
-
-/* Find the type of an event that spawned a callback */
-enum nse_type nse_type(nsock_event nse) {
-  msevent *me = (msevent *)nse;
-  return me->type;
-}
-
-enum nse_status nse_status(nsock_event nse) {
-  msevent *me = (msevent *)nse;
-  return me->status;
-}
-
-int nse_eof(nsock_event nse) {
-  msevent *me = (msevent *)nse;
-  return me->eof;
-}
-
-/* Obtains the nsock_iod (see below) associated with the event.  Note that 
-   some events (such as timers) don't have an nsock_iod associated with them
-*/
-nsock_iod nse_iod(nsock_event ms_event) {
-  msevent *nse = (msevent *) ms_event;
-  return (nsock_iod) nse->iod;
-}
-
-/* This next function returns the errno style error code -- which is only
-   valid if the status is NSE_STATUS_ERROR */
-int nse_errorcode(nsock_event nse) {
-  msevent *me = (msevent *)nse;
-  return me->errnum;
-}
-
-/* Every event has an ID which will be unique throughout the program's execution unless you use (literally) billions of them */
-nsock_event_id nse_id(nsock_event nse) {
-  msevent *me = (msevent *)nse;
-  return me->id;
-}
-
-/* If you did a read request, and the result was STATUS_SUCCESS, this 
-   function provides the buffer that was read in as well as the number
-   of chars read.  The buffer should not be modified or free'd */
-char *nse_readbuf(nsock_event nse, int *nbytes) {
-  msevent *me = (msevent *)nse;
-
-  if (nbytes) {
-    *nbytes = FILESPACE_LENGTH(&(me->iobuf));
-  }
-  return FILESPACE_STR(&(me->iobuf));
-}
-
-
-/* Cancel an event (such as a timer or read request).  If notify is
- nonzero, the requester will be sent an event CANCELLED status back to
- the given handler.  But in some cases there is no need to do this
- (like if the function deleting it is the one which created it), in
- which case 0 can be passed to skip the step.  This function returns
- zero if the event is not found, nonzero otherwise */
-int nsock_event_cancel(nsock_pool ms_pool, nsock_event_id id, int notify ) {
-  mspool *nsp = (mspool *) ms_pool;
-  enum nse_type type = get_event_id_type(id);
-  gh_list *event_list = NULL;
-  gh_list_elem *current, *next;
-  msevent *nse = NULL;
-
-  assert(nsp);
-
- if (nsp->tracelevel > 0) {
-    nsock_trace(nsp, "Event #%li (type %s) cancelled", id, nse_type2str(type));
-  }
-
-  /* First we figure out what list it is in */
-  switch(type) {
-  case NSE_TYPE_CONNECT:
-    event_list = &nsp->evl.connect_events;
-    break;
-  case NSE_TYPE_READ: 
-    event_list = &nsp->evl.read_events;
-    break;
-  case NSE_TYPE_WRITE:
-    event_list = &nsp->evl.write_events;
-    break;
-  case NSE_TYPE_TIMER:
-    event_list = &nsp->evl.timer_events;
-    break;
-  default:
-    fatal("Bogus event type in nsock_event_cancel"); break;
-  }
-
-  /* Now we try to find the event in the list */
-  for(current = GH_LIST_FIRST_ELEM(event_list);        current != NULL; 
-      current = next) {
-    next = GH_LIST_ELEM_NEXT(current);
-    nse = (msevent *) GH_LIST_ELEM_DATA(current);
-    if (nse->id == id)
-      break;
-  }
-
-  if (current == NULL)
-    return 0;
-
-  return msevent_cancel(nsp, nse, event_list, current, notify);
-}
-
-/* An inernal function for cancelling an event when you already have a
-   pointer to the msevent (use nsock_event_cancel if you just have an
-   ID).  The event_list passed in should correspond to the type of the
-   event.  For example, with NSE_TYPE_READ, you would pass in
-   &nsp->evl.read_events;.  elem is the list element in event_list which
-   holds the event.  Pass a nonzero for notify if you want the
-   program owning the event to be notified that it has been cancelled */
-int msevent_cancel(mspool *nsp, msevent *nse, gh_list *event_list, gh_list_elem *elem,
-                  int notify) {
-
-
-  if (nse->event_done) {
-    /* This event has already been marked for death somewhere else -- it
-       will be gone soon (and if we try to kill it now all hell will break
-       loose due to reentrancy */
-    return 0;
-  }
-
-  /* Now that we found the event ... we go through the motions of cleanly
-     cancelling it */
-  switch(nse->type) {
-  case NSE_TYPE_CONNECT:
-  case NSE_TYPE_CONNECT_SSL:
-    handle_connect_result(nsp, nse, NSE_STATUS_CANCELLED);
-    break;
-  case NSE_TYPE_READ: 
-    handle_read_result(nsp, nse, NSE_STATUS_CANCELLED);
-    break;
-  case NSE_TYPE_WRITE:
-    handle_write_result(nsp, nse, NSE_STATUS_CANCELLED);  
-    break;
-  case NSE_TYPE_TIMER:
-    handle_timer_result(nsp, nse, NSE_STATUS_CANCELLED);  
-    break;
-  }
-
-  assert(nse->event_done);
-  gh_list_remove_elem(event_list, elem);
-
-  msevent_dispatch_and_delete(nsp, nse, notify);
-
-  return 1;
-}
-
-/* Adjust various statistics, dispatches the event handler (if notify is
-   nonzero) and then deletes the event.  This function does NOT delete
-   the event from any lists it might be on (eg nsp->evl.read_list etc.) 
-   nse->event_done MUST be true when you call this */
-void msevent_dispatch_and_delete(mspool *nsp, msevent *nse, int notify) {
-  assert(nsp);
-  assert(nse);
-
-  assert(nse->event_done);
-
-  nsp->evl.events_pending--;
-  assert(nsp->evl.events_pending >= 0);
-
-  
-  if (nse->iod) {
-    nse->iod->events_pending--;
-    assert(nse->iod->events_pending >= 0);
-  }
-  if (notify) {
-    nsock_trace_handler_callback(nsp, nse);
-    nse->handler(nsp, nse, nse->userdata);
-  }
-
-/* FIXME: We should be updating stats here ... */
-
-  /* Now we clobber the event ... */
-  msevent_delete(nsp, nse);
-}
-
-/* OK -- the idea is that we want the type included in the rightmost
-   two bits and the serial number in the leftmost 30 or 62.  But we
-   also want to insure a correct wrap-around in the case of an obscene
-   number of event.  One definition of a "correct" wraparound is that
-   it goes from the highest number back to one (not zero) because we
-   don't want event numbers to ever be zero. */
-nsock_event_id get_new_event_id(mspool *ms, enum nse_type type) {
-  int type_code = (int) type;
-  unsigned long serial = ms->next_event_serial++;
-  unsigned long max_serial_allowed;
-  int shiftbits;
-  assert(type <= 3);
-  shiftbits = sizeof(nsock_event_id) * 8 - TYPE_CODE_NUM_BITS;
-  max_serial_allowed = ( 1 << shiftbits ) - 1;
-  if (serial == max_serial_allowed ) {
-    /* then the next serial will be one because 0 is forbidden */
-    ms->next_event_serial = 1;
-  }
-
-  return (serial << TYPE_CODE_NUM_BITS) | type_code;
-}
-
-/* Take an event ID and return the type (NSE_TYPE_CONNECT, etc */
-enum nse_type get_event_id_type(nsock_event_id event_id) {
-
-  return (enum nse_type) ((event_id & ((1 << TYPE_CODE_NUM_BITS) - 1)));
-
-}
-
-
-/* Create a new event structure -- must be deleted later with msevent_delete,
- unless it returns NULL (failure).  NULL can be passed in for the
- msiod and the userdata if not available */
-msevent *msevent_new(mspool *nsp, enum nse_type type, msiod *msiod, 
-                    int timeout_msecs, nsock_ev_handler handler,
-                    void *userdata) {
-
-  msevent *nse;
-
-  if (msiod) {
-    msiod->events_pending++;
-    assert(msiod->state != NSIOD_STATE_DELETED);
-  }
-
-  /* First we check if one is available from the free list ... */
-  nse = (msevent *) gh_list_pop(&nsp->evl.free_events);
-  if (!nse) nse = (msevent *) safe_malloc(sizeof(msevent));
-  memset(nse, 0, sizeof(*nse));
-  nse->id = get_new_event_id(nsp, type);
-  nse->type = type;
-  nse->status = NSE_STATUS_NONE;
-#if HAVE_OPENSSL
-  nse->sslinfo.ssl_desire = SSL_ERROR_NONE;
-#endif
-  if (type == NSE_TYPE_READ || type ==  NSE_TYPE_WRITE) {  
-    filespace_init(&(nse->iobuf), 1024);
-  }
-  if (timeout_msecs != -1) {
-    assert(timeout_msecs >= 0);
-    TIMEVAL_NSEC_ADD(nse->timeout, nsock_tod, timeout_msecs);
-  }
-  nse->iod = msiod;
-  nse->handler = handler;
-  nse->userdata = userdata;
-  nse->time_created = nsock_tod;
-  return nse;
-}
-
-/* Free an msevent which was allocated with msevent_new, including all
-   internal resources.  Note -- we assume that
-   nse->iod->events_pending (if it exists) has ALREADY been
-   decremented (done during msevent_dispatch_and_delete) -- so
-   remember to do this if you call msevent_delete() directly */
-void msevent_delete(mspool *nsp, msevent *nse) {
-
-  /* First free the IOBuf inside it if neccessary */
-  if (nse->type == NSE_TYPE_READ || nse->type ==  NSE_TYPE_WRITE) {  
-    fs_free(&nse->iobuf);
-  }
-
-  /* Now we add the event back into the free pool */
-  gh_list_prepend(&nsp->evl.free_events, nse);
-
-}
-
-
-/* Takes an nse_type (as returned by nse_type() and returns a static
-   string name that you can use for printing, etc. */
-const char *nse_type2str(enum nse_type type) {
-  switch(type) {
-  case NSE_TYPE_CONNECT: return "CONNECT";
-  case NSE_TYPE_CONNECT_SSL: return "SSL-CONNECT";
-  case NSE_TYPE_READ: return "READ";
-  case NSE_TYPE_WRITE: return "WRITE";
-  case NSE_TYPE_TIMER: return "TIMER";
-  default:
-    return "UNKNOWN!";
-  }
-
-  return "WTF????"; /* Unreached */
-}
-
-/* Takes an nse_status (as returned by nse_status() and returns a static
-   string name that you can use for printing, etc. */
-const char *nse_status2str(enum nse_status status) {
-  switch(status) {
-  case NSE_STATUS_NONE: return "NONE";
-  case NSE_STATUS_SUCCESS: return "SUCCESS";
-  case NSE_STATUS_ERROR: return "ERROR";
-  case NSE_STATUS_TIMEOUT: return "TIMEOUT";
-  case NSE_STATUS_CANCELLED: return "CANCELLED";
-  case NSE_STATUS_KILL: return "KILL";
-  case NSE_STATUS_EOF: return "EOF";
-  default:
-    return "UNKNOWN!";
-  }
-
-  return "WTF????"; /* Unreached */
-
-}
-
-
-
-
-
-
-
diff --git a/nsock/src/nsock_internal.h b/nsock/src/nsock_internal.h
deleted file mode 100644 (file)
index 50952d3..0000000
+++ /dev/null
@@ -1,351 +0,0 @@
-
-/***************************************************************************
- * nsock_internal.h -- PRIVATE interface definitions for the guts of the   *
- * nsock paralle socket event library.  Applications calling this library  *
- * should NOT include this. even LOOK at these :).                         *
- *                                                                         *
- ***********************IMPORTANT NSOCK LICENSE TERMS***********************
- *                                                                         *
- * The nsock parallel socket event library is (C) 1999-2004 Insecure.Com   *
- * LLC This library is free software; you may redistribute and/or          *
- * modify it under the terms of the GNU General Public License as          *
- * published by the Free Software Foundation; Version 2.  This guarantees  *
- * your right to use, modify, and redistribute this software under certain *
- * conditions.  If this license is unacceptable to you, Insecure.Com LLC   *
- * may be willing to sell alternative licenses (contact                    *
- * [email protected] ).                                                   *
- *                                                                         *
- * As a special exception to the GPL terms, Insecure.Com LLC grants        *
- * permission to link the code of this program with any version of the     *
- * OpenSSL library which is distributed under a license identical to that  *
- * listed in the included Copying.OpenSSL file, and distribute linked      *
- * combinations including the two. You must obey the GNU GPL in all        *
- * respects for all of the code used other than OpenSSL.  If you modify    *
- * this file, you may extend this exception to your version of the file,   *
- * but you are not obligated to do so.                                     *
- *                                                                         * 
- * If you received these files with a written license agreement stating    *
- * terms other than the (GPL) terms above, then that alternative license   *
- * agreement takes precedence over this comment.                          *
- *                                                                         *
- * Source is provided to this software because we believe users have a     *
- * right to know exactly what a program is going to do before they run it. *
- * This also allows you to audit the software for security holes (none     *
- * have been found so far).                                                *
- *                                                                         *
- * Source code also allows you to port Nmap to new platforms, fix bugs,    *
- * and add new features.  You are highly encouraged to send your changes   *
- * to [email protected] for possible incorporation into the main         *
- * distribution.  By sending these changes to Fyodor or one the            *
- * insecure.org development mailing lists, it is assumed that you are      *
- * offering Fyodor and Insecure.Com LLC the unlimited, non-exclusive right *
- * to reuse, modify, and relicense the code.  Nmap will always be          *
- * available Open Source, but this is important because the inability to   *
- * relicense code has caused devastating problems for other Free Software  *
- * projects (such as KDE and NASM).  We also occasionally relicense the    *
- * code to third parties as discussed above.  If you wish to specify       *
- * special license conditions of your contributions, just say so when you  *
- * send them.                                                              *
- *                                                                         *
- * This program is distributed in the hope that it will be useful, but     *
- * WITHOUT ANY WARRANTY; without even the implied warranty of              *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU       *
- * General Public License for more details (                               *
- * http://www.gnu.org/copyleft/gpl.html ).                                 *
- *                                                                         *
- ***************************************************************************/
-
-/* $Id$ */
-
-#ifndef NSOCK_INTERNAL_H
-#define NSOCK_INTERNAL_H
-
-#include <nbase.h>
-
-#ifdef HAVE_CONFIG_H
-#include "nsock_config.h"
-#include "nbase_config.h"
-#endif
-
-#ifdef WIN32
-#include "nbase_winconfig.h"
-#include <Winsock2.h>
-#endif
-
-#include "gh_list.h"
-#include "filespace.h"
-#include "nsock.h" /* The public interface -- I need it for some enum defs */
-#include "nsock_ssl.h"
-
-#if HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#if HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#if HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#if HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
-#if HAVE_STRING_H
-#include <string.h>
-#endif
-#if HAVE_STRINGS_H
-#include <strings.h>
-#endif
-
-#include "nsock_utils.h"
-
-/*********      STRUCTURES   **************/
-
-/* This is geared to handling state for select calls, perhaps at 
-   some point I'll add a USE_POLL_NOT_SELECT define which causes it to
-   do poll()s instead. */
-struct nsock_io_info {
-  fd_set fds_master_r; /* Descriptors from which have pending READ events */
-  fd_set fds_master_w; /* Descriptors which we are tryint to WRITE to */
-  fd_set fds_master_x; /* looking for exceptional events -- used with connect */
-
-  /* For keeping track of the select results */
-  fd_set fds_results_r, fds_results_w, fds_results_x;
-
-/* The highest sd we have set in any of our fd_set's (max_sd + 1 is
-   used in select() calls).  Note that it can be -1, when there are no
-   valid sockets */
-  int max_sd; 
-  int results_left; /* The number of descriptors contained in the sets that
-                      we have not yet dealt with. */
-};
-
-struct event_lists {
-  /* We keep the events seperate because we want to handle them in the 
-     order: connect => read => write => timer for several reasons:
-     1) Makes sure we have gone through all the net i/o events before 
-        a timer expires (would be a shame to timeout after the data was 
-        available but before we delivered the events
-     2) The connect() results often lead to a read or write that can be 
-        processed in the same cycle.  In the same way, read() often 
-       leads to write().
-  */
-  gh_list connect_events;
-  gh_list read_events;
-  gh_list write_events;
-  gh_list timer_events;
-  gh_list free_events; /* When an event is deleted, we stick it here for
-                         later reuse */
-  struct timeval next_ev; /* The soonest time that either a timer event goes
-                            off or a read/write/connect expires.  It is 
-                            updated each main loop round as we go through 
-                            the events.  It is an absolute time.  If there
-                            are no events, tv_sec is 0 */
-  int events_pending; /* Number of events pending (total) on all lists */
-
-};
-
-enum nsock_read_types { NSOCK_READLINES, NSOCK_READBYTES, NSOCK_READ };
-
-struct readinfo {
-  enum nsock_read_types read_type;
-  int num; /* num lines; num bytes; whatever (depends on read_type) */
-};
-
-struct writeinfo {
-  int written_so_far; /* Number of bytes successfully written */
-};
-
-/* struct sslinfo defined in nsock_ssl.h */
-
-/* remember that callers of this library should NOT be accessing these 
-   fields directly */
-typedef struct  {
-  unsigned long id; /* Every mst has a unique (accross the 
-                      program execution) id */
-
-  struct nsock_io_info mioi;  /* info for keeping track of select() I/O */
-  struct event_lists evl; /* Lists of pending events we are waiting on */
-  
-  void *userdata; /* User Data, if it has been set.  Otherwise NULL */
-  gh_list free_iods; /* msiod structures that have been freed for reuse */
-  gh_list active_iods; /* msiod structures that have been allocated */
-  unsigned long next_event_serial; /* serial # of next event (used to create
-                                     next nsock_event_id */
-  unsigned long next_iod_serial; /* Serial # of next iod to be created */
-  int errnum; /* If nsock_loop() returns NSOCK_LOOP_ERROR, this is where we
-               describe the error (errnum fashion) */
-  int tracelevel; /* Trace/debug level - set by nsp_settrace.  If positive, trace logs are printted to
-                    stdout */
-  /* This time is subtracted from the current time for trace reports */
-  struct timeval tracebasetime; 
-} mspool;
-
-
-typedef struct msevent msevent;
-
-typedef struct msiod msiod;
-
-enum msiod_state { NSIOD_STATE_DELETED, NSIOD_STATE_INITIAL, 
-                  NSIOD_STATE_UNKNOWN /* sd was provided to us in nsi_new2 */,
-                  NSIOD_STATE_CONNECTED_TCP, NSIOD_STATE_CONNECTED_UDP };
-
-/* typedef struct msiod msiod; */
-
-/* nsock_iod is like a "file descriptor" for the nsock library.  You
-   use it to request events. */
-struct msiod {
-  int sd; /* The socket descriptor related to the event */
-  int events_pending; /* Number of pending events on this iod */
-  mspool *nsp; /* The mspool used to create the iod (used for deletion) */
-  enum msiod_state state;
-  struct sockaddr_storage peer; /* The host and port we are connected to
-                                  using sd (saves a call to getpeername) */
-
-/* The length of peer actualy used (sizeof(sockadd_in) or
-   sizeof(sockaddr_in6), or 0 if peer has not been filled in */
-  size_t peerlen; 
-  int lastproto; /* -1 if none yet, otherwise IPPROTO_TCP, etc. */
-  gh_list_elem *entry_in_nsp_active_iods; /* The mspool keeps track of
-                                            msiods that have been
-                                            allocated so that it can
-                                            destroy them if the msp
-                                            is deleted.  This pointer
-                                            makes it easy to remove
-                                            this msiod from the
-                                            allocated list when
-                                            neccessary */
-#if HAVE_OPENSSL
-  SSL *ssl; /* An SSL connection (or NULL if none) */
-  SSL_SESSION *ssl_session; /* SSL SESSION ID (or NULL if none) */
-#else
-  char *ssl; /* Because there are many if (nsi->ssl) cases in the code */
-#endif
-  unsigned long id; /* Every iod has an id which is always unique for the
-                      same nspool (unless you create billions of them) */
-  void *userdata;
-};
-
-
-
-/* nsock_event_t handles a single event.  Its ID is generally returned when
-   the event is created, and the event is included in callbacks */
-struct msevent {
-  nsock_event_id id; /* Every event has an ID which is unique for a given nsock
-                 unless you blow through more than 500,000,000 events */
-  enum nse_type type;
-  enum nse_status status;
-
-  struct filespace iobuf; /* for write events, this is the data to be written,
-                            for read events, this is what we will read into */
-
-  struct timeval timeout; /* The timeout of the event -- absolute time
-                            except that tv_sec == 0 means no timeout */
-  struct readinfo readinfo; /* Info pertaining to READ requests */
-  struct writeinfo writeinfo; /* Info pertaining to WRITE requests */
-#if HAVE_OPENSSL
-  struct sslinfo sslinfo;
-#endif
-  int errnum; /* If we return a status of NSE_STATUS_ERROR, this must be set */
-  int eof;
-  msiod *iod; /* The nsock I/O descriptor related to event (if applicable) */
-  nsock_ev_handler handler; /* The handler to call when event is complete */
-  void *userdata;
-  int event_done; /* If this event is all filled out and ready for
-                    immediate delivery, event_done is nonzero.  Used
-                    when event is finished at unexpected time and we
-                    want to dispatch it later to avoid duplicating
-                    stat update code and all that other crap */
-  struct timeval time_created;
-};
-
-
-
-/*********  PROTOTYPES   **************/
-
-/* Get a new nsock_event_id, given a type */
-nsock_event_id get_new_event_id(mspool *nsp, enum nse_type type);
-/* Take an event ID and return the type (NSE_TYPE_CONNECT, etc */
-enum nse_type get_event_id_type(nsock_event_id event_id);
-
-/* Create a new event structure -- must be deleted later with msevent_delete,
- unless it returns NULL (failure).  NULL can be passed in for the
- msiod and the userdata if not available. */
-msevent *msevent_new(mspool *nsp, enum nse_type type, msiod *msiod, 
-                    int timeout_msecs, nsock_ev_handler handler,
-                    void *userdata);
-
-/* An inernal function for cancelling an event when you already have a
-   pointer to the msevent (use nsock_event_cancel if you just have an
-   ID).  The event_list passed in should correspond to the type of the
-   event.  For example, with NSE_TYPE_READ, you would pass in
-   &nsp->evl.read_events;.  elem is the list element in event_list
-   which holds the event.  Pass a nonzero for notify if you want the
-   program owning the event to be notified that it has been cancelled */
-int msevent_cancel(mspool *nsp, msevent *nse, gh_list *event_list, 
-                  gh_list_elem *elem, int notify);
-
-/* Adjust various statistics, dispatches the event handler (if notify is
-   nonzero) and then deletes the event.  This function does NOT delete
-   the event from any lists it might be on (eg nsp->evl.read_list etc.) 
-   nse->event_done MUST be true when you call this */
-void msevent_dispatch_and_delete(mspool *nsp, msevent *nse, int notify);
-
-/* Free an msevent which was allocated with msevent_new, including all
-   internal resources.  Note -- we assume that
-   nse->iod->events_pending (if it exists) has ALREADY been
-   decremented (done during msevent_dispatch_and_delete) -- so
-   remember to do this if you call msevent_delete() directly */
-void msevent_delete(mspool *nsp, msevent *nse);
-
-/* Adds an event to the appropriate nsp event list, handles housekeeping
-   such as adjusting the descriptor select/poll lists, registering the
-   timeout value, etc. */
-void nsp_add_event(mspool *nsp, msevent *nse);
-
-/* Comments on using the following handle_*_result functions are available
-   in nsock_core.c */
-/* handle_connect_results assumes that select or poll have already
-   shown the descriptor to be active */
-void handle_connect_result(mspool *ms, msevent *nse, 
-                          enum nse_status status);
-
-void handle_read_result(mspool *ms, msevent *nse, 
-                       enum nse_status status);
-
-void handle_write_result(mspool *ms, msevent *nse, 
-                         enum nse_status status);
-
-void handle_timer_result(mspool *ms, msevent *nse, 
-                        enum nse_status status);
-
-void nsock_trace(mspool *ms, char *fmt, ...)
-     __attribute__ ((format (printf, 2, 3)));
-
-/* An event has been completed and the handler is about to be called.  This function
-   writes out tracing data about the event if neccessary */
-void nsock_trace_handler_callback(mspool *ms, msevent *nse);
-
-/* Returns the remote peer port (or -1 if unavailable).  Note the
-   return value is a whole int so that -1 can be distinguished from
-   65535.  Port is returned in host byte order. */
-int nsi_peerport(msiod *nsi);
-
-#if HAVE_OPENSSL
-/* sets the ssl session of an nsock_iod, increments usage count.  The
- session should not have been set yet (as no freeing is done) */
-void nsi_set_ssl_session(msiod *iod, SSL_SESSION *sessid);
-#endif
-
-#endif /* NSOCK_INTERNAL_H */
-
-
-
-
-
-
-
-
-
diff --git a/nsock/src/nsock_iod.c b/nsock/src/nsock_iod.c
deleted file mode 100644 (file)
index 1d55659..0000000
+++ /dev/null
@@ -1,300 +0,0 @@
-
-/***************************************************************************
- * nsock_iod.c -- This contains the functions relating to nsock_iod (and   *
- * its nsock internal manifistation -- nsockiod.  This is is similar to a  *
- * file descriptor in that you create it and then use it to initiate       *
- * connections, read/write data, etc.                                      *
- *                                                                         *
- ***********************IMPORTANT NSOCK LICENSE TERMS***********************
- *                                                                         *
- * The nsock parallel socket event library is (C) 1999-2004 Insecure.Com   *
- * LLC This library is free software; you may redistribute and/or          *
- * modify it under the terms of the GNU General Public License as          *
- * published by the Free Software Foundation; Version 2.  This guarantees  *
- * your right to use, modify, and redistribute this software under certain *
- * conditions.  If this license is unacceptable to you, Insecure.Com LLC   *
- * may be willing to sell alternative licenses (contact                    *
- * [email protected] ).                                                   *
- *                                                                         *
- * As a special exception to the GPL terms, Insecure.Com LLC grants        *
- * permission to link the code of this program with any version of the     *
- * OpenSSL library which is distributed under a license identical to that  *
- * listed in the included Copying.OpenSSL file, and distribute linked      *
- * combinations including the two. You must obey the GNU GPL in all        *
- * respects for all of the code used other than OpenSSL.  If you modify    *
- * this file, you may extend this exception to your version of the file,   *
- * but you are not obligated to do so.                                     *
- *                                                                         * 
- * If you received these files with a written license agreement stating    *
- * terms other than the (GPL) terms above, then that alternative license   *
- * agreement takes precedence over this comment.                          *
- *                                                                         *
- * Source is provided to this software because we believe users have a     *
- * right to know exactly what a program is going to do before they run it. *
- * This also allows you to audit the software for security holes (none     *
- * have been found so far).                                                *
- *                                                                         *
- * Source code also allows you to port Nmap to new platforms, fix bugs,    *
- * and add new features.  You are highly encouraged to send your changes   *
- * to [email protected] for possible incorporation into the main         *
- * distribution.  By sending these changes to Fyodor or one the            *
- * insecure.org development mailing lists, it is assumed that you are      *
- * offering Fyodor and Insecure.Com LLC the unlimited, non-exclusive right *
- * to reuse, modify, and relicense the code.  Nmap will always be          *
- * available Open Source, but this is important because the inability to   *
- * relicense code has caused devastating problems for other Free Software  *
- * projects (such as KDE and NASM).  We also occasionally relicense the    *
- * code to third parties as discussed above.  If you wish to specify       *
- * special license conditions of your contributions, just say so when you  *
- * send them.                                                              *
- *                                                                         *
- * This program is distributed in the hope that it will be useful, but     *
- * WITHOUT ANY WARRANTY; without even the implied warranty of              *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU       *
- * General Public License for more details (                               *
- * http://www.gnu.org/copyleft/gpl.html ).                                 *
- *                                                                         *
- ***************************************************************************/
-
-/* $Id$ */
-
-#include "nsock.h"
-#include "nsock_internal.h"
-#include "gh_list.h"
-#include "netutils.h"
-
-#include <string.h>
-
-/* nsock_iod is like a "file descriptor" for the nsock library.  You
-   use it to request events.  And here is how you create an nsock_iod.
-   nsi_new returns NULL if the iod cannot be allocated.  Pass NULL as
-   userdata if you don't want to immediately associate any user data
-   with the iod. */
-nsock_iod nsi_new(nsock_pool nsockp, void *userdata) {
-  return nsi_new2(nsockp, -1, userdata);
-}
-
-/* This version allows you to associate an existing sd with the msi
-   so that you can read/write it using the nsock infrastructure.  For example,
-   you may want to watch for data from STDIN_FILENO at the same time as you
-   read/wrtie various sockets. Ths sd is dup()ed, so you may close or
-   otherwise manipulate your copy.  The duped copy will be destroyed when the
-   nsi is destroyed 
-*/
-nsock_iod nsi_new2(nsock_pool nsockp, int sd, void *userdata) {
-  mspool *nsp = (mspool *) nsockp;
-  msiod *nsi;
-
-  nsi = (msiod *) gh_list_pop(&nsp->free_iods);
-  if (!nsi) nsi = (msiod * ) safe_malloc(sizeof(msiod));
-
-  memset(nsi, 0, sizeof(*nsi));
-
-  if (sd == -1) {  
-    nsi->sd = -1;
-    nsi->state = NSIOD_STATE_INITIAL;
-  } else {
-    nsi->sd = dup(sd);
-    if (nsi->sd == -1) return NULL;
-    nsock_unblock_socket(nsi->sd);
-    nsi->state = NSIOD_STATE_UNKNOWN;
-  }
-    
-  nsi->userdata = userdata;
-  nsi->nsp = (mspool *) nsockp;
-  nsi->events_pending = 0;
-
-#if HAVE_OPENSSL
-  nsi->ssl_session = NULL;
-#endif
-
-  nsi->id = nsp->next_iod_serial++;
-  if (nsi->id == 0) nsi->id = nsp->next_iod_serial++;
-
-  /* The nsp keeps track of active msiods so it can delete them 
-     if it is deleted */
-  nsi->entry_in_nsp_active_iods = gh_list_append(&nsi->nsp->active_iods, nsi);
-
-  return (nsock_iod) nsi;
-}
-
-
-/* If msiod_new returned success, you must free the iod when you are
-   done with it to conserve memory (and in some cases, sockets).
-   After this call, nsockiod may no longer be used -- you need to
-   create a new one with nsi_new().  pending_response tells what to do
-   with any events that are pending on this nsock_iod.  This can be
-   NSOCK_PENDING_NOTIFY (send a KILL notification to each event),
-   NSOCK_PENDING_SILENT (do not send notification to the killed
-   events), or NSOCK_PENDING_ERROR (print an error message and quiit
-   the program) */
-void nsi_delete(nsock_iod nsockiod, int pending_response) {
-  msiod *nsi = (msiod *) nsockiod;
-  gh_list *elist_ar[3];
-  int elist;
-  gh_list_elem *currev_elem, *next_elem;
-  msevent *currev;
-  assert(nsi);
-
-  if (nsi->state == NSIOD_STATE_DELETED) {
-    fatal("nsi_delete() called on nsock_iod which appears to have already been deleted");
-  }
-
-  if (nsi->events_pending > 0) {
-    /* shit -- they killed the msiod while an event was still pending
-       on it.  Maybe I should store the pending events in the msiod.
-       On the other hand, this should be a pretty rare occurance and
-       so I'll save space and hassle by just locating the events here
-       by searching through the active events list */
-    if (pending_response == NSOCK_PENDING_ERROR)
-      fatal("nsi_delete called with argument NSOCK_PENDING_ERROR on a nsock_iod that has %d pending event(s) associated with it", nsi->events_pending);
-    assert(pending_response == NSOCK_PENDING_NOTIFY ||
-          pending_response == NSOCK_PENDING_SILENT);
-    elist_ar[0] = &(nsi->nsp->evl.read_events);
-    elist_ar[1] = &(nsi->nsp->evl.write_events);
-    elist_ar[2] = &(nsi->nsp->evl.connect_events);
-    for(elist = 0; elist < 3 && nsi->events_pending > 0; elist++) {
-      currev_elem = GH_LIST_FIRST_ELEM(elist_ar[elist]);
-      while(currev_elem) {
-       currev = (msevent *) GH_LIST_ELEM_DATA(currev_elem);
-       next_elem = GH_LIST_ELEM_NEXT(currev_elem);
-       if (currev->iod == nsi) {
-         // OK - we found an event pending on this IOD.  Kill it.
-         // printf("Found an outstanding event (out of %d), removing\n", nsi->events_pending);
-         msevent_cancel(nsi->nsp, currev, elist_ar[elist], currev_elem, pending_response == NSOCK_PENDING_NOTIFY);
-       }
-       if (nsi->events_pending == 0)
-         break;
-       currev_elem = next_elem;
-      }
-    }
-  }
-  
-  if (nsi->events_pending != 0)
-    fatal("Trying to delete NSI, but could not find %d of the purportedly pending events on that IOD.\n", nsi->events_pending);
-
-#if HAVE_OPENSSL
-  /* Close any SSL resources */
-  if (nsi->ssl) {
-    /* No longer free session because copy nsi stores is not reference counted */
-    /*    if (nsi->ssl_session)
-         SSL_SESSION_free(nsi->ssl_session); 
-         nsi->ssl_session = NULL; */
-    if (SSL_shutdown(nsi->ssl) == -1) {
-      if (nsi->nsp->tracelevel > 1)
-       nsock_trace(nsi->nsp, 
-                   "nsi_delete(): SSL shutdown failed (%s) on NSI %li",
-                   ERR_reason_error_string(SSL_get_error(nsi->ssl, -1)), 
-                   nsi->id);
-    }
-    /* I don't really care if the SSL_shutdown() succeeded politely.  I could
-       make the SD blocking temporarily for this, but I'm hoping it will
-       succeed 95% of the time because we can usually write to a socket. */
-    SSL_free(nsi->ssl);
-    nsi->ssl = NULL;
-
-  }
-#endif
-
-  if (nsi->sd >= 0) {
-    close(nsi->sd);
-    nsi->sd = -1;
-  }
-
-  nsi->state = NSIOD_STATE_DELETED;
-  nsi->userdata = NULL;
-
-  gh_list_remove_elem(&nsi->nsp->active_iods, nsi->entry_in_nsp_active_iods);
-  gh_list_prepend(&nsi->nsp->free_iods, nsi);
-
-}
-
-/* Returns the ID of an nsock_iod .  This ID is always unique amongst
-   ids for a given nspool (unless you blow through billions of them). */
-unsigned long nsi_id(nsock_iod nsockiod) {
-  assert(nsockiod);
-  return ((msiod *)nsockiod)->id;
-}
-
-
-/* Returns the SSL_SESSION of an nsock_iod, and increments it's usage count */
-nsock_ssl_session nsi_get1_ssl_session(nsock_iod nsockiod) {
-#if HAVE_OPENSSL
-  return SSL_get1_session(((msiod *)nsockiod)->ssl);
-#else
-  return NULL;
-#endif
-}
-
-/* Returns the SSL_SESSION without incrementing usage count */
-nsock_ssl_session nsi_get0_ssl_session(nsock_iod nsockiod) {
-#if HAVE_OPENSSL
-  return SSL_get0_session(((msiod *)nsockiod)->ssl);
-#else
-  return NULL;
-#endif
-}
-
-/* sets the ssl session of an nsock_iod, increments usage count.  The
- session should not have been set yet (as no freeing is done) */
-#if HAVE_OPENSSL
-void nsi_set_ssl_session(msiod *iod, SSL_SESSION *sessid) {
-  if (sessid) {
-    iod->ssl_session = sessid;
-
-    /* No reference counting for the copy stored briefly in nsiod */
-  }
-}
-#endif
-
-/* Sometimes it is useful to store a pointer to information inside
-   the msiod so you can retrieve it during a callback. */
-void nsi_setud(nsock_iod nsockiod, void *data) {
-  assert(nsockiod);
-  ((msiod *)nsockiod)->userdata = data;
-}
-
-/* And the function above wouldn't make much sense if we didn't have a way
-   to retrieve that data ... */
-void *nsi_getud(nsock_iod nsockiod) {
-  assert(nsockiod);
-  return ((msiod *)nsockiod)->userdata;
-}
-
-  /* Returns 1 if an NSI is communicating via SSL, 0 otherwise */
-int nsi_checkssl(nsock_iod nsockiod) {
-  return ((msiod *)nsockiod)->ssl? 1 : 0;
-}
-
-/* Returns the remote peer port (or -1 if unavailable).  Note the
-   return value is a whole int so that -1 can be distinguished from
-   65535.  Port is returned in host byte order. */
-int nsi_peerport(msiod *nsi) {
-  int fam;
-  if (nsi->peerlen <= 0)
-    return -1;
-
-  fam = ((struct sockaddr_in *) &nsi->peer)->sin_family;
-
-  if (fam == AF_INET)
-    return ntohs(((struct sockaddr_in *) &nsi->peer)->sin_port);
-#if HAVE_IPV6
-  else if (fam == AF_INET6)
-    return ntohs(((struct sockaddr_in6 *) &nsi->peer)->sin6_port);
-#endif
-
-  return -1;
-}
-
-/* I didn't want to do this.  Its an ugly hack, but I suspect it will
-   be neccessary.  I certainly can't reproduce in nsock EVERYTHING you
-   might want to do with a socket.  So I'm offering you this function
-   to obtain the socket descriptor which is (usually) wrapped in a
-   nsock_iod).  You can do "reasonable" things with it, like setting
-   socket receive buffers.  But don't create havok by closing the
-   descriptor!  If the descriptor you get back is -1, the iod does not
-   currently possess a valid descriptor */
-int nsi_getsd(nsock_iod nsockiod) {
-  assert(nsockiod);
-  return ((msiod *)nsockiod)->sd;
-}
diff --git a/nsock/src/nsock_pool.c b/nsock/src/nsock_pool.c
deleted file mode 100644 (file)
index cff0e31..0000000
+++ /dev/null
@@ -1,236 +0,0 @@
-
-/***************************************************************************
- * nsock_pool.c -- This contains the functions that deal with creating,    *
- * destroying, and otherwise manipulating nsock_pools (and their internal  *
- * mspool representation).  An nsock_pool aggregates and manages events    *
- * and i/o descriptors                                                     *
- *                                                                         *
- ***********************IMPORTANT NSOCK LICENSE TERMS***********************
- *                                                                         *
- * The nsock parallel socket event library is (C) 1999-2004 Insecure.Com   *
- * LLC This library is free software; you may redistribute and/or          *
- * modify it under the terms of the GNU General Public License as          *
- * published by the Free Software Foundation; Version 2.  This guarantees  *
- * your right to use, modify, and redistribute this software under certain *
- * conditions.  If this license is unacceptable to you, Insecure.Com LLC   *
- * may be willing to sell alternative licenses (contact                    *
- * [email protected] ).                                                   *
- *                                                                         *
- * As a special exception to the GPL terms, Insecure.Com LLC grants        *
- * permission to link the code of this program with any version of the     *
- * OpenSSL library which is distributed under a license identical to that  *
- * listed in the included Copying.OpenSSL file, and distribute linked      *
- * combinations including the two. You must obey the GNU GPL in all        *
- * respects for all of the code used other than OpenSSL.  If you modify    *
- * this file, you may extend this exception to your version of the file,   *
- * but you are not obligated to do so.                                     *
- *                                                                         * 
- * If you received these files with a written license agreement stating    *
- * terms other than the (GPL) terms above, then that alternative license   *
- * agreement takes precedence over this comment.                          *
- *                                                                         *
- * Source is provided to this software because we believe users have a     *
- * right to know exactly what a program is going to do before they run it. *
- * This also allows you to audit the software for security holes (none     *
- * have been found so far).                                                *
- *                                                                         *
- * Source code also allows you to port Nmap to new platforms, fix bugs,    *
- * and add new features.  You are highly encouraged to send your changes   *
- * to [email protected] for possible incorporation into the main         *
- * distribution.  By sending these changes to Fyodor or one the            *
- * insecure.org development mailing lists, it is assumed that you are      *
- * offering Fyodor and Insecure.Com LLC the unlimited, non-exclusive right *
- * to reuse, modify, and relicense the code.  Nmap will always be          *
- * available Open Source, but this is important because the inability to   *
- * relicense code has caused devastating problems for other Free Software  *
- * projects (such as KDE and NASM).  We also occasionally relicense the    *
- * code to third parties as discussed above.  If you wish to specify       *
- * special license conditions of your contributions, just say so when you  *
- * send them.                                                              *
- *                                                                         *
- * This program is distributed in the hope that it will be useful, but     *
- * WITHOUT ANY WARRANTY; without even the implied warranty of              *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU       *
- * General Public License for more details (                               *
- * http://www.gnu.org/copyleft/gpl.html ).                                 *
- *                                                                         *
- ***************************************************************************/
-
-/* $Id$ */
-
-#include "nsock_internal.h"
-#include "gh_list.h"
-#include "netutils.h"
-
-#include <string.h>
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#include <signal.h>
-
-extern struct timeval nsock_tod;
-unsigned long nsp_next_id = 2;
-
-static int nsocklib_initialized = 0; /* To use this library, the first thing
-                                       they must do is create a pool -- so
-                                       we do the initialization during the 
-                                       first pool creation */
-
-static void nsock_library_initialize(void) {
-  int res;
-
-  /* We want to make darn sure the evil SIGPIPE is ignored */
-#ifndef WIN32
-  signal(SIGPIPE, SIG_IGN);
-#endif
-
-  /* And we're gonna need sockets -- LOTS of sockets ... */
-  res = maximize_fdlimit();
-#ifndef WIN32
-  assert(res > 7);
-#endif
-}
-
-/* Every mst has an ID that is unique across the program execution */
-unsigned long nsp_getid(nsock_pool nsp) {
-  mspool *mt = (mspool *) nsp;
-  return mt->id;
-}
-
-/* This next function returns the errno style error code -- which is only
-   valid if the status is NSOCK_LOOP_ERROR was returned by nsock_loop() */
-int nsp_geterrorcode(nsock_pool nsp) {
-  mspool *mt = (mspool *) nsp;
-  return mt->errnum;
-}
-
-/* Sometimes it is useful to store a pointer to information inside
-   the NSP so you can retrieve it during a callback. */
-void nsp_setud(nsock_pool nsp, void *data) {
-  mspool *mt = (mspool *) nsp;
-  mt->userdata = data;
-}
-
-/* And the define above wouldn't make much sense if we didn't have a way
-   to retrieve that data ... */
-void *nsp_getud(nsock_pool nsp) {
-  mspool *mt = (mspool *) nsp;
-  return mt->userdata;
-}
-
-/* Sets a trace/debug level.  Zero (the default) turns tracing off,
-   while higher numbers are more verbose.  This is generally only used
-   for debugging purposes.  Trace logs are printed to stdout.  The
-   initial value is set in nsp_new().  A level of 1 or 2 is usually
-   sufficient, but 10 will ensure you get everything.  The basetime
-   can be NULL to print trace lines with the current time, otherwise
-   the difference between the current time and basetime will be used
-   (the time program execution starts would be a good candidate) */
-void nsp_settrace(nsock_pool nsp, int level, const struct timeval *basetime) {
-  mspool *mt = (mspool *) nsp;
-  mt->tracelevel = level;
-  if (!basetime) 
-    memset(&(mt->tracebasetime), 0, sizeof(struct timeval));
-  else mt->tracebasetime = *basetime;
-}
-
-/* And here is how you create an nsock_pool.  This allocates, initializes,
-   and returns an nsock_pool event aggregator.  In the case of error,
-   NULL will be returned.  If you do not wish to immediately associate
-   any userdata, pass in NULL. */
-nsock_pool nsp_new(void *userdata) {
-  mspool *nsp;
-  nsp = (mspool *) safe_malloc(sizeof(*nsp));
-  memset(nsp, 0, sizeof(*nsp));
-
-  gettimeofday(&nsock_tod, NULL);
-
-  nsp->tracelevel = 0;
-  if (!nsocklib_initialized) {
-    nsock_library_initialize();
-    nsocklib_initialized = 1;
-  }
-
-  nsp->id = nsp_next_id++;
-
-  /* Now to init the nsock_io_info */
-  FD_ZERO(&nsp->mioi.fds_master_r);
-  FD_ZERO(&nsp->mioi.fds_master_w);
-  FD_ZERO(&nsp->mioi.fds_master_x);
-  nsp->mioi.max_sd = -1;
-  nsp->mioi.results_left = 0;
-
-  /* Next comes the event list structure */
-  gh_list_init(&nsp->evl.connect_events);
-  gh_list_init(&nsp->evl.read_events);
-  gh_list_init(&nsp->evl.write_events);
-  gh_list_init(&nsp->evl.timer_events);
-  gh_list_init(&nsp->evl.free_events);
-  nsp->evl.next_ev.tv_sec = 0;
-  nsp->evl.events_pending = 0;
-
-  nsp->userdata = userdata;
-
-  gh_list_init(&nsp->free_iods);
-  gh_list_init(&nsp->active_iods);
-  nsp->next_event_serial = 1;
-
-  return (nsock_pool) nsp;
-}
-
-/* If nsp_new returned success, you must free the nsp when you are
-   done with it to conserve memory (and in some cases, sockets).
-   After this call, nsp may no longer be used.  Any pending events are
-   sent an NSE_STATUS_KILL callback and all outstanding iods are
-   deleted. */
-void nsp_delete(nsock_pool ms_pool) {
-  mspool *nsp = (mspool *) ms_pool;
-   gh_list *event_lists[] = { &nsp->evl.connect_events,
-                               &nsp->evl.read_events,
-                               &nsp->evl.write_events,
-                               &nsp->evl.timer_events,
-                               0
-                             };
-   int current_list_idx;
-   msevent *nse;
-   msiod *nsi;
-   gh_list_elem *current, *next;
-
-   assert(nsp);
-
-
-  /* First I go through all the events sending NSE_STATUS_KILL */
-    /* foreach list */
-    for(current_list_idx = 0; event_lists[current_list_idx] != NULL;
-       current_list_idx++) {
-      while(GH_LIST_COUNT(event_lists[current_list_idx]) > 0) {
-       nse = (msevent *) gh_list_pop(event_lists[current_list_idx]);
-       nse->status = NSE_STATUS_KILL;
-       nsock_trace_handler_callback(nsp, nse);
-       nse->handler(nsp, nse, nse->userdata);
-       if (nse->iod) {
-         nse->iod->events_pending--;
-         assert(nse->iod->events_pending >= 0);
-       }
-       msevent_delete(nsp, nse);
-      }      
-    }
-
-  /* Then I go through and kill the iods */
-    for(current = GH_LIST_FIRST_ELEM(&nsp->active_iods);
-       current != NULL; current = next) {
-      next = GH_LIST_ELEM_NEXT(current);
-      nsi = (msiod *) GH_LIST_ELEM_DATA(current);
-      nsi_delete(nsi, NSOCK_PENDING_ERROR);
-    }
-
-    /* Now we free all the memory in the free iod list */
-    while((nsi = (msiod *) gh_list_pop(&nsp->free_iods))) {
-      free(nsi);
-    }
-
-    free(nsp);
-}
diff --git a/nsock/src/nsock_read.c b/nsock/src/nsock_read.c
deleted file mode 100644 (file)
index 8498a9c..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-
-/***************************************************************************
- * nsock_read.c -- This contains the functions for requesting various read *
- * events from the nsock parallel socket event library                     *
- *                                                                         *
- ***********************IMPORTANT NSOCK LICENSE TERMS***********************
- *                                                                         *
- * The nsock parallel socket event library is (C) 1999-2004 Insecure.Com   *
- * LLC This library is free software; you may redistribute and/or          *
- * modify it under the terms of the GNU General Public License as          *
- * published by the Free Software Foundation; Version 2.  This guarantees  *
- * your right to use, modify, and redistribute this software under certain *
- * conditions.  If this license is unacceptable to you, Insecure.Com LLC   *
- * may be willing to sell alternative licenses (contact                    *
- * [email protected] ).                                                   *
- *                                                                         *
- * As a special exception to the GPL terms, Insecure.Com LLC grants        *
- * permission to link the code of this program with any version of the     *
- * OpenSSL library which is distributed under a license identical to that  *
- * listed in the included Copying.OpenSSL file, and distribute linked      *
- * combinations including the two. You must obey the GNU GPL in all        *
- * respects for all of the code used other than OpenSSL.  If you modify    *
- * this file, you may extend this exception to your version of the file,   *
- * but you are not obligated to do so.                                     *
- *                                                                         * 
- * If you received these files with a written license agreement stating    *
- * terms other than the (GPL) terms above, then that alternative license   *
- * agreement takes precedence over this comment.                          *
- *                                                                         *
- * Source is provided to this software because we believe users have a     *
- * right to know exactly what a program is going to do before they run it. *
- * This also allows you to audit the software for security holes (none     *
- * have been found so far).                                                *
- *                                                                         *
- * Source code also allows you to port Nmap to new platforms, fix bugs,    *
- * and add new features.  You are highly encouraged to send your changes   *
- * to [email protected] for possible incorporation into the main         *
- * distribution.  By sending these changes to Fyodor or one the            *
- * insecure.org development mailing lists, it is assumed that you are      *
- * offering Fyodor and Insecure.Com LLC the unlimited, non-exclusive right *
- * to reuse, modify, and relicense the code.  Nmap will always be          *
- * available Open Source, but this is important because the inability to   *
- * relicense code has caused devastating problems for other Free Software  *
- * projects (such as KDE and NASM).  We also occasionally relicense the    *
- * code to third parties as discussed above.  If you wish to specify       *
- * special license conditions of your contributions, just say so when you  *
- * send them.                                                              *
- *                                                                         *
- * This program is distributed in the hope that it will be useful, but     *
- * WITHOUT ANY WARRANTY; without even the implied warranty of              *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU       *
- * General Public License for more details (                               *
- * http://www.gnu.org/copyleft/gpl.html ).                                 *
- *                                                                         *
- ***************************************************************************/
-
-/* $Id$ */
-
-#include "nsock_internal.h"
-
-/* Read up to nlines lines (terminated with \n, which of course
-   inclues \r\n), or until EOF, or until the timeout, whichever comes
-   first.  Note that NSE_STATUS_SUCCESS will be returned in the case
-   of EOF or tiemout if at least 1 char has been read.  Also note that
-   you may get more than 'nlines' back -- we just stop once "at least"
-   'nlines' is read */
-nsock_event_id nsock_readlines(nsock_pool nsp, nsock_iod ms_iod, 
-                        nsock_ev_handler handler, int timeout_msecs,
-                        void *userdata, int nlines) {
-  msiod *nsi = (msiod *) ms_iod;
-  mspool *ms = (mspool *) nsp;
-  msevent *nse;
-
-
-  nse = msevent_new(ms, NSE_TYPE_READ, nsi, timeout_msecs, handler, userdata);
-  assert(nse);
-
-  if (ms->tracelevel > 0) {
-    if (nsi->peerlen > 0)
-       nsock_trace(ms, "Read request for %d lines from IOD #%li [%s:%hi] EID %li", nlines, nsi->id, 
-                   inet_ntop_ez(&nsi->peer, nsi->peerlen), nsi_peerport(nsi), nse->id);
-    else 
-      nsock_trace(ms, "Read request for %d lines from IOD #%li (peer unspecified) EID %li", nlines, 
-                 nsi->id, nse->id);
-  }
-  
-  nse->readinfo.read_type = NSOCK_READLINES;
-  nse->readinfo.num = nlines;
-  
-  nsp_add_event(ms, nse);
-  
-  return nse->id;
-}
-
-/* Same as above, except it tries to read at least 'nbytes' instead of 
-   'nlines'. */
-nsock_event_id nsock_readbytes(nsock_pool nsp, nsock_iod ms_iod,
-                        nsock_ev_handler handler, int timeout_msecs, 
-                        void *userdata, int nbytes) {
-
-  msiod *nsi = (msiod *) ms_iod;
-  mspool *ms = (mspool *) nsp;
-  msevent *nse;
-
-  nse = msevent_new(ms, NSE_TYPE_READ, nsi, timeout_msecs, handler, userdata);
-  assert(nse);
-
-  if (ms->tracelevel > 0) {
-    if (nsi->peerlen > 0)
-       nsock_trace(ms, "Read request for %d bytes from IOD #%li [%s:%hi] EID %li", nbytes, nsi->id, 
-                   inet_ntop_ez(&nsi->peer, nsi->peerlen), nsi_peerport(nsi), nse->id);
-    else 
-      nsock_trace(ms, "Read request for %d bytes from IOD #%li (peer unspecified) EID %li", nbytes, 
-                 nsi->id, nse->id);
-  }
-
-  nse->readinfo.read_type = NSOCK_READBYTES;
-  nse->readinfo.num = nbytes;
-  
-  nsp_add_event(ms, nse);
-  
-  return nse->id;
-
-}
-
-
-/* The simplest read function -- returns NSE_STATUS_SUCCESS when it
-   reads anything, otherwise it returns timeout, eof, or error as
-   appropriate */
-nsock_event_id nsock_read(nsock_pool nsp, nsock_iod ms_iod, nsock_ev_handler handler, 
-                   int timeout_msecs, void *userdata) {
-
-  msiod *nsi = (msiod *) ms_iod;
-  mspool *ms = (mspool *) nsp;
-  msevent *nse;
-
-  nse = msevent_new(ms, NSE_TYPE_READ, nsi, timeout_msecs, handler, userdata);
-  assert(nse);
-
-  if (ms->tracelevel > 0) {
-    if (nsi->peerlen > 0)
-       nsock_trace(ms, "Read request from IOD #%li [%s:%hi] (timeout: %dms) EID %li", nsi->id, inet_ntop_ez(&nsi->peer, nsi->peerlen), nsi_peerport(nsi), timeout_msecs, nse->id);
-    else 
-      nsock_trace(ms, "Read request from IOD #%li (peer unspecified) (timeout: %dms) EID %li", nsi->id, timeout_msecs, nse->id);
-  }
-
-  nse->readinfo.read_type = NSOCK_READ;
-  
-  nsp_add_event(ms, nse);
-  
-  return nse->id;
-
-}
-
diff --git a/nsock/src/nsock_ssl.c b/nsock/src/nsock_ssl.c
deleted file mode 100644 (file)
index a8a1490..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-
-/***************************************************************************
- * nsock_ssl.c -- This contains functions that relate somewhat exclusively *
- * to SSL (over TCP) support in nsock.  Where SSL support is incidental,   *
- * it is often in other files where code can be more easily shared between *
- * the SSL and NonSSL paths.                                               *
- *                                                                         *
- ***********************IMPORTANT NSOCK LICENSE TERMS***********************
- *                                                                         *
- * The nsock parallel socket event library is (C) 1999-2004 Insecure.Com   *
- * LLC This library is free software; you may redistribute and/or          *
- * modify it under the terms of the GNU General Public License as          *
- * published by the Free Software Foundation; Version 2.  This guarantees  *
- * your right to use, modify, and redistribute this software under certain *
- * conditions.  If this license is unacceptable to you, Insecure.Com LLC   *
- * may be willing to sell alternative licenses (contact                    *
- * [email protected] ).                                                   *
- *                                                                         *
- * As a special exception to the GPL terms, Insecure.Com LLC grants        *
- * permission to link the code of this program with any version of the     *
- * OpenSSL library which is distributed under a license identical to that  *
- * listed in the included Copying.OpenSSL file, and distribute linked      *
- * combinations including the two. You must obey the GNU GPL in all        *
- * respects for all of the code used other than OpenSSL.  If you modify    *
- * this file, you may extend this exception to your version of the file,   *
- * but you are not obligated to do so.                                     *
- *                                                                         * 
- * If you received these files with a written license agreement stating    *
- * terms other than the (GPL) terms above, then that alternative license   *
- * agreement takes precedence over this comment.                          *
- *                                                                         *
- * Source is provided to this software because we believe users have a     *
- * right to know exactly what a program is going to do before they run it. *
- * This also allows you to audit the software for security holes (none     *
- * have been found so far).                                                *
- *                                                                         *
- * Source code also allows you to port Nmap to new platforms, fix bugs,    *
- * and add new features.  You are highly encouraged to send your changes   *
- * to [email protected] for possible incorporation into the main         *
- * distribution.  By sending these changes to Fyodor or one the            *
- * insecure.org development mailing lists, it is assumed that you are      *
- * offering Fyodor and Insecure.Com LLC the unlimited, non-exclusive right *
- * to reuse, modify, and relicense the code.  Nmap will always be          *
- * available Open Source, but this is important because the inability to   *
- * relicense code has caused devastating problems for other Free Software  *
- * projects (such as KDE and NASM).  We also occasionally relicense the    *
- * code to third parties as discussed above.  If you wish to specify       *
- * special license conditions of your contributions, just say so when you  *
- * send them.                                                              *
- *                                                                         *
- * This program is distributed in the hope that it will be useful, but     *
- * WITHOUT ANY WARRANTY; without even the implied warranty of              *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU       *
- * General Public License for more details (                               *
- * http://www.gnu.org/copyleft/gpl.html ).                                 *
- *                                                                         *
- ***************************************************************************/
-
-/* $Id$ */
-
-
-#include "nsock.h"
-#include "nsock_internal.h"
-#include "nsock_ssl.h"
-#include "netutils.h"
-
-#if HAVE_OPENSSL
-
-extern struct timeval nsock_tod;
-
-static struct NsockSSLInfo *sslnfo = NULL;
-
-/* Initializes Nsock for low security (fast) SSL connections.
- Eventually it will probably have arguments for various attributes
- (such as whether you want the connection to be fast or secure).  It is
- OK to call it multiple times - only the first one will count.  */
-void Nsock_SSL_Init() {
-  char rndbuf[128];
-
-  if (sslnfo)
-    return; /* Already done */
-
-  sslnfo = (struct NsockSSLInfo *) safe_zalloc(sizeof(*sslnfo));
-
-  SSL_load_error_strings();
-  SSL_library_init();
-  
-  /* Note that we are assuming the SSL connections don't have to
-     be high security */
-  get_random_bytes(rndbuf, sizeof(rndbuf));
-  RAND_seed(rndbuf, sizeof(rndbuf));
-
-  sslnfo->ctx = SSL_CTX_new( SSLv23_client_method() );
-  if ( ! sslnfo->ctx ) {
-    fatal("OpenSSL failed to create a new SSL_CTX: %s", 
-         ERR_error_string(ERR_get_error(), NULL));
-  }
-  
-  /* set us to ignore cert entirely */
-  SSL_CTX_set_verify( sslnfo->ctx, SSL_VERIFY_NONE, NULL );   
-
-  /* set bug-compatibility for pretty much everything. */
-  SSL_CTX_set_options( sslnfo->ctx, SSL_OP_ALL );
-  /* accept any and all ciphers, including none, prefering the less secure ciphers.
-     This isn't actually the best way to get performance - AES may be faster than
-     DES, for example. */
-
-  /* Accept any and all ciphers, including none.  Since speed, not security, is
-     our goal, the list below is sorted by speed, based on Brian Hatch's ([email protected])
-     tests on an Pentium 686 against the ciphers listed.  Nmap's typical
-     version scanning connections are short and sweet, so the actual speed
-     difference isn't terribly great anyway. */
-  if (!SSL_CTX_set_cipher_list( sslnfo->ctx, 
-                               "RC4-SHA:RC4-MD5:NULL-SHA:EXP-DES-CBC-SHA:EXP-EDH-RSA-DES-CBC-SHA:EXP-RC4-MD5:NULL-MD5:EDH-RSA-DES-CBC-SHA:EXP-RC2-CBC-MD5:EDH-RSA-DES-CBC3-SHA:EXP-ADH-RC4-MD5:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:EXP-ADH-DES-CBC-SHA:ADH-AES256-SHA:ADH-DES-CBC-SHA:ADH-RC4-MD5:AES256-SHA:DES-CBC-SHA:DES-CBC3-SHA:ADH-DES-CBC3-SHA:AES128-SHA:ADH-AES128-SHA:eNULL:ALL")) {
-    fatal("Unable to set OpenSSL cipher list: %s", 
-         ERR_error_string(ERR_get_error(), NULL));
-  }
-
-
-  /* Our SSL* will always have the SSL_SESSION* inside it, so we neither
-     need to use nor waste memory for the session cache.
-     (Use '1' because '0' means 'infinite'.)   */
-  SSL_CTX_set_session_cache_mode(
-     sslnfo->ctx,  SSL_SESS_CACHE_OFF | SSL_SESS_CACHE_NO_AUTO_CLEAR );
-  SSL_CTX_sess_set_cache_size( sslnfo->ctx, 1 ); 
-  SSL_CTX_set_timeout( sslnfo->ctx, 3600); // pretty unnecessary
-
-}
-
-/* This function returns the Nsock Global SSL information.  You should
-   have called Nsock_SSL_Init once before, but this function will take
-   care of it if you haven't. */
-struct NsockSSLInfo *Nsock_SSLGetInfo() {
-
-  if (!sslnfo)
-    Nsock_SSL_Init();
-
-  return sslnfo;
-}
-#endif /* HAVE_OPENSSL */
diff --git a/nsock/src/nsock_ssl.h b/nsock/src/nsock_ssl.h
deleted file mode 100644 (file)
index 4146571..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-
-/***************************************************************************
- * nsock_ssl.c -- This contains functions that relate somewhat exclusively *
- * to SSL (over TCP) support in nsock.  Where SSL support is incidental,   *
- * it is often in other files where code can be more easily shared between *
- * the SSL and NonSSL paths.                                               *
- *                                                                         *
- ***********************IMPORTANT NSOCK LICENSE TERMS***********************
- *                                                                         *
- * The nsock parallel socket event library is (C) 1999-2004 Insecure.Com   *
- * LLC This library is free software; you may redistribute and/or          *
- * modify it under the terms of the GNU General Public License as          *
- * published by the Free Software Foundation; Version 2.  This guarantees  *
- * your right to use, modify, and redistribute this software under certain *
- * conditions.  If this license is unacceptable to you, Insecure.Com LLC   *
- * may be willing to sell alternative licenses (contact                    *
- * [email protected] ).                                                   *
- *                                                                         *
- * As a special exception to the GPL terms, Insecure.Com LLC grants        *
- * permission to link the code of this program with any version of the     *
- * OpenSSL library which is distributed under a license identical to that  *
- * listed in the included Copying.OpenSSL file, and distribute linked      *
- * combinations including the two. You must obey the GNU GPL in all        *
- * respects for all of the code used other than OpenSSL.  If you modify    *
- * this file, you may extend this exception to your version of the file,   *
- * but you are not obligated to do so.                                     *
- *                                                                         * 
- * If you received these files with a written license agreement stating    *
- * terms other than the (GPL) terms above, then that alternative license   *
- * agreement takes precedence over this comment.                          *
- *                                                                         *
- * Source is provided to this software because we believe users have a     *
- * right to know exactly what a program is going to do before they run it. *
- * This also allows you to audit the software for security holes (none     *
- * have been found so far).                                                *
- *                                                                         *
- * Source code also allows you to port Nmap to new platforms, fix bugs,    *
- * and add new features.  You are highly encouraged to send your changes   *
- * to [email protected] for possible incorporation into the main         *
- * distribution.  By sending these changes to Fyodor or one the            *
- * insecure.org development mailing lists, it is assumed that you are      *
- * offering Fyodor and Insecure.Com LLC the unlimited, non-exclusive right *
- * to reuse, modify, and relicense the code.  Nmap will always be          *
- * available Open Source, but this is important because the inability to   *
- * relicense code has caused devastating problems for other Free Software  *
- * projects (such as KDE and NASM).  We also occasionally relicense the    *
- * code to third parties as discussed above.  If you wish to specify       *
- * special license conditions of your contributions, just say so when you  *
- * send them.                                                              *
- *                                                                         *
- * This program is distributed in the hope that it will be useful, but     *
- * WITHOUT ANY WARRANTY; without even the implied warranty of              *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU       *
- * General Public License for more details (                               *
- * http://www.gnu.org/copyleft/gpl.html ).                                 *
- *                                                                         *
- ***************************************************************************/
-
-/* $Id$ */
-
-#ifndef NSOCK_SSL_H
-#define NSOCK_SSL_H
-
-#ifdef HAVE_CONFIG_H
-#include "nsock_config.h"
-#endif
-
-#if HAVE_OPENSSL
-#include <openssl/ssl.h>
-#include <openssl/err.h>
-#include <openssl/rand.h>
-
-
-struct sslinfo {
-  /* SSL_ERROR_NONE, SSL_ERROR_WANT_CONNECT, SSL_ERROR_WAINT_READ, or
-     SSL_ERROR_WANT_WRITE */
-  int ssl_desire; 
-};
-
-/* This is the SSL information that is global to nsock and not tied
-   to any particular connection. */
-struct NsockSSLInfo {
-  SSL_CTX *ctx; /* The SSL Context (options and such) */
-};
-
-/* Initializes Nsock for low security (fast) SSL connections.
- Eventually it will probably have arguments for various attributes
- (such as whether you want the connection to be fast or secure).  It is
- OK to call it multiple times - only the first one will count.  */
-void Nsock_SSL_Init();
-
-/* This function returns the Nsock Global SSL information.  You should
-   have called Nsock_SSL_Init once before, but this function will take
-   care of it if you haven't. */
-struct NsockSSLInfo *Nsock_SSLGetInfo();
-#endif /* HAVE_OPENSSL */
-#endif /* NSOCK_SSL_H */
diff --git a/nsock/src/nsock_timers.c b/nsock/src/nsock_timers.c
deleted file mode 100644 (file)
index 2ee7eef..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-
-/***************************************************************************
- * nsock_read.c -- This contains the functions for requesting timers       *
- * from the nsock parallel socket event library                            *
- *                                                                         *
- ***********************IMPORTANT NSOCK LICENSE TERMS***********************
- *                                                                         *
- * The nsock parallel socket event library is (C) 1999-2004 Insecure.Com   *
- * LLC This library is free software; you may redistribute and/or          *
- * modify it under the terms of the GNU General Public License as          *
- * published by the Free Software Foundation; Version 2.  This guarantees  *
- * your right to use, modify, and redistribute this software under certain *
- * conditions.  If this license is unacceptable to you, Insecure.Com LLC   *
- * may be willing to sell alternative licenses (contact                    *
- * [email protected] ).                                                   *
- *                                                                         *
- * As a special exception to the GPL terms, Insecure.Com LLC grants        *
- * permission to link the code of this program with any version of the     *
- * OpenSSL library which is distributed under a license identical to that  *
- * listed in the included Copying.OpenSSL file, and distribute linked      *
- * combinations including the two. You must obey the GNU GPL in all        *
- * respects for all of the code used other than OpenSSL.  If you modify    *
- * this file, you may extend this exception to your version of the file,   *
- * but you are not obligated to do so.                                     *
- *                                                                         * 
- * If you received these files with a written license agreement stating    *
- * terms other than the (GPL) terms above, then that alternative license   *
- * agreement takes precedence over this comment.                          *
- *                                                                         *
- * Source is provided to this software because we believe users have a     *
- * right to know exactly what a program is going to do before they run it. *
- * This also allows you to audit the software for security holes (none     *
- * have been found so far).                                                *
- *                                                                         *
- * Source code also allows you to port Nmap to new platforms, fix bugs,    *
- * and add new features.  You are highly encouraged to send your changes   *
- * to [email protected] for possible incorporation into the main         *
- * distribution.  By sending these changes to Fyodor or one the            *
- * insecure.org development mailing lists, it is assumed that you are      *
- * offering Fyodor and Insecure.Com LLC the unlimited, non-exclusive right *
- * to reuse, modify, and relicense the code.  Nmap will always be          *
- * available Open Source, but this is important because the inability to   *
- * relicense code has caused devastating problems for other Free Software  *
- * projects (such as KDE and NASM).  We also occasionally relicense the    *
- * code to third parties as discussed above.  If you wish to specify       *
- * special license conditions of your contributions, just say so when you  *
- * send them.                                                              *
- *                                                                         *
- * This program is distributed in the hope that it will be useful, but     *
- * WITHOUT ANY WARRANTY; without even the implied warranty of              *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU       *
- * General Public License for more details (                               *
- * http://www.gnu.org/copyleft/gpl.html ).                                 *
- *                                                                         *
- ***************************************************************************/
-
-/* $Id$ */
-
-#include "nsock_internal.h"
-
-/* Send back an NSE_TYPE_TIMER after the number of milliseconds specified.  Of course it can also return due to error, cancellation, etc. */
-nsock_event_id nsock_timer_create(nsock_pool ms_pool, nsock_ev_handler handler, 
-                           int timeout_msecs, void *userdata) {
-  mspool *nsp = (mspool *) ms_pool;
-  msevent *nse;
-
-  nse = msevent_new(nsp, NSE_TYPE_TIMER, NULL, timeout_msecs, handler,
-                   userdata);
-  assert(nse);
-
-  if (nsp->tracelevel > 0) {
-    nsock_trace(nsp, "Timer created - %dms from now.  EID %li", timeout_msecs, nse->id);
-  }
-
-  nsp_add_event(nsp, nse);
-  
-  return nse->id;
-}
-
diff --git a/nsock/src/nsock_utils.c b/nsock/src/nsock_utils.c
deleted file mode 100644 (file)
index 9e2002b..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-
-/***************************************************************************
- * utils.c -- Simple utility functions performing misc. tasks for Nsock    *
- *                                                                         *
- ***********************IMPORTANT NSOCK LICENSE TERMS***********************
- *                                                                         *
- * The nsock parallel socket event library is (C) 1999-2004 Insecure.Com   *
- * LLC This library is free software; you may redistribute and/or          *
- * modify it under the terms of the GNU General Public License as          *
- * published by the Free Software Foundation; Version 2.  This guarantees  *
- * your right to use, modify, and redistribute this software under certain *
- * conditions.  If this license is unacceptable to you, Insecure.Com LLC   *
- * may be willing to sell alternative licenses (contact                    *
- * [email protected] ).                                                   *
- *                                                                         *
- * As a special exception to the GPL terms, Insecure.Com LLC grants        *
- * permission to link the code of this program with any version of the     *
- * OpenSSL library which is distributed under a license identical to that  *
- * listed in the included Copying.OpenSSL file, and distribute linked      *
- * combinations including the two. You must obey the GNU GPL in all        *
- * respects for all of the code used other than OpenSSL.  If you modify    *
- * this file, you may extend this exception to your version of the file,   *
- * but you are not obligated to do so.                                     *
- *                                                                         * 
- * If you received these files with a written license agreement stating    *
- * terms other than the (GPL) terms above, then that alternative license   *
- * agreement takes precedence over this comment.                          *
- *                                                                         *
- * Source is provided to this software because we believe users have a     *
- * right to know exactly what a program is going to do before they run it. *
- * This also allows you to audit the software for security holes (none     *
- * have been found so far).                                                *
- *                                                                         *
- * Source code also allows you to port Nmap to new platforms, fix bugs,    *
- * and add new features.  You are highly encouraged to send your changes   *
- * to [email protected] for possible incorporation into the main         *
- * distribution.  By sending these changes to Fyodor or one the            *
- * insecure.org development mailing lists, it is assumed that you are      *
- * offering Fyodor and Insecure.Com LLC the unlimited, non-exclusive right *
- * to reuse, modify, and relicense the code.  Nmap will always be          *
- * available Open Source, but this is important because the inability to   *
- * relicense code has caused devastating problems for other Free Software  *
- * projects (such as KDE and NASM).  We also occasionally relicense the    *
- * code to third parties as discussed above.  If you wish to specify       *
- * special license conditions of your contributions, just say so when you  *
- * send them.                                                              *
- *                                                                         *
- * This program is distributed in the hope that it will be useful, but     *
- * WITHOUT ANY WARRANTY; without even the implied warranty of              *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU       *
- * General Public License for more details (                               *
- * http://www.gnu.org/copyleft/gpl.html ).                                 *
- *                                                                         *
- ***************************************************************************/
-
-/* $Id$ */
-
diff --git a/nsock/src/nsock_utils.h b/nsock/src/nsock_utils.h
deleted file mode 100644 (file)
index 8e56dd1..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-
-/***************************************************************************
- * utils.h -- Simple utility functions performing misc. tasks for Nsock    *
- *                                                                         *
- ***********************IMPORTANT NSOCK LICENSE TERMS***********************
- *                                                                         *
- * The nsock parallel socket event library is (C) 1999-2004 Insecure.Com   *
- * LLC This library is free software; you may redistribute and/or          *
- * modify it under the terms of the GNU General Public License as          *
- * published by the Free Software Foundation; Version 2.  This guarantees  *
- * your right to use, modify, and redistribute this software under certain *
- * conditions.  If this license is unacceptable to you, Insecure.Com LLC   *
- * may be willing to sell alternative licenses (contact                    *
- * [email protected] ).                                                   *
- *                                                                         *
- * As a special exception to the GPL terms, Insecure.Com LLC grants        *
- * permission to link the code of this program with any version of the     *
- * OpenSSL library which is distributed under a license identical to that  *
- * listed in the included Copying.OpenSSL file, and distribute linked      *
- * combinations including the two. You must obey the GNU GPL in all        *
- * respects for all of the code used other than OpenSSL.  If you modify    *
- * this file, you may extend this exception to your version of the file,   *
- * but you are not obligated to do so.                                     *
- *                                                                         * 
- * If you received these files with a written license agreement stating    *
- * terms other than the (GPL) terms above, then that alternative license   *
- * agreement takes precedence over this comment.                          *
- *                                                                         *
- * Source is provided to this software because we believe users have a     *
- * right to know exactly what a program is going to do before they run it. *
- * This also allows you to audit the software for security holes (none     *
- * have been found so far).                                                *
- *                                                                         *
- * Source code also allows you to port Nmap to new platforms, fix bugs,    *
- * and add new features.  You are highly encouraged to send your changes   *
- * to [email protected] for possible incorporation into the main         *
- * distribution.  By sending these changes to Fyodor or one the            *
- * insecure.org development mailing lists, it is assumed that you are      *
- * offering Fyodor and Insecure.Com LLC the unlimited, non-exclusive right *
- * to reuse, modify, and relicense the code.  Nmap will always be          *
- * available Open Source, but this is important because the inability to   *
- * relicense code has caused devastating problems for other Free Software  *
- * projects (such as KDE and NASM).  We also occasionally relicense the    *
- * code to third parties as discussed above.  If you wish to specify       *
- * special license conditions of your contributions, just say so when you  *
- * send them.                                                              *
- *                                                                         *
- * This program is distributed in the hope that it will be useful, but     *
- * WITHOUT ANY WARRANTY; without even the implied warranty of              *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU       *
- * General Public License for more details (                               *
- * http://www.gnu.org/copyleft/gpl.html ).                                 *
- *                                                                         *
- ***************************************************************************/
-
-/* $Id$ */
-#ifndef UTILS_H
-#define UTILS_H
-
-#ifdef HAVE_CONFIG_H
-#include "nsock_config.h"
-#include "nbase_config.h"
-#endif
-
-#ifdef WIN32
-#include "nbase_winconfig.h"
-#endif
-
-#include <stdlib.h>
-#if HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#ifndef MAX
-#define MAX(x,y) (((x)>(y))?(x):(y))
-#endif
-#ifndef MIN
-#define MIN(x,y) (((x)<(y))?(x):(y))
-#endif
-#ifndef MYABS
-#define MYABS(x) (((x) >= 0)?(x):(-x))
-#endif
-#ifndef FALSE
-#define FALSE 0
-#endif
-#ifndef TRUE
-#define TRUE 1
-#endif
-
-#define NIPQUAD(addr) \
-        (((addr) >> 0)  & 0xff), \
-        (((addr) >> 8)  & 0xff), \
-        (((addr) >> 16) & 0xff), \
-        (((addr) >> 24) & 0xff)
-
-
-/* Timeval subtraction in microseconds */
-#define TIMEVAL_SUBTRACT(a,b) (((a).tv_sec - (b).tv_sec) * 1000000 + (a).tv_usec - (b).tv_usec)
-/* Timeval subtract in milliseconds */
-#define TIMEVAL_MSEC_SUBTRACT(a,b) ((((a).tv_sec - (b).tv_sec) * 1000) + ((a).tv_usec - (b).tv_usec) / 1000)
-/* Timeval subtract in seconds; truncate towards zero */
-#define TIMEVAL_SEC_SUBTRACT(a,b) ((a).tv_sec - (b).tv_sec + (((a).tv_usec < (b).tv_usec) ? - 1 : 0))
-/* Timeval subtract in milliseconds */
-#define TIMEVAL_NSEC_SUBTRACT(a,b) ((((a).tv_sec - (b).tv_sec) * 1000) + ((a).tv_usec - (b).tv_usec) / 1000)
-/* assign one timeval to another timeval plus some msecs: a = b + msecs */
-#define TIMEVAL_MSEC_ADD(a, b, msecs) (a).tv_sec = (b).tv_sec + ((msecs) / 1000); (a).tv_usec = (b).tv_usec + ((msecs) % 1000) * 1000; (a).tv_sec += (a).tv_usec / 1000000; (a).tv_usec %= 1000000
-/* timeval a = timeval b + nsecs nanoseconds.  If you want to += the time
-   onto a single timeval, pass the same timeval as a and b */
-#define TIMEVAL_NSEC_ADD(a, b, nsecs) (a).tv_sec = (b).tv_sec + ((nsecs) / 1000); (a).tv_usec = (b).tv_usec + ((nsecs) % 1000) * 1000; (a).tv_sec += (a).tv_usec / 1000000; (a).tv_usec %= 1000000
-
-#endif
diff --git a/nsock/src/nsock_write.c b/nsock/src/nsock_write.c
deleted file mode 100644 (file)
index 5250bca..0000000
+++ /dev/null
@@ -1,175 +0,0 @@
-
-/***************************************************************************
- * nsock_write.c -- This contains the functions relating to writing to     *
- * sockets using the nsock parallel socket event library                   *
- *                                                                         *
- ***********************IMPORTANT NSOCK LICENSE TERMS***********************
- *                                                                         *
- * The nsock parallel socket event library is (C) 1999-2004 Insecure.Com   *
- * LLC This library is free software; you may redistribute and/or          *
- * modify it under the terms of the GNU General Public License as          *
- * published by the Free Software Foundation; Version 2.  This guarantees  *
- * your right to use, modify, and redistribute this software under certain *
- * conditions.  If this license is unacceptable to you, Insecure.Com LLC   *
- * may be willing to sell alternative licenses (contact                    *
- * [email protected] ).                                                   *
- *                                                                         *
- * As a special exception to the GPL terms, Insecure.Com LLC grants        *
- * permission to link the code of this program with any version of the     *
- * OpenSSL library which is distributed under a license identical to that  *
- * listed in the included Copying.OpenSSL file, and distribute linked      *
- * combinations including the two. You must obey the GNU GPL in all        *
- * respects for all of the code used other than OpenSSL.  If you modify    *
- * this file, you may extend this exception to your version of the file,   *
- * but you are not obligated to do so.                                     *
- *                                                                         * 
- * If you received these files with a written license agreement stating    *
- * terms other than the (GPL) terms above, then that alternative license   *
- * agreement takes precedence over this comment.                          *
- *                                                                         *
- * Source is provided to this software because we believe users have a     *
- * right to know exactly what a program is going to do before they run it. *
- * This also allows you to audit the software for security holes (none     *
- * have been found so far).                                                *
- *                                                                         *
- * Source code also allows you to port Nmap to new platforms, fix bugs,    *
- * and add new features.  You are highly encouraged to send your changes   *
- * to [email protected] for possible incorporation into the main         *
- * distribution.  By sending these changes to Fyodor or one the            *
- * insecure.org development mailing lists, it is assumed that you are      *
- * offering Fyodor and Insecure.Com LLC the unlimited, non-exclusive right *
- * to reuse, modify, and relicense the code.  Nmap will always be          *
- * available Open Source, but this is important because the inability to   *
- * relicense code has caused devastating problems for other Free Software  *
- * projects (such as KDE and NASM).  We also occasionally relicense the    *
- * code to third parties as discussed above.  If you wish to specify       *
- * special license conditions of your contributions, just say so when you  *
- * send them.                                                              *
- *                                                                         *
- * This program is distributed in the hope that it will be useful, but     *
- * WITHOUT ANY WARRANTY; without even the implied warranty of              *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU       *
- * General Public License for more details (                               *
- * http://www.gnu.org/copyleft/gpl.html ).                                 *
- *                                                                         *
- ***************************************************************************/
-
-/* $Id$ */
-
-#include "nsock.h"
-#include "nsock_internal.h"
-
-#include <nbase.h>
-#include <stdarg.h>
-#include <errno.h>
-
-/* Write some data to the socket.  If the write is not COMPLETED within timeout_msecs , NSE_STATUS_TIMEOUT will be returned.  If you are supplying NUL-terminated data, you can optionally pass -1 for datalen and nsock_write will figure out the length itself */
-nsock_event_id  nsock_write(nsock_pool ms_pool, nsock_iod ms_iod, 
-                     nsock_ev_handler handler, int timeout_msecs, 
-                     void *userdata, const char *data, int datalen) {
-  mspool *nsp = (mspool *) ms_pool;
-  msiod *nsi = (msiod *) ms_iod;
-  msevent *nse;
-  char displaystr[256];
-
-  nse = msevent_new(nsp, NSE_TYPE_WRITE, nsi, timeout_msecs, handler,
-                   userdata);
-  assert(nse);
-
-  if (nsp->tracelevel > 0) {
-    if (nsp->tracelevel > 1 && datalen < 80) {
-      memcpy(displaystr, ": ", 2);
-      memcpy(displaystr + 2, data, datalen);
-      displaystr[2 + datalen] = '\0';
-      replacenonprintable(displaystr + 2, datalen, '.');
-    } else displaystr[0] = '\0';
-    if (nsi->peerlen > 0)
-      nsock_trace(nsp, "Write request for %d bytes to IOD #%li EID %li [%s:%hi]%s", datalen, nsi->id, 
-                 nse->id, inet_ntop_ez(&nsi->peer, nsi->peerlen), nsi_peerport(nsi), displaystr);
-    else 
-      nsock_trace(nsp, "Write request for %d bytes to IOD #%li EID %li (peer unspecified)%s", datalen, 
-                 nsi->id, nse->id, displaystr);
-  }
-
-  if (datalen < 0)
-    datalen = (int) strlen(data);
-
-  fscat(&nse->iobuf, data, datalen);
-
-  nsp_add_event(nsp, nse);
-  
-  return nse->id;
-}
-
-/* Same as nsock_write except you can use a printf-style format and you can only use this for ASCII strings */
-nsock_event_id nsock_printf(nsock_pool ms_pool, nsock_iod ms_iod, 
-                     nsock_ev_handler handler, int timeout_msecs, 
-                     void *userdata, char *format, ... ) {
-
-  mspool *nsp = (mspool *) ms_pool;
-  msiod *nsi = (msiod *) ms_iod;
-  msevent *nse;
-  char buf[4096];
-  char *buf2 = NULL;
-  int res, res2;
-  int strlength = 0;
-  char displaystr[256];
-
-  va_list ap; 
-  va_start(ap,format);
-
-  nse = msevent_new(nsp, NSE_TYPE_WRITE, nsi, timeout_msecs, handler,
-                   userdata);
-  assert(nse);
-
-  res = vsnprintf(buf, sizeof(buf), format, ap);
-  va_end(ap);
-
-
-  if (res != -1) {
-    if (res > sizeof(buf)) {
-      buf2 = (char * ) safe_malloc(res + 16);
-      res2 = vsnprintf(buf2, sizeof(buf), format, ap);
-      if (res2 == -1 || res2 > res) {
-       free(buf2);
-       buf2 = NULL;
-      } else strlength = res2;
-    } else {
-      buf2 = buf;
-      strlength = res;
-    }
-  }
-
-  if (!buf2) {
-    nse->event_done = 1;
-    nse->status = NSE_STATUS_ERROR;
-    nse->errnum = EMSGSIZE;
-  } else {
-    if (strlength == 0) {
-      nse->event_done = 1;
-      nse->status = NSE_STATUS_SUCCESS;      
-    } else {    
-      fscat(&nse->iobuf, buf2, strlength);
-    }
-  }
-
-  if (nsp->tracelevel > 0) {
-    if (nsp->tracelevel > 1 && nse->status != NSE_STATUS_ERROR && strlength < 80) {
-      memcpy(displaystr, ": ", 2);
-      memcpy(displaystr + 2, buf2, strlength);
-      displaystr[2 + strlength] = '\0';
-      replacenonprintable(displaystr + 2, strlength, '.');
-    } else displaystr[0] = '\0';
-    if (nsi->peerlen > 0)
-      nsock_trace(nsp, "Write request for %d bytes to IOD #%li EID %li [%s:%hi]%s", strlength, nsi->id, 
-                 nse->id, inet_ntop_ez(&nsi->peer, nsi->peerlen), nsi_peerport(nsi), displaystr);
-    else 
-      nsock_trace(nsp, "Write request for %d bytes to IOD #%li EID %li (peer unspecified)%s", strlength, 
-                 nsi->id, nse->id, displaystr);
-  }
-
-  nsp_add_event(nsp, nse);
-
-  return nse->id;
-}
-