diff options
| author | Gunter Knauf <gk@gknw.de> | 2007-07-11 21:34:22 +0000 | 
|---|---|---|
| committer | Gunter Knauf <gk@gknw.de> | 2007-07-11 21:34:22 +0000 | 
| commit | a4f36558fc1bb9c9f7f0b2f977a2e407905ccd88 (patch) | |
| tree | caf5bc40c1cbd8edcddbd6766ee580198009887b /lib | |
| parent | 5e1cd407a3238cbee8431ade5c82d4fcdbfe507a (diff) | |
added NetWare-own file to provide some init functions (for now only CLIB);
added call to netware_init() in curl_global_init() to make sure it gets called before any library functions get used.
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/easy.c | 6 | ||||
| -rw-r--r-- | lib/nwos.c | 84 | ||||
| -rw-r--r-- | lib/setup.h | 1 | 
3 files changed, 91 insertions, 0 deletions
| diff --git a/lib/easy.c b/lib/easy.c index 5c8d6bb3e..2122f9b28 100644 --- a/lib/easy.c +++ b/lib/easy.c @@ -241,6 +241,12 @@ CURLcode curl_global_init(long flags)    }  #endif +#ifdef NETWARE +  if(netware_init()) { +    DEBUGF(fprintf(stderr, "Warning: LONG namespace not available\n")); +  } +#endif +  #ifdef USE_LIBIDN    idna_init();  #endif diff --git a/lib/nwos.c b/lib/nwos.c new file mode 100644 index 000000000..f1cf194df --- /dev/null +++ b/lib/nwos.c @@ -0,0 +1,84 @@ +/*************************************************************************** + *                                  _   _ ____  _ + *  Project                     ___| | | |  _ \| | + *                             / __| | | | |_) | | + *                            | (__| |_| |  _ <| |___ + *                             \___|\___/|_| \_\_____| + * + * Copyright (C) 1998 - 2007, Daniel Stenberg, <daniel@haxx.se>, et al. + * + * This software is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at http://curl.haxx.se/docs/copyright.html. + * + * You may opt to use, copy, modify, merge, publish, distribute and/or sell + * copies of the Software, and permit persons to whom the Software is + * furnished to do so, under the terms of the COPYING file. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + * $Id$ + ***************************************************************************/ + +#ifdef NETWARE /* Novell NetWare */ + +#include <stdlib.h> + +#ifdef __NOVELL_LIBC__ +/* For native LibC-based NLM we need to do nothing. */ +int netware_init ( void ) +{ +    return 0; +} + +#else /* __NOVELL_LIBC__ */ + +/* For native CLib-based NLM we need to initialize the LONG namespace. */ +#include <stdio.h> +#include <nwnspace.h> +#include <nwfileio.h> +#include <nwthread.h> +#include <nwadv.h> +/* Make the CLIB Ctx stuff link */ +#include <netdb.h> +NETDB_DEFINE_CONTEXT + +int netware_init ( void ) +{ +    int rc = 0; +    /* import UnAugmentAsterisk dynamically for NW4.x compatibility */ +    unsigned int myHandle = GetNLMHandle(); +    void (*pUnAugmentAsterisk)(int) = (void(*)(int)) +            ImportSymbol(myHandle, "UnAugmentAsterisk"); +    if (pUnAugmentAsterisk) +        pUnAugmentAsterisk(1); +    UnimportSymbol(myHandle, "UnAugmentAsterisk"); +    /* set long name space */ +    if ((SetCurrentNameSpace(4) == 255)) { +        rc = 1; +    } +    if ((SetTargetNameSpace(4) == 255)) { +        rc = rc + 2; +    } +    UseAccurateCaseForPaths(1); +    return rc; +} + +/* dummy function to satisfy newer prelude */ +int __init_environment ( void ) +{ +    return 0; +} + +/* dummy function to satisfy newer prelude */ +int __deinit_environment ( void ) +{ +    return 0; +} + +#endif /* __NOVELL_LIBC__ */ + +#endif /* NETWARE */ + + diff --git a/lib/setup.h b/lib/setup.h index 867a00851..2fcd83ecb 100644 --- a/lib/setup.h +++ b/lib/setup.h @@ -315,6 +315,7 @@ int fileno( FILE *stream);  #endif  #ifdef NETWARE +int netware_init(void);  #ifndef __NOVELL_LIBC__  #include <sys/bsdskt.h>  #include <sys/timeval.h> | 
