00001 /* 00002 * $Id: domain_mod.h 4518 2008-07-28 15:39:28Z henningw $ 00003 * 00004 * Domain module headers 00005 * 00006 * Copyright (C) 2002-2003 Juha Heinanen 00007 * 00008 * This file is part of Kamailio, a free SIP server. 00009 * 00010 * Kamailio is free software; you can redistribute it and/or modify 00011 * it under the terms of the GNU General Public License as published by 00012 * the Free Software Foundation; either version 2 of the License, or 00013 * (at your option) any later version 00014 * 00015 * Kamailio is distributed in the hope that it will be useful, 00016 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00017 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00018 * GNU General Public License for more details. 00019 * 00020 * You should have received a copy of the GNU General Public License 00021 * along with this program; if not, write to the Free Software 00022 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00023 */ 00024 00025 00026 #ifndef DOMAIN_MOD_H 00027 #define DOMAIN_MOD_H 00028 00029 00030 #include "../../db/db.h" 00031 #include "../../str.h" 00032 #include "../../usr_avp.h" 00033 00034 00035 /* 00036 * Constants 00037 */ 00038 #define DOM_HASH_SIZE 128 00039 00040 /* flags for param source for is_domain_local() */ 00041 #define PARAM_SOURCE_NONE (0) 00042 #define PARAM_SOURCE_AVP (1<<0) 00043 #define PARAM_SOURCE_RURI (1<<1) 00044 #define PARAM_SOURCE_FROM (1<<2) 00045 00046 00047 /* 00048 * Type definitions 00049 */ 00050 struct domain_list { 00051 str domain; 00052 struct domain_list *next; 00053 }; 00054 00055 typedef struct param_source { 00056 int source; /* One of PARAM_SOURCE_XXX from above */ 00057 00058 int avp_type; /* If source is an avp, the avp type else 0 */ 00059 int_str avp_name; /* If source is an avp, the avp name else NULL */ 00060 } param_source; 00061 00062 /* 00063 * Module parameters variables 00064 */ 00065 extern int db_mode; /* Database usage mode: 0 = no cache, 1 = cache */ 00066 extern str domain_table; /* Domain table name */ 00067 extern str domain_col; /* Domain column name */ 00068 00069 00070 /* 00071 * Other module variables 00072 */ 00073 extern struct domain_list **hash_table_1; /* Hash table for domains */ 00074 extern struct domain_list **hash_table_2; /* Hash table for domains */ 00075 extern struct domain_list ***hash_table; /* Current hash table */ 00076 00077 00078 #endif /* DOMAIN_MOD_H */
1.5.6