00001 /* 00002 * $Id$ 00003 * 00004 * Domain module headers 00005 * 00006 * Copyright (C) 2002-2012 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 "../../lib/srdb1/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 str did; 00053 struct attr_list *attrs; 00054 struct domain_list *next; 00055 }; 00056 00057 struct attr_list { 00058 str name; 00059 short type; 00060 int_str val; 00061 struct attr_list *next; 00062 }; 00063 00064 typedef struct param_source { 00065 int source; /* One of PARAM_SOURCE_XXX from above */ 00066 00067 int avp_type; /* If source is an avp, the avp type else 0 */ 00068 int_str avp_name; /* If source is an avp, the avp name else NULL */ 00069 } param_source; 00070 00071 /* 00072 * Module parameters variables 00073 */ 00074 extern str db_url; 00075 extern str domain_table; /* Domain table name */ 00076 extern str domain_attrs_table; /* Domain attributes table name */ 00077 extern str did_col; /* Domain id column name */ 00078 extern str domain_col; /* Domain column name */ 00079 extern str name_col; /* Attribute name column name */ 00080 extern str type_col; /* Attribute type column name */ 00081 extern str value_col; /* Attribute value column name */ 00082 00083 /* 00084 * Other module variables 00085 */ 00086 extern struct domain_list **hash_table_1; /* Hash table for domains */ 00087 extern struct domain_list **hash_table_2; /* Hash table for domains */ 00088 extern struct domain_list ***hash_table; /* Current hash table */ 00089 extern gen_lock_t *reload_lock; 00090 00091 #endif /* DOMAIN_MOD_H */
1.7.1