Annotation of embedaddon/ipsec-tools/src/racoon/evt.h, revision 1.1.1.1

1.1       misho       1: /*     $NetBSD: evt.h,v 1.7 2008/12/23 14:03:12 tteras Exp $   */
                      2: 
                      3: /* Id: evt.h,v 1.5 2006/01/19 10:24:09 fredsen Exp */
                      4: 
                      5: /*
                      6:  * Copyright (C) 2004 Emmanuel Dreyfus
                      7:  * Copyright (C) 2008 Timo Teras
                      8:  * All rights reserved.
                      9:  * 
                     10:  * Redistribution and use in source and binary forms, with or without
                     11:  * modification, are permitted provided that the following conditions
                     12:  * are met:
                     13:  * 1. Redistributions of source code must retain the above copyright
                     14:  *    notice, this list of conditions and the following disclaimer.
                     15:  * 2. Redistributions in binary form must reproduce the above copyright
                     16:  *    notice, this list of conditions and the following disclaimer in the
                     17:  *    documentation and/or other materials provided with the distribution.
                     18:  * 3. Neither the name of the project nor the names of its contributors
                     19:  *    may be used to endorse or promote products derived from this software
                     20:  *    without specific prior written permission.
                     21:  * 
                     22:  * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
                     23:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
                     24:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
                     25:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
                     26:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
                     27:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
                     28:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
                     29:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
                     30:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
                     31:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
                     32:  * SUCH DAMAGE.
                     33:  */
                     34: 
                     35: #ifndef _EVT_H
                     36: #define _EVT_H
                     37: 
                     38: /*
                     39:  * Old style (deprecated) events which are polled.
                     40:  */
                     41: 
                     42: struct evtdump {
                     43:        size_t len;     
                     44:        struct sockaddr_storage src;
                     45:        struct sockaddr_storage dst;
                     46:        time_t timestamp;
                     47:        int type;
                     48:        /* 
                     49:         * Optionnal list of struct isakmp_data 
                     50:         * for type EVTT_ISAKMP_CFG_DONE
                     51:         */
                     52: };
                     53: 
                     54: /* type */
                     55: #define EVTT_UNSEPC            0
                     56: #define EVTT_PHASE1_UP         1
                     57: #define EVTT_PHASE1_DOWN       2
                     58: #define EVTT_XAUTH_SUCCESS     3
                     59: #define EVTT_ISAKMP_CFG_DONE   4
                     60: #define EVTT_PHASE2_UP         5
                     61: #define EVTT_PHASE2_DOWN       6
                     62: #define EVTT_DPD_TIMEOUT       7
                     63: #define EVTT_PEER_NO_RESPONSE  8
                     64: #define EVTT_PEER_DELETE       9
                     65: #define EVTT_RACOON_QUIT       10
                     66: #define EVTT_XAUTH_FAILED      11
                     67: #define EVTT_OVERFLOW          12      /* Event queue overflowed */
                     68: #define EVTT_PEERPH1AUTH_FAILED        13
                     69: #define EVTT_PEERPH1_NOPROP    14      /* NO_PROPOSAL_CHOSEN & friends */
                     70: #define EVTT_NO_ISAKMP_CFG     15      /* no need to wait for mode_cfg */
                     71: 
                     72: /*
                     73:  * New style, asynchronous events.
                     74:  */
                     75: 
                     76: struct evt_async {
                     77:        uint32_t ec_type;
                     78:        time_t ec_timestamp;
                     79: 
                     80:        struct sockaddr_storage ec_ph1src;
                     81:        struct sockaddr_storage ec_ph1dst;
                     82:        u_int32_t ec_ph2msgid;
                     83: 
                     84:        /*
                     85:         * Optionnal list of struct isakmp_data
                     86:         * for type EVTT_ISAKMP_CFG_DONE
                     87:         */
                     88: };
                     89: 
                     90: /* type */
                     91: #define EVT_RACOON_QUIT                        0x0001
                     92: 
                     93: #define EVT_PHASE1_UP                  0x0100
                     94: #define EVT_PHASE1_DOWN                        0x0101
                     95: #define EVT_PHASE1_NO_RESPONSE         0x0102
                     96: #define EVT_PHASE1_NO_PROPOSAL         0x0103
                     97: #define EVT_PHASE1_AUTH_FAILED         0x0104
                     98: #define EVT_PHASE1_DPD_TIMEOUT         0x0105
                     99: #define EVT_PHASE1_PEER_DELETED                0x0106
                    100: #define EVT_PHASE1_MODE_CFG            0x0107
                    101: #define EVT_PHASE1_XAUTH_SUCCESS       0x0108
                    102: #define EVT_PHASE1_XAUTH_FAILED                0x0109
                    103: 
                    104: #define EVT_PHASE2_NO_PHASE1           0x0200
                    105: #define EVT_PHASE2_UP                  0x0201
                    106: #define EVT_PHASE2_DOWN                        0x0202
                    107: #define EVT_PHASE2_NO_RESPONSE         0x0203
                    108: 
                    109: #ifdef ENABLE_ADMINPORT
                    110: 
                    111: struct ph1handle;
                    112: struct ph2handle;
                    113: 
                    114: struct evt_listener {
                    115:        LIST_ENTRY(evt_listener) ll_chain;
                    116:        int fd;
                    117: };
                    118: LIST_HEAD(evt_listener_list, evt_listener);
                    119: #define EVT_LISTENER_LIST(x) struct evt_listener_list x
                    120: 
                    121: void evt_generic __P((int type, vchar_t *optdata));
                    122: void evt_phase1 __P((const struct ph1handle *ph1, int type, vchar_t *optdata));
                    123: void evt_phase2 __P((const struct ph2handle *ph2, int type, vchar_t *optdata));
                    124: vchar_t *evt_dump __P((void));
                    125: 
                    126: int  evt_subscribe __P((struct evt_listener_list *list, int fd));
                    127: void evt_list_init __P((struct evt_listener_list *list));
                    128: void evt_list_cleanup __P((struct evt_listener_list *list));
                    129: 
                    130: #else
                    131: 
                    132: #define EVT_LISTENER_LIST(x)
                    133: 
                    134: #define evt_generic(type, optdata) ;
                    135: #define evt_phase1(ph1, type, optdata) ;
                    136: #define evt_phase2(ph2, type, optdata) ;
                    137: 
                    138: #define evt_subscribe(eventlist, fd) ;
                    139: #define evt_list_init(eventlist) ;
                    140: #define evt_list_cleanup(eventlist) ;
                    141: #define evt_get_fdmask(nfds, fdset) nfds
                    142: #define evt_handle_fdmask(fdset) ;
                    143: 
                    144: #endif /* ENABLE_ADMINPORT */
                    145: 
                    146: #endif /* _EVT_H */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>