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/nwos.c | |
parent | 5e1cd407a3238cbee8431ade5c82d4fcdbfe507a (diff) | |
download | curl-a4f36558fc1bb9c9f7f0b2f977a2e407905ccd88.tar.gz |
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/nwos.c')
-rw-r--r-- | lib/nwos.c | 84 |
1 files changed, 84 insertions, 0 deletions
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 */ + + |