/*
* Copyright (c) 2001 by Sun Microsystems, Inc.
* All rights reserved.
*/
/*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is Mozilla Communicator client code, released
* March 31, 1998.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998-1999 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
*/
#pragma ident "%Z%%M% %I% %E% SMI"
/*
* errormap.c - map NSPR and OS errors to strings
*
* CONFIDENTIAL AND PROPRIETARY SOURCE CODE OF NETSCAPE COMMUNICATIONS
* CORPORATION
*
* Copyright (C) 1998-9 Netscape Communications Corporation. All Rights Reserved.
*
* Use of this Source Code is subject to the terms of the applicable license
* agreement from Netscape Communications Corporation.
*
* The copyright notice(s) in this Source Code does not indicate actual or
* intended publication of this Source Code.
*/
/* XXX ceb
* This code was stolen from Directory server.
* OS errors are not handled, so the os error has been removed.
*/
#if defined( _WINDOWS )
#include <windows.h>
#include "proto-ntutil.h"
#endif
#include <nspr.h>
#include <ssl.h>
#include <ldap.h>
#ifdef _SOLARIS_SDK
#include <synch.h>
#include <libintl.h>
#endif /* _SOLARIS_SDK */
/*
* function protoypes
*/
/*
* return the string equivalent of an NSPR error
*/
const char *
{
const char *s;
}
return( s );
}
/*
****************************************************************************
* The code below this point was provided by Nelson Bolyard <nelsonb> of the
* Netscape Certificate Server team on 27-March-1998.
* Taken from the file ns/security/cmd/lib/secerror.c on NSS_1_BRANCH.
* Last updated from there: 24-July-1998 by Mark Smith <mcs>
* Last updated from there: 14-July-1999 by chuck boatwright <cboatwri>
*
*
* All of the Directory Server specific changes are enclosed inside
* #ifdef NS_DIRECTORY.
****************************************************************************
*/
#include "nspr.h"
/*
* XXXceb as a hack, we will locally define NS_DIRECTORY
*/
struct tuple_str {
const char * errString;
};
#ifndef _SOLARIS_SDK
#define ER2(a,b) {a, b},
#define ER3(a,b,c) {a, c},
#else
#endif
#include "secerr.h"
#include "sslerr.h"
#ifndef _SOLARIS_SDK
#else
tuple_str errStrings[] = {
#endif
/* keep this list in asceding order of error numbers */
#ifdef NS_DIRECTORY
#include "sslerrstrs.h"
#include "secerrstrs.h"
#include "prerrstrs.h"
/*
* XXXceb -- LDAPSDK won't care about disconnect
#include "disconnect_error_strings.h"
*/
#else /* NS_DIRECTORY */
#include "SSLerrs.h"
#include "SECerrs.h"
#include "NSPRerrs.h"
#endif /* NS_DIRECTORY */
};
/* Returns a UTF-8 encoded constant error string for "errNum".
* Returns NULL of errNum is unknown.
*/
#ifndef _SOLARIS_SDK
#ifdef NS_DIRECTORY
static
#endif /* NS_DIRECTORY */
const char *
PRInt32 i;
static int initDone;
/* make sure table is in ascending order.
* binary search depends on it.
*/
if (!initDone) {
/*
* XXXceb
* We aren't handling out of sequence errors.
*/
#if 0
#ifdef NS_DIRECTORY
"sequence error in error strings at item %d\n"
"error %d (%s)\n",
"should come after \n"
"error %d (%s)\n",
#else /* NS_DIRECTORY */
"sequence error in error strings at item %d\n"
"error %d (%s)\n"
"should come after \n"
"error %d (%s)\n",
#endif /* NS_DIRECTORY */
#endif /* 0 */
}
}
initDone = 1;
}
/* Do binary search of table. */
return errStrings[i].errString;
high = i;
else
low = i;
}
return NULL;
}
#else /* _SOLARIS_SDK */
#define ER3(x, y, z) case (x): \
s = (z); \
break;
#define ER2(x, y) case (x): \
s = (y); \
break;
static const char *
{
char *s;
return (errStrings[i].errString);
}
switch (errNum) {
#include "sslerrstrs.h"
#include "secerrstrs.h"
#include "prerrstrs.h"
default:
s = NULL;
break;
}
errStrings[i].errString = s;
return (s);
}
static
const char *
PRInt32 i;
/* ASSUME table is in ascending order.
* binary search depends on it.
*/
/* Do binary search of table. */
return getErrString(i, errNum);
high = i;
else
low = i;
}
return NULL;
}
#endif