diff options
author | Tilghman Lesher <tilghman@meg.abyt.es> | 2010-07-26 21:08:24 +0000 |
---|---|---|
committer | Tilghman Lesher <tilghman@meg.abyt.es> | 2010-07-26 21:08:24 +0000 |
commit | 12a06394298a767415648d61ee77be5a17e9895b (patch) | |
tree | c826a91b6ddc9331f2a6eb7fa1c601c938c1b8b7 /res | |
parent | 5a4e87b916cfc1bae450a8973663e124d8acf615 (diff) |
Merged revisions 279601 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8
................
r279601 | tilghman | 2010-07-26 16:07:45 -0500 (Mon, 26 Jul 2010) | 19 lines
Merged revisions 279597 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2
........
r279597 | ghenry | 2010-07-26 15:25:54 -0500 (Mon, 26 Jul 2010) | 13 lines
Apply all patches in:
https://issues.asterisk.org/view.php?id=13573
(closes issue #13573)
Reported by: navkumar
Patches:
res_config_ldap-category.diff uploaded by navkumar (license 580)
res_config_ldap.patch uploaded by bencer (license 961)
res_config_ldap uploaded by bencer (license 961)
Tested by: suretec
........
................
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@279602 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'res')
-rw-r--r-- | res/res_config_ldap.c | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/res/res_config_ldap.c b/res/res_config_ldap.c index 6bd992da9..9d5189bed 100644 --- a/res/res_config_ldap.c +++ b/res/res_config_ldap.c @@ -65,7 +65,7 @@ AST_MUTEX_DEFINE_STATIC(ldap_lock); static LDAP *ldapConn; static char url[512]; static char user[512]; -static char pass[50]; +static char pass[512]; static char base_distinguished_name[512]; static int version; static time_t connect_time; @@ -84,8 +84,8 @@ struct category_and_metric { /*! \brief Table configuration */ struct ldap_table_config { - char *table_name; /*!< table name */ - char *additional_filter; /*!< additional filter */ + char *table_name; /*!< table name */ + char *additional_filter; /*!< additional filter */ struct ast_variable *attributes; /*!< attribute names conversion */ struct ast_variable *delimiters; /*!< the current delimiter is semicolon, so we are not using this variable */ AST_LIST_ENTRY(ldap_table_config) entry; @@ -955,9 +955,24 @@ static struct ast_variable *realtime_ldap(const char *basedn, static struct ast_config *realtime_multi_ldap(const char *basedn, const char *table_name, va_list ap) { - struct ast_variable **vars = realtime_ldap_base_ap(NULL, basedn, table_name, ap); + char *op; + const char *initfield = NULL; + const char *newparam, *newval; + struct ast_variable **vars = + realtime_ldap_base_ap(NULL, basedn, table_name, ap); struct ast_config *cfg = NULL; + newparam = va_arg(ap, const char *); + newval = va_arg(ap, const char *); + if (!newparam || !newval) { + ast_log(LOG_WARNING, "realtime retrieval requires at least 1 parameter and 1 value to search on.\n"); + return NULL; + } + initfield = ast_strdupa(newparam); + if ((op = strchr(initfield, ' '))) { + *op = '\0'; + } + if (vars) { cfg = ast_config_new(); if (!cfg) { @@ -975,6 +990,9 @@ static struct ast_config *realtime_multi_ldap(const char *basedn, struct ast_variable *var = *p; while (var) { struct ast_variable *next = var->next; + if (initfield && !strcmp(initfield, var->name)) { + ast_category_rename(cat, var->value); + } var->next = NULL; ast_variable_append(cat, var); var = next; @@ -1746,7 +1764,7 @@ static char *realtime_ldap_status(struct ast_cli_entry *e, int cmd, struct ast_c e->command = "realtime show ldap status"; e->usage = "Usage: realtime show ldap status\n" - " Shows connection information for the LDAP RealTime driver\n"; + " Shows connection information for the LDAP RealTime driver\n"; return NULL; case CLI_GENERATE: return NULL; |