1 | /*************************************** 2 | $Revision: 1.7 $ 3 | 4 | Status: NOT REVUED, NOT TESTED 5 | 6 | Author(s): Andrei Robachevsky 7 | 8 | ******************/ /****************** 9 | Modification History: 10 | andrei (10/04/2000) Created. 11 | ******************/ /****************** 12 | Copyright (c) 2000,2001,2002 RIPE NCC 13 | 14 | All Rights Reserved 15 | 16 | Permission to use, copy, modify, and distribute this software and its 17 | documentation for any purpose and without fee is hereby granted, 18 | provided that the above copyright notice appear in all copies and that 19 | both that copyright notice and this permission notice appear in 20 | supporting documentation, and that the name of the author not be 21 | used in advertising or publicity pertaining to distribution of the 22 | software without specific, written prior permission. 23 | 24 | THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING 25 | ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS; IN NO EVENT SHALL 26 | AUTHOR BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY 27 | DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN 28 | AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 29 | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 30 | ***************************************/ 31 | #ifndef _NH_H 32 | #define _NH_H 33 | 34 | /************************************************************ 35 | * * 36 | * NHR is capable of handling nic-handles __ONLY__ * 37 | * of the following format: * 38 | * * 39 | * Acceptable format is: * 40 | * [A-Z][A-Z]*[1-9][0-9]*(-[A-Z][A-Z]*)? * 41 | * * 42 | ************************************************************/ 43 | #include <mysql_driver.h> 44 | 45 | #define MAX_NH_LENGTH 64 46 | #define MAX_NH_SPACE_LENGTH 4 47 | #define MAX_NH_SOURCE_LENGTH 10 48 | 49 | #define MAX_NIC_ID 999999 50 | #define NULL_NIC_ID (0) 51 | #define AUTO_NIC_ID (-1) 52 | #define MIN_NIC_ID (-2) 53 | #define MAX_RANGE (MAX_NIC_ID+1) 54 | #define MIN_RANGE NULL_NIC_ID 55 | 56 | #define NH_DELETE 1000 57 | #define NH_INSERT 2000 58 | 59 | typedef struct _range_t { 60 | long start; 61 | long end; 62 | char *space; 63 | char *source; 64 | } range_t; 65 | 66 | /* structure to save nic handle data */ 67 | typedef struct _nic_handle_t { 68 | long nic_id; 69 | char *space; 70 | char *source; 71 | } nic_handle_t; 72 | 73 | int NH_check(nic_handle_t *pnh, SQ_connection_t *sql_connection); 74 | int NH_free(nic_handle_t *pnh, SQ_connection_t *sql_connection, int commit_now); 75 | int NH_register(nic_handle_t *pnh, SQ_connection_t *sql_connection, int commit_now); 76 | 77 | char *NH_convert(nic_handle_t *pnh); 78 | int NH_parse(const char *nic, nic_handle_t **pnh); 79 | 80 | void free_nh(nic_handle_t *nh_ptr); 81 | 82 | int NH_comrol(SQ_connection_t *sql_connection, int thread_ins, int thread_del); 83 | #define NH_commit(sql_connection) NH_comrol(sql_connection, NH_INSERT, NH_DELETE) 84 | #define NH_rollback(sql_connection) NH_comrol(sql_connection, NH_DELETE, NH_INSERT) 85 | 86 | 87 | #endif /* _NH_H */