source: rtems-libbsd/freebsd/lib/libipsec/ipsec_strerror.c @ af5333e

4.1155-freebsd-126-freebsd-12freebsd-9.3
Last change on this file since af5333e was e599318, checked in by Sebastian Huber <sebastian.huber@…>, on 10/09/13 at 20:52:54

Update files to match FreeBSD layout

Add compatibility with Newlib header files. Some FreeBSD header files
are mapped by the translation script:

o rtems/bsd/sys/_types.h
o rtems/bsd/sys/errno.h
o rtems/bsd/sys/lock.h
o rtems/bsd/sys/param.h
o rtems/bsd/sys/resource.h
o rtems/bsd/sys/time.h
o rtems/bsd/sys/timespec.h
o rtems/bsd/sys/types.h
o rtems/bsd/sys/unistd.h

It is now possible to include <sys/socket.h> directly for example.

Generate one Makefile which builds everything including tests.

  • Property mode set to 100644
File size: 3.5 KB
Line 
1/*      $KAME: ipsec_strerror.c,v 1.7 2000/07/30 00:45:12 itojun Exp $  */
2
3/*
4 * Copyright (C) 1995, 1996, 1997, 1998, and 1999 WIDE Project.
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 * 1. Redistributions of source code must retain the above copyright
11 *    notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright
13 *    notice, this list of conditions and the following disclaimer in the
14 *    documentation and/or other materials provided with the distribution.
15 * 3. Neither the name of the project nor the names of its contributors
16 *    may be used to endorse or promote products derived from this software
17 *    without specific prior written permission.
18 *
19 * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
20 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22 * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
23 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29 * SUCH DAMAGE.
30 */
31
32#include <sys/cdefs.h>
33__FBSDID("$FreeBSD$");
34
35#include <rtems/bsd/sys/types.h>
36#include <rtems/bsd/sys/param.h>
37
38#include <string.h>
39#include <netipsec/ipsec.h>
40
41#include "ipsec_strerror.h"
42
43int __ipsec_errcode;
44
45static const char *ipsec_errlist[] = {
46"Success",                                      /*EIPSEC_NO_ERROR*/
47"Not supported",                                /*EIPSEC_NOT_SUPPORTED*/
48"Invalid argument",                             /*EIPSEC_INVAL_ARGUMENT*/
49"Invalid sadb message",                         /*EIPSEC_INVAL_SADBMSG*/
50"Invalid version",                              /*EIPSEC_INVAL_VERSION*/
51"Invalid security policy",                      /*EIPSEC_INVAL_POLICY*/
52"Invalid address specification",                /*EIPSEC_INVAL_ADDRESS*/
53"Invalid ipsec protocol",                       /*EIPSEC_INVAL_PROTO*/
54"Invalid ipsec mode",                           /*EIPSEC_INVAL_MODE*/
55"Invalid ipsec level",                          /*EIPSEC_INVAL_LEVEL*/
56"Invalid SA type",                              /*EIPSEC_INVAL_SATYPE*/
57"Invalid message type",                         /*EIPSEC_INVAL_MSGTYPE*/
58"Invalid extension type",                       /*EIPSEC_INVAL_EXTTYPE*/
59"Invalid algorithm type",                       /*EIPSEC_INVAL_ALGS*/
60"Invalid key length",                           /*EIPSEC_INVAL_KEYLEN*/
61"Invalid address family",                       /*EIPSEC_INVAL_FAMILY*/
62"Invalid prefix length",                        /*EIPSEC_INVAL_PREFIXLEN*/
63"Invalid direciton",                            /*EIPSEC_INVAL_DIR*/
64"SPI range violation",                          /*EIPSEC_INVAL_SPI*/
65"No protocol specified",                        /*EIPSEC_NO_PROTO*/
66"No algorithm specified",                       /*EIPSEC_NO_ALGS*/
67"No buffers available",                         /*EIPSEC_NO_BUFS*/
68"Must get supported algorithms list first",     /*EIPSEC_DO_GET_SUPP_LIST*/
69"Protocol mismatch",                            /*EIPSEC_PROTO_MISMATCH*/
70"Family mismatch",                              /*EIPSEC_FAMILY_MISMATCH*/
71"Too few arguments",                            /*EIPSEC_FEW_ARGUMENTS*/
72NULL,                                           /*EIPSEC_SYSTEM_ERROR*/
73"Unknown error",                                /*EIPSEC_MAX*/
74};
75
76const char *ipsec_strerror(void)
77{
78        if (__ipsec_errcode < 0 || __ipsec_errcode > EIPSEC_MAX)
79                __ipsec_errcode = EIPSEC_MAX;
80
81        return ipsec_errlist[__ipsec_errcode];
82}
83
84void __ipsec_set_strerror(const char *str)
85{
86        __ipsec_errcode = EIPSEC_SYSTEM_ERROR;
87        ipsec_errlist[EIPSEC_SYSTEM_ERROR] = str;
88
89        return;
90}
Note: See TracBrowser for help on using the repository browser.