]> granicus.if.org Git - curl/commitdiff
Günter Knauf's NetWare changes.
authorDaniel Stenberg <daniel@haxx.se>
Wed, 17 Mar 2004 12:46:42 +0000 (12:46 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Wed, 17 Mar 2004 12:46:42 +0000 (12:46 +0000)
20 files changed:
CHANGES
Makefile.dist
RELEASE-NOTES
docs/INSTALL
include/curl/multi.h
lib/Makefile.netware [new file with mode: 0644]
lib/config-netware.h [new file with mode: 0644]
lib/connect.c
lib/ftp.c
lib/hostip.c
lib/if2ip.c
lib/libcurl.imp [new file with mode: 0644]
lib/nwlib.c [new file with mode: 0644]
lib/setup.h
packages/Makefile.am
packages/NetWare/get_ver.awk [new file with mode: 0644]
src/Makefile.netware [new file with mode: 0644]
src/config-netware.h [new file with mode: 0644]
src/main.c
src/setup.h

diff --git a/CHANGES b/CHANGES
index d800722484bf93b272598ac859facab45779994c..e23407ce4f75ab7037ffa4cbadcd8c043432179d 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,10 @@
 
                                   Changelog
 
+Daniel (17 March 2004)
+- Günter Knauf brought patches, code and makefiles to build curl on Novell
+  NetWare.
+
 Daniel (15 March 2004)
 - Lots of libcurl man pages were updated to contain references to other man
   pages the recognized way so that they appear as nice hyperlinks in the HTML
index 45593f4d33578f43ab022e29b08151c371f81e4d..45329482458b555e0c3fe50bb69bd3fe98890c40 100644 (file)
@@ -81,7 +81,9 @@ amiga:
        cd ./lib && make -f makefile.amiga
        cd ./src && make -f makefile.amiga
 
-
+netware:
+        cd lib && make -f Makefile.netware
+        cd src && make -f Makefile.netware
 
 unix: all
 
index 652f599f8114c169aea763215f0eaa53a7bef8b6..e5a933caefe9db6a52b0a1621d806dd05756bcb7 100644 (file)
@@ -26,6 +26,7 @@ This release includes the following changes:
 
 This release includes the following bugfixes:
 
+ o builds and runs on Novell NetWare
  o Windows builds now report OS as "i386-pc-win32"
  o received signals during SSL connect is handled better
  o improved PUT/POST with NTLM/Digest authentication
@@ -83,6 +84,6 @@ advice from friends like these:
  Ken Hirsch, Stadler Stephan, Domenico Andreoli, Patrick Smith, Tor Arntsen,
  Andrés García, Tim Baker, Len Krause, Gilad, Ken Rastatter, P R Schaffner,
  Greg Hewgill, Ben Greear, Jeff Lawson, Grigory Entin, Doug Porter, David
- Byron, Andy Serpa, Joe Halpin, Christopher R. Palmer
+ Byron, Andy Serpa, Joe Halpin, Christopher R. Palmer, Günter Knauf
 
         Thanks! (and sorry if I forgot to mention someone)
index 13194a219d00a6fe51f610440476a5a1713c1529..d16b039e893a659f1877b9e125d37ec434e96c53 100644 (file)
@@ -511,6 +511,7 @@ PORTS
         - i386 HURD
         - i386 Linux 1.3, 2.0, 2.2, 2.3, 2.4
         - i386 NetBSD
+        - i386 Novell NetWare
         - i386 OS/2
         - i386 OpenBSD
         - i386 SCO unix
index 0ed48bf2b1747dad52e9fdddc5986559c06c1218..b2d821826274aad5f59620fc27017cac767cdd60 100644 (file)
 #include <winsock2.h>
 #else
 
-#ifdef _AIX
 /* HP-UX systems version 9, 10 and 11 lack sys/select.h and so does oldish
    libc5-based Linux systems. Only include it on system that are known to
    require it! */
+#if defined(_AIX) || defined(NETWARE)
 #include <sys/select.h>
 #endif
 
diff --git a/lib/Makefile.netware b/lib/Makefile.netware
new file mode 100644 (file)
index 0000000..8275e14
--- /dev/null
@@ -0,0 +1,277 @@
+#################################################################
+#
+## Makefile for building libcurl.nlm (NetWare version - gnu make)
+## Use: make -f Makefile.netware
+##
+## Comments to: Guenter Knauf <eflash@gmx.net>
+#
+#################################################################
+
+# Edit the path below to point to the base of your Novell NDK.
+BASE   = c:/novell
+INSTDIR        = s:/libcurl
+
+# Edit the path below to point to the base of your Zlib sources.
+ZLIB_PATH = ../../../cw/zlib-src-1.1.4
+
+# Edit the vars below to change NLM target settings.
+TARGET  = libcurl
+VERSION        = $(LIBCURL_VERSION)
+COPYR  = Copyright (c) 1996 - 2004, Daniel Stenberg, <daniel@haxx.se>
+DESCR  = cURL libcurl $(LIBCURL_VERSION_STR) - http://curl.haxx.se
+MTSAFE = YES
+STACK  = 64000
+SCREEN = none
+#MODULES       = libz.nlm
+EXPORTS        = @libcurl.imp
+
+# Edit the var below to point to your lib architecture.
+ifndef LIBARCH
+LIBARCH = LIBC
+endif
+
+# must be equal to DEBUG or NDEBUG
+DB     = NDEBUG
+# DB   = DEBUG
+# Optimization: -O<n> or debugging: -g
+ifeq ($(DB),NDEBUG)
+       OPT     = -O2
+       OBJDIR  = release
+else
+       OPT     = -g
+       OBJDIR  = debug
+endif
+
+# Include the version info retrieved from jk_version.h
+-include $(OBJDIR)/version.inc
+
+# The following line defines your compiler.
+ifdef METROWERKS
+       CC = mwccnlm
+else
+       CC = gcc
+endif
+# RM   = rm -f
+# CP   = cp -fv
+# if you want to mark the target as MTSAFE you will need a tool for
+# generating the xdc data for the linker; here's a minimal tool:
+# http://www.gknw.de/development/prgtools/mkxdc.zip
+MPKXDC = mkxdc
+
+# Global flags for all compilers
+CFLAGS = $(OPT) -D$(DB) -DNETWARE -nostdinc
+#CFLAGS        += -DHAVE_LIBZ
+
+ifeq ($(CC),mwccnlm)
+LD     = mwldnlm
+LDFLAGS        = -nostdlib $(PRELUDE) $(OBJDIR)/*.o -o $(OBJDIR)/$(TARGET).nlm -commandfile
+CFLAGS += -gccinc -inline off -opt nointrinsics
+CFLAGS += -relax_pointers
+#CFLAGS        += -w on
+ifeq ($(LIBARCH),LIBC)
+       PRELUDE = $(SDK_LIBC)/imports/libcpre.o
+       CFLAGS += -align 4 -inst mmx -proc 686
+       CFLAGS += -D_POSIX_SOURCE
+#      CFLAGS += -D__ANSIC__
+else
+       PRELUDE = "$(METROWERKS)/Novell Support/libraries/runtime/prelude.obj"
+#      CFLAGS += -include "$(METROWERKS)/Novell Support/headers/nlm_prefix.h"
+       CFLAGS += -align 1 -proc 586
+endif
+else
+LD     = nlmconv
+LDFLAGS        = -T
+CFLAGS += -fno-builtin -fpack-struct -fpcc-struct-return
+CFLAGS += -Wall # -pedantic
+ifeq ($(LIBARCH),LIBC)
+       PRELUDE = $(SDK_LIBC)/imports/libcpre.gcc.o
+       CFLAGS += -D_POSIX_SOURCE
+#      CFLAGS += -D__ANSIC__
+else
+       PRELUDE = $(SDK_CLIB)/imports/clibpre.gcc.o
+       CFLAGS += -include $(BASE)/nlmconv/genlm.h
+endif
+endif
+
+LDLIBS =
+
+NDK_ROOT = $(BASE)/ndk
+SDK_CLIB = $(NDK_ROOT)/nwsdk
+SDK_LIBC = $(NDK_ROOT)/libc
+SDK_LDAP = $(NDK_ROOT)/cldapsdk/netware
+CURL_INC = ../include
+
+INCLUDES = -I$(CURL_INC)
+INCLUDES += -I$(ZLIB_PATH)
+
+ifeq ($(LIBARCH),LIBC)
+       INCLUDES += -I$(SDK_LIBC)/include -I$(SDK_LIBC)/include/nks
+       INCLUDES += -I$(SDK_LIBC)/include/winsock
+       INCLUDES += -I$(SDK_LDAP)/libc/inc
+else
+       INCLUDES += -I$(SDK_CLIB)/include/nlm -I$(SDK_CLIB)/include
+       # INCLUDES += -I$(SDK_CLIB)/include/nlm/obsolete
+       INCLUDES += -I$(SDK_LDAP)/clib/inc
+       CFLAGS += -DNETDB_USE_INTERNET
+endif
+CFLAGS += $(INCLUDES)
+
+ifeq ($(MTSAFE),YES)
+       XDCDATA = $(OBJDIR)/$(TARGET).xdc
+endif
+
+ifeq ($(OSTYPE),linux)
+DL     = '
+-include $(BASE)/nlmconv/ncpfs.inc
+endif
+
+OBJS   = \
+       $(OBJDIR)/file.o \
+       $(OBJDIR)/timeval.o \
+       $(OBJDIR)/base64.o \
+       $(OBJDIR)/hostip.o \
+       $(OBJDIR)/progress.o \
+       $(OBJDIR)/formdata.o \
+       $(OBJDIR)/cookie.o \
+       $(OBJDIR)/http.o \
+       $(OBJDIR)/sendf.o \
+       $(OBJDIR)/ftp.o \
+       $(OBJDIR)/url.o \
+       $(OBJDIR)/dict.o \
+       $(OBJDIR)/if2ip.o \
+       $(OBJDIR)/speedcheck.o \
+       $(OBJDIR)/getdate.o \
+       $(OBJDIR)/transfer.o \
+       $(OBJDIR)/ldap.o \
+       $(OBJDIR)/ssluse.o \
+       $(OBJDIR)/version.o \
+       $(OBJDIR)/getenv.o \
+       $(OBJDIR)/escape.o \
+       $(OBJDIR)/mprintf.o \
+       $(OBJDIR)/telnet.o \
+       $(OBJDIR)/netrc.o \
+       $(OBJDIR)/getinfo.o \
+       $(OBJDIR)/strequal.o \
+       $(OBJDIR)/easy.o \
+       $(OBJDIR)/security.o \
+       $(OBJDIR)/krb4.o \
+       $(OBJDIR)/memdebug.o \
+       $(OBJDIR)/http_chunks.o \
+       $(OBJDIR)/strtok.o \
+       $(OBJDIR)/connect.o \
+       $(OBJDIR)/hash.o \
+       $(OBJDIR)/llist.o \
+       $(OBJDIR)/multi.o \
+       $(OBJDIR)/share.o \
+       $(OBJDIR)/content_encoding.o \
+       $(OBJDIR)/http_digest.o \
+       $(OBJDIR)/http_negotiate.o \
+       $(OBJDIR)/http_ntlm.o \
+       $(OBJDIR)/md5.o \
+       $(OBJDIR)/strtoofft.o \
+       $(OBJDIR)/nwlib.o
+
+
+all: $(OBJDIR) $(OBJDIR)/version.inc $(OBJDIR)/$(TARGET).nlm 
+
+$(OBJDIR)/%.o: %.c
+       @echo Compiling $<
+       @$(CC) $(CFLAGS) -c $< -o $@
+
+$(OBJDIR)/version.inc: $(CURL_INC)/curl/curl.h $(OBJDIR)
+       @echo Creating $@
+       @awk -f ../packages/netware/get_ver.awk $< > $@
+
+dist: all
+       -$(RM) $(OBJDIR)/*.o $(OBJDIR)/$(TARGET).map $(OBJDIR)/$(TARGET).ncv
+       -$(RM) $(OBJDIR)/$(TARGET).def $(OBJDIR)/version.inc $(XDCDATA)
+#      -$(CP) ../changes.txt $(OBJDIR)/
+
+install: all
+       @[ -d $(INSTDIR) ] || mkdir $(INSTDIR)
+       @$(CP) $(TARGET).nlm $(INSTDIR)
+
+clean:
+       -$(RM) -r $(OBJDIR)
+
+$(OBJDIR):
+       @mkdir $(OBJDIR)
+
+$(OBJDIR)/$(TARGET).nlm: $(OBJS) $(OBJDIR)/$(TARGET).def $(XDCDATA)
+       @echo Linking $@
+       @-$(RM) $@
+       @$(LD) $(LDFLAGS) $(OBJDIR)/$(TARGET).def
+
+$(OBJDIR)/%.xdc: Makefile.netware
+       @echo Creating $@
+       @$(MPKXDC) $(XDCOPT) $@
+
+$(OBJDIR)/%.def: Makefile.netware
+       @echo $(DL)# DEF file for linking with $(LD)$(DL) > $@
+       @echo $(DL)# Do not edit this file - it is created by make!$(DL) >> $@
+       @echo $(DL)# All your changes will be lost!!$(DL) >> $@
+       @echo $(DL)#$(DL) >> $@
+       @echo $(DL)copyright "$(COPYR)"$(DL) >> $@
+       @echo $(DL)description "$(DESCR)"$(DL) >> $@
+       @echo $(DL)version $(VERSION)$(DL) >> $@
+ifdef NLMTYPE
+       @echo $(DL)type $(NLMTYPE)$(DL) >> $@
+endif
+ifdef STACK
+       @echo $(DL)stack $(STACK)$(DL) >> $@
+endif
+ifdef SCREEN
+       @echo $(DL)screenname "$(SCREEN)"$(DL) >> $@
+else
+       @echo $(DL)screenname "DEFAULT"$(DL) >> $@
+endif
+ifeq ($(DB),DEBUG)
+       @echo $(DL)debug$(DL) >> $@
+endif
+       @echo $(DL)threadname "$(TARGET)"$(DL) >> $@
+ifdef XDCDATA
+       @echo $(DL)xdcdata $(XDCDATA)$(DL) >> $@
+endif
+ifeq ($(LIBARCH),CLIB)
+       @echo $(DL)start _Prelude$(DL) >> $@
+       @echo $(DL)exit _Stop$(DL) >> $@
+       @echo $(DL)import @$(SDK_CLIB)/imports/clib.imp$(DL) >> $@
+       @echo $(DL)import @$(SDK_CLIB)/imports/threads.imp$(DL) >> $@
+       @echo $(DL)import @$(SDK_CLIB)/imports/nlmlib.imp$(DL) >> $@
+       @echo $(DL)import @$(SDK_CLIB)/imports/socklib.imp$(DL) >> $@
+       @echo $(DL)import @$(SDK_LDAP)/clib/imports/ldapsdk.imp$(DL) >> $@
+       @echo $(DL)import @$(SDK_LDAP)/clib/imports/ldapssl.imp$(DL) >> $@
+       @echo $(DL)import @$(SDK_LDAP)/clib/imports/ldapx.imp$(DL) >> $@
+       @echo $(DL)module clib$(DL) >> $@
+else
+ifeq ($(LD),nlmconv)
+       @echo $(DL)flag_on 64$(DL) >> $@
+else
+       @echo $(DL)autounload$(DL) >> $@
+endif
+       @echo $(DL)pseudopreemption$(DL) >> $@
+       @echo $(DL)start _LibCPrelude$(DL) >> $@
+       @echo $(DL)exit _LibCPostlude$(DL) >> $@
+       @echo $(DL)check _LibCCheckUnload$(DL) >> $@
+       @echo $(DL)import @$(SDK_LIBC)/imports/libc.imp$(DL) >> $@
+       @echo $(DL)import @$(SDK_LIBC)/imports/netware.imp$(DL) >> $@
+       @echo $(DL)import @$(SDK_LDAP)/libc/imports/lldapsdk.imp$(DL) >> $@
+       @echo $(DL)import @$(SDK_LDAP)/libc/imports/lldapssl.imp$(DL) >> $@
+       @echo $(DL)import @$(SDK_LDAP)/libc/imports/lldapx.imp$(DL) >> $@
+       @echo $(DL)module libc$(DL) >> $@
+endif
+ifdef MODULES
+       @echo $(DL)module $(MODULES)$(DL) >> $@
+endif
+ifdef EXPORTS
+       @echo $(DL)export $(EXPORTS)$(DL) >> $@
+endif
+ifdef IMPORTS
+       @echo $(DL)import $(IMPORTS)$(DL) >> $@
+endif
+ifeq ($(LD),nlmconv)
+       @echo $(DL)input $(OBJS)$(DL) >> $@
+       @echo $(DL)input $(PRELUDE)$(DL) >> $@
+       @echo $(DL)output $(TARGET).nlm$(DL) >> $@
+endif
+
diff --git a/lib/config-netware.h b/lib/config-netware.h
new file mode 100644 (file)
index 0000000..4a1d373
--- /dev/null
@@ -0,0 +1,485 @@
+/* lib/config.h.in.  Generated from configure.ac by autoheader.  */\r
+\r
+/* to disable DICT */\r
+#undef CURL_DISABLE_DICT\r
+\r
+/* to disable FILE */\r
+#undef CURL_DISABLE_FILE\r
+\r
+/* to disable FTP */\r
+#undef CURL_DISABLE_FTP\r
+\r
+/* to disable GOPHER */\r
+#undef CURL_DISABLE_GOPHER\r
+\r
+/* to disable HTTP */\r
+#undef CURL_DISABLE_HTTP\r
+\r
+/* to disable LDAP */\r
+#undef CURL_DISABLE_LDAP\r
+\r
+/* to disable TELNET */\r
+#undef CURL_DISABLE_TELNET\r
+\r
+/* Set to explicitly specify we don't want to use thread-safe functions */\r
+#undef DISABLED_THREADSAFE\r
+\r
+/* your Entropy Gathering Daemon socket pathname */\r
+#undef EGD_SOCKET\r
+\r
+/* Define if you want to enable IPv6 support */\r
+#undef ENABLE_IPV6\r
+\r
+/* Define to 1 if you have the <alloca.h> header file. */\r
+#undef HAVE_ALLOCA_H\r
+\r
+/* Define to 1 if you have the <arpa/inet.h> header file. */\r
+#define HAVE_ARPA_INET_H 1\r
+\r
+/* Define to 1 if you have the <assert.h> header file. */\r
+#define HAVE_ASSERT_H 1\r
+\r
+/* Define to 1 if you have the `closesocket' function. */\r
+#undef HAVE_CLOSESOCKET\r
+\r
+/* Define to 1 if you have the `CRYPTO_cleanup_all_ex_data' function. */\r
+#undef HAVE_CRYPTO_CLEANUP_ALL_EX_DATA\r
+\r
+/* Define to 1 if you have the <crypto.h> header file. */\r
+#undef HAVE_CRYPTO_H\r
+\r
+/* Define to 1 if you have the <des.h> header file. */\r
+#undef HAVE_DES_H\r
+\r
+/* disabled non-blocking sockets */\r
+#undef HAVE_DISABLED_NONBLOCKING\r
+\r
+/* Define to 1 if you have the <dlfcn.h> header file. */\r
+/* XXX: #undef HAVE_DLFCN_H */\r
+#define HAVE_DLFCN_H 1\r
+\r
+/* Define to 1 if you have the `dlopen' function. */\r
+#define HAVE_DLOPEN 1\r
+\r
+/* Define to 1 if you have the <err.h> header file. */\r
+#define HAVE_ERR_H 1\r
+\r
+/* Define to 1 if you have the <fcntl.h> header file. */\r
+#define HAVE_FCNTL_H 1\r
+\r
+/* use FIONBIO for non-blocking sockets */\r
+/* XXX: #undef HAVE_FIONBIO */\r
+#define HAVE_FIONBIO 1\r
+\r
+/* Define if getaddrinfo exists and works */\r
+#undef HAVE_GETADDRINFO\r
+\r
+/* Define to 1 if you have the `geteuid' function. */\r
+#undef HAVE_GETEUID\r
+\r
+/* Define to 1 if you have the `gethostbyaddr' function. */\r
+#define HAVE_GETHOSTBYADDR 1\r
+\r
+/* Define to 1 if you have the `gethostbyaddr_r' function. */\r
+#undef HAVE_GETHOSTBYADDR_R\r
+\r
+/* gethostbyaddr_r() takes 5 args */\r
+#undef HAVE_GETHOSTBYADDR_R_5\r
+\r
+/* gethostbyaddr_r() takes 7 args */\r
+#undef HAVE_GETHOSTBYADDR_R_7\r
+\r
+/* gethostbyaddr_r() takes 8 args */\r
+#undef HAVE_GETHOSTBYADDR_R_8\r
+\r
+/* Define to 1 if you have the `gethostbyname_r' function. */\r
+#undef HAVE_GETHOSTBYNAME_R\r
+\r
+/* gethostbyname_r() takes 3 args */\r
+#undef HAVE_GETHOSTBYNAME_R_3\r
+\r
+/* gethostbyname_r() takes 5 args */\r
+#undef HAVE_GETHOSTBYNAME_R_5\r
+\r
+/* gethostbyname_r() takes 6 args */\r
+#undef HAVE_GETHOSTBYNAME_R_6\r
+\r
+/* Define to 1 if you have the `getpass_r' function. */\r
+#undef HAVE_GETPASS_R\r
+\r
+/* Define to 1 if you have the `getpwuid' function. */\r
+#undef HAVE_GETPWUID\r
+\r
+/* Define to 1 if you have the `gettimeofday' function. */\r
+#define HAVE_GETTIMEOFDAY 1\r
+\r
+/* Define to 1 if you have the `gmtime_r' function. */\r
+#undef HAVE_GMTIME_R\r
+\r
+/* if you have the gssapi libraries */\r
+#undef HAVE_GSSAPI\r
+\r
+/* if you have the Heimdal gssapi libraries */\r
+#undef HAVE_GSSHEIMDAL\r
+\r
+/* if you have the MIT gssapi libraries */\r
+#undef HAVE_GSSMIT\r
+\r
+/* Define to 1 if you have the `inet_addr' function. */\r
+#define HAVE_INET_ADDR 1\r
+\r
+/* Define to 1 if you have the `inet_ntoa' function. */\r
+#define HAVE_INET_NTOA 1\r
+\r
+/* Define to 1 if you have the `inet_ntoa_r' function. */\r
+#undef HAVE_INET_NTOA_R\r
+\r
+/* inet_ntoa_r() is declared */\r
+#undef HAVE_INET_NTOA_R_DECL\r
+\r
+/* Define to 1 if you have the `inet_pton' function. */\r
+#define HAVE_INET_PTON 1\r
+\r
+/* Define to 1 if you have the <inttypes.h> header file. */\r
+#define HAVE_INTTYPES_H 1\r
+\r
+/* use ioctlsocket() for non-blocking sockets */\r
+#undef HAVE_IOCTLSOCKET\r
+\r
+/* use Ioctlsocket() for non-blocking sockets */\r
+#undef HAVE_IOCTLSOCKET_CASE\r
+\r
+/* Define to 1 if you have the <io.h> header file. */\r
+#undef HAVE_IO_H\r
+\r
+/* if you have the Kerberos4 libraries (including -ldes) */\r
+#undef HAVE_KRB4\r
+\r
+/* Define to 1 if you have the `krb_get_our_ip_for_realm' function. */\r
+#undef HAVE_KRB_GET_OUR_IP_FOR_REALM\r
+\r
+/* Define to 1 if you have the <krb.h> header file. */\r
+#undef HAVE_KRB_H\r
+\r
+/* Define to 1 if you have the `crypto' library (-lcrypto). */\r
+#undef HAVE_LIBCRYPTO\r
+\r
+/* Define to 1 if you have the `dl' library (-ldl). */\r
+#undef HAVE_LIBDL\r
+\r
+/* Define to 1 if you have the `nsl' library (-lnsl). */\r
+#undef HAVE_LIBNSL\r
+\r
+/* Define to 1 if you have the `resolv' library (-lresolv). */\r
+#undef HAVE_LIBRESOLV\r
+\r
+/* Define to 1 if you have the `resolve' library (-lresolve). */\r
+#undef HAVE_LIBRESOLVE\r
+\r
+/* Define to 1 if you have the `socket' library (-lsocket). */\r
+#undef HAVE_LIBSOCKET\r
+\r
+/* Define to 1 if you have the `ssl' library (-lssl). */\r
+#undef HAVE_LIBSSL\r
+\r
+/* If zlib is available */\r
+#undef HAVE_LIBZ\r
+//#define HAVE_LIBZ 1\r
+\r
+/* Define to 1 if you have the <limits.h> header file. */\r
+#define HAVE_LIMITS_H 1\r
+\r
+/* Define to 1 if you have the `localtime_r' function. */\r
+#undef HAVE_LOCALTIME_R\r
+\r
+/* if your compiler supports 'long long' */\r
+#define HAVE_LONGLONG 1\r
+\r
+/* Define to 1 if you have the <malloc.h> header file. */\r
+#define HAVE_MALLOC_H 1\r
+\r
+/* Define to 1 if you have the <memory.h> header file. */\r
+#undef HAVE_MEMORY_H\r
+\r
+/* Define to 1 if you have the <netdb.h> header file. */\r
+#define HAVE_NETDB_H 1\r
+\r
+/* Define to 1 if you have the <netinet/in.h> header file. */\r
+#define HAVE_NETINET_IN_H 1\r
+\r
+/* Define to 1 if you have the <net/if.h> header file. */\r
+#undef HAVE_NET_IF_H\r
+\r
+/* Define to 1 if you have the <openssl/crypto.h> header file. */\r
+#undef HAVE_OPENSSL_CRYPTO_H\r
+\r
+/* Define to 1 if you have the <openssl/engine.h> header file. */\r
+#undef HAVE_OPENSSL_ENGINE_H\r
+\r
+/* Define to 1 if you have the <openssl/err.h> header file. */\r
+#undef HAVE_OPENSSL_ERR_H\r
+\r
+/* Define to 1 if you have the <openssl/pem.h> header file. */\r
+#undef HAVE_OPENSSL_PEM_H\r
+\r
+/* Define to 1 if you have the <openssl/rsa.h> header file. */\r
+#undef HAVE_OPENSSL_RSA_H\r
+\r
+/* Define to 1 if you have the <openssl/ssl.h> header file. */\r
+#undef HAVE_OPENSSL_SSL_H\r
+\r
+/* Define to 1 if you have the <openssl/x509.h> header file. */\r
+#undef HAVE_OPENSSL_X509_H\r
+\r
+/* use O_NONBLOCK for non-blocking sockets */\r
+#undef HAVE_O_NONBLOCK\r
+\r
+/* Define to 1 if you have the <pem.h> header file. */\r
+#undef HAVE_PEM_H\r
+\r
+/* Define to 1 if you have the `perror' function. */\r
+#undef HAVE_PERROR\r
+\r
+/* Define to 1 if you have the `poll' function. */\r
+#undef HAVE_POLL\r
+\r
+/* Define to 1 if you have the <pwd.h> header file. */\r
+#undef HAVE_PWD_H\r
+\r
+/* Define to 1 if you have the `RAND_egd' function. */\r
+#undef HAVE_RAND_EGD\r
+\r
+/* Define to 1 if you have the `RAND_screen' function. */\r
+#undef HAVE_RAND_SCREEN\r
+\r
+/* Define to 1 if you have the `RAND_status' function. */\r
+#undef HAVE_RAND_STATUS\r
+\r
+/* Define to 1 if you have the <rsa.h> header file. */\r
+#undef HAVE_RSA_H\r
+\r
+/* Define to 1 if you have the `select' function. */\r
+#define HAVE_SELECT 1\r
+\r
+/* Define to 1 if you have the <setjmp.h> header file. */\r
+#define HAVE_SETJMP_H 1\r
+\r
+/* Define to 1 if you have the <sgtty.h> header file. */\r
+#undef HAVE_SGTTY_H\r
+\r
+/* Define to 1 if you have the `sigaction' function. */\r
+#undef HAVE_SIGACTION\r
+\r
+/* Define to 1 if you have the `siginterrupt' function. */\r
+#undef HAVE_SIGINTERRUPT\r
+\r
+/* Define to 1 if you have the `signal' function. */\r
+#define HAVE_SIGNAL 1\r
+\r
+/* If you have sigsetjmp */\r
+#undef HAVE_SIGSETJMP\r
+\r
+/* Define to 1 if you have the `socket' function. */\r
+#define HAVE_SOCKET 1\r
+\r
+/* use SO_NONBLOCK for non-blocking sockets */\r
+#undef HAVE_SO_NONBLOCK\r
+\r
+/* Define this if you have the SPNEGO library fbopenssl */\r
+#undef HAVE_SPNEGO\r
+\r
+/* Define to 1 if you have the <ssl.h> header file. */\r
+#undef HAVE_SSL_H\r
+\r
+/* Define to 1 if you have the <stdint.h> header file. */\r
+#define HAVE_STDINT_H 1\r
+\r
+/* Define to 1 if you have the <stdlib.h> header file. */\r
+#define HAVE_STDLIB_H 1\r
+\r
+/* Define to 1 if you have the `strcasecmp' function. */\r
+#define HAVE_STRCASECMP 1\r
+\r
+/* Define to 1 if you have the `strcmpi' function. */\r
+#undef HAVE_STRCMPI\r
+\r
+/* Define to 1 if you have the `strdup' function. */\r
+#define HAVE_STRDUP 1\r
+\r
+/* Define to 1 if you have the `strftime' function. */\r
+#define HAVE_STRFTIME 1\r
+\r
+/* Define to 1 if you have the `stricmp' function. */\r
+#undef HAVE_STRICMP\r
+\r
+/* Define to 1 if you have the <strings.h> header file. */\r
+#undef HAVE_STRINGS_H\r
+\r
+/* Define to 1 if you have the <string.h> header file. */\r
+#define HAVE_STRING_H 1\r
+\r
+/* Define to 1 if you have the `strlcat' function. */\r
+#define HAVE_STRLCAT 1\r
+\r
+/* Define to 1 if you have the `strlcpy' function. */\r
+#define HAVE_STRLCPY 1\r
+\r
+/* Define to 1 if you have the `strstr' function. */\r
+#define HAVE_STRSTR 1\r
+\r
+/* Define to 1 if you have the `strtok_r' function. */\r
+#undef HAVE_STRTOK_R\r
+\r
+/* Define to 1 if you have the `strtoll' function. */\r
+#undef HAVE_STRTOLL\r
+\r
+/* Define to 1 if you have the <sys/param.h> header file. */\r
+#define HAVE_SYS_PARAM_H 1\r
+\r
+/* Define to 1 if you have the <sys/poll.h> header file. */\r
+#undef HAVE_SYS_POLL_H\r
+\r
+/* Define to 1 if you have the <sys/select.h> header file. */\r
+#define HAVE_SYS_SELECT_H 1\r
+\r
+/* Define to 1 if you have the <sys/socket.h> header file. */\r
+#define HAVE_SYS_SOCKET_H 1\r
+\r
+/* Define to 1 if you have the <sys/sockio.h> header file. */\r
+#define HAVE_SYS_SOCKIO_H 1\r
+\r
+/* Define to 1 if you have the <sys/stat.h> header file. */\r
+#define HAVE_SYS_STAT_H 1\r
+\r
+/* Define to 1 if you have the <sys/time.h> header file. */\r
+#define HAVE_SYS_TIME_H 1\r
+\r
+/* Define to 1 if you have the <sys/types.h> header file. */\r
+#define HAVE_SYS_TYPES_H 1\r
+\r
+/* Define to 1 if you have the <sys/utime.h> header file. */\r
+#undef HAVE_SYS_UTIME_H\r
+\r
+/* Define to 1 if you have the `tcgetattr' function. */\r
+#undef HAVE_TCGETATTR\r
+\r
+/* Define to 1 if you have the `tcsetattr' function. */\r
+#undef HAVE_TCSETATTR\r
+\r
+/* Define to 1 if you have the <termios.h> header file. */\r
+#define HAVE_TERMIOS_H 1\r
+\r
+/* Define to 1 if you have the <termio.h> header file. */\r
+#undef HAVE_TERMIO_H\r
+\r
+/* Define to 1 if you have the <time.h> header file. */\r
+#define HAVE_TIME_H 1\r
+\r
+/* Define to 1 if you have the `uname' function. */\r
+#define HAVE_UNAME 1\r
+\r
+/* Define to 1 if you have the <unistd.h> header file. */\r
+#define HAVE_UNISTD_H 1\r
+\r
+/* Define to 1 if you have the `utime' function. */\r
+#undef HAVE_UTIME\r
+\r
+/* Define to 1 if you have the <utime.h> header file. */\r
+#undef HAVE_UTIME_H\r
+\r
+/* Define to 1 if you have the <winsock.h> header file. */\r
+#undef HAVE_WINSOCK_H\r
+\r
+/* Define this symbol if your OS supports changing the contents of argv */\r
+#undef HAVE_WRITABLE_ARGV\r
+\r
+/* Define to 1 if you have the <x509.h> header file. */\r
+#undef HAVE_X509_H\r
+\r
+/* if you have the zlib.h header file */\r
+#define HAVE_ZLIB_H 1\r
+\r
+/* need REENTRANT defined */\r
+#undef NEED_REENTRANT\r
+\r
+/* cpu-machine-OS */\r
+#define OS "i386-pc-NetWare"\r
+\r
+/* Name of package */\r
+#undef PACKAGE\r
+\r
+/* Define to the address where bug reports for this package should be sent. */\r
+#undef PACKAGE_BUGREPORT\r
+\r
+/* Define to the full name of this package. */\r
+#undef PACKAGE_NAME\r
+\r
+/* Define to the full name and version of this package. */\r
+#undef PACKAGE_STRING\r
+\r
+/* Define to the one symbol short name of this package. */\r
+#undef PACKAGE_TARNAME\r
+\r
+/* Define to the version of this package. */\r
+#undef PACKAGE_VERSION\r
+\r
+/* a suitable file to read random data from */\r
+#undef RANDOM_FILE\r
+\r
+/* Define as the return type of signal handlers (`int' or `void'). */\r
+#define RETSIGTYPE void\r
+\r
+/* Define to the type of arg 1 for `select'. */\r
+#undef SELECT_TYPE_ARG1\r
+\r
+/* Define to the type of args 2, 3 and 4 for `select'. */\r
+#undef SELECT_TYPE_ARG234\r
+\r
+/* Define to the type of arg 5 for `select'. */\r
+#undef SELECT_TYPE_ARG5\r
+\r
+/* The size of a `curl_off_t', as computed by sizeof. */\r
+#define SIZEOF_CURL_OFF_T 4\r
+\r
+/* Define to 1 if you have the ANSI C header files. */\r
+/* XXX: #undef STDC_HEADERS */\r
+#define STDC_HEADERS 1\r
+\r
+/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */\r
+#define TIME_WITH_SYS_TIME 1\r
+\r
+/* Define if you want to enable ares support */\r
+#undef USE_ARES\r
+\r
+/* Version number of package */\r
+#undef VERSION\r
+\r
+/* Define to 1 if on AIX 3.\r
+   System headers sometimes define this.\r
+   We just want to avoid a redefinition error message.  */\r
+#ifndef _ALL_SOURCE\r
+# undef _ALL_SOURCE\r
+#endif\r
+\r
+/* Number of bits in a file offset, on hosts where this is settable. */\r
+#undef _FILE_OFFSET_BITS\r
+\r
+/* Define for large files, on AIX-style hosts. */\r
+#undef _LARGE_FILES\r
+\r
+/* Define to empty if `const' does not conform to ANSI C. */\r
+#undef const\r
+\r
+/* type to use in place of in_addr_t if not defined */\r
+#undef in_addr_t\r
+\r
+/* Define to `unsigned' if <sys/types.h> does not define. */\r
+#undef size_t\r
+\r
+/* type to use in place of socklen_t if not defined */\r
+#define socklen_t int\r
+\r
+/* the signed version of size_t */\r
+#undef ssize_t\r
+\r
+\r
index faa5c419a4f926d0e51bed27b9bc651fb982f5e7..1b57e3fec41f9f768eccec6c4452e8ff4e3204a9 100644 (file)
 #include <stdlib.h> /* required for free() prototype, without it, this crashes
                        on macos 68K */
 #endif
+#if (defined(HAVE_FIONBIO) && defined(__NOVELL_LIBC__))
+#include <sys/filio.h>
+#endif
+#if (defined(NETWARE) && defined(__NOVELL_LIBC__))
+#undef in_addr_t
+#define in_addr_t unsigned long
+#endif
 #ifdef VMS
 #include <in.h>
 #include <inet.h>
index 758c918cc01212cf78d7bfc5f7c3cff8254dd028..369b61882531fe10a8e0afcc28b95135d4b42e42 100644 (file)
--- a/lib/ftp.c
+++ b/lib/ftp.c
 #include <errno.h>
 #endif
 
+#if (defined(NETWARE) && defined(__NOVELL_LIBC__))
+#undef in_addr_t
+#define in_addr_t unsigned long
+#endif
+
 #include <curl/curl.h>
 #include "urldata.h"
 #include "sendf.h"
index 5f61579ef8c33e706fb9f09719ff95eebcd31496..1bf8fd4a34c78906c0d78e73d8bac4ccd821baa7 100644 (file)
 #include <setjmp.h>
 #endif
 
+#if (defined(NETWARE) && defined(__NOVELL_LIBC__))
+#undef in_addr_t
+#define in_addr_t unsigned long
+#endif
+
 #include "urldata.h"
 #include "sendf.h"
 #include "hostip.h"
index 299be75dd92d9a516b05c69e485cf1131b911aa7..63a634099eca083c5dd05c513c7282c93429b4d5 100644 (file)
@@ -32,7 +32,7 @@
 #endif
 
 #if !defined(WIN32) && !defined(__BEOS__) && !defined(__CYGWIN32__) && \
-    !defined(__riscos__) && !defined(__INTERIX)
+    !defined(__riscos__) && !defined(__INTERIX) && !defined(NETWARE)
 
 #ifdef HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
@@ -125,5 +125,8 @@ char *Curl_if2ip(char *interface, char *buf, int buf_size)
 
 /* -- end of if2ip() -- */
 #else
-#define if2ip(x) NULL
+char *Curl_if2ip(char *interface, char *buf, int buf_size)
+{
+    return NULL;
+}
 #endif
diff --git a/lib/libcurl.imp b/lib/libcurl.imp
new file mode 100644 (file)
index 0000000..50ce90a
--- /dev/null
@@ -0,0 +1,44 @@
+#\r
+# Definition file for the NLM version of the LIBCURL library from curl\r
+#\r
+#      (LIBCURL)\r
+       curl_easy_cleanup,\r
+       curl_easy_getinfo,\r
+       curl_easy_init,\r
+       curl_easy_perform,\r
+       curl_easy_setopt,\r
+       curl_escape,\r
+       curl_unescape,\r
+       curl_formparse,\r
+       curl_formfree,\r
+       curl_getdate,\r
+       curl_getenv,\r
+       curl_global_cleanup,\r
+       curl_global_init,\r
+       curl_slist_append,\r
+       curl_slist_free_all,\r
+       curl_version,\r
+       curl_maprintf,\r
+       curl_mfprintf,\r
+       curl_mprintf,\r
+       curl_msprintf,\r
+       curl_msnprintf,\r
+       curl_mvfprintf,\r
+       curl_strequal,\r
+       curl_strnequal,\r
+       curl_easy_duphandle,\r
+       curl_formadd,\r
+       curl_multi_init,\r
+       curl_multi_add_handle,\r
+       curl_multi_remove_handle,\r
+       curl_multi_fdset,\r
+       curl_multi_perform,\r
+       curl_multi_cleanup,\r
+       curl_multi_info_read,\r
+       curl_free,\r
+       curl_version_info,\r
+       curl_share_init,\r
+       curl_share_setopt,\r
+       curl_share_cleanup\r
+\r
+\r
diff --git a/lib/nwlib.c b/lib/nwlib.c
new file mode 100644 (file)
index 0000000..410a631
--- /dev/null
@@ -0,0 +1,329 @@
+/***************************************************************************\r
+ *                                  _   _ ____  _\r
+ *  Project                     ___| | | |  _ \| |\r
+ *                             / __| | | | |_) | |\r
+ *                            | (__| |_| |  _ <| |___\r
+ *                             \___|\___/|_| \_\_____|\r
+ *\r
+ * Copyright (C) 1998 - 2004, Daniel Stenberg, <daniel@haxx.se>, et al.\r
+ *\r
+ * This software is licensed as described in the file COPYING, which\r
+ * you should have received as part of this distribution. The terms\r
+ * are also available at http://curl.haxx.se/docs/copyright.html.\r
+ *\r
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell\r
+ * copies of the Software, and permit persons to whom the Software is\r
+ * furnished to do so, under the terms of the COPYING file.\r
+ *\r
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY\r
+ * KIND, either express or implied.\r
+ *\r
+ * $Id$\r
+ ***************************************************************************/\r
+\r
+/* This file is only used in the NetWare build */\r
+\r
+#include <errno.h>\r
+#include <string.h>\r
+#include <stdlib.h>\r
+#include <library.h>\r
+#include <netware.h>\r
+#include <screen.h>\r
+#include <nks/thread.h>\r
+#include <nks/synch.h>\r
+\r
+\r
+typedef struct\r
+{\r
+    int     _errno;\r
+    void    *twentybytes;\r
+} libthreaddata_t;\r
+\r
+typedef struct\r
+{\r
+    int         x;\r
+    int         y;\r
+    int         z;\r
+    void        *tenbytes;\r
+    NXKey_t     perthreadkey;           // if -1, no key obtained...\r
+    NXMutex_t   *lock;\r
+} libdata_t;\r
+\r
+int         gLibId      = -1;\r
+void        *gLibHandle = (void *) NULL;\r
+rtag_t      gAllocTag   = (rtag_t) NULL;\r
+NXMutex_t   *gLibLock   = (NXMutex_t *) NULL;\r
+\r
+\r
+\r
+// internal library function prototypes...\r
+int     DisposeLibraryData ( void * );\r
+void    DisposeThreadData ( void * );\r
+int     GetOrSetUpData ( int id, libdata_t **data, libthreaddata_t **threaddata );\r
+\r
+\r
+int _NonAppStart\r
+(\r
+    void        *NLMHandle,\r
+    void        *errorScreen,\r
+    const char  *cmdLine,\r
+    const char  *loadDirPath,\r
+    size_t      uninitializedDataLength,\r
+    void        *NLMFileHandle,\r
+    int         (*readRoutineP)( int conn, void *fileHandle, size_t offset,\r
+                                size_t nbytes, size_t *bytesRead, void *buffer ),\r
+    size_t      customDataOffset,\r
+    size_t      customDataSize,\r
+    int         messageCount,\r
+    const char  **messages\r
+)\r
+{\r
+    NX_LOCK_INFO_ALLOC(liblock, "Per-Application Data Lock", 0);\r
+\r
+#ifndef __GNUC__\r
+#pragma unused(cmdLine)\r
+#pragma unused(loadDirPath)\r
+#pragma unused(uninitializedDataLength)\r
+#pragma unused(NLMFileHandle)\r
+#pragma unused(readRoutineP)\r
+#pragma unused(customDataOffset)\r
+#pragma unused(customDataSize)\r
+#pragma unused(messageCount)\r
+#pragma unused(messages)\r
+#endif\r
+\r
+/*\r
+** Here we process our command line, post errors (to the error screen),\r
+** perform initializations and anything else we need to do before being able\r
+** to accept calls into us. If we succeed, we return non-zero and the NetWare\r
+** Loader will leave us up, otherwise we fail to load and get dumped.\r
+*/\r
+    gAllocTag = AllocateResourceTag(NLMHandle,\r
+                                "<library-name> memory allocations", AllocSignature);\r
+\r
+    if (!gAllocTag)\r
+    {\r
+        OutputToScreen(errorScreen, "Unable to allocate resource tag for "\r
+                                            "library memory allocations.\n");\r
+        return -1;\r
+    }\r
+\r
+    gLibId = register_library(DisposeLibraryData);\r
+\r
+    if (gLibId < -1)\r
+    {\r
+        OutputToScreen(errorScreen, "Unable to register library with kernel.\n");\r
+        return -1;\r
+    }\r
+\r
+    gLibHandle = NLMHandle;\r
+\r
+    gLibLock = NXMutexAlloc(0, 0, &liblock);\r
+\r
+    if (!gLibLock)\r
+    {\r
+        OutputToScreen(errorScreen, "Unable to allocate library data lock.\n");\r
+        return -1;\r
+    }\r
+\r
+    return 0;\r
+}\r
+\r
+void _NonAppStop( void )\r
+{\r
+/*\r
+** Here we clean up any resources we allocated. Resource tags is a big part\r
+** of what we created, but NetWare doesn't ask us to free those.\r
+*/\r
+    (void) unregister_library(gLibId);\r
+    NXMutexFree(gLibLock);\r
+}\r
+\r
+int  _NonAppCheckUnload( void )\r
+{\r
+/*\r
+** This function cannot be the first in the file for if the file is linked\r
+** first, then the check-unload function's offset will be nlmname.nlm+0\r
+** which is how to tell that there isn't one. When the check function is\r
+** first in the linked objects, it is ambiguous. For this reason, we will\r
+** put it inside this file after the stop function.\r
+**\r
+** Here we check to see if it's alright to ourselves to be unloaded. If not,\r
+** we return a non-zero value. Right now, there isn't any reason not to allow\r
+** it.\r
+*/\r
+    return 0;\r
+}\r
+\r
+int GetOrSetUpData\r
+(\r
+    int                 id,\r
+    libdata_t           **appData,\r
+    libthreaddata_t **threadData\r
+)\r
+{\r
+    int                 err;\r
+    libdata_t           *app_data;\r
+    libthreaddata_t *thread_data;\r
+    NXKey_t             key;\r
+//  NXMutex_t           *lock;\r
+    NX_LOCK_INFO_ALLOC(liblock, "Application Data Lock", 0);\r
+\r
+    err         = 0;\r
+    thread_data = (libthreaddata_t *) NULL;\r
+\r
+/*\r
+** Attempt to get our data for the application calling us. This is where we\r
+** store whatever application-specific information we need to carry in support\r
+** of calling applications.\r
+*/\r
+    app_data = (libdata_t *) get_app_data(id);\r
+\r
+    if (!app_data)\r
+    {\r
+/*\r
+** This application hasn't called us before; set up application AND per-thread\r
+** data. Of course, just in case a thread from this same application is calling\r
+** us simultaneously, we better lock our application data-creation mutex. We\r
+** also need to recheck for data after we acquire the lock because WE might be\r
+** that other thread that was too late to create the data and the first thread\r
+** in will have created it.\r
+*/\r
+        NXLock(gLibLock);\r
+\r
+        if (!(app_data = (libdata_t *) get_app_data(id)))\r
+        {\r
+            app_data = (libdata_t *) malloc(sizeof(libdata_t));\r
+\r
+            if (app_data)\r
+            {\r
+                memset(app_data, 0, sizeof(libdata_t));\r
+\r
+                app_data->tenbytes = malloc(10);\r
+                app_data->lock     = NXMutexAlloc(0, 0, &liblock);\r
+\r
+                if (!app_data->tenbytes || !app_data->lock)\r
+                {\r
+                    if (app_data->lock)\r
+                        NXMutexFree(app_data->lock);\r
+\r
+                    free(app_data);\r
+                    app_data = (libdata_t *) NULL;\r
+                    err      = ENOMEM;\r
+                }\r
+\r
+                if (app_data)\r
+                {\r
+/*\r
+** Here we burn in the application data that we were trying to get by calling\r
+** get_app_data(). Next time we call the first function, we'll get this data\r
+** we're just now setting. We also go on here to establish the per-thread data\r
+** for the calling thread, something we'll have to do on each application\r
+** thread the first time it calls us.\r
+*/\r
+                    err = set_app_data(gLibId, app_data);\r
+\r
+                    if (err)\r
+                    {\r
+                        free(app_data);\r
+                        app_data = (libdata_t *) NULL;\r
+                        err      = ENOMEM;\r
+                    }\r
+                    else\r
+                    {\r
+                        // create key for thread-specific data...\r
+                        err = NXKeyCreate(DisposeThreadData, (void *) NULL, &key);\r
+\r
+                        if (err)                // (no more keys left?)\r
+                            key = -1;\r
+\r
+                        app_data->perthreadkey = key;\r
+                    }\r
+                }\r
+            }\r
+        }\r
+\r
+        NXUnlock(gLibLock);\r
+    }\r
+\r
+    if (app_data)\r
+    {\r
+        key = app_data->perthreadkey;\r
+\r
+        if (     key != -1                  // couldn't create a key? no thread data\r
+            && !(err = NXKeyGetValue(key, (void **) &thread_data))\r
+            && !thread_data)\r
+        {\r
+/*\r
+** Allocate the per-thread data for the calling thread. Regardless of whether\r
+** there was already application data or not, this may be the first call by a\r
+** a new thread. The fact that we allocation 20 bytes on a pointer is not very\r
+** important, this just helps to demonstrate that we can have arbitrarily\r
+** complex per-thread data.\r
+*/\r
+            thread_data = (libthreaddata_t *) malloc(sizeof(libthreaddata_t));\r
+\r
+            if (thread_data)\r
+            {\r
+                thread_data->_errno      = 0;\r
+                thread_data->twentybytes = malloc(20);\r
+\r
+                if (!thread_data->twentybytes)\r
+                {\r
+                    free(thread_data);\r
+                    thread_data = (libthreaddata_t *) NULL;\r
+                    err         = ENOMEM;\r
+                }\r
+\r
+                if ((err = NXKeySetValue(key, thread_data)))\r
+                {\r
+                    free(thread_data->twentybytes);\r
+                    free(thread_data);\r
+                    thread_data = (libthreaddata_t *) NULL;\r
+                }\r
+            }\r
+        }\r
+    }\r
+\r
+    if (appData)\r
+        *appData = app_data;\r
+\r
+    if (threadData)\r
+        *threadData = thread_data;\r
+\r
+    return err;\r
+}\r
+\r
+int DisposeLibraryData\r
+(\r
+    void    *data\r
+)\r
+{\r
+    if (data)\r
+    {\r
+        void    *tenbytes = ((libdata_t *) data)->tenbytes;\r
+\r
+        if (tenbytes)\r
+            free(tenbytes);\r
+\r
+        free(data);\r
+    }\r
+\r
+    return 0;\r
+}\r
+\r
+void DisposeThreadData\r
+(\r
+    void    *data\r
+)\r
+{\r
+    if (data)\r
+    {\r
+        void    *twentybytes = ((libthreaddata_t *) data)->twentybytes;\r
+\r
+        if (twentybytes)\r
+            free(twentybytes);\r
+\r
+        free(data);\r
+    }\r
+}\r
index a8b44134c2c2d63f74cbaf1bff24541c56b84269..2aeb16f49bf1b292d91b4907b77aa2df2c7ea21a 100644 (file)
 /* hand-modified VMS config.h! */
 #include "config-vms.h"
 #endif
+#ifdef NETWARE
+/* hand-modified NetWare config.h! */
+#include "config-netware.h"
+#endif
 #ifdef macintosh
 /* hand-modified MacOS config.h! */
 #include "config-mac.h"
@@ -290,4 +294,8 @@ typedef struct in_addr Curl_ipconnect;
 #endif
 #endif
 
+#ifdef NETWARE
+#undef HAVE_ALARM
+#endif
+
 #endif /* __CONFIG_H */
index b1cb29364b4397897c3c669855f0d05eefbd3060..81584cb350020f2af23f3b1426e8245d1970e3d0 100644 (file)
@@ -1,3 +1,3 @@
 SUBDIRS = Win32 Linux Solaris EPM DOS vms
 
-EXTRA_DIST = README
+EXTRA_DIST = README NetWare/get_ver.awk
diff --git a/packages/NetWare/get_ver.awk b/packages/NetWare/get_ver.awk
new file mode 100644 (file)
index 0000000..60cf964
--- /dev/null
@@ -0,0 +1,20 @@
+# fetch libcurl version number from input file and write them to STDOUT\r
+BEGIN {\r
+  while ((getline < ARGV[1]) > 0) {\r
+    if (match ($0, /^#define LIBCURL_VERSION_MAJOR [^"]+/)) {\r
+      libcurl_ver_major = substr($3, 1, length($3));\r
+    }\r
+    else if (match ($0, /^#define LIBCURL_VERSION_MINOR [^"]+/)) {\r
+      libcurl_ver_minor = substr($3, 1, length($3));\r
+    }\r
+    else if (match ($0, /^#define LIBCURL_VERSION_PATCH [^"]+/)) {\r
+      libcurl_ver_patch = substr($3, 1, length($3));\r
+    }\r
+  }\r
+  libcurl_ver = libcurl_ver_major "," libcurl_ver_minor "," libcurl_ver_patch;\r
+  libcurl_ver_str = libcurl_ver_major "." libcurl_ver_minor "." libcurl_ver_patch;\r
+\r
+  print "LIBCURL_VERSION = " libcurl_ver "";\r
+  print "LIBCURL_VERSION_STR = " libcurl_ver_str "";\r
+\r
+}\r
diff --git a/src/Makefile.netware b/src/Makefile.netware
new file mode 100644 (file)
index 0000000..1a07202
--- /dev/null
@@ -0,0 +1,240 @@
+#################################################################
+#
+## Makefile for building curl.nlm (NetWare version - gnu make)
+## Use: make -f Makefile.netware
+##
+## Comments to: Guenter Knauf <eflash@gmx.net>
+#
+#################################################################
+
+# Edit the path below to point to the base of your Novell NDK.
+BASE   = c:/novell
+INSTDIR        = s:/libcurl
+
+# Edit the path below to point to the base of your Zlib sources.
+ZLIB_PATH = ../../../cw/zlib-src-1.1.4
+
+# Edit the vars below to change NLM target settings.
+TARGET  = curl
+VERSION        = $(LIBCURL_VERSION)
+COPYR  = Copyright (c) 1996 - 2004, Daniel Stenberg, <daniel@haxx.se>
+DESCR  = cURL $(LIBCURL_VERSION_STR) - http://curl.haxx.se
+MTSAFE = YES
+STACK  = 64000
+SCREEN = $(TARGET) commandline utility
+MODULES        = libcurl.nlm
+IMPORTS        = @../lib/libcurl.imp
+
+# Edit the var below to point to your lib architecture.
+ifndef LIBARCH
+LIBARCH = LIBC
+endif
+
+# must be equal to DEBUG or NDEBUG
+DB     = NDEBUG
+# DB   = DEBUG
+# Optimization: -O<n> or debugging: -g
+ifeq ($(DB),NDEBUG)
+       OPT     = -O2
+       OBJDIR  = release
+else
+       OPT     = -g
+       OBJDIR  = debug
+endif
+
+# Include the version info retrieved from jk_version.h
+-include $(OBJDIR)/version.inc
+
+# The following line defines your compiler.
+ifdef METROWERKS
+       CC = mwccnlm
+else
+       CC = gcc
+endif
+# RM   = rm -f
+# CP   = cp -fv
+# if you want to mark the target as MTSAFE you will need a tool for
+# generating the xdc data for the linker; here's a minimal tool:
+# http://www.gknw.de/development/prgtools/mkxdc.zip
+MPKXDC = mkxdc
+
+# Global flags for all compilers
+CFLAGS = $(OPT) -D$(DB) -DNETWARE -nostdinc
+CFLAGS += -DUSE_MANUAL
+#CFLAGS        += -DHAVE_LIBZ
+
+ifeq ($(CC),mwccnlm)
+LD     = mwldnlm
+LDFLAGS        = -nostdlib $(PRELUDE) $(OBJDIR)/*.o -o $(OBJDIR)/$(TARGET).nlm -commandfile
+CFLAGS += -gccinc -inline off -opt nointrinsics
+CFLAGS += -relax_pointers
+#CFLAGS        += -w on
+ifeq ($(LIBARCH),LIBC)
+       PRELUDE = $(SDK_LIBC)/imports/libcpre.o
+       CFLAGS += -align 4 -inst mmx -proc 686
+       CFLAGS += -D_POSIX_SOURCE
+#      CFLAGS += -D__ANSIC__
+else
+       PRELUDE = "$(METROWERKS)/Novell Support/libraries/runtime/prelude.obj"
+#      CFLAGS += -include "$(METROWERKS)/Novell Support/headers/nlm_prefix.h"
+       CFLAGS += -align 1 -proc 586
+endif
+else
+LD     = nlmconv
+LDFLAGS        = -T
+CFLAGS += -fno-builtin -fpack-struct -fpcc-struct-return
+CFLAGS += -Wall #-Wno-main # -pedantic
+ifeq ($(LIBARCH),LIBC)
+       PRELUDE = $(SDK_LIBC)/imports/libcpre.gcc.o
+       CFLAGS += -D_POSIX_SOURCE
+#      CFLAGS += -D__ANSIC__
+else
+       PRELUDE = $(SDK_CLIB)/imports/clibpre.gcc.o
+       CFLAGS += -include $(BASE)/nlmconv/genlm.h
+endif
+endif
+
+LDLIBS =
+
+NDK_ROOT = $(BASE)/ndk
+SDK_CLIB = $(NDK_ROOT)/nwsdk
+SDK_LIBC = $(NDK_ROOT)/libc
+SDK_LDAP = $(NDK_ROOT)/cldapsdk/netware
+CURL_INC = ../include
+CURL_LIB = ../lib
+
+INCLUDES = -I$(CURL_INC) -I$(CURL_LIB)
+INCLUDES += -I$(ZLIB_PATH)
+
+ifeq ($(LIBARCH),LIBC)
+       INCLUDES += -I$(SDK_LIBC)/include -I$(SDK_LIBC)/include/nks
+       INCLUDES += -I$(SDK_LIBC)/include/winsock
+       INCLUDES += -I$(SDK_LDAP)/libc/inc
+else
+       INCLUDES += -I$(SDK_CLIB)/include/nlm -I$(SDK_CLIB)/include
+       INCLUDES += -I$(SDK_LDAP)/clib/inc
+       CFLAGS += -DNETDB_USE_INTERNET
+endif
+CFLAGS += $(INCLUDES)
+
+ifeq ($(MTSAFE),YES)
+       XDCDATA = $(OBJDIR)/$(TARGET).xdc
+endif
+
+ifeq ($(OSTYPE),linux)
+DL     = '
+-include $(BASE)/nlmconv/ncpfs.inc
+endif
+
+OBJS   = \
+       $(OBJDIR)/main.o \
+       $(OBJDIR)/hugehelp.o \
+       $(OBJDIR)/urlglob.o \
+       $(OBJDIR)/writeout.o \
+       $(OBJDIR)/getpass.o \
+       $(OBJDIR)/homedir.o
+
+
+all: $(OBJDIR) $(OBJDIR)/version.inc $(OBJDIR)/$(TARGET).nlm 
+
+$(OBJDIR)/%.o: %.c
+       @echo Compiling $<
+       @$(CC) $(CFLAGS) -c $< -o $@
+
+$(OBJDIR)/version.inc: $(CURL_INC)/curl/curl.h $(OBJDIR)
+       @echo Creating $@
+       @awk -f ../packages/netware/get_ver.awk $< > $@
+
+dist: all
+       -$(RM) $(OBJDIR)/*.o $(OBJDIR)/$(TARGET).map $(OBJDIR)/$(TARGET).ncv
+       -$(RM) $(OBJDIR)/$(TARGET).def $(OBJDIR)/version.inc $(XDCDATA)
+#      -$(CP) ../changes.txt $(OBJDIR)/
+
+install: all
+       @[ -d $(INSTDIR) ] || mkdir $(INSTDIR)
+       @$(CP) $(TARGET).nlm $(INSTDIR)
+
+clean:
+       -$(RM) -r $(OBJDIR)
+
+$(OBJDIR):
+       @mkdir $(OBJDIR)
+
+$(OBJDIR)/$(TARGET).nlm: $(OBJS) $(OBJDIR)/$(TARGET).def $(XDCDATA)
+       @echo Linking $@
+       @-$(RM) $@
+       @$(LD) $(LDFLAGS) $(OBJDIR)/$(TARGET).def
+
+$(OBJDIR)/%.xdc: Makefile.netware
+       @echo Creating $@
+       @$(MPKXDC) $(XDCOPT) $@
+
+$(OBJDIR)/%.def: Makefile.netware
+       @echo $(DL)# DEF file for linking with $(LD)$(DL) > $@
+       @echo $(DL)# Do not edit this file - it is created by make!$(DL) >> $@
+       @echo $(DL)# All your changes will be lost!!$(DL) >> $@
+       @echo $(DL)#$(DL) >> $@
+       @echo $(DL)copyright "$(COPYR)"$(DL) >> $@
+       @echo $(DL)description "$(DESCR)"$(DL) >> $@
+       @echo $(DL)version $(VERSION)$(DL) >> $@
+ifdef NLMTYPE
+       @echo $(DL)type $(NLMTYPE)$(DL) >> $@
+endif
+ifdef STACK
+       @echo $(DL)stack $(STACK)$(DL) >> $@
+endif
+ifdef SCREEN
+       @echo $(DL)screenname "$(SCREEN)"$(DL) >> $@
+else
+       @echo $(DL)screenname "DEFAULT"$(DL) >> $@
+endif
+ifeq ($(DB),DEBUG)
+       @echo $(DL)debug$(DL) >> $@
+endif
+       @echo $(DL)threadname "$(TARGET)"$(DL) >> $@
+ifdef XDCDATA
+       @echo $(DL)xdcdata $(XDCDATA)$(DL) >> $@
+endif
+ifeq ($(LIBARCH),CLIB)
+       @echo $(DL)start _Prelude$(DL) >> $@
+       @echo $(DL)exit _Stop$(DL) >> $@
+       @echo $(DL)import @$(SDK_CLIB)/imports/clib.imp$(DL) >> $@
+       @echo $(DL)import @$(SDK_CLIB)/imports/threads.imp$(DL) >> $@
+       @echo $(DL)import @$(SDK_CLIB)/imports/nlmlib.imp$(DL) >> $@
+       @echo $(DL)import @$(SDK_CLIB)/imports/socklib.imp$(DL) >> $@
+       @echo $(DL)import @$(SDK_LDAP)/clib/imports/ldapsdk.imp$(DL) >> $@
+       @echo $(DL)import @$(SDK_LDAP)/clib/imports/ldapssl.imp$(DL) >> $@
+       @echo $(DL)import @$(SDK_LDAP)/clib/imports/ldapx.imp$(DL) >> $@
+       @echo $(DL)module clib$(DL) >> $@
+else
+ifeq ($(LD),nlmconv)
+       @echo $(DL)flag_on 64$(DL) >> $@
+else
+       @echo $(DL)autounload$(DL) >> $@
+endif
+       @echo $(DL)pseudopreemption$(DL) >> $@
+       @echo $(DL)start _LibCPrelude$(DL) >> $@
+       @echo $(DL)exit _LibCPostlude$(DL) >> $@
+       @echo $(DL)check _LibCCheckUnload$(DL) >> $@
+       @echo $(DL)import @$(SDK_LIBC)/imports/libc.imp$(DL) >> $@
+       @echo $(DL)import @$(SDK_LIBC)/imports/netware.imp$(DL) >> $@
+       @echo $(DL)import @$(SDK_LDAP)/libc/imports/lldapsdk.imp$(DL) >> $@
+       @echo $(DL)import @$(SDK_LDAP)/libc/imports/lldapssl.imp$(DL) >> $@
+       @echo $(DL)import @$(SDK_LDAP)/libc/imports/lldapx.imp$(DL) >> $@
+       @echo $(DL)module libc$(DL) >> $@
+endif
+ifdef MODULES
+       @echo $(DL)module $(MODULES)$(DL) >> $@
+endif
+ifdef EXPORTS
+       @echo $(DL)export $(EXPORTS)$(DL) >> $@
+endif
+ifdef IMPORTS
+       @echo $(DL)import $(IMPORTS)$(DL) >> $@
+endif
+ifeq ($(LD),nlmconv)
+       @echo $(DL)input $(OBJS)$(DL) >> $@
+       @echo $(DL)input $(PRELUDE)$(DL) >> $@
+       @echo $(DL)output $(TARGET).nlm$(DL) >> $@
+endif
+
diff --git a/src/config-netware.h b/src/config-netware.h
new file mode 100644 (file)
index 0000000..31180ac
--- /dev/null
@@ -0,0 +1,485 @@
+/* lib/config.h.in.  Generated from configure.ac by autoheader.  */\r
+\r
+/* to disable DICT */\r
+#undef CURL_DISABLE_DICT\r
+\r
+/* to disable FILE */\r
+#undef CURL_DISABLE_FILE\r
+\r
+/* to disable FTP */\r
+#undef CURL_DISABLE_FTP\r
+\r
+/* to disable GOPHER */\r
+#undef CURL_DISABLE_GOPHER\r
+\r
+/* to disable HTTP */\r
+#undef CURL_DISABLE_HTTP\r
+\r
+/* to disable LDAP */\r
+#undef CURL_DISABLE_LDAP\r
+\r
+/* to disable TELNET */\r
+#undef CURL_DISABLE_TELNET\r
+\r
+/* Set to explicitly specify we don't want to use thread-safe functions */\r
+#undef DISABLED_THREADSAFE\r
+\r
+/* your Entropy Gathering Daemon socket pathname */\r
+#undef EGD_SOCKET\r
+\r
+/* Define if you want to enable IPv6 support */\r
+#undef ENABLE_IPV6\r
+\r
+/* Define to 1 if you have the <alloca.h> header file. */\r
+#undef HAVE_ALLOCA_H\r
+\r
+/* Define to 1 if you have the <arpa/inet.h> header file. */\r
+#define HAVE_ARPA_INET_H 1\r
+\r
+/* Define to 1 if you have the <assert.h> header file. */\r
+#define HAVE_ASSERT_H 1\r
+\r
+/* Define to 1 if you have the `closesocket' function. */\r
+#undef HAVE_CLOSESOCKET\r
+\r
+/* Define to 1 if you have the `CRYPTO_cleanup_all_ex_data' function. */\r
+#undef HAVE_CRYPTO_CLEANUP_ALL_EX_DATA\r
+\r
+/* Define to 1 if you have the <crypto.h> header file. */\r
+#undef HAVE_CRYPTO_H\r
+\r
+/* Define to 1 if you have the <des.h> header file. */\r
+#undef HAVE_DES_H\r
+\r
+/* disabled non-blocking sockets */\r
+#undef HAVE_DISABLED_NONBLOCKING\r
+\r
+/* Define to 1 if you have the <dlfcn.h> header file. */\r
+/* XXX: #undef HAVE_DLFCN_H */\r
+#define HAVE_DLFCN_H 1\r
+\r
+/* Define to 1 if you have the `dlopen' function. */\r
+#define HAVE_DLOPEN 1\r
+\r
+/* Define to 1 if you have the <err.h> header file. */\r
+#define HAVE_ERR_H 1\r
+\r
+/* Define to 1 if you have the <fcntl.h> header file. */\r
+#define HAVE_FCNTL_H 1\r
+\r
+/* use FIONBIO for non-blocking sockets */\r
+/* XXX: #undef HAVE_FIONBIO */\r
+#define HAVE_FIONBIO 1\r
+\r
+/* Define if getaddrinfo exists and works */\r
+#undef HAVE_GETADDRINFO\r
+\r
+/* Define to 1 if you have the `geteuid' function. */\r
+#undef HAVE_GETEUID\r
+\r
+/* Define to 1 if you have the `gethostbyaddr' function. */\r
+#define HAVE_GETHOSTBYADDR 1\r
+\r
+/* Define to 1 if you have the `gethostbyaddr_r' function. */\r
+#undef HAVE_GETHOSTBYADDR_R\r
+\r
+/* gethostbyaddr_r() takes 5 args */\r
+#undef HAVE_GETHOSTBYADDR_R_5\r
+\r
+/* gethostbyaddr_r() takes 7 args */\r
+#undef HAVE_GETHOSTBYADDR_R_7\r
+\r
+/* gethostbyaddr_r() takes 8 args */\r
+#undef HAVE_GETHOSTBYADDR_R_8\r
+\r
+/* Define to 1 if you have the `gethostbyname_r' function. */\r
+#undef HAVE_GETHOSTBYNAME_R\r
+\r
+/* gethostbyname_r() takes 3 args */\r
+#undef HAVE_GETHOSTBYNAME_R_3\r
+\r
+/* gethostbyname_r() takes 5 args */\r
+#undef HAVE_GETHOSTBYNAME_R_5\r
+\r
+/* gethostbyname_r() takes 6 args */\r
+#undef HAVE_GETHOSTBYNAME_R_6\r
+\r
+/* Define to 1 if you have the `getpass_r' function. */\r
+#undef HAVE_GETPASS_R\r
+\r
+/* Define to 1 if you have the `getpwuid' function. */\r
+#undef HAVE_GETPWUID\r
+\r
+/* Define to 1 if you have the `gettimeofday' function. */\r
+#define HAVE_GETTIMEOFDAY 1\r
+\r
+/* Define to 1 if you have the `gmtime_r' function. */\r
+#undef HAVE_GMTIME_R\r
+\r
+/* if you have the gssapi libraries */\r
+#undef HAVE_GSSAPI\r
+\r
+/* if you have the Heimdal gssapi libraries */\r
+#undef HAVE_GSSHEIMDAL\r
+\r
+/* if you have the MIT gssapi libraries */\r
+#undef HAVE_GSSMIT\r
+\r
+/* Define to 1 if you have the `inet_addr' function. */\r
+#define HAVE_INET_ADDR 1\r
+\r
+/* Define to 1 if you have the `inet_ntoa' function. */\r
+#define HAVE_INET_NTOA 1\r
+\r
+/* Define to 1 if you have the `inet_ntoa_r' function. */\r
+#undef HAVE_INET_NTOA_R\r
+\r
+/* inet_ntoa_r() is declared */\r
+#undef HAVE_INET_NTOA_R_DECL\r
+\r
+/* Define to 1 if you have the `inet_pton' function. */\r
+#define HAVE_INET_PTON 1\r
+\r
+/* Define to 1 if you have the <inttypes.h> header file. */\r
+#define HAVE_INTTYPES_H 1\r
+\r
+/* use ioctlsocket() for non-blocking sockets */\r
+#undef HAVE_IOCTLSOCKET\r
+\r
+/* use Ioctlsocket() for non-blocking sockets */\r
+#undef HAVE_IOCTLSOCKET_CASE\r
+\r
+/* Define to 1 if you have the <io.h> header file. */\r
+#undef HAVE_IO_H\r
+\r
+/* if you have the Kerberos4 libraries (including -ldes) */\r
+#undef HAVE_KRB4\r
+\r
+/* Define to 1 if you have the `krb_get_our_ip_for_realm' function. */\r
+#undef HAVE_KRB_GET_OUR_IP_FOR_REALM\r
+\r
+/* Define to 1 if you have the <krb.h> header file. */\r
+#undef HAVE_KRB_H\r
+\r
+/* Define to 1 if you have the `crypto' library (-lcrypto). */\r
+#undef HAVE_LIBCRYPTO\r
+\r
+/* Define to 1 if you have the `dl' library (-ldl). */\r
+#undef HAVE_LIBDL\r
+\r
+/* Define to 1 if you have the `nsl' library (-lnsl). */\r
+#undef HAVE_LIBNSL\r
+\r
+/* Define to 1 if you have the `resolv' library (-lresolv). */\r
+#undef HAVE_LIBRESOLV\r
+\r
+/* Define to 1 if you have the `resolve' library (-lresolve). */\r
+#undef HAVE_LIBRESOLVE\r
+\r
+/* Define to 1 if you have the `socket' library (-lsocket). */\r
+#undef HAVE_LIBSOCKET\r
+\r
+/* Define to 1 if you have the `ssl' library (-lssl). */\r
+#undef HAVE_LIBSSL\r
+\r
+/* If zlib is available */\r
+#undef HAVE_LIBZ\r
+//#define HAVE_LIBZ 1\r
+\r
+/* Define to 1 if you have the <limits.h> header file. */\r
+#define HAVE_LIMITS_H 1\r
+\r
+/* Define to 1 if you have the `localtime_r' function. */\r
+#undef HAVE_LOCALTIME_R\r
+\r
+/* if your compiler supports 'long long' */\r
+#define HAVE_LONGLONG 1\r
+\r
+/* Define to 1 if you have the <malloc.h> header file. */\r
+#define HAVE_MALLOC_H 1\r
+\r
+/* Define to 1 if you have the <memory.h> header file. */\r
+#undef HAVE_MEMORY_H\r
+\r
+/* Define to 1 if you have the <netdb.h> header file. */\r
+#define HAVE_NETDB_H 1\r
+\r
+/* Define to 1 if you have the <netinet/in.h> header file. */\r
+#define HAVE_NETINET_IN_H 1\r
+\r
+/* Define to 1 if you have the <net/if.h> header file. */\r
+#undef HAVE_NET_IF_H\r
+\r
+/* Define to 1 if you have the <openssl/crypto.h> header file. */\r
+#undef HAVE_OPENSSL_CRYPTO_H\r
+\r
+/* Define to 1 if you have the <openssl/engine.h> header file. */\r
+#undef HAVE_OPENSSL_ENGINE_H\r
+\r
+/* Define to 1 if you have the <openssl/err.h> header file. */\r
+#undef HAVE_OPENSSL_ERR_H\r
+\r
+/* Define to 1 if you have the <openssl/pem.h> header file. */\r
+#undef HAVE_OPENSSL_PEM_H\r
+\r
+/* Define to 1 if you have the <openssl/rsa.h> header file. */\r
+#undef HAVE_OPENSSL_RSA_H\r
+\r
+/* Define to 1 if you have the <openssl/ssl.h> header file. */\r
+#undef HAVE_OPENSSL_SSL_H\r
+\r
+/* Define to 1 if you have the <openssl/x509.h> header file. */\r
+#undef HAVE_OPENSSL_X509_H\r
+\r
+/* use O_NONBLOCK for non-blocking sockets */\r
+#undef HAVE_O_NONBLOCK\r
+\r
+/* Define to 1 if you have the <pem.h> header file. */\r
+#undef HAVE_PEM_H\r
+\r
+/* Define to 1 if you have the `perror' function. */\r
+#undef HAVE_PERROR\r
+\r
+/* Define to 1 if you have the `poll' function. */\r
+#undef HAVE_POLL\r
+\r
+/* Define to 1 if you have the <pwd.h> header file. */\r
+#undef HAVE_PWD_H\r
+\r
+/* Define to 1 if you have the `RAND_egd' function. */\r
+#undef HAVE_RAND_EGD\r
+\r
+/* Define to 1 if you have the `RAND_screen' function. */\r
+#undef HAVE_RAND_SCREEN\r
+\r
+/* Define to 1 if you have the `RAND_status' function. */\r
+#undef HAVE_RAND_STATUS\r
+\r
+/* Define to 1 if you have the <rsa.h> header file. */\r
+#undef HAVE_RSA_H\r
+\r
+/* Define to 1 if you have the `select' function. */\r
+#define HAVE_SELECT 1\r
+\r
+/* Define to 1 if you have the <setjmp.h> header file. */\r
+#define HAVE_SETJMP_H 1\r
+\r
+/* Define to 1 if you have the <sgtty.h> header file. */\r
+#undef HAVE_SGTTY_H\r
+\r
+/* Define to 1 if you have the `sigaction' function. */\r
+#undef HAVE_SIGACTION\r
+\r
+/* Define to 1 if you have the `siginterrupt' function. */\r
+#undef HAVE_SIGINTERRUPT\r
+\r
+/* Define to 1 if you have the `signal' function. */\r
+#define HAVE_SIGNAL 1\r
+\r
+/* If you have sigsetjmp */\r
+#undef HAVE_SIGSETJMP\r
+\r
+/* Define to 1 if you have the `socket' function. */\r
+#define HAVE_SOCKET 1\r
+\r
+/* use SO_NONBLOCK for non-blocking sockets */\r
+#undef HAVE_SO_NONBLOCK\r
+\r
+/* Define this if you have the SPNEGO library fbopenssl */\r
+#undef HAVE_SPNEGO\r
+\r
+/* Define to 1 if you have the <ssl.h> header file. */\r
+#undef HAVE_SSL_H\r
+\r
+/* Define to 1 if you have the <stdint.h> header file. */\r
+#define HAVE_STDINT_H 1\r
+\r
+/* Define to 1 if you have the <stdlib.h> header file. */\r
+#define HAVE_STDLIB_H 1\r
+\r
+/* Define to 1 if you have the `strcasecmp' function. */\r
+#define HAVE_STRCASECMP 1\r
+\r
+/* Define to 1 if you have the `strcmpi' function. */\r
+#undef HAVE_STRCMPI\r
+\r
+/* Define to 1 if you have the `strdup' function. */\r
+#define HAVE_STRDUP 1\r
+\r
+/* Define to 1 if you have the `strftime' function. */\r
+#define HAVE_STRFTIME 1\r
+\r
+/* Define to 1 if you have the `stricmp' function. */\r
+#undef HAVE_STRICMP\r
+\r
+/* Define to 1 if you have the <strings.h> header file. */\r
+#undef HAVE_STRINGS_H\r
+\r
+/* Define to 1 if you have the <string.h> header file. */\r
+#define HAVE_STRING_H 1\r
+\r
+/* Define to 1 if you have the `strlcat' function. */\r
+#define HAVE_STRLCAT 1\r
+\r
+/* Define to 1 if you have the `strlcpy' function. */\r
+#define HAVE_STRLCPY 1\r
+\r
+/* Define to 1 if you have the `strstr' function. */\r
+#define HAVE_STRSTR 1\r
+\r
+/* Define to 1 if you have the `strtok_r' function. */\r
+#undef HAVE_STRTOK_R\r
+\r
+/* Define to 1 if you have the `strtoll' function. */\r
+#undef HAVE_STRTOLL\r
+\r
+/* Define to 1 if you have the <sys/param.h> header file. */\r
+#define HAVE_SYS_PARAM_H 1\r
+\r
+/* Define to 1 if you have the <sys/poll.h> header file. */\r
+#undef HAVE_SYS_POLL_H\r
+\r
+/* Define to 1 if you have the <sys/select.h> header file. */\r
+#define HAVE_SYS_SELECT_H 1\r
+\r
+/* Define to 1 if you have the <sys/socket.h> header file. */\r
+#define HAVE_SYS_SOCKET_H 1\r
+\r
+/* Define to 1 if you have the <sys/sockio.h> header file. */\r
+#define HAVE_SYS_SOCKIO_H 1\r
+\r
+/* Define to 1 if you have the <sys/stat.h> header file. */\r
+#define HAVE_SYS_STAT_H 1\r
+\r
+/* Define to 1 if you have the <sys/time.h> header file. */\r
+#define HAVE_SYS_TIME_H 1\r
+\r
+/* Define to 1 if you have the <sys/types.h> header file. */\r
+#define HAVE_SYS_TYPES_H 1\r
+\r
+/* Define to 1 if you have the <sys/utime.h> header file. */\r
+#undef HAVE_SYS_UTIME_H\r
+\r
+/* Define to 1 if you have the `tcgetattr' function. */\r
+#undef HAVE_TCGETATTR\r
+\r
+/* Define to 1 if you have the `tcsetattr' function. */\r
+#undef HAVE_TCSETATTR\r
+\r
+/* Define to 1 if you have the <termios.h> header file. */\r
+#define HAVE_TERMIOS_H 1\r
+\r
+/* Define to 1 if you have the <termio.h> header file. */\r
+#undef HAVE_TERMIO_H\r
+\r
+/* Define to 1 if you have the <time.h> header file. */\r
+#define HAVE_TIME_H 1\r
+\r
+/* Define to 1 if you have the `uname' function. */\r
+#define HAVE_UNAME 1\r
+\r
+/* Define to 1 if you have the <unistd.h> header file. */\r
+#define HAVE_UNISTD_H 1\r
+\r
+/* Define to 1 if you have the `utime' function. */\r
+#define HAVE_UTIME 1\r
+\r
+/* Define to 1 if you have the <utime.h> header file. */\r
+#define HAVE_UTIME_H 1\r
+\r
+/* Define to 1 if you have the <winsock.h> header file. */\r
+#undef HAVE_WINSOCK_H\r
+\r
+/* Define this symbol if your OS supports changing the contents of argv */\r
+#undef HAVE_WRITABLE_ARGV\r
+\r
+/* Define to 1 if you have the <x509.h> header file. */\r
+#undef HAVE_X509_H\r
+\r
+/* if you have the zlib.h header file */\r
+#define HAVE_ZLIB_H 1\r
+\r
+/* need REENTRANT defined */\r
+#undef NEED_REENTRANT\r
+\r
+/* cpu-machine-OS */\r
+#define OS "i386-pc-NetWare"\r
+\r
+/* Name of package */\r
+#undef PACKAGE\r
+\r
+/* Define to the address where bug reports for this package should be sent. */\r
+#undef PACKAGE_BUGREPORT\r
+\r
+/* Define to the full name of this package. */\r
+#undef PACKAGE_NAME\r
+\r
+/* Define to the full name and version of this package. */\r
+#undef PACKAGE_STRING\r
+\r
+/* Define to the one symbol short name of this package. */\r
+#undef PACKAGE_TARNAME\r
+\r
+/* Define to the version of this package. */\r
+#undef PACKAGE_VERSION\r
+\r
+/* a suitable file to read random data from */\r
+#undef RANDOM_FILE\r
+\r
+/* Define as the return type of signal handlers (`int' or `void'). */\r
+#define RETSIGTYPE void\r
+\r
+/* Define to the type of arg 1 for `select'. */\r
+#undef SELECT_TYPE_ARG1\r
+\r
+/* Define to the type of args 2, 3 and 4 for `select'. */\r
+#undef SELECT_TYPE_ARG234\r
+\r
+/* Define to the type of arg 5 for `select'. */\r
+#undef SELECT_TYPE_ARG5\r
+\r
+/* The size of a `curl_off_t', as computed by sizeof. */\r
+#define SIZEOF_CURL_OFF_T 4\r
+\r
+/* Define to 1 if you have the ANSI C header files. */\r
+/* XXX: #undef STDC_HEADERS */\r
+#define STDC_HEADERS 1\r
+\r
+/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */\r
+#define TIME_WITH_SYS_TIME 1\r
+\r
+/* Define if you want to enable ares support */\r
+#undef USE_ARES\r
+\r
+/* Version number of package */\r
+#undef VERSION\r
+\r
+/* Define to 1 if on AIX 3.\r
+   System headers sometimes define this.\r
+   We just want to avoid a redefinition error message.  */\r
+#ifndef _ALL_SOURCE\r
+# undef _ALL_SOURCE\r
+#endif\r
+\r
+/* Number of bits in a file offset, on hosts where this is settable. */\r
+#undef _FILE_OFFSET_BITS\r
+\r
+/* Define for large files, on AIX-style hosts. */\r
+#undef _LARGE_FILES\r
+\r
+/* Define to empty if `const' does not conform to ANSI C. */\r
+#undef const\r
+\r
+/* type to use in place of in_addr_t if not defined */\r
+#undef in_addr_t\r
+\r
+/* Define to `unsigned' if <sys/types.h> does not define. */\r
+#undef size_t\r
+\r
+/* type to use in place of socklen_t if not defined */\r
+#define socklen_t int\r
+\r
+/* the signed version of size_t */\r
+#undef ssize_t\r
+\r
+\r
index 884dc176b553c53bf6fc9a24526b83459ac8417a..485901fcd9dd16c5f7727cb182abb66506c3c732 100644 (file)
 #include <winsock2.h>
 #endif
 
+#ifdef __NOVELL_LIBC__
+#include <screen.h>
+#endif
+
 #ifdef TIME_WITH_SYS_TIME
 /* We can include both fine */
 #include <sys/time.h>
@@ -379,8 +383,13 @@ static void help(void)
     " -#/--progress-bar  Display transfer progress as a progress bar",
     NULL
   };
-  for(i=0; helptext[i]; i++)
+  for(i=0; helptext[i]; i++) {
     puts(helptext[i]);
+#ifdef __NOVELL_LIBC__
+    if (i && ((i % 23) == 0))
+      pressanykey();
+#endif
+  }
 }
 
 struct LongShort {
@@ -3450,6 +3459,9 @@ int main(int argc, char *argv[])
   res = operate(&config, argc, argv);
   free_config_fields(&config);
 
+#ifdef __NOVELL_LIBC__
+  pressanykey();
+#endif
 #ifdef VMS
   if (res > CURL_LAST) res = CURL_LAST;        /* If CURL_LAST exceeded then */
   return (vms_cond[res]|vms_show);      /* curlmsg.h is out of sync.  */
index d11e7300aaee302df2ef84043a90073df9f66afe..135cd98f47fa867ca7a707b0662b8b4c6a8b4004 100644 (file)
 /* include the hand-modified win32 adjusted config.h! */
 #include "config-win32.h"
 #endif
+#ifdef NETWARE
+/* hand-modified NetWare config.h! */
+#include "config-netware.h"
+#endif
 #ifdef macintosh
 /* this is not the same as Mac OS X */
 #include "config-mac.h"