mirror of https://github.com/sipwise/kamailio.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
2.5 KiB
77 lines
2.5 KiB
/*
|
|
* LDAP module - Configuration file parser
|
|
*
|
|
* Copyright (C) 2001-2003 FhG FOKUS
|
|
* Copyright (C) 2004,2005 Free Software Foundation, Inc.
|
|
* Copyright (C) 2005,2006 iptelorg GmbH
|
|
*
|
|
* This file is part of SER, a free SIP server.
|
|
*
|
|
* SER is free software; you can redistribute it and/or modify it under the
|
|
* terms of the GNU General Public License as published by the Free Software
|
|
* Foundation; either version 2 of the License, or (at your option) any later
|
|
* version.
|
|
*
|
|
* SER is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
|
* details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License along
|
|
* with this program; if not, write to the Free Software Foundation, Inc.,
|
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
*/
|
|
|
|
#ifndef _LD_CFG_H
|
|
#define _LD_CFG_H
|
|
|
|
#include "ld_fld.h"
|
|
|
|
#include "../../str.h"
|
|
#include <sys/time.h>
|
|
|
|
/* RFC 2251: maxInt INTEGER ::= 2147483647 -- (2^^31 - 1) -- */
|
|
#define LD_MAXINT (2147483647)
|
|
|
|
|
|
struct ld_cfg {
|
|
str table; /**< Name of the db api table */
|
|
str base; /**< The search base to be used with the table, zero terminated */
|
|
int scope; /**< LDAP scope */
|
|
str filter; /**< The search filter, zero terminated */
|
|
str* field; /**< An array of DB API fields, zero terminated */
|
|
str* attr; /**< An array of LDAP attribute names, zero terminated */
|
|
enum ld_syntax* syntax; /**< An array of configured LDAP syntaxes */
|
|
int n; /**< Number of fields in the arrays */
|
|
int sizelimit; /**< retrieve at most sizelimit entries for a search */
|
|
int timelimit; /**< wait at most timelimit seconds for a search to complete */
|
|
int chase_references; /**< dereference option for LDAP library */
|
|
int chase_referrals; /**< follow referrals option for LDAP library */
|
|
struct ld_cfg* next; /**< The next table in the list */
|
|
};
|
|
|
|
struct ld_con_info {
|
|
str id;
|
|
str host;
|
|
unsigned int port;
|
|
str username;
|
|
str password;
|
|
int authmech;
|
|
int tls; /**< TLS encryption enabled */
|
|
str ca_list; /**< Path of the file that contains certificates of the CAs */
|
|
str req_cert; /**< LDAP level of certificate request behaviour */
|
|
struct ld_con_info* next;
|
|
};
|
|
|
|
struct ld_cfg* ld_find_cfg(str* table);
|
|
|
|
char* ld_find_attr_name(enum ld_syntax* syntax, struct ld_cfg* cfg, char* fld_name);
|
|
|
|
struct ld_con_info* ld_find_conn_info(str* conn_id);
|
|
|
|
int ld_load_cfg(str* filename);
|
|
|
|
void ld_cfg_free(void);
|
|
|
|
#endif /* _LD_CFG_H */
|