2007-03-22 [colin] 2.8.1cvs38
* src/addrindex.c * src/ldapctrl.h * src/ldapquery.c Add any attribute specified in LDAP servers' Search attributes to the Other Attributes tab of contacts; Add 'telephoneNumber' in the default list.
This commit is contained in:
parent
93854369ca
commit
67394f4712
10
ChangeLog
10
ChangeLog
|
@ -1,3 +1,13 @@
|
|||
2007-03-22 [colin] 2.8.1cvs38
|
||||
|
||||
* src/addrindex.c
|
||||
* src/ldapctrl.h
|
||||
* src/ldapquery.c
|
||||
Add any attribute specified in LDAP servers'
|
||||
Search attributes to the Other Attributes tab
|
||||
of contacts; Add 'telephoneNumber' in the
|
||||
default list.
|
||||
|
||||
2007-03-22 [colin] 2.8.1cvs37
|
||||
|
||||
* src/folderview.c
|
||||
|
|
|
@ -2454,3 +2454,4 @@
|
|||
( cvs diff -u -r 1.654.2.2506 -r 1.654.2.2507 configure.ac; cvs diff -u -r 1.1.2.1 -r 1.1.2.2 claws-mail.desktop; ) > 2.8.1cvs35.patchset
|
||||
( cvs diff -u -r 1.274.2.179 -r 1.274.2.180 src/mainwindow.c; cvs diff -u -r 1.39.2.35 -r 1.39.2.36 src/mainwindow.h; cvs diff -u -r 1.79.2.53 -r 1.79.2.54 src/mh.c; cvs diff -u -r 1.395.2.288 -r 1.395.2.289 src/summaryview.c; cvs diff -u -r 1.36.2.99 -r 1.36.2.100 src/common/utils.c; cvs diff -u -r 1.20.2.12 -r 1.20.2.13 src/gtk/Makefile.am; ) > 2.8.1cvs36.patchset
|
||||
( cvs diff -u -r 1.207.2.153 -r 1.207.2.154 src/folderview.c; cvs diff -u -r 1.20.2.19 -r 1.20.2.20 src/folderview.h; cvs diff -u -r 1.274.2.180 -r 1.274.2.181 src/mainwindow.c; cvs diff -u -r 1.395.2.289 -r 1.395.2.290 src/summaryview.c; ) > 2.8.1cvs37.patchset
|
||||
( cvs diff -u -r 1.28.2.24 -r 1.28.2.25 src/addrindex.c; cvs diff -u -r 1.1.4.8 -r 1.1.4.9 src/ldapctrl.h; cvs diff -u -r 1.3.2.16 -r 1.3.2.17 src/ldapquery.c; ) > 2.8.1cvs38.patchset
|
||||
|
|
|
@ -11,7 +11,7 @@ MINOR_VERSION=8
|
|||
MICRO_VERSION=1
|
||||
INTERFACE_AGE=0
|
||||
BINARY_AGE=0
|
||||
EXTRA_VERSION=37
|
||||
EXTRA_VERSION=38
|
||||
EXTRA_RELEASE=
|
||||
EXTRA_GTK2_VERSION=
|
||||
|
||||
|
|
|
@ -1340,6 +1340,7 @@ static AddressDataSource *addrindex_parse_ldap( XMLFile *file ) {
|
|||
else if( strcmp( name, ATTAG_LDAP_CRITERIA ) == 0 ) {
|
||||
g_free( criteria );
|
||||
criteria = g_strdup( value );
|
||||
printf("criteria %s\n", criteria);
|
||||
}
|
||||
else if( strcmp( name, ATTAG_LDAP_MAX_ENTRY ) == 0 ) {
|
||||
ldapctl_set_max_entries( ctl, ivalue );
|
||||
|
|
|
@ -44,8 +44,9 @@
|
|||
#define LDAPCTL_ATTR_COMMONNAME "cn"
|
||||
#define LDAPCTL_ATTR_GIVENNAME "givenName"
|
||||
#define LDAPCTL_ATTR_SURNAME "sn"
|
||||
#define LDAPCTL_ATTR_PHONE "telephoneNumber"
|
||||
|
||||
#define LDAPCTL_DFL_ATTR_LIST "mail, cn, givenName, sn"
|
||||
#define LDAPCTL_DFL_ATTR_LIST "mail, cn, givenName, sn, telephoneNumber"
|
||||
|
||||
/*
|
||||
* Search matching options.
|
||||
|
|
|
@ -353,12 +353,16 @@ void ldapqry_free( LdapQuery *qry ) {
|
|||
*/
|
||||
static void ldapqry_free_lists(
|
||||
GSList *listName, GSList *listAddr, GSList *listFirst,
|
||||
GSList *listLast )
|
||||
GSList *listLast, GSList *other_attrs )
|
||||
{
|
||||
GSList *cur = other_attrs;
|
||||
mgu_free_list( listName );
|
||||
mgu_free_list( listAddr );
|
||||
mgu_free_list( listFirst );
|
||||
mgu_free_list( listLast );
|
||||
for(;cur; cur = cur->next)
|
||||
addritem_free_attribute((UserAttribute *)cur->data);
|
||||
g_slist_free(other_attrs);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -430,9 +434,9 @@ static GSList *ldapqry_add_single_value( LDAP *ld, LDAPMessage *entry, char *att
|
|||
static GList *ldapqry_build_items_fl(
|
||||
AddressCache *cache, LdapQuery *qry, gchar *dn,
|
||||
GSList *listName, GSList *listAddr, GSList *listFirst,
|
||||
GSList *listLast )
|
||||
GSList *listLast, GSList *attributes )
|
||||
{
|
||||
GSList *nodeAddress;
|
||||
GSList *nodeAddress, *cur;
|
||||
gchar *firstName = NULL, *lastName = NULL, *fullName = NULL;
|
||||
gboolean allocated;
|
||||
ItemPerson *person;
|
||||
|
@ -483,6 +487,12 @@ static GList *ldapqry_build_items_fl(
|
|||
addritem_person_set_last_name( person, lastName );
|
||||
addrcache_id_person( cache, person );
|
||||
addritem_person_set_external_id( person, dn );
|
||||
|
||||
for (cur = attributes; cur; cur = cur->next) {
|
||||
UserAttribute *attrib = addritem_copy_attribute((UserAttribute *)cur->data);
|
||||
addritem_person_add_attribute( person, attrib );
|
||||
}
|
||||
|
||||
addrcache_folder_add_person( cache, ADDRQUERY_FOLDER(qry), person );
|
||||
|
||||
qry->entriesRead++;
|
||||
|
@ -525,6 +535,7 @@ static GList *ldapqry_process_single_entry(
|
|||
BerElement *ber;
|
||||
GSList *listName = NULL, *listAddress = NULL;
|
||||
GSList *listFirst = NULL, *listLast = NULL;
|
||||
GSList *other_attrs = NULL;
|
||||
GList *listReturn;
|
||||
|
||||
listReturn = NULL;
|
||||
|
@ -535,7 +546,6 @@ static GList *ldapqry_process_single_entry(
|
|||
/* Process all attributes */
|
||||
for( attribute = ldap_first_attribute( ld, e, &ber ); attribute != NULL;
|
||||
attribute = ldap_next_attribute( ld, e, ber ) ) {
|
||||
|
||||
if( strcasecmp( attribute, ctl->attribEMail ) == 0 ) {
|
||||
listAddress = ldapqry_add_list_values( ld, e, attribute );
|
||||
}
|
||||
|
@ -547,19 +557,28 @@ static GList *ldapqry_process_single_entry(
|
|||
}
|
||||
else if( strcasecmp( attribute, ctl->attribLName ) == 0 ) {
|
||||
listLast = ldapqry_add_single_value( ld, e, attribute );
|
||||
} else {
|
||||
GSList *attlist = ldapqry_add_single_value( ld, e, attribute );
|
||||
UserAttribute *attrib = addritem_create_attribute();
|
||||
const gchar *attvalue = attlist?((gchar *)attlist->data):NULL;
|
||||
if (attvalue) {
|
||||
addritem_attrib_set_name( attrib, attribute );
|
||||
addritem_attrib_set_value( attrib, attvalue );
|
||||
other_attrs = g_slist_prepend(other_attrs, attrib);
|
||||
}
|
||||
mgu_free_list(attlist);
|
||||
}
|
||||
|
||||
/* Free memory used to store attribute */
|
||||
ldap_memfree( attribute );
|
||||
}
|
||||
|
||||
/* Format and add items to cache */
|
||||
listReturn = ldapqry_build_items_fl(
|
||||
cache, qry, dnEntry, listName, listAddress, listFirst, listLast );
|
||||
cache, qry, dnEntry, listName, listAddress, listFirst, listLast, other_attrs );
|
||||
|
||||
/* Free up */
|
||||
ldapqry_free_lists( listName, listAddress, listFirst, listLast );
|
||||
listName = listAddress = listFirst = listLast = NULL;
|
||||
ldapqry_free_lists( listName, listAddress, listFirst, listLast, other_attrs );
|
||||
listName = listAddress = listFirst = listLast = other_attrs = NULL;
|
||||
|
||||
if( ber != NULL ) {
|
||||
ber_free( ber, 0 );
|
||||
|
|
Loading…
Reference in a new issue